语音识别装置和方法

文档序号:2837325阅读:433来源:国知局
专利名称:语音识别装置和方法
技术领域
本发明涉及一种语音识别方法,其利用HMM(隐马尔可夫模型)对声音特征进行建模,并且将其与语音特征矢量序列进行对照。

背景技术
作为一种现有技术中的语音识别方法,广泛地使用一种如Yukinori Takubo等人在2004年的文章“Science of languages 2”(Voice,Iwanami Shoten)(非专利文件1)中所描述的方法,其利用HMM对声音特征进行建模,并且将其与语音特征矢量序列进行比较,所述语音特征矢量序列表示具有特定时间宽度的每个帧的语音特征。在该语音识别方法中,通过待识别的多种类型中的每一类型的HMM对声音特征进行建模,并且将其与语音特征矢量序列进行对照以找到语音特征矢量序列的具有最高输出概率的HMM,并且将分配给该HMM的类型作为识别结果输出。
作为一种现有的有效地减少输出概率的计算次数的方法,存在一种基于束搜索(beam search)的方法(例如,Masaki Ida,SeiichiNakagawa(1996),“Comparison between a beam search method and A*searching method in voice recognition”,The institute of Electronics,Information and Communication Engineers,Technical Report of“Voice”SP96-12)(非专利文件2),以及一种基于基准帧的方法(例如,日本专利No.3251480)(专利文件1)。
然而,输出概率的计算次数不能仅仅通过简单地组合基于束搜索来减少输出概率的计算次数的方法以及基于基准帧来减少输出概率的计算次数的方法来有效地减少输出概率的计算次数。


发明内容
考虑到这一问题,本发明的一个目的是提供一种语音识别装置,其中,通过组合基于束搜索的方法以及基于基准帧的方法,能够有效地减少输出概率的计算次数,而不会对语音识别性能带来不利影响。
根据本发明的实施例,提供了一种使用HMM(隐马尔可夫模型)从所提供的语音信号中识别语音的装置,包括声音处理单元,用于从语音信号获取具有恒定时间宽度的每个帧的语音特征矢量;基准帧存储单元,用于确定各个帧中之一作为基准帧,并且存储基准帧的帧编号;基准帧更新单元,用于当从基准帧起已经经过了任意数量的帧时,将基准帧重置并且更新为基准帧之后的所述任意数量的帧之后的帧,并且继续更新直到序列中的最后一帧;第一搜索范围选择单元,用于根据对于基准帧的束搜索来选择HMM的第一搜索范围;第一输出概率计算单元,用于计算在第一搜索范围内的各个转移路径中的语音特征矢量的第一输出概率;第一输出概率存储单元,用于与各个转移路径相结合地存储第一输出概率的计算结果;第一输出概率删除单元,用于当基准帧被更新时,删除与转移路径相结合而存储的所有的第一输出概率的计算结果;第二搜索范围选择单元,用于当基准帧未被更新时,根据对于从基准帧到将更新的新的基准帧的时间间隔之内的各个帧的束搜索,选择各个帧中的HMM的第二搜索范围;确定单元,用于确定在当前帧的第二搜索范围内的各个转移路径中的第一输出概率、或者与基准帧和当前帧之间存在的已经过的帧有关的第二输出概率是否与转移路径相结合;近似值设置单元,用于当存储了与基准帧和当前帧之间的已经过的帧有关的第一输出概率的计算结果或第二输出概率的计算结果时,将与基准帧和当前帧之间的已经经过的帧有关的第一输出概率的计算结果或第二输出概率的计算结果设置为转移路径的第二输出概率的近似值;第二输出概率计算单元,用于当未存储第一输出概率的计算结果以及从基准帧到当前帧之前紧挨着的帧的时间间隔中的第二输出概率的计算结果时,计算转移路径的当前帧或转移路径的基准帧中的语音特征矢量的第二输出概率;第二输出概率存储单元,用于与转移路径相结合地存储第二输出概率的计算结果;第二输出概率删除单元,用于当基准帧被更新时,删除与转移路径相结合而存储的所有第二输出概率的计算结果;前向概率计算单元,用于根据预先计算的前一帧的前向概率、当前帧的所有近似值以及所有第二输出概率来计算当前帧的前向概率;以及语音识别单元,用于计算各个HMM的前向概率直到最后一帧,然后提供分配给对于最后一帧提供最大前向概率的HMM的类型作为语音识别的结果。
根据本发明的实施例,通过同时使用基于束搜索的方法和基于基准帧的方法,可以在不对语音识别性能产生不利影响的情况下,有效地减少输出概率的计算次数。



图1是优选用于现有技术的语音识别装置1的框图; 图2说明HMM的例子1; 图3说明HMM的例子2; 图4是语音识别装置1的流程图; 图5是语音识别装置1的流程图; 图6是说明在语音识别装置1中的前向概率计算的示意图; 图7是优选用于现有技术的语音识别装置2的框图; 图8是在语音识别装置2中的前向概率计算的示意图; 图9是优选用于现有技术的语音识别装置3的框图; 图10是说明在语音识别装置3中的前向概率计算的示意图; 图11是说明前向概率计算的示意图,用于说明现有技术中的问题; 图12是说明前向概率计算的示意图,用于说明现有技术中的问题; 图13是说明前向概率计算的示意图,用于说明根据本发明的示例的解决方法; 图14是根据本发明第一实施例的语音识别装置的框图; 图15是第一实施例的流程图; 图16是第一实施例的流程图; 图17是根据本发明的实施例的HMM的示例; 图18是HMM的示例; 图19是根据本发明第二实施例的语音识别装置的框图; 图20是第二实施例的流程图; 图21是第二实施例的流程图; 图22是第二实施例的流程图; 图23是根据本发明第三实施例的语音识别装置的框图; 图24是第三实施例的流程图;以及 图25是第三实施例的流程图。

