导航:首页 > 源码编译 > 语音前处理AAA算法

语音前处理AAA算法

发布时间:2023-05-31 04:54:11

❶ 单通道语音增强之综述

单通道语音增强是语音信号处理中广泛研究的课题,主要作为前端去噪模块应用在提升音质、语音通信、辅助听觉、语音识别等领域。 单通道语音增强问题定义主要包括两个方面:

不包括:

单通道语音增强传统的方法是滤波和统计信号处理,比如WebRTC的噪声抑制模块就是用维纳滤波。 这些传统的方法基本都在 《语音增强--理论与实践》一书中有详细讲解。

近几年机器学习方法兴起,也逐渐成为语音增强的主要研究方向,各种新型神经网络的方法都被尝试用在语音增强领域。这些新方法主要看近几年的InterSpeech会议、ICASSP会议和IEEE的期刊。

下面先对单通道语音增强号的基本处咐哗理步骤做个简单介绍。

假设麦克风采集到的带噪语音序列为 ,并且噪声都是加性噪声。则带噪语音序列为无噪语音序列与噪声序列的和。 原始语音信号与噪声均可视为随机信号。

语音信号的处理一般都在频域,需要对带噪信号 进行分帧、加窗、短时傅里叶衡凳行变换(STFT)后,得到每一帧的频域信号,其中X,Y,D分别是干净语音、带噪信号和噪声的频域信号。

语音增强的目标是对实际信号 的幅度和相位进行估计。但是因为相位不易估计、而且研究表明相位对去噪效果影响比较小cite{wang1982unimportance},所以大部分方法都只对幅度谱进行增强,而相位则沿用带噪信号的相位。

换句话说,语音增强就是要找出一个频域的实函数 , 并且将这个函数与带噪信号相乘,得到干净语音的估计。这个实函数称作抑制增益(Suppression Gain)。

下面是单通道语音增强系统主要步骤的示意图,系统目标就是估计抑制增益,而抑制增益依赖于两个核心步骤:语音检测VAD和噪声估计模块。只有准确估计噪声谱 ,才有可能准确估计抑制增益。 详细的VAD和噪声估计方法不在这篇文章里面详述,具体可以看参考文献。 一种简单的想法是先估计出VAD,如过判断此帧没有语音,则更新噪声谱,否则就沿用上一帧的噪声谱。

综上,语音增强的典型流程就是:
1 对带噪语音y[n]分帧, 每一帧进行DFT得到 。
2 利用 进行VAD检测和噪声估计。
3 计算抑制增益 。
4 抑制增益 与带噪信号谱相乘粗握,得到纯净语音谱
5 对 进行IDFT,得到纯净语音序列的估计 。

噪声估计模块可以估计噪声功率,也可以估计信噪比,避免信号幅度变化带来的误差。
定义后验信噪比为,带噪语音与噪声功率之比:

定义先验信噪比,为纯净语音与噪声功率之比:

谱减法是最直观的去噪声思想,就是带噪信号减去噪声的频谱,就等于干净信号的频谱。估计信号频谱的表达式如下,其中 应是噪声估计模块得到的噪声频谱。

假设语音信号与噪声不相关,于是得到估计的信号功率谱是测量信号功率谱减去估计的噪声功率谱。

因此抑制增益函数即为:

维纳滤波的思想也很直接,就是将带噪信号经过线性滤波器变换来逼近原信号,并求均方误差最小时的线性滤波器参数。维纳滤波语音增强的目标就是寻找系数为实数的线性滤波器,使得滤波偶信号与原干净语音信号之间的均方误差最小。这是一个优化问题,目标是求使得均方误差最小的参数

Gain用先验信噪比表示

见博文 《单通道语音增强之统计信号模型》 。

待补充。

话音激活检测(Voice Activity Detection, VAD) 将语音帧二分为“纯噪声”和“语音噪声混合”两类。 说话人静音、停顿都会出现多帧的纯噪声,对这些帧无需估计语音信号,而可以用来估计噪声功率。 语音帧经过VAD分类后,进行不同的处理:

:不含语音帧,更新噪声功率估计和Gain, 进行抑制;

:包含语音帧,沿用上一帧的噪声功率和Gain,进行抑制。

