Sherpa-ONNX: reconocimiento y síntesis del habla sin conexión con ONNXRuntime

Introducción general

sherpa-onnx es un proyecto de código abierto desarrollado por el equipo Next-gen Kaldi para ofrecer soluciones eficientes de reconocimiento y síntesis del habla sin conexión. Es compatible con múltiples plataformas, como Android, iOS, Raspberry Pi, etc., y es capaz de procesar el habla en tiempo real sin conexión a internet. El proyecto se basa en el marco ONNX Runtime y ofrece funciones de conversión de voz a texto (ASR), conversión de texto a voz (TTS) y detección de actividad vocal (VAD) para diversos sistemas embebidos y dispositivos móviles. El proyecto no sólo admite el uso fuera de línea, sino que también permite la comunicación entre servidor y cliente a través de WebSocket.

Sherpa-ONNX:使用ONNXRuntime实现离线语音识别和合成

Demostración en línea: https://huggingface.co/spaces/k2-fsa/generate-subtitles-for-videos

 

Lista de funciones

  • Reconocimiento de voz sin conexión (ASR): Admite la conversión de voz a texto en tiempo real en varios idiomas, sin necesidad de conexión a Internet.
  • Síntesis de voz offline (TTS): Proporciona un servicio de texto a voz de alta calidad, de nuevo sin necesidad de Internet.
  • Detección de actividad vocal (DAV): Detección en tiempo real de la actividad vocal, adecuada para diversos escenarios de interacción vocal.
  • Soporte multiplataformaDisponible para Linux, macOS, Windows, Android, iOS y muchos otros sistemas operativos.
  • Modelos multilingüesAdmite modelos de voz avanzados como Zipformer, Paraformer, etc. para mejorar la precisión del reconocimiento y la síntesis.
  • bajo consumo de recursos: Los modelos optimizados pueden funcionar sin problemas en dispositivos con recursos limitados.

 

Utilizar la ayuda

Proceso de instalación

sherpa-onnx es un proyecto de código abierto, puedes descargar el código fuente directamente desde GitHub para compilarlo, o utilizar directamente los binarios precompilados:

1.almacén de clones::

git clone https://github.com/k2-fsa/sherpa-onnx.git
cd sherpa-onnx
  1. Compilar código fuente::
    • Para usuarios de Linux y macOS:
      mkdir build
      cd build
      cmake -DCMAKE_BUILD_TYPE=Release ..
      make -j4
      
    • Para los usuarios de Windows, es posible que tenga que utilizar Visual Studio u otro compilador compatible con CMake.
  2. Descargar archivos precompilados::
    • Visita la página de la versión de GitHub (por ejemplo, https://github.com/k2-fsa/sherpa-onnx/releases) y selecciona la versión precompilada para tu sistema operativo para descargarla.

Utilización

Ejemplo de reconocimiento de voz (ASR)::

  • modo de línea de comandos::
    Descargar modelos preentrenados (p. ej. sherpa-onnx-streaming-zipformer-bilingual-zh-es):

    wget https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-zipformer-bilingual-zh-en.tar.bz2
    tar xvf sherpa-onnx-streaming-zipformer-bilingual-zh-en.tar.bz2
    

    Pues corre:

    ./build/bin/sherpa-onnx --tokens=sherpa-onnx-streaming-zipformer-bilingual-zh-en/tokens.txt --encoder=sherpa-onnx-streaming-zipformer-bilingual-zh-en/encoder.onnx --decoder=sherpa-onnx-streaming-zipformer-bilingual-zh-en/decoder.onnx your_audio.wav
    
  • reconocimiento en tiempo real::
    Reconocimiento de voz en tiempo real mediante un micrófono:

    ./build/bin/sherpa-onnx-microphone --tokens=sherpa-onnx-streaming-zipformer-bilingual-zh-en/tokens.txt --encoder=sherpa-onnx-streaming-zipformer-bilingual-zh-en/encoder.onnx --decoder=sherpa-onnx-streaming-zipformer-bilingual-zh-en/decoder.onnx
    

Ejemplo de síntesis de voz (TTS)::

  • Descargue un modelo TTS preentrenado (por ejemplo, el modelo VITS):
    wget https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/sherpa-onnx-tts-vits.tar.bz2
    tar xvf sherpa-onnx-tts-vits.tar.bz2
    
  • Ejecuta TTS:
    ./build/bin/sherpa-onnx-offline-tts --model=sherpa-onnx-tts-vits/model.onnx "你好,世界"
    

Detección de actividad vocal (DAV)::

  • Ejecuta el VAD:
    ./build/bin/sherpa-onnx-vad --model=path/to/vad_model.onnx your_audio.wav
    

advertencia

  • Selección de modelosElección del modelo: elija el modelo que mejor se adapte a sus necesidades (versión streaming o no streaming). Los distintos modelos difieren en rendimiento y tiempo real.
  • requisitos de hardware: Aunque sherpa-onnx está pensado para consumir pocos recursos, los modelos complejos pueden requerir una mayor potencia de cálculo, especialmente en dispositivos móviles.
  • Apoyo lingüísticoLos modelos preformados pueden admitir varios idiomas. Asegúrese de elegir el modelo adecuado para su idioma.

Con estos pasos y consejos, podrá empezar a utilizar sherpa-onnx para el desarrollo de aplicaciones relacionadas con el habla, ya se trate de un sistema de diálogo en tiempo real o de procesamiento del habla fuera de línea.

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...