一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

具有高效解码的自动语音识别方法及系统与流程

2021-09-29 01:08:00 来源:中国专利 TAG:高效 解码 语音识别 方法 系统


1.本技术涉及具有高效解码的自动语音识别方法及系统。


背景技术:

2.语音识别系统或自动语音识别器变得越来越重要,因为越来越多的基于计算机的设备使用语音识别来接收来自用户的命令,以便执行某动作以及将语音转换成文本以用于听写应用,或者甚至在信息在一个或两个方向上被交换的情况下与用户保持对话。因此,自动语音识别(asr)对于可穿戴设备、智能手机和其他小型设备以及任何其他需要音频识别的计算机或设备都是需要的。
3.这些asr系统中的一些是大词汇量系统,例如用于智能电话或其他移动设备以及一些计算机上的个人助理。这些大词汇量asr系统具有相对大的计算负荷。然而,由于asr的计算负荷大和复杂性,很难实时操作这些系统,特别是当大词汇量asr系统被嵌入在移动设备上或机载在(或本地于)移动设备时。通常,这种用于小型设备的机载asr系统具有太慢的机载计算能力、相对较低质量的单词识别、和/或较高的功耗,使得asr不切实际。大词汇量asr系统还需要相对大量的处理器和其他配套硬件,并缩短电池寿命。除了小型移动设备外,对于诸如膝上型计算机之类的较大的系统也是如此。因此,需要一种高质量asr系统,其在使用更低的功耗和降低的硬件需求的同时提供足够准确的实时单词识别。


技术实现要素:

4.本技术的一个方面提供了一种计算机实现的自动语音识别方法,包括:获得音频数据,所述音频数据包括被分成帧的人类语音;通过语音识别解码器传播这些帧的令牌,包括:针对各个帧更新解码器束宽,所述更新发生在所述帧中的一个帧的当前令牌分数被计算之后并且在同一个帧的后续令牌分数被与更新后的束宽进行比较之前,其中后续是相对于计算所述当前令牌分数时而言的,并且其中所述更新针对所述一个帧的多个当前令牌分数被重复;以及根据所述令牌分数,确定一个或多个假设声音、单词或短语。
附图说明
5.本文描述的材料在附图中以示例而不是限制的方式示出。为使图示简单和清楚起见,图中所示的元件不一定按比例绘制。例如,为了清楚起见,某些元件的尺寸可以相对于其他元件被夸大。此外,在被认为合适的情况下,在附图之间重复附图标记以指示相应或类似的元件。在附图中:
6.图1是示出根据本文的至少一个实现方式的自动语音识别(asr)系统的示意图;
7.图2是根据本文的至少一个实现方式的具有高效解码的自动语音识别过程的流程图;
8.图3a