语音存在概率SPP(Speech Presence Probability,SPP) 跟VAD作二分类不同,利用统计模型对每一帧估计出一个取值在[0,1]的语音存在概率,也就是一种soft-VAD。 SPP通常跟统计信号模型结合起来估计最终的Gain。

一种估计SPP的方法是根据测量信号 估计每个频点的语音存在的后验概率,也就是

根据贝叶斯公式:

定义语音不存在的先验概率 为 , 语音存在的先验概率 为 。假设噪声与语音信号为零均值复高斯分布。最终可以得到SPP计算公式:

其中为 为条件信噪比,有 及 。

语音不存在的先验概率 可以采用经验值,如0.5,或者进行累加平均, 也可以参考《语音增强—理论与实践》中更复杂的算法

最小值跟踪发的思想是,噪声能量比较平稳, 带语音的片段能量总是大于纯噪声段。 对于每个频点,跟踪一段时间内最低的功率,那就是纯噪声的功率。

为了使功率估计更稳定,通常要对功率谱进行平滑处理:

然后寻找当前第 帧的最低功率 。简单的方法是直接比较前 帧的功率,得到最小值,计算速度较慢。
还有一种方法是对 进行非线性平滑,公式如下。

参数需要调优,可以参考文献中提供的取值: 、 、 。

这种估计方法的思路是,噪声的能量变化比语音稳定,因此按频点统计一段时间内的能量直方图,每个频点出现频次最高的能量值就是噪声的能量。 主要包括以下几个步骤:

1.计算当前帧的功率谱

2.计算当前帧前连续D帧功率谱密度直方图,选择每个频点k的频次最高的功率值

3.滑动平均,更新噪声功率谱密度

当前帧的SNR很低,或者语音出现概率很低时,意味着当前信号功率很接近噪声功率,我们可以用当前帧的功率谱与前一帧估计的噪声功率进行加权平均,从而更新噪声功率谱。这就是递归平均法,通用的公式是:

算法的核心变成了计算参数 ,研究者提出了不同的方法,比如可以根据后验信噪比 计算参数:

用 和 分别代表当前帧包含语音和不包含语音,从概率论的角度,当前帧的噪声功率期望值为:

其中,当前帧不存在语音时,噪声功率就是信号功率,所以
。当前帧存在语音时,可以用前一帧估计的噪声功率来近似,
。噪声的递归平均算法转化为求当前帧每个频点的语音存在/不存在概率问题:

比照递归平均的通用公式,也就是
。 使用前一节介绍的语音存在概率SPP计算方法求
即可。

MCRA是一种将最小值跟踪与基于语音概率的递归平均结合起来的算法,核心思想是用当前帧功率谱平滑后与局部最小功率谱密度之比来估计语音概率。

以某阈值 对语音概率 进行二元估计

语音概率也可以进行平滑:

另外,如果将语音不存在是的噪声估计也做滑动平均,也就是


可以得到最终的噪声概率估计公式:

后验信噪比的估计比较直接,就是带噪信号功率与估计噪声功率之比: 。然后 。

先验信噪比是纯净信号功率与噪声功率之比,无法直接得知,需要更进一步估计。一种方法是简单谱减法,从功率角度 。 因此

更精确的方法是判决引导法(Decision-directed approach), 滑动平均

参考文献

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

❷ 在语音信号参数分析时为什么要进行预处理,有哪些预处理

语音识别的基本过程 根据实际中的应用不同,语音识别系统可以分为:特定人与非特定人的识别、独立词与连续词的识别、小词汇量与大词汇量以及无限词汇量的识别。但无论那种语音识别系统,其基本原理和处理方法都大体类似纯蠢。语嫌裤森音识别过程主要包括语音信号的预处理、特征提取、模式匹配几个部分。预处理包括预滤波、采样和量化、加窗、端点检测、预加重等过程。语音信号识别最重要的一环就是特征参数提取。提取的特征参数芹亩必须满足以下的要求:(1)提取的特征参数能有效地代表语音特征,具有很好的区分性; (2)各阶参数之间有良好的独立性;(3)特征参数要计算方便,最好有高效的算法,以保证语音识别的实时实现。在训练阶段,将特征参数进行一定的处理后,为每个词条建立一个模型,保存为模板库。在识别阶段,语音信号经过相同的通道得到语音特征参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。同时,还可以在很多先验知识的帮助下,提高识别的准确率。

