30之间的数据传输恶化。
[0045]音素评估模块330从声学建模模块320接收聚类状态分数325。如在上文中关于图1的语音识别过程100所讨论的,HMM可被用于将音素表示为状态集合和每一个状态之间的转移概率的先验集合,其中,状态包含一系列聚类状态。可将由音素评估模块330使用的状态集合和转移概率的先验集合存储在存储设备230中。音素评估模块330向词语/语言/语法建模模块340提供音素分数335。
[0046]词语/语言/语法建模模块340使用诸如树形算法等的搜索技术来随时间确定最可能的音素串(例如,最可能的音素335)以及最终的词语。
[0047]图3的传统的语音识别系统300的许多问题中的一个问题是由于声学建模和音素评估过程引起的在处理单元220上的大量负荷。例如,对于一个或多个特征矢量315和在存储设备230中存储的一个或多个高斯概率分布的比较中的每一个,处理单元220都访问存储设备230。相似地,在音素评估过程中,处理单元220访问存储设备230,以便取回用于概率分数的累计计算的状态和先验转移概率信息。因此,大量的计算和存储资源致力于声学建模和音素评估过程,从而在处理单元220和存储单元230上施加大量负荷。
[0048]由声学建模和音素评估过程施加在处理单元220上的负荷影响处理单元220能够处理来自输入设备210的数字信号和来自其他应用的数据(例如,其中处理单元220可以同时处理来自多个应用的数据的多用户/多编程的环境中工作)的速度。另外,对于具有有限存储资源的计算系统(例如,手持式设备),声学建模和音素评估过程不止在处理单元220上施加大量负荷,而且还消耗存储设备230和数据总线240的带宽的很大一部分。在许多应用中实时或本质上接近实时地处理输入的声音信号的需求进一步加重了处理负载量、速度和存储资源中的这些问题以及其他问题。
[0049]3.具有音素分数加速器的语音识别系统
[0050]本发明的实施方式解决在上文中分别关于图2和3的传统的语音识别系统200和300讨论的问题。在一个实施方式中,声学建模过程由专用的处理单元(在本文中还被称为“声协作处理器”或“ACP”)实施。ACP连同图3的处理单元220 (本文中还被称为“中央处理单元”或“CPU” )工作。例如,ACP从CPU接收一个或多个特征矢量(例如,图3的特征矢量315),基于一个或多个高斯概率分布计算聚类状态分数(例如,图3的聚类状态分数325),基于聚类状态分数计算音素分数,并向CPU输出音素分数。
[0051]在一个实施方式中,可将一个或多个高斯概率分布和HMM信息(例如,HMM词典、HMM状态信息和先验转移概率信息)存储在ACP中的存储设备位置中。在另一个实施方式中,可将一个或多个高斯概率分布和HMM信息存储在ACP之外的专用的存储设备中,其中ACP从外部存储设备接收一个或多个高斯概率分布和HMM信息。根据本发明的一个实施方式,专用的存储设备是与系统存储器(例如,图3的存储设备230)分离的,其中的系统存储器与CPU关联。在又一种选择中,可将一个或多个高斯概率分布或者HMM信息存储在ACP之外的专用的存储设备中,其中ACP从外部存储设备接收一个或多个高斯概率分布或HMM信息。基于ACP的结构,可获得聚类状态分数和音素分数的加速计算。
[0052]本公开关注基于一个或多个聚类状态分数的音素分数的加速计算。例如,可在2012年6月6日提交的(代理案号3186.0050000)、标题为《声学处理单元(AcousticProcessing Unit)》的美国专利申请第13/489,799号(其全部内容作为参考并入本文)中找到关于聚类状态分数的加速计算的细节。
[0053]尽管在语音识别系统的环境中描述了本公开的各个部分,相关领域的技术人员将意识到本文所述的实施方式可用于基于本文说明的任何数据模式识别应用中。这些其他的数据模式识别应用包括但不限于图像处理、音频处理和手写识别。这些其他的数据模式识别应用在本文公开的实施方式的精神和范围之内。
[0054]图4是由ACP和CPU实施的语音识别过程400的实施方式的图例。在一个实施方式中,CPU实施信号处理过程410和词语建模过程440。ACP实施声学建模过程420和音素评估过程430。信号处理过程410、声学建模过程420、音素评估过程430和词语/语言/语法建模过程440分别以与图1的信号处理级110、声学建模级120、音素评估级130和词语/语言/语法建模级140相似的方式运行,除非在本文中另外进行了说明。
[0055]参考图4的实施方式,反馈450是语音识别过程400的可选特性,其中根据本发明的实施方式,音素评估过程430可向声学建模过程420提供有效的聚类状态列表。声学建模过程420可将一个或多个特征矢量与在有效聚类状态列表中指示的一个或多个聚类状态进行比较。
[0056]在另一个实施方式中,声学建模过程420可将一个或多个特征矢量与跟声库有关的所有聚类状态进行比较。在这种情况下,不需要反馈450,因为音素评估过程430从声学建模过程420接收一整组聚类状态分数(例如,“给所有打分”功能),以供进一步的处理。可在2012年6月6日提交的美国专利申请第13/489,799号中找到关于“给所有打分”功能的额外信息。
[0057]4.声协作处理器结构
[0058]图5是ACP 500的实施方式的图例。在一个实施方式中,ACP 500是集成芯片,其包含接口模块510、隐马尔可夫模型(HMM)模块520、聚类状态打分单元(SSU) 530和存储模块540。在另一个实施方式中,接口模块510、HMM模型520、SSU 530和存储模块540中的每一个都可集成到单独的芯片上或以任何组合的形式集成到共同的芯片上。例如,但非限制性地,接口模块510和HMM模块520可被集成在同一个芯片上,而SSU530和存储模块540可被集成到它们自己各自的芯片上。可选择地,接口模块510、HMM模块520和SSU 530可被集成到同一个芯片上,而存储模块540可被集成到其自己的芯片上。
[0059]ACP 500如同CPU(未在图5中示出)一样被集成到单独的芯片上,并经由输入/输出(I/o)总线505与CPU进行通信,其中ACP 500被配置成实施根据本发明的实施方式实施声学建模过程(例如,图4的声学建模过程420)和音素评估过程(例如,图4的音素评估过程430)。在一个实施方式中,I/O总线505可通过API定义,其中I/O总线505可被用于促进用于ACP 500的特征矢量信息、音素分数信息和其他I/O控制信号的数据传输。根据本发明的实施方式,ACP 500可被配置成经由I/O总线505从CPU接收一个或多个特征矢量(由CPU计算)并经由I/O总线505向CPU发送音素分数,以供进一步的处理(例如,图4的词语建模过程440)。在一个实施方式中,例如,I/O总线505可被实现成SPI总线、PCI总线、AXI总线、AHB总线、APB总线、存储器总线或任何其他类型的总线,以便提供在ACP 500和CPU之间的通信路径(参见,例如,图5-7和2012年6月6日提交的美国专利申请第13/489,799号的相关描述)。
[0060]参考图5,接口模块510被配置成控制ACP 500和外部CPU之间的数据传输。在一个实施方式中,接口模块510可以控制一个或多个特征矢量的接收和来自外部CPU的一个或多个HMM打分要求以及从ACP 500到CPU的一个或多个音素分数(例如,HMM状态分数)的传输。在一个实施方式中,接口模块510被配置成经由总线515从CPU向SSU模块530传输一个或多个特征矢量,以供进一步的处理,以及从CPU向HMM模块520传输一个或多个HMM打分要求,以供进一步的处理。虽然SSU模块530计算用于数据帧的一个或多个聚类状态分数且HMM模块520遍历HMM(下文中将详细描述),但是,根据本发明的实施方式,CPU还搜索另外的HMM,以便进行评估并向接口模块510发送另外的HMM打分要求。如在下文中描述的,HMM模块520接收补充列表形式的HMM打分要求。
[0061]根据本发明的实施方式,一旦计算聚类状态分数,就将聚类状态分数从SSU模块530传输到存储器模块540。在另一个实施方式中,将聚类状态分数存储在SSU模块530中的存储设备中(图5中未示出)。例如,可在2012年6月6日提交的美国专利申请第13/489,799号中(例如,参见图14的SSU 1430和相关说明)找到关于由SSU模块530进行聚类状态分数的计算的详细信息。在一个实施方式中,SSU模块530计算用于数据帧(例如,1ms的时间区间或帧)的一个或多个聚类状态分数,而CPU计算同一个数据帧的补充列表(下文中更详细描述),并经由接口模块510将补充列表传输至HMM模块520。
[0062]图6是存储模块540的实施方式的图例。存储模块540包含存储控制器610和存储设备620。在一个实施方式中,存储控制器610被配置成控制在接口模块510和存储设备620之间经由总线545的数据传输,在HMM模块520和存储设备620之间经由总线537的数据传输,以及在SSU模块530和存储设备620之间经由总线535的数据传输。根据本发明的实施方式,存储设备620可以是易失性存储设备,例如但不限于,动态随机存取存储器(DRAM)设备。根据本发明的实施方式,存储设备620可被用于存储声库(例如,一个或多个高斯概率分布),其中在计算聚类状态分数期间SSU模块530经由总线535访问存储设备620。在一个实施方式中,存储设备620还可被用于存储聚类状态分数和HMM信息(例如,HMM词典、HMM状态信息和先验转移概率信息),其中HMM模块520经由总线537访问存储设备620。根据本发明的实施方式,存储设备620还可被用于存储由ACP 500从CPU接收到的控制信息,其中可经由总线545将控制信息传输至存储设备620。
[0063]图7是HMM模块520的实施方式的图例,HMM模块520被配置成遍历隐马尔可夫模型。HMM模块520包含HMM产生器710、直方图剪枝模块720、HMM打分模块730、直方图产生器740、预剪枝模块750、弧产生器760、存储设备770和缓存780。根据描述,相关领域的普通技术人员将意识到HMM模块520的组件能够以流水线的方式遍历HMM。
[0064]HMM产生器710被配置成从缓存780中存储的补充列表接收弧数据。在一个实施方式中,弧数据包含ACP 500经由图5中的I/O总线505从CPU接收到的HMM ID和初始HMM状态分数。根据本发明的实施方式,处理弧数据之前,HMM产生器710验证图6的存储设备620中是否存在弧数据。在存储模块620中存储的弧数据(例如,HHM ID和HMM状态分数)在本文中还被称为位于ACP 500的“有效列表”中。存储设备770在存储设备620中存储对应于数据状态的一个或多个状态比特,并可以是具有快于图6的存储设备620