该项目是一个实时转录应用程序,该应用程序使用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: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 "中央处理器
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 }
}