本次项目是基于Kaldi做的中文语音识别,Kaldi是当前最流行的开源语音识别工具。它自带了很多特征提取模块,能提取MFCC/ivector/xvector等语音特征;也自带了很多语音模型代码,可以直接使用或重新训练GMM-HMM等模型;它还支持GPU进行训练。可以说是功能很强大了。更厉害的是,你只需要简单的SHELL编程,就能使用kaldi。kaldi作为一个工具,不需要像库一样进行大量编程,所以使用门槛其实不高。更多的Kaldi相关介绍和安装编译及使用请参考我的这篇博客:语音识别-Kaldi的安装编译实录。

一、前言

datatang_asr模型是一个训练好的开源模型,识别准确率还是挺高的(我记得官方是说92%+),它的好处在于帮你省去了训练模型和获取数据集的难题,并且它似乎不需要太高的性能要求就能使用模型。因为之前尝试使用CVTE Model v2来做,但是做到最后一步发现模型因为内存不足64G来装载总是被kill掉,导致没有办法完成。在将CVTE模型部署到服务器上使用和选择其他开源模型重新做两种弥补方案之间,我选择了后者。于是便有了这一次的尝试。

这一次datatang_asr模型的配置有了之前CVTE的经验,无非就是将其下载解压到egs/,然后按照项目目录下的tutorial.md中的提示一步一步来做就好。

安装datatang_asr可以由我之前写的安装CVTE的步骤作为参考:在Kaldi上使用CVTE模型详细过程。

datatang_asr模型的下载链接:http://kaldi-asr.org/models/m10。

二、遇到的一些问题

2021年11月10日更新:今天,我把aidatatang给的这个模型跑通了,测试数据是CVTE模型提供的wav文件,结果我会放在下面。这里要说的是,如果前面的kaldi环境配置好了,其实一步一步跟着aidatatang模型的tutorial操作就可以跑出结果。

我按照aidatatang官方给出的步骤一步一步配置环境好之后,./run.sh会出现下面的报错

steps/make_mfcc.sh: invalid option --write-utt2dur
cat: 'exp/chain/tdnn_1a_sp/decode_offline_test_20211109/log/decode.*.log': No such file or directory

并且起初还有这种错误,让我以为是源码的python语句写错:

steps/make_mfcc.sh: invalid option --write-utt2dur
./run.sh: line 23: exp/chain/tdnn_1a_sp/decode_offline_test_20211109/decode_20211109.log: No such file or directory
Traceback (most recent call last):File "local/extract_decode_log.py", line 9, in <module>f = open(logfile,'r')
IOError: [Errno 2] No such file or directory: 'exp/chain/tdnn_1a_sp/decode_offline_test_20211109/decode_20211109.log'

看到上面这个结果,我一开始以为是目标python文件的open()方法打开文件方式是’r’只读造成的,我还专门去将’r’改成了’w’和’a’,分别尝试后,仍然报其他错误。

我自行在提示的目录中增加了提示的丢失目录及文件后,仍然报错:

prepare_data.sh: Preparing data in WAVpath
sort: cannot read: data/local/offline_test/wav.scp: No such file or directory
sort: cannot read: data/local/offline_test/utt2spk: No such file or directory
Can't open data/local/offline_test/utt2spk: No such file or directory at utils/utt2spk_to_spk2utt.pl line 25.
cp: cannot stat 'data/local/offline_test/wav.scp': No such file or directory

在我冷静分析之后,我认为有一个关键的提示,就是:

steps/make_mfcc.sh: invalid option --write-utt2dur

我开始认为是这个make_mfcc.sh文件的代码问题,于是我去找到这个文件,查看其代码。我分析了一下,认为这是由run.sh或其他sh文件中使用了make_mfcc.sh --write-utt2dur命令,而make_mfcc.sh没有这一命令选项导致的。于是我去查看了kaldi在github上的项目,找到了这一个文件,惊讶的发现,官方的make_mfcc.sh和我使用的代码不完全一样,在官方的文件中,多了一个变量和option,我想这应该就是导致问题发生的主要原因。于是我重新用git工具clone了官方的项目下来,重新进行编译。
重新编译的时候,我从./check_dependencies.sh检测依赖包这一步开始,发现多出了新的需要安装的依赖包,这次新安装了sox,mkl等的包,然后我按提示以此安装,看了新项目中extras/中提供的.sh文件,多出来了好多,我想这次的kaldi应该不会再出什么问题了。

所以该问题最终的解决方案是:使用git工具从github官方下载Kaldi

我最终在2021年11月10日把aidatatang跑通了,识别率还是不错的,识别结果的路径在:

exp/chain/tdnn_1a_sp/decode_offline_test_20211109/rec_20211109.txt

我用CVTE模型提供的测试数据.wav文件作为测试用aidatatang模型跑了一遍,结果如下图

友情提示:

其实等我折腾了这两天后我才发现,原来最关键的是配置好kaldi环境,如果kaldi都配置好没有问题,然后下载的aidatatang_asr没有问题,按tutorial的步骤一步一步来,可以立即出结果,很方便很简便。所以,kaldi最好是用git工具从github去下载。

这次项目里,最耗我时间的莫过于配置、安装、编译kaldi,我在编译kaldi的过程中踩了很多坑,如connection timed out,g++报错之类的,都写在下面的文章中的中间和最后面的补充部分,可以参考下面的连接。

