安装实时语音转文字WhisperStream

背景

想要实现实时语音转文字,并需要通过web共享出去,WhisperStreamWeb项目非常合适

环境

  • Debain12
  • 3070
  • CUDA:12.7
  • cuDNN:9.6.0

步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

# 安装ffmpeg依赖
sudo apt install ffmpeg


# 建好conda虚拟环境,需要安装miniconda
conda create --name tts python=3.10.6

# 激活虚拟环境
conda activate tts

# 拉取目标仓库
git clone https://github.com/QuentinFuxa/whisper_streaming_web && cd whisper_streaming_web

# 安装依赖
pip install librosa soundfile

# Whisper streaming web required dependencies
pip install fastapi ffmpeg-python

# 安装后端依赖,这里我用的本地GPU所以选择faster-whisper, 需求有前置要求要安装好cuda,参考[官方链接](https://developer.nvidia.com/cuda-downloads) 或[安装cuda](luyublog.com/InstallNvidiaDriverAndCUDA)

# 安装后端
pip install faster-whisper

# 安装音频控制器用来检测是否有声音在说话
pip install torch torchaudio

# 安装uvicorn作为服务器
pip install uvicorn
pip install websockets

# 检测下是否正常输出
python whisper_fastapi_online_server.py -h

# 启动:
python whisper_fastapi_online_server.py --host 0.0.0.0 --port 8000 --model large-v3-turbo --backend faster-whisper --vac --vad

# 带上 --log-level DEBUG参数查看debug信息
--log-level DEBUG

报错

缺失ffmpeg

描述:FileNotFoundError: [Errno 2] No such file or directory: ‘ffmpeg’

原因:系统中缺少实际的 ffmpeg 可执行文件。ffmpeg-python 是 Python 的一个接口,用于与 ffmpeg 交互,但它需要依赖操作系统上安装的 ffmpeg 二进制程序。

解决:

1
2
# 安装ffmpeg
sudo apt install ffmpeg

libcudnn_ops.so无法加载

描述:Unable to load any of {libcudnn_ops.so.9.1.0, libcudnn_ops.so.9.1, libcudnn_ops.so.9, libcudnn_ops.so}
Invalid handle. Cannot load symbol cudnnCreateTensorDescriptor

原因:找不到libcudnn_ops.so系列库。缺乏正确版本的 cuDNN,CUDA Toolkit和cuDNN不是一个东西,CUDA Toolkit默认不会包含cuDNN库

解决:安装cuDNN

电脑浏览器访问本地端口识别失败

原因:

  • 本地ip是http,浏览器默认禁止了麦克风访问权限
  • 如果不是本机启动,需要将ws地址改为目标ip地址

解决:

  • 浏览器访问”edge://flags/“ 找到Insecure origins treated as secure特性,把地址加入白名单

  • 把ws地址改为实际地址

手机浏览器识别失败

原因:

  • 手机浏览器获取输入设备失败,可能是因为http的原因,尝试换成https

解决: 使用nginx开启https反代处理成功