基于LPCC和ADTW的声纹识别系统的制作方法

文档序号:14941772发布日期:2018-07-13 21:04阅读:865来源:国知局

本方案涉及声纹识别领域,尤其是对动物声音进行自动识别。



背景技术:

目前,对声音的识别主要集中在人类的语言识别和声纹识别。而在一般动物的声音识别领域,一般是借鉴了人类声音识别的技术。但是一般动物的发声也有其自身的特点,需要量身定制处理系统。而且,近来动物声音识别应用也越来越多,尤其是在野生动物监控和研究领域、禽畜大规模饲养领域,声音识别是继视频监控之后的一种重要手段和有益补充。特别是,在这些领域,由于成本、功耗、计算、存储的限制,不能像在个人电脑或大型计算机上一样采取复杂的算法。



技术实现要素:

本方案所述的基于lpcc和adtw的声纹识别系统,包括预处理、lpcc参数计算、参数抽取、adtw求距离、模板匹配与识别共五个模块,所述预处理模块的输出连接到lpcc参数计算模块的输入、lpcc参数计算模块的输出连接到参数抽取模块的输入、参数抽取模块的输出连接到adtw求距离模块的输入、adtw求距离模块的输出连接到模板匹配与识别的输入,其中:

(1)所述预处理模块包括端点检测、预加重、分帧、加窗四个子模块,其中端点检测子模块的输出连接到预加重子模块的输入、预加重子模块的输出连接到分帧子模块的输入、分帧子模块的输出连接到加窗子模块的输入,所述端点检测子模块用以短时平均能量和短时平均过零率两个参数为基础的双门限法端点检测算法来确定声音信号的首尾,所述预加重子模块对声音信号的高频部分进行预加重,所述分帧子模块将声音信号分成不同的帧,所述加窗子模块对每一帧信号进行加窗;

(2)所述lpcc参数计算模块是对每帧数据求取lpc系数,并根据lpc系数直接递推得到lpcc倒谱系数;

(3)所述参数抽取模块是对每帧的lpcc系数进行抽取,每隔n-1个系数取一个,n为大于1的正整数;

(4)所述adtw求距离模块是用adtw法求dtw距离;

(5)所述模板匹配与识别模块是利用所述adtw求距离模块,计算声音信号与模板库中每个参考模板之间的累计距离,如果累计距离的最小值小于设定值则识别出相应模板对应的对象。

所述分帧子模块对声音信号进行分帧时,除首帧之外,其它帧的数据总是从其前一帧的最后一个数据的后面开始,即每相邻两帧的数据是从预加重后的数据中连续、无间隔、无重复地取得的。

所述参数抽取模块在对第k帧数据进行抽取时,从该帧的第k%n个元素开始取,其中k为正整数,k%n为k除以n所得的余数。

本方案主要针对动物声音的特点而提出。主要特点和有益效果是:

(1)预处理中端点处理部分放到了预加重、分帧等的前面,这种次序安排更适应动物发声的场景,即单音长、间隔长;

(2)预处理中,因为动物一般发音长且具备较长时间的平稳性,所以对声音进行分帧的时候,相邻两帧之间并没有像一般语音处理系统那样具有重叠部分(俗称“帧移”,一般占帧长的30%以上),这样也提高了处理效率,这一特点在权利要求2中有所体现;

(3)因为是用机器识别动物声音,所以没有采用与听觉相关的技术如mfcc,而采用lpcc;这样运算量大幅降低;

(4)根据统计,动物发出某个单音一般远比人类语言的一个单音要占据更长时间,所以先对lpcc参数进行了抽取,再进行adtw匹配,从而大大减少运算量,但又不显著降低匹配成功率;如果像通常方法,把所有求得的lpcc参数用来做adtw匹配,则参数较多,运算量大;

(5)动物发音一般比较单一,近似单音节,故用adtw进行匹配,而不用hmm和gmm等复杂模式;这也降低了软件复杂度和运算量。

附图说明:

图1为总流程图;

图2为预处理流程图;

图3为端点检测和分帧示意图;

图4为计算lpcc系数的流程图;

图5为参数抽取示意图;

图6为用adtw法求dtw距离的流程图;

图7为模板匹配与识别流程图。

具体实施方式:

下面结合附图和具体实施方式对本发明进行详细说明。如图1所示,为本发明一种基于lpcc和adtw的声纹识别办法框图。该基于lpcc和adtw的声纹识别办法的具体步骤分别描述在如下1~5条。

1、对采集到的动物声音信号做预处理,如图2。

(1)端点检测

端点检测放在了预加重、分帧等的前面,这种次序安排更适应动物发声的场景,即单音长、间隔长。用以短时平均能量和短时平均过零率两个参数为基础的双门限法端点检测算法来确定声音信号的首尾,分离出真正的语音信号作为系统处理的对象。

(2)预加重