❸ 开语音厅做不好什么原因

音质的要求更高。
1、整体稳定的技术。1对1语聊的技术门槛相对较低,多人语聊和特定场景相对复杂,技术实现难度比较大。以pia戏为例,如果经常出现卡顿、延迟和听不清的情况,会将营造的剧情气氛破坏殆尽,主播时不时要退出重新登录,无法全身心投入,用户听到的是断断续续的声音,不能沉浸到剧情中。即构自研的音视频引擎,通过抖动缓冲技术、前向纠错技术、丢帧补偿技术减少网络抖动和弱网环境下的延迟,保障语音通话低延时且清晰。让用户在复杂网络环境和多类型手机的情况下,也能实现畅通优质的语音通话。
2、多人聊天的语音前处理以KTV语聊房为例,在房间当中,有人说话声音、歌声、伴奏都在房间呈现,每个人所处的地方,所用的设备也不一样,这就有很大可能出现回声、噪音,或是某个人设备不是很好,发出的声音很小。即构成熟的语音前处理3A技术:回声消除(AEC)、噪音抑制(ANS)、音量增益(AGC),杜绝回声和啸叫,降噪而无损音质。这样歌者能展示甜美歌声,听众也有良好的听觉享受。
3、媒体次要信息同步而在KTV类的场景中,AB两人轮麦合唱,如果轮到B唱歌时发现歌词没同步,就很难唱下去。这当中技术难点就在于歌词等媒体次要信息是否能做到同步。即构的KTV解决方案中,支持将非媒体信息注入媒体流中,歌词等媒体次要信息和音视频信息放在同一个媒体通道传输的,做到歌词与歌声同步展示果。

❹ NetEq中DSP模块音频算法探究

netEQ是webrtc中动态抖动缓冲区和错误隐藏的算法,用来消除因为网络抖动或者丢包。在保持高质量通话的同时,兼顾数据的低延时。其中,两大模块分别为MCU、DSP。

MCU(Micro Control Unit)模块是抖动缓冲区的微控制单元,由于抖动缓冲区作用是暂存接收到的数据包,因此 MCU 的主要作用是安排数据包的插入并控制数据包的输出。数据包的插入主要是确定来自网络的新到达的数据包在缓冲区中的插入位置,而控制数据包的输出则要考虑什么时候需要输出数据,以及输出哪一个插槽的数据包。

DSP(digital signal processing)模块是信号处理单元,主要负责对从 MCU 中提取出来的 PCM 源数据包进行数字信号处理。

本文将针对DSP模块中设计到的相关算法以及具体处理过程做详细介绍和分析。

这里解释一下DSP处理中几个操作类型的意义:

加速 Accelerate: 变声不变调的加速播放算法

慢速 PreemptiveExpand: 变声不变调的减速播放算法

正常 Normal: 正常的解码播放,不额外引入假数据

融合 Merge: 如果上一次是 Expand 造假出来的数据,那为了听起来更舒服一些,会跟正常数据包做一次融合算法

丢包隐藏 Expand(Packet Loss Concealment): 丢包补偿,最重要的无中生有算法模块,解决 “真丢包” 时没数据的问题,造假专业户

舒适噪音 ComfortNoise: 是用来产生舒适噪声的,比单纯的静音包听起来会更舒服的静音状态

a. 基音,指的是物体震动时所发出的频率最低的音,其余为泛音。也就是发音体整段震动,它携带着语音中的大部分能量。

b. 基音周期,声音震动波形的周期,其频率则为基频。基音周期是语音处理算法中的基本单位,是语音估计中的关键参数。

c. 基音检测,是对基音周期的估计,目的是得出和声音震动频率完全一致的基音周期长度。

d. 短时自相关函数法,webrtc中用于基因检测的方法。经典的短时自相关函数法进行基音检测时,是使用一个窗函数,窗不动,语音信号移动。通过比较原始信号和他位移后的信号之间的相似性来确定基音周期,如果移位距离等于基音周期,那么两个信号便具有最大相似性。窗口长度N的选择至少要大于基音周期的两倍,N越大,得出的基音周期越准确,但计算量也会相应增加。反之,N越小,误差越大,计算量越小。

