实时语音如何过质量关

大家好,我是cv君,涉猎语音一段时间了,今天提笔浅述一下 语音的传输前后,质量如何过关,也就是说,怎么评价我们语音的质量,比如麦克风等声音设备等等。

我们在语音质量方面,有三种全局上的评价方法:有参考客观评价方法,有参考客观评价方法,主观评价方法。

那么我们细分到他的子类,就会有很多使用的算法与评价思路。

语音质量极其重要,能够让聊天的你我免受一些噪声的烦扰,能够让部队军方的通信更可靠,能够让每逢佳节倍思亲,与家人通电话时 重温那久违,真实,亲切的话语和音色。

那么我们过去是怎么评价的?

主观评价主要参照国家标准《YDT2309-2011音频质量主观测试方法》,国家标准主要也是参考国际标准 中的主观评价:ITU-R BS.1116-1997。国际标准中比较常用的有:ITU-T P800(电话传输系统语音质量主观评价)、ITU-T P830(电话宽带和宽带数字语音编解码器主观评价方法)、ITU-T P805 (对话质量主观评价)。

1621124433395

cv 君 到他们的官网找到了以前的评价方法,可是很全面的哦。

本标准中的测试规则主要定义了以下几点:

连续重复 4 次参考标准音频和被测音频间隔试验;

音频源为 15-20s;

完整试验时间不超过 15-20 分钟;

测试成员:至少 10 名专家和 20 名非专家。

如果预先定义了分数值,则不需要对个别得分值进行规范化,否则需要规范化。

分数可以是 5 或 7。

​ 图1 :YDT2309-2011 标准中的测试方法

评分标准

评分标准可以采用5分或者7分,预先定义好评分值,则不需要归一化处理。否则需要做归一化处理

1621124646887

​ 图2 :YDT2309-2011评分标准

评价维度

国标里面针对音频主观判断的评价列举了很多的维度,这些维度需要根据实际的产品进行删减或者增加。

1621124660534

​ 图3 :YDT2309-2011 评价维度

​ 图4 :YDT2309-2011 评价维度

cv君认为 语音客观评价标准一般分为语音质量评价和言语可理解性评价。本文首先介绍了语音质量评价。在语音质量评价方面,首先要考虑的是信噪比,一个非常常见的评价标准,以及相关的导数标准。本文总结了几种常见的语音质量评价标准,供大家参考和使用。

客观评价-基于指标

(一) 相关的标准

常见的音频测试的项目可以粗略的分类为:动态范围,频率响应、灵敏度,谐波失真,互调失真,信噪比,最大输入输出电平等。在目前应用广泛的音频标准中都是分别从不同的角度考察了音频常见产品的性能,现将分类如下:

1621124646887

客观评价-基于模型

(一) 背景及标准

刚才谈到了指标体系的客观评价。让我们看看基于模型的方案。最早的语音质量评价标准只是基于无线指标(rxqual),但实际语音在传输过程中会经过无线、传输、交换、路由等节点,任何一个链路问题都会导致用户语音感知不良,仅仅考虑无线指标是无法发现和定位语音质量问题的,因此,基于用户感知的语音质量评价方法逐渐成为用户语音服务质量评价的最重要标准。

常用的语音质量评价方法分为主观评价和客观评价。语音质量的早期评价是主观的。人们打电话后通过耳朵感觉到说话的质量。1996 年,国际 ITU 组织开始在 ITU-tp.800 和 p.830 提案中制定相关的评价标准:MOS(mean opinion score)测试。它是一种主观测试方法,用于调查和量化用户的听音和感知语音质量的行为。不同的调查用户比较原始标准语音和无线网络传输的衰落语音的主观感受,并评估 MOS 评分,如表 1 所示。
img

注:对于 GSM 网络而言,评分在 3 以上即为比较好的语音质量。

然而,很明显,在现实中,一组人去听和评价声音质量是非常困难和昂贵的。为此,ITU 开展了大量的端到端客观语音质量测试技术的标准化工作,发布了 PAMS、PSQM、PSQM+、MNB、PESQ 等多种语音评估算法标准。MOS 评价开始摆脱原有的主观评价方法,采用定量算法计算出相应的等级和语音质量。

