0%

飞桨做语音识别

在银河麒麟v10 上能够与 Qt 快速集成的中文 TTS 离线引擎有哪些?

在银河麒麟v10 上能够与 Qt QTextToSpeech 快速集成的中文 TTS 离线引擎有哪些?

  • 在 Windows 10 上通过 QTextToSpeech 使用微软 SAPI 引擎 能够快速实现原型。

放弃 speech-dispatcher

核心局限性:

原生 QTextToSpeech 在 Linux 下的默认后端是 speech-dispatcher(Linux 通用语音调度框架),而该框架默认缺乏优质的中文离线语音模型。

直接使用 QTextToSpeech 难以实现流畅的中文离线朗读,大多只能支持英文或机械感极强的中文(甚至无法识别中文),需要额外配置中文 TTS 后端引擎才能满足需求。

1
2
sudo apt install espeak-ng espeak-ng-data speech-dispatcher espeak-ng espeak-ng-data libespeak-ng1
espeak-ng -vzh "你好,我是Linux系统"

飞桨

注意事项:

  • PaddleSpeech 暂不支持 PaddlePaddle 3.x 版本
  • 换清华镜像源加速下载 b
  • 不可以同时安装 paddlepaddle(CPU 版)和 paddlepaddle-gpu(GPU 版)

没有显卡,使用 cpu :

1
2
3
4
5
6
conda env remove -y -n paddle_cpu
conda create -y -n paddle_cpu python=3.10
conda activate paddle_cpu
pip install paddlepaddle==2.6.2 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
pip install pytest-runner paddlespeech paddlespeech-ctcdecoders -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install "numpy<2" --force-reinstall

有显卡时:

1
2
3
4
5
6
conda env remove -y -n paddle_cu11
conda create -y -n paddle_cu11 python=3.10
conda activate paddle_cu11
pip install paddlepaddle-gpu==2.6.2 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
pip install pytest-runner paddlespeech -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install "numpy<2" --force-reinstall

迁移到离线环境中使用时,还需要:

  • C:\Users\{you}\AppData\Roaming\nltk_data
  • C:\Users\{you}\AppData\.paddlespeech
  • C:\Users\{you}\AppData\.paddlenlp

存在两个短板,可能是我的问题,不想搞了:

  • 语音合成耗时久,无论是 GPU 还是 CPU 命令执行时耗时 10s+,和初始加载模型有关,但除了写代码好像没其他办法
  • 从联网设备往公司内网导入不友好,蚂蚁搬家,逐步试错,找出依赖文件,逐个导入

miniconda

参考 [Installing Miniconda][https://www.anaconda.com/docs/getting-started/miniconda/install#linux-2]

1
2
3
4
5
6
7
# install
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
# activate
source ~/miniconda3/bin/activate

paddlespeech_server

直接使用这项服务,它在启动服务时将模型加载到内存中备用,避免使用 CLI 时每次重新加载。

但避免使用 paddlespeech_client ,它在发出网络请求之前耗时做了很多无用功。

1
2
3
4
conda activate paddle_cpu
# conda activate paddlespeech_cpu
paddlespeech_server start --config_file ./demos/speech_server/conf/application.yaml
paddlespeech_client tts --server_ip 10.0.0.100 --port 8090 --input "您好,欢迎使用百度飞桨语音合成服务。" --output output.wav

client

1
# shell 脚本

Coqui TTS

这个框架在 2024 年初宣布停止维护,但 2025 年时依然很热门。

1
2
3
conda env remove -y -n coqui_tts
conda create -y -n coqui_tts python=3.10
pip install TTS -i https://pypi.tuna.tsinghua.edu.cn/simple