e. WSOLA,Waveform Similarity Over-Lap Add,波形相似重叠相加法。在不改变语音音调并保证音质的前提下,使语音在时间轴上被拉伸或者压缩,即变速不变调。
采用分解合成的思想,将原始语音以L为帧间距,以N为帧长进行拆分,以aL为帧间距进行合成,其中a为调整因子。为防止频谱断裂或相位不连续,合成时在原始语音信号的采样点处,相邻区域[-max, +max]内移动,寻找信号波形相关最大的波形,确定合成位置。

图中是通过直接拷贝的方式实现慢速播放,造成了时域波形不连续。波形相似叠加法避免了上述问题的出现。

加速处理用来解决数据包在jitterbuffer中累积造成延时过大的情况。使用WSOLA算法在时域上压缩语音信号。

已上图为例,长度为110个样本。其中B区域为短时自相关函数法中的x(n),长度相同的移动窗(A区域)为x(n-τ),以τ为10开始移动,最大为100。在此过程中以抛物线拟合的方式求出相关性最大时的移动距离τ,进而得到该帧的基音周期P。

计算该数据流,中心点,前后两个基音周期的相关性bestCorr。当相关性大于0.9,将两个基音周期交叉混合并输出;否则,按照正常处理直接输出。

加速处理就是将两个基音混合成一个个并代替原有的两个基音来缩短语音长度。

加速后的语音数据存于neteq算法缓冲区algorithm_buffer中。

neteq/accelerate.cc

减速处理用来解决网络状况不好而导致音频数据比较少时,为了人耳听觉的连续性,使用WSOLA算法在时域上拉伸信号,来延长网络等待时间。

过程与加速过程类似

减速处理是将两个基音混合成一个,并插入到两个基音中间来延长语音长度。因此,经过减速处理的语音帧增加了一个基音周期的时长。

减速后的语音数据存于neteq算法缓冲区algorithm_buffer中。

neteq/preemptive_expand.cc

当音频数据丢失,会利用参考数据在算法缓冲区中创建、补齐缺失内容,实现丢包隐藏,保证听觉体验。

上图中,丢包隐藏使用语音缓冲区中最新的256个样本作为参考数据源,并将这些数据记为speechHistory(历史数据)。speechHistory用于连续PLC的场景。

neteq/expand.cc

融合处理发生在播放的上一帧与当前数据帧不连续的情况。比如,上一帧为PLC帧,当前帧为正常帧。

neteq/merge.cc

正常处理一般用于提取的数据包刚好符合播放要求,然后将此包解码后直接输出到speech buffer等待播放。如果上次处理是PLC,还需要进行平滑。

neteq/normal.cc

rfc 3389。结合语音活动检测算法的舒适噪音生成可快速确定静音出现的时间,并在出现静音时产生人工噪音,直到语音活动重新恢复为止。产生的人工噪音可形成传输流不间断的假象,因此电话中的背景声音会从始至终保持连续,接听者不会有电话掉线的感觉。

neteq/comfort_noise.cc

参考

https://blog.csdn.net/liuxiaoheng1992/article/details/79379514

https://nemocdz.github.io/post/浅谈-webrtc-neteq/#丢包补偿-1

《WebRTC语音引擎中NetEq技术的研究》吴江锐

❺ 语音信号预处理

MFCC是计算语音信号的Mel频率倒谱系数,Mel频率是基于人耳听觉特性提出来的,它与Hz频率成非线性对应关系。Mel频率倒谱系数(MFCC)则是利用它们之间的这种关系,计算得到的Hz频谱特征,MFCC已经广泛地应用在语音识别领域。由于Mel频率与Hz频率之间非线性的对应关系,使得MFCC随着频率的提高,其计算精度随之下降。因此,在应用中常常只使用低频MFCC,而丢弃中高频MFCC。

