Dieses Projekt ist eine Echtzeit-Transkriptionsanwendung, die das OpenAI-Flüstermodell verwendet, um die Spracheingabe in die Textausgabe umzuwandeln. Es kann verwendet werden, um sowohl Live-Audioeingaben von Mikrofon- als auch auf aufgezeichneten Audiodateien zu transkribieren.
bash scripts/setup.sh pip install whisper-live Der Server unterstützt zwei Backends faster_whisper und tensorrt . Wenn Sie tensorrt Backend ausführen, folgen Sie Tensorrt_whisper Readme
python3 run_server.py --port 9090
--backend faster_whisper
# running with custom model
python3 run_server.py --port 9090
--backend faster_whisper
-fw " /path/to/custom/faster/whisper/model " # Run English only model
python3 run_server.py -p 9090
-b tensorrt
-trt /home/TensorRT-LLM/examples/whisper/whisper_small_en
# Run Multilingual model
python3 run_server.py -p 9090
-b tensorrt
-trt /home/TensorRT-LLM/examples/whisper/whisper_small
-m Um die Anzahl der von OpenMP verwendeten Threads zu steuern, können Sie die Umgebungsvariable OMP_NUM_THREADS festlegen. Dies ist nützlich, um die CPU -Ressourcen zu verwalten und eine konsequente Leistung zu gewährleisten. Wenn nicht angegeben, ist OMP_NUM_THREADS standardmäßig auf 1 gesetzt. Sie können dies ändern, indem Sie das Argument --omp_num_threads verwenden:
python3 run_server.py --port 9090
--backend faster_whisper
--omp_num_threads 4Wenn der Server beim Ausführen des Servers ohne Angabe eines Modells standardmäßig ausgeführt wird, instanziiert der Server für jede Clientverbindung ein neues Flüchemodell. Dies hat den Vorteil, dass der Server unterschiedliche Modellgrößen verwenden kann, basierend auf der angeforderten Modellgröße des Kunden. Andererseits bedeutet dies auch, dass Sie warten müssen, bis das Modell auf die Kundenverbindung geladen wird, und Sie haben die (v) RAM -Nutzung erhöht.
Beim Servieren eines benutzerdefinierten Tensorrt -Modells unter Verwendung der Option -trt oder eines benutzerdefinierten -fw -Modells wird der Server das benutzerdefinierte Modell nur einmal so instanziiert und dann für alle Client -Verbindungen wiederverwendet.
Wenn Sie dies nicht wollen, setzen Sie --no_single_model .
lang : Sprache des Eingabe -Audio, nur dann anwendbar, wenn ein mehrsprachiges Modell verwendet wird.translate : Wenn Sie auf True gesetzt sind, dann übersetzen Sie von einer beliebigen Sprache zu en .model : Flüstermodellgröße.use_vad : Ob Sie Voice Activity Detection auf dem Server verwenden.save_output_recording : Setzen Sie auf True, um die Mikrofoneingabe als .wav -Datei während der Live -Transkription zu speichern. Diese Option ist hilfreich für die Aufzeichnung von Sitzungen für die spätere Wiedergabe oder Analyse. Standardmäßig False .output_recording_filename : Gibt den .wav -Dateipfad an, auf dem die Mikrofoneingabe gespeichert wird, wenn save_output_recording auf True eingestellt ist.max_clients : Gibt die maximale Anzahl von Clients an, die der Server zulassen sollte. Standardeinstellung auf 4.max_connection_time : Maximale Verbindungszeit für jeden Client in Sekunden. Standardeinstellung auf 600. from whisper_live . client import TranscriptionClient
client = TranscriptionClient (
"localhost" ,
9090 ,
lang = "en" ,
translate = False ,
model = "small" , # also support hf_model => `Systran/faster-whisper-small`
use_vad = False ,
save_output_recording = True , # Only used for microphone input, False by Default
output_recording_filename = "./output_recording.wav" , # Only used for microphone input
max_clients = 4 ,
max_connection_time = 600
) Es stellt eine Verbindung zu dem Server, der auf Localhost unter Port 9090 ausgeführt wird. Wenn Sie ein mehrsprachiges Modell verwenden, wird die Sprache für die Transkription automatisch erkannt. Sie können auch die Sprachoption verwenden, um die Zielsprache für die Transkription in diesem Fall Englisch ("EN") anzugeben. Die Übersetzungsoption sollte auf True eingestellt werden, wenn wir aus der Quellsprache in Englisch und False übersetzen möchten, wenn wir in die Quellsprache transkribieren möchten.
client ( "tests/jfk.wav" ) client () client ( rtsp_url = "rtsp://admin:[email protected]/rtsp" ) client ( hls_url = "http://as-hls-ww-live.akamaized.net/pool_904/live/ww/bbc_1xtra/bbc_1xtra.isml/bbc_1xtra-audio%3d96000.norewind.m3u8" )GPU
docker run -it --gpus all -p 9090:9090 ghcr.io/collabora/whisperlive-gpu:latestdocker run -p 9090:9090 --runtime=nvidia --gpus all --entrypoint /bin/bash -it ghcr.io/collabora/whisperlive-tensorrt
# Build small.en engine
bash build_whisper_tensorrt.sh /app/TensorRT-LLM-examples small.en
# Run server with small.en
python3 run_server.py --port 9090
--backend tensorrt
--trt_model_path " /app/TensorRT-LLM-examples/whisper/whisper_small_en "CPU
docker run -it -p 9090:9090 ghcr.io/collabora/whisperlive-cpu:latestHinweis : Standardmäßig verwenden wir "kleine" Modellgröße. Um das Docker -Bild für eine andere Modellgröße zu erstellen, ändern Sie die Größe in Server.py und erstellen Sie dann das Docker -Bild.
Wir können Ihnen sowohl bei Open Source- als auch bei proprietären KI -Projekten helfen. Sie können uns über die Collabora -Website oder [email protected] und [email protected] erreichen.
@article { Whisper
title = { Robust Speech Recognition via Large-Scale Weak Supervision } ,
url = { https://arxiv.org/abs/2212.04356 } ,
author = { Radford, Alec and Kim, Jong Wook and Xu, Tao and Brockman, Greg and McLeavey, Christine and Sutskever, Ilya } ,
publisher = { arXiv } ,
year = { 2022 } ,
} @misc { Silero VAD,
author = { Silero Team } ,
title = { Silero VAD: pre-trained enterprise-grade Voice Activity Detector (VAD), Number Detector and Language Classifier } ,
year = { 2021 } ,
publisher = { GitHub } ,
journal = { GitHub repository } ,
howpublished = { url{https://github.com/snakers4/silero-vad} } ,
email = { hello @ silero.ai }
}