[欢迎访问我的博客原文](单通道语音增强之统计信号模型)


1. 信号估计理论简述

信号估计理论是现代统计处理的基础课题[@ZhangXianDa2002ModernSP],在通信、语音、图像领域均有广泛应用。语音增强,就是从带噪的语音测量信号中估计原始的无噪语音,这是典型的信号估计问题。 《语音增强–理论与实践》[@loizou2007speech]一书中列举了用于语音增强的一系列统计模型。

假设麦克风采集到的带噪语音序列为

,并且噪声都是加性噪声。则带噪语音序列为无噪语音序列与噪声序列的和。原始语音信号与噪声均可视为随机信号。

在时域对

进行估计是非常困难的,通过傅立叶变换,我们可以将信号分解为频域上互相独立的系数。信号估计模型转变为对每一个频点的系数进行估计的模型,不同频点之间的参数是相互独立的。

这个方法就叫做统计信号谱分析(Statistical Spectral Analysis)。显然地,纯净信号谱

带有幅度与相位两参数,我们实际上是对幅度
和相位
进行参数估计。

重组谱幅度和谱相位估计值即可恢复纯净语音谱,估计值用上标来表示:

实际信号的幅度和相位是不方便直接用在运算过程中的,因为信号取值范围不定,且瞬时变化。在噪声抑制领域,更常用的语音谱估计方法是对抑制增益(Suppression Gain)进行估计,不同的估计准则称为抑制准则(Supression Rule)。

通常会根据先验信噪比、后验信噪比来估计抑制增益

。 并且可以在只有噪声出现的时刻更新
, 在语音存在的时刻进行抑制,无须每帧去调用噪声抑制算法,计算过程比直接估计信号谱灵活。

综上,语音增强的典型流程就是:

  1. 对带噪语音

    分帧, 每一帧进行DFT得到
  2. 估计或者沿用上一帧的抑制增益
    ,得到纯净语音谱
  3. 进行IDFT,得到纯净语音序列的估计

为了估计模型的建模,对测量信号、估计信号、噪声信号都需要作一些数学上的假设和简化。其中对噪声一般会作以下假设:

  1. 噪声是与语音独立的加性噪声;
  2. 每一帧噪声的统计分布是稳态的;
  3. 噪声的傅立叶级数是零均值复高斯分布。

2. 最大似然估计ML

基如果不考虑信号的先验分布,即认为信号值是确定信号,而不是随机信号,我们只需要分析含有信号

为参数的带噪信号
的概率分布
,并使之最大。这种估计方法叫最大似然估计器(Maximum Likelihood Estimation)。将
的带参概率分布
称为似然函数(Likelihood Function)。对纯净信号
的估计,表达为求解合适的
值,使得似然函数
最大。

文献[@mcaulay1980speech]最早将最大似然估计法用在语音增强领域。对于纯净语音,可以假设纯净语音幅度

和相位
是未知但确定,无需考虑其先验概率分布。最大似然语音增强模型表达为:

代入噪声零均值复高斯分布公式中,得到:

3.贝叶斯估计

如果比最大似然估计更进一步,考虑待估计量

也是随机变量,且
的先验分布为
,这种假设下的估计方法叫做贝叶斯估计[@ZhangXianDa2002ModernSP]。定义估计值
与实际值
之间的误差函数为
,贝叶斯估计器的目标即为找出是平均误差
最小的估计值

对于待估计的纯净语音谱,贝叶斯估计器可以表达为:

误差

的期望值取决于待测信号与测量信号的联合概率分布。

对联合概率密度进行分解,提取

与条件概率密度

因为估计值

相互独立,对
的求解可以等价于对
求极大值,也就是:

误差函数

的计算模型,会引出不同种类的估计器。典型的误差函数有几种类型[@ZhangXianDa2002ModernSP]:
  1. 平方误差函数,对应最小均方估计。

  2. 绝对值误差函数,对应条件中位数估计。
  3. 均匀误差函数,对应最大后验估计。

3.1 最小均方估计(MMSE)

最小均方估计(Minimum Mean Square Error Estimation)[@ephraim1985speech]使用平方误差函数,平均误差为:

为求平均误差的极大值,可对估计量

求导,并求极值点。

显然极值点的

为被估计量
的条件均值:

亦可以使用贝叶斯公式展开,得到:

在语音增强的模型里,纯净语音谱的估计为其在带噪语音谱下的条件均值。

上式中,为得到纯净语音谱需要分别估计谱幅度

和谱相位

同时估计谱幅度和谱相位是很难的,研究者提出了许多分别估计谱幅度和谱相位的方法,估计完成后再用两者重组复语音信号。