MFCC参数的提取包括以下几个步骤:
 预滤波(低通):前端带宽为300-3400Hz的抗混叠滤波器。
 A/D变换:采样频率,线性量化精度。
 预加重:通过一个一阶有限激励响应高通滤波器,使信号的频谱变得平坦,不易受到有限字长效应的影响。
 分帧:根据语音的短时平稳特性,语音可以以帧为单位进行处理,实验中选取的语音帧长为32ms,帧叠为16ms。
 加窗:采用哈明窗对一帧语音加窗,以减小吉布斯效应的影响。
 快速傅立叶变换(Fast Fourier Transformation, FFT):将时域信号变换成为信号的功率谱。
 三角窗滤波:用一组Mel频标上线性分布的三角窗滤波器(共24个三角窗滤波器),对信号的功率谱滤波,每一个三角窗滤波器覆盖的范围都近似于人耳的一个临界带宽,以此来模拟人耳的掩蔽效应。
 求对数:三角窗滤波器组的输出求取对数,可以得到近似于同态变换的结果。
 离散余弦变换(Discrete Cosine Transformation, DCT):去除各维信号之间的相关性,将信号映射到低维空间。
 谱加权:由于倒谱的低阶参数易受说话人特性、信道特性等的影响,而高阶参数的分辨能力比较低,所以需要进行谱加权,抑制其低阶和高阶参数。
 倒谱均值减(Cepstrum Mean Subtraction, CMS):CMS可以有效地减小语音输入信道对特征参数的影响。
 差分参数:大量实验表明,在语音特征中加入表征语音动态特性的差分参数,能够提高系统的识别性能。可用到了MFCC参数的一阶差分参数和二阶差分参数。

采样前的低通滤波,主要是消除采样时的频谱混叠。由硬件完成。
预加重主要是提高高频的频谱分量。软件,硬件都可以完成。

预加重前,也可以用高通滤波器,消除低频噪音。

如果计算mfcc是有了预加重。之前的预加重就不要做。

采样前的硬件低通滤波是一定要做的。

计算mfcc时的滤波,看起的作用是什么?如果是进一步消除噪音,那就必须做。

❻ 语音识别的前端处理

前端处理是指在特征提取之前,先对原始语音进行处理,部分消除噪声和不同说话人带来的影响,使处理后的信号更能反映语音的本质特征。最常用的前端处理有端点检测和语音增强。端点检测是指在语音信号中将语音和非语音信号时段区分开来,准确地确定出语音信局大号的起始点。经过端点检测后,后续处理就可好含以只对语音信号进行,这对提高模型的精确度和识别正确率有重要作用。语音增强的主要任务就是消除环境噪声对语音的影响。目前通用的方法是采用维纳滤波,该方法在噪声较大的情况下效果好于其它桐袜竖滤波器。

❼ 有哪些新的语音信号编码方法

20世纪80年代至今,不仅声码器和波形编码器得到了很大发展,并且还有一种全新的革命性编码方法被普遍推广,这类编码器叫混合编码器。这种编码器在传送器中对给定编码结构的所有可能性进行综合,找出输人语音的最好编码形式,并从这些可能性中发现输入语音的最优主观匹配,然后用数码表示这种主观匹配并发送到接收器。利用线性预测、VQ、A-B-S、感觉加权、后滤波等技术得到的多脉冲激励线性预测(MPELP,Multi Pulse Enspirit LinePrognosticate),规则脉冲激励线性预测(RPELP,Rule Pulse Enspirit Line Prognosticate),码本激励线性预测(CELP,Code Enspirit Line Prognosticate) 编码速率达到8~16Kbit/s甚至更底,其话音质量族知高、编码速率低,但算法复杂。

近年来,ITU-T在多媒体数字通信方面(包括电视会议等)制定了一系列国际标准(按ITU的说法是建议)。

表1 ITU-T多媒体会议标准(基本模式)

在现有的网路设施条仵下,H.320和H.323比较适用的标准。H.320的基本音频模式是G.711 log-PCM(对数脉码调制)编码解码器,它是一种简单的8kHz采样频率对数脉码调制模式,长期以来它都是数字电话网络主要的编码方法(长途电话尽管起源于模拟电话,现在长途电话在数字网络上传输)。

G.711定义为8位编码,速率为64Kbit/s,但在H.320中采样截短为6或7比特位,因为速率相应变为48Kbit/s或56Kbit/s。G.711提供了出色的长话音质窄带(3kHz音频带宽)语音、不太明显的编解码延迟(低于1ms)以及非常低的实现复杂性。为了提供与普通G.711音频电话的兼容性,所有的H.320呼叫在H.221 FAS和BAS信道中进行同步初始化和模式协商时开始发送和接收G.711音频。