其中,p.862-pesq(perceptual evaluation of speech quality)算法是 ITU 于 2001 年 2 月发布的最新的语音传输质量测量标准。由于其强大的功能和良好的相关性,它很快成为最主流的语音评价算法。PESQ 算法适用于各种端到端网络的语音质量评估。它综合考虑了各种感知因素(如编解码失真、误码、丢包、时延、抖动、滤波等)对语音信号质量进行客观评价,从而提供了一种全面定量的语音质量测量方法。

从 PESQ 算法模型的结构图(见图 6)可以看出整个算法的处理流程。通过电平调整无线网络传输的参考信号和降级信号,然后用输入滤波器模拟标准手持电话进行滤波(FFT)。这两个信号在时间上对齐,并通过听觉进行转换。该变换包括系统中线性滤波和增益变化的补偿和均衡,然后通过认知模型映射到主观平均意见得分的预测。一般来说,输出信号和参考信号之间的差值越大,MOS 得分越低。所以简历军说,你可能有点困惑,我们可以看看这张同济大学的照片。
1621124851522

图6 :PESQ算法原理框图

与 PSQM 和 MNB 相比,PESQ 作为 itu-p.862 推荐的最新语音评估算法,只能用于窄带编解码器的测量,只能对某些类型的编解码器、背景噪声和端到端效应(如滤波和延迟变化)给出不精确的预测值。其算法模型能提供较好的相关性(见表 2),能在更大范围内准确预测主观质量,包括背景噪声、模拟滤波、时延变化等。

1621124864891

ITU-T相关的资料也已证明:PESQ能够给出非常精确的预测值,它适用于目前所知的所有移动通信技术,如GSM、CDMA、3G等,以及编码器语音质量的测量(AMR等)。可以说,PESQ是目前最为先进和准确的语音评估量化算法,由该算法得到的MOS评估结果最为切合用户的实际主观感受。

(二) 测试方法

与 PSQM 和 MNB 相比,PESQ 作为 itu-p.862 推荐的最新语音评估算法,只能用于窄带编解码器的测量,只能对某些类型的编解码器、背景噪声和端到端效应(如滤波和延迟变化)给出不精确的预测值。其算法模型能提供较好的相关性(见表 2),能在更大范围内准确预测主观质量,包括背景噪声、模拟滤波、时延变化等。

(二) 测试方法

Mos 的客观评价主要基于模型和算法,模型可运行与独立的 mos 测试盒,或者使用带 mos 测试的音频分析仪器。

鼎利 MOS 路测系统

支持多台测试手机或基于 2G/3G 的商用手机进行基于 PESQ 的评测测试。作为一个通用的集成测试平台,先锋可以通过添加一个单独的音频 MOS 盒附件,顺利升级到 MOS 测试功能。其结构示意图如下:
1621124887242

1621124876285

​ 图7 Pioneer MOS测试结构图

Pioneer路测系统的主要功能分为两个方面:一方面是记录测试时的无线网络质量情况;另一方面,内置PESQ最新算法模块,实时计算MOS分值并录制退化声音文件,同时给出一些相关质量测试指标。

R&S®UPV音频分析仪

cv君认为这个名字不是很好念,R&S®UPV除了可以分析常规的音频指标,还可以分析基于模型的mos音频质量评价。

img

img