3b是根据本文的至少一个实现方式的具有高效解码的自动语音识别过程的详细流程图;
9.图4是根据本文的至少一个实现方式的asr解码器网络结构的示意图;
10.图5是根据本文的至少一个实现方式的在添加新令牌之前的解码器的示例束宽直方图的图;
11.图6是根据本文的至少一个实现方式的示例令牌池的示意图;
12.图7是根据本文的至少一个实现方式的在添加令牌之后的解码器的示例束宽直方图的图;
13.图8是示例系统的说明图;
14.图9是另一示例系统的说明图;以及
15.图10示出了另一示例设备,全部根据本公开的至少一些实现方式来布置。
具体实施方式
16.现在参照所附附图描述一个或多个实现方式。虽然讨论了具体的配置和布置,但应该理解,这仅是为了说明目的而执行的。相关领域的技术人员将认识到,在不脱离本说明书的精神和范围的情况下,可以采用其他配置和布置。对于相关领域的技术人员来说显而易见的是,本文描述的技术和/或布置也可以用于除本文描述之外的各种其他系统和应用中。
17.尽管下面的描述阐述了可以在诸如例如片上系统(soc)体系结构之类的体系结构中体现的各种实现方式,但是本文描述的技术和/或布置的实现方式不限于特定的体系结构和/或计算系统,并且可以由任何体系结构和/或计算系统出于类似的目的来实现。例如,采用例如多个集成电路(ic)芯片和/或封装的各种体系结构,和/或各种计算设备和/或消费电子(ce)设备(例如,包括智能电话、智能扬声器和可穿戴设备(诸如智能手表、智能腕带、智能耳机和智能眼镜)的移动设备,还有膝上型或桌上型计算机、视频游戏面板或控制台、电视机顶盒、听写机器、车辆或环境控制系统等),可以实现本文描述的技术和/或布置。此外,尽管下面的描述可以阐述许多具体细节,例如逻辑实现方式、系统组件的类型和相互关系、逻辑分区/集成选择等,但是所要求保护的主题可以在没有这些具体细节的情况下实施。在其他情况下,诸如例如控制结构和完整的软件指令序列之类的某些材料可能不会详细示出,以便不模糊本文公开的材料。本文公开的材料可以以硬件、固件、软件或其任意组合来实现。
18.本文公开的材料还可以被实现为存储在机器可读介质或存储器上的指令,其可以由一个或多个处理器读取和执行。机器可读介质可以包括用于以机器(例如,计算设备)可读的形式存储或传输信息的任何介质和/或机制。例如,机器可读介质可以包括只读存储器(rom);随机存取存储器(ram);磁盘存储介质;光存储介质;闪存设备;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)等等。在另一形式中,诸如非暂时性计算机可读介质之类的非暂时性物品可以与上述任何示例或其他示例一起使用,除了其不包括暂时性信号本身。其包括除信号本身以外的,可以以“暂时性”方式暂时保存数据的那些元件(诸如ram等)。
19.在本说明书中,对“一个实现方式”、“实现方式”、“示例实现方式”等的引用指示所描述的实现方式可以包括特定的特征、结构或特性,但每个实现方式可能不一定包括该特定的特征、结构或特性。此外,这些短语不一定指同一实现方式。此外,当结合实现方式描述
特定的特征、结构或特性时,主张结合其他实现方式(无论本文是否明确描述)来影响这种特征、结构或特性是在本领域技术人员的知识范围内的。
20.具有高效解码的自动语音识别系统、物品和方法。
21.小型计算机设备通常使用个人助理应用来执行自动语音识别(asr)以接收和识别音频命令或信息请求。通过一些示例,个人助理可以执行某任务,例如查找联系信息、拨打电话、找到去往某个位置的方向、或者在互联网上搜索关键字,仅举几个例子。这样的asr应用以及许多其他这样的asr应用使用大词汇量,这导致计算上有要求、通信繁重且数据密集的工作负荷,其中大计算负荷需要相对大量的处理器并且消耗大量的能量(或电池电力)。当移动设备支持嵌入式、独立的大词汇量asr能力而没有来自远程系留设备的帮助且没有大电池容量时,尤其需要电池寿命延长。对于较大的计算机(诸如膝上型计算机)也是如此。
22.具体地,asr通常涉及通过使用声学前端将音频的窗口或帧变换成特征向量,来从所捕获的音频信号中提取音频特征。然后,声学分数针对由这些特征形成的语音学单元(phonetic unit)被生成,并且这些声学分数被提供给诸如加权有限状态换能器(weighted finite state transducer,wfst)之类的解码器,以生成最可能话语的假设。然后,语言解释单元确定哪个假设是正确的所说语言。
23.然而,当试图在电池供电的设备上实时运行asr时会出现困难。当asr正在嵌入式设备上实时运行时,解码器使用非常大量的计算。传统的wfst解码器使用统计语言模型和维特比(viterbi)搜索算法来将令牌传递通过解码器上的状态或节点。在每个时间帧中,例如每30毫秒,解码器获得在最后一帧期间被创建的令牌列表。检查来自列表上那些先前令牌的令牌分数,以确定这些令牌分数是否位于束宽内。如果是,则解码器基于针对当前帧的wfst的拓扑来创建新的令牌分数。束宽被选择为使得同时被处理的令牌的数目不超过在提供足够量的精确度的同时可针对实时操作被处理的最大令牌数目。
24.由于使用的计算量不是恒定的,所以解码器的计算负荷甚至更成问题。通常,在话语(例如,句子、短语、单词或声音)开始处存在短时间的高计算需求突发,之后是计算要求相对低的阶段。具体地,通用维特比搜索算法通常在话语开始附近生成计算峰值和存储器事务泛洪,因为与在话语结尾处相比,解码器通常在话语开始附近的帧中针对数目多得多的令牌生成令牌分数。这尤其发生在句子开头,因为不存在语言模型可以根据其缩小搜索空间的附加上下文。这导致话语中的计算峰值出现在较接近话语开始的帧处。与整个话语的平均计算负荷相比,计算峰值可能需要五倍或更多的计算和/或带宽来在固定时间段处理帧。要实时运行asr而没有显著延迟,则处理器必须能够处理这些计算突发,这需要针对足够量硬件的更高基本成本来处理更多的计算和执行处理所需的更多能量。这种现象要求开发者分配比针对asr的平均计算负荷所需的资源量大得多的资源量,以便实现准确的实时语音识别。
25.许多常规策略试图限制或减少解码器处asr处理的总计算负荷,但是这些策略在解码话语时没有具体解决计算峰值。例如,直方图修剪被用于在帧经过处理后减小解码器的束宽,并设置下一帧的束宽。当针对帧计算令牌分数时,这些令牌分数被添加到令牌列表(或池),其然后在束宽直方图中被计数,该束宽直方图对每个令牌分数值的出现次数进行计数。束宽是由状态表示的、在任何一个时刻能够存在于换能器上的最大令牌数目。束宽通常被固定在计算设备可以同时(或在相对短的时间内)进行处理以维持实时asr的某令牌数
目,并且可以根据期望的误字率(word error rate,wer)和实时因子(rtf)来设置,实时因子是asr的处理速度或性能的常用度量。通过一种形式,rtf可以通过将处理话语所需的时间除以该话语的持续时间来计算。
26.可以处理如下令牌:这些令牌具有n个最佳分数且是形成束宽的固定令牌数目。束宽被描述为:被设置在仍使束宽令牌计数的最大(或最差)令牌分数处。一旦获得帧的所有令牌分数,则对令牌分数进行计数,并且可以针对下一帧设置束宽。当在当前帧中生成太多令牌时,分数最低的那些令牌被丢弃以满足针对下一帧的束宽的令牌限制。在当前帧中针对这些丢弃的令牌执行的计算(以及用于执行计算的功耗)是不必要的资源浪费,这通过下面描述的解码方法来避免。虽然用于形成束宽的令牌的目标数目可以是预定和固定的,但是束宽的最大令牌分数可以变化,这进而可以改变针对下一帧的令牌分数和实际放置在解码器上的令牌数目,如下面详细描述的。
27.为了进一步减少计算负荷,可以使用更严格的修剪参数,其减少允许的令牌总数。这是在通常的令牌计数限制之外对束宽的附加限制。然而,使用更严格的修剪不仅减少了计算,也降低了识别准确度。一般来说,束宽越大,语音识别越准确,但处理越慢。这种降低的准确度会导致更差的用户体验。
28.用于在解码期间减少计算负荷的另一种方式是将令牌分数与阈值进行比较。在这种情况下,随着令牌分数在通过解码器传播时改变,令牌被多次比较,并与启发式定义的令牌分数阈值进行比较。这导致在不改变帧的束宽的情况下,基于其令牌分数而移除一些令牌。执行这种操作而不是改变束宽,是因为该阈值是出于不同的原因而被添加的。该技术追踪哪些令牌分数被丢弃以及它们的值,从而集中于对当前帧的影响。相反,本方法集中于哪些令牌分数应该对束宽直方图作出贡献,因此集中于对未来帧的影响。这些优化会略微提高性能,但不会显著改变处理流程。因此,使用这些传统方法无法避免增加的计算峰值需求。
29.为了避免这些缺点并延长使用asr的设备上的电池寿命,本文提出的asr方法提高asr性能并降低asr引擎的计算负荷。这是通过在对单帧的解码期间多次单独更新束宽本身来实现的(通过一个示例,这可以被称为帧内直方图修剪或帧内束宽更新)。该束宽更新可以在每次将令牌分数添加到令牌列表时或以某种其他所需间隔来执行。在这种情况下,在处理单帧期间,束宽可以被多次减小。这种帧内直方图修剪导致计算尖峰的显著减少,因为只要令牌的令牌分数不在更新后的束宽内,就可以消除令牌,而不是在帧内针对令牌计算多个令牌分数,然后无论如何因为未适配(fit)在仅在该帧的末尾处更新的束宽内而在该帧的末尾将该令牌丢弃。
30.帧内直方图修剪减少在令牌在解码器处通过期间所需计算的可变性,从而使能连续的大词汇量语音识别,并进而在许多设备上使能实时大词汇量asr,这些设备包括具有降低的计算、存储器带宽和功耗需求的低功率嵌入式设备。与传统系统相比,它还降低平均资源使用率,并提供更好的准确度。
31.现在参考图1,环境敏感型自动语音识别系统10可以是语音使能的人机接口(hmi)。而系统10可以是或可以具有,处理音频并具有足够的存储器、处理器和电力用于asr的任何设备,例如智能手机、智能手表、智能眼镜、智能健身腕带、智能扬声器等,以及具有asr的车辆应用或其他应用。在这类设备上,功耗通常是使高效语音识别实现成为必需的关
键因素。此处,asr系统10可以具有用于从用户12接收声波的音频捕获或接收设备14(诸如例如麦克风),并且其将这些波转换成可以记录在存储器中的原始电声信号。系统10可以具有提供模拟预处理和信号调节的模拟前端16以及模拟/数字(a/d)转换器,以向声学前端单元18提供数字声学信号。可选地,麦克风单元可以是数字的,并且通过诸如脉冲密度调制(pdm)接口之类的两线数字接口直接连接。在这种情况下,数字信号被直接馈送到声学前端18。声学前端单元18可以执行预处理,预处理可以包括信号调节、噪声消除、采样率转换、信号均衡和/或预加重滤波以使信号平坦。声学前端单元18还可以将声学信号分成帧,例如10ms或30ms帧。然后,经预处理的数字信号可以被提供给特征提取单元19,该特征提取单元19可以是也可以不是asr引擎或单元20的一部分。特征提取单元19可以执行或可以链接到话音活动检测单元(未示出),该话音活动检测单元执行话音激活检测(vad)以标识话语的端点以及线性预测、梅尔倒谱(mel

cepstrum)和/或诸如能量度量、和差量和加速系数之类的附加量,并执行诸如加权函数、特征向量堆叠和变换、维度降低和归一化之类的其他处理操作。特征提取单元19还使用傅立叶变换等从声学信号中提取声学特征或特征向量,以标识信号中提供的音素(phoneme)。声学评分单元22(其可以被认为也可以不被认为是asr引擎20的一部分)然后使用声学模型来确定要标识的上下文相关音素的概率分数。
32.解码器23使用声学分数来标识话语假设并计算它们的分数。解码器23使用可被表示为网络(或图形或格)的计算,其可被称为如上所述的加权有限状态换能器(wfst)。wfst具有弧(或边)和由弧互连的状态(在节点处)。弧是在wfst上从状态延伸到状态的箭头,并显示流动或传播的方向。另外,wfst解码器23可以动态地创建单词或单词序列假设,该单词或单词序列假设可以是提供置信度量的单词格(word lattice)的形式,并且在某些情况下可以是提供可选结果的多个单词格的形式。wfst解码器23形成wfst,该wfst可以在被用于解码之前以任何顺序被确定、最小化、推入权重或标签、或以其他方式变换(例如,通过按权重、输入或输出符号对弧进行排序)。wfst可以是确定性的或非确定性的有限状态换能器,其可以包含epsilon弧。wfst可以具有一个或多个初始状态,并且可以静态地或动态地由词典wfst(l)和语言模型或语法wfst(g)组成。可选地,wfst可以具有被实现为树的词典wfst(l)而没有附加的语法或语言模型,或者wfst可以静态地或动态地由上下文敏感wfst(c)组成或由隐马尔可夫模型(hmm)wfst(h)组成,其中hmm wfst(h)可以具有hmm转换(hmm transition)、hmm状态id、高斯混合模型(gmm)密度、或深度神经网络(dnn)输出状态id作为输入符号。在传播之后,wfst可以包含可以具有单独权重的一个或多个最终状态。解码器23使用用于单最佳语音解码的已知的特定规则、构造、操作和属性,并且不进一步解释这些内容的此处不相关的细节,以便提供对本文描述的新特征的布置的清楚描述。
33.wfst解码器可以通过使用令牌生成单元32和传播单元34来形成假设单词序列或单词格。这些单元32和34使用声学分数和令牌传递算法来形成话语假设。单个令牌代表所说话语的一种假设,并且代表根据该假设所说的单词。在解码期间,令牌生成单元32生成或获得令牌的值,并在wfst的状态中放置几个令牌,每个令牌代表到该时间点可能已经说出的不同的可能话语。在解码开始时,将单个令牌放置于wfst的开始状态。在离散的时间点(所谓的帧)期间,传播单元34沿着wfst的弧传输每个令牌或传播每个令牌,随令牌传播计算针对令牌的令牌分数。如果wfst状态具有不止一个传出弧,则令牌会被复制,从而针对每个目的地状态创建一个令牌。如果令牌沿着wfst中具有非epsilon输出符号的弧传递(即,
输出不为空,从而存在附加到该弧的单词假设),则输出符号可用于形成单词序列假设或单词格。在单最佳解码环境中,仅考虑wfst的每个状态中的最佳令牌就足够了。如果不止一个令牌被传播到同一状态中,则发生重组,其中除了这些令牌中一个令牌之外的所有令牌都被从活动搜索空间中移除,使得几个不同的话语假设被重组成单个话语假设。在一些形式中,根据wfst的类型,可以在令牌传播期间或之后收集来自wfst的输出符号,以形成一个最可能的单词格或可选单词格。
34.具体地,每个换能器具有如上所述的束宽和缓冲器40上的当前令牌缓冲器大小或列表42,其可以根据snr进行修改以在wer和rtf之间选择适当的折衷。束宽参数与针对最佳句子假设进行的广度优先搜索有关,这是语音识别过程的一部分。在每个时间实例中,都会保持有限数目的最佳搜索状态。束宽越大,保持的状态越多。换言之,如上所述,束宽是由状态表示的且可以在任何一个时间实例存在于换能器上的令牌的最大数目。这可以通过限制当前令牌缓冲器的大小来控制,该当前令牌缓冲器的大小与束宽的大小相匹配,并且保持通过wfst传播的令牌的当前状态。
35.wfst的另一个参数是弧的过渡权重,其可以被修改以强调或不强调总的可用词汇表中的某相关子词汇表部分,以用于更准确的语音识别。
36.对于根据本文的方法的束宽更新,并且如上所述,帧内束宽更新是通过由直方图单元36执行的更新束宽直方图来执行的,并且在每次由传播单元34在解码器处生成令牌分数时执行。一旦直方图被调整,则束宽控制单元38通过以下操作来确定束宽:从最好分数到最差分数确定或计数作为当前束宽(或束容量)的令牌分数。无论哪个分数是形成束的最后一个分数,它都将成为最大(或最差)令牌分数,并设置束宽。例如,当束宽允许1000个令牌时,假定这在直方图上包括分数0到16,并且令牌分数16被设置为当前束宽。在解码器节点上中断那些令牌分数大于16的令牌,并且那些令牌的传播结束。在对单个同一帧的处理期间,这针对单次或每次令牌分数被计算时发生,而不是等待帧的结尾,这显著降低了处理令牌所需的计算负荷,因为相对恒定的束宽调整显著且相对快速地降低需要计算和/或处理的令牌分数的数目。这也可以与解码器上的节点(或状态)的顺序无关地发生,并且进而令牌是针对单帧处理的。下面提供了其他详细信息。
37.输出的一个或多个单词格(或其他形式的输出假设短语、声音、一个或多个句子)被使得可用于语言解释器和执行单元(或解释引擎)24,以确定用户意图。这种意图确定或所说话语分类可以基于决策树、表格填充算法、或统计分类(例如,使用支持向量网络(svns)或深度神经网络(dnn))。
38.一旦针对话语确定了用户意图,则解释引擎24还可以输出响应或发起动作。例如,该响应可以是通过扬声器组件26的音频形式,或者是作为显示组件28上的文本的可视形式。否则,可以发起动作来控制另一终端设备30(无论是否被认为是与语音识别系统10相同的设备的一部分,或在该设备内)。例如,用户可以要求个人助理使用搜索引擎上的关键词来查找演员的电影。终端设备30可以简单地是软件,而不是物理设备或硬件或其任意组合,并且除了具有理解从语音识别确定产生的命令或请求并根据该命令或请求执行或发起动作的能力之外,终端设备30并不特别限于任何东西。
39.参考图2,提供了具有高效解码的计算机实现的语音识别方法的示例过程200。在所示实现方式中,过程200可以包括一个或多个操作、功能或动作,如由均匀编号的操作202
至212中的一个或多个所示。作为非限制性示例,本文可以在相关的情况下参考图1和8

