语音信号处理(一)
语音信号处理概述
1、语音交互(VUI)
- 优势:输入效率高、解放双手双眼(车载)、使用门槛低、信息“含量”高
- 劣势:信息接受效率低、复杂声学环境、心理负担
历史:
- 1952 Audrey
- 1962 IBM shoebox ……
- 2011 siri
- 2014 win8 cortana
- 2014 Amazon echo
- 2016 Google :Google Home 小米、百度、
人机语音交互流程
- 唤醒、开始一轮语音交互
- 语音输入
- 语音——> ASR(自动语音识别系统)——>指令文字
- 文本指令 ——>NLP(文本解析)——>用户意图
- 语义——>Skill——>回复文本
- 文本——>TTS——>反馈音频
语音交互适合场景
家庭场景、车载场景、外出场景
2、复杂的声学环境:
- 方向性干扰,如人声
- 环境噪声(散射噪声)
- 远近产生的混响(本质上就是通信中的多径效应)
- 声学回声
前端处理意义:
让人听得清(提高SNR)、让机器听的请(语音识别率更高)
3、前端语音信号处理
举例:
- 语音通话(免提通话)
- 电话/视频 远程会议
一般手机(如苹果)有多个麦克风:
- 苹果 充电处两个:用于电话收音 后摄像头 一个:主动降噪 前摄像头一个:主动降噪
- 主动降噪是少需要两个麦克风:原理是利用声音到达两个麦克风的相位、幅度差 尽情语音噪声的已知 和语音信号提取
- 一般语音信号 到达两个麦克风有6dB左右的 幅度差,但是噪声却没有,利用这种特性来提取或抑制
- 也可以利用双麦实现波束成形
前端语音信号处理场景细分
(分而治之)
1、AEC(声学回声消除模块)最前端
2、De-reverb (解混响)
3、BSS(源盲分离,单通道、或者多通道)
4、波束成形(只能多通道 利用空间信息)
5、NS(噪声抑制,一般特指单通道)
6、AGC(幅度控制模块)
3.1、AEC 声学回声消除
消除设备自身干扰
需要的参数
参考信号:扬声器播放的信号
输入信号:麦克风输入的信号(包含扬声器信号和 实际输入信号)
两种信号在时间上对齐(做相关),把高度相关的部分(扬声器信号)删除
主要模块: 实验估计、线性回声消除、双讲检测(应该是检测你在讲话还是在听话状态 来控制回声消除模块的工作模式)、残余回声抑制
3.2、De-reverb 解混响
1、盲卷积法 [Neely and Allen ,1979];
- 如果把 多径信道视为一个FIR 滤波器,输出视为一个 语音信号与FIR 的卷积,那么可以估计FIR 并求逆,作用于信号
- 盲是指,没有任何先验信息,不知道信号形态,所以这种方案仅在噪声非常小时 有用
2、 加权预测误差 WPE [Takuya 2012] AT&T
- 原因:语音信号有线性预测特性
- 估计一个线性预测滤波器,将房间冲激响应截短,
- 为什么不全部减掉?因为认为 混响(冲击)有早期混响和晚期混响,早期混响其实是有益的,真正有干扰的是晚期混响
用权重等于 当前预测的误差除以当前信号功率,
单通道多通道都可以(多更佳)
3、 麦克风阵列波束成形 消除其他空间上的混响
4、 深度学习用于解混响 [Han 2015]
- DAE、DNN、LSTM、GAN 实验频谱映射
3.3、BSS 语音分离模块
语音分离- 旨在解决 “鸡尾酒会”问题 单 多
1、听觉场景分析 [hu and wang 2004]
本质上是对人的听觉特性的模拟、具体是二分类监督学习
2、非负矩阵分解[Lee and Seung ,2001]
基于统计独立信息假设,语音信号的系数性与谐波特性
3、 多通道技术 多
fix beamforming , adaptive beamforming ,ICA
4、 基于深度学习的语音分离
Deep clustering
Deep attractor netwaork
Permutation invariant training 单
等
convTasNet
3.4、 波束形成 多通道
用于多通道语音增强、信号分离、去混响、声源定位
现目前流行波束成形与深度学习相结合的方案
3.5、噪声抑制模块 NS(这里特指单通道、多通道一般放在波束成形)
基于统计模型方案 MMSE ML MAP
基于子空间方法: 利用语音与噪声的不相关性,借助特征值/奇异值分解到子空间处理
语音增强核心在于噪声估计 :
基于深度学习的语音增强方法 : 两大类: masking && mapping
3.6、幅度控制
自动调整信号动态范围
常用方法:
1、 动态范围控制(Dynamic Range Control)DRC
2、 自动增益控制(Automatic Gain Control) AGC
展望
- 信号处理与深度学习相结合的方案
- 处理依据:“规则+学习”
- 客观物理模型
- 语音信号的多种统计特性
- 海量音频先验信息
- 优化准则:MSE
- 处理依据:“规则+学习”
- 基于深度学习的前后端融合方案
- 处理依据:“端到端联合模型”
- 输入多通道麦克风信号、输出语音识别结果
- 利用近场数据,仿真得到海量有各种干扰的训练数据
- 将前端信号处理与后端ASR声学模型结合联合建模、用一套深度学习模型完成语音增强和语音折别任务
- 优化准则: 识别准确率
- 处理依据:“端到端联合模型”
推荐阅读:
基础知识:
—奥本海姆,《信号与系统》,电子工业出版社
—奥本海姆,《离散时间信号处理》( Discrete Time Signal Processing,Third Edition )
—郑君里,《信号与系统》,电子工业出版社,高等教育本科国家级规范教材
—赵力,《语音信号处理》,机械工业出版社
—韩纪庆,《语音信号处理》,机械工业出版社
—张贤达,《现代信号处理》,清华大学出版社
—张贤达,《矩阵分析与应用》,清华大学出版社
— Van Trees,检测、估计和调制理论(IV)《Optimum array processing》
— Signals and Systems: an Introduction to Analog and Digital Signal Processing.1987Lecture.Alan V.Oppenheim
推荐阅读:
实操:
《实时语音处理实践指南》
进阶:
《自适应滤波器原理》第五版
《语音增强 理论与实践》罗艾洲
《麦克风阵列信号处理》Jacob Benest
推荐项目:
— Athena-signal
https://github.com/athena-team/athena-signal
— Python for Signal Processing:
https://github.com/unpingco/Python-for-Signal-Processing
《Python for Signal Processing: Featuring IPython Notebooks》对应源码,包含信号处理12大类(采样定理、傅里叶变换、滤波器等)、随机过程15大类(高斯马尔科夫、最大似然等)
— Speex
https://www.speex.org
AFree Codec For Free Speech。专门语音压缩而设计的,包含超过9种算法∶AEC、NS、VAD等,不过现在被Opus替代。
— Google WebRTC
https://webrtc.org
一个免费的开放式项目,通过简单的API为浏览器和移动应用程序提供实时通信(RTC)功能。
— vOICEBOX: Speech Processing Toolbox for MATLAB
http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html
语音处理工具箱,由MATLAB程序组成。超过100个函数,包含语音增强、ASR等在内。