![1621124935623|592x650](upload://8qA9uafhqxmygYwWTKm5xenKgXh.png)

​ 图9 罗德与施瓦茨公司具备mos测试的音频分析仪

小结

cv 君写完了过去人们使用的语音评价方法,上文提供了三种不同的音频质量测试方法,有条件的公司可以三种方法都用上,但是,条件一般的公司,可以选择性的用 1/2,1/3,2/3 组合,甚至单纯其中一种。三种不同的方法总结如下:

基于主观判断:

基于主观的音质判断,主要依靠评估专家的人工试听。其优点是成本低,测试环境易于实现。缺点是:对专家要求高,离散型大,样本量不足,不适合批量生产试验。

根据客观指标判断:

基于客观指标的音质判断主要依赖于仪器的测量。优点是测试环境易于实现,参考标准统一,测试结果准确客观;缺点是参数指标僵化,不能客观反映人的感受,会出现偏差。指标很好,但音质不好。

基于客观模型判断:

基于客观模型的音频质量判断主要取决于所使用的仪器和算法模型。其优点是:MOS 评价开始摆脱原有的主观评价方法,采用量化算法计算出相应的语音等级和语音质量。PESQ 算法适用于各种端到端网络的语音质量评估。它综合考虑了各种感知因素(如编解码失真、误码、丢包、时延、抖动、滤波等)对语音信号质量进行客观评价,从而提供了一种全面定量的语音质量测量方法。缺点是:MOS 客观评价依赖于模型和算法的成熟度和相关性,不同的模型标准不统一,客观性不如指标检验。

那么我们现在使用的评估方法是什么呢?

陈军刚才说了我们过去使用的三种语音评价方法。当然,仍有公司在使用这些方法。经典的或体面的。我们最近用什么方法?让我们看看。

在实践中,有许多主观和客观的方法来评价语音质量。主观的方法是通过人来评分,如 MOS、CMOS 和 ABX 测试。客观的方法是用算法来评价语音质量。在实时语音通话领域,有很多关于这一问题的研究,如 PESQ 和 P.563,它们都有参考和无参考的语音质量评价标准。在语音合成领域,研究较少。在本文中,我们经常使用显示光谱细节和计算 MCD(Mel 倒谱破坏)的方法作为客观评价。所谓的参考和无参考质量评估取决于该方法是否需要标准信号。除了要评估的信号外,还有一个音质优良、无损伤的参考信号;但在没有参考的情况下,不必直接根据待评价信号给出质量分数。近年来,出现了基于深度网络的语音质量自动评估方法,如 mosnet。

基于深度学习的方法:automos、qualityne、nisqa、mosnet

陈军认为这很难。当然,人们也发论文,并得到一定的认可。其中一些采用 CNN 分类和语音特征提取的方法。深入学习模型需要什么?

数据制作与读取

特征选择与提取

损失等评价指标的设置

模型建立与训练

模型验证和测试

我们看看这一步,并评估指标。这是我们在本节中所关心的。

在深度学习评价方法中:言语测量学

比较了几种评价指标

Mosnet(absolute.Mosnet 或 Mosnet)

无量纲,越高越好。0=非常差,5=非常好

由 mosnet 的作者提供:基于深度学习的语音转换目标评估

MOS 评估是一个非常广泛的声明。由于评价分数是由人给出的,因此可以灵活地测试言语的不同方面。例如,在语音合成领域,自然度 MOS(naturalness)和相似性 MOS(similarity MOS)是最常见的。在实时通信领域,有听力质量评价和会话质量评价。然而,人的评价结果受诸多因素的影响。一般来说,不同论文中给出的 MOS 没有很明显的可比性。只有同一篇文章中的 MOS 才能比较不同系统的优缺点。Google 在 ssw10 中发布了评价长格式文本到语音:比较感官和段落的评分,比较了多行文本合成语音的几种评价方法。在评价长文本中的一个句子时,音频样本的呈现会显著影响被试给出的结果。对于 e

,相似度 MOS(MOS of similarity)。在实时通讯领域,有收听质量(Listening Quality)评价和对话质量(Conversational Quality)评价。但是人类给出的评分结果受到的干扰因素特别多,一般不同论文给出的 MOS 不具有非常明确的可比性,同一篇文章中的 MOS 才可以比较不同系统的优劣。谷歌在 SSW10 发表的 Evaluating Long-form Text-to-Speech: Comparing the Ratings of Sentences and Paragraphs 对若干种多行文本合成语音的评估方法进行了比较,在评估较长文本中的单个句子时,音频样本的呈现形式会显著影响被测人员给出的结果。比如仅提供单个句子而不提供上下文,与相同句子给出语境相比,被测人员给出的评分结果差异显著。

1621125797050

在实时通信领域,ITU 对语音质量的主观评价方法进行了标准化,代码为 ITU-tp.800.1。绝对类别评分(ACR)是一种广泛应用的主观评价方法。采用 ACR 方法评价语音质量时,参与评价的人员对总体语音质量进行评分,评分范围为 1-5 分。分数越高,语音质量越好。

一般来说,MOS 应该是 4 或更高,这可以被认为是一个良好的语音质量。如果 MOS 低于 3.6,则表示大多数被测者对语音质量不满意。

MOS 试验的一般要求:

有足够多的不同样本(即听者和句子的数量),以确保结果具有统计显著性;

控制各受审核方的实验环境和设备保持一致;

每个受审核方遵循相同的评估标准。

除绝对评分外,其他常用的语音质量主观评价方法还包括失真类别评分(DCR)和比较类别评分(CCR)。这两种方法不仅需要提供失真的语音信号,而且需要原始的语音信号,更适合于评估背景噪声对语音质量的影响,或者直接比较不同算法的优劣。本文附有语音合成论文中 MOS 计算的脚本,它不仅强调 MOS 值,而且要求 95%的置信区间分数

这边cv君找了份代码,大家可以看看,比较简单,就不赘述了。

# -*- coding: utf-8 -*-
import math
import numpy as np
import pandas as pd
from scipy.linalg import solve
from scipy.stats import t


def calc_mos(data_path: str):
    '''
    计算MOS,数据格式:MxN,M个句子,N个试听人,data_path为MOS得分文件,内容都是数字,为每个试听的得分
    :param data_path:
    :return:
    '''
    data = pd.read_csv(data_path)
    mu = np.mean(data.values)
    var_uw = (data.std(axis=1) ** 2).mean()
    var_su = (data.std(axis=0) ** 2).mean()
    mos_data = np.asarray([x for x in data.values.flatten() if not math.isnan(x)])
    var_swu = mos_data.std() ** 2

    x = np.asarray([[0, 1, 1], [1, 0, 1], [1, 1, 1]])
    y = np.asarray([var_uw, var_su, var_swu])
    [var_s, var_w, var_u] = solve(x, y)
    M = min(data.count(axis=0))
    N = min(data.count(axis=1))
    var_mu = var_s / M + var_w / N + var_u / (M * N)
    df = min(M, N) - 1  # 可以不减1
    t_interval = t.ppf(0.975, df, loc=0, scale=1)  # t分布的97.5%置信区间临界值
    interval = t_interval * np.sqrt(var_mu)
    print('{} 的MOS95%的置信区间为:{} +—{} '.format(data_path, round(float(mu), 3), round(interval, 3)))


if __name__ == '__main__':
    data_path = ''
    calc_mos(data_path)

语音质量的感知评估(Perceptual evaluation of speech quality, PESQ)

PESQ在国际电信联盟的标注化代号为ITU-T P.862。总的想法是:

  1. 对原始信号和通过被测系统的信号首先电平调整到标准听觉电平,再利用IRS(Intermediate Reference System)滤波器模拟标准电话听筒进行滤波;
  2. 对通过电平调整和滤波之后的两个信号在时间上对准,并进行听觉变换,这个变换包括对系统中线性滤波和增益变化的补偿和均衡;
  3. 将两个听觉变换后的信号之间的谱失真测度作为扰动(即差值),分析扰动曲面提取出的两个退化参数,在频率和时间上累积起来,映射到MOS的预测值。

cv君这边还介绍个和PESQ比较的:P.563算法 很好用哦

客观语音质量评估的单端方法P.563

ITU 中 PESQ 的标签代码为 ITU-T p.862。总体思路是:

首先将原始信号和经过测试系统的信号电平调整到标准听觉电平,然后用 IRS(intermediate reference system)滤波器模拟标准手机进行滤波;

经过电平调整和滤波后,两个信号及时对齐,进行听觉变换。这种变换包括线性滤波和增益变化的补偿和均衡;

将两个听觉变换信号之间的频谱失真度量作为干扰(即差值)。从扰动表面提取的两个退化参数在频率和时间上进行累加,并映射到 MOS 预测值。

cv 君这边还介绍个和 PESQ 比较的:P.563 算法 很好用哦

客观语音质量评估的单端方法 P.563

第。P.563 与 PESQ 最大的区别在于 P.563 只需要音频引擎传输的输出信号,不需要原始信号,就可以直接输出流畅的信号。因此,P.563 的可用性更高,但其精确度低于 PESQ。 第。563 算法由三部分组成 预处理; 特征参数估计; 知觉映射模型 第。在对语音进行预处理后,563 首先计算出几个最重要的特征参数,然后根据这些特征参数判断语音失真类型。失真类型直接决定了感知映射模型的系数和使用的特征。最后的评价结果是利用感知映射模型(实际上,它是一个线性方程)计算出来的。 预处理 类似地,首先对语音信号进行校准和滤波。第。563 假设所有语音信号的声压级为 76dbspl,并将输入语音信号的声压级值校准为-26dbov。第。563 算法中使用了两种滤波器。第一类滤波器的频率响应特性与上述中间参考系(IRS)的频率响应特性相似。第二种滤波器采用四阶巴特沃斯高通滤波器,其截止频率为 100Hz,高频响应曲线相对平坦。通过这种滤波器得到的语音信号可用于基音同步提取、基音检测和基音检测信道模型分析以及信号电平和噪声电平计算。信号预处理的最后一部分是语音活动检测(VAD),它以 4ms 的信号功率作为区分语音和噪声的阈值。语音高于阈值,否则就是噪声。阈值是动态调整的 表示噪声信号在帧 NN 中的功率,N 是噪声帧的帧数。 阈值的初始值是帧长为 4ms 的所有信号的平均功率。为了提高 VaD 的准确度,对 VaD 结果进行后处理:如果一个片段大于阈值,但长度小于等于 12ms(3 帧),则判断信号为噪声;如果两段被确定为语音,但其间隔小于 200ms,则将这两段合并成一个完整的语音。 特征参数提取 第。563 算法在特征提取过程中利用了人声和听觉感知的原理,不需要考虑与通信网络相关的信息。第。563 算法使用三个独立的参数分析模块从预处理的语音信号中提取特征 第一个模块以人声生成系统为研究对象,通过建立声道模型,分析非自然变化引起的语音失真; 第二个模块主要用于对原始语音信号进行重构,分析失真语音信号中的噪声,包括加性噪声和与信号包络相关的乘性噪声; 第三个模块定义和估计语音信号中的不连续、静默、时域截断和其他失真。 第。563 算法共提取了 43 个不同的特征参数,其中 8 个为确定语音失真类型的关键参数。 失真类型决策与结果映射 最优先的失真类型是背景噪声,它由信号的信噪比(SNR)决定。背景噪声会严重影响语音质量。大多数含有背景噪声的语音 MOS 值一般在 1~3 之间,语音信号的不连续失真是指语音信号的沉默或中断,即信号电平值的突变。乘性噪声失真是指语音信号中与信号包络有关的噪声,它只出现在活动语音中。语音的机械性与语调密切相关。失真类型中优先级最低的是整个语音的不自然性。由于语音编解码器的输出质量与性别有关,P.563 根据基音频率将失真类型分为男性和女

NISQA是用于语音质量预测的深度学习模型/框架。NISQA模型权重可用于预测已通过通信系统(例如电话或视频呼叫)发送的语音样本的质量。除了整体的语音质量,NISQA还提供了质量方面的预测吵闹着色不连续响度给更多洞察质量下降的原因。

TTS自然度预测:
NISQA-TTS模型权重可用于估计由语音转换或文本语音转换系统(Siri,Alexa等)生成的合成语音的自然度。

训练/微调:
NISQA可用于训练具有不同深度学习架构的新的单端或双端语音质量预测模型,例如CNN或DFF->自注意力或LSTM->注意力池或最大池。所提供的模型权重还可以应用于针对新数据微调训练后的模型或用于向不同回归任务的转移学习(例如,增强语音的质量估计,说话者相似性估计或情感识别)。

小结

语音质量评估对给予了语音一个定量指标,对语音质量的评价(Audio Quality Assessment)其实是一个多年以来得到了深入研究的问题。大致可以分为需要标准信号的无参考(Non-intrusive)和有参考(instrusive)方法。无参考语音质量评估在实时通讯领域出现了许多传统和深度学习方法,但是在语音合成领域,成果其实是寥寥无几的。

噪声

cv君来说说一些噪声,因为这大大的影响了质量。

设备噪声: 比如单频音,笔记本风扇音等等。

环境噪声:鸣笛等,

信号溢出:爆破音

还有个音量小问题,包括,设备读取声音小,说话人声音小等。

解决方法

这边有一些建议方法,cv君认为可以用独立检测的方法,对这些类型的杂音做精准的检测,然后割离。

包括训练检测模型,针对杂音,硬件噪声,

下面cv君再针对回声介绍一种解决方法:

音频处理之回声消除及调试经验

本节讲的回声(Echo)是指语音通信时产生的回声,即打电话时自己讲的话又从对方传回来被自己听到。回声在固话和手机上都有,小时还可以忍受,大时严重影响沟通交流,它是影响语音质量的重要因素之一。可能有的朋友要问了,为什么我打电话时没有听见自己的回声,那是因为市面上的成熟产品回声都被消除掉了。回声分为线路回声(line echo)和声学回声(acoustic echo),线路回声主要存在于固话中,是由于2-4线转换引入的回声,声学回声是由于空间声学反射产生的回声 。回声消除(Echo canceller, EC)是语音前处理的重要环节,下面主要讲其基本原理和调试中的一些经验。

1,基本原理

1)自适应滤波器和自适应算法

