前 言
近年来,随着深度学习技术的不断发展,语音识别准确率得到了大幅提升,由此带来了基于语音交互应用的丰富想象力,这些技术越来越多地影响着人们生产和生活的方方面面。其中,消费级应用包括智能音箱、手机语音助理、车载智能座舱、语音输入法与翻译机等;企业级应用包括智能客服、语音质检、智慧教育、智慧医疗等。各类智能语音应用的蓬勃发展使得越来越多的人加入语音领域的研究和落地,共同推动整个语音产业的发展。
得益于语音识别技术的蓬勃发展和识别率的节节攀升,业界涌现出众多优秀的端到端语音工具包,如Wenet,ESPNet,SpeechBrain等。尽管如此,2009年约翰霍普金斯大学夏季研讨会孵化出的Kaldi工具箱,以其稳定的算法效果,活跃的社区氛围,得到了广泛应用,极大地降低了语音识别的上手门槛,也培养了大量的相关人才。目前,仍然有很多公司在使用基于Kaldi的工程方案。
由于语音交互技术涉及的算法与技术链条较长,因此已有的语音算法相关图书主要集中在各类语音算法的原理与训练上,缺乏从语音交互角度出发,介绍语音交互所需的语音前后端各项算法和整体解决方案的相关图书。在语音应用的落地上,学术界也缺乏产业界的工程应用落地经验。本书将致力于拉进学术界与产业界的距离,在系统地介绍语音交互流程中涉及的语音前端处理、语音识别和说话人日志等算法原理的同时,详细介绍如何基于WebRTC,Kaldi和gRPC,从零构建产业界稳定、高性能、可商用的语音服务。
在前端算法的相关章节中,本书系统地介绍了语音活动检测、语音降噪、回声消除、波束形成等常用的语音前端处理算法的原理,还针对各种算法在实际场景中的工程实现方法,提供了大量的经验总结。除了介绍传统信号的处理方法,本书还介绍了深度学习方法在语音前端领域中的发展和应用现状。
在语音后端算法方面,本书详细介绍了语音识别中的特征提取、声学模型、语言模型、解码器和端到端语音识别,以及说话人日志中的声纹Embedding提取和聚类算法。同时,还介绍了如何基于Kaldi训练语音识别及说话人日志模型。针对训练模型时的很多细节问题,提供了详细的解释。
在语音算法工程化方面,本书介绍了如何利用WebRTC和Kaldi优化处理流程,形成语音算法SDK。基于流行的用于微服务构建的RPC远程调用框架和SDK,进一步介绍了如何实现一套方便用户快捷接入的语音算法的微服务。
本书由杨学锐、晏超、刘雪松合作撰写。三位作者长期在一线从事语音算法工作,书中内容汇集了他们在产业界模型训练和应用落地的思考与经验总结,希望能给学术界的研究人员与产业界的从业人员带来一丝启发和帮助。其中杨学锐负责第1、4、5章的撰写及全书内容的审核校对,晏超负责第6、7、8章的撰写及工程代码的实现调试,刘雪松负责第2、3章及第1章部分内容的撰写和校对。
最后,感谢电子工业出版社李淑丽老师的辛苦工作,感谢吴伯庸和王金超对本书的贡献,感谢陈勇的审稿与校对,感谢成书过程中给予过帮助的所有相关人士。
由于作者水平有限,书中如有任何错误与不足,恳请广大读者批评指正并提出宝贵意见。
作者
2021年11日于上海