AI Personal Learning
und praktische Anleitung
豆包Marscode1

Sherpa-ONNX: Offline-Spracherkennung und -synthese mit ONNXRuntime

Allgemeine Einführung

sherpa-onnx ist ein Open-Source-Projekt, das vom Next-gen Kaldi-Team entwickelt wurde, um effiziente Offline-Spracherkennungs- und Sprachsyntheselösungen anzubieten. Es unterstützt mehrere Plattformen, darunter Android, iOS, Raspberry Pi usw., und ist in der Lage, Sprache in Echtzeit ohne Internetverbindung zu verarbeiten. Das Projekt basiert auf dem ONNX-Runtime-Framework und bietet Funktionen von Sprache-zu-Text (ASR), Text-zu-Sprache (TTS) und Sprachaktivitätserkennung (VAD) für verschiedene eingebettete Systeme und mobile Geräte. Das Projekt unterstützt nicht nur die Offline-Nutzung, sondern ermöglicht auch die Kommunikation zwischen Server und Client über WebSocket.

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

Online-Demo: https://huggingface.co/spaces/k2-fsa/generate-subtitles-for-videos


 

Funktionsliste

  • Offline-Spracherkennung (ASR)Unterstützt Sprache-zu-Text in Echtzeit in mehreren Sprachen, ohne dass eine Internetverbindung erforderlich ist.
  • Offline-Sprachsynthese (TTS)Bietet einen qualitativ hochwertigen Text-to-Speech-Dienst, der wiederum kein Internet benötigt.
  • Erkennung von Sprachaktivität (VAD)Echtzeit-Erkennung von Sprachaktivität für eine Vielzahl von Sprachinteraktionsszenarien.
  • Unterstützung mehrerer PlattformenVerfügbar für Linux, macOS, Windows, Android, iOS und viele andere Betriebssysteme.
  • Unterstützung sprachübergreifender ModelleUnterstützung fortschrittlicher Sprachmodelle wie Zipformer, Paraformer usw. zur Verbesserung der Erkennungs- und Synthesegenauigkeit.
  • geringer RessourcenverbrauchOptimierte Modelle können auf ressourcenbeschränkten Geräten reibungslos laufen.

 

Hilfe verwenden

Einbauverfahren

sherpa-onnx ist ein Open-Source-Projekt. Sie können den Quellcode direkt von GitHub herunterladen und kompilieren oder die vorkompilierten Binärdateien direkt verwenden:

1.Klon-Lager::

git clone https://github.com/k2-fsa/sherpa-onnx.git
cd sherpa-onnx
  1. Quellcode kompilieren::
    • Für Linux- und macOS-Benutzer:
      mkdir build
      cd build
      cmake -DCMAKE_BUILD_TYPE=Release ..
      make -j4
      
    • Für Windows-Benutzer müssen Sie möglicherweise Visual Studio oder einen anderen von CMake unterstützten Compiler verwenden.
  2. Vorkompilierte Dateien herunterladen::
    • Besuchen Sie die GitHub-Veröffentlichungsseite (z. B. https://github.com/k2-fsa/sherpa-onnx/releases) und wählen Sie die vorkompilierte Version für Ihr Betriebssystem zum Herunterladen aus.

Verwendung

Beispiel Spracherkennung (ASR)::

  • Kommandozeilenmodus::
    Herunterladen von vortrainierten Modellen (z.B. sherpa-onnx-streaming-zipformer-bilingual-zh-de):

    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
    

    Dann laufen Sie:

    ./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
    
  • Echtzeiterfassung::
    Spracherkennung in Echtzeit über ein Mikrofon:

    ./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
    

Beispiel Sprachsynthese (TTS)::

  • Laden Sie ein vortrainiertes TTS-Modell herunter (z. B. das VITS-Modell):
    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
    
  • TTS ausführen:
    ./build/bin/sherpa-onnx-offline-tts --model=sherpa-onnx-tts-vits/model.onnx "你好,世界"
    

Erkennung von Sprachaktivität (VAD)::

  • Führen Sie den VAD aus:
    ./build/bin/sherpa-onnx-vad --model=path/to/vad_model.onnx your_audio.wav
    

caveat

  • Auswahl des ModellsWählen Sie das für Ihre Bedürfnisse geeignete Modell (z. B. die Streaming- oder Non-Streaming-Version). Die verschiedenen Modelle unterscheiden sich in Bezug auf Leistung und Echtzeit.
  • Hardware-VoraussetzungWährend sherpa-onnx auf einen geringen Ressourcenverbrauch ausgelegt ist, können komplexe Modelle eine höhere Rechenleistung erfordern, insbesondere auf mobilen Geräten.
  • Sprachliche UnterstützungVorgefertigte Modelle können mehrere Sprachen unterstützen. Stellen Sie sicher, dass Sie das richtige Modell für Ihre Sprache auswählen.

Mit diesen Schritten und Tipps können Sie sherpa-onnx für die Entwicklung von Sprachanwendungen einsetzen, egal ob es sich um ein Echtzeit-Dialogsystem oder eine Offline-Sprachverarbeitung handelt.

Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Sherpa-ONNX: Offline-Spracherkennung und -synthese mit ONNXRuntime
de_DEDeutsch