获取有效hmm的混合散列方案的制作方法
【专利说明】获取有效HMM的混合散列方案
[0001]背景
[0002]领域
[0003]本发明的实施方式大体上涉及到数据模式识别。更具体地,本发明的实施方式涉及到用于数据模式识别的音素分数加速器。
[0004]背景
[0005]越来越多地使用实时数据模式识别来分析电子系统中的数据流。例如,在具有超过数以万计的词的词汇表上,语音识别系统取得了更好的准确度,使其成为电子系统的吸引人的特性。在诸如移动设备、服务器、汽车和PC市场的以数据模式识别应用为目标的消费者市场中,语音识别系统变得越来越普遍。
[0006]尽管在语音识别系统中的准确度有所提高,但是,大量的计算资源却被用于语音识别处理,继而将大量负荷施加在诸如多用户/多编程环境的计算机系统上。多编程计算系统同时处理来自各种应用的数据,因此,由语音识别处理施加在这些计算系统的负荷将影响计算系统能够处理输入的声音信号和来自其他应用的数据的速度。而且,对于通常包含有限存储器资源(如与台式计算系统相比而言)的手持式设备,语音识别应用不仅将大量负荷施加在手持设备的计算资源上,而且还消耗手持设备的存储器资源的很大一部分。实时或本质上接近实时地处理输入的声音信号的需求进一步加重了上述语音识别系统的处理负载量、速度和存储资源中的问题。
[0007]内容
[0008]因此,具有对语音识别系统施加在计算系统的处理负载量、速度和存储资源上的负荷进行改善的需要。
[0009]本发明的实施方式包含数据存储设备。所述数据存储设备包含第一存储设备、第二存储设备、以及处理设备。第一存储设备被配置成存储一个或多个数据元素。第二存储设备被配置成在一个或多个相应的表索引处存储一个或多个状态比特。此外,每一个表索引被映射到第一存储设备中的对应表索引。处理设备被配置成基于一个或多个数据元素计算一个或多个散列值。
[0010]本发明的另一个实施方式包含用于存储数据的方法。所述方法可包含以下步骤:将第一数据散列,以产生表索引;以及在第一存储设备的表索引处读取有效比特。有效比特指示在第二存储设备的对应表索引处的表条目是否有效。
[0011]下面参考附图详细描述本发明的其他特性和优点、以及本发明的各种实施例的结构和操作。应注意,本发明不限制于本文所描述的特定实施方式。只出于说明的目的在本文中提出这些实施方式。基于本文中包含的指导,其他的实施方式对于相关领域的技术人员将变得明显。
[0012]附图简述
[0013]被并入本文且形成说明书的一部分的附图阐述本发明的实施方式,并连同描述进一步地用来解释本发明的原理,并使得相关领域的技术人员能够制造并使用本发明。
[0014]图1是根据本发明的实施方式的语音识别过程的示例性流程图的图例。
[0015]图2是传统的语音识别系统的图例。
[0016]图3是传统的语音识别系统的图例,其具有由单个处理单元实施的语音识别处理。
[0017]图4是由声协同处理器(ACP)和中央处理单元(CPU)实施的语音识别处理的实施方式的图例。
[0018]图5是声协同处理器(ACP)的实施方式的图例。
[0019]图6是声协同处理器(ACP)中的存储器模块的实施方式的图例。
[0020]图7是声协同处理器(ACP)中的隐马尔可夫模型(HMM)模块的实施方式的图例。
[0021]图8是用于声信号处理的方法的实施方式的图例。
[0022]图9是哈希表的实施方式的图例。
[0023]图10是哈希表搜索过程的实施方式的图例。
[0024]图11是哈希表插入过程的实施方式的图例。
[0025]图12是哈希表剩余有效处理的实施方式的图例。
[0026]图13是示例计算机系统的图例,本发明的实施方式或其一部分可在该示例计算机系统中被实现为计算机可读代码。
[0027]详细说明
[0028]以下详细说明涉及到附图,附图阐明与本发明一致的示例性实施方式。其他实施方式是可能的,并且可在本发明的精神和范围之内对实施方式进行修改。因此,详细说明并不旨在限制本发明的范围。相反,本发明的范围由所附权利要求定义。
[0029]对于相关领域的技术人员明显的是,如下文中所描述地,可在软件、硬件、固件和/或图中所示实体的很多不同实施方式中实现本发明。因此,以一种理解描述本发明的实施方式的操作性的行为,这种理解是,根据本文给出的具体描述的程度,对实施方式的修改和改变是可能的。
[0030]该说明书公开了包含本发明的特性的一个或多个实施方式。所公开的实施方式仅仅举例证明本发明。本发明的范围不限制于所公开的实施方式。本发明由随附的权利要求限定。
[0031]所描述的实施方式和说明书中参考的“一个实施方式”、“实施方式”、“示例实施方式”等表示所描述的实施方式可包含特定特性、结构或特征,但不是所有的实施方式必须包含特定特性、结构或特征。而且,这些短语并不一定指的是同一个实施方式。另外,当将特定特性、结构或特征与实施方式相联系进行描述时,应理解的是,本领域的技术人员掌握将这些特性、结构或特征与其他实施方式相结合进行实现的知识,而不管其是否被具体描述。
[0032]1.语音识别过程
[0033]图1是根据本发明的实施方式的语音识别过程100的示例性流程图的图例。语音识别过程100包含信号处理级110、声学建模级120、音素评估级130和词语/语言/语法建模级140。
[0034]在信号处理级110中,可对输入的模拟信号形式的声音信号105进行滤波,以便去除信号中位于人耳能听到的频率范围之外的高频成分。然后使用相关领域的技术人员熟知的采样和量化技术使经滤波的信号数字化。可使用诸如线性预测编码和快速傅立叶变换等技术从数字化波形中提取一个或多个参数化的数字表示(在本文中还被称为“特征矢量115”)。这种提取能够以例如大约1ms的定期的时间区间或帧发生。
[0035]在声学建模级120,将来自信号处理级110的特征矢量115与在存储器中存储的一个或多个多变量高斯概率分布(在本文中还被称为“高斯概率分布”)进行比较。在存储器中存储的该一个或多个高斯概率分布可以是声库的一部分,其中高斯概率分布的混合物表示聚类状态(senone)。聚类状态指的是用于感兴趣的语言的子语音单元,如相关领域的技术人员理解的。单个聚类状态可由例如8个部分组成,其中每个部分可表示39维的高斯概率分布。
[0036]例如,声学建模级120可处理超过1000个聚类状态。因此,特征矢量115和一个或多个高斯概率分布的比较可能是计算上和存储上密集的任务,因为例如每个时间区间或帧(例如,1ms)可能将成千上万个高斯概率分布与特征矢量115进行比较。用于声库中表示的每一个聚类状态的一组分数(本文中还被称为“聚类状态分数”)是由将特征矢量115中的每一个与一个或多个高斯概率分布中的每一个进行比较产生的。声学建模级120向音素评估级130提供聚类状态分数125。
[0037]在音素评估级130,隐马尔可夫模型(HMM)可被使用于将音素表示为状态集合和每一个状态之间的转移概率的先验集合,其中状态与聚类状态有关。对于聚类状态的特定的观察序列,对应的HMM中具有最可能的状态序列。可将这个对应HMM与所观察的音素相联系。维特比算法可被用于找出每个HMM对应音素的可能性。
[0038]维特比算法进行一种计算,该计算始于第一帧,且然后以时间同步的方式一次一帧地继续进行至后续的帧。针对正被考虑的HMM中的每个聚类状态计算概率分数。因此,当维特比算法分析连续帧时,可为每一个可能的聚类状态序列相继计算累计概率分数。与由声学建模级120进行的聚类状态分数计算相似,概率分数的累计计算可能是计算上和存储上密集的任务。音素评估级130向词语/语言/语法建模级140提供语音可能性或概率135 (在本文中还被称为“音素分数”)。
[0039]在词语/语言/语法建模级140中,使用搜索技术来随时间确定最可能的音素串和最终的词语。诸如树形算法等的搜索技术可被使用于确定最可能的音素串。如相关领域的技术人员将理解的,音素评估级还可被用于计算可变长度的HMM的分数,例如,其表示音素序列、完整的词语或有限状态转换器的弧(arc)。
[0040]2.传统的语音识别系统
[0041]图2是传统的语音识别系统200的图例。语音识别系统200包含输入设备210、处理单元220、存储设备230和数据总线240,这些全部为单独的物理组件。例如,存储设备230可以是动态随机访问存储器(DRAM)设备,其在处理单元220的外部,并通过数据总线240与处理单元220进行通信。输入设备210也通过数据总线240与处理单元220进行通信。数据总线240具有例如为8至32比特的典型的总线宽度。
[0042]输入设备210被配置成接收输入的声音信号(例如,图1中的输入的声音信号105),并将与输入的声音信号有关的声震动转换为模拟信号。使用模数转换器(图2中未示出)将模拟信号数字化,并将产生的数字信号在数据总线240上传输至处理单元220。例如,输入设备210可以是麦克风。
[0043]处理单元220被配置成根据结合图1在上文中描述的信号处理级110、声学建模级120、音素评估级130和词语/语言/语法建模级140的顺序来处理数字输入信号。图3是语音识别系统200的图例,其具有由处理单元220实施的语音识别模块。处理单元220包含信号处理模块310、声学建模模块320、音素评估模块330和词语/语言/语法建模模块340,其分别以与图1中的信号处理级110、声学建模级120、音素评估级130和词语/语言/语法建模级140相似的方式运行。
[0044]参考图3,信号处理模块310可将输入的声音信号305 (例如,来自输入设备210)的数字输入信号表示转换为一个或多个特征矢量315。声学建模模块320将一个或多个特征矢量315与在存储设备230的声库中存储的一个或多个高斯概率分布进行比较。S卩,对于一个或多个特征矢量315和一个或多个高斯概率分布的比较中的每一个比较,处理单元220通过数据总线240访问存储设备230。对于具有成千上万个聚类状态的声库(其中每个聚类状态都由多个高斯概率分布组成)而言,不仅是由声学建模模块320实施的比较在计算上密集,而且声学建模模块320通过数据总线240对存储设备230的成千上万个访问也是存储上密集的并耗时的。此外,音素评估模块330为了概率分数的累计计算也要访问存储设备230。数据总线240的总线宽度(例如,通常8至32个比特)进一步恶化对存储设备230的成千上万个访问,其中声学建模模块320、音素评估模块330可能需要对存储设备230的多个访问。另外,与数据总线240有关的互连寄生可能使存储设备230和声学建模模块320之间以及存储设备230和音素评估模块3