前端语音信号处理

前端语音信号处理1、语音活动检测语音活动检测(VoiceActivityDetection,VAD)用于检测出语音信号的起始位置,分离出语音段和非语音(静音或噪声)段。VAD算法大致分为三类:基于阈值的VAD、基于分类器的VAD和基于模型的VAD。基于阈值的VAD是通过提取时域(短时能量、短时过零率等)或频域(MFCC、谱熵等)特征,通过合理的设置门限,达到区分语音和非语音的目的;基于分类…

大家好,又见面了,我是你们的朋友全栈君。

1、语音活动检测

 

语音活动检测(Voice Activity Detection, VAD)用于检测出语音信号的起始位置,分离出语音段和非语音(静音或噪声)段。VAD算法大致分为三类:基于阈值的VAD、基于分类器的VAD和基于模型的VAD。

基于阈值的VAD是通过提取时域(短时能量、短时过零率等)或频域(MFCC、谱熵等)特征,通过合理的设置门限,达到区分语音和非语音的目的;

基于分类的VAD是将语音活动检测作为(语音和非语音)二分类,可以通过机器学习的方法训练分类器,达到语音活动检测的目的;

基于模型的VAD是构建一套完整的语音识别模型用于区分语音段和非语音段,考虑到实时性的要求,并未得到实际的应用。

2、降噪

在生活环境中通常会存在例如空调、风扇等各种噪声,降噪算法目的在于降低环境中存在的噪声,提高信噪比,进一步提升识别效果。

常用降噪算法包括自适应LMS和维纳滤波等。

3、回声消除

回声存在于双工模式时,麦克风收集到扬声器的信号,比如在设备播放音乐时,需要用语音控制该设备的场景。

回声消除通常使用自适应滤波器实现的,即设计一个参数可调的滤波器,通过自适应算法(LMS、NLMS等)调整滤波器参数,模拟回声产生的信道环境,进而估计回声信号进行消除。

4、混响消除

语音信号在室内经过多次反射之后,被麦克风采集,得到的混响信号容易产生掩蔽效应,会导致识别率急剧恶化,需要在前端处理。

混响消除方法主要包括:基于逆滤波方法、基于波束形成方法和基于深度学习方法等。

5、声源定位

麦克风阵列已经广泛应用于语音识别领域,声源定位是阵列信号处理的主要任务之一,使用麦克风阵列确定说话人位置,为识别阶段的波束形成处理做准备。

声源定位常用算法包括:基于高分辨率谱估计算法(如MUSIC算法),基于声达时间差(TDOA)算法,基于波束形成的最小方差无失真响应(MVDR)算法等。

6、波束形成

波束形成是指将一定几何结构排列的麦克风阵列的各个麦克风输出信号,经过处理(如加权、时延、求和等)形成空间指向性的方法,可用于声源定位和混响消除等。

波束形成主要分为:固定波束形成、自适应波束形成和后置滤波波束形成等。

2.语音识别的基本原理

已知一段语音信号,处理成声学特征向量之后表示为,其中表示一帧数据的特征向量,将可能的文本序列表示为,其中表示一个词。语音识别的基本出发点就是求,即求出使最大化的文本序列。将通过贝叶斯公式表示为:

前端语音信号处理

其中,称之为声学模型,称之为语言模型。大多数的研究将声学模型和语言模型分开处理,并且,不同厂家的语音识别系统主要体现在声学模型的差异性上面。此外,基于大数据和深度学习的端到端(End-to-End)方法也在不断发展,它直接计算 ,即将声学模型和语言模型作为整体处理。本文主要对前者进行介绍。

3.声学模型

声学模型是将语音信号的观测特征与句子的语音建模单元联系起来,即计算。我们通常使用隐马尔科夫模型(Hidden Markov Model,HMM)解决语音与文本的不定长关系,比如下图的隐马尔科夫模型中。

前端语音信号处理

将声学模型表示为

前端语音信号处理

其中,初始状态概率和状态转移概率( 、 )可用通过常规统计的方法计算得出,发射概率( 、 、 )可以通过混合高斯模型GMM或深度神经网络DNN求解。

传统的语音识别系统普遍采用基于GMM-HMM的声学模型,示意图如下:

前端语音信号处理

其中,表示状态转移概率,语音特征表示,通过混合高斯模型GMM建立特征与状态之间的联系,从而得到发射概率,并且,不同的状态对应的混合高斯模型参数不同。

