Introdução geral
O sherpa-onnx é um projeto de código aberto desenvolvido pela equipe do Next-gen Kaldi para fornecer soluções eficientes de reconhecimento e síntese de fala off-line. Ele é compatível com várias plataformas, incluindo Android, iOS, Raspberry Pi, etc., e é capaz de processar a fala em tempo real sem uma conexão com a Internet. O projeto se baseia na estrutura ONNX Runtime e fornece funções de fala para texto (ASR), texto para fala (TTS) e detecção de atividade de voz (VAD) para vários sistemas incorporados e dispositivos móveis. O projeto não só é compatível com o uso off-line, mas também permite a comunicação entre o servidor e o cliente via WebSocket.
Demonstração on-line: https://huggingface.co/spaces/k2-fsa/generate-subtitles-for-videos
Lista de funções
- Reconhecimento de fala off-line (ASR)Suporte à conversão de voz em texto em tempo real em vários idiomas, sem a necessidade de conexão com a Internet.
- Síntese de fala off-line (TTS)Oferece serviço de conversão de texto em fala de alta qualidade, novamente sem a necessidade de Internet.
- Detecção de atividade de voz (VAD)Detecção de atividade de voz em tempo real, adequada para uma variedade de cenários de interação de voz.
- Suporte a várias plataformasDisponível para Linux, macOS, Windows, Android, iOS e muitos outros sistemas operacionais.
- Suporte a modelos em vários idiomasEle oferece suporte a modelos avançados de fala, como Zipformer, Paraformer, etc., para melhorar a precisão do reconhecimento e da síntese.
- baixo consumo de recursosModelos otimizados podem ser executados sem problemas em dispositivos com recursos limitados.
Usando a Ajuda
Processo de instalação
O sherpa-onnx é um projeto de código aberto, você pode fazer download do código-fonte diretamente do GitHub para compilação ou usar os binários pré-compilados diretamente:
1.armazém de clones::
git clone https://github.com/k2-fsa/sherpa-onnx.git
cd sherpa-onnx
- Compilar o código-fonte::
- Para usuários do Linux e do macOS:
mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release ... make -j4
- Para usuários do Windows, talvez seja necessário usar o Visual Studio ou outro compilador compatível com o CMake.
- Para usuários do Linux e do macOS:
- Baixar arquivos pré-compilados::
- Visite a página de lançamento do GitHub (por exemplo, https://github.com/k2-fsa/sherpa-onnx/releases) e selecione a versão pré-compilada para o seu sistema operacional para fazer o download.
Uso
Exemplo de reconhecimento de fala (ASR)::
- modo de linha de comando::
Faça o download de modelos pré-treinados (por exemplo sherpa-onnx-streaming-zipformer-bilingual-zh-en):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
Então corra:
. /build/bin/sherpa-onnx --tokens=sherpa-onnx-streaming-zipformer-bilingual-zh-en/tokens.txt --encoder=sherpa-onnx-streaming-zipformer --encoder=sherpa-onnx-streaming-zipformer-bilingual-zh-en/decoder.onnx your_audio.wav
- reconhecimento em tempo real::
Reconhecimento de fala em tempo real usando um microfone:. /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
Exemplo de síntese de fala (TTS)::
- Faça o download de um modelo TTS pré-treinado (por exemplo, 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
- Executar TTS:
. /build/bin/sherpa-onnx-offline-tts --model=sherpa-onnx-tts-vits/model.onnx "Olá, mundo".
Detecção de atividade de voz (VAD)::
- Execute o VAD:
. /build/bin/sherpa-onnx-vad --model=path/to/vad_model.onnx your_audio.wav
advertência
- Seleção de modelosEscolha o modelo apropriado (por exemplo, versão com ou sem streaming) para suas necessidades. Os diferentes modelos diferem em termos de desempenho e tempo real.
- Requisitos de hardwareEmbora o sherpa-onnx tenha sido projetado para consumir poucos recursos, os modelos complexos podem exigir maior capacidade de computação, especialmente em dispositivos móveis.
- Suporte a idiomasModelos pré-treinados podem suportar vários idiomas, portanto, certifique-se de escolher o modelo correto para o seu idioma.
Com essas etapas e dicas, você pode começar a usar o sherpa-onnx para o desenvolvimento de aplicativos relacionados à fala, seja um sistema de diálogo em tempo real ou o processamento de fala off-line.