G.711有很多优点,但是G.711指定了两个不同的编码A律和μ律,在采用G.711标准的区域,不同地方使用上述两种不同的方法。CCITT不能达成统一的编码方法。结果是H.320系统必须由远端在每次呼叫开始时自动发现使用的编码律,或者避免使用音频直到H.320控制过程能用来建立另一音频模式。而且,G.711因为它的低复杂性和与普遍电话的兼容性成为H.返穗租320的基本音频模式,但与其他H.320音频模式相比在使用带宽方面它是效率低下的。如果转到其他音频模式下节省的数据带宽可用来传送更多的视频位,将使H.320视频质量有很大不同,特别是在普通的2-B(128Kbit/s)H.320呼叫上。

鉴于G.711语音压缩协议本身的一些缺点,人们一直在找一种替代它的协议,现在已经开始用的有G.722协议和G.728协议。

G.728是目前H.320中用得较多的窄带音频模式。它是基于通常的8kHz窄带采样和5个采样(0.625ms)的音频帧的低时延码本激励线性编码(LD-CELP),比特率为16Kbit/s,提供很好的长话音质,总延迟为大约漏兆1.875ms。

在现有网络条件下,需要一个窄带音频模式,但是又要有相当好的语音质量。 最近建立的8Kbit/s电话标准真正提高了该速率下的语音品质并改善了复杂性,这种编码器在某种程度上是一个突破,因此它的严格规范使性能达到或超过了32Kbit/s的G.726 ADPCM,但速率仅为8Kbit/s。ITU G.729 SKbit/s标准在性能上不亚于G.726,其算法延时少于16ms,随机误码和背景噪声的性能都不低于G.726,具有与自身的异步串联能力。比如说,两级串联的性能不低于G.726四级串联的性能,达到这个水平的编码称为共扼结构代数码激励线性预测(CS~ACELP),它采用特殊的码本结构简化码本查找。

由于G.729的优点突出,特别适合目前网络条件,因此其在多媒体会议中的应用越来越受到重视。G.729的算法被称作共轭结构代数码激线性预测(CS-ACELP,ConjugateStructuredˉAlgebraic Code Excited Linear Predictive),它构成了G.729标准的基础。CS-ACELP在标准PCM或线性PCM的话音采样基础上,每10ms生成一个10字节长的话音帧。对于每一个语音帧提取CELP模型参数,再对这些参数在编码后以每帧80bit进行信道传输,在解码端,接收到的比特流通过激励码本解码成相应的CELP参数,再通过短时综合滤波器和长时综合滤波器重建语音帧,最后经过后向滤波进行语音增强。

该算法提供了优秀音质,且延时很小。CS-ACELP也是为先进的定点运算数字信号处理器设计的,因为它要求强大的运算处理能力。CS-ACELP编码步骤的方框图如图1所示。

❽ 语音识别中的ASR技术通识 2019-12-06

ASR(Automatic speech recognition),自动语言识别,自动将语言转化成文字的过程,作用类似于人类的耳朵。
流程:输入-编码-解码-输出

语言识别输入的是声音,属于计算机无法识别的模拟信号,所以需要通过模型将其转化成数字信号,并对其中的特征进行提取,编码时,会将声音切成很小的片段,成为 ,类似于视频中最小时间单位的帧。帧和帧之间会有一定的重叠。
对于得到的每一帧,按照人耳听声的特定的MCFF规则,提取其中的特征,转成 多维向量 。向量中的每一个维度可以看做是这一帧中的特征。

解码过程是将得到的向量变成文字的过程,其中用到两个模型 声学模型 语言模型 。声学模型是将特征向量转化成单个字母(中文的拼音声母和韵母),成为音素。语言模型是将音素拼接起来成为单词或者汉字。两种模型都需要大量的语言数据进行训练。

传统识别方式:隐马尔可夫模型(HMM)
端到端识别方式:神经网络(DNN,deep neural network)
两种识别方式主要的差异在声学模型上。
目前中文的识别率在97%以上,距离理想的99%还有很大的差距。

