CN1524259A - 语音识别***中跟踪矩阵存储器的方法 - Google Patents
语音识别***中跟踪矩阵存储器的方法 Download PDFInfo
- Publication number
- CN1524259A CN1524259A CNA01808981XA CN01808981A CN1524259A CN 1524259 A CN1524259 A CN 1524259A CN A01808981X A CNA01808981X A CN A01808981XA CN 01808981 A CN01808981 A CN 01808981A CN 1524259 A CN1524259 A CN 1524259A
- Authority
- CN
- China
- Prior art keywords
- state
- row
- time delay
- frame
- path
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 118
- 238000003860 storage Methods 0.000 title claims description 19
- 239000011159 matrix material Substances 0.000 title description 8
- 230000007704 transition Effects 0.000 claims abstract description 69
- 230000015654 memory Effects 0.000 claims abstract description 53
- 230000004044 response Effects 0.000 claims abstract description 36
- 238000012546 transfer Methods 0.000 claims description 19
- 238000004422 calculation algorithm Methods 0.000 abstract description 18
- 230000008569 process Effects 0.000 description 78
- 230000000875 corresponding effect Effects 0.000 description 51
- 238000010586 diagram Methods 0.000 description 21
- 238000012545 processing Methods 0.000 description 10
- 238000012549 training Methods 0.000 description 9
- 238000009826 distribution Methods 0.000 description 5
- 230000001934 delay Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
- Monitoring And Testing Of Exchanges (AREA)
Abstract
包括语音识别***(204,206,207,208)的设备(100)产生表示语音表达的信号。所述表达被划分为表示所述表达的帧(Ft)。使用对准算法将帧分配给状态(S1-S5)。使用识别对每一个状态的状态转移的状态转移信息来将代表帧到状态分配的路径存储在存储器(110)中。通过产生具有多行和一列或多列的跟踪阵列来存储和更新用于语音识别***的格子跟踪信息,多行中的每一行对应于跟踪路径结束的多个状态中的一个,并且每一列包含用于在跟踪路径中的一个或多个时延计数。进入多个状态中的一个给定的状态的最佳的状态转移路径被确定,并且响应于所述已确定的最佳的状态转移路径,更新已产生的跟踪阵列。
Description
发明领域
本发明涉及语音识别,尤其是涉及存储用于语音识别***的格子跟踪信息的方法。
发明背景
在依赖于讲话者的语音识别***中,当使用该***时,用户必须注册他们想要的词汇表字(vocabulary word)。词汇表的“字”可以是说出的单个字或者短语,且词汇表的字的选择依赖于特定的应用。例如,用于便携式无线电话的语音识别装置可能要求用户提供经常呼叫的人们的姓名和位置(例如,“弗瑞德的办公室”),或者通常使用的特征的指令提供在用户的接口(例如,“蓄电池安时计”,“消息”,或“电话锁”)。
在注册程序过程中,语音识别***响应用户的输入以导出用于每一个词汇表字的代表性模板。在一些***中,此模板由包括一系列状态的隐式马尔科夫模式(HMM)表示。每一个状态代表语音表达(speechutterance)的有限的部分;在此使用的表达称为“词汇表字”,其可包括一个或多个字。使用由用户说出的特定的词汇表字的一个或多个注册语音样本字来计算每一个HMM的状态的统计表示。这通过帧对状态分配来完成。
这种状态分配被用于训练和工作的语音识别模式。具体地说,已分配的状态被用来创建在训练模式中的模型,其被用来作为在语音识别模式期间的比较参考。可使用在工作的语音识别模式中的输入表达的分配来产生分数信息,并且将输入表达与已存储的参考模型进行比较。
诸如维特比算法的对准算法(alignment algorithm)被用于表达的帧对状态分配。提供了将语音表达与模型进行最好匹配的对准算法被用来将词汇表字表达的每一帧分配给模型的各个状态。使用这种分配,可以精炼用于每一个状态的统计表式。
在帧对准期间,通过找出表达帧与在模型中的状态的最佳匹配来定义“路径”。为了进行这一步,需要对在每一帧中的HMM的每一状态进行评估。假设观察到的语音总计为帧t,其中的进入给定的状态的状态在帧t-1最好,确定了该估计的一部分。对于完全连接的HMM,任意的一个状态可以转变为任意的其它状态。因此,可能有到达每一个状态的N个路径,其中N为状态数。
使用这种技术,在对准算法期间,需要跟踪哪一个语音帧被映射到在模型中的每一个状态。使用常规的技术,这要求很大的存储器。现有技术的方法使用称为跟踪矩阵的阵列来存储每一帧的信息,详细地给出到每一个状态的最好路径。通常,这需要N×T的阵列,其中N为模型中的状态数,T为表达中的最大帧数。由于通常N等于20,T等于30,这样的表示需要6000字的存储量。
为了在便携式设备上完成依赖于讲话者的训练算法,在提供非常小的随机存储器(RAM)的无线通信设备中,用于存储格子跟踪信息的技术需要使所要求的存储空间最小。因此,需要一种方法,用于存储需要用来训练HMM的格子跟踪信息,其减小所要求的存储空间量。
附图说明
我们深信具有新颖性的本发明的特征被具体地阐述于所附权利要求中。通过参考下面的说明书,结合所附附图可以更好地理解本发明及其进一步的目的和优点,其中,相同的附图标记代表相同的元件,其中:
图1为以方框图形式表示的根据本发明的存储格子跟踪信息的无线电话的电路示意图;
图2为以方框图形式表示的说明用于根据图1中的无线电话中的语音识别电路的输入电路的电路示意图;
图3为说明具有被分段为帧的两个相关的语音表达的左-右隐式马尔科夫模型(left-right Hidden Markov Model);
图4为一种模型的状态转移图,其中,允许有自身环、单个步骤和单个跳变转移;
图5为与在图4的状态转移图中的状态之间的每一个允许的路径相关的跟踪格子;
图6为根据本发明的存储状态时延计数(state dwell counts)的跟踪阵列;
图7为根据本发明的阵列更新过程的示意框图,所述阵列更新过程用于使用存储位置来更新存储在时延计数的跟踪阵列中的格子跟踪信息;
图8为根据本发明的存储状态时延计数的各行的存储阵列的示意框图;
图9和图10为对应于根据本发明的用于使用存储位置来更新存储在时延计数的跟踪阵列中的跟踪信息的方法的流程图;
图11为说明用于产生线性阵列的过程的流程图,该过程对应于本发明,被用来根据图9和10的阵列更新过程的结果来存储为每一个帧的帧分配;
图12为使用图11的产生过程生成的线性阵列的示意框图;
图13为根据本发明的另一个实施例的使用数字编码码元来存储状态时延计数的阵列的示意框图;
图14为根据本发明的用于使用数字编码来更新跟踪信息的阵列更新过程的示意框图;
图15为根据本发明的使用数字编码来更新存储作为时延计数的跟踪阵列的格子跟踪信息的方法的流程图;
图16为根据本发明的用于产生线性阵列的过程的流程图,其被用于根据图15的阵列更新过程的结果来存储用于每一个帧的帧分配。
具体实施方式
本文公开了一种用于语音识别的跟踪矩阵更新和存储方法。在依赖于讲话者的注册过程中,用户提供一个或多个重复的语音表达以被注册。使用一帧分配过程来将每一个此类表达与现有的隐式马尔科夫模型进行匹配。通过产生具有多行和一列或者多列的跟踪帧列来存储和更新用于语音识别***的格子跟踪信息,多行中的每一行对应于跟踪路径终止的多个状态中的一个,并且每一列包含一个或多个用于在跟踪路径中的状态的时延计数。进入多个状态中的给定的状态的最佳的状态转移路径被确定,并且响应所述已确定的最佳的状态转移路径,更新所述已产生的跟踪阵列。当执行该过程时,通过存储用于每一个状态的状态时延计数集来影响记录在表达的短时间分析帧与所述模型的状态之间的相关性(association)的有效的方法。
本发明可以有利地采用的设备100示于图1中。为了说明,在此将设备100描述为便携式无线电话,但是其可以是计算机、个人数字助理、或者可以有利地采用语音识别的任意其它的设备,特别是可以利用有效的存储语音识别***的设备。所示的无线电话包括发射器102和连接到天线106的接收器104。发射器102和接收器104连接到执行呼叫处理功能的呼叫处理器108。可以使用数字信号处理器(DSP)、微处理器、微控制器、可编程逻辑电路、两个或多个上述器件的组合或者任何其它合适的数字电路来实现呼叫处理器108。
呼叫处理器108连接到存储器110。存储器110包括RAM、电可擦可编程只读存储器(EEPROM)、只读存储器(ROM)、闪烁ROM等、或者两个或多个这些存储器类型的组合。存储器110支持呼叫处理器108的工作,改工作包括语音识别工作,并且必须包括电可改变的存储器以支持在下文详细地介绍的状态转移路径存储器。可以提供ROM以存储运行程序的设备。
音频电路112将数字信号从话筒114提供给呼叫处理器108。音频电路112驱动扬声器116响应来自呼叫处理器108的数字信号。
呼叫处理器108连接到显示处理器120。如果另外的处理器支持是设备100所希望的,则显示处理器是可选的。具体而言,显示处理器120提供显示控制信号到显示器126,并从键盘124接收输入。可以使用微处理器、微控制器、数字信号处理器、可编程逻辑电路及其组合等来实现显示处理器120。存储器122连接到现实处理器以支持数字逻辑。可以使用RAM、EEPROM、ROM、闪烁ROM等等,或者两个或多个这些存储器类型的组合来实现存储器122。
参考图2,在音频电路112的模数转换器202中将话筒114接收到音频信号转换为数字信号。本领域的普通技术人员将认识到,音频电路112提供另外的信号处理,诸如在此为了简短而没有介绍的滤波处理。呼叫处理器108在由话筒114输出的模拟信号的已处理的数字信号表示上执行特征抽取204,并且产生代表用户表达的特征向量集。为每一个短时间分析窗口产生一个特征向量。短时间分析窗口为一帧,其中在此示例中为20ms。因此,每一帧有一个特征向量。处理器108使用用于语音识别206或训练207的特征。
在训练中,使用表达的特征向量来已被存储在存储器208中的和HMM的形式产生模板。在语音识别中,将表示输入表达的特征向量于存储在存储器208中的词汇表字的模板进行表较以确定用户说的是什么。***可输出最好的匹配,最好的匹配集,或者可选地,没有匹配。存储器208优选地可以是存储器110的非易失性存储部分(图1),并且可以是,例如EEPROM或闪烁ROM。正如在此使用的一样,“字”可以是不只一个字,诸如“约翰多尔”,或者是诸如“呼叫”单字。
如上面的简短介绍一样,在训练模式中产生在存储器208中的已存储的词汇表字。例如,已存储的词汇表字被从两个训练信号即表达U1和U2(图3)中初始导出,分别由特征向量组成。表达U1代表讲话者在训练期间说的特定的字的第一时间时存储的信号。表达U2代表讲话者在训练期间说的特定的字的第二时间时存储的信号。在说明的例子中,表达U1和表达U2的长度不同。本领域普通技术人员将认识到,可以使用更多的或更少的表达。
由于帧具有相同的长度,而表达U1和U2具有不同的长度,当用帧表示每一表达时,具有不同长度的表达U1和U2将同样地具有不同的帧数。多个帧Ft组成了一表达。一般而言,尽管将表达标识为Ft,其中t为从1到T,在图3的符号中,表达帧由符号Fab标识,其中a为表达号,而b为帧号。具体而言,表达U1具有10帧:即F11,F12,F13,F14,F15,F16,F17,F18,F19,和F110。表达U2具有12帧,即:F21,F22,F23,F24,F25,F26,F27,F28,F29,F210,F211,和F212。在示例中,每一帧包括代表20毫秒声音的特征。
可以使用任何常规的方式产生特征向量。例如,特征向量可以包括从A/D转换器202(图2)的输出产生的导频(eepstral)和Δ-导频特征。
参见图3,开始时,从表达U1的帧F11和F12和表达U2的F21和F22形成状态1(S1)。这些帧值被用来初始地计算包括状态1的统计表示的一些或所有的参数。在优选实施例中,统计表示为表达U1和表达U2的帧的均值。因此,开始时将状态1设为表达U1的帧F11和F12和表达U2的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中的外面的帧被分配给最后的两个状态。如果第二表达仅仅具有一个外面的帧,只有最后的状态获得外面的帧。如果第二表达具有三个外面的帧,最后三个状态中的每一个被分配一个外面的帧。类似地,如果第一表达具有外面的帧,如四个外面的帧,最后四个状态中的每一个将具有一外面的帧。如果一个表达具有的帧多于其它表达的帧达5个帧,则每一个状态从具有更多帧的表达接收三个帧,并从具有较少帧的表达接收两个帧。
上述的帧分配被提供来作为一个例子,说明可以如何初始化地来将帧分配给状态,和如何形成状态的统计表示。然而,本领域普通技术人员将认识到,现有的其它多种方法可以用来初始地分配状态,并且统计地表示状态,因此,本发明不限于上述情形。
在例子中,使用5个状态而不管表达的长度。本领域普通技术人员将认识到,可以使用任意数目的状态,并且可以预料到,可以为每一个表达采用多于10个的状态。此外,状态数可以是固定的而不需要考虑表达的长度,或者状态数依赖于表达的长度。下面的讨论将针对任意的表达使用5个状态的***进行介绍,而不考虑长度。
一旦从表达U1和U2的帧的统计生成状态S1至S5,就生成了隐式马尔科夫模型(HMM)。呼叫处理器108采用对准算法来通过生成的HMM的状态运行每一个表达。然后,可以使用对准来重新估计状态的统计表示。具体而言,对准算法运行以根据每一个考虑的路径的分数来确定从任何的点的最佳的路径反馈。根据本发明的用于存储和更新此信息的方法通常称为格子跟踪信息,将参考图6和7对其进行介绍。
图4为一种模型的状态转移框图,其中,允许有自身环、单步、和单跳转移。尽管在图4的状态转移框图中仅示出状态1-6,应当理解,可以包括任意数目的状态,将状态数限制为6个状态仅仅是为了简化介绍。
为了使模型序列化、在语音表达的声音事件中的规则特征更好,通常限制在模型中的从状态到状态或者状态转移的可能路径。例如,在一种最普通的隐式马尔科夫模型结构和被证明对于多种语音识别任务是有效的结构中,将允许的状态转移限制为自身环、单步、或单跳。通常,实质上将HMM状态转移限制为左到右,如图4所示,其中进入特地状态Sn的允许的转移路径来自该状态Sn,或者来自前两个状态S(n-1)或S(n-2)中的一个。来自状态Sn进入到状态Sn的状态转移路径被称为自身环,通常表示为ann,来自前一个状态S(n-1)的进入特定状态Sn的状态转移路径被称为单步,通常表示为a(n-1)n,来自前二个状态S(n-2)的进入特定状态Sn的状态转移路径被称为单跳,通常表示为a(n-1)n。
具体而言,如图4所示,例如,进入第五状态300的允许的状态转移路径或者来自自身环a55,其中前一帧状态与当前帧状态相同,或者来自单步转移a45,其中前一状态为第四状态302,或者来自单跳转移a35,其中前一帧状态为第三状态304。类似地,进入第四状态302的允许的状态转移路径或者来自本身环a44,其中前一帧状态与当前帧状态相同,或者来自单步转移a34,其中前一帧状态为第三状态304,或者来自单跳转移a24,其中前一帧状态为第二状态306。
图5为与在图4的状态转移框图中的状态之间每一个允许的路径相关的跟踪格子。如图5所示,格子310中的每一点308对应于格子31中的帧和状态位置。路径延伸通过该点,状态之间的每一个允许的路径为三种状态转移类型即自身环、单步或者单跳状态转移中的一个。例如,在时间t=5处进入如图4所示的第五状态300的三个允许的状态转移路径a55,a44和a55中的每一个由进入格子310中的点A的路径指定。进入点A的自身环状态转移路径a55由源于点B的路径312指定,点B位于在时间t=4时如点A即纵轴上的状态5一样的相同的状态。进入点A的单步状态转移路径a45由源于点C的路径314指定,点C位于在时间t=4时点A的状态前的状态即纵轴上的状态4。最后,进入点A的单跳状态转移路径a35由源于点D的路径316指定,点D位于在时间t=4时点A的状态前两个状态即纵轴上的状态3。
从图4和5可看出,在任意给定的状态之前仅有三个状态。尽管对允许的转移的此类限制固存于此类HMM结构中,传统的跟踪矩阵存储技术没有使用这种性质。本发明使用这种限制状态转移的知识,并且进一步提供对跟踪矩阵的改进,其中显著地减小了需要记录跟踪路径的存储量。
具体而言,根据本发明,使用状态时延计数的阵列来维持跟踪矩阵,在所述状态时延计数的阵列中记录经过模型的路径。给定当前状态,向后通过格子的路径被记录作为在该状态所用的帧数(即用于该状态的时延计数)和在每一前面状态使用的帧数。根据本发明,用于存储状态时延计数的跟踪存储阵列示于图6中,其中状态数N等于5(例如)。本发明的跟踪阵列可以显示为三角形,其中每一行对应于跟踪路径终止的5个状态1-5中的一个,在每一列中,为跟踪路径中的每一状态记录时延计数。
因此,根据本发明,通过更新n个时延计数集,列举有多少帧或者时间分段信号被用在状态1至n中的每一个状态来更新从5个状态的每一个状态n的路径返回(path back)(n=1,2,...,5,对应于行1-5)。例如,如图6所示,行320对应于结束于状态5的状态转移路径,存储在列322和行322的信息指出用于该路径的状态5中的帧数,存储在列324和行320的信息指出用于该路径的状态4中的帧数,存储在列326和行320的信息指出用于该路径的状态3中的帧数,存储在列328和行320的信息指出用于该路径的状态2中的帧数,存储在列330和行320的信息指出用于该路径的状态1中的帧数。类似地,行332对应于结束于状态4的状态转移路径,存储在列324和行332的信息指出用于该路径的状态4中的帧数,存储在列326和行332的信息指出用于该路径的状态3中的帧数,存储在列328和行332的信息指出用于该路径的状态2中的帧数,存储在列330和行332的信息指出用于该路径的状态1中的帧数,行334-338依此类推。
尽管图6的跟踪阵列包括5个状态,应当理解,本发明不限于使用5个状态,而是可以使用任意的状态数。
在具有N个状态的HMM中使用根据本发明的跟踪阵列的模型,要求大小为
的阵列。因为N可以多达小于在表达T中的最大的帧数数量级,与传统技术所要求的NxT大小的阵列相比,本发明的跟踪矩阵显现出显著地节约所要求的存储量。
利用根据本发明的存储位置来更新在时延计数的跟踪阵列中存储的跟踪信息的阵列更新过程示于图7中。尽管可以理解可以包括任意数目的状态,并且将状态数限制为4个状态仅仅是为了简化介绍,图7的例子说明了状态数N=4的一种情况。根据本发明,更新过程可用于由格子340和跟踪阵列342和360指定的自身环状态转移路径,可用于由格子344和跟踪阵列346和364指定的单步状态转移路径,可用于由格子348和跟踪阵列350和368指定的单跳状态转移路径,可用于由格子352和跟踪阵列354和372指定的双跳状态转移路径,依次类推,可以扩展到N个状态跳跃状态转移路径。
格子中的每一点对应于该格子中的帧和状态位置,水平轴对应于帧,纵轴对应于状态。
如图7所示,用于在帧4处的每一路径结束状态的最佳路径由阵列342(等价于阵列346,350,354)的时延计数行来指示。从下面的从帧4向后的路径可以看出记录在阵列中的跟踪路径:格子340用于状态4,格子344用于状态3,格子348用于状态2,格子352用于状态1。例如,结束于(帧4,状态4)的跟踪路径为状态4的一个帧,在状态3的一个帧,在状态2的一帧,和在状态1的一帧。结束于(帧4,状态3)的跟踪路径为状态3的一个帧,在状态2的两个帧,在状态1的一帧。结束于(帧4,状态2)的跟踪路径为状态2的3个帧,在状态1的一个帧。最后,结束于(帧4,状态1)的跟踪路径为状态1的4个计数。
尽管结束于4个状态中的一个处的每一路径对应于用于该状态的最佳路径,也就是,结束于状态4跟踪路径为用于状态4的最佳路径,结束于状态3的跟踪路径为用于状态3的最佳路径等等,这些最佳路径不必重叠。因此,对于每一个状态,有一个相应的、可能是唯一的、最佳的路径,如格子340、344、348和352所示。根据本发明,用跟踪信息的阵列的行单独地记录每一状态的跟踪路径。
根据本发明,根据被确定为最佳的状态转移路径,应用了一些确定的更新过程。使用对准算法如维特比对准算法来确定最佳的路径,并且更新存储在跟踪阵列中的路径信息以反映使用本发明更新过程的选择的路径。每一次接收到新帧时,例如,在图7的说明中考虑帧5时,运行对准算法,并且更新路径信息。
为了为新接收到的帧更新路径信息,要考虑每一状态。例如,考虑状态4、帧5,其中考虑从帧4到帧5可能的路径。如果进入一状态的最佳路径为自身环状态转移路径,如在图7的格子340中从帧4到帧5,也就是进入在帧5的状态4的状态转移来自在第一列356和行358的对应于在状态4中用的帧数(时间分段信号)的状态4,其增加1。结果,更新后的阵列360指出结束于状态4的最佳跟踪路径包括在状态4的两个帧,在状态3的一个帧,在状态2的一个帧,和在状态1的一个帧。
如果进入一状态的最佳路径为单步状态转移路径,如图7的格子344中的从帧4至帧5,也就是进入在帧5的状态4的状态转移来自状态3,对应于第一在前状态的行362,也就是状态3被复制进入行358,并且行358的第一列入口被重设为1。结果,更新后的阵列364指出结束于状态4的最佳跟踪路径包括在状态4的一个帧,在状态3的一个帧,在状态2的两个帧,和在状态1的一个帧。
如果进入一状态的最佳路径为单跳状态转移路径,如图7的格子348中的从帧4至帧5,也就是进入在帧5的状态4的状态转移来自状态2,对应于第二在前状态的行366,也就是状态2被复制进入行358,并且行358的第一列的入口被重设为1。由于已跳过状态3,并且行366不包括用于状态3的时延计数,用于状态3的时延计数在行358中被设为0。在这个例子中,已更新的阵列368指出结束于状态4的最佳的跟踪路径包括在状态4的一个帧,在状态3的0帧,在状态2的3个帧,和在状态1的一个帧。
与进入一状态的最佳路径是单跳状态转移路径的情形相似,如果进入一状态的最佳路径为双跳状态转移路径,如图7的格子352中的从帧4至帧5,也就是进入在帧5的状态4的状态转移来自状态1,对应于第三在前状态的行370也就是状态1被复制进入行358,并且行358的第一列的入口被重设为1。由于已跳过状态3和状态2,并且行370不包括用于状态3和状态2的时延计数,用于状态2和状态3的时延计数在行358中被设为0。在这个例子中,已更新的阵列372指出结束于状态4的最佳的跟踪路径包括在状态4的一个帧,在状态3的0帧,在状态2的0个帧,和在状态1的4个帧。
将相似的更新过程应用于三跳状态转移路径,依此类推,使得根据本发明的更新过程可被扩展至N个状态跳跃。通过仔细的考虑,可观察到单步、单跳、双跳、和多达N个状态跳跃的所有的跳跃均采用相同的通用的更新过程。即,通常通过将在第一列的当前的状态时延计数重设为1,并且复制对应于相关的在前状态的时延计数的行,并且将所有跳过的状态时延计数设为0(如果有的话)来处理所有的更新。而且,通过首先在每一帧处执行估计最后的状态,并且向第一状态向下工作,可能就地执行跟踪阵列更新,因此,在对准过程中要求最小的工作存储量。因此,尽管参考包括了4个状态的图7介绍了更新过程,应当理解,可以将本发明的更新过程应用于任意的状态数。
根据本发明的用于存储状态时延计数的行的存储阵列342(等价于346,350和354)一般地示于图8中。存储阵列342包括多个状态时延计数存储位置343,每一个存储位置343一般由Ln[i]标识,使得在位于每一个存储位置343中的值对应于在从状态n向后跟踪的路径中分配给状态i的多个帧。例如,对应于L4[3]存储位置为在存储阵列342中的位置,对于从状态4向后跟踪的路径,指出被分配给状态3的帧数,而对于从状态2向后跟踪的路径,对应于L2[2]的存储位置指出被分配给状态2的帧数,等等。
在所概述的用于根据状态时延计数来更新跟踪信息的过程中,例如图7中,进行对阵列的“行”和“列”的参考说明。对于熟知所述状态技术领域的技术人员来说,很显然,通常不是以此类三角形或者矩形格式组织诸如动态RAM和其他存储介质的存储器。通常,以线性的方式用指向存储字的单个参考指针来访问存储器。因此,为了展开本发明的跟踪阵列,需要进行运算以将用于状态时延计数的“行”和“列”号转换为线性存储字指针。根据如何将三角阵列映射到线性组织的存储设备,此类算法运算有一些变化,因此,不将这些内容作为一部分包括在本说明书中,这些内容被认为是对于软件开发的本领于技术人员来说是显而易见的。
图9和图10为对应于根据本发明的用于使用存储位置来更新存储在时延计数的跟踪阵列中的跟踪信息的方法的流程图。如图8和9所示,首先,在步骤400,通过将L1[1]的时延计数设为1、将在该阵列的剩余位置中的时延计数设为0、并且将帧计数器设为下一帧,t=2来初始化存储阵列。然后,在步骤402,确定是否已评估所有的帧,也就是如果t>T?
如果确定已经评估了所有的帧,则结束更新过程,步骤404。然而,如果确定没有评估完所有的帧,将当前状态n设为总的状态数N(步骤408),使得首先评估最高的或者最后的状态。例如,如图7所示,根据本发明,当前状态n被设为4,示的评估开始于对应于帧2、状态4的格子340(等价于格子344,348,352)的点处。
然后在步骤410,确定是否已经评估完所有状态,也就是如果n<1。如果已经评估完所有的状态,则增加帧计数器,也就是帧t=3(步骤412),并且评估返回步骤402。然而,如果确定在步骤410没有评估完所有状态,在步骤414,使用维特比搜索方法执行对进入在帧t处的当前状态n的最佳路径的搜索。如果确定进入在帧t处的当前状态n的最佳路径位来自当前状态n(也就是自身环),在步骤418增加对应于当前状态n的状态时延计数存储位置Ln[n],在步骤420减当前状态n,并且然后流程返回步骤410。从图7可看出,对应于图9的序列步骤410和414-416的流程对应于跟踪信息更新过程,该跟踪信息更新过程用于上面所介绍的当状态转移为自身环时将阵列342更新为已更新的阵列360。
如果在步骤416确定进入状态n的最佳路径不是来自状态n(也就是除了自身环状态转移的一些状态转移),则流程继续步骤A(如图10所示)。如图10所示,由于最佳路径不是自身环状态转移,最佳路径必定是来自于前面的状态m而不是状态n。结果,根据本发明,在步骤422,将状态时延计数存储位置Ln[n]设为1,流程继续步骤424,至前面的状态时延计数存储位置Ln[i],其中状态i等于在状态n前的状态,或者i=n-1。然后在步骤426确定是否已经评估完跳过的状态,也就是如果i小于或等于m。
如果确定没有评估完所有跳过的状态,在步骤436清除状态时延计数存储位置Ln[i],使得状态时延计数存储位置Ln[i]为0,在步骤438,减状态i,然后流程返回步骤426。如果在步骤426确定已经评估完所有跳过的状态,或者等价地没有状态被跳过,在步骤428确定是否已经评估完所有的状态,也就是如果i<1。
如果确定已经评估完所有的状态,则在步骤430,流程继续图9的步骤420。然而,如果在步骤428确定没有评估完所有的状态,在步骤432,将对应于前面状态m的状态时延计数存储位置Lm[i]复制到前一状态时延计数存储位置Ln[i],在步骤434,减状态i,并且流程回到步骤428。
从图7可看出,对应于图10的序列步骤426-434的流程对应于跟踪信息更新过程,所述跟踪信息更新过程用于对应于在上面介绍的状态转移为单步时将阵列346更新为已更新的阵列364。同样,从图7可看出,对应于图10的序列步骤426、436、438、428、432和434的流程对应于跟踪信息更新过程,所述跟踪信息更新过程用于对应于当上面介绍的状态转移为单跳或双跳步骤时分别将阵列350和354更新为已更新的阵列368和372。
图11为说明对应于本发明的产生线性阵列A[t]的流程图,用来根据上面介绍的图9和10的阵列更新过程的结果来存储用于每一帧的帧分配。根据本发明,图8的三角形存储阵列342被展开为线性阵列A[t],该线性阵列A[t]具有对应于在被对准的表达中的帧T的总数的长度。例如,如在图7的更新阵列360所示,如果本发明的更新过程结果指出在从状态4向后跟踪的路径中,分配给状态4的帧数L4[4]等于2,则相应地,L4[3]等于1,L4[2]等于1,和L4[1]等于1,帧总数等于5。
使用用于每一状态向后跟踪的路径的已知帧数,根据本发明的线性阵列A[t]的产生被使用图11的过程来执行,得到一般地示于图12中的线性阵列。如图12所示,产生的线性440包括对应于5个状态即f=1至f=5中的每一个的存储位置,用于存储对应于帧所相关的状态数的值。例如,帧4和5与状态4相关。
在图9的步骤404中,一旦已经确定已经评估完所有的帧,已经完成更新状态时延计数的阵列,根据本发明的用于产生线性阵列A[t]以存储用于每一帧的帧分配的流程被初始化。如上所述,如果状态时延计数的更新阵列指出L4[4]=2,L4[3]=1,L4[2]=1,和L4[1]=1,有对应于从状态4向后跟踪的路径的总计4个状态和总计5个帧。结果,当前帧t被初始化为等于总的帧数,并且当前状态n被设为等于总状态数,步骤422。应当理解,本发明应用于任意的状态数,并应用于从LN[1]至LN[N]的任意可能的值,已经选择的用于状态数和用于L4[1]-L4[4]的值仅仅是为了支持说明本发明。
在步骤444,通过设定计数器k等于LN[n]来设定计数器k,其对应于分配给在从状态N向后跟踪的路径中的帧数,其从状态时延计数的已更新阵列中获得。由于在上述的状态时延计数的已更新阵列的例子中,L4[4]=2,当前值k等于2。在步骤450,确定是否已经对当前状态n的所有的状态分配进行计数(account for),也就是当前值小于1。如果没有对所有的状态计完数,在步骤446记录用于线性阵列的帧分配,然后在步骤448,减帧t和计数器k,并且流程返回步骤450。然而,如果在步骤450确定已经对所有的状态分配进行完计数,在步骤452减当前状态n,并且在步骤454确定是否已经评估完所有的状态,也就是如果n<1。如果已经评估了所有状态,则流程结束(步骤456),并且在上述的例子中,产生线性阵列A[t]。然而,如果没有评估完所有状态,流程返回步骤444。
根据本发明的另一个实施例,是使用数字编码而不是存储位置来执行跟踪和帧分配过程。例如,图13为根据本发明的使用基数-B数字编码码元来存储状态时延计数的阵列的框图。状态时延计数的阵列457包括状态时延计数存储位置L1-L4,通常以Ln表示。每一个状态时延计数存储位置Ln包含从状态n向后的已编码的路径信息,对应于用于在从状态n向后的路径中每一状态的状态时延计数,其被使用根据本发明的阵列更新过程来进行更新,并将参考图14在下面进行介绍。状态时延计数457的阵列使用基数-B数字值,使得在任意状态中的时延时间不能超过B帧。在本发明的优选实施例中,基数B被选择为2的乘幂(例如,2,4,8,16,32等等)以便于在通常的计算设备上进行计算,然而,应当理解,可选择任意值的基数B。在本发明的另一个实施例中,基数B被选择为10,该值用在图14所时的例子中,并且相应的说明将在下面介绍。
使用根据本发明的另一个实施例的数字编码来更新存储在时延计数的跟踪阵列中的跟踪信息的阵列更新过程被示于图14中。与上面的对图7的讨论相似,图14的更新例子说明了一种情形,其中状态数N等于4,尽管应当理解,可以包括任意的状态数,选择该状态数为4个状态仅仅是为了简化说明。
根据本发明的另一个实施例,更新过程可用于由格子458和跟踪阵列460,462指定的自身环状态转移路径,可用于由格子464和跟踪阵列460,466指定的单步状态转移路径,可用于由格子468和跟踪阵列460,470指定的单跳状态转移路径,可用于有格子472和跟踪阵列460,474指定的双跳状态转移路径,依此类推,可以扩展到N-状态跳跃的状态转移路径。
根据本发明,根据被确定为最佳的状态转移路径,应用特定的更新过程。使用诸如维特比对准算法的对准算法来确定最佳的路径,并且使用根据本发明的另一个实施例的更新过程来更新存储在跟踪阵列中的路径信息以反映选择的路径。每一次收到新的帧时,例如当在图14的说明中为考虑的帧5时,运行对准算法,并且更新路径信息。
为了更新用于新接收到的帧的路径信息,要考虑每一个状态。如果考虑的状态为状态n,并且进入状态n的最佳路径被确定为来自状态m(这里m小于或等于n),则记录来自状态n的跟踪路径的已更新的编码基数-B值由Ln=Lm+B(n-1)给出。例如,考虑状态n=4,帧5,其中考虑来自帧4至帧5的可能的路径。如果进入一状态的最佳路径为自身环状态转移路径,正如所示的在图14的格子458中的从帧4至帧5一样,根据本发明,通过获得B(n-1)与状态时延基数的和来更新跟踪阵列460,所述状态时延基数用于对应于来自跟踪阵列460的状态时延计数位置Ln的当前状态n。
例如,由于用于在当前跟踪阵列460中的状态时延计数位置L4的时延计数为状态4中的一个时延计数、状态3中的一个时延计数、状态2中的一个时延计数和在状态1中的一个时延计数,并且当前状态n等于4,通过获得状态时延计数位置L4与B4-1的和来更新当前的跟踪阵列460。因此,使用本发明的更新过程,用于状态时延计数位置L4的更新的时延计数等于2111,如在更新的跟踪阵列462所示一样。
如果进入一状态的最佳路径为单步状态转移路径,如所示的图14的格子464中的从帧4至帧5一样,根据本发明,通过获得Bn-1与在对应于来自跟踪阵列460的前面状态的状态时延计数位置中的状态时延计数的值的和来更新跟踪阵列460。例如,由于跟踪阵列460的状态时延计数位置L3的时延计数为在状态3中的一个时延计数、在状态2中的两个时延计数、和在状态1中的一个时延计数,并且当前状态n等于4,通过获得状态时延计数位置L3与B4-1的和来更新跟踪阵列460,结果,状态时延计数位置L4的已更新的时延计数等于1121,如在更新的跟踪阵列466中所示。
类似地,如果进入一状态的最佳路径为单跳状态转移路径,如所示的图14的格子468中的从帧4至帧5一样,根据本发明,通过获得Bn-1与状态时延计数的值的和来更新跟踪阵列460,所述状态时延计数的值来自于跟踪阵列460并且在对应于在当前状态n前面的前两个状态的在前状态的状态时延计数中。例如,由于跟踪阵列460的状态时延计数位置L2的时延计数为在状态2中的三个时延计数、在状态1中的一个时延计数,并且当前状态n等于4,通过获得状态时延计数位置L2与B4-1的和来更新跟踪阵列460,结果,状态时延计数位置L4的已更新的时延计数等于1031,如在更新的跟踪阵列470中所示。
最后,如果进入一状态的最佳路径为双跳状态转移路径,如所示的图14的格子472中的从帧4至帧5一样,根据本发明,通过获得Bn-1与状态时延计数的值的和来更新跟踪阵列460,所述状态时延计数的值来自于跟踪阵列460并且在对应于在当前状态n前面的前三个状态的在前状态的状态时延计数中。例如,由于跟踪阵列460的状态时延计数位置L1的时延计数为在状态1中的四个时延计数,并且当前状态n等于4,通过获得状态时延计数位置L1与B4-1的和来更新跟踪阵列460,结果,状态时延计数位置L1的已更新的时延计数等于1004,如在更新的跟踪阵列470中所示。对于本领域的普通技术人员来说,很显然,计算Ln=Lm+B(n-1)的更新过程通常应用于从状态n到状态m的任意的转移,其中m小于或等于n。
在所概述的用于根据数字编码来更新跟踪信息的过程中,例如图14中,进行对各个数字编码的基数-B值的参考说明。对于熟知本领域的状态技术领域的技术人员来说,很显然,通常在诸如动态RAM和其他存储介质的存储设备中的存储字具有固定的存储字大小。在将基数B用于编码和在模型中的状态数N足够大的情况下,需要用来存储编码值Ln的位数可超过存储字大小。在这种情况下,可能需要确定的算法运算来执行跟踪信息更新过程以提供用来扩展至多个存储字的一编码值。根据存储字的大小和用来执行运算的设备的功能,此类算法运算有一些变化,因此,不将这些内容作为一部分包括在本说明书中,这些内容被认为是对于软件开发的本领于技术人员来说是显而易见的。
图15为根据本发明的另一个实施例使用数字编码来更新存储作为时延计数的跟踪阵列的格子跟踪信息的方法的流程图。如图13和15所示,首先,在步骤500,通过将L1[1]的时延计数设为1、将在该阵列的剩余位置中的时延计数设为0、并且将帧计数器设为下一帧,t=2来初始化状态时延计数的阵列457。然后,在步骤502,确定是否已评估所有的帧。如果确定已经评估了所有的帧,则结束更新过程(步骤504)。然而,如果确定没有评估完所有的帧,将当前状态n设为总的状态数N(步骤508)来使流程开始于最后的状态,使得首先评估最高的或者最后的状态。例如,如图14所示,根据本发明的另一个实施例,状态n被设为4,使得评估开始于对应于帧2、状态4的格子458(等价于格子464,468,472)的点处。
然后在步骤510,确定是否已经评估完所有状态,也就是如果n<1。如果已经评估完所有的状态,则增加帧计数器,也就是帧t=3(步骤512),并且评估返回步骤502。然而,如果在步骤510没有评估完所有状态,在步骤514,使用维特比搜索方法执行对进入在帧t处的当前状态n的最佳路径的搜索。
正如在图9和15中看到的一样,根据本发明的另一个实施例的、用于使用数字编码来更新存储作为时延计数的跟踪阵列的跟踪信息的更新过程的步骤500-514与上面介绍的根据本发明的用于使用存储位置来更新作为时延计数的跟踪阵列的跟踪信息的更新过程的步骤400-414相同。然而,根据本发明的另一个实施例,在用于利用图15的数字编码来更新存储作为时延基数的跟踪阵列的跟踪信息的更新过程中,一旦在步骤514完成搜索最佳的路径,结果被用来识别进入当前状态n的最佳路径是来自状态m,步骤516。然后,在步骤518,用于当前状态n的状态时延计数被设为对应于前面状态m对应的状态时延计数位置Lm与B(n-1)的和的状态时延计数。流程继续前面的状态n=n-1,步骤520,然后,返回步骤510。
图16为根据本发明的用于产生线性阵列的过程的流程图,其被用于根据图15的阵列更新过程的结果来存储用于每一个帧的帧分配。根据本发明的另一个实施例,图13的状态时延计数阵列457被展开为线性阵列A[t],该阵列具有对应于在被对准的表达中的帧总数的长度,类似于上面介绍的图12的产生的线性阵列440。
一旦在步骤502确定已经评估所有的帧,并且结束了更新过程(图15的步骤504),根据本发明的另一个实施例,通过将当前帧t设为帧总数T、将当前状态n设为状态总数N来在图16的步骤600初始化基于图15的阵列更新过程的结果的、用于产生线性阵列的流程。如果(例如)从图14的已更新的跟踪阵列462产生线性阵列,状态总数为4,并且帧总数等于在状态时延计数位置L4中的各个基数-B数字的和。
由于对应于在状态时延计数位置L4中的时延计数的数字已编码的跟踪信息为在状态4中的两个帧、和分别在每一状态1、2和3中的一个帧,在状态时延计数位置L4中的已编码值为2111。在表达中的帧总数T等于5(2+1+1+1=5)。可以理解,本发明的另一个实施例可以应用任意的状态数和帧数,选定的用于状态数和帧数的值仅仅是为了支持说明本发明的另一个实施例。
在初始化步骤600后,在步骤602,对应于当前状态时延计数位置LN的数字已编码跟踪信息被复制,并且在步骤604确定已复制的跟踪信息L是否大于或等于B(n-1)。如上所述,尽管在本发明的优选实施例中,B等于10,可以理解,可以使用任意的值B。然而,根据本发明的另一个实施例,在任意的状态中的时延时间不能超过B个帧。
如果在步骤604确定了已复制的数字编码的跟踪信息L大于或等于B(n-1),在步骤606中记录用于线性阵列A[t]的相应的帧分配,在步骤608减当前帧t,在步骤610,已复制的跟踪信息L被减掉对应于状态n的基数-B的值B(n-1),并且流程返回步骤604。
如果在步骤604确定了已复制的数字编码的跟踪信息L不大于或等于B(n-1),在步骤612将当前状态n减到前一状态n-1,并且在步骤614确定是否已经评估所有的状态。如果在步骤614确定已经评估所有的状态,则流程使用前一状态n-1来继续步骤604,在步骤616结束线性阵列产生流程,得到图12的线性阵列440。
尽管已经示出和介绍了本发明的特定的实施例,可以进行修改。因此,所附权利要求希望覆盖落在本发明的精神和范围内的所有的此类改变和修改。
Claims (27)
1.一种用于存储和更新在语音识别***中的格子跟踪信息的方法,其包括步骤:
产生具有多行和一列或多列的跟踪阵列,所述多行中的每一行对应于跟踪路径结束的多个状态中的一个,并且所述一列或多列中的每一列包含用于在所述跟踪路径中的状态的时延计数;
确定进入所述多个状态中的给定状态的最佳的状态转移路径;和
响应所述已确定的最佳状态转移路径,更新所述已产生的跟踪阵列。
2.根据权利要求1的方法,进一步包括步骤:
响应于所述确定的最佳状态转移路径为自身环状态转移路径,增加包含在具有对应于所述给定状态的行的第一列中的时延计数。
3.根据权利要求2的方法,进一步包括步骤:
将对应于在所述给定状态前的第一在前状态的行复制到对应于所述给定状态的行中;和
响应于所述已确定的最佳状态转移路径为单步状态转移路径,重设包含在具有对应于所述给定状态的行的第一列中的时延计数为1。
4.根据权利要求3的方法,进一步包括步骤:
将对应于在所述给定状态前的第二在前状态的行复制到对应于所述给定状态的行中;
重设包含在具有对应于所述给定状态的行的第一列中的时延计数为1;和
响应于所述已确定的最佳状态转移路径为单跳状态转移路径,重设包含在对应于所述给定状态的行中、不包括在所述已复制的行中的剩余的时延计数为0。
5.根据权利要求4的方法,进一步包括步骤:
将对应于在所述给定状态前的第三在前状态的行复制到对应于所述给定状态的行中;
重设包含在具有对应于所述给定状态的行的第一列中的时延计数为1;和
响应于所述已确定的最佳状态转移路径为双跳状态转移路径,重设包含在对应于所述给定状态的行中、不包括在所述已复制的行中的剩余的时延计数为0。
6.根据权利要求3的方法,进一步包括步骤:
将对应于在所述给定状态前的n个状态的一状态的行复制到对应于所述给定状态的行中;
重设包含在具有对应于所述给定状态的行的第一列中的时延计数为1;和
响应于所述已确定的最佳状态转移路径为n-1跳跃状态转移路径,重设包含在对应于所述给定状态的行中、不包括在所述已复制的行中的剩余的时延计数为0。
7.根据权利要求6的方法,进一步包括步骤:
确定进入所述多个状态中的每一个状态的最佳状态转移路径,开始于模型的所述最后状态。
8.根据权利要求7的方法,进一步包括步骤:
对于每一个新的帧f,确定进入所述多个状态中的每一个帧的最佳状态转移路径。
9.根据权利要求8的方法,进一步包括步骤:
确定是否已经评估所有的帧;
响应于确定已经评估所有帧,将当前帧t设等于帧总数T,并且将当前状态n设为等于状态总数N;
将对应于具有被分配给在从状态N向后跟踪的路径中的状态n的帧数的当前计数器k设为等于状态时延计数存储位置LN[n];
确定是否已经对用于所述当前状态n的所有状态分配进行了计数;
响应于没有对所有的状态分配进行了计数,记录帧分配,减所述当前帧t和所述计数器k,并且返回到确定是否已经对用于所述当前状态n的所有状态分配进行了计数的步骤;
响应于对用于所述当前状态n的所有状态分配进行了计数,确定所述当前状态n;和
确定是否已经评估所有的状态,并且响应于没有评估所有的状态,返回到所述设定计数器k的步骤。
10.根据权利要求1的方法,进一步包括步骤:
设定当前状态n为等于所述给定状态;
确定进入所述当前状态n的最佳状态转移路径位来自状态m,其中m小于或等于n;和
将对应于所述当前状态、存储作为基数-B的数字编码值的状态时延计数存储位置设为等于对应于状态m的状态时延计数存储位置与基数-B的值B(n-1)的和。
11.根据权利要求10的方法,进一步包括步骤:
确定进入所述多个状态的每一个状态的最佳状态路径,开始模型的所述最后步骤。
12.根据权利要求11的方法,进一步包括步骤:
对于每一个新的帧f,确定进入所述多个状态的每一个状态的最佳状态转移路径。
13.根据权利要求12的方法,进一步包括步骤:
(i)将当前帧t设等于帧总数T,并且将当前状态n设为等于状态总数N;
(ii)将来自对应于所述状态总数N的状态时延计数存储位置的基数-B的数字编码值的跟踪信息进行复制;
(iii)确定所述已复制的跟踪信息是否大于或等于B(n-1);
(iv)记录帧分配,减所述当前帧t,将所述已复制的跟踪信息减掉对应于所述当前状态的基数-B的值B(n-1),并且响应于所述已复制的跟踪信息大于或等于B(n-1),返回到步骤(iii);和
(v)减所述当前状态n,并且响应于所述已复制的跟踪信息不大于或等于B(n-1),确定是否已经评估了所有状态;和
(vi)响应于没有评估完所有状态,返回步骤(iii)。
14.根据权利要求13的方法,其中所述B等于10。
15.根据权利要求13的方法,其中所述B等于2的乘幂。
16.一种更新存储作为时延计数的跟踪阵列的跟踪信息的方法,该方法包括步骤:
(i)确定是否已经评估所有帧;
(ii)响应于没有评估完所有帧,将当前状态n设为等于状态总数N;
(iii)确定是否已经评估所有状态;
(iv)响应于评估完所有状态,转向下一帧,并且返回步骤(i);
(v)响应于没有评估完所有状态,执行对进入在帧t的所述当前状态n的最佳路径的搜索;和
(vi)响应于搜索到所述最佳路径,更新所述跟踪阵列。
17.根据权利要求16所述的方法,进一步包括步骤:
(vii)确定所述最佳路径是否来自当前状态n;
(viii)响应于所述最佳路径来自所述当前状态n,增加对应于所述当前状态n的状态时延计数存储位置Ln[n],减所述当前状态n,并且返回到步骤(iii);
(ix)响应于在步骤(vii)确定所述最佳路径不是来自当前状态n,将所述最佳路径设为来自前面的状态m而不是来自所述当前状态n,将对应于所述当前状态n的所述状态时延计数存储位置Ln[n]设为等于1,并且前进到对应于所述当前状态前n的状态i的状态时延计数存储位置Ln[i];
(x)确定是否已经评估所有已跳过的状态;
(xi)响应于在步骤(x)确定没有评估完所有已跳过的状态,将状态时延计数存储位置Ln[i]设为等于0,减前一状态i,并且返回步骤(x);
(xii)响应于在步骤(xi)确定已经评估所有已跳过的状态,确定是否已经评估完所有状态;
(xiii)响应于在步骤(xii)确定没有评估完所有状态,减所述当前状态n,并且返回步骤(iii);和
(xiv)响应于在步骤(xii)已经评估完所有状态,将对应于所述在前状态m的状态时延计数存储位置Lm[i]复制到状态时延计数存储位置Ln[i],减状态i,并且返回步骤(xii)。
18.根据权利要求17所述的方法,进一步包括步骤:
确定是否已经评估完所有帧;
响应于已经评估完所有帧,将当前帧t设为等于帧总数T,并将当前状态n设为等于状态总数N;
将对应于被分配给在来自状态向后跟踪N的路径的状态n的帧数的计数器k设为等于状态时延计数存储位置LN[n];
确定是否已经对用于所述当前状态n的所有状态分配进行了计数;
响应于没有对用于所述当前状态n的所有状态分配进行了计数,记录帧分配,减所述当前帧t和所述计数器k,并且返回到确定是否已经对用于所述当前状态n的所有状态分配进行了计数的步骤;
响应于已经对用于所述当前状态n的所有状态分配进行了计数,减所述当前状态n;和
响应于没有评估完所有状态,确定是否已经评估了所有状态,并且返回到设置计数器k的步骤。
19.根据权利要求16的方法,进一步包括步骤:
(vii)将进入状态n的所述最佳路径设为来自状态m,其中m小于或等于n;和
(viii)将存储作为基数-B数字编码值的用于状态n的状态时延基数设为等于对应于状态m的状态时延计数位置与基数-B的值B(n-1),减所述当前状态n,并且返回步骤(iii)。
20.根据权利要求19的方法,进一步包括步骤:
(ix)将当前帧t设为等于帧总数T,并将当前状态n设为等于状态总数N;
(x)复制来自对应于所述状态总数N的状态时延计数位置的基数-B数字编码跟踪信息;
(xi)确定是否所述已复制的跟踪信息大于或等于B(n-1);
(xii)响应于所述已复制的跟踪信息大于或等于B(n-1),记录相应的帧分配,减所述当前帧t,将所述已复制的跟踪信息减掉对应于所述当前状态的基数-B的值B(n-1),并且返回步骤(xi);
(xiii)响应于所述已复制的跟踪信息不大于或等于B(n-1),减所述当前状态n,并且确定是否已经评估完所有状态;和
(xiv)响应于没有评估完所有状态,返回步骤(xi)。
21.根据权利要求20的方法,其中所述B等于10。
22.根据权利要求20的方法,其中所述B等于2的乘幂。
23.一种无线通信设备,其包括:
话筒;和
连接到所述话筒以接收信号并且负责提供语音识别的处理器,所述处理器产生具有多行和一列或多列的跟踪阵列,所述多行中的每一行对应于跟踪路径结束的多个状态中的一个,且一列或多列中的每一列包含用于在所述跟踪路径中的状态的时延计数,并且响应于进入所述多个状态中的给定状态的最佳状态转移路径,所述处理器更新已产生的跟踪阵列。
24.根据权利要求23的通信设备,其中所述处理器:
响应于所述最佳状态转移路径为自身环状态转移路径,增加包含在具有对应于所述给定状态的行的第一列中的时延计数,
响应于所述最佳状态转移路径为单步状态转移路径,将对应于在所述给定状态前的第一在前状态的行复制到对应于所述给定状态的行中,并且将包含在具有对应于所述给定状态的行的第一列中的时延计数重设为等于1,和
响应于所述已确定的最佳状态转移路径为n-1个跳跃状态转移路径,将对应于在所述给定状态前的n个状态的状态的行复制到对应于所述给定状态的行,将包含在具有对应于所述给定状态的行的第一列中的时延计数重设为等于1,并且将包含在对应于所述给定状态的行中、不包括在所述已复制的行中的剩余的时延计数重设为等于0。
25.根据权利要求23的通信设备,其中所述处理器将当前状态n设为等于所述给定状态,确定进入所述当前状态的所述最佳状态转移路径为来自状态m,其中m小于或等于n,并且将被存储作为基数-B的数字编码值的、对应于所述当前状态的状态时延基数存储位置设为等于对应于状态m与基数-B的值B(n-1)的状态时延基数存储位置的和。
26.根据权利要求25的通信设备,其中所述B等于10。
27.根据权利要求25的通信设备,其中所述B等于2的乘幂。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US56444300A | 2000-05-04 | 2000-05-04 | |
US09/564,443 | 2000-05-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1524259A true CN1524259A (zh) | 2004-08-25 |
Family
ID=24254496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA01808981XA Pending CN1524259A (zh) | 2000-05-04 | 2001-04-12 | 语音识别***中跟踪矩阵存储器的方法 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1297525A4 (zh) |
CN (1) | CN1524259A (zh) |
AU (1) | AU2001255338A1 (zh) |
WO (1) | WO2001084534A2 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4489434A (en) * | 1981-10-05 | 1984-12-18 | Exxon Corporation | Speech recognition method and apparatus |
US4713778A (en) * | 1984-03-27 | 1987-12-15 | Exxon Research And Engineering Company | Speech recognition method |
GB2209418B (en) * | 1985-11-12 | 1989-10-11 | Nat Res Dev | Apparatus amd methods for analysing transitions in finite state machines |
US5228110A (en) * | 1989-09-15 | 1993-07-13 | U.S. Philips Corporation | Method for recognizing N different word strings in a speech signal |
US5991720A (en) * | 1996-05-06 | 1999-11-23 | Matsushita Electric Industrial Co., Ltd. | Speech recognition system employing multiple grammar networks |
JP2000242293A (ja) * | 1999-02-23 | 2000-09-08 | Motorola Inc | 音声認識装置のための方法 |
US6233557B1 (en) * | 1999-02-23 | 2001-05-15 | Motorola, Inc. | Method of selectively assigning a penalty to a probability associated with a voice recognition system |
-
2001
- 2001-04-12 EP EP01928488A patent/EP1297525A4/en not_active Withdrawn
- 2001-04-12 AU AU2001255338A patent/AU2001255338A1/en not_active Abandoned
- 2001-04-12 CN CNA01808981XA patent/CN1524259A/zh active Pending
- 2001-04-12 WO PCT/US2001/011965 patent/WO2001084534A2/en not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
AU2001255338A1 (en) | 2001-11-12 |
WO2001084534A2 (en) | 2001-11-08 |
EP1297525A4 (en) | 2005-09-28 |
EP1297525A2 (en) | 2003-04-02 |
WO2001084534A3 (en) | 2002-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1117344C (zh) | 声音合成方法和装置、用于声音合成的词典构筑方法 | |
CN1121108C (zh) | 手持蜂窝电话 | |
CN1168591A (zh) | 屏幕电话机和管理屏幕电话机菜单的方法 | |
CN1196104C (zh) | 语音处理 | |
CN1356688A (zh) | 语音识别***、语音识别服务器、语音识别客户机及其控制方法 | |
CN1280783C (zh) | 声音识别装置和声音识别方法 | |
CN101551998B (zh) | 一种语音互动***以及其和人的语音互动方法 | |
CN1532807A (zh) | 块同步译码 | |
US20200265843A1 (en) | Speech broadcast method, device and terminal | |
CN1711586A (zh) | 声音识别用辞典编制装置和声音识别装置 | |
CN1120371A (zh) | 连续语音识别 | |
CN1760974A (zh) | 用于语音分类和语音识别的隐藏条件随机场模型 | |
CN102292766A (zh) | 用于提供用于语音识别自适应的复合模型的方法、装置和计算机程序产品 | |
CN101345055A (zh) | 语音处理器和通信终端设备 | |
CN1521729A (zh) | 使用隐轨迹和隐马尔可夫模型进行语音识别的方法 | |
CN113223499B (zh) | 一种音频负样本的生成方法及装置 | |
CN1145140C (zh) | 有选择地把一罚值赋予语音识别***所伴随概率的方法 | |
CN2552132Y (zh) | 共享频道间参数的音调发生器设备 | |
CN101529499B (zh) | 笔型语音计算机及其产生方法 | |
CN201075286Y (zh) | 语音识别装置 | |
US7205470B2 (en) | Play data editing device and method of editing play data | |
CN1524259A (zh) | 语音识别***中跟踪矩阵存储器的方法 | |
CN1149532C (zh) | 语音识别***中的逆向追踪矩阵存储方法 | |
CN1979462A (zh) | 声控多媒体播放器 | |
CN1664924A (zh) | 水下仿生动物语音控制*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |