关于语音算法专栏预告

        从大二进入声学专业开始,本人就对语音算法产生了浓厚的兴趣,当然刚开始也是因为接了个语音分离的大创项目。现在两年已经过去了,大创评了个优秀完美收官,同时自己也进入了智能音频实验室读研,继续相关的研究工作,我的毕业论文也是有关基于深度学习的语音增强。幸运的是,在五月初我和和另一个做声纹的同学写了篇关于含噪语音声纹识别的论文,已经投了Interspeech2020,但是毕竟是我们的第一篇论文,写作表达上还有很多问题,也不知道能不能通过审稿。只不过,在本科结束前能有一份自己的小小工作着实让人十分兴奋。下个月初又要帮学长给实验室建立一个语音识别平台,目的是为未来的一些增强和分离算法提供可靠的词错率等指标以及做些前后端联合优化的工作,我们之前的一些工作,都是用的百度等开源语音api的,用别人的平台指标发论文总归不太好。因此,现在又开始到处找些关于kaldi的教程书籍,研究生还没开始,忙碌的工作已经开始了(工具人实锤,但进入一个新领域真的颇具挑战性,学校自由的氛围比中科院等院所也会好很多,所以压力也不大)。

        大学以来,我也算是在语音的各个领域走马观花地都了解了一些,仅仅是增强和分离研究得深入一点。这两年跑了非常多的模型,也走了很多的弯路,深感语音领域入门好的教程非常稀缺,大多数的知识零散琐碎,网上的低门槛的课也少,当然好的课也不少,比如台大李宏毅实验室的语音处理和NLP课程,适合入门;哥大和CMU的ASR则适合对理论深入了解。我之前是从物理声学信号处理一步步学习过来的,语音领域的基础经过几年薰陶慢慢就清晰了,但是对很多从其他领域想涉足语音处理的朋友来说,语音的入门常常会很难。我曾经和导师讨论过cv、nlp和语音哪个难一点,导师认为做到顶端难度都是一样的,但是我觉得对于大多数人只要跑跑模型赶上潮流的即可,在这方面语音的入门相对于cv和nlp的确比较难。原因首先就是数据,相对于cv入门一个mnist几十兆的数据就可以试水各种模型,语音的数据集稀少,而且数据非结构性太强;比如语音界的mnist :TIMIT数据集,400兆也就4小时左右,要做出一个可用的系统远远不够。有了数据还不够,相对于图像简单裁剪归一化就可以输入网络,语音信号太长了,必须进行特征提取,这一项也是大坑,比如stft、dct、mel谱、fbank、gammatone等很多先贤们提取特征的方法要深入研究就要很长时间。当然现在也有直接时域语音输出的端到端优化方法,但是网络层数一般很深,不适合入门。因此,拥有巨量数据的工业界大公司和顶尖研究机构才是这个领域的支柱,顶尖的结果也来自于这些机构。第二个原因就是,语音的分支太多了,很多算法迁移性弱而且优化“看人”,如果简单分类的话,语音算法可以分为前端处理和后端识别和合成。前端主要工作就是阵列信号提取,语音增强/降噪,语音分离和标注;后端主要是一些识别算法,主要有孤立词识别/唤醒、大词汇量连续语音识别、说话人识别/验证;语音合成又是另一个大领域,经典的波形拼接到现在wavenet声码器,每一种方法有联系但更多是独立的。没有一种算法可以通吃各个领域,因此这些细小分支的研究常常是自扫门前雪,这也导致了很多其他问题,比如前端做得好不一定给后端识别准确率就高,因为两者的优化目标可能根本就不是同一个。

        因此,最近有人给语音技术来了个“彻底批判”:https://blog.csdn.net/csdnnews/article/details/105963588,但批判也没用啊,语音领域的特点决定了现在很难会有一个好的通用模型,也很少会有给初学者相关的入门项目,要入门语音就得清楚自己研究的是哪个分支,但对初学者来说或许很难对各个领域有足够清晰的认识,很多就是知道一个语音识别,但是语音识别的学习曲线太陡了。

       我想开个博客,来整理自己在语音算法学习中的一些小心得,同时会尽量给出简单的demo和具体的代码,同时记录自己的心路历程,希望可以坚持下来。一个分栏就是语音前端的降噪和分离,这块会穿插些webrtc框架的代码研究。第二个就是识别,因为我最多仅实现过孤立词识别,这一块我还在慢慢学习。刚开始的几篇博客会不太系统,算是基础吧。

       希望大家多多关注,如有谬误,请直接指出,互相学习。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章