语音交互
你知道苹果手机有几个麦克风吗?
·
语音交互(VUI)是指人与人/设备通过自然语音进行信息传递的过程。
语音交互的优势:
- 输入效率高。语音输入的速度是传统键盘输入方式的3倍以上。例如:语音电视选台、远场语音交互、语音支持组合指令输出(“播放周星驰电影、要免费的、4星以上的”)
- 使用门槛低。人类本就是先有语音再有文字,对于那些无法用文字交互的人来说,语音交互学习成本低,能带来极大的便利。例如:还不会打字的小孩,或者不方便打字的老人家
- 解放双手和双眼,更安全。例如:车载场景通过语音点播音乐和导航,医疗场景(医生在操作设备的时候,可能还需要记录病例)
- 传递更多的声学信息。声纹、性别、年龄、情感等。
语音交互的劣势
- 信息接收效率低。例如:文字能快速阅览概括信息,语音的话必须听完才能理解。
- 复杂的声学环境
- 心理负担。交互方式不一样,例如:不太愿意通过语音来进行交互,特别是在一些公共场合
人机语音交互发展
- 1952年,贝尔实验室,阿拉伯数字识别系统Audrey
- 1962年,IBM-Shoebox
- ......
- 2011年,iphone4s,Siri问世
- 2014年,win8,Cortana
- 2014年,Amazon发布echo音箱
- 2016年,Google发布GoogleHome
应用场景
- 免提通话
- 电话/视频会议
- 手机——Siri、小爱同学
- 车载
- 智能音响——Amazon
- 家居——电视语音点台
总结起来就是:家里、车里、路上。
复杂的声学环境
现实中的语音交互系统,无一例外的会受到各种环境不利因素的影响,极大影响了交互成功率和用户体验。
- 方向性干扰
- 环境噪声(散射噪声)
- 远讲产生的混响
- 声学回声
痛点:人和机器都听不清
一个成功的语音交互产品,意味着对语音交互的场合和使用模式无约束。
前端语音信号处理的意义:
- 面对噪声、干扰、声学回声、混响等不利因素的影响,运用信号处理、机器学习等手段,提高目标语音的信噪比或主观听觉感受,增强语音交互后续环节的稳健性。
- 让人听清:更高的信噪比,更好的主观听觉感受和可懂度,更低的处理延时。
- 让机器听清:更好的声学模型适配,更高的语音识别性能。
总结:语音信号处理的目标,是为了让人和机器更容易听清语音,让语音交互更加自然和无约束。
针对不同的干扰因素,采用不同的信号处理算法
去回声——去混响——盲源分离——波束赋形——语音降噪——自动增益控制
声学回声消除
消除设备自身产生的回声干扰,最早应用于全双工语音通信、视频会议,在语音交互中起到打断唤醒的作用
主要模块
- 时延估计
- 线性回声消除
- 双讲检测
- 残余回声抑制
解混响
混响是由语音的多径效应所产生,在数学表达上是一个近场的纯净语音信号去卷积一个房间的冲击响应函数(RIR),这样的话能得到一个混响的语音信号。我们希望把混响的干扰因素消除掉,技术上有以下几种方法:
- 盲反卷积法[NeelyandAllen,1979]:直接去估计房间冲击响应函数的逆函数,如果把RIR当做是一个滤波器的话,我们直接去估计RIR的一个逆滤波器,然后把逆滤波器作用在带有混响的语音上,就得到了纯净语音信号。(“盲”:即没有任何的先验信息(既不知道原始信号的统计信息,也不知道房间的冲击响应函数),这种情况下想要恢复原始语音信号是非常困难的,所以我们只能假设完全没有噪声的场景,并且假设房间的冲击响应函数RIR是不变的,只有在这种比较严格的假设之下,才能得到相对较好的结果,但是这种假设在我们的实际情况当中是不会得到满足的,所以这种技术缺陷也是比较明显的)
- 加权预测误差[WPE,Takuya,2012]:因为语音信号具有线性预测特性(如果把语音信号当做是一系列采样点信号的话,那么下一个采样点可以用当前时刻以及当前时刻之前的若干采样点的值去预测出下一个时刻采样点的值),WPE认为混响可以分为早期混响和晚期混响,早期混响对于我们人的听觉感受系统没有负向作用,相反可能还有正面作用;晚期混响相对于房间冲击响应的拖尾的声音。那么加权预测误差则是希望估计一个最优的线性预测滤波器,这个滤波器的作用能够将房间冲击响应函数消除晚期混响的影响,多用于多通道。适用于单通道和多通道场景,多通道效果更好。
- 麦克风阵列波束形成:混响是多路径反射到达麦克风的,所以入射方向是全向的入射,而语音是方向性的入射,所以可以设计一个波束,拾取手机语音入射方向的语音。这样其他方向的混响就会被抑制
- 深度学习用于解混响[Han,2015]:通过DAE、DNN、LSTM或者GAN,实现频谱映射,端到端映射:带有干扰的语音信号频谱直接映射成为纯净语音信号的频谱,mask:掩膜,在当前的一个时频点上,是有效语音多还是带噪语音多,如果有效语音多则提取,如果带噪语音多则抑制。
语音分离
旨在解决“鸡尾酒会”问题
- 听觉场景分析法[HuandWang,2004]:本质上是对人的听觉特性的模拟,具体手段是二分类+监督学习
- 非负矩阵分解[LeeandSeung,2001]:基于统计独立假设,语音信号的稀疏性与谐波特性,把带有干扰的混合语音信号的频谱分解成为一个特征矩阵乘以另一个系数矩阵,那么之后属于不同声源的那些信号的特征就会很自然的聚集到一起,这样一来我们把属于干扰源的特征所对应的系数矩阵进行掩蔽,
- 多通道技术:固定波束形成(fix beamforming)、自适应波束形成(adaptive beamforming)、独立成分分析(ICA),本质上都是在多通道的场景下,通过一些空间信息和信号的统计独立假设,去估算一个最优的波束(要么提取目标说话人方向的声音,要么屏蔽干扰说话人方向的声音)
- 基于深度学习的语音分离
- Deep clustering [Hershey, 2016]
- Deep attractor network [Luo and Chen, 2017]
- Permutation invariant training [Yu, 2017]
波束形成
用于多通道语音增强、信号分离、去混响、声源定位
噪声抑制
消除或抑制环境噪声,增强语音信号
- 基于统计模型的方法
- 最小均方误差MMSE、最大似然估计ML、最大后验估计MAP
- 基于子空间的方法
- 利用语音和噪声的不相关性,借助特征值/奇异值分解手段分解到子空间处理
- 语音增强的核心在于噪声估计
- 递归平均、最小值追踪、直方图统计是比较常用的噪声估计手段
- 基于深度学习的语音增强方法
- 两大类方法:masking&&mapping
- 通过DNN、CNN、RNN或者GAN,在频域或时域实现(多为频域)
幅度控制
自动调整信号的动态范围
常用的两种方法
- 动态范围控制(Dynamic Range Control)
- 自动增益控制(Automatic Gain Control)
前端信号处理的技术路线
信号处理与深度学习相结合的方案
处理依据——“规则+学习”
- 客观物理模型
- 语音信号的时域、频域、空域特性
- 海量音频数据先验信息
既保留了声音传播的物理规律和信号本身的时域、频域、空域特性,又引入了先验数据统计建模的方法。
优化准则:MSE准则
基于深度学习的前后端联合优化方案
处理依据——“端到端联合建模”
- 输入多通道麦克风信号,输出语音识别结果
- 利用近场数据,仿真得到海量的带有各种干扰的训练数据
将前端信号处理与后端ASR声学模型联合建模,用一套深度学习模型完成语音增强和语音识别任务。
优化准则:识别准确率
参考
深蓝学院《语音信号处理》课件
奥本海姆,《信号与系统》,电子工业出版社
奥本海姆,《离散时间信号处理》(Discrete Time Signal Processing, Third Edition)
赵力,《语音信号处理》,机械工业出版社
郑君里,《信号与系统》,电子工业出版社,高等教育本科国家级规范教材
韩纪庆,《语音信号处理》,机械工业出版社
张贤达,《现代信号处理》,清华大学出版社
张贤达,《矩阵分析与应用》,清华大学出版社
VanTrees,检测、估计和调制理论(IV)《Optimumarrayprocessing》
Signals and Systems: an Introduction to Analog and Digital Signal Processing. 1987 Lecture. Alan V. Oppenheim
推荐开源项目
Python for Signal Processing:《Python for Signal Processing: Featuring IPythonNotebooks》对应源码,包含信号处理12大类(采样定理、傅里叶变换、滤波器等)、随机过程15大类(高斯马尔科夫、最大似然等)
Speex:A Free Codec For Free Speech。专门语音压缩而设计的,包含超过9种算法:AEC、NS、VAD等,不过现在被Opus替代。
Google WebRTC:一个免费的开放式项目,通过简单的API为浏览器和移动应用程序提供实时通信(RTC)功能。
VOICEBOX: Speech Processing Toolbox for MATLAB:语音处理工具箱,由MATLAB程序组成。超过100个函数,包含语音增强、ASR等在内。