10的示例语音识别设备10、800、900或110中的任何一个来描述过程200。
40.过程200可以包括“获得包括被划分为帧的人类语音的音频数据”202,特别是来自例如一个或多个麦克风的音频记录或实况流数据。上面已经描述了将音频信号划分成帧,例如10ms或30ms帧。该操作还可以包括音素的特征提取和声学评分,使得此处所指的帧具有准备好输入到解码器的声学分数。
41.过程200可以包括“通过语音识别解码器传播帧的令牌”204。首先,该操作可以包括针对第一帧分别用弧权重和目的地状态声学分数填充弧和节点。在解码器的每个输入节点处建立令牌,其中令牌分数被设置为缺省值,例如第一音素的声学分数或其他缺省值。在解码器上的传播之后,解码器上输出节点的针对完成的先前帧的令牌分数现在被设置为解码器上针对下一帧的输入令牌分数。这对所有帧重复,直到话语的结尾。
42.该操作还可以包括:“针对各个帧,在帧中的一个帧的当前令牌分数被计算之后并且在同一个帧的后续令牌分数被与更新后的束宽进行比较之前,更新解码器束宽”206,“其中后续是相对于计算当前令牌分数时而言的”208,以及“其中更新针对该一个帧的多个当前令牌分数被重复”210。因此,在当前令牌分数被计算之后,将其与当前束宽进行比较,该当前束宽是束中允许的阈值令牌分数。如果当前令牌分数不在束宽内,则在该点(或节点或目的地状态)中断令牌,并且从正被分析的状态起不针对该令牌执行进一步的计算。如果当前令牌分数在束宽内,则将令牌分数添加到令牌列表(或令牌池),并更新束宽直方图。这样,通过一种形式,在当前令牌分数可以被用作源状态令牌分数以计算新的下一令牌分数之前,通过使用刚刚更新的束宽直方图来更新束宽。以此方式,当每个令牌分数被计算并被添加到令牌列表时,以及每次束宽直方图被更新时,可以更新束宽。通过其他形式,关于是否要更新束宽的确定可以以令牌分数计数的某个固定或可变间隔(例如,每10或100个令牌分数)来设置,或者可以以某个时间间隔(例如,每1ms)来设置,并且无论是否针对每个令牌分数更新束宽直方图,这都可以被使用。可以存在某种平衡算法,用于设置何时束宽被更新,使得束宽更新本身不会不必要地增加计算负荷。
43.否则,束宽可以针对帧的逐个令牌分数而被更新,而不管令牌分数与哪个令牌相关联。因此,解码器不一定逐令牌地计算令牌分数。通过一个示例,解码器可以通过从开始端到结束端的状态位置来计算令牌分数,而不管特定令牌的状态位置。此外,可以在预定最小数目的令牌分数被添加到令牌列表之后发起束宽更新。因此,在解码的一开始,解码器可能还没有足够数目的令牌分数,使得帧内直方图修剪还不值得执行,并且频繁的束宽更新本身将在计算负荷方面代价太高。此外,在帧处理期间,当令牌列表上的令牌分数的数目低于最小阈值时,可以停止帧内束宽更新。下面利用过程300描述如何更新束宽的细节。
44.过程200可以包括“根据令牌分数确定一个或多个假设声音、单词或短语”212。一旦令牌分数被计算出,就收集或以其他方式求和或组合令牌分数,以计算输出符号的概率,以便形成话语假设。然后,可以将这些假设提供给语言模型单元,以供最终确定所说语言。
45.参考图3a

3b,提供了具有高效解码的计算机实现的语音识别方法的示例过程300。在所示实现方式中,过程300可以包括一个或多个操作、功能或动作,如一般地以均匀编号的操作302至336中的一个或多个所示。作为非限制性示例,本文可以在相关的情况下分别参考图1和图8

