语音识别技术是一门艺术,学习语音识别是一个循序渐进的过程。

刚开始接触语音识别技术是在本科毕业广州运通研究院实习的暑假,由于本科是自动化专业,对于深度学习技术完全没有概念,对于语音识别技术更是一窍不通。实习前一个月都在做数据标注,不得不承认语音识别的标注是一样相当繁琐且乏味的工作,但是我坚持标注了一个月,到一个月结束也不明白为什么要标注。真正开始接触语音算法是在实习的后一个月,当时组内做的是语音分割,我跟着组内大佬打下手,当时我的任务时提取语音特征MFCC,这个问题对于当时的我来说真的是很难,也是在当时我接触了Python编程、Tensorflow深度学习框架,同时也知道了如何借助Arxiv、Github、Google等寻找答案,总之我用了大约10天时间参考Github写了MFCC特征提取算法,实际上当时自己并不完全理解MFCC提取的具体理论,后来接近的10天左右时间,我基本都是在看组内大佬写的语音切割算法,就这样我迷迷糊糊的实习结束了。。。

17年8月底我研究生入学了,迷迷糊糊我选择了ASR作为未来三年的研究方向,带着实习所学会的一些理论与语言开始“研究”ASR算法。Kaldi这个名词第一次出现在我脑海中是在前后找资料的一个月内,通过网上资料知道了Kaldi是一个语音识别比较大众的工具,但此处我遇到了麻烦,因为Kaldi主要算法是基于Linux框架,且核心算法均是基于C++所写,当时我费了很大的劲装上了Ubuntu16.04系统、安装了Kaldi并学习了Shell、C++编程语言。就这样我通过接近小半年时间慢慢熟悉了Kaldi,懂了基本的Base运行流程,对于内部原理当时并不理解,我也曾试图将Kaldi完全写一遍,看到内部庞大的代码量、不同的编程语言与编程风格以及对算法原理的不理解一次又一次的击退了我,就这样我小半年研究以失败告终,期间感谢詹青燃师兄对我的Kaldi的指导。

因为我校研究生毕业有学业压力,我不得不寻求其他解决方法来完成我的课题。偶然的机会我在Arxiv看到了端到端语音识别这个概念、了解了CTC这个概念,期间看了十多篇CTC方向的文章,基本了解了CTC实现过程,但对于具体算法原理还浮于表面,不明白为什么要计算路径再计算折叠后的结果,很幸运在Github上找到了DCNN-CTC并复现了结果,当时我把DCNN-CTC算法完全默写了一遍,也有幸结识了开源作者聂磊师弟,就这样我研究了CTC一直到18年年前,我在这个期间看了大量的端到端的论文,当时国内所有的知网上有关CTC的会议、期刊以及博硕士论文我都看过,也看了顶会、顶刊中CTC相关的几十篇文章,直至19年二月我才真正理解CTC算法具体实现过程,理解CTC中为什么要有前置假设,为什么要进行前后向算法计算,为什么要有折叠原理,更重要的是我把CTC的前推、后推以及解码搜索过程用理论写了一遍。到19年6月左右我在CTC语音识别领域中了一篇期刊与一篇会议论文,超过了我校研究生毕业要求,再此期间我学会了Git操作,对linux基本操作加强了很多,在Github开源了  CTC论文的源码并与聂师弟用自己掌握的优化措施与理论优化DCNN-CTC声学模型,并重写了DCNN-CTC解码方法。

在18年初至19年初,我在语音算法最快乐的时光莫过于理解了CTC算法具体原理的理解与实现,期间我并没有舍弃对Kaldi,我开始一步一步研究Kaldi总每一步实现的具体原理,包括特征提取、K-means聚类、HMM拓扑图构建、Mono训练、Tri训练、状态绑定、HMM中三个问题、Viterbi-EM、包括WFST构图与搜索,买了《解析深度学习:语音识别实践》这本书,我从第一章的一个字一个字开始看,当时不管我怎么努力也只能看到HMM介绍第三章结束,并且内部很多细节不理解,对HMM中评估、学习、解码问题仍然很模糊,不理解GMM具体如何使用,更别提构图与搜索。不得不说,由CTC转传统语音识别方法基本很难实现,我用我很多努力都没有理解传统语音识别(GMM-HMM、NN-HMM),以及一些鉴别性训练优化措施。

