本文整理的三个问题是老师们对于现在是否有必要学习传统方法以及给工作中的伙伴们的一些建议,文末整理了大家在直播中提问的一些问题,希望大家可以通过老师的分享能够有所启发。

分享嘉宾(排名不分先后)

吴本谷

曾先后在百度、北京猎户星空供职,主要负责各场景下语音识别声学模型优化,语言模型优化,声纹系统搭建等工作。在kaldi上开源了aishell、aishell2、hi-mia等recipe,包含语音识别,声纹识别,语音唤醒等。

张俊博

小米语音技术专家,中国科学院声学研究所博士,师从颜永红老师,研究方向为语音识别和发音质量评测,发表论文十余篇,著有出版物《Kaldi语音识别实战》。在开源方面,和Daniel Povey博士合作,为K2和Kaldi贡献代码,其中在K2子项目Lhotse上贡献代码量排名第二。

杨超

出门问问语音技术总监,西北工业大学硕士,师从谢磊教授,研究方向为机器学习、自然语言处理和非参数贝叶斯模型。先后就职于微软(cortana语义理解和语言模型)、思必驰(知识图谱和对话系统研发)、蛙声科技(语音技术落地)。

付立

京东数科语音算法工程师,本科和博士毕业于北京航空航天大学,研究方向包括语言识别,机器学习等。在语音技术领域发表多篇论文并申请发明专利,并组织开展JDD第一届金融对话语音识别比赛。

现在深度学习是语音领域的主流算法,传统的语音算法,比如GMM-HMM,是否没必要再学习了呢?

付立老师:我觉得这个问题是对于一些没有传统语音算法背景的同学来提的,关键还是在于学习深入到什么程度的问题,我们不妨换一个问法:现在深度学习已经成为语音领域的主流,我也对深度学习非常感兴趣,但是个人的时间和精力毕竟有限,是不是可以不用花太多时间在一些传统的方法上面呢?

新技术被追捧,老技术被冷落,这很正常,如果在学习和工作中和传统的语音识别没有太多交集,确实没有必要强迫自己分散太多时间。

但是如果条件允许的话,我建议还是可以了解一下传统语音方法的基本思想,因为深度学习其实也是因为一些数据和算力的迭代才逐渐发展起来的一种技术工具,有一些思想在里面,如果你长期从事语音的话,后面还是很有可能会去借鉴传统方法的一些思想。就技术手段而言,方法的变化非常快,说不定哪一天,HMM is all you need。

吴本谷老师我一般在面试的时候,还是要求大家会点GMM和HMM的东西,因为传统的东西会有一些底层的原理在里面。但我不是说你要去学传统,现在的attention,现在的transducer,他们的原理跟GMM相比,有些对齐的概念是一样的。

我觉得GMM和HMM这套东西可以帮助大家去理解对齐的概念,理解了对齐的概念,其他的东西都好理解。现在很多的算法,最新的一些端到端方法,包括attention,底层的东西其实是一个道理。

你可以把语音整个问题抽象起来,就是一个不定长到一个不定长或者定长的一个映射关系,核心是在这里面你用什么方法去解决这个问题。GMM和HMM只是解决问题中的一个环节,现在的LAS,或是带attention的算法,包括transducer的方法,其实也是解决这个问题的一个类型的解决方法。

在面试中我肯定会问传统方法的,如果你不了解,肯定会减分,所以我还是希望大家把这些底层东西了解一下。在你遇到核心问题的时候,了解底层的东西对你还是有好处的。HMM的算法、这套理论现在在唤醒,在VAD等等领域里面还在使用,在语音主流算法里还没有完全被端到端的方法替换,是有一些本质的原因在里面的,我希望大家可以去思考这个点。

杨超老师:我觉得如果你所在的团队或者你已经工作了,用的主流的技术都是深度学习,完全没有用传统的,那你可能要自己花点心思去学,也不用花太多的时间。

整个传统语音的内容是很多的,要把它真的学透,可能要博士去学才行。但是如果只是了解原来的那套基于层级的、基于HMM的方式,以及FST解码、判别式学习这些,整个学下来也不会花太多的时间。如果你是学生的话,可以上一个深蓝学院的课,再去学一下Kaldi,把张老师那本书好好读两遍,基本上面试就没有什么问题了。

