ASR Service CLI Dokumentation
Die ASR Service Kommandozeilenschnittstelle (CLI) bietet verschiedene Befehle zur Audio-Transkription sowohl im Batch-Modus als auch in Echtzeit.
Installation
Das CLI-Tool wird bei der Installation des ASR-Service-Pakets automatisch als am-cli verfügbar gemacht:
Verfügbare Befehle
Die CLI ist in mehrere Unterbefehle unterteilt, die verschiedene Transkriptionsszenarien abdecken:
1. Datei-Transkription (Batch-Modus)
transcribe-file
Transkribiert eine Audio- oder Videodatei im Batch-Modus.
Syntax:
Parameter:
- uri - Pfad zur Audio-/Videodatei (erforderlich)
Optionen:
- -ws, --websocket - Übertragung per WebSocket
- -uf, --upload-file - Datei hochladen
Beispiele:
# Transkription einer lokalen Datei
am-cli transcribe-file /pfad/zur/datei.wav
# Transkription mit WebSocket
am-cli transcribe-file --websocket audio.mp3
# Transkription mit Datei-Upload
am-cli transcribe-file --upload-file interview.m4a
Funktionsweise: - Die Datei wird an den ASR-Service gesendet - Die Transkription erfolgt über Redis Message Queue oder WebSocket - Das Ergebnis wird nach Abschluss ausgegeben
2. Mikrofon-Verwaltung
list-mic
Listet alle verfügbaren Mikrofon-Eingabegeräte mit ihrem Index und Namen auf.
Syntax:
Beispielausgabe:
3. Echtzeit-Transkription vom Mikrofon
transcribe-mic
Transkribiert Audio vom Mikrofon in Echtzeit.
Syntax:
Optionen:
- --mic INDEX_ODER_NAME - Mikrofon-Geräteindex oder Namensteil (Standard: Systemstandard)
- --model MODEL_NAME - Modellname (Standard: mistralai/Voxtral-Mini-4B-Realtime-2602)
- --sample-rate HERTZ - Audio-Abtastrate in Hz (Standard: 16000)
Beispiele:
# Mit Standard-Mikrofon
am-cli transcribe-mic
# Mit spezifischem Mikrofon (nach Index)
am-cli transcribe-mic --mic 1
# Mit spezifischem Mikrofon (nach Name)
am-cli transcribe-mic --mic "USB Audio"
# Mit anderem Modell und Abtastrate
am-cli transcribe-mic --mic 0 --model mistralai/Voxtral-Mini-4B-Realtime-2602 --sample-rate 16000
Hinweise:
- Verwenden Sie list-mic um verfügbare Mikrofone zu sehen
- Die Transkription erfolgt in Echtzeit und wird sofort ausgegeben
- Beenden Sie die Transkription mit Strg+C
4. Echtzeit-Transkription von Stream-URLs
transcribe-url
Transkribiert Audio von einer beliebigen Stream-URL in Echtzeit. Das Protokoll wird automatisch erkannt.
Syntax:
Parameter:
- url - Stream-URL (erforderlich)
Optionen:
- --model MODEL_NAME - Modellname (Standard: mistralai/Voxtral-Mini-4B-Realtime-2602)
- --sample-rate HERTZ - Audio-Abtastrate in Hz (Standard: 16000)
Unterstützte Protokolle:
- RTSP - rtsp://host:554/stream
- RTSPS - rtsps://host:322/stream
- RTMP - rtmp://host:1935/live/stream
- SRT - srt://host:1234 (benötigt ffmpeg mit libsrt)
- HLS - http://host/stream/index.m3u8
- HTTP - http://host/stream.aac (progressiv/fragmentiert)
- UDP/RTP - udp://224.0.0.1:5004
Beispiele:
# RTSP Stream
am-cli transcribe-url rtsp://192.168.1.100:554/live/stream
# HLS Stream
am-cli transcribe-url http://example.com/stream/index.m3u8
# Mit spezifischem Modell
am-cli transcribe-url --model mistralai/Voxtral-Mini-4B-Realtime-2602 rtsp://stream.example.com
Hinweise: - WebRTC und MoQ werden nicht direkt unterstützt - Verwenden Sie MediaMTX als Bridge: Es empfängt WebRTC/MoQ und veröffentlicht als RTSP/HLS neu - Siehe mediamtx.md für weitere Informationen
5. Protokoll-spezifische Befehle
Für häufig verwendete Protokolle gibt es dedizierte Aliase:
transcribe-rtsp
Transkribiert einen RTSP-Stream.
Syntax:
Beispiel:
transcribe-rtmp
Transkribiert einen RTMP-Stream.
Syntax:
Beispiel:
transcribe-srt
Transkribiert einen SRT-Stream.
Syntax:
Beispiel:
transcribe-hls
Transkribiert einen HLS-Stream.
Syntax:
Beispiel:
Konfiguration
Das CLI verwendet die gleiche Konfiguration wie der ASR-Service. Siehe configuration.md für Details zur Konfiguration.
Wichtige Konfigurationsparameter:
- Server-Host und -Port - Für WebSocket-Verbindungen
- Message Queue - Für Batch-Transkription
- Proxy-Einstellungen - Falls erforderlich
Technische Details
Batch-Transkription (transcribe-file)
Die Batch-Transkription verwendet zwei mögliche Übertragungsmethoden:
- Redis Message Queue (Standard)
- Erstellt einen Job mit eindeutiger UUID
- Veröffentlicht Job-Informationen auf einem Redis-Kanal
- Optional: Datei-Upload über Stream-Kanal
-
Wartet auf Fertigstellung über Subscribe-Kanal
-
WebSocket (mit --websocket)
- Stellt direkte WebSocket-Verbindung zum Server her
- Sendet Job-Anfrage mit Sitzungs-UUID
- Lädt Datei hoch
- Empfängt Fortschrittsaktualisierungen und Ergebnis
Echtzeit-Transkription
Die Echtzeit-Transkription funktioniert wie folgt:
- Mikrofonaufnahme:
- Audio wird mit PyAudio in Chunks aufgenommen (1024 Frames)
- PCM 16-bit Format, 16 kHz Abtastrate (konfigurierbar)
-
Chunks werden über WebSocket an den Server gesendet
-
Stream-Transkription:
- FFmpeg wird serverseitig verwendet um Audio zu extrahieren
- Audio wird an das Transkriptionsmodell weitergeleitet
-
Ergebnisse werden als JSON-Segmente zurückgesendet
-
Ausgabe:
- Segmente werden sofort ausgegeben
- Zeilenumbrüche nach ca. 80 Zeichen
- Flush nach jedem Segment für sofortige Anzeige
Fehlerbehebung
"No module named 'asr_service'"
Stellen Sie sicher, dass das ASR-Service-Paket installiert ist:
"File not found"
Überprüfen Sie, ob der angegebene Dateipfad korrekt ist. Verwenden Sie absolute oder relative Pfade.
"No input device matching..."
Führen Sie am-cli list-mic aus um verfügbare Mikrofone zu sehen und verwenden Sie den korrekten Index oder Namen.
WebSocket-Verbindungsfehler
Stellen Sie sicher, dass: - Der ASR-Service läuft - Die Konfiguration korrekt ist (Host, Port) - Keine Firewall die Verbindung blockiert
Stream-Verbindungsprobleme
Überprüfen Sie: - URL-Format ist korrekt - Stream-Server ist erreichbar - FFmpeg ist installiert (für Stream-Verarbeitung) - Bei SRT: FFmpeg wurde mit libsrt-Unterstützung kompiliert
Beispiel-Workflows
Workflow 1: Lokale Datei transkribieren
# 1. Datei transkribieren
am-cli transcribe-file /pfad/zur/interview.mp3
# Ergebnis wird ausgegeben wenn fertig
Workflow 2: Meeting in Echtzeit transkribieren
# 1. Verfügbare Mikrofone auflisten
am-cli list-mic
# 2. Mit gewünschtem Mikrofon transkribieren
am-cli transcribe-mic --mic 1
# 3. Meeting starten und sprechen
# 4. Mit Strg+C beenden
Workflow 3: IP-Kamera-Audio transkribieren
Workflow 4: Online-Radio transkribieren
# HLS-Stream von Online-Radio transkribieren
am-cli transcribe-hls http://radio.example.com/stream/playlist.m3u8