10的示例语音识别设备10、800、900或1000中的任何一个来描述过程
300。
46.过程300可以包括“获得音频数据的帧”302。这可以包括从由一个或多个麦克风捕获的声学信号中读取包括人类语音的音频输入。音频可以是预先录制的,或者可以是实况音频数据流。该操作可以包括准备好用于如上所述的asr计算的经清理或预处理的音频数据,并且具体地生成准备好用于输入到解码器的10或30毫秒或其他持续时间的声学分数帧。
47.解码器可以是wfst或其他格类型换能器,或者是使用声学分数和/或允许选择本文描述的语言模型的任何其他类型的语言模型。通过一种方法,特征提取和声学评分发生在wfst解码开始之前。通过另一示例,声学评分可以即时(just in

time)发生。如果评分是即时执行的,则其可以按需执行,从而如本文所描述的仅计算在wfst解码期间需要的声学分数。
48.由这样的wfst使用的核心令牌传递算法可以包括针对令牌正在经过的弧导出声学分数,这可以包括将旧(先前)分数加上弧(或过渡)权重加上目的地状态的声学分数。如上所述,这可以包括使用词典、统计语言模型或语法和音素上下文依赖关系以及hmm状态拓扑信息。所生成的wfst资源可以是单个、静态合成的wfst,或者可以是要与动态合成一起使用的两个或更多个wfst。
49.参考图4,示例解码器400具有传播结构或网络401,并且被提供用于参考以解释过程300。解码器400具有状态或节点1至8(被均匀编号为402至416)和被均匀编号的弧440至452,这些弧显示令牌从状态到状态的传播方向。例如,弧440显示从状态1(402)到状态2(404)的传播方向。每个弧440至452具有输入标签418,该输入标签418包括声学分数id(对于弧440为as 1)、输出标签(“times”)、和语言模型(lm)权重(这里对于弧440的示例为2.1)。其他弧显示有类似的输入标签。状态2至8(404至416)中的每一个还被示出为具有分别并均匀编号的令牌或令牌框420至432。每个令牌包括达到该状态的成本(令牌框的顶部)和假设(令牌框的底部)。状态7和8处的最后令牌430和432分别显示完整的假设输出(time is pressing或time is passing)。
50.在操作中,将具有默认开始令牌分数作为源分数的令牌置于状态1 402。然后,通过使用状态2和3处的弧权重和目的地声学分数计算针对状态2和3的新令牌分数,该令牌被并行传播到状态2和3两者。对于每次移动到新状态,重复这一过程。
51.可以针对某帧加载解码器,然后针对下一帧用权重和声学分数重新加载解码器。例如,如下面在声学分数表上所示,针对时间0、1和2处的帧的声学分数都可以是不同的。下面的示例继续根据该结构进行束宽更新的操作。
[0052][0053]
过程300可以包括“重置分数直方图”304。当解码器准备好开始新的帧时,束宽直方图被重置,并且直方图中的任何令牌分数计数都被移除。参考图5,例如,束宽直方图500具有沿着底轴的令牌分数和沿着垂直轴的令牌分数计数。每次或单次针对解码器计算令牌分数时,对令牌分数进行计数,使得在直方图上存在关于多少个令牌分数具有该令牌分数的计数。例如,针对直方图500上的所有令牌分数中的六个不同的令牌分数,显示了6列或6堆(bin),并且从最佳分数到最差分数列出。有12个令牌分数(502)具有相同的最好分数,并且171个令牌分数(504)具有相同的最差分数(这里是16.0的分数)。因此,当前束宽被称为适配在束内的最差令牌分数,这里是16.0。通过确定哪些列(或堆)适配在针对束固定的令牌分数的目标数目(或最大假定令牌计数)(例如,一个示例中为1000个)内来更新束宽。随着令牌分数被计数,这可以改变束宽值(最差令牌分数值),这进而可以改变在束宽中实际允许的令牌数目,即使在令牌分数的目标数目固定的情况下也是如此,因为在束宽中实际允许的令牌分数的数目是通过将整个列(或堆)移入或移出束宽来改变的,而不是直方图上的单个令牌分数。
[0054]
因此,在该示例中,束宽直方图500可以显示16.0的束宽,并且可以从容量高达10000个令牌分数的令牌池中提取(在解码器上使用的保持直到帧结尾的所有分数)。最大假定令牌计数(或目标令牌分数容量)此处为1000,其中池中当前有1000个令牌分数。下面针对帧内束宽更新解释直方图500的操作的更多细节。
[0055]
过程300可以包括“设置初始束宽”306。针对帧开始的初始束宽可以是预定的缺省值,但否则是来自先前帧的最后束宽。通过一种形式,这可以是来自帧内束宽更新的束宽,但也可以是例如来自帧之间常规束宽更新的束宽(当目前采用这种更新时)。
[0056]
过程300可以包括“从先前帧的令牌列表中获得先前帧(pf)令牌”308。当第一帧正在被处理时,可以忽略该操作,但是否则先前令牌列表或先前令牌分数可以具有解码器上针对单个先前帧的所有令牌分数的列表。
[0057]
参考图6,示例令牌列表或池600(其为当前令牌列表)被示为具有四个不同的分数,被示出并编号为601

1至602

n。对于此示例,n可以是1000。
[0058]
过程300可以包括查询“pf令牌分数在先前帧的束宽内?”310。在此,将pf令牌分数
与相对于正被处理的当前帧的先前帧的最后束宽进行比较。可选地,可以使用与先前帧相关联的其他束宽,例如起初被用于批准pf令牌分数的束宽,或者在帧内束宽更新被用在先前帧上的情况下在生成pf令牌分数之后直接形成的束宽。如果pf令牌分数不在束宽内,则过程300可以包括查询“pf令牌列表上是否存在更多pf令牌?”312。如果存在更多令牌,则过程循环回操作308以获得先前帧上的下一个先前令牌分数。如果不存在更多的pf令牌,则过程300可以包括查询“是否存在更多帧?”313。当正在处理最后一帧时,则过程300结束。当还有代表输入音频信号的更多帧要分析时,则该过程循环回到操作302以获得音频帧的数据。
[0059]
利用该布置,针对当前令牌分数进行两个束宽比较。一个比较基于先前帧(pf)令牌分数和先前束宽。如果pf令牌不在来自先前帧的束宽内,则丢弃该令牌,从而避免基于该令牌计算任何新的令牌分数,从而在总体上节省大量的计算负荷和能量浪费。当pf令牌分数在先前束宽内时,则计算新的令牌分数。但即便如此,除非新的当前令牌分数在当前帧的最新束宽内,否则束宽不会被更新。
[0060]
因此,过程300继续进行,使得当pf令牌分数在先前帧的最后束宽内时,过程300可以包括“在当前帧上,在解码器中设置令牌的源状态“s
””
314。这可以是解码器上的任何节点。例如,这可以是通过一种形式将解码器400(图4)的状态1(402)设置为源状态,其中源状态值是pf令牌分数的令牌分数。其他替代方案也在考虑之中。
[0061]
过程300可以包括“在解码器中设置源状态“s”的目的地状态“d
””
316。在此,目的地状态被确定,例如状态2(图4上的402)作为目的地状态。然后,过程300可以包括“生成当前令牌分数”318,这通过使过程300包括“获得弧权重”320(例如解码器400上的lm值),并且可以包括“获得目的地声学分数”322,例如来自上述as 2处时间=0的声学分数表的0.8。接下来,过程300可以包括“使用pf令牌分数、权重和目的地的声学分数计算当前令牌”324,其中通常(并且一般地)将这三个值相加、相乘或以其他方式组合以形成状态2(404)的新的当前令牌分数。
[0062]
过程300可以包括查询“当前令牌分数(在最后一个当前令牌分数之后)是否在当前帧的更新后束宽内?”326。然后将当前令牌分数与最新束宽进行比较。每个新的令牌分数被称为与后续令牌分数(如果存在)相比的当前令牌分数。
[0063]
过程300可以包括“将当前令牌放置在当前帧(cf)令牌列表中”328,并且这指的是例如将令牌分数放置在列表或池600(图6)中。
[0064]
参考图5