之前HMM的那套东西,跟你们现在学的 CTC,本质上是一样的,只不过一个从声学模型角度去做,一个从神经网络的视角去处理对齐这个事情,其他的端到端的算法也是从其他的方式来处理对齐这件事情。所以从很多思路上讲,GMM和HMM都是个挺简单的东西,没有必要纠结要不要学,有时间纠结,可能已经把它学完了。

张俊博老师:我的想法可能比其他老师要更苛刻一些,如果你面试的是语音识别相关岗位,凡是对传统的基于HMM的方法没有基本概念的,一律我是不会录用的。

我回答上个问题的时候的确说到我更看重学习能力,不看重具体知识的掌握,但是如果这种最基本的知识你都不去学习的话,那我认为你的学习能力不怎么样。学习能力不仅包括把东西学会的能力,也包括重点学什么的能力,越是基础的知识,我认为越得好好掌握,反而是最新的技术,比如现在出了什么论文,我觉得可以粗略了解一下。对于经典的方法,必须要花大量的时间彻底掌握。

另外,我觉得无论做什么领域,都应该去熟悉这个领域的发展历史,比方说做语音识别的应该了解:哪个年代最早有人开始做语音识别?最早他们是怎么做的?后来如何发展的?每一个时代比上一个时代进步在什么地方?对这些都得了解。

不仅是GMM-HMM,更早的一些技术、很古老的技术都有必要去掌握。一方面,古老的方法确实在很多环境中能用得到,设想上也能给我们很多启发;另一方面,了解技术发展的历史也有助于对这个领域的发展有更高层次的理解。

对语音的入门者/学生有何建议?

付立老师:对语音的入门者或者学生,我建议主要做好三点:

首先是精选一个方向,选择一个语音领域的细分方向,比如识别、合成、事件检测、前端处理等,可以结合自己的兴趣以及这个行业的情况综合考虑。

第二点是要勤于动手,可以自己实现,或者在一个开源项目的基础上复现一个别人的工作,一开始可能达不到别人的效果,我之前有时候也会去Github上找一些项目,怎么都出不来别人说的那种好的结果,但是通过自己去调,去仔细的分析,然后慢慢地优化、改进,最后得到一个别人的baseline的效果,这个过程我觉得是最能锻炼和提升个人能力的方法。

第三个也是很重要的就是积极的讨论,多和自己认识的业内人士探讨,主动和别人沟通,脸皮厚一点,有问题也可以在相关的微信群、QQ群里问,看到感兴趣的论文也可以给作者发邮件,我觉得都可以的。

像我们团队如果公开了联系方式,也是很希望别人联系我们的,我们也非常开放,在语音领域也比较有经验,我相信你们提出的问题对我们也会有很大的帮助。总的来说就是,选一个方向,然后自己动手实现,有问题多跟别人交流讨论。

吴本谷老师:关于这个问题,我以前在CSDN和语音杂谈上写过一篇文章叫《语音小白成长季》,包括你应该从哪些方面去学习,从学生和工业的角度都解释了很多。

我在这里再跟大家分享几个比较大的点:

首先是在一个问题上深耕的能力。我们之前看了很多简历,其实大家在各个方向都做了很多东西,但在一个点上没有深入下去,如果你在一个方向上做很多的深耕,或者你对这方面的细枝末节足够了解,这对于你整个面试以及之后的路都很有好处。

第二点是大家一定要找到社区,Kaldi的、语音的QQ群、微信群、微信公众号,这里面其实有很多东西,大家可以在这里面找到同伴,相互学习,即使你问一些很小白的问题也会有人回答。

第三点,我觉得更好的是你能遇到一个导师,或者一个能带你的人。像杨超老师、谢磊老师那边,包括俊博那边,有很多师兄师长,学习的氛围特别好,像深蓝学院的一些课也有这样的氛围。现在语音互联网化之后,不再像2015年以前那样想在语音群里找一个人都很复杂,现在有很多渠道可以让你找到帮你解决问题的人,然后你不耻下问,其实你遇到的问题都挺好解决的。

