该项目是一个实时转录应用程序,该应用程序使用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 }
}