該項目是一個實時轉錄應用程序,該應用程序使用OpenAI Whisper模型將語音輸入轉換為文本輸出。它可用於從麥克風和預錄的音頻文件中轉錄實時音頻輸入。
bash scripts/setup.sh
pip install whisper-live
該服務器支持兩個後端faster_whisper
和tensorrt
。如果運行tensorrt
後端,請按照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
要控制OpenMP使用的線程數,您可以設置OMP_NUM_THREADS
環境變量。這對於管理CPU資源和確保穩定的性能很有用。如果未指定,則默認情況下將OMP_NUM_THREADS
設置為1
。您可以使用--omp_num_threads
參數來更改此操作:
python3 run_server.py --port 9090
--backend faster_whisper
--omp_num_threads 4
默認情況下,在未指定模型的情況下運行服務器時,服務器將為每個客戶端連接實例化新的耳語模型。這有一個優勢,即服務器可以根據客戶端請求的模型大小使用不同的模型大小。另一方面,這也意味著您必須等待客戶連接時加載模型,並且您將增加(v)RAM使用情況。
使用-trt
或使用-fw
選項使用自定義tensorrt模型時,服務器將僅一個自定義模型實例化,然後將其重用以適用於所有客戶端連接。
如果您不想要這個,請設置--no_single_model
。
lang
:輸入音頻的語言,僅在使用多語言模型時才適用。translate
:如果設置為True
,則從任何語言轉換為en
。model
:耳語型號大小。use_vad
:是否使用服務器上的Voice Activity Detection
。save_output_recording
:設置為true以將麥克風輸入保存為實時轉錄期間的.wav
文件。此選項有助於錄製會議以進行以後的播放或分析。默認為False
。output_recording_filename
:指定.wav
文件路徑,如果將save_output_recording
設置為True
,則將保存麥克風輸入。max_clients
:指定服務器應允許的最大客戶端數量。默認為4。max_connection_time
:每個客戶端的最大連接時間。默認為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
)
它連接到端口9090上Localhost運行的服務器。使用多語言模型,將自動檢測到轉錄的語言。您還可以使用語言選項來指定轉錄的目標語言,在這種情況下為英語(“ en”)。如果我們想用源語言轉錄源語言,則應將翻譯選項設置為True
,如果要將其從源語言轉換為英語,則應將其設置為False
。
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:latest
docker 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 "
中央處理器
docker run -it -p 9090:9090 ghcr.io/collabora/whisperlive-cpu:latest
注意:默認情況下,我們使用“小”型號大小。要構建用於不同型號大小的Docker映像,請更改Server.py中的大小,然後構建Docker映像。
我們可以為您提供開源和專有AI項目的幫助。您可以通過concomplora網站或[email protected]和[email protected]與我們聯繫。
@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 }
}