先介绍两种免费的语音合成工具
官网
http://balabolka.site/balabolka.htm
是一种基于微软Speech API (SAPI)的免费语音合成工具,只是简单的发音合成,效果比较生硬
官网
https://coqui.ai/
是基于深度学习的语音合成软件,效果较好
安装环境
要求python运行环境:https://www.python.org/downloads/windows/
本文基于版本:python-3.8.10-amd64.exe,并且自行更新并设置好pip安装源
pip安装Coqui TTS
pip install tts
会安装机器学习库torch,以及大量相关组件包,大约1G多
Successfully installed Babel-2.12.1 Jinja2-3.1.2 MarkupSafe-2.1.2 TTS-0.11.1 Wer
kzeug-2.2.3 anyascii-0.3.1 audioread-3.0.0 backports.zoneinfo-0.2.1 certifi-2022
.12.7 cffi-1.15.1 charset-normalizer-3.1.0 click-8.1.3 colorama-0.4.6 coqpit-0.0
.17 cython-0.29.28 dateparser-1.1.7 decorator-5.1.1 docopt-0.6.2 flask-2.2.3 fss
pec-2023.3.0 g2pkk-0.1.2 gruut-2.2.3 gruut-ipa-0.13.0 gruut_lang_de-2.0.0 gruut_
lang_en-2.0.0 idna-3.4 importlib-metadata-6.0.0 importlib_resources-5.12.0 infle
ct-5.6.0 itsdangerous-2.1.2 jamo-0.4.1 jieba-0.42.1 joblib-1.2.0 jsonlines-1.2.0
librosa-0.8.0 llvmlite-0.38.1 mecab-python3-1.0.5 networkx-2.8.8 nltk-3.8.1 num
2words-0.5.12 numba-0.55.1 numpy-1.21.6 pandas-1.5.3 platformdirs-3.1.1 pooch-1.
7.0 protobuf-3.19.6 psutil-5.9.4 pycparser-2.21 pynndescent-0.5.8 pypinyin-0.48.
0 pysbd-0.3.4 python-crfsuite-0.9.9 pytz-2022.7.1 pytz-deprecation-shim-0.1.0.po
st0 pyyaml-6.0 regex-2022.10.31 requests-2.28.2 resampy-0.4.2 scikit-learn-1.2.2
scipy-1.10.1 soundfile-0.12.1 tensorboardX-2.6 threadpoolctl-3.1.0 torch-1.13.1
torchaudio-0.13.1 tqdm-4.65.0 trainer-0.0.20 typing-extensions-4.5.0 tzdata-202
2.7 tzlocal-4.2 umap-learn-0.5.1 unidic-lite-1.0.8 urllib3-1.26.15 zipp-3.15.0
安装完之后就能直接在命令行使用tts工具(要求系统环境变量path中包含Python User安装目录:Python38\Scripts)
查看本地所有模型
tts --list_models
执行测试命令
tts --text "Hello world." --out_path aaa.wav
这时会下载模型列表中第一项:https://coqui.gateway.scarf.sh/v0.10.1_models/tts_models–multilingual–multi-dataset–your_tts.zip,然而这个链接我这边从来没有成功下载过
只能手动从github下载
https://github.com/coqui-ai/TTS/releases/tag/v0.10.1_models
下载其中的tts_models–zh-CN–baker–tacotron2-DDC-GST.zip,这是YourTTS的多人训练模型,里边只有英语、法语、西班牙语
下载之后解压缩到
%USERPROFILE%\AppData\Local\tts
再次使用命令:–list_models,就能看到第一条模型已经下载,理论上到这里就能正确输出语音了,但是我这边又遇到两个问题
这是因为缺少ffmpeg运行环境,访问官网:https://ffmpeg.org/download.html,查看可知libavdevice 58要求的版本是4.4.3
从官网引导找到:https://github.com/BtbN/FFmpeg-Builds/releases/tag/autobuild-2023-03-13-12-46
下载其中的:ffmpeg-n4.4.3-3-gb48951bd29-win64-lgpl-shared-4.4.zip
解压缩其中以下几个dll拷贝到Python User安装目录:Python38\Scripts,即可
还有一种更简单的方案,如果系统中已经安装微信、QQ,直接复制其安装目录下的avdevice-58.dll到Python38\Scripts同样也可以
这个就奇了怪了,试过很多方法包括从
https://github.com/ikegami-yukino/mecab/releases/tag/v0.996.2
安装:mecab-64-0.996.2.exe,拷贝libmecab.lib、libmecab.dll,更新vsruntime都无法解决
后来看到一个issue:https://github.com/coqui-ai/TTS/issues/711
得到启发,虽然我用的版本不同,但方法类似,通过查找到python tts目录下使用MeCab的地方
添加注释#,关闭MeCab引用,就能顺利运行tts了
由于tts默认下载连接总是不成功,所以还是手动下载:https://github.com/coqui-ai/TTS/releases/tag/v0.6.1_models
下载其中:tts_models–zh-CN–baker–tacotron2-DDC-GST.zip
同样解压缩到
%USERPROFILE%\AppData\Local\tts
进过一番折腾,终于能够顺利合成中文语音,命令中需要指定中文模型
tts --text "知是行之始,行是知之成。" --out_path aaa.wav --model_name tts_models/zh-CN/baker/tacotron2-DDC-GST
在python中使用中文语音合成
from TTS.api import TTS
tts=TTS("tts_models/zh-CN/baker/tacotron2-DDC-GST")
tts.tts_to_file(text="知是行之始,行是知之成。", file_path="aaa.wav")
https://github.com/coqui-ai/TTS
https://tts.readthedocs.io/en/latest/index.html
https://github.com/Edresson/YourTTS
https://github.com/SamuraiT/mecab-python3/issues/46
https://blog.csdn.net/Haulyn5/article/details/126770543
https://blog.csdn.net/ZYXpaidaxing/article/details/81913708
https://blog.csdn.net/weixin_43816759/article/details/119277486