TensorflowASR 项目介绍
项目概述
TensorflowASR 是一个基于 Tensorflow 2 和 Conformer 结构的端到端语音识别模型,适用于 Python 3.6 及以上版本。其设计旨在提供高效且准确的实时语音识别功能,尤其在 CPU 环境下可实现大约 0.1 的实时率。当前的模型版本 V2 采用 CTC+translate 结构,并对中文语音识别进行了优化。
项目功能
- 语音活动检测(VAD)和降噪处理:提升语音识别的准确性。
- 在线流式和离线识别:支持不同应用场景的灵活切换。
- 标点恢复:在语音转文本过程中自动处理标点符号。
- 基于 TTS 的数据增强:通过语音合成等技术手段提升训练数据的多样性和质量。
- 音色转换和远近场数据增强:改善模型的泛化能力。
模型性能对比
在 Aishell-1 数据集上进行的离线测试结果表明,TensorflowASR 的 Conformer 结构展示了较为竞争的性能,中文字符错误率(CER)为 6.8%。在流式测试中,StreamingConformerCTC 结构的 CER 达到 7.2%,表现优于许多传统方法。
TTS 数据增强系统
为了让语音识别在缺少丰富数据的条件下仍能表现优异,项目提供了专门用于 ASR 的 TTS 系统。用户可以创建一个文本列表,通过提供的脚本生成合成语料,并选择音色和音色转换参数,以此生成丰富的训练数据。
技术实现
项目通过 TF2 实现了 Mel 层以提取语音频谱特征,并提供了优化的 Python 和 Cpp 推理方案。推理方案基于 ONNX 实现,支持较为广泛的应用部署。特别是对于流式识别,项目支持 Block Conformer + Global CTC 和 Chunk Conformer + CTC Picker 两种架构,以适应不同场景的需求。
预训练模型
提供多种已经在 AISHELL 数据集上评估的预训练模型,用户可以直接使用这些模型进行推理或进一步的训练,支持灵活的应用开发。
使用指南
使用者需要准备好训练和测试数据列表,配置 am_data.yml 文件中的训练选项,并根据所需的模型结构更新相应的配置。通过简单的命令即可完成训练和测试。不仅限于 ASR,用户还可以根据相似的步骤训练 VAD 或标点恢复等模型。
支持的模型结构
TensorflowASR 目前支持多种模型结构,包括:
- Conformer
- BlockConformer
- ChunkConformer
环境要求
项目要求使用 Python 3.6 以上版本,以及 Tensorflow 2.8 以上版本。依赖库包括 librosa、keras-bert 和 onnxruntime 等。
参考与许可
项目参考了多个优秀的开源项目,如 PaddlePaddle 的 DeepSpeech 等。使用者可以自由地在学术研究和商业产品开发中利用此项目,但禁止将其作为商品交易。
TensorflowASR 是一个强大而灵活的工具,适合研究人员和开发者在语音识别领域进行探索与开发。通过不断更新和社区支持,该项目将持续提升其性能与应用能力。欢迎大家积极参与并贡献自己的想法与代码。