经过采样和量化后的声音信号的平均功率谱受到声门激励和辐射系统的作用,因此高频端大约在800hz以上按6db/倍频程跌落,所以要进行预加重,其目的就是提升高频部分,滤除低频干扰,使信号的频谱变的平坦,便于进行频谱分析和声道参数的分析。

对端点检测出的时间段内的声音信号做预加重,通常为一阶预加重滤波器,其形式为:

其中,h(z)为系统函数,a为预加重系数,根据实际情况可改变a的值,例如取0.9375。

(3)分帧

将声音信号进行分帧处理,将声音信号分成一段一段,其中的一段称为“一帧”,经过研究发现声音信号通常在10-30ms之内是保持相对平稳的,因此在处理时我们通常取10ms-30ms为帧长。

因为动物一般发音长且具备较长时间的平稳性,所以对声音进行分帧的时候,相邻两帧之间并没有像一般语音处理系统那样具有重叠部分(俗称“帧移”,一般占帧长的30%以上),这样也提高了处理效率,所以不用帧移。如图3。

(4)加窗

为了减少帧起始和结束处的信号不连续性,在得到短时的声音信号后,要对声音信号进行加窗的操作,为了使每帧在频谱上的能量更集中,最好能在分帧同时进行加窗处理。汉明窗则能有效地克服泄露现象,所以,在声音辨认系统中加窗的方法大致以汉明窗口为最常见。

汉明窗(hammingwindow)

2.特征参数计算

动物声音特征参数提取就是从动物声音信号中提取出反应动物特征的参数,因为是用机器识别动物声音,所以没有采用与听觉相关的技术如mfcc,而采用lpcc,这样运算量大幅降低。本系统采用12阶lpc分析,16阶倒谱分析(即q值为16),采用levinson算法求解lpc系数,以及由lpc系数直接递推得到倒谱系数。

(1)levinson算法求解lpc系数

(2)由系数直接递推得到倒谱系数(lpccep)的方法

由上面求得的lpc系数递推lpcc系数

第1.步和第2.步的处理过程可参照图4。

3.参数抽取

动物发出某个单音一般远比人类语言的一个单音要占据更长时间,所以截取声音信号的lpcc系数的部分参数,在不显著降低匹配成功率的前提下,又减少了运算量。将经过抽取过后的lpcc系数存入测试模板中。

参数抽取的过程是,对于每帧的lpcc系数,每隔n-1个点抽取一次参数。例如当n=5时,参数抽取效果如图5所示。其中,在对第k帧数据进行抽取时,从该帧的第k%n个元素开始取,其中k为正整数,k%n为k除以n所得的余数。

此后有两种可能的处理分支:一种是建立参考模板库,即对已知的动物声音信号,做上述的预处理,求lpcc系数以及系数的参数抽取,并将抽取的参数存入参考模板库。另一种是将抽取后的数据存入测试模板进行匹配与识别。其中第二种是本方案要描述的重点。

4.用adtw法求dtw距离(参照图6)

更新累积距离的计算用下式实现的:

d(x,y)=d(x,y)+min[d(x-1,y),d(x-1,y-1),d(x-1,y-2)]

对于帧长度满足条件的测试模板和参考模板,利用adtw算法将二者组成类似平行四边形,在平行四边形内从(1,1)开始进行路径搜索计算帧匹配距离,并利用式d(x,y)=d(x,y)+min[d(x-1,y),d(x-1,y-1),d(x-1,y-2)],更新累计距离,直到最后的d(n,m)。主要步骤如下:

(1)读取测试模板和参考模板的lpcc数据,求得俩模板各自的帧数n,m;

(3)判断n,m是否满足长度的限制条件(2m-n≥3,2n-m≥2),根据n,m求出xa和xb,计算公式xa=(2m-n)/3,xb=2(2n-m)/3;

(4)判断xa和xb的大小确定匹配区域,根据平行四边形限制将动态规整范围划分成3段,对于平行四边形之外的格点,不需要再计算它们的帧匹配距离;

(5)根据更新累积距离公式,在步骤(4)中的三段范围中每向前搜索一帧都更新累积距离。根据当前列的所有帧匹配距离矢量以及前一列的累积距离d可以得到当前帧的累积距离,这样一直搜索到x轴上最后一列,矢量d的最后一个元素d(m)就是测试模板和参考模板通过动态时间规整的匹配距离;

(6)从终点开始向前回溯到起点(1,1),便可得出最佳路径。返回累积矩阵的值就是dtw距离。

5.模板匹配与识别(参照图7)

用adtw算法计算采集到的动物声音信号与模板库中每个参考模板之间的累计距离,累计距离的最小值如果小于设定r值(r是为检测最小dtw距离的值是否合理,具体值可根据实际情况设定),返回最小值对应的参考模板,即对应的对象或物种;如果大于设定r值,上报发现“新”对象或物种(其意义是参考模板库中没有的对象或物种)。

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