具体实施例方式 在描述本发明的实施例之前,将描述理解本发明的实施例所需的现有技术。
现有技术 参考图1到图13,将描述现有技术。
(1)语音识别装置的结构 图1是显示现有技术中的语音识别装置的结构的示例的框图。
图1中的语音识别装置包括声音处理单元001、语音区间检测单元002、词典单元003以及对照单元004。
(1-1)声音处理单元001 声音处理单元001根据输入语音信号为具有特定时间宽度的每个帧生成语音特征矢量的时间序列X=(x(1)、x(2)、...x(T))。符号x(t)表示帧t中的语音特征矢量,其中,1=<t=<T,t=1对应于由语音区间检测单元002检测到的语音的开始,随后描述,并且t=T对应于语音的结束。语音特征矢量x(t)是具有比一维更高的要素的矢量,并且表示帧t中的语音的特征。术语“帧t”意味着编号为“t”的帧。
(1-2)语音区间检测单元002 语音区间检测单元002根据输入语音信号检测语音区间(语音的开始和结束)。
(1-3)词典单元003 词典单元003存储多个分配给不同种类的HMM。通过以下方式定义HMM一个或多个状态Si(i=1、2、...、NS),一组起始状态SS以及一组最终状态SF,从某一状态Sj到某一状态Si的转移概率Aji,概率密度的函数Bj(),用于给出在从某个状态Sj到某个状态Si的转移路径中语音特征矢量x的输出概率Bji(x),以及各个状态Si的初始概率Pi(i=1、2、...、NS),其中1=<i,j=NS,并且NS是构成HMM的状态的总数。
HMM的一个示例将在图2中显示。图2说明了具有多个状态的HMM的示例,其中,NS=4。
省略了其中转移概率和输出概率无意义的转移路径的说明,即,省略了其中相应的概率总为零的转移路径的说明。起始状态的集合SS={S1},最终状态的集合SF={S4}。图2中的HMM是在语音识别中通常使用的HMM的示例,其具有称为“从左到右类型”(left-to-right)的结构,其中,在起始状态集合和最终状态集合中的元素的数量分别为“1”,并且具有转移概率Aji和输出概率Bji(x),它们仅仅对于i=j或i=j+1的组合(j,i)是有意义的。以下将基于图2所示的HMM继续进行说明。然而,词典单元003可以存储任何种类的HMM,包括图2的例子在内。例如,它还可以存储如图3所示的具有多个转移路径的HMM。
(1-4)对照单元004 对照单元004将HMM与语音特征矢量序列进行对照。也就是说,对从语音区间的开始至结尾生成的语音特征矢量序列X(x(1),x(2),...,x(t))计算来自分配给某一类型c的HMM的输出概率P(X|c)。
对照单元004计算来自所分类的每个类型的HMM的输出概率P(X|c),1=<c=<c),并且将分配给给出最大输出概率的HMM的类型输出作为识别结果。当将来自分配给某一类型c的HMM的输出概率P(X|c)简单地表示为P(X)时,通过表达式(1)、表达式(2)、表达式(3)获取P(X)。
其中Si∈SF...(1) α(i,0)=Pi 其中 Si∈SS...(2) 对于所有j...(3) 其中,α(i,t)是帧t中的从起始状态转移并且到达状态Si的HMM的前向概率(forward probability)。因为在HMM中,在帧t中,存在多个从起始状态开始并且到达状态Si的转移路径,所以前向概率对应于各个转移路径的前向概率的总和。然而,在表达式(3)中,仅仅从所述多个转移路径中选择提供最大前向概率的一个转移路径并且使用所选择的前向概率。该方法被称为Viterbi方法。在语音识别的领域,Viterbi方法是一种较好的对于找到多个转移路径的前向概率的总和的方法的近似方法。
(2)对照单元004的处理 现在参考图4,将描述对照单元004的处理。图4是说明图1所示的语音识别装置中的对照单元004中的处理的流程图。
在步骤P011,帧编号t被初始化为1。也就是说,帧编号被设置为语音区间的开始,并且处理从语音区间的开始处启动。
在步骤P012,根据步骤P020中的过程,计算帧t中的HMM的状态Si的前向概率α(i,t)。稍后将描述步骤P020的细节。
在步骤P013,帧编号t被增加1。也就是说,过程进入具有t=t+1的下一个帧中的处理。
在步骤P014,将帧编号t与显示语音区间的结束的帧编号T进行比较。当t>T时,也就是说,当结束对语音区间中的所有帧的处理时,过程进行步骤P016。当t=<T时,也就是说,当帧t是语音区间中的一个帧时,过程进行步骤P015。
在步骤P015,根据步骤P020中的过程,计算帧t中的HMM的状态Si的前向概率α(i,t)。稍后将描述步骤P020的细节。当步骤P020结束时,过程返回步骤P013。
在步骤P016,基于表达式(3),状态Si(其中Si∈SF)的前向概率α(i,t)中的最大的前向概率被输出作为该HMM的语音特征矢量序列的输出概率P(X)。
(3)前向概率的计算 接下来,将使用图5中的流程图描述在图4中的步骤P012和步骤P015中,作为用于计算前向概率的过程的步骤P020。
在步骤P021,对所有的组合(j,i)(其中,1=<j,i=<NS)执行步骤P022的循环执行,并且当循环执行结束时,过程进行步骤P023。
在步骤P022,为某一组合(j,i)计算帧t中的输出概率Bji(x(t))。
在步骤P023,基于表达式(2)和表达式(3),为所有的状态Si(其中,1=<i=<NS)计算帧t中的前向概率α(i,t)。
图1中的语音识别装置在对照单元004中为多个HMM执行图4中的步骤P011至P016以及图5中的步骤P020,并且输出分配给提供最大输出概率的HMM的类型作为识别结果。到此给出的说明是关于图1中的语音识别装置。
(4)输出概率Bji(x)的计算 在对照单元004中,需要为所有帧t(1=<t=<T)的对应于组合(j,i)(其中,1=<j,i=<NS)的所有转移路径计算输出概率Bji(x)。
计算的一般过程将在图6中显示。图6中的垂直轴表示HMM的状态序列,其与图2中的HMM具有相同的转移路径。然而,省略了转移路径的图。横轴表示帧。在图6中,通过安排每个帧的HMM的状态序列并且将HMM的转移路径表示为用于连接相邻帧之间的两个状态的箭头来表示每个帧的HMM的状态转移。在图6中,通过粗的箭头来表示用于计算某一帧中的输出概率的转移路径。如图6所示,对照单元004计算所有帧中的所有转移路径中的输出概率。
通常,在语音识别中,计算输出概率的计算代价相对于语音识别处理的整个计算代价的比率是非常大的,其会提高整个语音识别处理的计算代价。因此,有效地减少输出概率的计算次数对于减少语音识别处理的计算代价是十分有效地。
作为现有的有效减少输出概率的计算次数的方法,存在一种如非专利文件2所述的基于束搜索的方法以及一种如专利文件1所述的基于基准帧的方法。以下将描述这些方法。
(5)基于束搜索的方法 将描述基于束搜索的减少输出概率的计算次数的方法。
(5-1)语音识别装置的结构 图7是显示优选用于该方法的语音识别装置的结构的示例的框图。
图7中显示的语音识别装置与图1中的语音识别装置一样包括声音处理单元001、语音区间检测单元002、词典单元003以及对照单元004,此外,还包括搜索对象选择单元005。
除了对照单元004与搜索对象选择单元005协同操作以外,图7中的语音识别装置与图1中的语音识别装置执行相同的处理。因此,在如下的说明中,仅描述与图1中的语音识别装置不同的对照单元004和搜索对象选择单元005的操作。
(5-2)搜索对象选择单元005 搜索对象选择单元005为每个帧执行束搜索,并且选择HMM的状态集SA以及可以从状态集SA转移的HMM的状态集SB。某一帧t中的状态集SA是一组具有比如下所述的状态Sj中的其它状态更大的前向概率的、从高位起的NA个状态,在所述状态Sj中,在帧t-1中不为零的有意义的前向概率α(j,t-1)不为零,其中1=<NA<NS。
当其中α(j,t-1)不为零的所有状态Sj的总数小于NA时,选择所有的其中α(j,t-1)不为零的状态Sj并且将它们定义为状态集SA。在某一帧t中的状态集SB是可以从所有状态Sj(其中Sj∈SA)转移的所有状态Si的集合。
(5-3)对照单元004 当依据表达式(3)计算前向概率时,对照单元004参考由搜索对象选择单元005选择的状态集SA和状态集SB,仅仅为满足Sj∈SA和Si∈SB的所有组合(j,i)计算输出概率,并且仅仅为满足Si∈SB的状态Si计算前向概率α(i,t)。更具体地说,使用如下显示的表达式(4)来代替表达式(3)。
其中{jSj∈SA}且 {iSi∈SB}...(4) 在表达式(4)中,只有当满足Sj∈SA和Si∈SB时,才必须简单地计算输出概率Bji(x(t)),并且与表达式(3)相比可以减少输出概率的计算次数。
这里,在表达式(4)中参考的前一帧的前向概率a(j,t-1)是从帧t-1中的高位起的NA个前向概率,并且预计可以从具有这些前向概率的状态Sj转移的状态Si在后续的当前帧t中也具有高位的前向概率。
因此,在各个帧中的通过具有高层的前向概率的状态的转移路径可能大多数是提供由表达式(1)获取的帧t中的前向概率α(i,t)的最大值的转移路径。该可能性随着NA值的增大而增大,并且当NA=NS时,在表达式(3)和表达式(4)之间没有差别。也就是说,通过将NA的值设置为适当的值,与图1中的语音识别装置的对照单元104相比,可以减少输出概率的计算次数,并且可以通过表达式(1)获得输出概率P(X)的期望的近似值。
(5-4)前向概率的计算 在图8中显示了通过图7中的语音识别装置中的对照单元004进行的前向概率的计算的示意过程。
图8与图6相同,显示了利用表达式(4)计算前向概率的结果。图8是将在帧t-1中选择的状态的数量的例子。在图8中,在帧t-1中,从具有有意义前向概率的状态集中选择具有最高和第二高的前向概率的状态,并且所选择的状态集被定义为状态集SA。在帧t中,选择可以从所述状态集SA转移的状态集SB,并且仅为从SA到SB的转移路径计算输出概率。在帧t+1,t+2...中重复该过程。当比较图8和图6时,很清楚,与图1中的语音识别装置相比,图7中的语音识别装置中的输出概率的计算次数可以被减少。
通过这种方式,通过基于束搜索减少输出概率的计算次数,可以在对性能没有不利影响的情况下减少输出概率的计算次数。
(6)基于基准帧的方法 接下来,将描述基于基准帧的减少输出概率的计算次数的方法。
(6-1)语音识别装置的结构 图9是显示优选用于该方法的语音识别装置的结构的例子的框图。
与图1中的语音识别装置一样,图9中的语音识别装置包括声音处理单元001、语音区间检测单元002、词典单元003以及对照单元004,并且还包括存储单元006。除了对照单元004与存储单元006协同工作以外,图9中的语音识别装置与图1中的语音识别装置执行相同的处理。
因此,在如下的说明中,仅描述与图1中的语音识别装置不同的对照单元004和存储单元006的操作。
(6-2)存储单元006 存储单元006存储基准帧q(1=<q=<T)以及输出概率缓冲RSji。
基准帧q存储语音区间中的任意一个的帧编号。在随后描述的对照单元004中的处理中,当从特定基准帧q开始逐帧地进行处理,并且当前帧t和基准帧q之间的差(t-q)超过阈值NQ时,将当前帧t定义为新的基准帧q。也就是说,当(t-q)>=NQ满足时,基准帧q被确定为等于t;q=t,由此更新,其中,基准帧q的初始值是1。
也就是说,语音区间的开始(帧1)总是被用作第一基准帧。输出概率缓冲RSji为所有组合(j,i)(其中,1<j,i=<NS)存储基准帧q中的输出概率Bji(x(q)),即RSji=Bji(x(q))。
当基准帧q更新时,也更新输出概率缓冲RSji。也就是说,更新的基准帧q再次被定义为RSji=Bji(x(q)),并且每当更新基准帧时重复该过程。
(6-3)对照单元004 当利用表达式(3)计算前向概率时,对照单元004参考存储在存储单元006中的基准帧q,并且当当前帧t与基准帧q匹配(即,t=q)时,为所有的组合(j,i)(其中,1=<j,i=<NS)计算输出概率Bji(x(q)),将所计算的输出概率存储在存储单元006的缓冲RSji中,然后计算前向概率。
当当前帧t是q<t<q+NQ时,对照单元004不计算输出概率Bji(x(t)),而是使用存储在存储单元006的输出概率缓冲RSji中的输出概率作为帧t中的输出概率的近似值来计算前向概率。更具体地说,使用如下显示的表达式(5)和表达式(6)来代替表达式(3)。
其中t=q...(5) 其中q<t<q+NQ...(6) 只有当在表达式(5)和表达式(6)中满足t=q时,才必须简单地计算输出概率Bji(x(q)),并且与表达式(3)相比可以减少输出概率的计算次数。
这里,当相对于输入语音的时间改变的帧宽度足够小时,时间上彼此接近的语音特征矢量x(q)和x(t)((t-q)<NQ)之间的差足够小,由此,输出概率Bji(x(q))和Bji(x(t))之间的差足够小。因此,预计通过将用于更新基准帧的阈值NQ设置为一近似值,Bji(x(q)),即RSji将变为可取的近似值Bji(x(t))。
(6-4)前向概率的计算 在图10中显示了由图9中的语音识别装置执行的前向概率的计算的示意过程。
图10对应于图6,显示了利用表达式(5)和表达式(6)计算前向概率的结果。图10是当基准帧的更新的阈值NQ为3时的例子,其中,在帧t+3中,基准帧q=t被更新为q=t+3。
在图10中,仅在基准帧中执行输出概率的计算,并且使用在基准帧中计算的输出概率作为从基准帧开始的帧中的近似值。每当基准帧被更新时重复该过程。当比较图10和图6时,很清楚,与图1中的语音识别装置相比,使用图9中的语音识别装置可以减少输出概率的计算次数。
通过这种方式,通过基于基准帧减少输出概率的计算次数,可以在对性能没有不利影响的情况下减少输出概率的计算次数。
(7)各个方法中的特点和问题 基于束搜索的减少输出概率的计算次数的方法以及基于基准帧的减少输出概率的计算次数的方法彼此具有不同的特点。
也就是说,前者减少某一帧中的输出概率的计算次数,而后者减少包括多个帧的区间中的输出概率的计算次数。因此,人们猜测与单独使用这些方法的情况相比,同时使用这两种方法可以更有效地减少输出概率的计算次数。然而,同时使用这些方法存在问题,并且不能通过简单地组合这些方法来有效地减少输出概率的计算次数。以下将描述这些问题。
如上所述,在基于束搜索的方法中,为每个帧选择状态集SA和状态集SB,并且仅为同时满足Sj∈SA和Si∈SB的组合(j,i)计算输出概率Bji(x(t))。
另一方面,在基于基准帧的方法中,在基准帧q中,为满足1=<j,i=<NS的所有组合(j,i)计算输出概率Bji(x(q)),并且存储在输出概率缓冲RSji中,并且用作基准帧之后的帧中的输出概率的近似值。
(8)当同时使用两个方法时如何计算 当同时使用基于束搜索的方法以及基于基准帧的方法时,计算基准帧q中的输出概率Bji(x(q))的方法出现问题。简单地考虑,存在如下的两种方法。
第一种方法是为基准帧q中的所有组合(j,i)计算输出概率Bji(x(q))。
第二种方法是仅为基准帧q中的同时满足Sj∈SA和Si∈SB的组合(j,i)计算输出概率Bji(x(q))。
(9)当同时使用这两种方法时出现的计算方法的问题 (9-1)第一种方法 第一种方法可以通过将图7中的语音识别装置的搜索对象选择单元005组合到图9中的语音识别装置的对照单元004,并且修改对照单元004的部分操作来实现。
也就是说,对照单元004为基准帧q中的所有组合(j,i)(其中,1<j,i=<NS)计算输出概率Bji(x(q)),并且将结果存储在输出概率缓冲RSji中。在除了基准帧以外的帧t(q<t<q+NQ)中,基于束搜索选择状态集SA和状态集SB,并且不为同时满足Sj∈SA和Si∈SB的组合(j,i)计算输出概率Bji(x(t)),而是使用输出概率的近似值RSji。
在图11中显示了对照单元004中的前向概率的计算的示意性的过程,其中,部分地修改了操作。图11对应于图10,其中,通过如上所述修改操作来执行基于束搜索的状态集的选择。然而,在这种情况下,输出概率的计算次数与在单独使用基于基准帧的方法的情况(图10)中相同,并且与同时使用基于束搜索的方法的情况相同(图11)。因为在两个情况中,仅在基准帧q中执行输出概率的计算,并且在基准帧q中,为所有组合(j,i)(其中,1=<j,i=<NS)计算输出概率。因此,在该方法中,不能更进一步有效地减少输出概率的计算次数. (9-2)第二种方法 第二种方法可以通过将图9中的存储单元006与图7中的语音识别装置的对照单元004进行组合,并且修改对照单元004的部分操作来实现。
也就是说,对照单元004基于束搜索选择状态集SA和状态集SB,仅为同时满足Sj∈SA和Si∈SB的组合(j,i)计算输出概率Bji(x(q)),并且将结果存储在基准帧q中的输出概率缓冲RSji中。在除了基准帧以外的帧t(q<t<q+NQ)中,选择状态集SA和状态集SB,存储在输出概率缓冲RSji中的值被用作对于同时满足Sj∈SA和Si∈SB的组合(j,i)的输出概率Bji(x(t))的近似值。因为状态包含在状态集SA中并且状态集SA和状态集SB在帧与帧间不同,然而,可能有一种情况,其中,不在基准帧q中计算用于在帧t中计算前向概率的输出概率Bji(x(t))的近似值RSji=Bji(x(q))。在这种情况下,不能继续在帧t中的前向概率的计算。因此,通过忽略其中不能使用输出概率的近似值RSji的转移路径,与基于束搜索而选择的从状态集SA到状态集SB的转移路径的集合相比,用于计算前向概率的转移路径的数量更小。
在图12中显示了在对照单元004中的前向概率的计算的示意性的过程,其中,通过这种方式部分地修改了操作。图12对应于图8,其中,利用如上所述的操作的修改来执行基于基准帧以及近似值的使用的输出概率的计算。在图12中,仅在基准帧中计算输出概率,由此,与图8相比可以减少输出概率的计算次数。
然而,在图12和图8之间,为每个帧选择的状态集非常不同。在图12中,因为存在对于其不能使用输出概率的近似值的转移路径,具有在某一帧的前向计算中有意义的前向概率的状态的数量小于在图8中。这意味着提供α(l,T)的最大值的转移路径很可能不能在利用表达式(1)的前向概率α(l,T)的计算中使用。也就是说,不能利用表达式(3)获得输出概率P(X)的期望的近似值,由此,对语音识别装置的性能会带来不利的影响。因此,在该方法中,也不能更进一步有效地减少输出概率的计算次数。
第一实施例 根据第一实施例的语音识别装置包括声音处理单元、语音区间检测单元、词典单元、对照单元、搜索对象选择单元、存储单元以及确定单元。通过存储在计算机中的程序来实现各个单元的功能。
基于以上显示的现有技术的说明,将描述在根据该实施例的语音识别装置中的前向概率的计算。
首先,在基准帧q中,搜索对象选择单元选择状态集SA和状态集SB,并且仅为同时满足Sj∈Sa和Si∈SB的组合(j,i)计算输出概率Bji(x(t)),并且存储单元将所述结果存储在输出概率缓冲RSji中。现在,确定单元存储有关以下转移路径的信息,在基准帧q中,未存储所述转移路径的输出概率的近似值RSji。
在除了基准帧以外的帧t(q<t<q+NQ)中,搜索对象选择单元选择状态集SA和状态集SB。这时,确定单元确定是否存在可以用于对应于同时满足Sj∈SA和Si∈SB的组合(j,i)的转移路径的输出概率的近似值RSji。
对照单元参考确定的结果,并且不为具有近似值RSji的转移路径计算输出概率Bji(x(t)),并且使用存储在存储单元中的近似值RSji。
对于不具有近似值RSji的转移路径,计算当前帧t的输出概率Bji(x(t)),并且将结果额外地存储在输出概率缓冲RSji中,并且用作后续帧中的近似值。因此,实现了下列效果。
首先,通过基于束搜索选择状态集,减少了在每个帧的前向概率的计算中所参考的转移路径的数量。也就是说,减少了需要参考输出概率的转移路径的数量。
然后,通过存储在基准帧中计算的输出概率并且将在基准帧中计算的输出概率用作后续帧的近似值,减少了输出概率的计算次数。
此外,当在从基准帧开始的帧中不能使用近似值时,计算当前帧中的输出概率并且存储其以用作后续帧中的输出概率的近似值。
也就是说,从基准帧到基准帧被更新的帧,对于每个转移路径的输出概率的计算次数被定义为仅仅一次。
因此,在通过对照单元的前向概率的计算中,减少了需要参考输出概率的转移路径的数量,此外,对于从某一基准帧到基准帧被更新的帧的每个转移路径的输出概率的计算次数被定义为一次,由此可以显著地减少输出概率的计算次数。图13中显示了前向概率的计算的示意性的过程。图13对应于图8和图10。
当图13与图8相比时,在图13中,与在图8中一样来选择状态集,此外,仅仅为从基准帧t到在更新后的基准帧t+3之前的帧的每个转移路径计算一次输出概率,从而,与图8相比,减少了输出概率的计算的总次数。这时,在每个帧中具有有意义的前向概率的状态的数量与图8中相同,因此,预计它们是表达式(3)中的输出概率P(X)中的可取的近似值。
当图13与图10相比时,在图13中,与图10中一样设置并更新基准帧,此外,状态集的选择,输出概率的计算和存储以及在从基准帧t到更新之后的基准帧t+3之前的帧的范围内使用相同的近似值,因此,与图10相比较,可以减少输出概率的计算的总次数。输出概率的近似精度依赖于用于更新基准帧的阈值NQ,因此,提供图10中的优选近似精度的阈值NQ预计在图13中是可取的近似值。
第一实施例的详细说明 参考图14到图18,将详细说明根据第一实施例的语音识别装置。
(1)语音识别装置的结构 图14是显示根据第一实施例的语音识别装置的结构的例子的框图。
图14中的语音识别装置包括声音处理单元101、语音区间检测单元102、词典单元103、对照单元104、搜索对象选择单元105、存储单元106以及确定单元107。可以通过存储在计算机中的程序来实现各个单元101至107的功能。
(1-1)声音处理单元101 声音处理单元101根据特定时间宽度的每个帧的输入语音信号生成语音特征矢量的时间序列x=(x(1),x(2)...,x(T))。
这里,x(t)是帧t中的语音特征矢量,其中,1=<t=<T,t=1对应于由稍后描述的语音区间检测单元102检测到的语音的开始,t=T对应于语音的结束。语音特征矢量x(t)是具有比一维更高的元素的矢量,并且表示帧t中的语音特征。作为如上所述的语音特征矢量,存在在非专利文件1中描述的MFCC。MFCC是一种获取语音特征矢量的方法,其取得相对于帧t中的话音频谱而输出的Mel滤波器组的对数值,然后执行倒谱分析以用于通过应用DCT来提取低阶分量。
(1-2)语音区间检测单元102 语音区间检测单元102从输入的语音信号检测语音区间(语音的开始和结束)。
作为一种检测语音区间的方法,存在一种方法,其计算输入语音的功率相对于每个帧的噪声区间中的估计噪声功率的比率,并且检测比率超过某一阈值的时间连续的区间作为语音区间。在这种情况下,如上所述的比率超过阈值的第一个帧被检测为语音区间的开始,如上所述的比率超过阈值的时间上连续的帧被检测为语音区间,在如上所述的比率低于阈值的帧之前紧挨着的帧被检测为语音区间的结束。
(1-3)词典单元103 词典单元103存储分配给不同类型的多个HMM。
HMM由以下要素定义一个或多个状态Si(i=1,2,,...,NS),起始状态的集合SS以及最终状态的集合SF,从某一状态Sj到某一状态Si的转移概率Aji,提供从某一状态Sj到某一状态Si的转移路径中的语音特征矢量x的输出概率Bji(x)的概率密度函数Bji(),以及各个状态Si的初始概率Pi(i=1,2,...,NS),其中,1=<i,j=<NS,并且NS指示构成HMM的状态的总数。当污染正态分布(contaminatednormal distribution)被用作概率密度函数Bji()时,利用表达式(7)计算输出概率Bji(x)。
其中,Wjim指示到构成概率密度函数Bji()的第m个多维正态分布的分支概率(branch probability),Gjim()指示构成概率密度函数Bji()的第m个多维正态分布,Gjim()指示由表达式(8)定义的多维正态分布。
Gjim()=N(μjim,∑jim2)...(8) 其中,μjim指示多维正态分布Gjim()的平均矢量,∑jim是多维正态分布Gjim()的协方差矩阵,1=<m=<M,并且M指示概率密度函数Bji()的混合数。
图17中显示了HMM的一个例子。图17说明了其状态数是NS=4的HMM的例子。
省略了其转移概率和输出概率无意义的转移路径的说明,即省略了相应概率总是0的说明。起始状态的集合SS={S1},最终状态的集合SF={S4}。图15中的HMM是在语音识别中通常使用的HMM的例子,具有称为从左到右类型的结构,在起始状态的集合以及最终状态的集合中的每一个具有一个元素,并且具有仅对于组合(j,i)(其中i=j或i=j+1)有意义的转移概率Aji和输出概率Bji(x)。以下将继续说明图17中的HMM。然而,词典单元103可以存储任何HMM,包括图17中的例子。例如,与图18中一样,它还可以存储具有多个转移路径的HMM。
(1-4)对照单元104 对照单元104执行HMM和语音特征矢量序列之间的对照。
也就是说,对从语音区间的开始至结尾生成的语音特征矢量序列X(x(1),x(2),...,x(t))计算从分配给某一类型c的HMM的输出概率P(X|c)。对照单元104为相应的类型计算从分配给该类型的HMM的输出概率P(X|c),(1=<c=<c),并且输出分配给提供最大的输出概率的HMM的类型,作为识别结果。当将从分配给某一类型c的HMM的输出概率P(X|c)简单地表示为P(X)时,通常利用表达式(9)、表达式(10)和表达式(11)来获得P(X)。
其中Si∈SF...(9) α(i,0)=Pi 其中Si∈SS...(10) 对于所有j...(11) 其中,α(i,t)是HMM的前向概率,其从起始状态转移并且在帧t到达状态Si。
因为在帧t中,HMM包括多个从起始状态开始并且到达状态Si的转移路径,所以前向概率对应于多个转移路径中的每一个的前向概率的总和。然而,在表达式(11)中,仅仅从所述多个转移路径中选择提供最大前向概率的转移路径并且使用所选择的前向概率。该方法被称为“Viterbi方法”。
在语音识别的领域,Viterbi方法是一种较好的,对于找到多个转移路径的前向概率的总和的方法的接近。在实施例中的通过对照单元104的前向概率的计算中,通过组合随后描述的搜索对象选择单元105、存储单元106和确定单元107的处理,可以有效地减少利用表达式(11)的输出概率Bji(x(t))的计算次数,而不会对语音识别性能产生不利影响。随后描述其。
(1-5)搜索对象选择单元105 搜索对象选择单元105对每个帧执行束搜索,并且选择HMM的状态集SA以及可以从状态集SA转移的HMM的状态集SB。
某一帧t中的状态集SA是一组具有比满足如下条件的状态Sj中的其它状态更大的前向概率的、从高位起的NA个状态的集合,在所述状态Sj中,在帧t-1中不为零的有意义的前向概率α(j,t-1)不为零,其中1=<NA<NS。当α(j,t-1)不为零的所有状态Sj的总数小于NA时,选择所有的其中α(j,t-1)不为零的状态Sj并且将它们定义为状态集SA。在某一帧t中的状态集SB是可以从所有状态Sj(其中Sj∈SA)转移的所有状态Si的集合。
(1-6)存储单元106 存储单元006存储基准帧q(1=<q=<T)以及输出概率缓冲RSji。
基准帧q存储语音区间中的任意一个的帧编号。在对照单元104中的处理中,当逐帧的从特定基准帧q开始进行处理,并且当前帧t和基准帧q之间的差(t-q)超过阈值NQ时,将当前帧t定义为新的基准帧q。也就是说,当(t-q)>=NQ满足时,基准帧q被确定为等于t;q=t,由此更新,其中,基准帧q的初始值是1。也就是说,语音区间的开始(帧1)总是被用作第一基准帧。输出概率缓冲RSji存储某一帧t中的输出概率Bji(x(t))的计算结果。也就是说,使得RSji=Bji(x(t))。当基准帧q被更新时,删除输出概率缓冲RSji中存储的输出概率的计算结果。
(1-7)确定单元107 确定单元107存储标志FSji。标志FSji的各个元素是两个值
中的任意一个,并且当输出概率Bji(x(t))被存储在存储单元106中的输出概率缓冲RSji中时,被设置为1,如果没有,则设置为0。
也就是说,通过参考标志FSji,可以确定输出概率是否存储在存储单元106的输出概率缓冲RSji中。当存储在存储单元106中的基准帧q采取初始值1,或者当基准帧q被更新时,标志FSji的所有元素被初始化为0。
(2)输出概率P(X)的计算 参考图15和图16中的流程图,将描述在图14中的语音识别装置中计算分配给某一类型的HMM的语音特征矢量序列X的输出概率P(X)的处理的流程。
首先,以下详细地描述图15的流程图中的处理。流程图显示了计算各个帧中的前向概率α(i,t)的过程,以及获取帧t中的语音特征矢量序列X的输出概率P(X)的过程。
在步骤P101,对照单元104将帧编号t初始化为1。
在步骤P102,存储单元106将基准帧编号q初始化为1。
在步骤P103,确定单元107对所有的组合(j,i)(其中,1=<j,i=<NS)将标志FSji初始化为0。
在步骤P104,对照单元104根据步骤P120中的过程计算当前帧t=1中的前向概率α(i,t)。也就是说,获得帧1中的前向概率。随后详细地描述步骤P120。
在步骤P105,对照单元104将帧编号t增加1。也就是说,过程进入具有t=t+1的下一个帧的处理。
在步骤P106,对照单元104将当前帧的帧编号t与指示语音结束的帧编号t进行比较。当t=<T时,即,当帧t是语音区间内的帧时,过程进入步骤P107至步骤P111,以获取当前帧t的前向概率。当t>T时,即,当对语音区间内的所有帧结束处理时,在步骤P112获得语音特征矢量序列X的输出概率P(X)。
在步骤P107,存储单元106将当前帧编号t和基准帧编号q之间的差与阈值NQ进行比较,并且确定基准帧q是否应被更新。当从基准帧q直到当前帧t所经过的帧的数量等于或大于NQ时,即,当满足(t-q)>=NQ时,过程进入步骤P109至步骤P111以更新基准帧q,然后获取当前帧t的前向概率。当(t-q)<NQ时,过程进入步骤P108,其中,不更新基准帧q,并且获得当前帧t的前向概率。
在步骤P108,对照单元104根据步骤P120中的过程计算当前帧t中的前向概率α(i,t)。也就是说,对照单元104不更新基准帧q,并且获取当前帧t的前向概率。随后详细地描述步骤P120。
在步骤P109,存储单元106更新当前帧t中的基准帧q,即,q=t。
在步骤P110,确定单元107为所有的组合(j,i)(其中,1=<j,i=<NS)将标志FSji初始化为0。
在步骤P111,对照单元104根据步骤P120中的过程计算当前帧t中的前向概率α(i,t)。也就是说,对照单元104更新基准帧q,然后获取当前帧t的前向概率。随后详细地描述步骤P120。
在步骤P112,利用表达式(9)获得帧T中的状态Si(其中Si∈SF)中的最大前向概率。也就是说,在步骤P80,结束分配给某一类型的HMM中的语音特征矢量序列X的输出概率P(X)的计算。
(3)前向概率α(i,t)的计算 接下来,以下详细地描述图16的流程图中的处理。
该流程图详细的说明了各个帧中的前向概率α(i,t)的计算。
在步骤P121,搜索对象选择单元105参考已在帧t-1中计算的前向概率α(j,t-1),并且从α(j,t-1)不为0的所有状态Sj中,从具有更大前向概率的高位开始选择NA个状态作为状态集SA。然而,当α(j,t-1)不为零的状态Sj的总数小于NA时,选择所有的其中α(j,t-1)不为零的状态Sj并且将它们定义为状态集SA。利用表达式(10)获得t=1时的前向概率α(j,0)。
在步骤P122,搜索对象选择单元105从所有状态Sj(其中Sj∈SA)中选择通过Aji不为0的转移路径可以转移到的所有状态,作为状态集SB。
在步骤P123,对同时满足Sj∈SA和Si∈SB的所有组合(j,i)执行下述步骤P124至步骤P128。当对所有组合(j,i)结束处理时,过程进入步骤P129。
在步骤P124,确定单元107参考标志FSji,当FSji=1满足时,即,当输出概率存储在存储单元106的输出概率缓冲RSji中时,过程进入步骤P128。当FSji=1不满足时,即,当所计算的输出概率未存储在输出概率缓冲RSji中时,过程进入步骤P125至步骤P127,其中,计算并存储输出概率。
在步骤P125,对照单元104利用表达式(7)和表达式(8)计算当前帧t中的语音特征矢量x(t)的输出概率Bji(x(t))。
在步骤P126,存储单元106将步骤P125中计算的输出概率Bji(x(t))存储在输出概率缓冲RSji中。也就是说,使得RSji=Bji(x(t))。
在步骤P127,确定单元107将标志FSji设置为数值1,其指示输出概率的计算结果存储在存储单元106的输出概率缓冲RSji中。也就是说,使得Fsji=1。
在步骤P128,对照单元104利用存储在存储单元106的输出概率缓冲RSji中的输出概率,对当前帧t中的语音特征矢量x(t)的输出概率Bji(x(t))进行近似化。也就是说,使得Bji(x(t))=RSji。
在步骤P129,根据在如上所述的步骤P125中计算的输出概率以及在如上所述的步骤P128中获得的输出概率的近似值来计算当前帧t中的前向概率α(i,t)。当考虑步骤P124至步骤P129时,用于计算前向概率α(i,t)的表达式是以下所示的表达式(12)、(13)和(14)。这三个表达式用于替换现有技术中的语音识别方法中的表达式(11)。
对于满足FSji=0和{jSj∈SA}以及{iSi∈SB}的(j,i) 对于满足FSji=1和{jSj∈SA}以及{iSi∈SB}的(j,i) α(i,t)=max(α1(i,t),α2(i,t))...(14) 在表达式(12)、表达式(13)和表达式(14)中,仅仅为满足所有的FSji=0、{jSj∈SA}和{iSi∈SB}的组合(j,i)计算输出概率Bji(x(t)),因此,与表达式(11)相比,可以显著地减少输出概率Bji(x(t))的计算次数。
这时,因为对于帧t-1中的前向概率中的从高位起的NA个前向概率计算了当前帧t的前向概率α(i,t),所以预计通过将NA设置为足够的值,在帧t中,α(i,t)可以具有较高位的前向概率。
也就是说,预计获取可取的近似值,用于计算帧t-1中的所有的前向概率α(j,t-1)(1=<j=<NS)。
当帧宽度相对于输入语音的时间改变足够小时,时间上彼此接近的语音特征矢量之间的差别也较小,因此,预计通过将NQ设置为对于同时满足(t-q)<NQ和q=<t′<t的q,t,t′的足够的值,输出概率Bji(x(t′))和输出概率Bji(x(t))之间的差将变得足够小。也就是说,预计RSji=Bji(x(t′))变为Bji(x(t))的可取的近似值。
(4)效果 在第一实施例所描述的语音识别装置中,与利用现有技术中的表达式(11)计算前向概率相比,可以显著地减少输出概率的计算次数,可以通过基于表达式(12)、表达式(13)和表达式(14)计算前向概率来获得表达式(11)的可取的近似值。因此,在语音识别处理中,在不对识别性能产生不利影响的情况下,可以有效地减少输出概率的计算次数。这对于有效地减少语音识别处理的计算代价是非常有效的。
(5)变形 本发明不局限于以上所示的实施例,在不脱离本发明的范围的情况下可以做出各种修改。
(5-1)变形1 在第一实施例中,MFCC被用作声音处理单元101中的语音特征矢量。
然而,该实施例不局限于特定的语音特征矢量,而是可以为任意的语音特征矢量(例如LPC或PLP)来实现。
(5-2)变形2 在第一实施例中,基于所估计的噪声功率和输入语音功率之间的比率的方法作为语音区间检测单元102中的检测语音区间的方法。
然而,该实施例不局限于特定的语音区间检测方法,可以对任意的语音区间检测方法来实现,例如基于所估计的噪声区间和所估计的语音区间之间的相似比的方法。
(5-3)变形3 在第一实施例中,在词典单元103中使用具有图17和图18所示的结构的HMM。
然而,该实施例不局限于具有特定结构的HMM,而是可以为具有任意结构的HMM实现,例如具有各态历经结构(ergodic structure)的HMM。
(5-4)变形4 在第一实施例中,在词典单元103中使用作为输出概率Bji(x)的如表达式(7)所示的污染正态分布的输出概率的加权总和。
然而,从多个正态分布中选择最大的输出概率并且使用所选定的输出概率作为输出概率Bji(x)的方法也是可应用的。
(5-5)变形5 在第一实施例中,在对照单元104中使用基于Viterbi方法的用于计算前向概率的表达式。
然而,实施例不局限于用于计算前向概率的特定的表达式,可以对于任意的用于计算前向概率的表达式来实现,例如Trellis方法。
(5-6)变形6 在第一实施例中,在搜索对象选择单元105中使用以下方法作为束搜索的方法,即,选择具有从高位起的NA个前向概率的状态。
然而,本发明不局限于特定的状态选择方法,可以对于任意的状态选择方法来实现。
(5-7)变形7 在第一实施例中,在存储单元106中,固定的阈值NQ被用于确定从基准帧至当前帧经过的帧数的阈值。
然而,本发明不局限于特定的更新基准帧的方法,可以实现为任意的更新基准帧的方法。
第二实施例 参考图19至图22,将描述根据第二实施例的语音识别装置。
(1)语音识别装置的结构 图19是显示根据第二实施例的语音识别装置的结构的框图。
图19中的语音识别装置包括声音处理单元101、语音区间检测单元102、词典单元203、对照单元204、搜索对象选择单元105、存储单元206和确定单元207。
与图14中的根据第一实施例的部件具有相同参考标记的声音处理单元101、语音区间检测单元102、搜索对象选择单元105按照与第一实施例中相同的方式进行工作,因此这里将省略其说明。
(1-1)词典单元203 与第一实施例中的词典单元103一样,词典单元203存储分配给不同类型的多个HMM。
与词典单元103的不同点是一结构,其中,当使用污染正态分布作为概率密度函数Bji()时,某一正态分布被多个概率密度函数共同使用。
词典单元203除了词典单元103以外还包括表TNjim,其保存到正态分布的索引,其中,概率密度函数Bji()的第m个多维正态分布Gjim()构成HMM,并且多维正态分布Gjim()用表达式(15)定义。
Gjim()=N(μm,∑n2) 其中n=TNjim...(15) 其中,μn指示HMM的第n个多维正态分布的平均矢量,并且∑n指示HMM的第n个多维正态分布的协方差矩阵。
满足1=<n=<NM,并且NN指示由HMM拥有的唯一正态分布的数量。此外,当j1不等于j2时,并且同时i1不等于i2,对于(j1,i1,m1)和(j2,i2,m2)可以满足n=TNj1i1m=TNj2i2m。在这种情况下,由两个概率密度函数Bj1i1()和Bj2i2()共同使用正态分布N(μn,∑n)。
(1-2)对照单元204 对照单元204按照与第一实施例中的对照单元104相同的方式执行HMM和语音特征矢量序列之间的对照。然而,对照单元204根据上述的词典单元204、随后描述的存储单元206和确定单元207的操作,执行部分不同于对照单元104的操作。这点将在随后描述。
(1-3)存储单元206 存储单元206除第一实施例中的存储单元106之外还存储正态分布的输出概率缓冲RNn(1=<n=NN)。
在对照单元204的处理中,当在某一帧t中的输出概率Bji(x(t))的计算中根据表达式(7)和表达式(15)计算第n正态分布的输出概率N(μn,∑n)时,存储单元206存储计算结果。也就是说,使得RNn=N(μn,∑n)。
(1-4)确定单元207 确定单元207除第一实施例中的确定单元107之外还存储标志FNn。标志FNn的每个元素取两个值
之一,并且当正态分布的输出概率N(μn,∑n)存储在存储单元206中的正态分布的输出概率缓冲RNn中时被设置为1,如果不,则设置为0。
也就是说,通过参考标志FNn,可以确定正态分布的输出概率是否存储在存储单元206的正态分布的输出概率缓冲RNn中。当存储在存储单元206中的基准帧q取初始值1时,或者当基准帧q被更新时,标志FNn的所有元素被设置为0。
(2)输出概率P(X)的计算 现在参考图20、图21和图22中的流程图,将描述在图19中的语音识别装置中,用于计算分配给某一类型的HMM中的语音特征矢量序列X的输出概率P(X)的处理的流程。
然而,因为与第一实施例中的图15和图16中的步骤具有相同的参考标记的图20和图21中的处理步骤未从第一实施例进行修改,所以这里省略其描述。
与第一实施例中的词典单元103、对照单元104、存储单元106和确定单元107相关的处理步骤的描述可以被替换为与第二实施例中的词典单元203、对照单元204、存储单元206和确定单元207相关的处理步骤的描述。
以下详细地描述图20中的流程图中的处理。流程图说明了计算各个帧中的前向概率α(i,t)的过程,以及获取帧t中的语音特征矢量序列X的输出概率P(X)的过程。
在步骤P203,确定单元207对于所有的组合(j,i)(其中,1=<j,i=<NS)将标志FSji初始化为0,然后,对于所有的“n”(其中,1=<n=<NN),将标志FNn初始化为0。
在步骤P204,对照单元204根据步骤P200中的过程计算当前帧t=1中的前向概率α(i,t)。也就是说,对照单元204获取帧1中的前向概率。随后详细地描述步骤P200。
在步骤P208,对照单元204根据步骤P220中的过程计算当前帧t中的前向概率α(i,t)。也就是说,对照单元204获取帧t的前向概率,而不更新基准帧q。随后详细地描述步骤P220。
在步骤P210,确定单元207对于所有的组合(j,i)(其中,1=<j,i=<NS)将标志FSji初始化为0。确定单元207更进一步地对于所有的“n”(其中,1=<n=<NN),将标志FNn初始化为0。
在步骤P211,对照单元204根据步骤P220中的过程计算当前帧t中的前向概率α(i,t)。也就是说,对照单元204更新基准帧q,然后获取当前帧t的前向概率。随后详细地描述步骤P220。
(3)前向概率α(i,t)的计算 以下详细地描述图21中的流程图中的处理。该流程图示意性地说明了各个帧中的前向概率α(i,t)的计算。
在步骤P225,对照单元204根据步骤P225中的过程计算当前帧t中的语音特征矢量x(t)的输出概率Bji(x(t))。随后详细地描述步骤P225。
(4)输出概率Bji(x(t))的详细说明 接下来,以下详细地描述图22中的流程图中的处理。该流程图详细地说明了输出概率Bji(x(t))。
在步骤P231,对照单元204为由Bji(x(t))的计算所参考的正态分布Gjim的所有m(1=<m=<M)执行稍后描述的步骤P232至步骤P237。
在步骤P232,词典单元203使用保存对正态分布的索引的表TNjim获取多维正态分布的索引n。也就是说,使得n=TNjim。
在步骤P233,确定单元207根据在步骤P232所获得的索引n参考标志FNm,并且,当FNn=1满足时,即,当输出概率存储在存储单元206的正态分布的输出概率缓冲RNn中时,过程进入步骤P237。当FNn=1不满足时,即,当输出概率未存储在正态分布的输出概率缓冲RNn中时,过程进入步骤P234至步骤P236,其中,计算正态分布的输出概率并且存储其。
在步骤P234,对照单元204为具有索引n的正态分布Gjim()=N(μn,∑n)计算当前帧t中的语音特征矢量x(t)的输出概率Gjim(x(t))。
在步骤P235,存储单元206将在步骤P125中计算的正态分布的输出概率Gjim(x(t))存储在正态分布的输出概率缓冲RNn中。也就是说,使得RNn=Gjim(x(t))。
在步骤P236,确定单元207将数值1设置给标志FNn,其指示输出概率存储在存储单元206中的正态分布的输出概率缓冲RNn中。也就是说,使得FNn=1。
在步骤P237,对照单元204利用存储在存储单元106的输出概率缓冲RNn中的输出概率对正态分布的输出概率Gjim(x(t))进行粗略估计。也就是说,使得Gjim(x(t))=RNn。
在步骤P238,对照单元204根据在上述步骤P235中计算的正态分布的输出概率以及在上述步骤P228中获得的正态分布的近似值来计算当前帧t的输出概率Bji(x(t))。当考虑步骤P231至步骤P237时,用于计算输出概率Bji(x(t))的表达式是如下所示的表达式(16)、表达式(17)和表达式(18)。这三个表达式是在第一实施例中将用表达式(7)替换的表达式。
对于满足n=TNjim和FNn=1的(m,n) 其中Gjim()=N(μn,∑n2) ...(16) 对于满足n=TNjim和FNn=0的(m,n) B ji(x(t))=B1ji(x(t))+B2ji(x(t))...(18) 因为在表达式(16)、表达式(17)和表达式(18)中,仅仅为同时满足n=TNjim和FNn=1的(m,n)而执行正态分布的输出概率Gjim(x(t))的计算,因此,与表达式第二实施例中的表达式(7)相比,可以显著地减少正态分布的输出概率的计算次数。
这时,当相对于输入语音的时间改变的帧宽度非常小时,时间上彼此接近的语音特征矢量之间的差别也较小,因此,预计通过将NQ设置为对于q,t,t′来讲足够的值,其满足(t-q)<NQ和=<t′<t,则正态分布的输出概率Gjim(x(t′)和Gjim(x(t))之间的差将变得足够小。
也就是说,预计RNn=Gjim(x(t′))变为Gjim(x(t))的可取的近似值,其中,n=TNjim。
(5)效果 也就是说,在第二实施例所描述的语音识别装置中,与在第一实施例中利用表达式(7)计算输出概率相比,通过基于表达式(16)、表达式(17)和表达式(18)来计算输出概率,可以显著地减少正态分布的计算次数,并且可以获得表达式(7)的可取的近似值。
因此,在语音识别处理中,可以减少正态分布的计算次数,即,可以在对识别性能没有不利影响的情况下有效地减少输出概率的计算代价。这对于有效地减少语音识别处理的计算代价是非常有效的。
第三实施例 现在参考图23至图25描述根据第三实施例的语音识别装置。
(1)语音识别装置的结构 图23是显示根据第三实施例的语音识别装置的结构的例子的框图。
图23中所示的语音识别装置包括声音处理单元101、语音区间检测单元102、词典单元103、对照单元304、搜索对象选择单元105、存储单元106和确定单元107。
这里,因为与第一实施例的图14中的相应部件具有相同参考标记的声音处理单元101、语音区间检测单元102、词典单元103、搜索对象选择单元105、存储单元106以及确定单元107按照与第一实施例中相同的方式进行工作,因此这里将省略其说明。
对照单元304按照与第一实施例中的对照单元104相同的方式执行HMM和语音特征矢量序列之间的对照。然而,部分操作与对照单元104不同。也就是说,在某一帧t的前向概率的计算中,当需要计算语音特征矢量的输出概率时,存储在存储单元106中的基准帧q的语音特征矢量x(q)的输出概率Bji(x(q))被用作当前帧t中的语音特征矢量x(t)的输出概率Bji(x(t))的近似值。
(2)输出概率P(X)的计算 现在参考图24和图25中的流程图,将描述在图23中的语音识别装置中计算分配给某一类型的HMM中的语音特征矢量序列X的输出概率P(X)的处理的流程。
然而,因为与第一实施例中的图15和图16中的步骤具有相同的参考标记的图24和图25中的处理步骤未从第一实施例进行修改,所以这里省略其描述。
然而,与第一实施例中的对照单元104有关的处理步骤的说明可以被替换为与第四实施例中的对照单元304有关的操作的说明。图24中的流程图中的处理与第一实施例中的图15中的流程图相同,所以省略其说明。
以下详细地描述图25中的流程图中的处理。在该流程图中,用步骤P325和步骤P239替代第一实施例的图16中的流程图中的步骤P125和步骤P129。
在步骤P325中,对照单元304利用表达式(7)和表达式(8)计算对应于存储单元1 06的基准帧编号q的语音特征矢量x(q)的输出概率Bji(x(q)),并且使用所计算的结果作为当前帧t中的语音特征矢量x(t)的输出概率Bji(x(t))的代替。
在步骤P239,基于在如上所述的步骤P325中计算的输出概率的近似值以及在步骤P128中获得的输出概率的近似值来计算当前帧t中的前向概率α(i,t)。用于计算所述前向概率α(i,t)的表达式是如下显示的表达式(19)、表达式(20)以及表达式(21)。
这三个表达式是在第二实施例中将用表达式(12)、表达式(13)以及表达式(14)替换的表达式。
对于满足FSji=0和{jSj∈SA}以及{iSi∈SB}的(j,i) 对于满足FSji=1和{jSj∈SA}以及{iSi∈SB}的(j,i) α(i,t)=max(α1(i,t),α2(i,t))...(21)。
权利要求
1.一种使用HMM(隐马尔可夫模型)从所提供的语音信号中识别语音的装置,包括
声音处理单元,用于从语音信号获取具有恒定时间宽度的每个帧的语音特征矢量;
基准帧存储单元,用于确定各个帧中之一作为基准帧,并且存储基准帧的帧编号;
基准帧更新单元,用于当从基准帧起已经经过了任意数量的帧时,将基准帧重置并且更新为基准帧之后的所述任意数量的帧之后的帧,并且继续更新直到序列中的最后一帧;
第一搜索范围选择单元,用于根据对于基准帧的束搜索来选择HMM的第一搜索范围;
第一输出概率计算单元,用于计算在第一搜索范围内的各个转移路径中的语音特征矢量的第一输出概率;
第一输出概率存储单元,用于与各个转移路径相结合地存储第一输出概率;
第一输出概率删除单元,用于当基准帧被更新时,删除与转移路径相结合而存储的所有的第一输出概率;
第二搜索范围选择单元,用于当基准帧未被更新时,根据对于从基准帧到将更新的新的基准帧的时间间隔之内的各个帧的束搜索,选择各个帧中的HMM的第二搜索范围;
第二输出概率计算单元,用于当未存储第一输出概率和从基准帧到当前帧之前紧挨着的帧的时间间隔中的输出概率时,计算转移路径的当前帧或转移路径的基准帧中的语音特征矢量的第二输出概率;
确定单元,用于确定在当前帧的第二搜索范围内的各个转移路径中的第一输出概率、或者与基准帧和当前帧之间存在的已经过的帧有关的第二输出概率是否与转移路径相结合;
近似值设置单元,用于当存储了与基准帧和当前帧之间的已经过的帧有关的第一输出概率或第二输出概率时,将与基准帧和当前帧之间的已经过的帧有关的第一输出概率或第二输出概率设置为转移路径的第二输出概率的近似值;
第二输出概率存储单元,用于与转移路径相结合地存储第二输出概率;
第二输出概率删除单元,用于当基准帧被更新时,删除与转移路径相结合而存储的所有第二输出概率;
前向概率计算单元,用于根据预先计算的前一帧的前向概率、当前帧的所有近似值以及所有第二输出概率来计算当前帧的前向概率;以及
语音识别单元,用于计算各个HMM的前向概率直到最后一帧,然后提供分配给对于最后一帧提供最大前向概率的HMM的类型作为语音识别的结果。
2.根据权利要求1所述的装置,其中,第一输出概率和第二输出概率中的概率密度函数是污染正态分布,
其中,所述HMM具有一种结构,在该结构中,由多个概率密度函数共同使用任意的正态分布,
其中,当计算各个转移路径中的第一输出概率时,所述第一输出概率计算单元为构成概率密度函数的各个正态分布计算语音特征矢量的输出概率,并且与对应的正态分布相结合地存储各个正态分布的计算结果,
其中,所述第一输出概率删除单元删除所有第一输出概率并且删除所有与正态分布相结合而存储的语音特征矢量的输出概率;
其中,当计算第二输出概率时,所述第二输出概率计算单元
(1)当存储了与正态分布相结合的计算结果时,提供所存储的计算结果作为正态分布的输出概率的近似值,以及
(2)当未存储与正态分布相结合的计算结果时,进一步为正态分布计算语音特征矢量的输出概率,并且重新与正态分布相结合地存储计算结果,
为构成概率密度函数的各个正态分布考虑语音特征矢量的输出概率。
3.根据权利要求1所述的装置,其中,所述基准帧存储单元除了存储新的基准帧的帧编号之外还存储新的基准帧的语音特征矢量,
其中,所述基准帧更新单元除了更新新的基准帧的帧编号之外还更新新的基准帧的语音特征矢量,以及
其中,所述第二输出概率计算单元计算基准帧的语音特征矢量的第二输出概率。
4.一种使用HMM(隐马尔可夫模型)从所提供的语音信号中识别语音的方法,包括
从语音信号获取具有恒定时间宽度的每个帧的语音特征矢量;
确定各个帧中之一作为基准帧,并且存储基准帧的编号;
当从基准帧起已经经过了任意数量的帧时,将基准帧重置并且更新为基准帧之后的所述任意数量的帧之后的帧,并且继续更新直到序列中的最后一帧;
根据对于基准帧的束搜索来选择HMM的第一搜索范围;
计算在第一搜索范围内的各个转移路径中的语音特征矢量的第一输出概率;
与各个转移路径相结合地存储第一输出概率;
当基准帧被更新时,删除与转移路径相结合而存储的所有第一输出概率;
当基准帧未被更新时,根据对于从基准帧到将更新的新的基准帧的时间间隔之内的各个帧的束搜索,选择所述各个帧中的HMM的第二搜索范围;
当未存储第一输出概率和从基准帧到当前帧之前紧挨着的帧的时间间隔中的输出概率时,计算转移路径的当前帧或转移路径的基准帧中的语音特征矢量的第二输出概率;
确定在当前帧的第二搜索范围内的各个转移路径中的第一输出概率、或者与基准帧和当前帧之间存在的已经经过的帧有关的第二输出概率是否与转移路径相结合;
当存储了与基准帧和当前帧之间的已经经过的帧有关的第一输出概率或第二输出概率时,将与基准帧和当前帧之间的已经经过的帧有关的第一输出概率或第二输出概率设置为转移路径的第二输出概率的近似值;
重新与转移路径相结合地存储第二输出概率;
当基准帧被更新时,删除与转移路径相结合而存储的所有第二输出概率;
根据预先计算的前一帧的前向概率、当前帧的所有近似值以及所有第二输出概率来计算当前帧的前向概率;以及
计算各个HMM的前向概率直到最后一帧,然后提供分配给对于最后一帧提供最大前向概率的HMM的类型作为语音识别的结果。
5.根据权利要求4所述的方法,其中,第一输出概率和第二输出概率中的概率密度函数是污染正态分布,
其中,所述HMM具有一种结构,在该结构中,由多个概率密度函数共同使用任意的正态分布,
其中,当计算各个转移路径中的第一输出概率时,第一输出概率计算步骤为构成概率密度函数的各个正态分布计算语音特征矢量的输出概率,并且与对应的正态分布相结合地存储各个正态分布的计算结果,
其中,第一输出概率删除步骤删除所有第一输出概率的计算结果并且删除所有与正态分布相结合而存储的语音特征矢量的输出概率的计算结果;
其中,当计算第二输出概率时,第二输出概率计算步骤
(1)当存储了与正态分布相结合的计算结果时,提供所存储的计算结果作为正态分布的输出概率的近似值,以及
(2)当未存储与正态分布相结合的计算结果时,进一步为正态分布计算语音特征矢量的输出概率,并且重新与正态分布相结合地存储计算结果,
为构成概率密度函数的各个正态分布考虑语音特征矢量的输出概率。
6.根据权利要求4所述的方法,包括
在存储步骤中,除了存储新的基准帧的帧编号之外还存储新的基准帧的语音特征矢量,
在更新步骤中,除了更新新的基准帧的帧编号之外还更新新的基准帧的语音特征矢量,以及
在计算步骤中,计算基准帧的语音特征矢量的第二输出概率。
全文摘要
一种本发明的实施例包括声音处理功能、语音区间检测功能、词典功能、对照功能、搜索对象选择功能、存储功能以及确定功能,并且包括以下处理基于束搜索选择搜索范围,设置并存储基准帧,存储某一转移路径的输出概率,确定是否存储了某一路径的输出概率,从而通过以下操作减少了输出概率的计算次数基于束搜索选择搜索范围,在从设置基准帧到更新基准帧的时间间隔中只计算一次某一转移路径的输出概率,存储所计算的值,并且当转移路径的输出概率存储在后续的帧中时,使用所存储的值作为输出概率的近似值。
文档编号G10L15/14GK101101751SQ20071012719
公开日2008年1月9日 申请日期2007年7月4日 优先权日2006年7月4日
发明者酒井优, 田中信一 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1