【转载】中文开源语音识别项目

原文地址:
https://zhuanlan.zhihu.com/p/182848910

自己开了一个state-of-the-art的端到端语音识别项目,后续会不断更新和优化的。

有什么意见建议可以在issue或者在这里提。

代码地址:

TensorflowASR

更新进展:
2020/8/21:

  • 添加ESPNet模型(略有修改结构)
  • 添加Tester,先在am_data.yml/lm_data.ym里面修改eval_list即可,eval_list格式相同于train_list。目前有SER\CER两个指标并显示SUB/INS/DEL情况。
python eval_am.py --data_config ./configs/am_data.yml --model_config ./configs/conformer.yml
  • 修复一些bugs(遥遥无期的解BUG之路。。。)

2020/8/19:

  • 所有结构支持批量解码,当服务集成在服务器时,可能需要此功能
  • 更改了Transducer的训练和预测方式,使其更加的可控,并且速度提升80%,现在4.1秒音频只需110ms

2020/8/16:

  • 添加DeepSpeech2模型
  • 所有结构支持转至pb文件
  • CTC结构支持转TFLite
  • 修复一些已发现的bugs
    tips:
    预训练模型待解决TFLite问题,模型结构确定之后重训练公布。

TensorflowASR
简介:
该项目集成了当前业界最新的语音识别结构,包括CTC、RNN-Transducer、Listen Attention and Spell。使用简单,容易上手。

CTC
【转载】中文开源语音识别项目_第1张图片
RNN-Transducer
【转载】中文开源语音识别项目_第2张图片

Listen Attention and Spell

【转载】中文开源语音识别项目_第3张图片

已支持的模型:

  • Conformer
  • ESPNet
  • DeepSpeech2
  • Transformer
    O2O-Encoder-Decoder
    O2O-Encoder
    Typic

声学模型

Conformer模型为google 今年5月发表的论文中提及:

https://arxiv.org/abs/2005.08100

训练过程中会采取Data Aguments,包括:

加噪
改变pitch
改变速度
遮掩信号
语言模型

1.音素->汉字是一对一关系模型:

· O2O-Encoder-Decoder:

包含Transformer完整结构

· O2O-Encoder

不包含Transformer的Decoder,轻量级模型

2.音素->汉字非一一对应关系:

· Typic Transformer,经典的结构。

语言模型训练时会采用bert来辅助训练,以提高模型性能:

https://zhuanlan.zhihu.com/p/165071319

zhuanlan.zhihu.com
图标
性能测试

测试数据为 aishell中 test和dev数据集

使用CER作为测试指标

AM:

Test Dev
4.1% 3.26%

LM:

Test Dev
3.12% 3.16%

AM-LM:

Test Dev
8.42% 7.36%

AM CPU 速度测试,4.1秒左右的音频:

CTC Transducer LAS
150ms 350ms 280ms

LM CPU速度测试 ,12个字的转换:

O2O-Encoder-Decoder O2O-Encoder Encoder-Decoder
100ms 20ms 300ms

你可能感兴趣的:(开源工具,人工智能,语音识别,python,深度学习)