“远场”。下面主要说3个概念:
语音激活检测、语音唤醒、以及麦克风阵列。
1)语音激活检测(voice active detection,VAD)
A)需求背景:在近场识别场旁态消景,比如使用语音输入法时,用户可以用手按着语音按键说话,结束之后松开,由于近场情况下信噪比(signal to noise ratio, SNR))比较高,信号清晰,简单算法也能做到有效可靠。
但远场识别场景下,用户不能用手接触设备,这时噪声比较大,SNR下降剧烈,必闭李须使用VAD了。
B)定义:判断什么时候有语音什么时候没有语音(静音)。
后续的语音信号处理或是语音识别都是在VAD截取出来的有效语音片段上进行的。
2)语音唤醒 (voice trigger,VT)
A)需求背景:在近场识别时,用户可以点击按钮后直接说话,但是远场识别时,需要在VAD检测到人声之后,进行语音唤醒,相当于叫这个AI(机器人)的名字,引起ta的注意,比如苹果的“Hey Siri”,Google的“OK Google”,亚马逊Echo的“Alexa”等。
B)定义:可以理解为喊名字,引起听者的注意。
VT判断是唤醒(激活)词,那后续的语音就应该进行识别了;否则,不进行识别。
C) 难点 :语音识别,不论远场还是进场,都是在云端进行,但是语音唤醒基本是在(设备)本地进行的,要求更高——
C.1)唤醒响应时间。据傅盛说,世界上所有的音箱,除了Echo和他们做的小雅智能音箱能达到1.5秒之外,其他的都在3秒以上。
C.2)功耗要低。iphone 4s出现Siri,但直到iphone 6s之后才允许不接电源的情况下直接喊“hey Siri”进行语音唤醒。这是因为有6s上有一颗专门进行语音激活的低功耗芯片,当然算法和硬件要进行配合,算法也要进行优化。
C.3)唤醒效果。喊它的时候它不答应这叫做漏报,没喊它的时候它跳出来讲话叫做误报。漏报和误报运知这2个指标,是此消彼长的,比如,如果唤醒词的字数很长,当然误报少,但是漏报会多;如果唤醒词的字数很短,漏报少了,但误报会多,特别如果大半夜的突然唱歌或讲故事,会特别吓人的……
C.4)唤醒词。技术上要求,一般最少3个音节。比如“OK google”和“Alexa”有四个音节,“hey Siri”有三个音节;国内的智能音箱,比如小雅,唤醒词是“小雅小雅”,而不能用“小雅”。
注:一般产品经理或行业交流时,直接说汉语“语音唤醒”,而英文缩写“VT”,技术人员可能用得多些。
3)麦克风阵列(Microphone Array)
A)需求背景:在会议室、户外、商场等各种复杂环境下,会有噪音、混响、人声干扰、回声等各种问题。特别是远场环境,要求拾音麦克风的灵敏度高,这样才能在较远的距离下获得有效的音频振幅,同时近场环境下又不能爆音(振幅超过最大量化精度)。另外,家庭环境中的墙壁反射形成的混响对语音质量也有不可忽视的影响。
B)定义:由一定数目的声学传感器(一般是麦克风)组成,用来对声场的空间特性进行采样并处理的系统。

c)云端为主。
比如地图功能,由于POI(Point of Interest,兴趣点,指地理位置数据)数据量太大,直接到云端搜索可能更方便(除非是“家”、“公司”等个性化场景)。比如,用户说“从武汉火车站到东福”,可以被纠正为“从武汉火车站到东湖”。

各家公司在宣传时,会说语音识别率达到了97%,甚至98%,但那一般是需要用户在安静环境下,近距离、慢慢的、认真清晰发音;而在一些实际场景,很可能还不够好的,比如——

1、比如在大家都认为相对容易做的翻译场景,其实也还没完全可用,台上演示是一回事,普通用户使用是另一回事;特别是在一些垂直行业,领域知识很容易出错;另外,还可详见 《怼一怼那些假机器同传》
2、车载
大概3、4年前,我们内部做过针对车载场景的语言助手demo,拿到真实场景内去验证,结果发现,车内语音识别效果非常不理想。而且直到今年,我曾经面试过一位做车内语音交互系统的产品经理,发现他们的验收方其实也没有特别严格的测试,因为大家都知道,那样怎么也通过不了。。。
车内语音识别的难点很多,除了多人说话的干扰,还有胎噪、风噪,以及经常处于离线情况。
据说有的公司专门在做车内降噪,还有些公司想通过智能硬件来解决,至少目前好像还没有哪个产品解决好了这个问题,并且获得了用户的口碑称赞的。
3、家庭场景,由于相对安静和可控,如果远场做好了,还是有希望的。
4、中英文混合。
特别在听歌场景,用户说想听某首英文歌时,很容易识别错误的。这方面,只有傅盛的小雅音箱据说做了很多优化,有待用户检验。
总之,ASR是目前AI领域,相对最接近商用成熟的技术,但还是需要用户可以配合AI在特定场景下使用。这是不是问题呢?是问题,但其实不影响我们做产品demo和初步的产品化工作,所以反而是我们AI产品经理的发挥机会。

