CN102820031B - 一种利用切割—分层构筑法的语音识别方法 - Google Patents
一种利用切割—分层构筑法的语音识别方法 Download PDFInfo
- Publication number
- CN102820031B CN102820031B CN201210284560.5A CN201210284560A CN102820031B CN 102820031 B CN102820031 B CN 102820031B CN 201210284560 A CN201210284560 A CN 201210284560A CN 102820031 B CN102820031 B CN 102820031B
- Authority
- CN
- China
- Prior art keywords
- voice
- frame
- state
- normalization
- zcr
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明提供了一种利用切割—分层构筑法的语音识别方法,采集语音信号后对语音信号进行分帧,然后提取语音特征参数,计算每帧语音的归一化复杂度能量和归一化过零率,然后对语音进行切割,切割后每段语音只有单字或双字,最后对切割好的各段语音分别进行识别。本发明降低了识别效果对切割精度的依赖性,当两个字的发音连续难以切割时就采用两层分层构筑法对其进行识别,而两层分层构筑法的计算量可以接受,能够实时完成,这样就同时保证了识别效果和识别耗时。
Description
技术领域
本发明涉及语音识别领域,尤其是连续语音识别技术。
背景技术
在连续语音识别技术中,通常采用两种方法,即通盘采用分层构筑法,或是先将语音信号进行切割成孤立字,再进行匹配得到结果。但是这两种方法各有利弊,若通盘采用分层构筑法,虽然识别率较高,但是计算量过大,难以实时完成,若采用切割方法,虽然计算量较小,但是识别效果严重依赖于切割精度,而在连续汉语语音中,有时难以准确地判断出字与字之间的界限,这样就会对识别效果造成影响。
发明内容
为了克服现有技术的不足,本发明提供一种利用切割—分层构筑法的语音识别方法,将分层构筑法和切割法结合,降低识别效果对切割精度的依赖程度,同时保证识别能够实时完成。
本发明解决其技术问题所采用的技术方案包括以下步骤:
步骤一:采集语音信号,采样频率f为8000Hz到12000Hz;
步骤二:依据采样频率f确定帧长len和帧移inc,对语音信号进行分帧,将语音信号分成每20~30毫秒一段,相邻两帧起始点之间的间隔为10毫秒,即两帧之间有10~20毫秒的交叠;
步骤三:提取语音特征参数,以MFCC参数为基础构建特征参数;
步骤四:计算每帧语音的归一化C0复杂度能量C0E0和归一化过零率ZCR0,计算方法如下:
1)归一化C0复杂度能量C0E0:
(2)对每帧序列s(n)进行离散FFT变化转换到频域,得到幅度谱S(n);
(4)大于S0的频率部分属于规则部分,小于或等于S0的部分属于随机部分,在此只取规则部分成分,公式如下:
(5)对规则部分成分的幅度谱S′(k)转化到频域并作IFFT变换,所得的s1(n)即为规则部分时间序列;
(7)令C*(n)=1-C(n),C0(n)=C*(n)/max(C*);
(8)令C0E(n)=C0(n)*e0(n),即可得到归一化的C0复杂度能量C0E0(n)=C0E(n)/max(C0E);
2)归一化过零率ZCR0:
设定一个门限Δ1,当前后两个采样的符号不同,而且差值大于Δ1的时候,就将过零率的数值加1,这样即可得到过零率ZCR,再得到归一化过零率ZCR0(n)=ZCR(n)/max(ZCR);
步骤五:用下述方法对语音进行切割,切割后每段语音只有单字或双字;
(1)定义语音信号的四个状态,每帧语音只能处于其中之一,如表1说明;
表1语音信号状态说明
状态号(Status) | 状态说明 |
0 | 语音前静音 |
1 | 语音段 |
2 | 语音中静音 |
3 | 语音后静音 |
(2)确定状态转移条件,如表2说明:
表2状态转移条件
表2中,silence为静音段已经持续的帧数,而Zcr1、Zcr2、Zcr3、C0E1、C0E2、minlen、maxsilence为由实验得到的门限值,con为当前语音段已经持续的帧数,silence为当前静音状态已经持续的帧数,Zcr0(n)为第n帧的归一化过零率,C0E0(n)为第n帧的归一化C0复杂度能量;
(3)开始切割:令状态号status的初始值为0,然后依据状态转移条件依次对每帧信号进行判断,若发生了状态0到状态1和状态2到状态1,则标记当前帧数为某一语音的起始点,若发生了状态1到状态2,则标记当前帧数为某一语音的结束点,当状态转移到3时,则标记当前帧数减去silence值为最后一个数字语音的结束点,并结束切割算法;
步骤六:对切割好的各段语音分别进行识别,若某段语音长度大于经验门限maxlen,则定义为双字部分,用两层分层构筑法对其进行识别,否则定义为单字部分,用孤立字的识别方法进行识别,在隐马尔科夫模型HMM下,用Viterbi算法进行识别。
本发明的有益效果是:降低了识别效果对切割精度的依赖性,当两个字的发音连续难以切割时就采用两层分层构筑法对其进行识别,而两层分层构筑法的计算量可以接受,能够实时完成,这样就同时保证了识别效果和识别耗时。
下面结合附图和实施例对本发明进一步说明。
附图说明
图1是连续语音信号“5678”的第一次切割示意图;
图2是连续语音信号“5678”的第二次切割结果示意图;
图3是本发明方法流程图。
具体实施方式
本发明包括以下步骤:
步骤一:采集语音信号,采样频率f在8000Hz到12000Hz范围中选择;
步骤二:依据采样频率f,确定帧长len和帧移inc,对语音信号进行分帧,将语音信号分成每20~30毫秒一段,相邻两帧起始点之间的间隔为10毫秒,即两帧之间有10~20毫秒的交叠;
步骤三:提取语音特征参数,以MFCC参数为基础构建特征参数;
步骤四:计算每帧语音的归一化C0复杂度能量(C0E0)和归一化过零率(ZCR0),计算方法如下:
1.归一化C0复杂度能量(C0E0):
(1)计算每帧语音的归一化短时能量(e0(i)),公式如下:
e0(i)=e(i)/max(e)
其中xi(n)表示第i帧第n个语音数据。
(2)对每帧序列s(n)进行离散FFT变化转换到频域,得到幅度谱S(n)。
(3)计算该帧幅度谱的平均值S0,公式为:
其中N为帧长。
(4)大于S0的频率部分属于规则部分,小于或等于S0的部分属于随机部分,在此只取规则部分成分,公式如下:
(5)对规则部分成分的幅度谱S′(k)转化到频域并作逆傅立叶(IFFT)变换,所得的s1(n)即为规则部分时间序列。
(6)利用公式:
求出总运动测度A0和随机运动测度A1,代入如下公式:
即可求得每帧的C0复杂度(C(n))。
(7)令:
C*(n)=1-C(n)
C0(n)=C*(n)/max(C*)
(8)令:
C0E(n)=C0(n)*e0(n)
C0E0(n)=C0E(n)/max(C0E)
即可得到归一化的C0复杂度能量(C0E0)。
2.归一化过零率(ZCR0):
过零率即为一帧信号中波形穿越零电平的次数。实际应用中,为避免静音段的随机噪音产生过高的过零率,通常都先设定一个由经验确定的门限Δ1,当前后两个采样的符号不同,而且差值大于Δ1的时候,就将过零率的数值加1,这样即可得到过零率ZCR,再令:
ZCR0(n)=ZCR(n)/max(ZCR)
得到归一化过零率ZCR0。
步骤五:用下述方法对语音进行切割,切割后每段语音只有单字或双字。
(2)定义语音信号的四个状态,每帧语音只能处于其中之一,如表1说明;
表1语音信号状态说明
状态号(Status) | 状态说明 |
0 | 语音前静音 |
1 | 语音段 |
2 | 语音中静音 |
3 | 语音后静音 |
(2)确定状态转移条件,如表2说明:
表2状态转移条件
表2中,silence为静音段已经持续的帧数,而Zcr1、Zcr2、Zcr3、C0E1、C0E2、minlen、maxsilence为由实验得到的门限值,con为当前语音段已经持续的帧数,silence为当前静音状态已经持续的帧数,Zcr0(n)为第n帧的归一化过零率,C0E0(n)为第n帧的归一化C0复杂度能量,这两组数据已经在步骤三中求得。
(3)开始切割:令状态号(status)的初始值为0,然后依据状态转移条件依次对每帧信号进行判断,若发生了从静音状态到语音状态的转移(包括状态0到状态1和状态2到状态1),则标记当前帧数为某一语音的起始点,若发生了从语音状态到静音状态的转移(状态1到状态2)则标记当前帧数为某一语音的结束点,当状态转移到3时,则标记当前帧数减去silence值为最后一个数字语音的结束点,并结束切割算法。这样就得到相同个数的起始点和结束点,且对应起始点和结束点之间即为切割后得到的各个语音段。经过上述切割,可以得到只有单字或双字的语音段。
步骤六:对切割好的各段语音分别进行识别,若某段语音长度大于经验门限maxlen,则定义为双字部分,用两层分层构筑法对其进行识别,否则定义为单字部分,用孤立字的识别方法进行识别,在隐马尔科夫模型(HMM)下,用Viterbi算法进行识别。
两层分层构筑法是在已知一段语音只包含两个字时的识别方法,其核心思想是对该段语音进行遍历,寻找最佳切割点,使得前后两段语音各自与模板的匹配分数之和最佳。下面给出在隐马尔科夫模型下的两层分层构筑法:
(1)初始化:
(2)对e从2到length(m)-1循环:
(3)确定识别结果:
则待识别的两个字的序号为N1(n0)和N2(n0)。
其中,P(v,m,b,e)表示语音参数m的第b帧与第e帧之间的部分与语音模板v匹配的概率,在计算时取对数。
在进行两层分层构筑法时,为了减小识别效果对切割精度或说话方式依赖程度,需对切割后两段语音的长度进行限制,即切割后前后两段语音的帧数必须都大于α×L(α为一经验系数,L为需用两层分层构筑法进行识别的语音段的帧数),才将这两段语音各自的匹配结果一起输出,否则只将长度较长的一段语音的匹配结果输出。
实施案例
实施条件:算法所需的参数如表3所示
表3参数说明
参数符号 | 参数说明 | 参数值 |
f | 采样频率 | 8000 |
len | 帧长 | 256 |
inc | 帧移 | 80 |
Δ1 | 门限 | 0.02 |
α | 门限 | 0.2 |
Zcr1 | 门限 | 0.05 |
Zcr2 | 门限 | 0.15 |
Zcr3 | 门限 | 0.5 |
C0E1 | 门限 | 0.05 |
C0E2 | 门限 | 0.15 |
minlen | 门限 | 15 |
maxsilence | 门限 | 15 |
maxlen | 门限 | 35 |
另外,每帧语音的特帧参数由12维的MFCC参数和12维的MFCC差分参数共12维数据构成,语音模型为4状态从左到右无跳转的隐马尔科夫模型。
实施结果:图1为语音信号“5678”的第一次切割结果,图2为同一语音信号经过两层分层构筑法后得到的切割结果。
Claims (1)
1.一种利用切割—分层构筑法的语音识别方法,其特征在于包括下述步骤:
步骤一:采集语音信号,采样频率f为8000Hz到12000Hz;
步骤二:依据采样频率f确定帧长len和帧移inc,对语音信号进行分帧,将语音信号分成每20~30毫秒一段,相邻两帧起始点之间的间隔为10毫秒,即两帧之间有10~20毫秒的交叠;
步骤三:提取语音特征参数,以MFCC参数为基础构建特征参数;
步骤四:计算每帧语音的归一化的C0复杂度的能量C0E0和归一化过零率ZCR0,计算方法如下:
1)归一化C0复杂度能量C0E0:
(2)对每帧序列s(n)进行离散FFT变化转换到频域,得到幅度谱S(n);
(3)计算该帧幅度谱的平均值其中N为帧长;
(4)大于S0的频率部分属于规则部分,小于或等于S0的部分属于随机部分,在此只取规则部分成分,公式如下:
(5)对规则部分成分的幅度谱S'(k)转化到频域并作IFFT变换,所得的s1(n)即为规则部分时间序列;
(7)令C*(n)=1-C(n),C0(n)=C*(n)/max(C*);
(8)令C0E(n)=C0(n)*e0(n),即可得到归一化的C0复杂度的能量
C0E0(n)=C0E(n)/max(C0E);
2)归一化过零率ZCR0:
设定一个门限Δ1,当前后两个采样的符号不同,而且差值大于Δ1的时候,就将过零率的数值加1,这样即可得到过零率ZCR,再得到归一化过零率ZCR0(n)=ZCR(n)/max(ZCR);
步骤五:用下述方法对语音进行切割,切割后每段语音只有单字或双字;
(1)定义语音信号的四个状态,每帧语音只能处于其中之一,如表1说明;
表1语音信号状态说明
(2)确定状态转移条件,如表2说明:
表2状态转移条件
表2中,silence为静音段已经持续的帧数,而Zcr1、Zcr2、Zcr3、C0E1、C0E2、minlen、maxsilence为由实验得到的门限值,con为当前语音段已经持续的帧数,silence为当前静音状态已经持续的帧数,Zcr0(n)为第n帧的归一化过零率,C0E0(n)为第n帧的归一化C0复杂度能量;
(3)开始切割:令状态号status的初始值为0,然后依据状态转移条件依次对每帧信号进行判断,若发生了状态0到状态1和状态2到状态1,则标记当前帧数为某一语音的起始点,若发生了状态1到状态2,则标记当前帧数为某一语音的结束点,当状态转移到3时,则标记当前帧数减去silence值为最后一个数字语音的结束点,并结束切割算法;
步骤六:对切割好的各段语音分别进行识别,若某段语音长度大于经验门限maxlen,则定义为双字部分,用两层分层构筑法对其进行识别,否则定义为单字部分,用孤立字的识别方法进行识别,在隐马尔科夫模型HMM下,用Viterbi算法进行识别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210284560.5A CN102820031B (zh) | 2012-08-06 | 2012-08-06 | 一种利用切割—分层构筑法的语音识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210284560.5A CN102820031B (zh) | 2012-08-06 | 2012-08-06 | 一种利用切割—分层构筑法的语音识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102820031A CN102820031A (zh) | 2012-12-12 |
CN102820031B true CN102820031B (zh) | 2014-06-11 |
Family
ID=47304116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210284560.5A Expired - Fee Related CN102820031B (zh) | 2012-08-06 | 2012-08-06 | 一种利用切割—分层构筑法的语音识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102820031B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107346659B (zh) * | 2017-06-05 | 2020-06-23 | 百度在线网络技术(北京)有限公司 | 基于人工智能的语音识别方法、装置及终端 |
CN111883169B (zh) * | 2019-12-12 | 2021-11-23 | 马上消费金融股份有限公司 | 一种音频文件切割位置处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149922A (zh) * | 2006-09-21 | 2008-03-26 | 株式会社东芝 | 语音识别装置和语音识别方法 |
CN101158967A (zh) * | 2007-11-16 | 2008-04-09 | 北京交通大学 | 一种基于分层匹配的快速音频广告识别方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06324696A (ja) * | 1993-05-17 | 1994-11-25 | Casio Comput Co Ltd | 音声認識装置及び方法 |
US7089185B2 (en) * | 2002-06-27 | 2006-08-08 | Intel Corporation | Embedded multi-layer coupled hidden Markov model |
-
2012
- 2012-08-06 CN CN201210284560.5A patent/CN102820031B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149922A (zh) * | 2006-09-21 | 2008-03-26 | 株式会社东芝 | 语音识别装置和语音识别方法 |
CN101158967A (zh) * | 2007-11-16 | 2008-04-09 | 北京交通大学 | 一种基于分层匹配的快速音频广告识别方法 |
Non-Patent Citations (1)
Title |
---|
JP特开平6-324696A 1994.11.25 |
Also Published As
Publication number | Publication date |
---|---|
CN102820031A (zh) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102800314B (zh) | 具有反馈指导的英语句子识别与评价系统及其方法 | |
CN105529028B (zh) | 语音解析方法和装置 | |
CN102800316B (zh) | 基于神经网络的声纹识别系统的最优码本设计方法 | |
CN103886871B (zh) | 语音端点的检测方法和装置 | |
CN100505040C (zh) | 基于决策树和说话人改变检测的音频分割方法 | |
CN101226743A (zh) | 基于中性和情感声纹模型转换的说话人识别方法 | |
CN109272992A (zh) | 一种口语测评方法、装置及一种生成口语测评模型的装置 | |
CN101625858B (zh) | 语音端点检测中短时能频值的提取方法 | |
CN104050965A (zh) | 具有情感识别功能的英语语音发音质量评价系统及方法 | |
CN104575490A (zh) | 基于深度神经网络后验概率算法的口语发音评测方法 | |
CN108154879B (zh) | 一种基于倒谱分离信号的非特定人语音情感识别方法 | |
CN107045870A (zh) | 一种基于特征值编码的语音信号端点检测方法 | |
CN105374352A (zh) | 一种语音激活方法及系统 | |
CN103077728B (zh) | 一种病人虚弱语音端点检测方法 | |
CN101625862B (zh) | 自动字幕生成系统中语音区间的检测方法 | |
CN101887722A (zh) | 快速声纹认证方法 | |
CN103440863A (zh) | 一种基于流形的语音情感识别方法 | |
CN106782508A (zh) | 语音音频的切分方法和语音音频的切分装置 | |
CN105469807A (zh) | 一种多基频提取方法及装置 | |
CN104992707A (zh) | 一种腭裂语音喉塞音自动识别算法及装置 | |
CN111883181A (zh) | 音频检测方法、装置、存储介质及电子装置 | |
CN103456302A (zh) | 一种基于情感gmm模型权重合成的情感说话人识别方法 | |
CN106023986A (zh) | 一种基于声效模式检测的语音识别方法 | |
Linh et al. | MFCC-DTW algorithm for speech recognition in an intelligent wheelchair | |
Kockmann et al. | Investigations into prosodic syllable contour features for speaker recognition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140611 Termination date: 20150806 |
|
EXPY | Termination of patent right or utility model |