AI Personal Learning
und praktische Anleitung
CyberKnife-Zeichenspiegel

Open-Source-Tool für Sprache in Text in Echtzeit

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.

Open-Source-Tools für Echtzeit-Sprache in Text-1


 

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.

  1. Überprüfung der Systemanforderungen
    • Python-Version: >= 3.10.
    • Montage ffmpegfür die Audioverarbeitung verwendet.
    • Empfohlene Hardware: GPUs (z.B. MPS oder CUDA) zur Beschleunigung der Modellinferenz, CPUs können auch laufen, sind aber langsamer.
  2. 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
    
  3. 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 erstens uv(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
    
  4. ffmpeg installieren
    Installation je nach Betriebssystem ffmpeg::
    macOS::

    brew install ffmpeg
    

    Linux (Ubuntu/Debian)::

    sudo apt update
    sudo apt install ffmpeg
    

    Windows (Computer)::

    • Herunterladen von ffmpeg Ausführbar (von https://ffmpeg.org/download.html).
    • Fügen Sie sie der Systemumgebungsvariable hinzu oder legen Sie sie in das Stammverzeichnis des Projekts.
  5. 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 auf gradio Verwenden Sie die Gradio-Schnittstelle, um fastapi Verwenden Sie eine benutzerdefinierte HTML-Schnittstelle (Standard).
    • APP_MODE: Der lokale Lauf ist eingestellt auf localDie Cloud-Bereitstellung ist eingestellt auf deployed.
    • MODEL_IDWhisper: Gibt das Whisper-Modell an, Standard openai/whisper-large-v3-turbo.
    • SERVER_NAME: Server-Adresse, Standard localhost.
    • PORT: Portnummer, Standard 7860.
  6. Laufende Projekte
    Starten Sie das Hauptprogramm:

    python main.py
    

    Das Terminal zeigt eine URL an (z. B. http://localhost:7860Der 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_durationLänge des Audioclips, Standardwert: 0,6 Sekunden.
    • started_talking_thresholdSchwellenwert für das Einsetzen der Stimme, Standardwert 0,2 Sekunden.
    • speech_pad_msStille 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. Einstellungen UI_MODE=fastapi Besuchen Sie nach dem Lauf http://localhost:8000.

Featured Function Bedienung

Lokale Flüstermodelle

  • Standardmodell:openai/whisper-large-v3-turboleicht, mehrsprachig, hervorragende Leistung.
  • Ändern von Modellen: Einstellungen MODEL_IDz.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 aufstellen transcribe Aufgabe und geben Sie die Zielsprache an.
  • Beispiel: Transkription chinesischer Sprache, Einstellung language=zhVergewissern Sie sich, dass der Mikrofoneingang frei ist.

Cloud-Bereitstellung

  • Gesicht umarmen Räume: Einstellungen APP_MODE=deployedSo konfigurieren Sie den Turn-Server (siehe https://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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  1. 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.
  2. Welche Sprachen werden unterstützt?
    Standardmäßig wird Englisch unterstützt. Einstellungen language Die Parameter können je nach Whisper-Modell Chinesisch, Spanisch usw. unterstützen.
  3. 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. ein whisper-large-v3-turbo).
  4. Kann ich die Benutzeroberfläche anpassen?
    Ja, bearbeitbar im FastAPI-Modus! index.html, die Anpassung von Stilen oder das Hinzufügen von Funktionen.
  5. Warum verzögert sich die Transkription?
    Kann an mangelnder Hardwareleistung oder Netzwerkproblemen liegen. GPU wird empfohlen, prüfen Sie die WebRTC-Konfiguration.
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Open-Source-Tool für Sprache in Text in Echtzeit
de_DEDeutsch