1、远场语音识别,是最近2年的重要竞争领域。因为家庭(音箱)等场景有可能做好、在被催熟。
2、更好的机会在垂直细分领域,比如方言(方言识别能够支持40多种,而网络有20多种)、特定人群的声学匹配方案(儿童)
最后,用一张图总结语音识别用于人机交互中的几个难点。

❾ 语音的帧长、帧移与帧数

    接着前伏侍姿面的文章,关于语音分帧问题,在前期将语音静音删除后,需要将语音裁剪成长度相同的长度或者分帧,保证数据集的统一。长度不同的音频文件不容易建模分析,需要先分帧,切成长度相同的,另外切成一小段固定长度时,谈族段和段之间适当重叠部分。

    经过一上午的学习实践,参考librosa文档和知乎等资料,终于搞定懂了。

    语音信号是一个非稳态的、时变的信号。但在短时间范围内可以认为语音信号是稳态的、时不变的,这个短时间一般取 10-30ms。进行语音信号处理时,为减少语音信号整体的非稳态、时变的影响,从而对语音信号进行分段处理,其中每一段称为一帧,帧长一般取 25ms。为了使帧与帧之间平滑过渡,保持其连续性,分帧一般采用交叠分段的方法,保证相邻两帧相互重叠一部分,末尾不足部分用零填充。相邻两帧的起始位置的时间差称为帧移,我们一般在使用中帧移取值为 10ms。

    那么对于一个 22050Hz 采样的音频来说,帧长有 22050 * 0.025 = 551.25 个点,帧移有 22050 * 0.01 = 220.5 个点。根据上一篇文章- jupyter notebook完成wav文件探索 ,计算点数方法是采样率 * 时长,那么wav文件就有5.89569 * 22050 = 130000,和librosa.load返回的数据是一致的。num_samples、frame_len、frame_shift 分别代表音频的数据点数、帧长和帧移,那么i 帧的数据需要的点数:(i-1) * frame_shift + frame_len,n 个点的音频的帧数:ceil(n- / frame_shift) 。

    那么在librosa.load语音文件后,需要自己来分帧吗?NO,librosa已经帮你实现了!librosa.feature.mfcc函数提取MFCCs特征时,MFCC一般默认帧长为2048,帧移为512,即默认1/4关系。查看参考librosa文档:hop_length = win_length / 4,缺绝win_length = n_fft。n_fft=2048, hop_length=512。

        那么笔者再次在jupyter notebook中添加计算,发现和mfcc函数提取的帧数是一致的。那么在提取特征时就不需要自动来保证帧移的分帧。jupyter 真是太好用了,可以查看、修改历史过程,不用从头开始导入数据、分析数据了。

阅读全文

与语音前处理AAA算法相关的资料

热点内容
android智能家居蓝牙 浏览:646
pt螺纹编程 浏览:451
手机电音app哪个好 浏览:749
checksum命令 浏览:637
java创建xml文件 浏览:170
算命源码国际版 浏览:283
三菱模块化编程 浏览:718
控件读取文件源码 浏览:445
文件夹侧面目录标签怎么制作 浏览:232
做程序员学什么 浏览:320
pdfeditor教程 浏览:880
fortran把文件放入文件夹 浏览:709
程序员1年经验不敢投简历 浏览:481
如何看电脑的源码 浏览:897
找工作app软件哪个好 浏览:96
信息管理网站源码 浏览:439
小说app哪个好免费 浏览:224
域名在线加密 浏览:146
软件编程西安交大 浏览:453
是不是串货的奶粉查不到溯源码的 浏览:825