3.1.1 MMSE谱幅度估计

最小均方根估计器MMSE short-time spectral amplitude

def mmse_stsa_gain(parameters=None):gamma = parameters['gamma']ksi = parameters['ksi']vk = ksi * gamma / (1 + ksi)j0 = np.i0(vk / 2)j1 = np.i1(vk / 2)A = sqrt(pi * vk) / 2 / gammaB = (1 + vk) * j0 + vk * j1C = np.exp(-0.5 * vk)gain = A * B * Creturn gain

3.1.2 MMSE对数谱幅度估计

对数最小均方根估计器The MMSE log spectral amplitude (MMSE-LSA), 或者缩写为LogMMSE估计器。

def logmmse_gain(parameters=None):gamma = parameters['gamma']ksi = parameters['ksi']A = ksi / (1 + ksi)vk = A * gammaei_vk = 0.5 * expn(1, vk)gain = A * np.exp(ei_vk)return gain

3.1.3 MMSE平方谱幅度估计

频谱幅度平方估计器MMSE magnitude squared[@wolfe2003efficient]

def mmse_sqr_gain(parameters=None):gamma = parameters['gamma']ksi = parameters['ksi']vk = ksi * gamma / (1 + ksi)j0 = np.i0(vk / 2)j1 = np.i1(vk / 2)A = ksi / (1 + ksi)B = (1 + vk) / gammagain = sqrt(A * B)return gain

3.2 最大后验估计 MAP

当贝叶斯估计器采用均匀误差函数时,平均误差为:

显然要使得平均误差最小,就是要求目标估计

,使得
最大。这种估计模型称作最大后验估计(Maximum A Posteriori Estimation)。这个模型的意思是只有估计值
与原始值
相等,误差才为0,其他时候误差均匀为1。估计值可以表达为:

在语音增强的模型里,纯净语音谱的估计为其在带噪语音谱下的条件均值。

文献[@wolfe2003efficient]提出了两种基于最大后验估计(Maximum A Posteriori Estimation)的语音增强算法。一种是同时求解幅度和相位的混合最大后验估计: 另外一种是单纯估计幅度的方法,两种估计器最后的噪声抑制增益略有不同。

3.2.1 幅度和相位混合最大后验估计

[@wolfe2003efficient]

def map_joint_gain(parameters=None):gamma = parameters['gamma']ksi = parameters['ksi']eps = 1e-6gain = (ksi + sqrt(ksi^ 2 + 2 * (1.0 + ksi)* ksi/ (gamma + eps))) / 2.0/ (1.0 + ksi)return gain

3.2.2 纯幅度最大后验估计

[@wolfe2003efficient]

def map_sa_gain(parameters=None):gamma = parameters['gamma']ksi = parameters['ksi']eps = 1e-6gain = (ksi + sqrt(ksi^ 2 + (1.0 + ksi)* ksi/ (gamma + eps))) / 2.0/ (1.0 + ksi)return gain

参考文献

[1] 张贤达, 现代信号处理. 清华大学出版社有限公司, 2002.

[2] P. C. Loizou, Speech enhancement: theory and practice. CRC press, 2007.

[3] R. McAulay and M. Malpass, Speech enhancement using a soft-decision noise suppression filter," IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 28, no. 2, pp. 137-145,1980.

[4] Y. Ephraim and D. Malah, Speech enhancement using a minimum mean-square error log-spectral amplitude estimator," IEEE transactions on acoustics, speech, and signal processing,vol. 33, no. 2, pp. 443-445, 1985.

[5] P. J. Wolfe and S. J. Godsill, Efficient alternatives to the ephraim and malah suppression rule for audio signal enhancement," EURASIP Journal on Applied Signal Processing, vol. 2003, pp.1043-1051, 2003.

