语音信号处理概述

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等在内。