语音转文本快速入门

./examples/tiny/local 中提供的几个shell脚本将帮助我们快速尝试,包括数据准备、模型训练、案例推断和模型评估,使用一些公共数据集(例如 LibriSpeechAishell)。阅读这些示例还将帮助您理解如何使用您的数据。

./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.shsh train.shsh test.sh 来完成数据准备、训练和测试。

评估模型

要定量评估模型的性能,请运行:

CUDA_VISIBLE_DEVICES=0 bash local/test.sh

错误率(默认:字错误率;可以通过 error_rate_type 设置)将被打印。

我们提供两种类型的CTC解码器:CTC贪婪解码器CTC束搜索解码器CTC贪婪解码器是简单最佳路径解码算法的实现,每个时间步选择最可能的标记,因此是贪婪的和局部最优的。CTC束搜索解码器则利用启发式广度优先图搜索以达到近似全局最优性;它还需要一个预训练的KenLM语言模型以获得更好的评分和排名。解码器类型可以通过参数decoding_method进行设置。