19年初是我语音识别研究的转折点,当时我还沉浸在CTC研究中,不断的看CTC论文,当时看顶会的论文基本看摘要就知道他要做什么了,一个偶然的机会,我认识了郝竹林师兄,我当时与郝师兄交流不多,他当时正在做CTC,我协助他理解CTC理论与具体实现细节。渐渐地我与他的交流中,我发现了自己只是在CTC这一块了解比他多,他对于NLP中基本所有算法都非常了解,此时我意识到自己不足,我开始进一步研究语音识别算法。当时我可以继续研究CTC,继续把CTC做深,现在仔细想想如果我把CTC继续按照原始的道路做下去,我可能出的成果比现在还要多。但是我并没有继续在CTC上创新,而且在语音识别宽度上进行研究,并且每周都会看CTC领域的相关推送,了解CTC研究的最新动态。

19年6月份左右我了解了端到端中其他两种典型算法模型:RNNT与Seq2Seq,当时我先研究的RNNT,因为RNNT是CTC模型在声学模型上的优化,且CTC与RNNT均是出自于同一个作者Graves,这样也有利于也便于自己的研究,实际上RNNT与CTC我个人认为训练这一块是基本的一致,不同的在于解码策略上,虽然二者本质上都是用FSD算法进行解码,但是RNNT在解码阶段考虑了之前帧的预测信息,这样就造成了RNNT解码速度相较于CTC很慢,但是RNNT通过解码网络确实可进一步提升CTC的准确率。期间结识了科院与声学所的一些大佬,并基于他们的成果实现了一套RNNT声学模型,并用了半年时间对RNNT进行改进,并中了一篇不错的文章,这个期间感谢田正坤师兄,与田正坤师兄的交流让我明白了RNNT算法的理论与具体实现细节。

从19年6月到12月,我主要精力都是在对RNNT的研究与创新上,但在此期间我仍然没有荒废对传统语音识别的研究,我看了接近上百篇的HMM-Based相关论文,在此期间我把一些该看的论文、不该看的论文基本都看了,我用了这半年拼凑的时间理解了GMM-HMM中GMM的作用、HMM构建过程、EM算法、HMM学习过程、评估过程与解码过程,并理解了单音素训练与三音素训练,状态绑定,K-Means算法,谢磊老师的硕士论文对于研究这部分很有帮助,但是对于构图与搜索那一块我还是很不理解,受到CTC解码中Viterbi、Beam以及Prefix解码的影响,我一直不理解为什么要构图以及如何在图上解码,WFST困扰了我接近两年。

2020年1月份我建立了“语音识别解码群”,我把我接近两年半学习过程中认识的大佬结合在一起,专门研究语音算法。当时建群时我内心是忐忑的,但是我仍然做了,并且在大家的共同努力下,群真的如当初设想的那样成为了语音识别学术与应用研究群。直到2020年5月20日,当时群里正在讨论WFST解码,我在一旁静静的听着,虽然当时把《Speech Recognition with WFST》看了很多遍,把WFST中构图与优化基本都看懂了,但对于WFST的理论与具体应用还是不理解,自动化所某位大佬聊到构图与搜索这个字眼,我赶紧加了他的微信并和他语音聊了接近一下午和一晚上,前后接近5个小时的聊天让我茅塞顿开,困扰我两年多的WFST解码理论与应用我解决了,WFST解码,Lattice解码均梳理完毕,哈哈哈,这一天我一夜没睡,我把《解析深度学习:语音识别实践》拿出来,我居然一次性把除去GPU加速那块理论部分全部理解了,并且把交大某位师兄的博士论文除去CUDA编程那块全部理解了,这一切都是那么的自然。

一直到今年的7月初,我一直在加强我的HMM-Based语音识别系统,看了Povey的硕士、博士论文以及他Hompage的相关论文,把kaldi中Aishell-1的Base调试了一遍,爱丁堡语音识别课程、剑桥语音算法、CMU的HMM源码均梳理几遍,并且在2020年2月到2020年7月,我把Seq2Seq在语音识别中源码实现了一遍,并将构图理论与Seq2Seq结合,用自己的理解写了Seq2Seq+WFST的解码器,值此之际我才感觉我语音识别入门了。

就这样我用了三年多的时间断断续续把HMM-Based的ASR系统理解了,期间辅助学会并理解了CTC、RNNT与Seq2Seq理论与实现原理。即将毕业之际,我很迷惘,很惆怅,ASR领域还有很多问题亟需优化解决,我还有很多不理解地方。