一般滤波器的系数是固定的,而自适应滤波器的系数是变化的,是依据自适应算法来调整滤波器系数的。自适应滤波器的结构采用FIR或IIR均可,由于IIR存在稳定性问题,因此一般采用FIR。下图是自适应滤波器的一般结构:

image

上图中,x(k)为输入信号,y(k)为输出信号,d(k)为期望信号,e(k)是d(k)和y(k)的误差信号。自适应滤波器的滤波器系数受误差信号e(k)控制,根据e(k)的值和自适应算法自动调整。

自适应算法一般采用LMS(least mean square,最小均方)算法及其变种(如NLMS算法)。LMS算法是随机梯度算法族中的一员。具体可以看相关的文章。

2)回声消除基本原理。

下图是回声消除基本原理的框图:

image

处理过程如下:

a) 算近端远端语音数据的energy,确定双方是silent还是talk。

b) 远端输入经过自适应FIR滤波器后就得到了近似于近端输入的数据,并与近端输入相减后得到了误差e。

c) 误差e同时也会经过NLP(非线性处理)后产生舒适噪声送给对方。

2,调试

处理过程如下: a) 计算近端和远端语音数据的能量,以确定双方是沉默还是交谈。 b) 通过自适应 FIR 滤波器对远端输入进行滤波,得到近似于近端输入的数据,再减去近端输入得到误差 E。 c) 同时,误差 e 经过非线性处理后会产生舒适的噪声。 2.调试 笔者认为,在现有 EC 算法代码的基础上,调试 EC 主要有以下几个步骤 1) 学习回声消除的基本原理涉及信号处理知识(从固定系数滤波器到系数自适应滤波器)和高等数学知识(梯度)。因为不是算法,掌握基础知识就可以了。如果我们有一个坚实的基础,当然,我们越了解,就越好。 2) 看算法代码。如果有一个设计文档来实现那是最好的,有很多算法实现技巧,有设计文档可以帮助更好的理解代码。不,我得咬。一开始,你可能不明白。多读几遍,也许你每次都会更明白。 3) 做一个应用程序来验证算法。该应用程序的输入是近端和远端的 PCM 文件。将 EC 的输出写入 PCM 文件以查看处理效果。还有几个小步骤: a) 如果延迟设置为零,则近端和远端的 PCM 文件是相同的,理论上输出都是零数据。如果是这样,恭喜你选择了算法。如果没有,则需要调整算法中的某些系数,这些系数可能需要调整多次。最后的调试结果是算法输出几乎听不到回声。 b) 如果设置了一定的延迟,则近端的 PCM 数据与远端的 PCM 数据相同,但近端的 PCM 数据与远端的 PCM 数据相比有一定的延迟。此值与设置的延迟值相同。此时,理论上输出数据仍然为零。 c) 通过获得实际乘积的近端和远端的 PCM 数据,可以近似地得到近端和远端的时延。如果你把这些作为输入,看看算法的输出,你几乎听不到回声。经过这一步,算法基本上可以使用了。 在特定的硬件平台上。每个硬件平台的延迟都是不同的。在芯片公司,有演示板,每个客户也有自己的电路板。硬件平台相对较少。一个接一个地,你可以得到远近的 PCM 数据并调整延迟。在移动互联网公司制作应用程序时,手机的种类很多。使用上面的方法太累了,所以我在 UI 上做了一个滑块来配置延迟,让测试人员测试并找到一个比较好的延迟,然后保存在配置文件中。稍后,此手持设备将使用此延迟值。 经过以上步骤,电子商务在实际产品上的调试结束。