功率谱 魏凤英统计程序_单通道语音增强之统计信号模型相关推荐

  1. 语音顶会 ICASSP 2022 成果分享:基于时频感知域模型的单通道语音增强算法

    近日,阿里云视频云音频技术团队与新加坡国立大学李海洲教授团队合作论文 <基于时频感知域模型的单通道语音增强算法 >(Time-Frequency Attention for Monaura ...

  2. 功率谱 魏凤英统计程序_频谱、能量谱、功率谱、功率谱估计

    关于频谱.能量谱.功率谱 对于能量信号,常用能量谱来描述.所谓的能量谱,也称为能量谱密度. 是指用密度的概念表示信号能量在各频率点的分布情况.也即是说,对能量谱在频域上积分就可以得到信号的能量.能量谱 ...

  3. 单通道语音信噪分离算法研究

    单通道语音信噪分离算法研究 摘要:为了评估单通道语音信噪分离的效果,本文分别对六种传统语音增强算法进行了探讨.在理想的高斯白噪声环境下,子空间法增强后的语音信号输出信噪比SNR最大,VMD(Varia ...

  4. 滴滴单通道语音分离与目标说话人提取和抑制技术进展

    桔妹导读:为了将目标语音从含多种干扰(如车噪.导航音.车内FM等)的复杂声学环境中分离出来同时尽量减小对原始语音的损伤,提高人机交互.客服听音等的效率,滴滴结合了在前端信号处理的多年研发积累与该领域的 ...

  5. Java编写数据统计程序_个人项目--wc文本统计程序(Java实现)

    Github地址:https://github.com/LYhiha/wcexe 1.项目相关要求 实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他扩展功能,并能够快速地 ...

  6. 开源网站统计程序 oracle,利用百夫长统计程序源码免费搭建独立网站统计软件工具...

    一般我们站长统计使用哪个工具?百度统计.51LA.CNZZ统计,还是其他统计工具.确实有些比较喜欢折腾的网友会使用一些开源程序搭建自己的统计工具,出于这样考虑的用户一来可能是考虑到个性化,二来可能将网 ...

  7. 光耦w314的各引脚图_单通道光耦ACPL-312U-500E设计,ACPL-W314-000E线路图

    单通道光耦ACPL-312U-500E设计 深圳市艾森美科技有限公司目前主要代理经销品牌有:VISHAY(威士),TOSHIBA(东芝),LITE-ON(光宝),OSRAM(欧司朗),COSMO(冠西 ...

  8. java选择题多选题系统小程序_单选题与多选题判断得分(自动考试小程序,入门级)...

    [单选题与多选题判断得分] [核心代码] using System; using System.Collections.Generic; using System.ComponentModel; us ...

  9. python超市售货统计程序_零售超市项目销售数据分析(Python)

    一.项目背景:现有一家零售超市2017-2020年的订单信息,2020年各销售指标持续上升,但是利润总额年增长率下滑,净利润率下滑,分析该超市的历年销售业绩表现和利润构成,探究利润总额增长速度下滑的原 ...

最新文章

  1. CSS Media媒体查询
  2. mysql 笔记打包下载_mysql 5.7压缩包安装笔记
  3. 代码 纪录 软件_「软件资料」-「资讯动态」-软件开发类项目关键文档内容要求...
  4. [转]Bootstrap table后端分页(ssm版)
  5. bzoj1079 [SCOI2008]着色方案
  6. Alex 的 Hadoop 菜鸟教程: 第3课 Hadoop 安装教程 - 非HA方式 (一台服务器)
  7. TTL电平和CMOS电平的区别及其应用
  8. 主题:免费的论文查重网站 正文:给大家推荐一个免费的论文查重网站PaperPP:http://www.paperpp.com
  9. python程序员工资-2018 年程序员工资大揭底!快来看看程序员赚多少钱
  10. 沃尔沃押注“超大尺寸HUD”,软硬件同步升级机会凸显
  11. 赢在2022,面试官常问的软件测试面试题总结
  12. 霸榜巨作、阿里内部顶级专家整理(Redis 5设计与源码分析)
  13. 在线IDE- Gitpod介绍
  14. 【自己动手设计一个简单的加密算法Python】
  15. 7.3_minibatch-sgd
  16. 浅谈“全栈工程师需要掌握哪些技能”
  17. Microsoft 365 E5开发者账号25T存储空间免费领取教程
  18. 百度知道引流有哪些方法?一个互动式的疑问解答
  19. 关于Cordova iOS 工程极光推送通知自定义声音的设置
  20. swapidc的php语言,SWAPIDC目录说明及文件说明及某些常量内容

热门文章

  1. 近数据处理(NDP)——GaussDB(for MySQL)性能提升的秘密
  2. GaussDB NoSQL架构设计分享
  3. 游戏“外挂”?—— AI生成游戏最强攻略
  4. 618 技术特辑(一)不知不觉超预算3倍,你为何买买买停不下来?
  5. 一文带你搞懂从动态代理实现到Spring AOP
  6. Go语言微服务开发框架:Go chassis
  7. 【华为云技术分享】看得见的安心,一手掌握华为云DRS迁移进度
  8. 大型情感剧集Selenium:9_selenium配合Pillow完成浏览器局部截图
  9. 【Python3网络爬虫开发实战】1.3.3-pyquery的安装
  10. 【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记