著录项信息
专利名称 | 语音识别系统中的逆向追踪矩阵存储方法 |
申请号 | CN00102405.1 | 申请日期 | 2000-02-23 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2000-08-30 | 公开/公告号 | CN1264890 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | 暂无 | IPC分类号 | 暂无查看分类表>
|
申请人 | 摩托罗拉公司 | 申请人地址 | 美国加利***
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 谷歌技术控股有限责任公司 | 当前权利人 | 谷歌技术控股有限责任公司 |
发明人 | 杰弗里·阿瑟·缪尼尔;丹尼尔·查尔斯·鲍伯特 |
代理机构 | 中国国际贸易促进委员会专利商标事务所 | 代理人 | 于静 |
摘要
一个装置(100)包括一个语音识别系统(204、206、207、208),它产生代表语言发音的信号,语言被分解成代表该语音的帧(Ft)。利用一对位算法把帧分配到状态(s1-s5)。利用状态转移类型把代表帧到状态分配的路径存储到存储器(110)中,这里状态转移类型标识到每个状态的状态转移。
技术领域
本申请涉及语音识别,更具体地说是涉及语音识别系统中存储逆 向跟踪网格信息的方法。
背景技术
在一个依赖说话者的语音识别系统中,使用者必须登录他们在使 用该系统时所希望得到的词汇词。一个词汇“词”可以是单个的被说 出的词或一个短语,而所选择的词汇词依赖于具体的应用。例如,在 便携式无线电话中语音识别的实现可能需要使用者提供经常被呼叫者 的名字和地址(例如“Fred办公室”),或在用户界面中通常可得到的 常用特性所用的命令(例如“蓄电池安时计”,“消息”,或“电话锁定”)。
在登录过程中,语音识别系统响应使用者的输入,对每个词汇词 提取出代表样板。在一些系统中,这种样板由一个含有一系列状态的 隐式马尔科夫模型(HMM)表示。每个状态表示一个语言发音 (utterance)的有限一段:这里使用“发音”表示一个“词汇词”,它 可以包含一个或多个词。HMM的每个状态的统计表示是使用由使用 者发音的具体词汇词的一个或多个登录语音样本计算出来的。这是通 过帧的状态赋值(frame-to-state assignment)来完成的。
这种状态赋值用于训练和语音识别两种操作方式。具体地说,被 赋值的状态用于在训练方式中建立模型,该模型在语音识别方式过程 中作为比较基准。在语音识别操作方式中,对输入发音的赋值能用于 产生得分(score)信息和把输入的发音与所存储参考模型进行比较。
对位算法(alignment algorithm),例如Viterbi算法,用于发音 的帧到状态对位。这种对位算法提供了语言发音对模型的最好匹配, 用于把词汇词发音的每一帧赋予该模型的单个状态。利用这一赋值能 改善对每个状态的统计表示。
在帧对位过程中,通过找出发音帧与模型中状态的最佳匹配来定 义一个“路径”。为做到这一点,在每一帧对HMM的每个状态进行估 值。如果被考查的语音已达到帧t,则这一估值过程的一部分确定哪些 状态导致的给定状态在帧t-1处是最佳的状态。对于被完整连接的 HMM,任何状态都能转移到其他状态。所以,N个路径进入每个状态 是可能的,这里N是状态数。
利用这种技术,在对位算法过程中需要跟踪哪些语音帧被映射到 模型中的每个状态。如果使用传统的技术,这需要大的存储器。现有 技术方法使用一个阵列,称作逆向追踪(traceback)矩阵,用于存储 每个帧的信息,详细说明到达每个状态的最好路径。这通常需要一个 大小为N×T的阵列,这里N是模型中的状态数,T是在一个发音中 的最大帧数。由于N等于20和T等于300是常有的事,这种实现需 要6000字存储器。
为了能在便携式装置上实现依赖于说话者的训练算法,例如在无 线通信装置上,在那里只有很小的随机存储存储器(RAM)能被利用, 因此需要有一种用于存储逆向追踪信息的技术使所需存储器最小。于 是,需要一种方法,它能在较小的存储器中存储为训练一个HMM所 需的逆向追踪信息。
发明内容
根据本发明,提供了一种操作语音识别装置的方法,包括下述步 骤:接收一个语言发音;产生一个代表该语言发音的信号;把代表该 发音的信号分成帧;用一种对位算法把帧分配成状态;以及通过对每 个状态把一状态转移类型存储到存储器中来存储代表帧到状态分配的 路径,其中状态转移类型标识到每个状态的状态转移。
附图说明
图1是以方框图形式说明一无线电话的电路图。
图2是以方框图形式说明根据图1的无线电话中的,语音识别电 路的输入电路。
图3说明一个左到右隐式马尔科夫模型,它带有两个被分成帧的 相关语言发音。
图4说明逆向追踪网格,它伴有左到右模型中的所有可能的状态 转移路径,但不允许跳跃转移。
图5是使用状态转移类型记录的逆向追踪路径的状态转移路径的 存储器阵列。
图6是说明在对位算法中信息存储的流程图。
图7是说明对最好路径产生帧到状态对位操作的流程图。
图8说明对应于图4的左到右无跳跃HMM。
图9是能用于图6流程图的部分流程图,以包含一个状态跳跃。
图10是能用于图7流程图的部分流程图,以包含一个状态跳跃。
具体实施方式
这里公开一种用于语音识别的逆向追踪矩阵更新和存储的方法。 在一依赖于说话者的登录过程中,说话者提供被登录语言发音的一次 或多次重复。使用帧对位过程使这些发音的每一个匹配于一个现有的 隐式马尔科夫模型。在完成这一过程中,记录发音中的短时分析帧和 模型的各状态之间对应关系的方法的有效性受到为每个状态和帧存储 转移类型(transition type)的影响。
图1中公开的装置100中能有利地利用本发明。为了说明的目的, 这里把装置100描述为一个便携式无线电话,但它可以是一个计算机、 一个个人数字助理或任何其他能有利地利用语音识别的装置,特别是 能利用高效存储语音识别系统优点的装置。图示的无线电话包括发射 机102和接收机104,它们连于天线106。发射机102和接收机104连 于一个呼叫处理器108,它完成呼叫处理功能。可以用数字信号处理 器(DSP)、微处理器、微控制器、可编程逻辑单元、上述两种或多种 的组合、或任何其他适当的数字电路,来实现呼叫处理器108。
呼叫处理器108与存储器110相连。存储器110包含RAM、电可 擦可编程只读存储器(EEPROM)、只读存储器(ROM)、闪烁ROM 或类似存储器,或者这些存储器类型的两种或多种的组合。存储器110 支持呼叫处理器108的操作,包括语音识别操作,而且必须包括一个 电子可变存储器以支持状态转移路径存储器。下文中将对此作更详细 描述。可提供ROM用于存储该装置的操作程序。
音频电路112向呼叫处理器108提供来自送话器114的数字化信 号。音频电路112驱动扬声器116响应来自呼叫处理器108的数字信 号。
呼叫处理器108与一显示处理器120相连。显示处理器是可选的, 如果希望对装置100有附加的处理器支持的话。具体地说,显示处理 器120向显示器126提供显示控制信号和接收来自各键124的输入。 显示处理器120能由微处理器、微控制器、数字信号处理器、可编程 逻辑单元,它们的组合或类似装置来实现。存储器122与显示处理器 相连以支持其中的数字逻辑。存储器122能用RAM、EEPROM、ROM、 闪烁ROM、或其类似物、或两种或多种这些类型存储器的组合来实 现。
参考图2,由送话器114接收的音频信号在音频电路112的模-数 转换器202中被转换成数字信号。本领域技术人员将会理解,音频电 路112提供额外的信号处理,如滤波,为了简练,这里将不予描述。 呼叫处理器108在送话器114输出模拟信号的被处理的数字信号表示 上完成特征提取204,并产生一组代表使用者发音的特征矢量。对每 个短时分析窗产生一个特征矢量。短时分析窗是一帧,在这里所举的 实施例中是20ms。这样,每帧有一个特征矢量。处理器108把这些特 征用于语音识别206或训练207。
在训练过程中,发音的特征矢量被用于建立HMM形式的样板, 它们存储在存储器208中。在语音识别过程中,代表输入发音的特征 矢量与在存储器208中存储的词汇词样板作比较,以确定使用者说了 什么。系统可以输出一个最好匹配、一组最好匹配、或可选地无匹配 输出。存储器208最好是存储器110(图1)的非易失存储器部分,例 如可以是EEPROM或闪烁ROM。如这里所用的那样,“词”可以是 不只一个词,例如“John Doe”,或单个词,如“call(呼叫)”。
如前文概述的那样,存储器208中存储的词汇词是在训练方式下 创建的。例如,所存储的词汇词在初始时每个是从两个训练信号,即 发音U1和U2(图3)中提取出来的,由各自的特征矢量组成,发音 U1代表在训练过程中说话者第一次说出一个特定词时所存储的信号。 发音U2代表在训练过程中说话者第二次说出一个特定词时的信号。 在所举出的实例中,发音U1的长度不同于发音U2。本领域技术人中 将会理解,可以使用多些或少些发音。
因为帧有相同长度,而发音UI和U2有不同长度,当每个发音由 帧代表时,有不同长度的发音U1和U2将相应地有不同的帧数。多个 帧Ft构成一个发音。虽然通常发音将被标识为Ft,这里t是从1到T, 但在图3的表示符号中发音的帧被标识为Fab,这里a是发音号,b 是帧号。具体地说,发音U1有10帧,即F11,F12,F13,F14,F15, F16,F17,F18,F19和F110。发音2有12帧,即F21,F22,F23, F24,F25,F26,F27,F28,F29,F210,F211和F212。作为举例, 每帧含有代表20毫秒声音的特征。
可以以任何方便的方式产生特征矢量。例如,一个特征矢量可以 含有由A/D转换器202(图2)输出产生的倒谱(cepstral)和δ-倒 谱(delta-cepstral)特征。
参考图3,初始时由发音U1的帧F11和F12以及发音U2的帧F21 和F22构成状态1(s1)。这些帧值用于初始时计算构成状态1统计表 示的某些或全部参数。在最佳实施例中,统计表示是来自发音U1和 发音U2的帧的均值。这样,状态1初始时被设为发音U1的帧F11和 F12及发音U12的帧F21和F22的均值。本领域技术人员将理解,在 状态中也可包括一个方差。也生成其他状态的统计表示。第二状态s2 是发音U1的帧F13和F14及发音U2的帧F23和F24之值的均值。 类似地,状态s3是发音U1的帧F15和F16及发音U2的帧F25和F26 之值的均值。状态s4是发音U1的帧F17和F18及发音U2的帧F27、 F28和F29的均值。
如上文中所举实例那样,在发音U2中的额外帧被分配给最后两个 状态。如果第二发音只有一个额外帧,则只有最后一个状态得到一个 额外帧。如果第二发音有三个额外帧,则最后三个状态的每一个被分 配一个额外帧。类似地,如果第一发音有额外帧,例如四个额外帧, 则最后四个状态将每个有一个额外帧。如果任一发音比另一发音多五 个帧,则每个状态从有较多帧的发音接收三帧,而从有较少帧的发音 接收二帧。
上文中提供的帧分配是作为一个例子说明初始时可以怎样把帧分 配给状态以及怎样能构成状态的统计表示。然而,本领域技术人员将 会理解,对于初始状态分配和状态的统计表示存在大量的其他方法, 所以本发明不限制于上述环境。
在本例中,使用了五个状态,而不管发音的长度。本领域技术人 员将会理解,可以使用任何数量的状态,预计对每个发音将利用十个 以上状态。此外,状态数可以被固定,不管发音的长度如何,或者状 态数依赖于发音的长度。在下文的讨论中所针对的系统对任何发音都 使用五个状态,而不管其长度。
一旦由发音U1和U2的帧统计创建了状态s1至s5,便创建了一 个隐式马尔科夫模型(HMM)。呼叫处理器108利用一种对位算法使 每个状态通过所创建的HMM状态。然后这种对位能被用于重新估计 状态的统计表示。具体地说,运行对位算法,以根据所考虑的每个路 径的得分,确定从任何一点返回时的最好路径,这将针对图4作一般 性描述。如这里所用的那样,一个点是指网格400中的一个帧和状态 的位置。路径穿过这些点延伸。
本领域技术人员将会理解,网格400(图4)显示对于8个帧从状 态1到状态5的所有返回路径。一个附加限制是各帧必须分配着与前 一帧相同的状态或者紧跟前一帧的状态之后的那个状态(不能有任何 状态被跳过)。这与语音识别系统中帧到状态的分配相一致,而且显著 地减少了为记录数据路径所需的逆向追踪信息量。对模型内从状态到 状态的可能路径所作的这种限制有助于更好地模拟语言发音中声音事 件的顺序、有序特征。通常,HMM状态转移在性质上被限制于从左 到右,如图4所示,这里进入一特定状态n的可允许路径或者来自本 状态(从sn到sn的“自循环”)或者来自先前的状态(从s(n-1)到sn 的“单步转移”)。图8说明从左到右无跳跃HMM。已经证明,这种 HMM体系结构对于许多语音识别任务都是有效的。本发明使用这种 对受限状态转移的知识,并在逆向追踪矩阵方面进一步改进,从而显 著减小了为记录逆向追踪路径所需存储器的大小。
在图4的网格400中,一种状态转移类型和状态间每个允许路径 相关。状态转移类型1被分配给自循环,而状态转移类型0被分配给 状态变化。在这一模型中能表示出跳跃状态,但将需要二位或更多位 的状态转移类型指示符,因为单个二进制位不能区分三个或更多转移 类型。不论是在哪种情况中,由于使用n-位符号阵列记录由对位算 法(例如Viterbi对位算法)计算出的路径信息,使用状态转移类型相 当大地减小了为存储路径所需存储器大小。本领域技术人员将会理解, n是一个小的数,在1或2个二进位的量级,而在传统的逆向追踪矩 阵存储方案中使用8位或16位来标识前一个状态。
作为举例,用于帧5(图4中水平轴上的5号)的Viterbi算法确 定从帧5中每个状态(状态1(s1)、状态2(s2)、状态3(s3)、状态4(s4) 及状态5(s5))返回的最好路径(即产生最好得分的从每个状态的返回 路径)。具体地说,该算法考虑从点A的返回路径的得分或概率,它 代表对全部头五个帧该路径位于状态1的概率。这是必定的,因为条 件是当前帧必须与前一帧有同一状态或者是高于前一帧状态的一个状 态。
该算法对于点B产生一个从点B穿过点G的返回路径相关的得分 以及从点B穿过点H的返回路径的得分。对于点C,Viterbi算法产 生伴随从点C穿过点H的路径得分及伴随从点C穿过点I的路径得分。 对于点D,Viterbi算法考虑伴随从点D穿过点I的返回路径得分及伴 随从点D穿过点J的返回路径得分。对于点E,Viterbi算法产生伴随 从点E穿过点J的返回路径得分及伴随从点E穿过点K的返回路径得 分。在计算这些得分之后,对每个状态产生最高得分的路径转移类型 被保留下来,作为到达这五帧中每个状态的路径。
虽然本发明可应用于允许最大2n个到任何状态的转移的左-右模 型,但在所示实施例中只有两个转移类型是可允许的:自循环和单步 转移。这里逆向追踪矩阵存储器是二进制标志阵列500(图5),它记 录下采用了两个可能转移的哪一个。这两个可能路径是代表自循环的 1和代表从较低状态到较高状态一步的0。相邻帧不能跳过一状态和要 求时间上较迟的帧所处状态不能低于先前帧的状态这两个条件限制了 可能路径的数目,对于这种情况这一实施例特别有利。
图5的存储器阵列500代表对于有五个可能状态的八个帧穿过矩 阵的路径。X位置代表不必顾及的情况。对于来自帧的8的返回路径, 状态s5即在右上角的0指示曾穿过帧7,状态s4,到达状态5的幸存 (survivor)路径。在状态4下帧7的0指示该路径穿过帧6,状态s3。 在帧6,状态3,中的0指示穿过帧5,状态s2,的返回路径。在帧5, 状态s2,中的1指示穿过帧4,状态s2,的路径。在帧4,状态s2中 的0指示穿过帧3,状态s1,的路径。对于头两个帧,路径还穿过状 态1。用这同一种方法,对帧8,状态s4,s3,s2和s1的每一个的幸 存路径能类似地逆向追踪。这样,可以看到,在存储器110的RAM 中存储的二进制数能被用于代表对位算法的幸存路径。
现在参考图6描述存储器110中存储的处理器108的操作。初始 时,如框602中所示,第一帧的各状态被设定。第一状态将被设为1, 对帧1的状态2至5是X,这是不必顾及,因为它们可作为不可能状 态被忽略。然后帧计数器被置为2,状态计数器被置为1,如框604中 所示。
对于当前帧和状态(它是图4中网格400上的一点),处理器108 计算一自循环的得分,该自循环是从当前帧中的状态sN穿过先前帧中 的状态sN的返回路径,如框606中所示。还对于一状态转移导出其得 分,该状态转移是从当前帧中的状态sN穿过先前帧中状态sN-1的返回 路径,如框608中所示。
在步骤610,处理器108确定自循环或状态转移有较好的得分。 如果自循环有较好得分,则对当前状态和帧(即当前帧的状态sN)把 状态转移类型1存储在存储器110的RAM中,如框612中所示。否 则,把0存于存储器110的RAM中用作一个状态转移,如框614中 所示。
状态计数器被增1,如框616所示。在决策框618中,处理器确 定是否已对当前帧中的各个状态计算了转移类型。如果最后一个状态 尚未被计算,则处理器返回到步骤608,去计算下一状态的转移类型, 这一计算是在框606处开始的。
如果在决策框616确定,当前帧的最后一个状态已被考虑,则如 框620中所示,处理器110对帧计数器增1并把状态计数器复位为1。 然后处理器确定刚考虑的帧是否是最后帧。如果不是,则处理器返回 到步骤606,对下一帧开始状态分配过程。
如果在框622中确定,刚才考虑的帧是一次发音的最后一帧,则 处理器110必须把具有最好得分的路径转换为一个状态分配模型,如 果一个模型是当前被训练的模型的话。在识别过程中,只有得分将被 使用,到HMM的路径转换开始时是从最后一帧的最后一个状态往回 进行的,对该状态输出转移类型,如框702所示。在决策框704中处 理器110确定该转移类型是否为自循环。如果它是一个自循环,如框 708所示,则把前一个帧状态置成当前帧的同一状态。否则,如框706 所示,把先前帧状态置成下一个较低状态。
在步骤709,状态保持(dwell)时间,或者说持续时间计数器可 以被增1,如果希望保持跟踪这些保持时间的话。如果提供了这个可 选的计数器,则在步骤706,当第一次被输入一个状态时把状态保持 时间计数器初始化为1,并对每个状态提供一个计数器。
在步骤710,处理器108对帧计数器减1。在步骤704、706和708 中标识出的先前帧状态被存储,以用于先前帧,而与那个点、帧和状 态相关联的状态转移类型被输出,如框712所示。如果帧状态输出不 是第一帧,则处理器返回到决策框704。如果在决策框714中确定第 一帧状态已被存储,则如框716中所示,状态赋值模型已经完成。状 态赋值模型包含把帧特征向适当状态的分配。这一信息可被存储供训 练或用于更新一个被存储的模型。
现在将针对一个二维阵列L描述一个伪代码实现,并用状态s标 志第一维,用语音帧F标志第二维,这里阵列的大小是N×T。我们 还将定义符号1代表同状态转移(自循环),符号0代表从前一状态的 转移。由于只有两个可能的符号,可以使用单个二进位存储它们。当 进行Viterbi对位时,可用如下算法记录状态转移:
对所有语言帧(t=1到T)
对HMM的所有状态(s=1到N)
如果到状态s的最好路径来自状态s,则
L[s][t]=1
否则(最好路径必定来自前一状态)
L[s][t]=0
条件语句结束
对所有状态结束
对所有语言帧结束
在训练过程中,通常对位的目标是找出该发音的每个帧的状态赋 值。如果我们希望把状态赋值记录到一个阵列A[t]中,那么这一赋值 能被容易地从转移矩阵L按如下作法恢复出来:
把状态s初始化为最后状态N
对所有语言帧,从终点开始(t=T到1)
A[t]=s
如果L[s][t]=0,则
s=s-1
条件语句结束
对所有语言帧结束
如前面提到的那样,上述算法在不允许状态跳跃的简化情况中工 作得最好。如果允许状态跳跃,则需要对阵列L增加另一符号,增加 这一阵列的存储需求和类型得分计算606、608的次数。
在对位过程中,追踪其中某特定状态已被占有的帧的个数也是有 用的。这一信息可被用于分配状态持续时间罚值(penalty),如在题 为“有选择地把一罚值赋予语音识别系统所伴随概率的方法”的未决 专利申请中公开的那样,该专利申请与本申请在同一时期受理,报告 号为Cs10104,以Daniel Poppert的名字受理,在这里把它的公开引 入作为参考。这一保持时间信息在阵列L中被完全地表示。在时间t 其状态s已被占有的帧的个数称作D[s][t],可按下述方式找到:
把D[s][t]初始化为1
当(L[s][t-D[s][t]]=1)时
D[s][t]增1
“当…时”语句结束
本公开的识别系统使用简单的单个位标志阵列减少了逆向追踪信 息的存储器足迹。如图4所示,它主要是想用于不允许状态跳跃的HMM 简单情况,尽管它也能以增大存储器为代价扩展到更一般的情况。
用图9替换图6中的框608至614,则图6的流程图能被修改成 容纳一个状态跳跃。具体地说,在框609中计算一跳跃得分Pskip。如 果在框610中确定一自循环有最好得分,则如步骤614中所示,一个 11(两个二进制位)被存储在RAM208中。在框610中的“否”决定 之后,处理器108确定是否PD比Pskip更好。如果确定一个单步伴随有 最好得分,则如步骤614中所示,一个00(两个二进制位)被存储在 RAM208中。如果确定该状态跳跃有最好得分,则如步骤613中所示, 一个10被存储在RAM中。如图10所示,通过增加705和707,并 修改步骤704,能使图7修改成容纳一个跳跃。具体地说,步骤704 寻找一个转移类型11,它是一个自循环。如果该状态类型不是一个自 循环,则处理器检查看它是否为00,这里00指示步骤705中一个单 状态步。如果不是,则如步骤707中所示,处理器108把前一帧标识 为低于当前帧的两个状态。否则,处理器把它作为单步对待。
本领域技术人员将会理解,通过类似的过程扩展,能容纳更多的 状态跳跃。对每个状态/帧所存储的二进制位的实际个数将依赖于所允 许的跳跃个数。
尽管在上述描述和附图中已描述和图示了本发明,但应该理解, 这一描述只是一种举例,本领域技术人员能做出大量的改变和修改而 不离开本发明的精神和范围。尽管本发明在便携无线装置(如蜂窝无 线电话)中找到了具体应用,但本发明能被应用于利用语音识别的任 何装置,包括寻呼机、电子组织器(electronic organizer)、计算机、 以及电话装备。本发明只应受下列权利要求书的限制。
法律信息
- 2020-03-17
专利权有效期届满
IPC(主分类): G10L 15/14
专利号: ZL 00102405.1
申请日: 2000.02.23
授权公告日: 2004.05.12
- 2016-05-18
专利权的转移
登记生效日: 2016.04.27
专利权人由摩托罗拉移动有限责任公司变更为谷歌技术控股有限责任公司
地址由美国伊利诺斯变更为美国加利福尼亚
- 2016-05-18
专利权人的姓名或者名称、地址的变更
专利权人由摩托罗拉移动公司变更为摩托罗拉移动有限责任公司
地址由美国伊利诺斯变更为美国伊利诺斯
- 2011-03-02
专利权的转移
登记生效日: 2011.01.12
专利权人由摩托罗拉公司变更为摩托罗拉移动公司
地址由美国伊利诺斯变更为美国伊利诺斯
- 2004-05-12
- 2000-08-30
- 2000-07-19
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |