一种有效语音获取方法与流程

文档序号:16929166发布日期:2019-02-22 20:07阅读:738来源:国知局
一种有效语音获取方法与流程

本发明涉及语音信号处理领域,具体涉及一种有效语音的获取方法。



背景技术:

近十几年来,在细化模型的设计、参数提取及优化,以及系统的自适应技术上取得了一些关键进展。语音识别技术越来越成熟,准确率逐步得到提高,并且市场上有相应的语音产品。

在智能录播系统中,不断的提高人机交互体验性更加便于老师不需要管理录播系统,语音命令词识别进而控制录播系统的常用功能,老师可以忘记录播系统的存在,更加专心与教学。老师上课时只需要说声“开始录制”,录播系统就开始录制视频。下课结束时说声“停止录制”即可完成一节课堂的录制。

目前市场上有对应的命令词识别模块,但是大部分的应用都得联网才能实现命令词的识别,这妨碍了命令词识别功能在嵌入式录播系统的应用,小型高效的命令词识别在嵌入式系统里很有前景的。

小型高效的命令词识别系统首先需要对老师说的一段语音进行检测处理,从中提取出有效语音,从而对有效语音进行识别。



技术实现要素:

鉴于以上技术问题,本发明的目的在于提供一种有效语音的获取方法,其能实现从待识别语音中准确获取有效语音。

本发明采用以下技术方案:

一种有效语音获取方法,包括以下步骤:

获取待识别语音的开始点和结束点;

获取待识别语音的有效语音;所述待识别语音的有效语音为以所述开始点开始,并以所述结束点结束的完整语音;

获取待识别语音的开始点和结束点包括以下步骤:

根据预设的采样频率和采样大小对待识别语音依次进行采样,得到若干采样音频数据,所述采样音频数据对应待识别语音的若干采样点;将所有采样音频数据依次通过fft傅里叶变换得到若干采样频谱;

获取所有采样频谱频率位于100~1000hz的能量值;并将所述能量值依次与预设能量值n1进行对比;

获取所有采样频谱频率位于300~1000hz频段内的能量方差;并将所述能量方差依次与预设能量值n2进行对比;

当采样频谱频率中频率位于300~1000hz频段获取的能量值大于预设能量值n1,且获取的能量方差大于预设能量值n2时,则判断该采样频谱对应的采样点位于有效语音的范围;

当采样频谱频率中频率位于300~1000hz频段获取的能量值未大于预设能量值n1或获取的能量方差未大于预设能量值n2时,则判断该采样频谱对应的采样点位于噪音的范围;

将位于完整语音的范围的所有采样点按时序排列,得到按时序排列的完整语音的采样点序列,以有效语音的采样点序列中的第一采样点为有效语音的开始点;

将位于噪音的范围的采样点、且采样点采样时间位于有效语音的开始点之后的所有采样点按时序排列,得到按时序排列的噪音的采样点序列,以噪音的采样点序列中第一采样点为有效语音的结束点。

进一步的,预设的采样大小为2048个音频数据。

进一步的,所述预设能量值n1为38000-60000j。

进一步的,所述预设能量值n2为30-70j。

相比现有技术,本发明的有益效果在于:

本发明通过获取待识别语音的开始点和结束点,以所述开始点开始,并以所述结束点结束的完整语音为有效语音,实现了对待识别的语音进行检测处理,从中提取出有效语音,从而对有效语音进行识别。进一步的,通过将频段的能量方差与预设能量值n2进行对比,提高了对待识别语音开始点和结束点判断的准确率。

附图说明

图1为本发明有效语音获取方法的流程示意图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例:

实施例:

请参考图1,有效语音获取方法,包括以下步骤:

步骤s100:获取待识别语音的开始点和结束点;

步骤s200:获取待识别语音的有效语音;所述待识别语音的有效语音为以所述开始点开始,并以所述结束点结束的完整语音;

获取待识别语音的开始点和结束点包括以下步骤:

