前言
语音信号处理是利用数字信号处理技术对语音信号进行一系列处理,从而达到存储、传输、增强、识别和合成等目的的一门学科,早在一百多年前就被应用到了通信行业。近年来,传统的语音信号处理技术和人工智能技术的结合使得基于智能语音技术的应用呈现爆炸式增长。语音技术在电话、网络音/视频会议、音效、语音助手、实时翻译、智能音箱、智能接待、智能客服、安防监控、家庭休闲娱乐等方面都有着非常重要的应用,国内一些大型科技公司也相继组建了自己的语音开发团队,如阿里巴巴iDST实验室、腾讯音视频实验室等,同时,一些专业的语音技术服务公司,如科大讯飞、思必驰、云知声等也借着语音技术的风口迅猛发展。此外,从事语音研发的初创公司也如雨后春笋般破土而出,这就导致对语音技术人员的需求与日俱增。然而语音处理技术的门槛较高,它与信息处理科学、计算机科学、声学、语言学、生理学、认知科学、数学、统计学以及概率学等许多学科有着密切的联系。对从业者来说,要想在该领域达到高级工程师的级别,往往需要多年的行业经验积累,而市场上一些关于语音技术的书籍往往偏向于理论化,给人感觉晦涩难懂,注重实际应用、针对性强的相关技术书籍是这方面紧缺的资料,而针对交互式实时应用场景的语音处理书籍则更为稀缺。本书正是在这一背景下所写的。本书介绍了基于互联网传输的交互式实时语音处理技术栈,并开源了书中众多源码工程。
本书结构
根据交互式实时应用场景的语音处理流程,全书内容可划分为4部分,第1部分是语音增强处理,第2部分是数字音效,第3部分是网络传输编/解码,第4部分是语音唤醒和识别。
第1~8章是第1部分,内容主要是语音增强处理,包括基于传统信号处理方法的语音检测、单通道降噪、自适应回声消除、声源定位、波束形成和盲源分离等。另外,随着深度学习技术的发展,深度学习模型的泛化能力已有大幅提升,因而特定场景下基于深度学习的语音增强方法已经达到商用要求,这部分也介绍了相关方法和实例。
第9章是第2部分,内容主要是数字音效。音效除了可以弥补音频器件的不足和声场的缺陷,还常用于实现各种混音效果,以提升听觉体验。手机、耳机、音箱、家庭影院等产品都会用到音效技术,当前绝大多数音频专用芯片中已经具备音效调节功能,但在一些场景中还需要使用软件算法以满足定制化音效需求。
第10章和第11章是第3部分,主要是与网络相关的内容。这里不是介绍网络传输协议,如UDP和RTP等,而是介绍用于解决网络传输不利因素(带宽波动、丢包、抖动和延迟)而采用的技术,具体来说,是传输拥塞控制、编/解码和网络均衡,其目的是在充分利用网络带宽的前提下获得最佳的语音质量。这些技术在智能音箱、智能助手、音/视频会议等交互式实时应用场景中必不可少。
第12章和第13章是第4部分,内容主要是唤醒和识别。有些交互实时应用场景需要唤醒词识别技术以实现设备唤醒和设备控制。本书基于深度学习技术实现了嵌入式设备的唤醒,并在GitHub官网上提供了可以直接编译运行的安卓应用程序源码。大规模自然语音识别常用于服务器端,本书基于Kaldi语音识别工具搭建了基于GMM-HMM的自然语言识别系统,并介绍了基于深度学习的端到端的语音识别开源工程DeepSpeech,还介绍了如何使用该工具定制特定场景的自然语音识别。
本书所述技术围绕交互式实时网络应用场景特点展开,如智能语音助手、智能翻译机、VoIP电话等,通常这类场景希望所有的语音响应在限定的时间内完成。如询问智能语音助手天气情况时,理想状态是语音增强、网络传输编/解码和识别结果回传在200ms内完成,当延迟超过500ms时,用户便能明显感知这一延迟。而VoIP这类场景除了音频,通常还伴随着视频数据,因而留给音频的网络带宽更为有限,且这类场景语音的双向接收对象均为人耳,对实时性和音质要求更高。概括地说,本书所述语音技术就是在限定的条件下获得最短的传输延迟和最高的语音品质。
学习建议
对于语音技术零基础读者,建议按本书编排顺序逐步阅读,本书中很多语音概念和语音信号处理方法在前两章有介绍;对于语音相关专业的在校学生,本书提供了众多理论和实际相结合的示例,动手操作这些示例有助于提升对算法工程应用的理解;对于工程技术和研发人员,由于本书的一些示例已经达到了商用水准,可以参考其中的一些处理方法和思路改进和优化相关算法。
由于语音处理基于一些数学和信号处理基础知识,所以本书在阐述相关算法原理和实现时不得不配以必要的数学公式。此外,限于篇幅,在阐述相关算法实现时以代码片段为主,详细代码可参见本书开源的众多源码。对于零基础且只想了解可以对语音进行哪些处理以及如何实现这些处理的读者,在阅读本书时可注重基本概念和原理并跳过相关公式推导内容。