杨超老师:如果大家想做一个语音的从业者,如果你还是学生,如果还有可选择的余地,比如说你是本科生,那你还是要努力考一个比较顶尖的语音实验室,像俊博他们那边,包括西工大,这样你接触到就是最一流资源,有师兄、老师带着,氛围会更好。

如果你没有选择,比如你现在不在专业的语音实验室,但也在做语音方向,毕业了想做一些语音的事情,或者你已经进了一个公司,在一个语音岗位上,但你本身不是做语音的,你想学,那么你可以花一些时间去学。

像我们公司的一些小伙子,以前完全没有接触过语音,也会上深蓝学院的课,也会去了解传统的语音识别的算法。我觉得深蓝学院的课在国内我接触到的这些教育机构里面应该是质量最好的,四门课的质量都很高,我自己也学完了信号处理的课程。

所以如果你已经在公司工作了,但是你并没有特别强的语音基础,我建议好好去学一下,多学几遍,不是学一遍做一遍作业就好了,要多学几遍

张俊博老师:我就补充两个小建议吧:

一个是尽量去实习,尽量找实习。如果你是顶级实验室的学生,比如你是谢老师实验室的学生,不实习也没问题,没毕业就是抢手的人才。

但如果你们实验室不是做这个方向的,从起点上看,不够占优势,如果还想从事语音行业,我的建议是一定要尽你所能去找一个好的公司的实习机会。自己学非常容易走偏,即使你学基础知识、学各种课、看各种书,依然很困难,所以一定要去实习。

第二个小建议是,如果你现在在学生阶段,而且在做语音方面的研究,不要好高骛远,不要总觉得自己能做出重大创新,能发一篇非常厉害的paper,不要这样想,这样反而会把一些基础的东西耽误了。

创新是基础知识和经验积累到一定阶段自然而然产生的,千万不要去刻意追求创新,而应该踏踏实实的去读别人的论文、去实现别人的论文,这比你绞尽脑汁去创新收获得多,等你做了足够多的实验,做什么事情都是水到渠成的。

对刚踏入工作岗位的从业者有何建议?

付立老师:对于刚踏入工作岗位的同学呢,最主要解决的问题就是再适应的过程。我觉得最简单的方法就是要比之前的学习或者工作投入更多的时间和精力去做这种适应性的转变,前紧后松,现在适应好了,后面才会相对轻松一些。

我最开始工作的时候也经常加班,会比其他同事多加一点,刚开始工作内驱不强点,后面就更跟不上了。

第二个我比较强调的是沟通的意识,把自己当一个菜鸟,多问问比自己经验丰富的同事,一些没有必要的弯路或者一些坑,是可以通过沟通的方式去解决的,没有必要什么都自己去摸索一遍,把主要的精力放在当前更重要的工作内容上。

第三个还有就是要定一个目标,你刚进入工作岗位的时候,应该会有一个人带你,这个目标需要带你的人在一开始讨论清楚,比如可以设一个时间节点,要达到一个什么状态,尽量的去跟他配合,去达到符合相应岗位的要求。不要自己漫无目的努力,方向也是很重要的。

吴本谷老师:刚踏入工作岗位,或者说作为校招生、应届生去一个公司,我觉得你要逐渐形成一个能解决问题的能力,逐渐变成一个靠谱的人。

你的老大或者导师给你交代了一个任务,你要尽快把它解决好,即使解决不好,你也要去跟大家多沟通,直到把这问题解决好。你解决好了几次之后,就会逐渐去承担一件事情,相信现在俊博或者杨超包括付立,我们自己都是一样的,我们就是在这个过程中不断过来的,一开始也都是从给大家打杂之类的小事情做起的,然后逐渐的去承担一些事情,最后才做大的事情。

杨超老师:我想说几个刚毕业的学生可能会觉得有点虚的点,但我还是想说一下,因为在我刚毕业和刚工作的时候,我也是不太在意这些的。