基于GMM-HMM的语音识别只能学习到语音的浅层特征,不能获取到数据特征间的高阶相关性,DNN-HMM利用DNN较强的学习能力,能够提升识别性能,其声学模型示意图如下:

前端语音信号处理

GMM-HMM和DNN-HMM的区别在于用DNN替换GMM来求解发射概率,GMM-HMM模型优势在于计算量较小且效果不俗。DNN-HMM模型提升了识别率,但对于硬件的计算能力要求较高。因此,模型的选择可以结合实际的应用调整。

4.语言模型

语言模型与文本处理相关,比如我们使用的智能输入法,当我们输入“nihao”,输入法候选词会出现“你好”而不是“尼毫”,候选词的排列参照语言模型得分的高低顺序。

语音识别中的语言模型也用于处理文字序列,它是结合声学模型的输出,给出概率最大的文字序列作为语音识别结果。由于语言模型是表示某一文字序列发生的概率,一般采用链式法则表示,如是由组成,则可由条件概率相关公式表示为:

前端语音信号处理

由于条件太长,使得概率的估计变得困难,常见的做法是认为每个词的概率分布只依赖于前几个出现的词语,这样的语言模型成为n-gram模型。在n-gram模型中,每个词的概率分布只依赖于前面n-1个词。例如在trigram(n取值为3)模型,可将上式化简:

 

前端语音信号处理

集道信息专业从事Polycom 宝利通视频会议/华为视频会议系统/东微智能产品,主要向客户提供远程视频会议系统、音视频系统、统一协作办公系统、服务器网络系统、数据中心机房系统、云计算数字办公系统、企业基础应用系统、展览展示舞台机械系统等行业解决方案。

 

 

转载自https://zhuanlan.zhihu.com/p/67419953,后续做补充完善

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141484.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Tomcat调优和JVM优化[通俗易懂]

    Tomcat调优和JVM优化[通俗易懂]Tomcat本身优化工作方式选择为了提升性能,首先就要对代码进行动静分离,让Tomcat只负责jsp文件的解析工作。如采用Apache和Tomcat的整合方式,他们之间的连接方案有三种选择,JK、http_proxy和ajp_proxy。相对于JK的连接方式,后两种在配置上比较简单的,灵活性方面也一点都不逊色。但就稳定性而言不像JK这样久经考验,所以建议…

    2022年6月7日
    33
  • RedisClient下载地址[通俗易懂]

    RedisClient下载地址[通俗易懂]下载地址:https://github.com/caoxinyu/RedisClient/tree/windows/release

    2022年10月12日
    2
  • [bzoj4195][Noi2015]程序自动分析

    [bzoj4195][Noi2015]程序自动分析

    2021年6月29日
    75
  • django url标签_未指定url怎么解决

    django url标签_未指定url怎么解决前言当我们访问网页的时候,后台返回列表中有n条数据,此时我们会使用分页,比如一页只展示10条,但是我们访问第一页的时候大多数情况下,都会给url一个默认值,访问的时候直接展示第一页数据案例我们的

    2022年7月29日
    6
  • 108是几位数_调查丰富度时为什么要调查种群数量

    108是几位数_调查丰富度时为什么要调查种群数量求给定区间 [X,Y] 中满足下列条件的整数个数:这个数恰好等于 K 个互不相等的 B 的整数次幂之和。例如,设 X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意:17=24+2018=24+2120=24+22输入格式第一行包含两个整数 X 和 Y,接下来两行包含整数 K 和 B。输出格式只包含一个整数,表示满足条件的数的个数。数据范围1≤X≤Y≤231−1,1≤K≤20,2≤B≤10输入样例:15 2022输出样例:3#include<bit

    2022年8月10日
    5
  • idea如何查找替换_wps表格怎么查找替换文字

    idea如何查找替换_wps表格怎么查找替换文字在平时敲代码的时候经常碰到,咦,这个变量名好像不太合适,但又写了好多这时候可以怎么办呢?Pycharm里面给我们准备了替换功能————–windows电脑—————1.Ctrl+r替换2.Ctrl+Shift+F全局查3.Ctrl+Shift+R全局替换————–MAC电脑—————1.command+F全局查找2.command+R全局替换…

    2022年8月25日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号