7,过程300可以包括“更新直方图”330。直方图500如上所述显示直方图的“更新之前”状况,而直方图700是同一直方图的“更新之后”状况。特别地,如从上面所回忆的,直方图500示出具有1000个令牌分数的束宽16.0,其中列504是16.0的令牌分数(它们中的171个),并且列506是15.0的令牌分数(它们中的75个)。在这种情况下,16.0处令牌分数的最后一列在束宽中的总共1000(或更少)个令牌分数中贡献了最后171个令牌分数。假定要添加的当前令牌分数是15.0,然后将其添加到右起第二列(或堆)506,并且使其变为直方图700上右起第二列704,其计数为76个15.0令牌分数。
[0065]
过程300可选择地可以包括查询“帧令牌数目是否超过最小阈值?”332。该操作被包括,使得在针对该选项发起帧内束宽更新之前,必须生成某所需最小数目的令牌分数。在达到最小阈值或某其他标准(例如,从帧开始起的时间)之前,更新不会开始。否则,可以将更新安排为从第一令牌分数开始,不过这可能太低效。当令牌分数的数目太低时,则过程
300跳过帧内束宽更新并继续操作336。
[0066]
当存在足够数目的令牌分数时,过程300可以包括“更新当前帧的束宽”334。现在,第二列704处具有附加令牌分数,假定现在在束宽中有1001个令牌分数,这就多了一个。因此,必须调整束宽。然而,不是一次调整一个令牌分数,而是从束宽中移除最差分数16.0的整个列(或堆)(706),并且束宽被设置在15.0处。由于从束宽中移除整个列706,因此当前束宽仅具有(1000

171 1)=830个令牌分数,这显著减少仍然需要向前传播的令牌数目,从而降低计算负荷和能量消耗。束宽中令牌分数数目的这种上升和下降可以至少部分地取决于解码器的结构,其中多个目的地状态可以例如以不同和变化的模式从单个源状态延伸。
[0067]
尽管先前帧的第一束宽比较(操作310)避免了当前帧和向前移动的那些帧上的不必要的令牌分数计算,但在当前帧上的束宽比较和更新避免从当前帧向前的甚至更多不必要的令牌分数计算,同时还通过更新束宽本身来减少令牌分数的总数。
[0068]
过程300可以包括查询“针对当前令牌是否存在更多目的地状态?”336。当存在更多目的地状态时,例如解码器400上的状态3(406),则过程300循环回到操作316,以计算针对如上所述已经在状态1处开始和处理的同一令牌的下一个当前令牌分数。否则,当针对当前令牌不存在更多目的地状态时,则过程300循环回到到操作312,以确定先前帧令牌列表上是否存在更多先前帧令牌,并且该过程如上所述继续。可选地,可以理解,过程300可以以不同的方式继续,而不是首先针对源状态检查所有目的地节点。虽然应该针对最佳性能选择顺序,但是当不期望时,用于在单帧本身期间每个或多个单独令牌分数生成之后更新束宽的操作不需要限于特定的令牌顺序。因此,该顺序可以基于解码器结构,这代替地强调状态(或节点)层的顺序,而不是令牌到令牌的顺序。
[0069]
应当理解,通过在单帧的处理期间提供束宽更新的帧内直方图修剪进行的更新可以至少从在解码器上生成该帧的第一个令牌分数延伸到使用该单帧的最后计算的令牌分数进行的处理的结尾。最后计算的令牌分数的处理的结尾可以包括将最后计算的令牌分数与最近更新的束宽进行比较,无论这是否被认为是单帧处理的确切结尾以及是否实际更新了束宽。
[0070]
此外,当这被需要时,除了在一个帧的处理期间执行的帧内束宽更新之外,解码器仍然可以在帧的处理之间执行单独的束宽更新。
[0071]
应当理解,过程200和300可以由样本asr系统100、800、900和/或1000提供,以操作本公开的至少一些实现方式。可以理解,过程200和/或300的一个或多个操作可以被省略或以不同于本文所述的顺序执行。
[0072]
结果
[0073]
为了分析测试结果,asr性能指标(如例如误字率(wer)和实时因子(rtf))可以取决于以下各项而显著变化:在捕获形成环境噪声特性的音频的设备处或其周围的环境,以及扬声器变化和asr本身的不同参数。wer是asr准确性的常用度量。在给定所说单词数目的情况下,可以将其计算为asr输出中识别错误的相对数目。错误插入的单词、删除的单词、或将一个所说单词替换为另一个单词被视为识别错误。
[0074]
将所公开方法的以平均和峰值“百万周期每秒(mcps)”要求的形式的计算负荷与代表传统解码器的当前最佳解决方案的计算负荷进行比较。请注意,虽然本方法降低了平均计算要求,但在峰值mcps要求方面的改进最为明显。那些峰值mcps要求代表系统实时运
行解码所需的处理功率。结果显示在下面的表1和表2中。
[0075]
表1
[0076][0077]
因为该算法改变了所考虑的假设,所以测试还评估了所公开的本方法是否对误字率(wer)有负面影响:
[0078]
表2
[0079][0080]
从表2可以看出,所公开的方法也略微提高了准确度。因此,所公开的方法降低了目标设备所需的计算功率,同时提供相同或甚至稍好的用户体验。
[0081]
此外,可以响应于由一个或多个计算机程序产品提供的指令来进行图2