第一个就是要做好规划,在你提升技术之余花一点点时间去思考一下你人生的规划、职业发展的规划,给自己一个长期的、短期的和中期的目标。

你要经常回顾你的目标,回顾你现在的状态,当你发现你的方向跟目标有偏差的时候,或者你进步的速度有可能达不到你的目标的时候,你要去调整你的行动,或者调整你的目标。

这点我觉得很重要,就像现在我们国家也在做十四五规划,这就是为什么很多人觉得中国其实比美国好很多,因为美国可能就没有什么规划,每换一个总统就是换一套自己的东西,但是我们国家有这种五年的规划,我们一直在沿着这个目标往前走,所以才不会偏离方向,才能发展得这么好。

第二个就是你要注意你工作的方法和习惯的培养。所有人的时间都是一样的,为什么有的人更优秀,可以拿更多的收入,就是因为他们在同样的时间里更有效率。

还有两点是希望大家能保持谦逊,不管你技术多厉害,在这个行业里都会有更厉害的人,所以请保持谦逊,跟自己同事处理好关系,任何一个你身边的人都有一些值得你学习的优点;

在工作之余也可以多交一些朋友,当然这一点不是要求每个人都去做,有的同学的性格可能比较内向,但是因为语音圈还是比较小,除了工作,大家也可以有一些其他兴趣点上的一些交叉,可能未来会在你的职场的某一个时刻给你带来一些帮助。

张俊博老师:我的想法和大家的也都差不多,我再说两点吧:

一方面,无论是你的上级给你分配什么样的工作无论你是否认可,只要工作是分配给你了,你就一定得做好,得对自己工作的内容负责。不要觉得上级给你分配的这个工作太琐碎了,更不要抱怨这个工作学不到东西,踏踏实实的做好就是一个非常重要的能力积累了,你肯定可以学到很多东西。

还有一个就是不断保持学习,不能排斥学习,工作中如果给你的任务你之前没做过,你不能说我不会,我做不了,没有什么是不会的,没有什么是不能学的,做着做着就会了。另外眼界也开要开阔一些,在工作之余,不要只盯着自己的小方向,各领域的知识,能多学就多学一些。

互动环节问题

我们选取了直播中的四个问题,邀请老师进行了回答。

Q1:面试更注重工程能力还是算法能力?C++需要掌握到什么程度?

杨超老师:每一个面试者的风格都不一样,从我们的角度来讲,当然希望你又有好的工程能力,也有算法能力。但是我其实不太清楚,所谓的这个算法能力是指什么,是Leetcode那种算法题的能力吗?

因为大部分同学不太可能在语音算法上做太多的创新,除非你是这个行业非常好的实验室的很优秀的硕士或者是博士。所谓的工程能力,作为一个学生,能写一些基本的代码,风格能还不错,有一些基本的意识就不错了,这些东西都可以在公司中去慢慢培养,所以你只要把学校里该该做的东西学得扎实就行,C++学到什么程度不是一个可以量化的东西。

吴本谷老师:这问题的核心是工程能力跟算法能力,在整个公司里面,大部分公司会分成算法党和工程党,也就是有一部分专门在做一些算法的预研,还有一部分人在做产品的落地。

预研对C++能力可能会要求低一点,但是也不会太低。比如做解码器,你不能不会C++。所以大公司会分两条线,一条线是做纯算法的预研。然后还有一条线是做工程类的,就是训一些产品类型的模型。这两条线你要去匹配,到底你要去做纯预研的方向,还是去做工程类的方向,产品类的方向。

张俊博老师:其实你去实习去工作一段时间后,就会知道到底需要什么样的能力。C++到底需要怎样的能力,我觉得够用就好。

比方说我要去调研某种新的框架,这个框架是用某种我不懂的语言写的,那有什么关系呢?需要什么就赶紧去熟悉就行,不能把自己的能力绑定在某种具体的技术上面,而是要去真正去解决问题。

付立老师:我们内部招的岗位都叫算法工程师,除了算法以外,还有也还有工程两个字,其实很多公司对算法和工程的一些都是兼顾的,只有少数的招聘是需要招一些前沿领域探索的岗位。我觉得是比较侧重算法能力,但对工程能力还是需要的,因为你需要去做一些实验验证一些前沿技术,其实我觉得只是为了推动算法的落地吧,因为也不能空研究一个算法,很多时候我们还是做一些工程的事情。

