Allgemeine Einführung
realtime-transcription-fastrtc ist ein Open-Source-Projekt, das sich auf die Umwandlung von Sprache in Text in Echtzeit konzentriert. Es verwendet die FastRTC-Technologie zur Verarbeitung von Audioströmen mit niedriger Latenz, kombiniert mit lokalen Flüstern Modell, um eine effiziente Spracherkennung zu erreichen. Das Projekt wird vom Entwickler sofi444 gepflegt und auf GitHub gehostet. Der Code ist vollständig offen und kann von den Benutzern frei verändert werden. Die Benutzer können es über den Browser oder lokal einsetzen, und die Schnittstelle unterstützt die Modi Gradio und FastAPI, die einfach zu bedienen sind. Es eignet sich für Meeting-Aufzeichnungen, Live-Untertitel und andere Szenarien, um die Bedürfnisse von Einzelpersonen und Entwicklern zu erfüllen. Das Projekt ist leichtgewichtig, unterstützt mehrere Sprachen, läuft stabil und lässt sich leicht erweitern.
Funktionsliste
- Sprachtranskription in Echtzeit: Sofortige Umwandlung von Sprache in Text über das Mikrofon mit einer geringen Latenzzeit von bis zu Millisekunden.
- Voice Activity Detection (VAD): identifiziert automatisch den Anfang und das Ende von Sprache, um den Transkriptionsprozess zu optimieren.
- Mehrsprachige Unterstützung: Englisch, Chinesisch und andere Sprachen, basierend auf dem Whisper-Modell.
- Zwei Schnittstellenoptionen: intuitive Gradio-Schnittstelle und anpassbare FastAPI-Schnittstelle.
- Lokale Modellläufe: Mit Whisper-Modellen ist eine Offline-Transkription möglich, ohne dass eine ständige Internetverbindung erforderlich ist.
- Parameteranpassung: Unterstützt die Konfiguration von Audio-Streams, VAD-Schwellenwerten und Modell-Batchgrößen.
- Flexibler Einsatz: kann lokal ausgeführt oder über Plattformen wie Hugging Face Spaces bereitgestellt werden.
- Fehlerrückmeldung: Bietet eine klare Anzeige von Verbindungsfehlern oder Konfigurationsfehlern zur einfachen Fehlersuche.
Hilfe verwenden
Einbauverfahren
Um realtime-transcription-fastrtc zu verwenden, müssen Sie Ihre Python-Umgebung und die entsprechenden Abhängigkeiten vorbereiten. Nachfolgend finden Sie die detaillierten Schritte, die sicherstellen, dass Benutzer das Programm problemlos installieren und ausführen können.
- Überprüfung der Systemanforderungen
- Python-Version: >= 3.10.
- Montage
ffmpeg
für die Audioverarbeitung verwendet. - Empfohlene Hardware: GPUs (z.B. MPS oder CUDA) zur Beschleunigung der Modellinferenz, CPUs können auch laufen, sind aber langsamer.
- Klon-Lager
Führen Sie den folgenden Befehl im Terminal aus, um den Projektcode zu erhalten:git clone https://github.com/sofi444/realtime-transcription-fastrtc cd realtime-transcription-fastrtc
- Einrichten einer virtuellen Umgebung
Um Abhängigkeitskonflikte zu vermeiden, erstellen Sie eine virtuelle Python-Umgebung. Es gibt zwei offiziell empfohlene Wege, dies zu tun:
Modus 1: Verwendung von uv (empfohlen)
Installieren Sie erstensuv
(Ref.https://docs.astral.sh/uv/
) und dann ausführen:uv venv --python 3.11 source .venv/bin/activate # Windows 用户运行 .venv\Scripts\activate uv pip install -r requirements.txt
Weg 2: Pip verwenden
python -m venv .venv source .venv/bin/activate # Windows 用户运行 .venv\Scripts\activate pip install --upgrade pip pip install -r requirements.txt
- ffmpeg installieren
Installation je nach Betriebssystemffmpeg
::
macOS::brew install ffmpeg
Linux (Ubuntu/Debian)::
sudo apt update sudo apt install ffmpeg
Windows (Computer)::
- Herunterladen von
ffmpeg
Ausführbar (vonhttps://ffmpeg.org/download.html
). - Fügen Sie sie der Systemumgebungsvariable hinzu oder legen Sie sie in das Stammverzeichnis des Projekts.
- Herunterladen von
- Umgebungsvariablen konfigurieren
Erstellen Sie im Stammverzeichnis des Projekts die Datei.env
fügen Sie Folgendes hinzu:UI_MODE=fastapi APP_MODE=local SERVER_NAME=localhost PORT=7860 MODEL_ID=openai/whisper-large-v3-turbo
UI_MODE
: Eingestellt aufgradio
Verwenden Sie die Gradio-Schnittstelle, umfastapi
Verwenden Sie eine benutzerdefinierte HTML-Schnittstelle (Standard).APP_MODE
: Der lokale Lauf ist eingestellt auflocal
Die Cloud-Bereitstellung ist eingestellt aufdeployed
.MODEL_ID
Whisper: Gibt das Whisper-Modell an, Standardopenai/whisper-large-v3-turbo
.SERVER_NAME
: Server-Adresse, Standardlocalhost
.PORT
: Portnummer, Standard7860
.
- Laufende Projekte
Starten Sie das Hauptprogramm:python main.py
Das Terminal zeigt eine URL an (z. B.
http://localhost:7860
Der Port kann im Gradio-Modus unterschiedlich sein, achten Sie also auf die Terminal-Anweisungen.
Hauptfunktionen
Sprachtranskription in Echtzeit
- Transkription startenÖffnen Sie die Benutzeroberfläche und klicken Sie auf die Schaltfläche "Aufnahme starten", um Ihren Browser für den Zugriff auf das Mikrofon zu autorisieren. Das System wird die Stimme automatisch erkennen und den Text anzeigen.
- Ergebnisse anzeigenTranskribierter Text wird in Echtzeit im Textfeld der Schnittstelle angezeigt, wobei automatisch zum neuesten Inhalt geblättert wird.
- Aussetzung der TranskriptionKlicken Sie auf die Schaltfläche "Stop", um die Spracheingabe zu unterbrechen.
- zur Kenntnis nehmenUm eine geringe Latenzzeit zu gewährleisten, ist das Projekt standardmäßig auf eine Stapelgröße von 1 eingestellt, d. h. jeder empfangene Audioclip wird sofort transkribiert.
Erkennung von Sprachaktivität (VAD)
- Der VAD unterscheidet automatisch zwischen Sprache und Stille, um die Effizienz der Transkription zu verbessern. Einstellbare Parameter (siehe FastRTC-Dokumentation)
https://fastrtc.org
):audio_chunk_duration
Länge des Audioclips, Standardwert: 0,6 Sekunden.started_talking_threshold
Schwellenwert für das Einsetzen der Stimme, Standardwert 0,2 Sekunden.speech_pad_ms
Stille Füllung, Standardwert 400 Millisekunden.
- Änderung: Bearbeiten
main.py
oder Parameter über Umgebungsvariablen übergeben.
Interface-Schaltung
- Gradio-SchnittstelleIdeal für schnelle Tests: Die Schnittstelle enthält eine Aufnahmetaste und einen Textanzeigebereich. Einstellungen
UI_MODE=gradio
Führen Sie es anschließend aus, um auf die vom Terminal angezeigte Adresse zuzugreifen. - FastAPI-SchnittstelleAnpassung: Unterstützt die Anpassung und ist für Entwickler geeignet. Ändern Sie
index.html
Stile oder Funktionen können angepasst werden. EinstellungenUI_MODE=fastapi
Besuchen Sie nach dem Laufhttp://localhost:8000
.
Featured Function Bedienung
Lokale Flüstermodelle
- Standardmodell:
openai/whisper-large-v3-turbo
leicht, mehrsprachig, hervorragende Leistung. - Ändern von Modellen: Einstellungen
MODEL_ID
z.B..openai/whisper-small
(für Geräte mit niedrigem Profil). Unterstützung für andere Hugging Face ASR-Modelle (https://huggingface.co/models?pipeline_tag=automatic-speech-recognition
). - Spracheinstellung: Die Standardübersetzung ist Englisch, wenn Sie andere Sprachen transkribieren möchten, stellen Sie diese im Code ein.
language
Parameter (z.B.language=zh
(kennzeichnet Chinesisch). - Laufoptimierung: Beim ersten Lauf wird das Modell aufgewärmt, um die Latenz zu verringern. GPU-Beschleunigung wird empfohlen.
Unterstützung mehrerer Sprachen
- Unterstützt Englisch, Chinesisch, Spanisch und andere Sprachen, je nach Modell.
- Konfiguration: In der
main.py
aufstellentranscribe
Aufgabe und geben Sie die Zielsprache an. - Beispiel: Transkription chinesischer Sprache, Einstellung
language=zh
Vergewissern Sie sich, dass der Mikrofoneingang frei ist.
Cloud-Bereitstellung
- Gesicht umarmen Räume: Einstellungen
APP_MODE=deployed
So konfigurieren Sie den Turn-Server (siehehttps://fastrtc.org/deployment/
). Laden Sie den Code hoch und führen Sie ihn nach Aufforderung durch die Plattform aus. - Andere PlattformenSie müssen WebRTC und die Serverumgebung manuell konfigurieren, um sicherzustellen, dass die Ports offen sind.
Fehlerbehandlung
- gemeinsamer Fehler::
- "Verbindung fehlgeschlagen": Überprüfen Sie das Netzwerk oder die WebRTC-Konfiguration.
- "Modell nicht gefunden": bestätigt
MODEL_ID
Korrekt und das Modell wurde heruntergeladen. - "ffmpeg nicht gefunden": Stellen Sie sicher, dass die
ffmpeg
Installiert und im Systempfad.
- Komponenten während der Prüfung anpassenTerminalprotokolle zur Laufzeit anzeigen, um Audio-Samplerate, Modell-Ladestatus usw. aufzuzeichnen.
caveat
- SoftwareGPU empfohlen für Echtzeit-Inferenz, MPS-Unterstützung
whisper-large-v3-turbo
. - Browser (Software)Chrome oder Firefox wird empfohlen, um sicherzustellen, dass WebRTC ordnungsgemäß funktioniert.
- SprachgenauigkeitAbhängig von der Mikrofonqualität und der Umgebung, empfohlen für den Einsatz in ruhigen Umgebungen.
Anwendungsszenario
- Verfahren
In Meetings vor Ort oder aus der Ferne können Sie Diskussionen in Echtzeit transkribieren und Abschriften erstellen. Teams können diese direkt exportieren und zusammenstellen, sodass keine manuellen Notizen mehr erforderlich sind. - Live-Untertitelung
Fügen Sie Live-Übertragungen Untertitel in Echtzeit hinzu, um die Zugänglichkeit von Inhalten zu verbessern. Moderatoren können schnell durch die Gradio-Schnittstelle arbeiten und die Zuschauer sehen den Text sofort. - Sprachenlernen
Transkribieren Sie die Aussprache als Text, um die Genauigkeit zu überprüfen, wenn Schüler Fremdsprachen üben. Unterstützt mehrere Sprachen, geeignet für Englisch, Chinesisch und andere Lernszenarien. - Entwicklungsfähigkeit
Entwickler können Projekte in andere Anwendungen integrieren, um WebRTC- oder ASR-Funktionen zu testen. Der offene Code unterstützt die Sekundärentwicklung.
QA
- Brauche ich ein Netzwerk?
Für den lokalen Betrieb ist keine Internetverbindung erforderlich, die Modelle können heruntergeladen und offline verwendet werden. Die Bereitstellung in der Cloud erfordert Netzwerkunterstützung für WebRTC. - Welche Sprachen werden unterstützt?
Standardmäßig wird Englisch unterstützt. Einstellungenlanguage
Die Parameter können je nach Whisper-Modell Chinesisch, Spanisch usw. unterstützen. - Wie lässt sich die Transkriptionsgenauigkeit verbessern?
Verwenden Sie ein hochwertiges Mikrofon, achten Sie auf eine ruhige Umgebung und wählen Sie ein großes Modell (z. B. einwhisper-large-v3-turbo
). - Kann ich die Benutzeroberfläche anpassen?
Ja, bearbeitbar im FastAPI-Modus!index.html
, die Anpassung von Stilen oder das Hinzufügen von Funktionen. - Warum verzögert sich die Transkription?
Kann an mangelnder Hardwareleistung oder Netzwerkproblemen liegen. GPU wird empfohlen, prüfen Sie die WebRTC-Konfiguration.