Ein auf ModelScope basierendes End-to-End-Spracherkennungstoolkit, das Funktionen wie Spracherkennung, Sprachaktivitätserkennung und Punktwiederherstellung unterstützt.
FunASR - Fundamentales End-to-End Spracherkennungs-Toolkit
Projektübersicht
FunASR ist ein fundamentales Spracherkennungs-Toolkit, das eine Vielzahl von Funktionen bietet, darunter Spracherkennung (ASR), Sprachaktivitätsdetektion (VAD), Interpunktionswiederherstellung, Sprachmodelle, Sprecherverifikation, Sprechertrennung und Multi-Sprecher-ASR. Das Projekt wurde von der Alibaba DAMO Academy entwickelt und zielt darauf ab, eine Brücke zwischen akademischer Forschung und industriellen Anwendungen zu schlagen.
Projektadresse: https://github.com/modelscope/FunASR
Kernfunktionen
1. Multifunktionale Sprachverarbeitung
- Spracherkennung (ASR): Unterstützt Streaming- und Nicht-Streaming-Erkennung
- Sprachaktivitätsdetektion (VAD): Erkennt Sprachaktivitätssegmente
- Interpunktionswiederherstellung: Fügt automatisch Satzzeichen hinzu
- Sprechererkennung: Unterstützt Sprecherverifikation und -trennung
- Emotionserkennung: Sprach-Emotionsanalyse
- Schlüsselworterkennung: Unterstützt Keyword-Wake-up
2. Bibliothek vortrainierter Modelle
FunASR veröffentlicht eine große Anzahl akademischer und industrieller vortrainierter Modelle auf ModelScope und Hugging Face, darunter hauptsächlich:
Modellname | Funktionsbeschreibung | Trainingsdaten | Parameteranzahl |
---|---|---|---|
SenseVoiceSmall | Multifunktionale Sprachverständnisfähigkeiten, einschließlich ASR, ITN, LID, SER und AED | 300.000 Stunden | 234M |
paraformer-zh | Chinesische Spracherkennung, mit Zeitstempeln, nicht-streaming | 60.000 Stunden, Chinesisch | 220M |
paraformer-zh-streaming | Chinesische Spracherkennung, streaming | 60.000 Stunden, Chinesisch | 220M |
paraformer-en | Englische Spracherkennung, nicht-streaming | 50.000 Stunden, Englisch | 220M |
ct-punc | Interpunktionswiederherstellung | 100 Millionen Einträge, Chinesisch/Englisch | 290M |
fsmn-vad | Sprachaktivitätsdetektion | 5.000 Stunden, Chinesisch/Englisch | 0.4M |
Whisper-large-v3 | Mehrsprachige Spracherkennung | Mehrsprachig | 1550M |
3. Vorstellung der Kernmodelle
Paraformer
Paraformer-large ist ein nicht-autoregressives End-to-End-Spracherkennungsmodell, das sich durch hohe Genauigkeit, Effizienz und einfache Bereitstellung auszeichnet und den schnellen Aufbau von Spracherkennungsdiensten unterstützt.
SenseVoice
SenseVoice ist ein grundlegendes Sprachmodell mit verschiedenen Sprachverständnisfähigkeiten, darunter ASR, LID, SER und AED, und unterstützt mehrere Sprachen wie Chinesisch, Kantonesisch, Englisch, Japanisch und Koreanisch.
Installation und Nutzung
Installationsmethoden
Installation via pip
pip3 install -U funasr
Installation aus dem Quellcode
git clone https://github.com/alibaba/FunASR.git && cd FunASR
pip3 install -e ./
Installation der Modellbibliotheksunterstützung (optional)
pip3 install -U modelscope huggingface_hub
Schnellstart
1. Nutzung über die Kommandozeile
funasr ++model=paraformer-zh ++vad_model="fsmn-vad" ++punc_model="ct-punc" ++input=asr_example_zh.wav
2. Python API - SenseVoice Modell
from funasr import AutoModel
from funasr.utils.postprocess_utils import rich_transcription_postprocess
model_dir = "iic/SenseVoiceSmall"
model = AutoModel(
model=model_dir,
vad_model="fsmn-vad",
vad_kwargs={"max_single_segment_time": 30000},
device="cuda:0",
)
# Englische Erkennung
res = model.generate(
input=f"{model.model_path}/example/en.mp3",
cache={},
language="auto", # "zn", "en", "yue", "ja", "ko", "nospeech"
use_itn=True,
batch_size_s=60,
merge_vad=True,
merge_length_s=15,
)
text = rich_transcription_postprocess(res[0]["text"])
print(text)
3. Python API - Paraformer Modell
from funasr import AutoModel
# paraformer-zh ist ein multifunktionales ASR-Modell
model = AutoModel(
model="paraformer-zh",
vad_model="fsmn-vad",
punc_model="ct-punc",
# spk_model="cam++", # Optionale Sprechererkennung
)
res = model.generate(
input=f"{model.model_path}/example/asr_example.wav",
batch_size_s=300,
hotword='魔搭' # Hotword
)
print(res)
4. Streaming-Erkennung
from funasr import AutoModel
import soundfile
import os
chunk_size = [0, 10, 5] # [0, 10, 5] Konfiguration für 600ms Latenz
encoder_chunk_look_back = 4
decoder_chunk_look_back = 1
model = AutoModel(model="paraformer-zh-streaming")
wav_file = os.path.join(model.model_path, "example/asr_example.wav")
speech, sample_rate = soundfile.read(wav_file)
chunk_stride = chunk_size[1] * 960 # 600ms
cache = {}
total_chunk_num = int(len((speech)-1)/chunk_stride+1)
for i in range(total_chunk_num):
speech_chunk = speech[i*chunk_stride:(i+1)*chunk_stride]
is_final = i == total_chunk_num - 1
res = model.generate(
input=speech_chunk,
cache=cache,
is_final=is_final,
chunk_size=chunk_size,
encoder_chunk_look_back=encoder_chunk_look_back,
decoder_chunk_look_back=decoder_chunk_look_back
)
print(res)
Dienstbereitstellung
FunASR unterstützt die Bereitstellung von vortrainierten oder weiter feinabgestimmten Modellen für Dienste. Derzeit werden die folgenden Arten der Dienstbereitstellung unterstützt:
Unterstützte Diensttypen
- Offline-Dateitranskriptionsdienst (Chinesisch, CPU-Version)
- Echtzeit-Transkriptionsdienst (Chinesisch, CPU-Version)
- Offline-Dateitranskriptionsdienst (Englisch, CPU-Version)
- Offline-Dateitranskriptionsdienst (Chinesisch, GPU-Version)
Empfohlene Bereitstellungskonfigurationen
Empfohlene Konfigurationen:
- Konfiguration 1: (X86-Rechenmodell) 4 vCPUs, 8 GB RAM, unterstützt ca. 32 Anfragen pro Server
- Konfiguration 2: (X86-Rechenmodell) 16 vCPUs, 32 GB RAM, unterstützt ca. 64 Anfragen pro Server
Technische Merkmale
1. Modellinnovationen
- Nicht-autoregressive Architektur: Paraformer verwendet ein nicht-autoregressives Design, um die Inferenz-Effizienz zu verbessern
- 2-Pass-Modus: Kombiniert die Vorteile von Streaming und Nicht-Streaming
- Hotword-Unterstützung: Unterstützt benutzerdefinierte Hotwords zur Verbesserung der Erkennungsgenauigkeit spezifischer Vokabeln
2. Engineering-Optimierung
- ONNX-Export: Unterstützt den Export von Modellen im ONNX-Format für eine einfachere Bereitstellung
- Multi-Plattform-Unterstützung: Unterstützt verschiedene Plattformen wie CPU, GPU, ARM64
- Containerisierte Bereitstellung: Bietet Docker-Image-Unterstützung
3. Entwicklerfreundlichkeit
- Einheitliche Schnittstelle: AutoModel vereinheitlicht die Inferenz-Schnittstellen von ModelScope, Hugging Face und FunASR
- Plug-in-Design: Unterstützt die flexible Kombination von Komponenten wie VAD, Interpunktion und Sprechererkennung
- Umfassende Dokumentation: Bietet detaillierte Tutorials und Beispiele
Anwendungsfälle
1. Echtzeit-Sprachtranskription
- Besprechungsprotokolle
- Live-Untertitel
- Sprachassistenten
2. Offline-Audioverarbeitung
- Transkription von Audiodateien
- Sprachdatenanalyse
- Inhaltsmoderation
3. Mehrsprachige Unterstützung
- Sprachübergreifende Spracherkennung
- Sprachübersetzung
- Mehrsprachiger Kundenservice
Neueste Updates
Wichtige Updates 2024
- 29.10.2024: Echtzeit-Transkriptionsdienst 1.12 veröffentlicht, 2-Pass-Offline-Modus unterstützt SenseVoice-Modell
- 10.10.2024: Unterstützung für das Whisper-large-v3-turbo-Modell hinzugefügt
- 26.09.2024: Speicherleck behoben, Unterstützung für SenseVoice ONNX-Modell
- 04.07.2024: SenseVoice Sprachgrundlagenmodell veröffentlicht
- 27.06.2024: Offline-Dateitranskriptionsdienst GPU 1.0 veröffentlicht
Community und Support
Open-Source-Lizenz
- Das Projekt verwendet die MIT-Lizenz
- Vortrainierte Modelle verwenden eine spezifische Modelllizenzvereinbarung
Community-Beteiligung
- GitHub Issues: Technische Fragen und Bug-Feedback
- DingTalk-Gruppe: Täglicher Austausch und Diskussion
- ModelScope: Modell-Download und -Teilung
Zitation
Wenn Sie FunASR in Ihrer Forschung verwenden, zitieren Sie bitte das folgende Paper:
@inproceedings{gao2023funasr,
author={Zhifu Gao and Zerui Li and Jiaming Wang and Haoneng Luo and Xian Shi and Mengzhe Chen and Yabin Li and Lingyun Zuo and Zhihao Du and Zhangyu Xiao and Shiliang Zhang},
title={FunASR: A Fundamental End-to-End Speech Recognition Toolkit},
year={2023},
booktitle={INTERSPEECH},
}
Zusammenfassung
FunASR ist ein funktionsreiches und leistungsstarkes Spracherkennungs-Toolkit, das erfolgreich Spitzentechnologien aus der akademischen Forschung mit den praktischen Anforderungen industrieller Anwendungen verbindet. Ob Forscher Algorithmen validieren oder Entwickler Sprachanwendungen erstellen, FunASR bietet leistungsstarke technische Unterstützung und eine bequeme Entwicklungserfahrung. Durch seine umfangreichen vortrainierten Modelle, flexiblen Bereitstellungsoptionen und eine aktive Open-Source-Community entwickelt sich FunASR zu einer wichtigen Infrastruktur im Bereich der Spracherkennung.