Q2:Kaldi后续支持量化训练声学模型吗?实现起来难度有多大?

张俊博老师:现在Povey博士主要的精力还是在K2上面,Kaldi并不会被淘汰,虽然我们号称K2是下一代的Kaldi,但并不是取代Kaldi的关系。

如果你觉得Kaldi缺个什么东西,不妨自己就去实现一下,然后去主页上面提issue或者PR。现在是开源时代,开源软件不仅是让你用的,更需要大家去反哺开源软件,让大家都参与进来。

Q3:语音信号处理转语音识别有什么建议吗?

吴本谷老师:你做信号为什么转语音识别?信号现在还算是一个比较火的方向,它本身就有很多的应用,包括大家现在看到的降噪耳机。

其实我以前有个认知,就是语音一定要有硬件的载体才能挣钱,这就是小米的核心概念。为什么他们的语音需求这么大,因为每一个嵌入式,每一个IOT设备都需要信号的东西。我觉得你尽量不要转,除非是你特别不喜欢做。大家不要只盯着语音交互,可以看语音直播类的厂商,包括在线教育的,其实它里面都会用到信号处理的算法,还是希望大家在各自方向去深耕,不要乱跳方向。

付立老师:有很多同学关心转方向的问题,主要是要考虑两点,一个是结合自己的兴趣,另外一个就是行业的现状,做语音识别的人其实是比较多的,但其实语音也不是所有行业都需要。

还有一些其他的领域。我建议可以根据一些顶会像InterSpeech,ICASSP都会有不同的主题,每一个主题都有相应的论文数量,可以根据他们讨论的问题,去选一个方向作为参考。ASR其实是语音会议主题的其中一个,论文的数量相对来说逐渐减少,投论文难度也是相应的在增加。

杨超老师:其实信号处理这块儿门槛还是蛮高的,因为有很多传统的东西要去学。我还上了深蓝学院信号处理的课。

Q4:TTS端侧落地产品主要用传统参数方案,还是端到端方案?TTS以后主要的方向有哪些?

杨超老师:端侧落地看你自己的技术能力,出门问问用的全部是端到端的方案,如果工程能力强一点,端到端肯定是没有问题的。主要方向可能是用少量的说话人数据训练语音合成模型。

我们有一个业务是音频内容的产出,现在直播短视频平台有很多用户创造的音视频,不是每个人都是专业的主播,TTS有更丰富的音色。

我们有一款叫魔音工坊的平台,大家有兴趣可以去体验一下,去里面编辑内容或者阐述你要的声音,歌唱合成方面,之前的小冰做的比较多,这个也比较娱乐化。出门问问还有一些跟视觉融合的工作,像虚拟说话、虚拟主播,包括跟3D形象的联动,这是几个大概的方向。

张俊博老师:传统不仅有参数方案,还有拼接,有些地方还在用。但是端到端绝对是一个未来发展的方向,它合成声音的质量是传统参数合成无法比拟的,尤其比起传统基于信号处理的vocoder,神经网络vocoder完全不一样,现在TTS基本上听起来跟人没区别了。

TTS可能是比ASR更加有意思的一个方向,因为识别在很多场景中,是一个已经解决了的问题,比如说识别新闻联播,基本上就不会出错了,但TTS­­­­可以做出很多好玩的应用,我觉得TTS也是一个非常值得推荐的方向。


