Project Icon

WhisperLive

基于OpenAI Whisper模型开发的实时音频转写应用

WhisperLive是基于OpenAI Whisper模型开发的实时音频转写应用,能高效地将直播或预录音频转换成文本。支持多语言和自定义设置,适用于个人、教育及商业场景。项目还提供Docker部署,简化安装和服务部署过程。

项目介绍:WhisperLive

WhisperLive 是一个实时转录应用程序,它利用 OpenAI 的 Whisper 模型将语音输入转换为文本输出。无论是通过麦克风输入的实时音频,还是预先录制的音频文件,WhisperLive 都可以轻松实现转录功能。

安装指南

要使用 WhisperLive,首先需要安装 PyAudio 和 ffmpeg。可以通过以下命令完成安装:

bash scripts/setup.sh

然后,通过以下命令从 pip 安装 WhisperLive:

pip install whisper-live

设置 NVIDIA/TensorRT-LLM 为 TensorRT 后端

如需使用 TensorRT 后端,需要根据 TensorRT_whisper 说明文档 进行相关设置。

快速入门

该项目的服务端支持两种后端:faster_whispertensorrt。如果使用 tensorrt 后端,请参考 TensorRT_whisper 说明文档

启动服务端

  • 启动使用 Faster Whisper 后端的服务:
python3 run_server.py --port 9090 \
                      --backend faster_whisper

如果需要使用自定义模型:

python3 run_server.py --port 9090 \
                      --backend faster_whisper \
                      -fw "/path/to/custom/faster/whisper/model"
  • 如果使用 TensorRT 后端,推荐使用 Docker 设置:
# 运行仅支持英语的模型
python3 run_server.py -p 9090 \
                      -b tensorrt \
                      -trt /home/TensorRT-LLM/examples/whisper/whisper_small_en

# 运行多语言模型
python3 run_server.py -p 9090 \
                      -b tensorrt \
                      -trt /home/TensorRT-LLM/examples/whisper/whisper_small \
                      -m

控制 OpenMP 线程数

可以通过设置 OMP_NUM_THREADS 环境变量来控制 OpenMP 使用的线程数量,这对于管理 CPU 资源和保证性能稳定非常有用。默认情况下,OMP_NUM_THREADS 为 1。可以使用参数 --omp_num_threads 来修改:

python3 run_server.py --port 9090 \
                      --backend faster_whisper \
                      --omp_num_threads 4

单模型模式

默认情况下,当服务器未指定模型时,每个客户端连接都会实例化一个新的 Whisper 模型。这样可以根据客户端请求的模型大小使用不同的模型大小。不过,这也意味着必须等待模型加载,同时内存使用会增加。

如果不希望此行为,可以设置 --no_single_model 禁用单模型模式。

客户端使用说明

初始化客户端时需要指定以下参数:

  • lang: 音频输入语言,仅在使用多语言模型时适用。
  • translate: 设置为 True 时可将任意语言翻译为英语。
  • model: Whisper 模型大小。
  • use_vad: 服务器上是否使用语音活跃检测。
  • save_output_recording: 如果设置为 True,会将麦克风输入保存为 .wav 文件(默认情况下为 False)。
  • output_recording_filename: 若 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",
  use_vad=False,
  save_output_recording=True,
  output_recording_filename="./output_recording.wav",
  max_clients=4,
  max_connection_time=600
)
  • 转录音频文件:
client("tests/jfk.wav")
  • 从麦克风进行转录:
client()
  • 从 RTSP 流进行转录:
client(rtsp_url="rtsp://admin:admin@192.168.0.1/rtsp")
  • 从 HLS 流进行转录:
client(hls_url="http://exampleurl.com/stream.m3u8")

浏览器扩展

WhisperLive 提供 Chrome 和 Firefox 浏览器扩展,用户可以直接在浏览器中转录音频。详细的安装和使用说明请参考 Audio-Transcription-ChromeAudio-Transcription-Firefox

Docker 中的 WhisperLive 服务器

WhisperLive 提供 GPU 和 CPU 的 Docker 运行方式:

  • GPU 版:

    • 使用 Faster-Whisper:
    docker run -it --gpus all -p 9090:9090 ghcr.io/collabora/whisperlive-gpu:latest
    
    • 使用 TensorRT:
    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"
    
  • CPU 版:

docker run -it -p 9090:9090 ghcr.io/collabora/whisperlive-cpu:latest

备注:默认使用的模型大小为“小”。如果需要构建其他模型大小的 Docker 映像,可以修改 server.py 中的设置然后重新构建 Docker 镜像。

未来工作

  • 添加更多语言的翻译功能。
  • 已完成 TensorRT 后端支持。

联系方式

如果需要协助进行开源或专有 AI 项目开发,可以通过 Collabora 网站或以下邮件联系:vineet.suryan@collabora.commarcus.edel@collabora.com

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号