3的过程的任何一个或多个操作。这样的程序产品可以包括提供指令的信号承载介质,这些指令在由例如处理器执行时可以提供本文描述的功能。计算机程序产品可以以任何形式的一个或多个机器可读介质来提供。因此,例如,包括一个或多个处理器核的处理器可以响应于由一个或多个计算机或机器可读介质传送到处理器的程序代码和/或指令或指令集,进行本文的示例过程的一个或多个操作。一般而言,机器可读介质可以以程序代码和/或指令或指令集的形式传送软件,该程序代码和/或指令或指令集可以使任何设备和/或系统如本文所述那样执行。机器或计算机可读介质可以是非暂时性物品或介质,例如非暂时性计算机可读介质,并且可以与上述任何示例或其他示例一起使用,除了其不包括暂时性信号本身。它包括信号本身以外的,可以“暂时性”的方式暂时保存数据的那些元件,例如ram等等。
[0082]
如在本文描述的任何实现方式中使用的,术语“模块”指的是被配置为提供本文描述的功能的软件逻辑、固件逻辑和/或硬件逻辑的任意组合。软件可以被体现为软件包、代码和/或指令集或指令,并且在本文描述的任何实现方式中使用的“硬件”可以例如单个地或以任意组合的方式包括硬连线电路系统、可编程电路系统、状态机电路系统和/或存储由可编程电路系统执行的指令的固件。这些模块可以,共同地或单独地,被体现为形成较大系统的一部分的电路系统,例如集成电路(ic)、片上系统(soc)等。例如,模块可以被体现在逻辑电路系统中,用于经由本文讨论的编码系统的软件、固件或硬件进行实现。
[0083]
如在本文描述的任何实现方式中使用的,术语“逻辑单元”指的是被配置为提供本文描述的功能的固件逻辑和/或硬件逻辑的任意组合。逻辑单元可以,共同地或单独地,被体现为形成较大系统的一部分的电路系统,例如集成电路(ic)、片上系统(soc)等。例如,逻辑单元可以被体现在逻辑电路系统中,用于本文讨论的编码系统的固件或硬件实现方式。本领域普通技术人员将理解,由硬件和/或固件执行的操作可以可选地经由软件来实现,该
软件可以被体现为软件包、代码和/或指令集或指令,并且还应理解,逻辑单元还可以利用软件的一部分来实现其功能。
[0084]
如在本文描述的任何实现方式中所使用的,术语“组件”可以指模块或逻辑单元,如上文所描述的这些术语。因此,术语“组件”可以指被配置为提供本文描述的功能的软件逻辑、固件逻辑和/或硬件逻辑的任意组合。例如,本领域普通技术人员将理解,由硬件和/或固件执行的操作可以可选地经由软件模块来实现,该软件模块可以被体现为软件包、代码和/或指令集,并且还应理解,逻辑单元也可以利用软件的一部分来实现其功能。
[0085]
参考图8,根据本公开的至少一些实现方式布置示例语音识别系统800。在各种实现方式中,示例语音识别处理系统800可以具有(一个或多个)音频捕获设备802以形成或接收声学信号数据。这可以通过各种方式来实现。因此,在一种形式中,语音识别处理系统800可以是诸如麦克风之类的音频捕获设备,并且在这种情况下,音频捕获设备802可以是麦克风硬件和传感器软件、模块或组件。在其他示例中,语音识别处理系统800可以具有包括麦克风或可以是麦克风的音频捕获设备802,并且逻辑模块804可以远程地与音频捕获设备802通信,或者可以以其他方式通信地耦合到音频捕获设备802,以进一步处理声学数据。
[0086]
在任一情况下,这种技术可以包括可穿戴设备(例如,智能手机、诸如智能手表或锻炼腕带之类的手腕计算机、或智能眼镜),但也可以包括电话、听写机器、其他声音录制机器、移动设备或机载设备、或这些设备的任意组合。本文使用的语音识别系统在小规模cpu(可穿戴设备、智能电话)上使能asr,因为本系统和方法不一定需要连接到例如云或服务器来执行本文描述的asr。
[0087]
因此,在一种形式中,音频捕获设备802可以包括音频捕获硬件,该音频捕获硬件包括一个或多个音频传感器以及致动器控件。这些控件可以是用于操作音频信号传感器的音频信号传感器模块或组件的一部分。音频信号传感器组件可以是音频捕获设备802的一部分,或者可以是逻辑模块804的一部分,或者两者兼而有之。这种音频信号传感器组件可用于将声波转换成电声信号。音频捕获设备802还可以具有a/d转换器、其他滤波器等,以提供用于语音识别处理的数字信号。
[0088]
在所示示例中,逻辑模块804可以包括声学前端单元808和asr引擎或单元810,其中声学前端单元808提供如关于单元18(图1)所描述的预处理并标识声学特征。asr引擎810可以包括特征提取单元811、针对声学特征提供声学分数的声学评分单元812、以及解码器813,该解码器813可以是wfst解码器并且提供单词序列假设,该单词序列假设可以是以本文所理解和描述的语言或单词换能器和/或格的形式。解码器单元813可以包括令牌生成单元814、传播单元815、直方图单元816和束宽控制单元817,所有这些单元都类似于图1的设备100的那些类似命名的单元,并且可以执行如以上针对那些单元已经描述的相同帧内束宽更新任务。可以提供确定用户意图并相应地作出反应的语言解释器执行单元840。
[0089]
解码器单元813可以由(一个或多个)处理器820操作,或者甚至完全或部分位于(一个或多个)处理器820处,并且解码器单元813可以包括或连接到加速器822以执行asr引擎计算。逻辑模块804可以通信地耦合到音频捕获设备802的组件,以便接收原始声学数据和传感器数据。逻辑模块804可以被认为也可以不被认为是音频捕获设备的一部分。
[0090]
语音识别处理系统800可以具有:一个或多个处理器820(其可以包括加速器822(其可以是专用加速器,以及诸如intel atom之类的加速器))、可以保持或不保持令牌缓冲
器826以及单词历史、音素、词汇和/或上下文数据库等的存储器存储装置824、用于提供对输入声学信号的听觉响应的至少一个扬声器单元828、用于提供文本或其他内容的图像836作为对声学信号的视觉响应的一个或多个显示器830、用于响应于声学信号而执行动作的(一个或多个)其他终端设备832、以及天线834。在一个示例实现方式中,语音识别系统800可以具有显示器830、通信地耦合到显示器的至少一个处理器820、通信地耦合到处理器并且例如具有用于存储如上所述的令牌的令牌缓冲器826的至少一个存储器824。天线834可以被提供用于向可以在用户输入上动作的其他设备发送相关命令。否则,语音识别过程的结果可以被存储在存储器824中。如图所示,这些组件中的任何一个都能够彼此通信和/或与逻辑模块804和/或音频捕获设备802的一部分通信。因此,处理器820可以通信地耦合到音频捕获设备802和逻辑模块804两者,用于操作这些组件。通过一种方法,尽管如图8所示的语音识别系统800可以包括与特定组件或模块相关联的一组特定的块或动作,但是这些块或动作可以与跟在此所示的特定组件或模块不同的组件或模块相关联。
[0091]
作为另一替代方案,应当理解,语音识别系统800或本文描述的其他系统(例如系统900)可以是服务器,或者可以是基于服务器的系统或网络而不是移动系统的一部分。因此,服务器形式的系统800可以不具有或不直接连接到诸如天线之类的移动元件,但是仍然可以具有语音识别单元806的相同组件,并且例如通过计算机或电信网络提供语音识别服务。同样,下面的系统900的平台902也可以代替地是服务器平台。在服务器平台上使用所公开的语音识别单元可以节省能量并提供更好的性能。
[0092]
参考图9,根据本公开的示例系统900操作本文描述的语音识别系统的一个或多个方面。从下面描述的系统组件的性质可以理解,这些组件可以与以上描述的语音识别系统的某个或某些部分相关联,或可以用于操作这某个或某些部分。在各种实现方式中,系统900可以是媒体系统,不过系统900不限于此上下文。例如,系统900可以结合到以下各项中:可穿戴设备(诸如智能手表、智能眼镜或锻炼腕带)、麦克风、个人计算机(pc)、膝上型计算机、超膝上型计算机、平板、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(pda)、蜂窝电话、组合蜂窝电话/pda、电视、其他智能设备(例如,智能手机、智能平板或智能电视)、移动互联网设备(mid)、消息收发设备、数据通信设备等。
[0093]
在各种实现方式中,系统900包括耦合到显示器920的平台902。平台902可以从诸如(一个或多个)内容服务设备930或(一个或多个)内容递送设备940之类的内容设备或其他类似内容源接收内容。包括一个或多个导航特征的导航控制器950可用于与例如平台902、至少一个扬声器或扬声器子系统960、至少一个麦克风970、和/或显示器920交互。下面将更详细地描述这些组件中的每一个。
[0094]
在各种实现方式中,平台902可以包括芯片组905、处理器910、存储器912、存储设备914、音频子系统904、图形子系统915、应用916和/或无线电设备918的任意组合。芯片组905可以提供处理器910、存储器912、存储设备914、音频子系统904、图形子系统915、应用916和/或无线电设备918之间的相互通信。例如,芯片组905可以包括能够提供与存储设备914的相互通信的存储适配器(未描绘)。
[0095]
处理器910可以被实现为复杂指令集计算机(cisc)或精简指令集计算机(risc)处理器;x86指令集兼容处理器、多核或任何其他微处理器或中央处理单元(cpu)。在各种实现方式中,处理器910可以是(一个或多个)双核处理器、(一个或多个)双核移动处理器等。
[0096]
存储器912可以被实现为易失性存储器设备,例如但不限于,随机存取存储器(ram)、动态随机存取存储器(dram)、或静态ram(sram)。
[0097]
存储设备914可以被实现为非易失性存储设备,例如但不限于,磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接存储设备、闪存、电池备份sdram(同步dram)和/或网络可访问存储设备或任何其他可用存储设备。在各种实现方式中,存储设备914可以包括用于例如当多个硬驱动器被包括时提高对有价值的数字媒体的存储性能增强保护的技术。
[0098]
音频子系统904可以执行音频处理,例如本文描述的环境敏感的自动语音识别和/或话音识别和其他音频相关任务。音频子系统904可以包括一个或多个处理单元和加速器。这样的音频子系统可以被集成到处理器910或芯片组905中。在一些实现方式中,音频子系统904可以是通信地耦合到芯片组905的独立卡。接口可用于将音频子系统904通信地耦合到至少一个扬声器960、至少一个麦克风970和/或显示器920。
[0099]
图形子系统915可以执行对诸如静止或视频之类的图像的处理以用于显示。例如,图形子系统915可以是图形处理单元(gpu)或视觉处理单元(vpu)。可以使用模拟或数字接口来通信地耦合图形子系统915和显示器920。例如,该接口可以是高清晰度多媒体接口、显示端口、无线hdmi、和/或无线hd适用技术中的任何一种。图形子系统915可以被集成到处理器910或芯片组905中。在一些实现方式中,图形子系统915可以是通信地耦合到芯片组905的独立卡。
[0100]
本文描述的音频处理技术可以在各种硬件体系结构中被实现。例如,音频功能可以被集成在芯片组内。可选地,可以使用离散音频处理器。作为又一实现方式,音频功能可以由包括多核处理器的通用处理器来提供。在其他实现方式中,这些功能可以在消费电子设备中被实现。
[0101]
无线电设备918可以包括能够使用各种合适的无线通信技术发送和接收信号的一个或多个无线电设备。这样的技术可以涉及跨一个或多个无线网络进行的通信。示例无线网络包括(但不限于)无线局域网(wlan)、无线个域网(wpan)、无线城域网(wman)、蜂窝网络和卫星网络。在跨这样的网络进行通信时,无线电设备918可以根据任何版本中的一个或多个可适用标准来操作。
[0102]
在各种实现方式中,显示器920可以包括任何电视类型的监视器或显示器。显示器920可以包括例如计算机显示屏、触摸屏显示器、视频监视器、类似电视的设备、和/或电视。显示器920可以是数字的和/或模拟的。在各种实现方式中,显示器920可以是全息显示器。此外,显示器920可以是可以接收视觉投影的透明表面。这样的投影可以传达各种形式的信息、图像和/或对象。例如,这样的投影可以是针对移动增强现实(mar)应用的视觉覆盖。在一个或多个软件应用916的控制下,平台902可以在显示器920上显示用户界面922。
[0103]
在各种实现方式中,(一个或多个)内容服务设备930可以由任何国家的、国际的和/或独立的服务托管,从而例如可经由互联网由平台902访问。(一个或多个)内容服务设备930可以耦合到平台902和/或显示器920、扬声器子系统960和麦克风970。平台902和/或(一个或多个)内容服务设备930可以耦合到网络965以向和从网络965传送(例如,发送和/或接收)媒体信息。(一个或多个)内容递送设备940还可以耦合到平台902、扬声器子系统960、麦克风970和/或显示器920。
[0104]
在各种实现方式中,(一个或多个)内容服务设备930可以包括麦克风、有线电视
盒、个人计算机、网络、电话、能够递送数字信息和/或内容的互联网使能设备或电器,以及能够经由网络965或直接地在内容提供商与平台902和扬声器子系统960、麦克风970和/或显示器920之间单向或双向传送内容的任何其他类似设备。可以理解,内容可以经由网络965单向和/或双向地被向和从内容提供商和系统900中的组件中的任一者传送。内容的示例可以包括任何媒体信息,例如包括视频、音乐、医疗和游戏信息等。
[0105]
(一个或多个)内容服务设备930可以接收诸如有线电视节目之类的内容,包括媒体信息、数字信息和/或其他内容。内容提供商的示例可以包括任何有线或卫星电视或无线电或互联网内容提供商。所提供的示例并不意味着以任何方式限制根据本公开的实现方式。
[0106]
在各种实现方式中,平台902可以从具有一个或多个导航特征的导航控制器950接收控制信号。例如,控制器950的导航特征可以用于与用户界面922交互。在实现方式中,导航控制器950可以是指点设备(pointing device),该指点设备可以是允许用户向计算机输入空间(例如,连续和多维)数据的计算机硬件组件(具体地,人类接口设备)。诸如图形用户界面(gui)以及电视和监视器的许多系统允许用户使用物理手势来控制计算机或电视并向计算机或电视提供数据。音频子系统904还可以用于控制界面922上的物品运动或命令选择。
[0107]
控制器950的导航特征的移动可以通过在显示器上显示的指针、光标、聚焦环或其他视觉指示器的移动或通过音频命令来在显示器(例如,显示器920)上复制。例如,在软件应用916的控制下,例如,位于导航控制器950上的导航特征可以被映射到显示在用户界面922上的虚拟导航特征。在实现方式中,控制器950可以不是单独的组件,但可以被集成到平台902、扬声器子系统960、麦克风970和/或显示器920中。然而,本公开不限于本文所示或描述的元件或上下文中。
[0108]
在各种实现方式中,驱动(未示出)可以包括用于使得用户能够例如在初始启动之后通过触摸按钮(在被启用时)或者通过听觉命令来即刻地打开和关闭平台902(如电视)的技术。程序逻辑可以允许平台902将内容流送到媒体适配器或其他(一个或多个)内容服务设备930或(一个或多个)内容递送设备940,即使在平台被“关闭”时也是如此。此外,例如,芯片组905可以包括对8.1环绕声音频和/或高清晰度(7.1)环绕声音频的硬件和/或软件支持。驱动可以包括用于集成听觉或图形平台的听觉或图形驱动。在实现方式中,听觉或图形驱动可以包括外围组件互连(pci)快速图形卡。
[0109]
在各种实现方式中,可以集成系统900中所示的任何一个或多个组件。例如,可以集成平台902和(一个或多个)内容服务设备930,或者可以集成平台902和(一个或多个)内容递送设备940,或者例如可以集成平台902、(一个或多个)内容服务设备930和(一个或多个)内容递送设备940。在各种实现方式中,平台902、扬声器子系统960、麦克风970和/或显示器920可以是集成单元。例如,可以集成显示器920、扬声器子系统960和/或麦克风970和(一个或多个)内容服务设备930,或者可以集成显示器920、扬声器子系统960和/或麦克风970和(一个或多个)内容递送设备940。这些示例并不意味着限制本公开。
[0110]
在各种实现方式中,系统900可以被实现为无线系统、有线系统或两者的组合。当被实现为无线系统时,系统900可以包括适于通过无线共享介质通信的组件和接口,诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等。无线共享介质的示例
可以包括无线频谱的一部分,例如rf频谱等。当被实现为有线系统时,系统900可以包括适于通过有线通信介质进行通信的组件和接口,例如输入/输出(i/o)适配器、将i/o适配器与相应的有线通信介质连接的物理连接器、网络接口卡(nic)、盘控制器、视频控制器、音频控制器等。有线通信介质的示例可以包括电线、电缆、金属引线、印刷电路板(pcb)、底板、交换结构、半导体材料、双绞线、同轴电缆、光纤等。
[0111]
平台902可以建立一个或多个逻辑或物理信道来传送信息。信息可以包括媒体信息和控制信息。媒体信息可以指表示针对用户的内容的任何数据。例如,内容的示例可以包括来自以下各项的数据:话音对话、视频会议、流视频和音频、电子邮件(“email”)消息、话音邮件消息、字母数字符号、图形、图像、视频、音频、文本等。来自话音对话的数据可以是例如语音信息、静默时段、背景噪声、舒适噪声、音调等。控制信息可以指表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于通过系统来路由媒体信息,或者指示节点以预定方式处理媒体信息。然而,这些实现方式不限于图9所示或描述的元件或上下文中。
[0112]
参考图10,小形状因子设备1000是其中可以体现系统800或900的不同物理样式或形状因子的一个示例。通过该方法,设备1000可以被实现为具有无线能力的移动计算设备。例如,移动计算设备可以指具有处理系统和诸如一个或多个电池之类的移动电源或供电的任何设备。
[0113]
如上所述,移动计算设备的示例可以包括具有音频子系统的任何设备,诸如个人计算机(pc)、膝上型计算机、超膝上型计算机、平板、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(pda)、蜂窝电话、组合蜂窝电话/pda、电视、智能设备(例如,智能电话、智能平板或智能电视)、移动互联网设备(mid)、消息收发设备、数据通信设备、任何其他机载(例如在车辆上)计算机、物联网(iot)、专用音频命令系统等,其可以接受音频命令。
[0114]
移动计算设备的示例还可以包括被布置为由人穿戴的计算机,诸如耳机、头带、助听器、手腕计算机、手指计算机、戒指计算机、眼镜计算机、带夹计算机、臂带计算机、鞋子计算机、服装计算机和其他可穿戴计算机。例如,在各种实现方式中,移动计算设备可以被实现为能够执行计算机应用以及话音通信和/或数据通信的智能电话。尽管一些实现方式通过示例可以用被实现为智能电话的移动计算设备来描述,但是可以理解,其他实现方式也可以使用其他无线移动计算设备来实现。这些实现方式不局限于该上下文。
[0115]
如图10所示,设备1000可以包括具有前面1001和后面1002的外壳、包括屏幕1010的显示器1004、输入/输出(i/o)设备1006、和天线1008。设备1000还可以包括导航特征1012。显示器1004可以包括用于显示适合移动计算设备的信息的任何合适的显示单元。i/o设备1006可以包括用于将信息输入到移动计算设备中的任何合适的i/o设备。i/o设备1006的示例可以包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、摇杆开关、软件等。信息也可以通过麦克风1014输入到设备1000中。这样的信息可以由本文描述的语音识别设备以及话音识别设备数字化,并且可以作为设备1000的一部分,并且可以经由扬声器1016提供音频响应或经由屏幕1004提供视觉响应。这些实现方式不局限于该上下文。外壳还可以包括摄像头1005和照明器1018。
[0116]
本文描述的各种形式的设备和过程可以使用硬件元件、软件元件或两者的组合来
实现。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感等)、集成电路、专用集成电路(asic)、可编程逻辑器件(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。确定实现方式是否使用硬件元件和/或软件元件来实现可以根据任何数目的因素而变化,例如期望的计算速率、功率水平、热容忍度、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
[0117]
至少一个实现方式的一个或多个方面可以通过存储在机器可读介质上的代表性指令来实现,所述代表性指令表示处理器内的各种逻辑,这些指令当由机器读取时,使该机器制造逻辑以执行本文描述的技术。这样的表示(被称为“ip核”)可以被存储在有形的机器可读介质上并提供给各种客户或制造设施,以加载到实际制造逻辑或处理器的制造机器中。
[0118]
虽然本文阐述的某些特征已经参考各种实现方式进行了描述,但是本说明书并不意图在限制意义上被解释。因此,对于本公开所涉及的本领域技术人员显而易见的对本文描述的实现方式的各种修改以及其他实现方式被认为在本公开的精神和范围内。
[0119]
下面的示例与其他实现方式有关。
[0120]
在第一实现方式中,一种计算机实现的自动语音识别方法,包括:获得音频数据,所述音频数据包括被分成帧的人类语音;通过语音识别解码器传播所述帧的令牌,包括:针对各个帧更新解码器束宽,所述更新发生在所述帧中的一个帧的当前令牌分数被计算之后并且在同一个帧的后续令牌分数被与更新后的束宽进行比较之前,其中后续是相对于所述当前令牌分数被计算时而言的,并且其中所述更新针对所述一个帧的多个当前令牌分数被重复;以及根据所述令牌分数,确定一个或多个假设声音、单词或短语。
[0121]
通过一个或多个第二实现方式,并且对第一实现方式进一步地,其中对所述束宽的更新发生在帧的每个令牌分数被生成并且适配在当前束宽内之后。
[0122]
通过一个或多个第三实现方式,并且对第一实现方式进一步地,其中对要更新所述束宽的确定是以几个所生成的令牌分数为间隔均匀发生的。
[0123]
通过一个或多个第四实现方式,并且对第一至第三实现方式中任一个进一步地,其中所述束宽针对所述帧以逐个令牌分数的方式被更新,而不管令牌分数与哪个令牌相关联。
[0124]
通过一个或多个第五实现方式,并且对第一至第四实现方式中任一个进一步地,该方法包括:在所述解码器上的多个节点之中设置源节点和目的地节点;根据所述源节点处的先前令牌分数、所述源节点和目的地节点之间的弧权重以及所述目的地节点处的声学分数,计算当前令牌分数;将所述当前令牌分数与当前束宽进行比较;当所述当前令牌分数在所述当前束宽内时,在下一个令牌分数被计算之前更新所述束宽。
[0125]
通过一个或多个第六实现方式,并且对第一至第五实现方式中任一个进一步地,其中所述更新在预定最小数目的令牌分数被添加到令牌列表之后被发起。
[0126]
通过一个或多个第七实现方式,并且对第一至第五实现方式中任一个进一步地,
其中所述更新在从帧的处理开始起预定时间被达到之后被发起。
[0127]
通过一个或多个第八实现方式,并且对第一至第七实现方式中任一个进一步地,该方法包括:当各个令牌分数被生成时,用令牌分数更新直方图;以及确定更新后的束宽,包括使用所述直方图。
[0128]
通过一个或多个第九实现方式,并且对第一至第八实现方式中任一个进一步地,该方法包括:在所述一个帧的处理期间,每当所述直方图被更新时,更新所述束宽。
[0129]
通过示例第十实现方式,一种计算机实现的自动语音识别系统,包括:音频捕获设备;存储器;以及至少一个处理器,通信地耦合到所述音频捕获设备和所述存储器,并且被布置为通过以下方式操作:获得音频数据,所述音频数据包括被分成帧的人类语音;通过语音识别解码器传播所述帧的令牌,包括:针对各个帧更新解码器束宽,所述更新发生在所述帧中的一个帧的当前令牌分数被计算之后并且在同一个帧的后续令牌分数被与更新后的束宽进行比较之前,其中后续是相对于所述当前令牌分数被计算时而言的,并且其中所述更新针对所述一个帧的多个当前令牌分数被重复;以及根据所述令牌分数,确定一个或多个假设声音、单词或短语。
[0130]
通过一个或多个第十一实现方式,并且对第十实现方式进一步地,其中所述更新发生在帧的每个令牌分数被确定并且适配在当前束宽内之后。
[0131]
通过一个或多个第十二实现方式,并且对第十或第十一实现方式中任一个进一步地,其中所述更新是帧内直方图修剪,其在单帧处理期间提供束宽更新,所述单帧处理至少从在所述解码器上生成所述帧的第一个令牌分数延伸到使用所述单帧的最后计算的令牌分数进行的处理的结尾。
[0132]
通过一个或多个第十三实现方式,并且对第十或第十一实现方式中任一个进一步地,其中所述更新是帧内直方图修剪,其在单帧处理期间提供束宽更新,所述单帧处理至少从在所述解码器上生成所述帧的第一个令牌分数延伸到使用所述单帧的最后计算的令牌分数进行的处理的结尾,并且其中对所述最后计算的令牌分数进行的处理的结尾包括将所述最后计算的令牌分数与最近更新的束宽进行比较。
[0133]
通过一个或多个第十四实现方式,并且对第十至第十三实现方式中任一个进一步地,其中所述至少一个处理器被布置为除了在所述一个帧的处理期间执行多个束宽更新之外,还在帧的处理之间执行束宽更新。
[0134]
通过一个或多个第十五实现方式,并且对第十至第十四实现方式中任一个进一步地,其中所述更新在预定最小数目的令牌分数被添加到令牌列表之后被发起。
[0135]
通过一个或多个第十六实现方式,并且对第十至第十五实现方式中任一个进一步地,其中当令牌列表中的令牌分数的数目降至最小阈值以下时,所述更新被停止。
[0136]
通过一个或多个第十七实现方式,并且对第十至第十六实现方式中任一个进一步地,其中对所述束宽的更新包括仅当先前帧的令牌的令牌分数在所述先前帧的束宽内时才允许在当前帧处进行对所述束宽的更新。
[0137]
通过一个或多个第十八实现方式,至少一种具有指令的非暂时性计算机可读介质,所述指令使计算设备通过以下方式操作:获得音频数据,所述音频数据包括被分成帧的人类语音;通过语音识别解码器传播所述帧的令牌,包括:针对各个帧更新解码器束宽,所述更新发生在所述帧中的一个帧的当前令牌分数被计算之后并且在同一个帧的后续令牌
分数被与更新后的束宽进行比较之前,其中后续是相对于所述当前令牌分数被计算时而言的,并且其中所述更新针对所述一个帧的多个当前令牌分数被重复;以及根据所述令牌分数,确定一个或多个假设声音、单词或短语。
[0138]
通过一个或多个第十九实现方式,并且对第十八实现方式进一步地,其中所述更新发生在帧的每个令牌分数被确定并且适配在当前束宽内之后。
[0139]
通过一个或多个第二十实现方式,并且对第十八实现方式进一步地,其中确定是否更新所述束宽是以几个所生成的令牌分数为间隔发生的。
[0140]
通过一个或多个第二十一实现方式,并且对第十八至第二十实现方式中任一个进一步地,其中所述束宽针对所述帧以逐个令牌分数的方式被更新,而不管令牌分数与哪个令牌相关联。
[0141]
通过一个或多个第二十二实现方式,并且对第十八至第二十一实现方式中任一个进一步地,其中所述指令使所述计算设备通过以下方式操作:当先前帧的令牌分数不在所述先前帧的最后束宽内时,丢弃令牌而不进一步计算令牌分数。
[0142]
通过一个或多个第二十三实现方式,并且对第十八至第二十一实现方式中任一个进一步地,其中所述指令使所述计算设备通过以下方式操作:当以下两者都满足时,执行束宽更新:先前帧上的先前令牌分数在所述先前帧的束宽内,并且与所述先前令牌分数相关联的当前令牌分数在所述当前帧的束宽内时。
[0143]
通过一个或多个第二十四实现方式,并且对第十八至第二十一实现方式中任一个进一步地,其中所述指令使所述计算设备通过以下方式操作:确定先前帧上的令牌的源令牌分数是否在所述先前帧的束宽内;以及当所述源令牌分数在所述先前帧的束宽内时,确定通过使用所述源令牌分数计算的当前帧的当前令牌分数是否在所述当前帧的束宽内;当所述当前令牌分数在所述当前帧的束宽内时,更新束宽直方图;根据所述束宽直方图,更新所述当前帧的束宽。
[0144]
通过一个或多个第二十五实现方式,并且对第十八至第二十四实现方式中任一个进一步地,其中所述指令使所述计算设备通过以下方式操作:在各个令牌分数被生成时用令牌分数更新直方图;以及确定更新后的束宽,包括使用所述直方图,其中每当所述直方图被更新时发生对所述束宽的更新。
[0145]
在另一示例中,至少一个机器可读介质可以包括多个指令,这些指令响应于在计算设备上被执行而使得该计算设备执行根据上述示例中的任何一个示例的方法。
[0146]
在又一示例中,一种装置可以包括用于执行根据上述示例中的任何一个示例的方法的构件。
[0147]
上面的示例可以包括特征的具体组合。然而,上述示例在此方面不受限制,并且在各种实现方式中,以上示例可以包括:仅承担这些特征的子集、承担这些特征的不同顺序、承担这些特征的不同组合、和/或承担除了那些明确列出的特征之外的附加特征。例如,本文关于任何示例方法描述的所有特征可以针对任何示例装置、示例系统和/或示例物品来实现,反之亦然。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