语音领域,对于入门学生和初入职场者需要具备什么能力?相关推荐

  1. 我的2021年总结——学生到初入职场

    姗姗来迟的2021年总结. 博客主页:

  2. 程序员初入职场第一年—— 程序员羊皮卷 连载 13

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow <程序员羊皮 ...

  3. 《程序员羊皮卷》第三章 初入职场第一年

    万分重视自己的第一份工作 根据某杂志在2009年6月的统计,54.7%的父母要求孩子读到博士,83.6%要求孩子考试得分在前15名.母亲对孩子说得最多的一句话是"好好学习".其次多 ...

  4. 你有什么经验一定要分享给初入职场的新人?

    一般来说,虽然大家都是职场新人,但是"能力段位"通常是不同的.而"能力段位"的区别,也正是日后升职速度.加薪程度的区别的重要依据. 那么,下面根据我们的职场亲身 ...

  5. 初入职场的我怎么就成了个打杂的,我是这样破局的 No.146

    本文为转载文章,转载于公众号:一名叫大蕉的程序员 这么快就到6月份了,又到一大批有为青少年离开象牙塔摩拳擦掌准备进入职场大干一番的季节.但很多人也开始迷茫起来,毕竟啊,那个以考试成绩为唯一标记性成果的 ...

  6. 如何通过一个SDK轻松搞定人脸识别,拯救初入职场的程序猿

    摘要:看一个SDK如何拯救初入职场的程序猿小Hi- [职场初体验] 时间过得真快,距离上次给小Hi安排"人脸识别"的开发任务(话接上期:[快速玩转华为云开发]小Hi拍了拍你,基于华 ...

  7. 大佬总结的4条宝贵经验,送给初入职场的你,从此一飞冲天

    初入职场的时候,没有人给我讲应该注意哪些,也不知道去知乎上找答案,就那样傻乎乎地自我摸索总结.结果犯了不少致命的错误,这里回忆一些供你借鉴. 01.衣着邋遢,不修边幅. 贵为一个程序员,那时候竟然没有 ...

  8. 初入职场“荒野求生”,五条靠谱的生存指南

    进入职场,就像是从一个个围墙高耸.却又安全的真人CS游乐场,直接空降到了一战时的凡尔登,二战时的斯大林格勒,现在的叙利亚-- 浓烟滚滚后,整个社会在你面前撕下了温情脉脉的伪装,露出了真刀真枪的残酷面容 ...

  9. 我的职场-初入职场遇到一帮好兄弟

    前面说到,大二结束后,离校.拖着行李箱离开学校大门的那一刹那,那种突然被抛到社会的感觉,有些许的迷茫.彷徨.无助,也有一丝的兴奋和期望.离校意味着学校宿舍再也住不了了,10年7月,和两个室友一起八百块 ...

最新文章

  1. JavaScript 设计模式基础(二)
  2. 泛微协同“风暴”席卷高端市场
  3. HP DL380G4服务器前面板指示灯的含义
  4. request payload怎么发_做了一个个人博客,但不知道怎么介绍
  5. [置顶] 基于遗传算法求解车辆路径问题
  6. 使用 esxtop 识别存储性能问题
  7. 逆向学习之Hook技术
  8. 超五类网线和超六类网线的区别
  9. node创建ETH地址及导出私钥
  10. 云计算 - 虚拟化技术 - 总结
  11. 捕鱼问题 matlab,鱼捕捞问题(数学建模).docx
  12. 如何把excel中的一行复制成多行
  13. [体感游戏]关于体感游戏的一些思考(四) --- 克隆战争!
  14. Quartz的整合与使用
  15. java饲养员喂动物_做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处...
  16. 用python画微信表情_【一点资讯】“裂开了,苦涩了,翻白眼”!我用Python画出微信新出的表情包 www.yidianzixun.com...
  17. vs2019 无法打开包括文件:“SDKDDKVer.h”: No such file or directory的有效解决方案
  18. EasyNVR如何实现前端录像时间轴播放?
  19. DEJA_VU3D - Cesium功能集 之 058-高德地图纠偏
  20. OpenDDS内部关键的idl文件(InfoRepoDiscovery)

热门文章

  1. 碰撞检测——GJK算法
  2. 402计算机毕业设计
  3. 新宝分析表现良好的公司有啥共同点
  4. GDCPC2015题解 by lby@SYSU_Spirit_Moon
  5. 倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 88怎么办
  6. Java代码小片段(三)
  7. 利用参数模型估算法求工作量
  8. python基础教程 excel_Python新手入门:Excel基本操作(二)
  9. 杭州-2050青年科技大会
  10. 3.了解Spring Boot2自动配置原理