语音转文本快速入门
在 ./examples/tiny/local 中提供的几个shell脚本将帮助我们快速尝试,包括数据准备、模型训练、案例推断和模型评估,使用一些公共数据集(例如 LibriSpeech,Aishell)。阅读这些示例还将帮助您理解如何使用您的数据。
在 ./examples 中的一些脚本没有配置GPU。如果你想使用8个GPU进行训练,请修改 CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7。如果你没有可用的GPU,请将 CUDA_VISIBLE_DEVICES= 设置为使用CPU。此外,如果发生内存不足的问题,只需减小 batch_size 以适应。
让我们以LibriSpeech 数据集为例,取一个小的样本子集。
转到目录
cd examples/tiny
注意这只是一个玩具示例,使用了LibriSpeech的一个小样本子集。如果您想尝试完整的数据集(训练将需要几天时间),请转到
examples/librispeech。源环境
source path.sh
在开始任何操作之前必须这样做。 将
MAIN_ROOT设置为项目目录。使用默认的deepspeech2模型作为MODEL,您可以在脚本中更改此设置。主入口
bash run.sh这只是一个演示,请确保每一个
step在下一个step之前都能正常工作。
以下部分提供了更详细的信息。祝您在PaddlePaddle上的DeepSpeech ASR引擎之旅愉快!
训练一个模型
普通话语言训练的关键步骤与英语语言的训练步骤相同,我们还提供了一个使用 Aishell 进行普通话训练的示例,位于 examples/aishell/local。如上所述,请依次执行 sh data.sh、sh train.sh 和 sh test.sh 来完成数据准备、训练和测试。
评估模型
要定量评估模型的性能,请运行:
CUDA_VISIBLE_DEVICES=0 bash local/test.sh
错误率(默认:字错误率;可以通过 error_rate_type 设置)将被打印。
我们提供两种类型的CTC解码器:CTC贪婪解码器和CTC束搜索解码器。CTC贪婪解码器是简单最佳路径解码算法的实现,每个时间步选择最可能的标记,因此是贪婪的和局部最优的。CTC束搜索解码器则利用启发式广度优先图搜索以达到近似全局最优性;它还需要一个预训练的KenLM语言模型以获得更好的评分和排名。解码器类型可以通过参数decoding_method进行设置。