下载Kaldi安装等参考:语音识别-Kaldi的安装编译实录。

Kaldi语音识别:aidatatang_asr开源模型实现中文语音识别详细及遇到的问题【亲自跑通】相关推荐

  1. kaldi上第一个免费的中文语音识别例子

    今天在清华大学cslt实验室王东老师的分享下,kaldi终于有了免费的中文语音识别的例子,网址为:https://github.com/kaldi-asr/kaldi/tree/master/egs/ ...

  2. 语音识别——基于深度学习的中文语音识别系统框架

    本文搭建一个完整的中文语音识别系统,包括声学模型和语言模型,能够将输入的音频信号识别为汉字. 该系统实现了基于深度框架的语音识别中的声学模型和语言模型建模,其中声学模型包括CNN-CTC.GRU-CT ...

  3. 语音识别——基于深度学习的中文语音识别tutorial(代码实践)

    文章目录 利用thchs30为例建立一个语音识别系统 1. 特征提取 2. 数据处理 下载数据 2.1 生成音频文件和标签文件列表 定义函数`source_get`,获取音频文件及标注文件列表 确认相 ...

  4. 依图做语音了!识别精度创中文语音识别新高点

    新智元报道 编辑:闻菲 [新智元导读]依图强势进军智能语音,联合微软发布语音开放云平台,携手华为发布软硬件一体化的智能语音联合解决方案.依图语音识别算法在全球最大开源中文数据库AISHELL-2上词错 ...

  5. 【愚公系列】华为云系列之ModelArts搭建中文语音识别系统

    文章目录 前言 1.ModelArts是什么 一.语音识别技术概述 1.语音识别概述 2.语音识别的一般原理 3.信号处理与特征提取方法 3.1 MFCC 4.基于深度学习的声学模型DNN-HMM 二 ...

  6. PromptCLUE:大规模多任务Prompt预训练中文开源模型

    简介 PromptCLUE:大规模多任务Prompt预训练中文开源模型. 中文上的三大统一:统一模型框架,统一任务形式,统一应用方式.支持几十个不同类型的任务,具有较好的零样本学习能力和少样本学习能力 ...

  7. 实战:基于tensorflow 的中文语音识别模型 | CSDN博文精选

    作者 | Pelhans 来源 | CSDN博客 目前网上关于tensorflow 的中文语音识别实现较少,而且结构功能较为简单.而百度在PaddlePaddle上的 Deepspeech2 实现功能 ...

  8. 基于tensorflow 的中文语音识别模型

    目前网上关于tensorflow 的中文语音识别实现较少,而且结构功能较为简单.而百度在PaddlePaddle上的 Deepspeech2 实现功能却很强大,因此就做了一次大自然的搬运工把框架转为t ...

  9. 分享 | 开源的中文语音识别系统

    原标题:分享 | 开源的中文语音识别系统 语音识别目前已经广泛应用于各种领域,那么你会想做一个自己的语音识别系统吗?这篇文章介绍了一种开源的中文语音识别系统,读者可以借助它快速训练属于自己的中文语音识 ...

  10. 绝佳的ASR学习方案:这是一套开源的中文语音识别系统

    ASRT 是一套基于深度学习实现的语音识别系统,全称为 Auto Speech Recognition Tool,由 AI 柠檬博主开发并在 GitHub 上开源(GPL 3.0 协议).本项目声学模 ...

最新文章

  1. c语言socket鉴权,建立套接字后进行socket.io身份验证
  2. 服务器新建项目,Perfect(swift) 搭建服务器之新建项目
  3. 【虚拟化】docker部署nginx
  4. 图片的缩放(放大缩小)
  5. phpcms v9输出内容过滤html代码 - 代码篇
  6. 诗与远方:无题(八十)- 吸烟而作
  7. python:01字串
  8. STM32编译环境、建立工程模板以及程序下载
  9. java captcha 验证码_java生成图片验证码的示例代码
  10. 南阳oj-----一种排序(优先队列法)
  11. Python语言程序设计课程论文——Python小游戏
  12. 外卖侠4.24源码全插件cps使用教程【干货】
  13. 落实安全生产责任,施工单位双重预防体系智能化管理解决方案
  14. mysql c盘 越来越大_c盘分区太大怎么调整
  15. elvui显示服务器,魔兽世界怀旧服ElvUI插件
  16. win10在命令行下运行python程序
  17. Windows 10 修改桌面图标一(系统图标)
  18. 你了解函数调用过程吗?
  19. springboot的jsp应该放在哪_七、SpringBoot项目集成JSP以及项目不同启动方式及访问路径配置...
  20. 数据库原理 概念结构设计的方法

热门文章

  1. 求齐次线性方程组的基础解系matlab,MATLAB学习笔记:齐次线性方程组的基础解系...
  2. SGX Enable
  3. BZOJ 3689 异或之
  4. git报用户名和密码错误
  5. python3网络爬虫--爬取华为应用市场app数据(附源码)
  6. 如何在华为应用市场上传APP
  7. 翼次元空间:GoodUP.io与4WiN全球互贸链的基础=智协云店通+BitCOO
  8. html ol标签用罗马数字,HTML重点标签总结
  9. 计算机考研复试_数据库
  10. WEB学习第四天(网页模型