原文博客:Doi技术团队 链接地址:https://blog.doiduoyi.com/authors/1584446358138 初心:记录优秀的Doi技术团队学习经历
本项目是基于PaddlePaddle的DeepSpeech项目修改的,方便训练中文自定义数据集。
本项目使用的环境:
DeepSpeech/setup/
目录下,执行setup.sh
脚本,注意在执行之后需要输入root用户密码,等待安装即可cd DeepSpeech/setup/
sh setup.shdata
目录下是公开数据集的下载和制作训练数据列表和字典的,本项目提供了下载公开的中文普通话语音数据集,分别是Aishell,Free ST-Chinese-Mandarin-Corpus,THCHS-30 这三个数据集,总大小超过28G。下载这三个数据只需要执行一下代码即可,当然如何想快速训练,也可以只下载其中一个。cd data/
python aishell.py
python free_st_chinese_mandarin_corpus.py
python thchs_30.pyDeepSpeech/dataset/audio/
目录下,例如我们有个wav
的文件夹,里面都是语音文件,我们就把这个文件存放在DeepSpeech/dataset/audio/
。DeepSpeech/dataset/annotation/
目录下,程序会遍历这个文件下的所有数据列表文件。例如这个文件下存放一个my_audio.txt
,它的内容格式如下。每一行数据包含该语音文件的相对路径和该语音文件对应的中文文本,要注意的是该中文文本只能包含纯中文,不能包含标点符号、阿拉伯数字以及英文字母。manifest.dev、manifest.test、manifest.train
。然后计算均值和标准差用于归一化,脚本随机采样2000个的语音频谱特征的均值和标准差,并将结果保存在mean_std.npz
中。建立词表。最后建立词表,把所有出现的字符都存放子在zh_vocab.txt
文件中,一行一个字符。以上生成的文件都存放在DeepSpeech/dataset/
目录下。# 生成数据列表
python tools/create_manifest.py
# 计算均值和标准差
python tools/compute_mean_std.py
# 构建字典
python tools/build_vocab.pyDeepSpeech/models/checkpoints
目录下。CUDA_VISIBLE_DEVICES=0,1 python train.py下载语言模型并放在lm目录下,以下是下载的是70G的超大语言模型,如果不想使用这么大的,可以下载Mandarin LM Small ,这个模型会小很多。
cd DeepSpeech/
mkdir lm
wget https://deepspeech.bj.bcebos.com/zh_lm/zhidao_giga.klm
host_ip
参数是电脑本机的IP地址,其他使用默认就可以。CUDA_VISIBLE_DEVICES=0,1 python deploy/server.py空格键
,按住并开始讲话。讲话完毕请释放该键以让控制台中显示语音的文本结果。要退出客户端,只需按ESC键
。python deploy/client.py