步骤s1001:根据预设的采样频率和采样大小对待识别语音依次进行采样,得到若干采样音频数据,所述采样音频数据对应待识别语音的若干采样点;并将所有采样音频数据依次通过fft傅里叶变换得到若干采样频谱。具体的:待识别语音取有限长离散信号x(n),n=0、1、…、n-1,在本发明中优选的采样大小n优选的取2048。将有限长离散信号x(n)分为偶数和奇数的两个序列之和,得到:x(n)=x1(n)+x2(n);x1(n)和x2(n)的长度都是n/2,x1(n)是偶数序列,x2(n)是奇数序列。由fft傅里叶变换的计算公式:

得到n个复数x(k)频域,将上述得到的复数x(k)取模得到n个幅值complx(n)(n=0,1,...n);

步骤s1002:获取所有采样频谱频率位于100~1000hz的能量值;并将所述能量值依次与预设能量值n1进行对比;所述能量值计算方法为:根据fft傅里叶变换得到得频域是在(n/2)左右对称的特性,即只需要计算(n/2)个频率即可根据下列公式fs=i*(fs/n),(其中fs为需要计算的帧率,i=01,...(n/2),n为采样个数,fs为这段音频的采样频率,得到该段频谱的(n/2)个频率,与幅值complx(n)一对一对应,即可得到每个频率对应的幅值(能量);

步骤s1003:获取所有采样频谱频率位于300~1000hz频段内的能量方差;并将所述能量方差依次与预设能量值n2进行对比;具体的,能量方差公式(其中,s为方差值,m为超过预设能量值n1的个数,complx(i)为超过预设能量值n1对应的幅值,averagecomplx为超过预设能量值n1的所有幅值的平均数);

步骤s1004:当采样频谱频率中频率位于300~1000hz频段获取的能量值大于预设能量值n1,且获取的能量方差大于预设能量值n2时,则判断该采样频谱对应的采样点位于有效语音的范围;

步骤s1005:将位于完整语音的范围的所有采样点按时序排列,得到按时序排列的完整语音的采样点序列,以有效语音的采样点序列中的第一采样点为有效语音的开始点;

步骤s1006:当采样频谱频率中频率位于300~1000hz频段获取的能量值未大于预设能量值n1或获取的能量方差未大于预设能量值n2时,则判断该采样频谱对应的采样点位于噪音的范围;

步骤s1007:将位于噪音的范围的采样点、且采样点采样时间位于有效语音的开始点之后的所有采样点按时序排列,得到按时序排列的噪音的采样点序列,以噪音的采样点序列中第一采样点为有效语音的结束点。所述按时序排列是指按照采样点在待识别语音中的出现的时间先后顺序。采样点采样时间先后顺序也是以采样点在待识别语音中的出现的时间先后顺序依次进行采样。

数字化的声音数据就是音频数据。在数字化声音时有两个重要的指标,即采样频率和采样大小。采样频率即单位时间内的采样次数,采样频率越大,采样点之间的间隔越小,数字化得到的声音就越逼真,但相应的数据量增大,处理起来就越困难;采样大小即记录每次样本值大小的数值的位数,它决定采样的动态变化范围,位数越多,所能记录声音的变化程度就越细腻,所得的数据量也越大。优选的,预设的采样大小为2048个音频数据。如果采样大小太小,这样得到的这段音频会不准确,频率分辨率过低,需要通过fft傅里叶变换补零,补零的情况会耗费cpu资源及耗时,采样过多也会耗时,因此,采用了采样大小2048个音频数据,既保证了分辨率的精度,也不会过多耗费cpu资源。

将一段语音从时域转为频域,这段语音这时就有可量化的参数,(人声的频率范围)判断是否有这段语音是否有人声的频率同时对应的频率能量值是多少。本发明的发明点进一步通过将频段的能量方差与预设能量值n2进行对比,提高了对待识别语音开始点和结束点判断的准确率,大部分在100-1000hz的噪音各个频段的能量值相差不大,因此这些噪音方差值比较小。

调节n1和n2值,值越小,越灵敏,很容易触发程序判断为这段语音就是人声不是噪音,但是误触发的概率会越大。根据项目多方面的测试,当预设能量值n1设置为38000-60000j,预设能量值n2设置为30-70j时,大大提高了开始点和结束点检测的准确率。

对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1