最后最后

语音增强噪声 及其评估方法

噪声类型

语音增强的目的是提高语音信号的质量或可懂度,减少失真。这里主要介绍单麦克风信号语音增强,常见的失真有:

    (a) 加性声学噪声:就是麦克风在录制语音时同时录制进去的背景环境声音

    (b) 声学混响:多径反射引起的叠加效应

    (c) 卷积信道效应:导致不均匀或带宽限制响应,为了去除信道脉冲响应,做信道均衡时对通信信道没有有效建模

    (d) 非线性失真:比如信号输入时不适当的增益

语音增强

cv君刚刚介绍噪声类别,那么我们就可以针对性的做一些解决。可以将信号退化分成3类:

1)在声学和电子学中可能产生与期望信号不相干的加性噪声,其影响了声音可懂度和听觉质量,极端情况下,甚至掩盖了期望语音。对于一些加性噪声,其频谱特征是平稳的或随时间缓慢变换的,比如嗡嗡声、功放噪声和一些环境噪声。谱减法和单信道自适应滤波器成功应用于这些平稳噪声。还有一些加性噪声是间歇的或高度非平稳的,这些噪声的鉴定和消除效果还不理想,比如媒体干扰、非期望语音干扰和一些电子干扰。

2)卷积影响一般是由混响、反射等造成的,其与加性噪声的区别是:加性噪声和期望语音时不相干的,而卷积噪声和期望语音是相干的。麦克风的位置、麦克风的特性和CODEC局限性可能引起带宽限制和不均匀的频谱响应。对卷积噪声的处理效果不是很好。

3)非线性失真频繁出现于幅度限制、麦克风功放等。这类噪声也比较难处理。

3.2 按帧处理

其中n=0;…;N-1,w(n)是窗函数,M是帧移,N是窗长,是频率分辨率和时间分辨率的折衷,一般是10~30ms,对应50Hz左右的频率分辨率。为了减小窗函数的影响,窗函数的选择和帧移选择很重要,可以用汉宁窗,半帧长的帧移。

3.3 谱减法

1979年提出,广泛用于减少加性噪声。只要在频谱上乘以一个增益系数。谱减法如果减得不够,会有噪声残留,如果减得过多,又会造成语音失真。

总结

这篇文章很长,但很有意义,综述了过去几年和近今年语音传输,语音编解码前后的质量问题,另外我还针对了几种噪声,提出了解决的方案,以便我们更好地解决问题。

如果大家对文章感兴趣,不妨看看我在InfoQ写的另一篇文章:声网的算法和噪声等的相关解决方案,这里篇幅原因,有时间下次整合一起介绍~ 其实还包括使用强化学习,对抗生成等方式的解决问题方法,特别强,以后可以详细分析一下。

再会~