语音识别三年研究感想相关推荐

  1. 语音识别算法研究及实现.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp数据结构与算法 语音识别算法研究及实现.doc6页 本文档一共被 ...

  2. 什么是语音技术及其应用?语音识别的研究意义与进展

    你知道小冰吗?你呼叫过小度吗?你和小娜互动过吗?你使用过Siri吗?如果都没有,那你就out了.它们都是当下很火爆的智能语音机器人,很多人都和它们聊过天. 日前,美国投资机构Mangrove Capi ...

  3. 孤立词语音识别matlab,基于Matlab仿真的孤立词语音识别技术研究

    基于Matlab仿真的孤立词语音识别技术研究 摘要:研究一种改进的语音识别算法---改进的端点检测(滑动帧)动态时间规整(DTW)算法, 以一个能识别数字0-10的语音识别系统的实现过程为例,阐述了基 ...

  4. matlab htk tools,基于HTK调用MATLAB的语音识别的研究

    基于HTK调用MATLAB的语音识别的研究 张戈,严欢,殷景华 (哈尔滨理工大学,哈尔滨,150080) 摘要:根据HTK(Hidden Markov Model Toolket)原理,介绍基于HTK ...

  5. 马志强:语音识别技术研究进展和应用落地分享丨RTC Dev Meetup

    本文内容源自「RTC Dev Meetup 丨语音处理在实时互动领域的技术实践和应用]的演讲分享,分享讲师为寰语科技语音识别研究主管马志强. 01 语音识别技术现状 1.语音成为万物互联时代人机交互关 ...

  6. 计算机科学研究工作,近三年研究工作小结 - 北京大学计算机科学技术研究所.pdf...

    近三年研究工作小结 - 北京大学计算机科学技术研究所 近三年研究工作小结 孙薇薇 计算机科学技术研究所 北京大学 2015年4月23 日 1 of 36 主要 内容 研究 目标 语义依存分析 汉语分析 ...

  7. 智能家居中语音识别算法研究_语音识别研究获进展

    中国科学院自动化研究所智能交互团队在环境鲁棒性.轻量级建模.自适应能力以及端到端处理等几个方面进行持续攻关,在语音识别方面获新进展,相关成果将在全球语音学术会议INTERSPEECH2019发表. 现 ...

  8. 基于动态时间规整算法(DTW)的语音识别技术研究-含Matlab代码

    ⭕⭕ 目 录 ⭕⭕ ⏩ 一.引言 ⏩ 二.动态时间规整算法基本原理 ⏩ 三.语音识别实例分析 ⏩ 四.参考文献 ⏩ 五.Matlab代码获取 ⏩ 一.引言 在语音识别技术的发展过程中,动态时间规整算法 ...

  9. 语音识别长篇研究(四)

    承接上文 八.语音识别的瓶颈 1.鲁棒性:目前的语音识别系统对环境条件的依赖性强, 要求保持测试条件和训练条件一致, 否则系统性能会严重下降. 2.噪声问题:现有的语音识别系统大多只能工作在安静的环境 ...

最新文章

  1. arraylist切割_JAVA List和Map切割工具详解
  2. 【CyberSecurityLearning 42】日志记录规则
  3. LeetCode——DFS
  4. 很有用很有效的操作之批量操作一组图片
  5. php服务器去广告,php – 简单的广告服务器
  6. SQL Server2005创建新数据库时不允许创建新数据库的问题
  7. python怎么引入os模块的函数_Python之OS模块函数
  8. RTL8153B ,瑞昱千兆网卡芯片 ,扩展坞HUB千兆网口芯片。
  9. 《勘测定界界址点坐标交换格式》解析
  10. 2022拼多多详情/拼多多商品详情/拼多多sku详情
  11. airflow实现Java定时任务,AirFlow定时调度执行Talend ETL任务
  12. 封装系统之新手操作版
  13. css做出京东登录界面
  14. Ubuntu下安装显卡和cuda
  15. 孩子升年级难适应?猿辅导语文金牌教研来支招
  16. Oralce数据库断电之ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [37]
  17. U68464 滑稽树上滑稽果(guo)
  18. 小学计算机知识点总结怎么写,小学信息技术教学期末总结范文
  19. 国家气候气象观测站分类
  20. 云服务器怎么划分虚拟主机,云服务器 划分虚拟主机

热门文章

  1. 阿里云短信使用简介demo
  2. 求一个手机淘宝直播中抢购的脚本,急
  3. ubuntu 系统的快捷键
  4. 机器学习--期望风险、经验风险与结构风险之间的关系
  5. winrar创建自解压exe和快捷方式图标
  6. 最强大的专业PDF阅读器PDF Reader Pro功能
  7. oracle中怎么查看索引,查看oracle中表的索引
  8. php判断是为字符串类型,PHP:检查变量是否为字符串类型并且不是空字符串?
  9. 做一款热门游戏----没有99美元的Impact也行
  10. 查看交叉编译gcc的版本