用于语音唤醒的音频的语音分类的制作方法

文档序号:19574660发布日期:2019-12-31 19:19阅读:379来源:国知局
用于语音唤醒的音频的语音分类的制作方法

本公开涉及用于语音唤醒的音频的语音分类。



背景技术:

在运行中执行的鲁棒的低功率语音/非语音检测为输入音频信号的进一步处理提供了重要信息。顾名思义,语音/非语音检测将接收的音频输入分类为语音或非语音。这种技术的应用包括用于总是收听设备(alwayslisteningdevices)的语音检测、音频预处理的准确度提高、波束形成以及与文本无关的说话者识别。例如,当分析仅基于真实语音信号而去除无声(silence)和噪声片段时,与文本无关的说话者识别(sid)系统具有提高的准确度。另外,对于文本相关的sid,可以通过低功率系统中的语音唤醒来执行语音检测。

当前的语音/非语音检测可以依赖于基于样本的语音活动检测,该语音活动检测依赖于音频信号特性,诸如信号的短期能量和过零率。然而,这种检测系统不准确并且具有高的假阳性率和假阴性率。其他技术包括基于频率的语音活动检测,其在某些频带中提供对能量的频域分析(例如,在应用快速傅立叶变换之后)。然而,这种技术具有低准确度的类似限制。

因此,现有技术不提供高质量的低资源语音/非语音分类。随着实现语音唤醒、总是收听设备等的愿望变得更加普遍,这些问题可能变得至关重要。



技术实现要素:

根据本公开的一方面,提供了一种语音检测系统,包括:存储器,用于存储所接收的音频输入;和处理器,其被耦合到所述存储器,所述处理器用于:经由基于所接收的音频输入的声学模型的声学评分,生成多个概率分数,每个概率分数用于对应的音频单元;基于所述概率分数中的至少一些概率分数来更新语音模式模型以生成所述语音模式模型的每个状态的分数,其中所述语音模式模型包括第一非语音状态、在所述第一非语音状态之后的多个语音状态以及在所述语音状态之后的第二非语音状态,所述第一非语音状态包括多个自回路,每个自回路与所述概率分数中的非语音概率分数相关联,其中所述语音状态包括在所述第一非语音状态之后的第一语音状态以及在所述第一语音状态之后并在所述第二非语音状态之前的第二语音状态;基于对所述第一非语音状态的第一分数和所述第二语音状态的第二分数的比较,判定所接收的音频输入是否包括语音;和当所接收的音频输入包括语音时,提供语音检测指示符。

根据本公开的另一方面,提供了一种用于语音检测的计算机实现的方法,包括:经由基于所接收的音频输入的声学模型的声学评分,生成多个概率分数,每个概率分数用于对应的音频单元;基于所述概率分数中的至少一些概率分数来更新语音模式模型以生成所述语音模式模型的每个状态的分数,其中所述语音模式模型包括第一非语音状态、在所述第一非语音状态之后的多个语音状态以及在所述语音状态之后的第二非语音状态,所述第一非语音状态包括多个自回路,每个自回路与所述概率分数中的非语音概率分数相关联,其中所述语音状态包括在所述第一非语音状态之后的第一语音状态以及在所述第一语音状态之后并在所述第二非语音状态之前的第二语音状态;基于对所述第一非语音状态的第一分数和所述第二语音状态的第二分数的比较,判定所接收的音频输入是否包括语音;和当所接收的音频输入包括语音时,提供语音检测指示符。

根据本公开的又一方面,提供了至少一种机器可读介质,包括:多个指令,所述多个指令响应于在计算设备上被执行而使所述计算设备执行上述方法。

根据本公开的再一方面,提供了一种装置,包括:用于执行上述方法的装置。

附图说明

在附图中通过示例的方式而不是限制的方式示出本文描述的材料。为了说明的简单和清楚,附图中示出的元素不一定按比例绘制。例如,为清楚起见,一些元素的尺寸可能相对于其他元素被夸大。另外,在认为适当的情况下,在附图中已经重复参考标记以指示对应或类似的元素。在附图中:

图1是用于提供语音或非语音分类的示例设置的说明图;

图2是用于提供语音或非语音分类的示例系统的说明图;

图3示出了与语音或非语音分类相关联的示例数据结构;

图4示出了示例声学模型神经网络;

图5示出了指示与示例神经网络输出层相对应的音频单元的示例数据结构;

图6示出了示例语音模式模型;

图7示出了另一示例语音模式模型;

图8示出了用于生成用于语音或非语音检测的声学模型的示例过程;

图9示出了与修剪(pruning)用于语音或非语音检测的声学模型相关联的示例数据结构;

图10是示出用于语音或非语音检测的示例过程的流程图;

图11是用于执行语音或非语音检测的示例系统的说明图;

图12是示例系统的说明图;并且

图13示出了全部根据本公开的至少一些实施方式布置的示例设备。

具体实施方式

现在参考附图描述一个或多个实施例或实施方式。虽然讨论了具体的配置和布置,但应该理解,这仅是出于说明性目的而进行的。相关领域的技术人员将认识到,在不脱离本说明书的精神和范围的情况下,可以采用其他配置和布置。对于相关领域的技术人员来说将显而易见的是,在除本文所述的系统和应用之外的各种其他系统和应用中也可以采用本文描述的技术和/或布置。

虽然以下描述例如阐述了可以在诸如片上系统(soc)架构之类的架构中表现出的各种实施方式,但是本文描述的技术和/或布置的实施方式不限于特定架构和/或计算系统,并且可以由用于类似目的任何架构和/或计算系统实现。例如,采用例如多个集成电路(ic)芯片(例如,包括数字信号处理器、专用硬件等)和/或封装的各种架构、和/或各种计算设备和/或消费电子(ce)设备(诸如机顶盒、智能电话等)可以实现本文描述的技术和/或布置。另外,虽然以下描述可以阐述许多具体细节(诸如系统组件的逻辑实施方式、类型和相互关系,逻辑划分/集成选择,等等),但是可以在没有这些具体细节的情况下实践所要求保护的主题。在其他情况下,可能不详细示出某一材料(例如控制结构和完整软件指令序列),以免使本文公开的材料模糊。

本文公开的材料可以用硬件、固件、软件或其任何组合来实现。本文公开的材料还可被实现为存储在机器可读介质上的指令,其可以由一个或多个处理器读取和执行。机器可读介质可包括用于以机器(例如,计算设备)可读的形式存储或传输信息的任何介质和/或机制。例如,机器可读介质可包括只读存储器(rom);随机存取存储器(ram);磁盘存储介质;光存储介质;闪存设备;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等),等等。

说明书中对“一个实施方式”、“实施方式”、“示例实施方式”等的提及表明所描述的实施方式可包括特定的特征、结构或特性,但是每个实施方式可能不一定包括该特定的特征、结构或特性。而且,这些短语不一定指的是相同的实施方式。另外,当结合实施例描述特定的特征、结构或特性时,认为结合其他实施方式(无论本文明确描述与否)来实现这样的特征、结构或特性在本领域技术人员的知识范围内。

本文描述了与接收的音频输入的语音或非语音分类有关的方法、设备、装置、计算平台和物品。

如上所述,接收的音频输入的语音或非语音检测可以在总是收听设备中实现,在语音唤醒实施方式中实现,在波束形成(例如,通过检测语音并基于检测到的语音的方向对接收的音频进行空间滤波)中实现,在独立说话者识别中实现,在音频预处理(例如,通过向语音或非语音的音频输入信号应用适当的预处理)中实现,等等。如本文所使用的,术语语音指示音频输入或信号包括包括口述噪声在内的人类语音,并且术语非语音指示音频输入或信号包括诸如无声或非口述噪声之类的任何其他音频。

本文讨论的实施例包括基于所接收的音频输入生成概率分数,每个概率分数对应于诸如可检测音频单元之类的音频单元。例如,接收的音频输入可用于生成一系列特征向量或音频帧以供评估。通过声学模型(例如,深度神经网络声学模型)对每个特征向量或音频帧进行评分。对于每个特征向量或音频帧,提供概率分数作为声学模型的输出。每个概率分数指示特征向量或音频帧对应于特定音频单元的概率(例如,概率密度函数分数),该特定音频单元可以对应于无声、噪声、语音单元等。如本文所使用的,术语音频单元指示音频信号的时间部分的内容,诸如包括无声的无声音频单元、包括噪声的噪声音频单元、包括语音的语音音频单元,其可以是诸如绑定的(tied)上下文相关的三音素(triphone)状态等的子语音单元。下面在本文中进一步讨论这些术语。

在通过声学模型进行评分之后,所得概率分数用于更新语音模式模型,该语音模式模型具有第一非语音状态,随后是任何数量的语音状态,其后是第二非语音状态。第一非语音状态包括与来自声学模型的非语音概率分数相对应的自回路。也就是说,非语音概率分数对应于建模的非语音音频单元,并且表示如特征向量或音频帧所表示的所接收的音频输入的时间部分包括非语音音频单元(相对于声学模型的其他音频单元)的概率。在一些实施例中,在语音模式模型的每个评分更新时,第一非语音状态的分数是第一非语音状态的先前分数(例如,在前一更新实例时)和来自声学模型的非语音概率分数的最大值的总和。

第一非语音状态通过与来自声学模型的语音概率分数相对应的转换而连接到语音状态中的第一语音状态。语音概率分数对应于建模的语音音频单元(例如,表示语音各部分的绑定的上下文相关的三音素状态)并且表示如特征向量或音频帧所表示的所接收的音频输入的时间部分包括语音音频单元(相对于声学模型的其他音频单元)的概率。在一些实施例中,在语音模式模型的每个评分更新时,第一语音状态的分数是第一非语音状态的先前分数(例如,在前一更新实例时)和来自声学模型的语音概率分数的最大值的总和。语音模式模型的每个后续语音状态通过与来自声学模型的语音概率分数相对应的转换而连接到先前语音状态。在一些实施例中,在语音模式模型的每个评分更新时,每个语音状态的分数是先前语音状态的先前分数(例如,在当前语音状态之前的语音状态的前一更新实例时)和来自声学模型的语音概率分数的最大值的总和。可选地,在第二非语音状态之前的最终语音状态包括与来自声学模型的语音概率分数相对应的自回路。然后,在每个评分更新时,最终语音状态可以是最终语音状态的先前分数和来自声学模型的语音概率分数的最大值的总和。

第二非语音状态通过与来自声学模型的非语音概率分数或来自声学模型的无声概率分数相对应的转换而连接到最终语音状态。在一些实施例中,在语音模式模型的每个评分更新时,第二非语音状态的分数是最终语音状态的先前分数和来自声学模型的非语音概率分数的最大值的总和。

在每个更新之后,可以评估语音模式模型以确定是否检测到语音。在一个实施例中,比较最终语音状态和第一非语音状态的分数以确定是否检测到语音。例如,当最终语音状态比第一非语音状态超出阈值量时,确定已经检测到语音。另外,可以通过将第二非语音状态与最终语音状态进行比较来评估语音模式模型以确定语音结束。在一个实施例中,当第二非语音状态超过最终语音状态时,检测到语音结束。例如,可以将这种语音结束时间戳提供给后续音频处理单元。在一个实施例中,还可以评估语音模式模型以确定语音开始。例如,当第一语音状态超过第一非语音状态时,检测到语音开始。当如在上面讨论进行后续语音检测时,也可以向后续音频处理单元提供语音开始时间戳。在一些实施例中,可以甚至在语音检测之前使用语音开始检测来给音频缓冲器加电或将语音开始检测用于其他系统处理。

这种语音检测以及对检测到的语音信号的开始和停止时间的检测可以在各种各样的上下文中使用,以改善设备的音频处理。

图1是根据本公开的至少一些实施方式布置的用于提供语音或非语音分类的示例设置100的说明图。如图1所示,设置100可包括用户101向设备102提供音频输入111。例如,设备102可以处于深度睡眠或省电模式等,并且用户101可以尝试经由语音来唤醒设备102。如果用户101提供被识别为语音的音频输入111,则设备102可以从睡眠或省电模式唤醒、执行任务等。例如,设备102可以为用户101提供总是收听能力或自动语音唤醒能力。如图所示,在一些示例中,可以经由设备102实现总是收听能力或自动语音唤醒系统,所以设备102可以是智能手机。然而,设备102可以是任何合适的设备,诸如计算机、膝上型计算机、超极本、智能电话、平板计算机、平板电话、可穿戴设备(诸如智能手表或眼镜)等。在任何情况下,设备102可被描述为如本文所使用的计算设备。

另外,设备102可以响应于语音被检测到而提供其他能力。例如,设备102可以响应于检测到的语音信号而改变音频预处理(例如,对检测到的语音执行第一类型的音频处理,而当未检测到语音时执行与第一类型不同的第二类型的音频处理),响应于检测到的语音信号而提供波束形成(例如,检测语音的方向并对输入信号进行空间滤波),响应于检测到的语音信号而开始说话者识别处理(例如,关键短语检测),响应于检测到的语音信号而执行短语分段(例如,仅对所接收的音频的与检测到的语音信号相对应的时间部分执行语音检测),响应于检测到的语音信号而将音频输入111的一部分从设备102发送到服务器或云计算平台(例如,发送音频输入111的具有语音的部分以进行自动语音识别,或者当检测到语音结束时停止音频的发送),等等。

如图所示,在一些示例中,用户101可以在尝试唤醒设备102等时提供音频输入111。如将认识到的,设备102还可以接收背景噪声、无声、背景语音、口述噪声、不打算获得对设备102的访问的语音等作为音频输入。例如,设备102可能需要对包括语音的音频(例如,音频输入111或其他音频)与不包括语音的音频进行区分或分类。

图2是根据本公开的至少一些实施方式布置的用于提供语音或非语音分类的示例系统200的说明图。如图2所示,系统200可包括麦克风201,特征提取模块202,声学评分模块203,语音或非语音解码器204,语音模式模型205,控制器206,声学模型208,以及语音活动检测模块207。例如,如图2所示,语音或非语音解码器204可以向控制器206提供语音指示符215。语音指示符215可以包括对正被检测的语音的指示符和其他数据(诸如语音信号的语音检测时间的开始、语音信号的持续时间、语音信号的语音检测时间的结束),或者如本文讨论的其他指示符或数据。基于语音指示符215(例如,如果语音被指示),控制器206可以提供音频缓冲器唤醒指示符216,系统命令218,或者其他命令或指令。在一个实施例中,缓冲器唤醒指示符216包括用于启动或唤醒经由存储器(未示出)实现的音频缓冲器的命令。例如,音频缓冲器可以使用比关于语音活动检测模块207提供的音频缓冲更大的音频缓冲来执行音频缓冲。

系统命令218可以是任何合适的命令,诸如对语音信号执行语音音频处理的命令,使用语音信号和/或进一步检测到的音频执行波束形成的命令,将语音信号和/或进一步检测到的音频发送到云服务的命令,停止向云服务的发送,等等。在一个实施例中,系统命令218包括基于音频输入111执行自动语音识别的命令。在一个实施例中,系统命令218包括对音频输入111执行语音音频预处理的命令。例如,语音音频预处理可以包括针对语音进行调谐的处理(诸如特定音频滤波、音频采样等),使得在没有系统命令218的情况下不对音频输入111执行语音音频处理。在一个实施例中,系统命令218包括将音频输入111发送到云服务以进行自动语音识别、关键短语检测或其他音频处理的命令。在一个实施例中,系统命令218包括停止将音频输入111发送到云服务的命令。例如,系统200可以总是收听,这在用户101开始与系统200的交互时被停止。如本文进一步讨论的,在一些实施例中,可以经由数字信号处理器(dsp)来实现特征提取模块202、声学评分模块203、语音或非语音解码器204、控制器206和语音活动检测模块207。

如图所示,麦克风201可以从用户101(或多个用户或环境等)接收音频输入(ai)111。在一些示例中,音频输入111由用户101发出以唤醒系统200和/或使系统200执行操作。如所讨论的,麦克风201可以接收不旨在唤醒系统200的音频输入或其他背景噪声乃至无声。例如,音频输入111可包括由用户101发出的任何语音以及麦克风201的环境中的任何其他背景噪声或无声等。音频输入111可被表征为音频、输入音频、输入语音流等。麦克风201可以接收音频输入111和/或其他音频(例如,作为空中的声波)并将音频输入111和/或这样的其他音频转换为诸如数字信号之类的电信号以生成音频数据(ad)211。例如,音频数据211可被存储在存储器(未在图2中示出)中,被传送以进行继续的处理等。

如图所示,语音活动检测模块207可以接收音频数据211。例如,语音活动检测模块207可以甚至在系统200的深度睡眠模式下操作(例如,经由dsp)以连续监视音频数据211。在检测到需要系统200进行进一步评估的语音或其他声音时,语音活动检测模块207可以提供启动信号(is)217,其可以激活系统200的其他模块以提供语音或非语音分类。在一个实施例中,语音活动检测模块207在特征提取模块202之前并且用于阻止特征提取,除非语音活动检测模块207检测到需要评估的语音或其他声音。例如,语音活动检测模块207可以向特征提取模块202提供启动信号217以激活特征提取模块202以及系统200的其他组件。在一个实施例中,音频数据211的一部分(例如,360ms的音频数据等)可以由环形缓冲器等缓冲。当语音活动检测模块207检测到需要进一步评估的语音或其他声音时,特征提取模块202可以从缓冲器接收数据并经由音频数据211接收进一步的输入音频。如所讨论的,在一些实施例中,如语音指示符215所指示的语音检测可以使控制器206发出缓冲器唤醒指示符216,缓冲器唤醒指示符216可以使音频缓冲器启动或唤醒。由缓冲器唤醒指示符216启动的缓冲器可以缓冲比所讨论的用于语音活动检测模块207的缓冲器多得多的音频数据,诸如1到2秒的音频数据。

如果检测到语音,如本文所讨论的,系统200可以进入用户101的更高级操作模式,诸如更高功率模式。另外,语音活动检测模块207可以在语音检测期间(例如,在未检测到语音或尚未检测到语音时)操作,以确定是否可以使系统200回到深度睡眠模式等。例如,语音活动检测模块207可以为系统200提供低功率总是收听能力。例如,在通过启动信号217激活时,可以连续监视音频数据211以进行语音检测,直到控制器206确定如由语音指示符215指示已经检测到语音并且缓冲器唤醒指示符216和/或系统命令218被提供为止,或者直到语音活动检测模块207决定重新进入睡眠模式或低功率状态等为止。

如所讨论的,特征提取模块202可以接收音频数据211。例如,特征提取模块202可以从麦克风201、从所讨论的缓冲器、从系统200的其他存储器等接收音频数据211,并且特征提取模块202可以生成与音频输入111相关联的特征向量212。特征向量212可以是表示音频输入111的任何合适的特征或特征向量等。例如,特征向量212可以是特征向量的时间序列(例如,各自针对时间实例生成的特征向量),使得特征向量212中的每一个都包括各自来自诸如采样时间等的时间实例的特征或特征向量的堆叠。特征向量212可被表征为向量、音频向量、堆叠向量、音频帧、音频数据的帧等。

图3示出了根据本公开的至少一些实施方式布置的与语音或非语音分类相关联的示例数据结构300。如图3所示,在多个采样时间301(例如,被表示为采样时间t0,t1,...,tn)中的每一个,可以生成诸如梅尔频率倒谱系数(mfcc)等的采样系数302。采样时间301可以是任何合适的间隔,诸如每10ms等,并且在采样时间301中的每个采样时间执行的采样可以对任何持续时间的输入的语音或音频(诸如25ms的音频等)进行采样。采样系数302可包括任何数量的采样系数,诸如如在图示示例中的13个系数。另外,采样系数302可以各自被称为特征、特征向量、采样等。例如,采样系数302可以是表示所接收音频的功率谱的系数。如所讨论的,在一个实施例中,采样系数302是表示所接收音频的功率谱的梅尔频率倒谱系数。例如,参考图2,可以通过以下操作来基于音频输入111(例如,经由音频数据211)确定梅尔频率倒谱系数:对音频输入111和/或经由麦克风201接收的音频进行傅里叶变换,映射到梅尔标度,确定每个梅尔频率处的功率的对数,以及基于功率的对数的离散余弦变换(dct)确定梅尔频率倒谱系数。

继续参考图3,采样系数302可以被堆叠或连接或组合等以生成特征向量212。如图所示,在一个实施例中,可以组合采样系数302的11个实例以生成特征向量212中的每个特征向量。另外,在堆叠之前,采样系数302可被归一化等。例如,可以通过倒谱均值归一化等来处理梅尔频率倒谱系数以生成采样系数302。如图所示,在一个实施例中,可以组合采样系数302的11个实例以生成每个特征向量,使得每个特征向量是143(例如,11x13)维向量。然而,可以组合或堆叠采样系数302的任何数量的实例以生成特征向量212。如图所示,特征向量fv1可包括与时间t0-t10相关联的采样系数。另外,特征向量fv2可包括与时间t1-t11相关联的采样系数,特征向量fv3可包括与时间t2-t12相关联的采样系数,诸如此类,使得相邻的特征向量在其中包括的采样系数302方面具有重叠。

如图2和3所示,特征向量212可被提供给声学评分模块203。声学评分模块203可以基于经由存储器接收的声学模型208对特征向量212进行评分,并且基于特征向量212提供任意数量的输出分数214。例如,经由使用声学评分模块203对特征向量212进行声学评分来生成任何数量的音频单元中的每一个的输出分数214(其可被表征为概率分数),使得基于音频输入111生成输出分数。输出分数214可被表征为分数、概率、概率分数、音频单元的分数、子语音单元的分数、概率密度函数分数等。例如,声学评分模块203可以为每个特征向量212生成这样的输出分数或状态,以生成分数214的时间序列(例如,被表示为图3中的分数s1,s2,...)。例如,分数214可以是音频单元的分数的时间序列,使得分数214中的每一个包括从声学评分模块203输出的特定时间实例的多个分数。在每个时间实例,分数对应于由特征向量212之一表示音频单元的可能性。

在一个实施例中,声学评分模块203接收并实现如本文讨论的声学模型208。在一个实施例中,声学模型208可以是基于训练音频集预先训练的深度神经网络(dnn)。在一个实施例中,声学模型208可以是具有任意数量的输出(诸如4,000个输出等)的深度神经网络。在另一个实施例中,声学模型208是修剪的深度神经网络,其使输出的数量被减少或修剪,以使得只有可用输出的子集(例如,如在设置和/或训练期间确定的)被提供或激活。可以由请求所需输出的状态信号提供这样的所需输出,或者可以在实现之前预先设置或预先训练这样的所需输出。

例如,声学评分模块203的输出(例如,分数214)可以表示与无声、非口述噪声、口述噪声或语音相对应的音频单元,如本文进一步讨论的。在一个实施例中,语音音频单元表示子语音单元,诸如绑定的上下文相关的三音素状态。这种绑定的上下文相关的三音素状态可以表示与任一侧(例如,左和右)的单音素(monophone)相关联的单音素,以生成绑定的上下文相关的三音素。例如,语言可以具有多个单音素(例如,30-50个单音素),并且诸如示例性绑定的上下文相关的三音素状态之类的子语音单元在各种上下文中可以包括这样的单音素中的每一个,使得各种其他单音素在这样的单音素之前和之后以生成许多组合(例如,子语音单元)。声学评分模块203可以在其输出处基于特征向量212提供与这样的子语音单元相关联的概率或分数等(例如,关于已经说出哪个单元或音素的概率或分数)以及与无声、非口述噪声(例如,背景噪声)、口述噪声等相关联的概率或分数。如图3所示并且如本文进一步讨论的,对于分数214中的每一个或一些,语音或非语音解码器204可以生成对应的语音指示符215(例如,被表示为语音指示符si1,si2,...)。在图3的示例中,在每个时间实例生成与分数214相关联的语音指示符215。在其他示例中,可以以较不频繁的时间间隔或仅在检测到语音时生成语音指示符215。如本文进一步讨论的,在生成语音指示符215时,语音或非语音解码器204可以实现语音模式模型205。

图4示出了根据本公开的至少一些实施方式布置的示例声学模型神经网络400。例如,在一些实施例中,神经网络400可被实现为声学评分模块203。神经网络400可包括任何合适的神经网络,诸如人工神经网络、深度神经网络、卷积神经网络等。如图4所示,神经网络400可包括输入层401,隐藏层402-406,以及输出层407。为了展示清楚起见,神经网络400被示出为具有三个输入节点、各自具有四个节点的隐藏层以及六个输出节点,然而,神经网络400可包括任何这样的输入、隐藏和输出节点。输入层401可包括任何合适数量的节点,诸如等于每个特征向量212中的元素数量的节点数。例如,输入层401可具有143个节点,其对应于特征向量212的143个维度中的每一个。在其他示例中,特征向量可以具有更少或更多的元素或维度,并且输入层401可以具有对应数量的节点。

另外,如在所示示例中,神经网络400可包括五个隐藏层402-406。然而,神经网络400可包括任何数量的隐藏层。隐藏层402-406可包括任何数量的节点。例如,隐藏层402-406可包括1,500到2,000个节点,2,000到2,500个节点,等等。在一些示例中,隐藏层402-406具有相同数量的节点,并且在其他示例中,一个或多个层可以具有不同数量的节点。输出层407可包括任何合适数量的节点,使得分数214包括与绑定的上下文相关的三音素状态等相对应的值。在一些示例中,神经网络400可以实现隐马尔可夫模型(hmm)。如本文进一步讨论的,在一些实施例中,可以修剪输出层407,使得仅提供预定输出节点(和相关联的分数214),使得经由神经网络400实现可用的状态或分数的子集。

图5示出了根据本公开的至少一些实施方式布置的指示与示例神经网络输出层407相对应的音频单元的示例数据结构500。如图5所示,输出层407可包括任何数量的输出节点521、522、523、524(为了清楚起见,仅标记每个输出节点中的一个)。输出节点521对应于被分类为口语音频单元501或表示口语音频单元501的音频单元。输出节点522对应于被分类为口述噪声音频单元502或表示口述噪声音频单元502的音频单元。输出节点523对应于被分类为非口述噪声音频单元503或表示非口述噪声音频单元503的音频单元。输出节点524对应于被分类为无声音频单元504或表示无声音频单元504的音频单元。

例如,对应于口语音频单元501的输出节点521为口语音频单元501提供概率分数。每个输出节点521模拟或表示不同的口语音频单元501,但它们的共同之处在于它们都模拟或表示口语音频单元501。例如,口语音频单元501包括对应于口语的那些音频单元,诸如本文所讨论的包括表示人类语音单元的绑定上下文相关三音素状态的子语音单元。类似地,对应于口述噪声音频单元502的输出节点522为口述噪声音频单元502提供概率分数,使得每个模拟或表示不同的口述噪声音频单元502,但是全部都模拟或表示口述噪声音频单元502。例如,口述噪声音频单元502包括被识别为人所说出但未被识别为口语的音频单元。

如图所示,口语音频单元501和口述噪声音频单元502(以及它们分别对应的输出节点521、522)被分组在一起作为语音模型511。例如,输出节点521、522对应于语音模型511并且包括对应于口语音频单元501的输出节点521和对应于口述噪声音频单元502的输出节点521。通过将输出节点521、522分组为语音模型511,语音模型511表示输出层407中的对应于人类语音并提供与人类语音有关的概率分数的部分(例如,输出节点的子集)。

类似地,对应于非口述噪声音频单元503的输出节点523为非口述噪声音频单元503提供概率分数。每个输出节点523模拟或表示不同的非口述噪声音频单元503,其共同点是它们都模拟或表示非口述噪声音频单元503。例如,非口述噪声音频单元503包括对应于非口述噪声的那些音频单元,非口述噪声诸如是各种环境中(例如,户外,汽车或其他运输车辆中,自助餐厅或其他人口稠密的空间中,等等)的背景噪声。对应于无声音频单元504的输出节点524为无声音频单元504提供概率分数,使得每个模拟或表示不同的无声但是全部都模拟或表示无声音频单元504。例如,无声音频单元504包括被识别为无声(例如,安静的环境,语音或噪声的间歇,等等)的音频单元。

非口述噪声音频单元503和无声音频单元504(以及它们分别对应的输出节点523、524)被分组在一起作为非语音模型512。输出节点521对应于口语音频单元501并且输出节点522对应于口述噪声音频单元502。通过将输出节点521、522分组为语音模型511,语音模型511表示输出层407中的对应于人类语音并提供与人类语音有关的概率分数的部分(例如,输出节点的子集)。

回到图2,如所讨论的,来自声学评分模块203的分数214可被提供给语音或非语音解码器204。而且,如图所示,语音或非语音解码器204还可以接收和实现语音模式模型205。例如,语音或非语音解码器204可以从存储器接收语音模式模型205。例如,语音或非语音解码器204可以接收和实现本文讨论的任何语音模式模型。使用分数214并通过语音模式模型205的实现,语音或非语音解码器204基于任何数量的时间实例处的一些或所有分数来更新语音模式模型205。如本文进一步讨论的,语音模式模型205包括多个状态,这多个状态包括第一非语音状态,后跟任意数量的语音状态,然后是另一个非语音状态。在每个时间实例或一些时间实例,更新语音模式模型205的每个状态以生成每个状态的分数。如本文进一步讨论的,然后评估这样的状态分数,以在该时间示例处确定以下各项中的一个或多个:音频输入111是否包括语音,是否已检测到语音开始点,以及是否已检测到语音结束点。

图6示出了根据本公开的至少一些实施方式布置的示例语音模式模型600。例如,语音模式模型600可被实现为语音模式模型205。例如,语音模式模型600提供与语音信号模式有关的状态链。语音模式模型600可以被表征为语音模型、语音信号模型等。如图6所示,语音模式模型600包括:非语音状态601,任意数量的语音状态602、603、604,以及非语音状态605。在图6中,用交叉影线示出了语音状态,并且用虚线图案示出了非语音状态。另外,语音模式模型600的每个语音状态具有对应的分数,其被标记为s0、s1、s2、sn、sn+1,使得分数s0对应于非语音状态601,分数s1对应于语音状态602,分数s2对应于语音状态603,分数sn对应于语音状态604,并且分数sn+1对应于非语音状态605。另外,任何数量的分数s3-sn-1对应于语音状态603、604之间的语音状态。而且如图所示,非语音状态601包括多个自回路621或具有与其对应的多个自回路621。另外,语音状态604包括多个自回路622或具有与其对应的多个自回路622。

例如,非语音状态601可以对应于语音模式模型600的开始状态。每个自回路621与分数214(例如,来自声学评分模块203的输出)之一相关联,使得自回路621提供非语音状态601的自更新或求和等。在一个实施例中,每个自回路621与输出节点523或输出节点524中的一个相关联,使得自回路621实现非语音模型512。在一些实施例中,在语音模式模型600的每个更新(例如,在时间实例,t)期间,非语音状态601的分数s0是s0的先前分数(例如,在时间实例,t-1)和与自回路621相对应的最大值(例如,输出节点523和输出节点524的最大概率分数)的总和。使用这种技术,非语音状态601提供非语音概率的连续求和。例如,非语音状态601(例如,语音模式模型600的第一状态)模拟在语音发生之前预期的非语音信号。自回路621模拟可在语音信号之前检测到的任意数量的非语音数据或信号。

例如,每个自回路621可以与深度神经网络输出或输出节点相关联,该深度神经网络输出或输出节点对应于非口述噪声音频单元503或无声音频单元504。使用所讨论的评分技术,非语音状态601可提供实现非语音检测器的开始状态。自回路621可包括任何数量的自回路。例如,在来自声学评分模块203的输出的每个时间实例处,可以更新非语音状态601以提供与其相关联的非语音似然性分数。例如,自回路621在来自声学评分模块203的输出(例如,分数214)的每个时间实例处提供对非语音状态601的更新。

同样如图6所示,语音模式模型600包括在非语音状态601之后的任何数量的语音状态602、603、604。语音状态602通过转换611而连接到非语音状态601,语音状态603通过转换612而连接到语音状态602,并且任何数量的语音状态至语音状态604可以通过转换613而连接到先前语音状态。语音状态602、603、604中的每一个在语音模式模型600的每个更新时被更新。在一些实施例中,在每个更新期间(例如,在时间示例t),语音模式模型600的语音状态602、603、604中的每一个被如下更新。时间实例t处的分数s1是前一时间实例t-1处的非语音状态601的分数s0和与转换611相对应的最大值的总和。转换611中的每一个与分数214(例如,来自声学评分模块203的输出)中的一个相关联,使得转换611为语音状态602、603、604提供更新或求和等。在一个实施例中,转换611中的每一个与输出节点521和输出节点中的一个相关联,使得转换611实现语音模型511。也就是说,在更新期间,基于如下两者(例如,作为如下两者的总和)来更新语音状态602、603、604:语音模式模型600中在先前时间实例处的先前状态的值,以及语音的概率的最大概率分数。

可以以类似的方式生成分数s2和sn(以及任何其他语音状态分数)。例如,时间实例t处的分数s2是前一时间实例t-1处的语音状态602的分数s1和与转换612相对应的最大值的总和。类似于转换611的转换与分数214(例如,来自声学评分模块203的输出)中的一个相关联并且还表示语音概率分数。在一个实施例中,转换612、613对应于与转换611相同的输出节点(例如,输出节点521、522)。在一些实施例中,它们可以不同,使得对于所有转换611、612、613而言并非所有输出节点都匹配。类似地,时间实例t处的语音状态(未示出)的分数sn-1是前一时间实例t-1处的语音状态(未示出)的分数sn-2和与转换613相对应的最大值的总和。值得注意的是,使用非语音状态601(例如,与来自输出节点523、524之一的最大语音概率分数相加的来自前一时间实例处的非语音状态的值)来更新语音状态602,而使用前一语音状态来更新所有其他语音状态603、604。

另外,语音状态604包括可选的自回路622。每个自回路622与分数214(例如,来自声学评分模块203的输出)中的一个相关联,使得自回路622为语音状态604(例如,最终的语音状态)提供连续的自更新或求和。在一个实施例中,每个自回路622与输出节点521和输出节点522中的一个相关联,使得自回路622实现语音模型512。在一些实施例中,自回路622对应于与转换611、612、613的概率分数相同的概率分数(例如,输出节点)。在一些实施例中,在语音模式模型600的每个更新(例如,在时间实例t)期间,语音状态604的分数sn是以下两者中的最大值:(1)sn的先前分数(例如,在时间实例t-1)和对应于自回路622的最大值(例如,输出节点521和输出节点522的最大概率分数)的总和,或者(2)sn-1的先前分数(例如,在时间实例t-1)和对应于转换613的最大值(例如,输出节点521和输出节点522的最大概率分数)的总和。在一些实施例中,自回路622和转换613的值是相同的,并且语音状态604的更新后的分数sn可被简化为sn或sn-1的先前分数(例如,在时间实例t-1)和自回路622(或转换613)的最大值中的最大值。例如,语音状态602、603、604可以提供与从s1到sn的分数传播有关的所需语音持续时间的最小值的建模,其中语音状态604具有与和语音相关的输出节点521、522相关联的自回路622。例如,针对语音状态604提供的自回路622为如下做准备:用于评估的最终语音分数(如下面所讨论)随着语音段继续超出由语音状态602、603、604的数量(例如,语音状态的链长)限定的时限而继续增加。

语音模式模型600还包括在语音状态602、603、604之后(例如,紧接在语音状态604之后)的非语音状态605。非语音状态605通过转换614而连接到语音状态604。在语音模式模型600的每个更新时更新非语音状态605。在一些实施例中,在每个更新期间(例如,在时间实例t),语音模式模型600的非语音状态605被更新,使得时间实例t处的分数sn+1是前一时间实例t-1处的语音状态604的分数sn和对应于转换614的最大值的总和。每个转换614与分数214(例如,来自声学评分模块203的输出)中的一个相关联,使得转换614为非语音状态605提供更新或求和等。在一个实施例中,每个转换614与输出节点523和输出节点524中的一个相关联,使得转换614实现非语音模型512。也就是说,在一些实施例中,在更新期间,基于如下两者(例如,作为如下两者的总和)来更新非语音状态605:语音模式模型600中在先前时间实例处的先前状态的值,以及非语音的概率的最大概率分数。在这样的实施例中,转换614可以与自回路621相匹配。在一个实施例中,转换614实现对应于无声音频单元504和非口述噪声单元503的非语音模型,使得转换614对应于输出节点524和输出节点523。例如,非语音状态605(例如,语音模式模型600的最终状态)可以涉及在语音段结束时预期的非语音信号。

参考图2,使用所讨论的技术,对于分数214的每个迭代,随着时间的过去(例如,跨时间实例)更新语音模式模型600的每个状态,分数214的每个迭代对应于特征向量212的迭代,特征向量212的迭代又对应于音频数据211的时间段。另外,在更新诸如语音模式模型600之类的语音模式模型205之后,语音或非语音解码器204可以使用更新后的语音模式模型来确定一个或多个语音指示符215。

回到图6,在一个实施例中,为了检测语音,语音或非语音解码器204如检测语音操作631所指示的将语音状态604(例如,语音模式模型600的最终语音状态)的分数sn与非语音状态601(例如,语音模式模型600的第一非语音状态)的分数s0进行比较。在一个实施例中,语音或非语音解码器204比较语音状态604的分数与语音状态602的分数之间的差异(例如,sn-s0)并将该差异与阈值(例如,th)进行比较。当语音状态604的分数与语音状态602的分数之间的差异与阈值相比有利(例如,超过,等于或大于,等等)时,则检测到语音并经由一个或多个语音指示符215提供指示检测到的语音的指示符。在一个实施例中,将语音状态604的分数与语音状态602的分数的比率与阈值进行比较,并且如果该比率与阈值相比有利,则检测到语音。在另一实施例中,为了检测语音,语音或非语音解码器204将语音状态604(例如,语音模式模型600的最终语音状态)的分数sn与语音状态602(例如,语音模式模型600的第一语音状态)的分数s1进行比较。

在一个实施例中,为了检测语音的结束,语音或非语音解码器204如检测语音结束操作633所指示的将语音状态604(例如,语音模式模型600的最终语音状态)的分数sn与非语音状态605(例如,语音模式模型600的最终状态)的分数sn+1进行比较。在一个实施例中,当非语音状态605的分数sn+1超过语音状态604的分数sn时,语音或非语音解码器204指示语音的结束。在一个实施例中,当对于五次分数更新中的三次(例如,这三次无需是连续的)或分数更新的任何类似大多数而言非语音状态605的分数sn+1超过语音状态604的分数sn时,语音或非语音解码器204指示语音的结束。例如,检测语音结束操作633可包括确定对于多个连续语音模型模式更新的大多数而言非语音状态605的分数sn+1超过语音状态604的分数sn。

另外,在一些实施例中,为了检测语音的开始,语音或非语音解码器204如检测语音开始操作632所指示的将语音状态602(例如,语音模式模型600的第一语音状态)的分数s1与非语音状态601(例如,语音模式模型600的第一状态)的分数s0进行比较。在一个实施例中,当语音状态602的分数s1超过非语音状态601的分数s0时,语音或非语音解码器204指示语音的开始。在一个实施例中,当对于五次分数更新中的三次(例如,这三次无需是连续的)或分数更新的任何类似大多数而言语音状态602的分数s1超过非语音状态601的分数s0时,语音或非语音解码器204指示语音的开始。例如,检测语音开始操作632可包括确定对于多个连续语音模型模式更新的大多数而言语音状态602的分数s1超过非语音状态601的分数s0。

如将认识到,检测语音开始操作632、检测语音结束操作633以及检测语音操作631可以结合用于语音信号。例如,检测语音开始操作632可以检测语音信号的候选开始,如在语音模式模型600的特定更新时讨论的。可以为语音的候选开始保存时间实例、时间戳、音频帧时间、音频帧索引等。稍后,在对语音模式模型600的后续更新之后,可以如关于检测语音操作631讨论的那样检测语音,并且可以确认语音的候选开始在语音的候选开始的特定时间阈值内。或者,可以永远不会检测到语音,或者可以在时间阈值之后检测到语音,使得语音的候选开始不是被确认而是被丢弃。假设语音的候选开始被确认,则可以如关于检测语音结束操作633讨论的那样检测语音的结束。语音结束的时间实例、时间戳、音频帧时间、音频帧索引等可被保存并被与现在得到验证的语音开始相关联。参考图2,在一个实施例中,经由一个或多个语音指示符215提供语音开始和语音结束的时间实例、时间戳、音频帧时间、音频帧索引等,使得控制器206或系统200的另一模块或组件可以根据开始时间和结束时间进行操作。例如,可以仅对音频数据211的与由语音开始和语音结束定义的语音信号相对应的部分执行语音信号处理、自动语音识别、关键短语检测或其他操作。

在所示实施例中,语音模式模型600包括在任何数量的语音状态602、603、604之前的单个非语音状态601,语音状态602、603、604后面是单个非语音状态605。语音状态602、603、604可包括任何数量的语音状态,诸如50、100或更多个语音状态。例如,可以改变语音状态602、603、604的数量,使得语音状态链长度(以及如关于检测语音操作631讨论的应用于语音状态601、604的检测阈值)的修改允许调整语音模式模型600所做出的语音/非语音分类的灵敏度。在一个实施例中,检测阈值越大,语音状态602、603、604的数量越大,分类对语音的灵敏度越低(例如,提供更少的假阳性),而检测阈值越低,语音状态602、603、604的数量越少,分类对语音的灵敏度越高(例如,提供更少的假阴性)。例如,具有适当值的阈值参数提供了将被忽略的噪声,该噪声否则可能与语音搞错。

另外,如所讨论的,可以基于语音状态602、603、604的语音状态序列长度(例如,对于分数s1-sn)来修改语音模式模型600的检测灵敏度。例如,更多的语音状态602、603、604要求检测到更长的语音信号(例如,更长的持续时间)以有资格作为语音段。在其他实施例中,可以调整语音状态602、603、604之后的非语音状态的数量。

图7示出了根据本公开的至少一些实施方式布置的另一示例语音模式模型700。例如,语音模式模型700可被实现为语音模式模型205,并且语音模式模型700提供与语音信号模式有关的状态链。与语音模式模型600一样,语音模式模型700可被表征为语音模型、语音信号模型等。如图7所示,语音模式模型700包括非语音状态601,任何数量的语音状态602、603、604,以及非语音状态705、706。用交叉影线示出语音状态,并用虚线图案示出非语音状态。另外,语音模式模型700的每个语音状态具有对应的分数,其被标记为s0、s1、s2、sn、sn+1、sn+2,使得分数s0对应于非语音状态601,分数s1对应于语音状态602,分数s2对应于语音状态603,分数sn对应于语音状态604,分数sn+1对应于非语音状态705,并且分数sn+2对应于非语音状态706。同样如图所示,非语音状态601包括多个自回路621或具有与其对应的多个自回路621,并且语音状态604包括多个自回路622或具有与其对应的多个自回路622。

在图7中,与图6相似的标号指示相似的组件。具体而言,在语音模式模型700的更新时,可以如关于语音模式模型600讨论的那样更新非语音状态601和语音状态602、603、604。值得注意的是,语音模式模型700包括在最终语音状态604之后的多个非语音状态705、706。例如,多个非语音状态705、706(例如,如在所示实施例中是两个,或是更多个)提供在语音段期间关于检测语音将被忽略的无声。也就是说,即使在语音信号期间发生无声或非语音噪声,仍然可以检测到语音。

具体而言,非语音状态705通过转换714而连接到语音状态604。在语音模式模型700的每个更新时更新非语音状态705,使得在每个更新期间(例如,在时间实例t),语音模式模型700的非语音状态705被更新为时间实例t处的分数sn+1,其是前一时间实例t-1处的语音状态604的分数sn和对应于转换714的最大值的总和。每个转换714与分数214(例如,来自声学评分模块203的输出)中的一个相关联,使得转换714为非语音状态705提供更新或求和等。在一个实施例中,每个转换714与输出节点523和输出节点524中的一个相关联,使得转换714实现非语音模型512。也就是说,在一些实施例中,在更新期间,基于如下两者(例如,作为如下两者的总和)来更新非语音状态705:语音模式模型700中在先前时间实例处的先前状态的值,以及非语音的概率的最大概率分数。例如,转换714可以与自回路621相匹配。

非语音状态706通过转换715而连接到非语音状态705。在语音模式模型700的每个更新时更新非语音状态706,使得在每个更新期间(例如,在时间实例t),非语音状态706被更新为时间实例t处的分数sn+2,其是先前时间实例t-1处的非语音状态705的分数sn+1和对应于转换715的最大值的总和。每个转换715与分数214(例如,来自声学评分模块203的输出)中的一个相关联,使得转换715为非语音状态706提供更新或求和等。在一个实施例中,每个转换715与输出节点523和输出节点524中的一个相关联,使得转换715实现非语音模型512。也就是说,在一些实施例中,在更新期间,基于如下两者(例如,作为如下两者的总和)来更新非语音状态706:语音模式模型700中在先前时间实例处的先前状态的值,以及非语音的概率的最大概率分数。在一个实施例中,转换715与转换714和自回路621相匹配。

如关于图6讨论的,语音模式模型700在更新之后可被评估,以通过检测语音开始操作632进行语音开始检测,通过检测语音操作631进行语音检测,以及通过检测语音结束操作633进行语音结束检测。可以以相同的方式对语音模式模型700执行这样的操作。

图8示出了根据本公开的至少一些实施方式布置的用于生成用于语音或非语音检测的声学模型的示例过程800。过程800可包括如图8所示的一个或多个操作801-806。过程800或其部分可以由设备或系统执行,以生成用于语音或非语音检测的声学模型。

过程800开始于操作801,其中训练声学模型。声学模型可包括任何合适的声学模型,诸如本文所讨论的人工神经网络、深度神经网络、卷积神经网络等。例如,在操作801,基于音频输入的预定训练集来训练完整的神经网络或模型(例如,具有全套可用输出节点)。如本文所讨论的,全套可用输出节点可包括与不同类型的音频单元(诸如口语音频单元,口述噪声音频单元,非口述噪声音频单元,以及无声音频单元)相对应的节点。具体而言,全套可用输出节点可包括对应于口语的输出节点(例如,口语音频单元,以及可选地,口述噪声音频单元),其提供诸如本文所讨论的绑定的三音素hmm状态之类的子语音单元的分数。

图9示出了根据本公开的至少一些实施方式布置的与修剪用于语音或非语音检测的声学模型相关联的示例数据结构900。如图9所示,词典等可包括与其相关联的多个单音素901(例如,标记为mp1,mp2,...,mpm)。语言或词典中的单词或短语的发音可被表示为一系列单独的声音单元,其可被表征为音素。单音素可被表征为单个音素。这种单音素在语音中可以对应于用户发出的特定声音。词典或语言等可包括任何数量的单音素901。对于每个单音素,可以生成完整声学模型的多个输出节点902。

例如,词典或语言的每个子语音单元或绑定的三音素hmm状态可以对应于完整声学模型的输出节点。例如,绑定的三音素hmm状态可以具有在其任一侧都具有绑定单音素的单音素。例如,输出节点on1,1-on1,n可以对应于单音素mp1,使得输出节点on1,1-on1,n中的每一个对应于在其中心处具有单音素mp1的三音素hmm状态,绑定的输出节点on2,1-on2,p可以对应于单音素mp2,使得输出节点on2,1-on2,p中的每一个对应于在其中心处具有单音素mp2的三音素hmm状态,诸如此类,使得输出节点onm,1-onm,q可以对应于单音素mpm,使得输出节点onm,1-onm,q中的每一个对应于在其中心处具有单音素mpm的三音素hmm状态。例如,每个输出节点902可以与单音素901中的特定单音素相关联。如图所示,单音素901中的每个单音素可以包括输出节点902的任何数量的相关输出状态。在一些实现绑定的三音素hmm状态的示例中,在子语音单元/输出节点中可能存在重叠。例如,on1,2也可能用于mp2的某个子语音单元中,诸如此类。例如,可以如下提供结构:单音素→三音素→子语音单元/on。例如,三音素a/b/a和三音素e/t/a可以各自具有3个子语音单元。但是,两个三音素中的第二个/a/可共享相同的子语音单元。另外,声学模型基于过程800而被训练,并且可包括用于每个输出节点902的输出节点以及与无声、噪声等相关联的输出节点,如本文所讨论的。值得注意的是,过程800可以修剪语音节点。

回到图8,处理在操作802处继续,其中在训练完整声学模型期间可以针对与上下文相关的三音素hmm状态相对应的声学模型的输出节点确定使用率。在一些实施例中,在训练期间,当声学模型的输出节点被使用或具有非零输出等时,与该输出节点相关联的使用率可被递增。可以在整个训练期间或在其部分期间执行对使用率的这种跟踪。这种跟踪提供了对在训练期间使用每个输出节点的量的指示。如所讨论的,在一些实施例中,在节点的每个非零输出处,节点的使用率被递增(例如,对于每个非零使用,递增一)。在一个实施例中,在每个非零输出处,使节点的使用率增加非零输出值本身。

处理在操作803处继续,其中确定可用输出节点的子集,使得该子集包括与每个单音素相关联的最高使用输出节点。例如,参考图9,对于单音素901中的每个单音素,可以确定最高使用率输出节点以生成最高使用率输出节点903。在一个实施例中,最高使用率输出节点on1,mu可以对应于单音素m1,最高使用率输出节点on2,mu可以对应于单音素m2,诸如此类。这样的最高使用率输出节点903可被包括在输出节点904的子集中以供在声学模型中使用以及相应地在语音模式模型中使用。例如,输出节点904的每个子集可以表示语音,并且输出节点904的这种子集可以用作对应于口语音频单元501的输出节点521,其如所讨论被包括在转换611、612、613和自回路622中。在所示示例中,最高使用率输出节点903包括每个单音素的单个最高使用节点。然而,可以对每个单音素使用任何数量的最高使用率输出节点,诸如两个或三个。每个单音素的输出节点的数量可以是相同的,或者它们可以是不同的。例如,可以应用阈值来确定每个单音素的输出节点的数量,使得具有大于阈值的使用率的所有输出节点可以用于每个单音素。

回到图8,处理在操作804处继续,其中在操作803处确定的输出节点的子集被包括在修剪的声学模型(和语音模式模型)中,并且处理在操作805处继续,其中其他输出节点(例如,不在子集中的那些输出节点)被丢弃并且不被包括在修剪的声学模型中,并且处理在操作806处继续,其中生成修剪的声学模型,其包括在操作803处确定的输出节点的子集,而其余部分被丢弃。例如,修剪的声学模型可被实现为声学模型208、声学模型神经网络400或本文所讨论的任何其他声学模型。

图10是示出根据本公开的至少一些实施方式布置的用于语音或非语音检测的示例过程1000的流程图。过程1000可包括如图10所示的一个或多个操作1001-1004。过程1000可以形成例如由系统200执行的语音或非语音检测过程的至少一部分。另外,本文将关于图11的系统1100来描述过程1000。

图11是根据本公开的至少一些实施方式布置的用于执行语音或非语音检测的示例系统1100的说明图。如图11所示,系统1100可包括中央处理器1101,数字信号处理器1102,存储器1103,以及麦克风201。同样如图所示,数字信号处理器1102可包括特征提取模块202,声学评分模块203,语音或非语音解码器204,以及控制器206。在一些实施例中,数字信号处理器1102还可包括语音活动检测模块207。同样如图所示,存储器1103可存储语音模式模型205和声学模型208。存储器1103还可存储音频数据,输入语音数据,语音活动检测参数或数据,系数数据,特征向量,分数,输出分数,语音模式模型状态分数,阈值,迭代数据,状态值或分数,或本文所讨论的任何其他数据或数据结构。

中央处理器1101和数字信号处理器1102可包括任何数量和类型的处理单元,其可提供本文所讨论的操作。这样的操作可以经由软件或硬件或其组合来实现。例如,数字信号处理器1102可包括专用于操纵从存储器1103或专用存储器获得的数据的电路。另外,中央处理器1101可包括任何数量和类型的处理单元或模块,其可提供系统1100的控制和其他高级功能以及本文所讨论的操作。在所示示例中,系统1100可被配置为执行关键短语检测。

存储器1103可以是任何类型的存储器,诸如易失性存储器(例如,静态随机存取存储器(sram),动态随机存取存储器(dram)等)或非易失性存储器(例如,闪存等),诸如此类。在非限制性示例中,存储器1103可以由高速缓冲存储器实现。如图所示,在一个实施例中,经由数字信号处理器1102来实现特征提取模块202、声学评分模块203、语音或非语音解码器204和控制器206。在另一实施例中,经由中央处理器1101来实现以下各项中的一个或多个或全部:特征提取模块202,声学评分模块203,语音或非语音解码器204,以及控制器206。在其他实施例中,全部或一些数字信号处理器1102可包括经由执行单元(eu)实现的特征提取模块202、声学评分模块203、语音或非语音解码器204和控制器206。eu可例如包括诸如一个或多个逻辑核的可编程逻辑或电路,其可提供一系列可编程逻辑功能。在一个实施例中,数字信号处理器1102和存储器1103可被提供或实现为片上系统。

回到图10的讨论,过程1000开始于操作1001,其中,经由基于所接收的音频输入的声学模型的声学评分,生成多个概率分数,每个概率分数用于对应的音频单元。可以使用任何一个或多个合适的技术来执行声学评分。在一个实施例中,声学模型是深度神经网络,并且生成多个概率分数包括对特征向量进行评分,特征向量包括系数的时间序列的堆叠,每个系数与深度神经网络的采样时间相关联。

在一个实施例中,声学模型是修剪的声学模型,并且过程1000还包括:训练包括多个输出节点的完整声学模型,每个输出节点对应于噪声、无声或子语音单元中的一个,每个子语音单元与多个单音素中的一个相关联;在训练期间确定每个子语音单元的使用率;为多个单音素中的每一个确定所选择的与最高使用率子语音单元相对应的输出节点;以及将所选择的与最高使用率子语音单元相对应的输出节点包括在操作1001处实现的声学模型中,并丢弃对应于子语音单元的剩余输出节点。

处理在操作1002处继续,其中基于概率分数中的至少一些来更新语音模式模型以生成该语音模式模型的每个状态的分数。例如,可以基于来自声学模型的一系列分数在一系列时间实例处更新语音模式模型。在一个实施例中,语音模式模型包括第一非语音状态(其包括多个自回路,每个自回路与在操作1001处生成的概率分数中的非语音概率分数相关联),在第一非语音状态之后的多个语音状态,以及在语音状态之后的第二非语音状态。在一个实施例中,第二非语音状态是通过多个转换而连接到第二语音状态的非语音状态,每个转换对应于在操作1001处生成的多个分数中的非语音分数。在一个实施例中,第二非语音状态是通过多个转换而连接到第二语音状态的无声状态,每个转换对应于在操作1001处生成的多个分数中的无声分数。在一个实施例中,语音模式模型包括第一非语音状态(其包括多个自回路,每个自回路与概率分数中的非语音概率分数相关联),在第一非语音状态之后的多个语音状态,以及在语音状态之后的第二非语音状态,使得语音状态包括在第一非语音状态之后的第一语音状态以及在第一语音状态之后并且在第二非语音状态之前的第二语音状态。

在一个实施例中,语音模式模型包括紧接在第二语音状态之后并紧接在第二非语音状态之前的一个或多个第三非语音状态,使得第三非语音状态之一通过多个转换而连接到第二非语音状态,每个转换对应于多个自回路的非语音概率分数。在一个实施例中,第一语音状态通过多个第一转换而连接到第一非语音状态,每个第一转换对应于在操作1001处生成的概率分数中的语音概率分数,使得随后的非语音状态通过与在操作1001处生成的语音概率分数相对应的对应多个第二转换而连接到先前的非语音状态,并且使得第二非语音状态通过多个第三转换而连接到第二语音状态,每个第三转换对应于多个自回路的非语音概率分数。例如,更新语音模式模型可包括:基于第一非语音状态的先前分数和多个自回路的非语音概率分数中的最大概率分数,在第一非语音状态处提供连续求和;以及基于紧接在前状态处的先前分数和语音概率分数中的最大概率分数的总和,在除第二语音状态之外的每个语音状态处提供值。另外,更新语音模式模型可包括:基于紧接在前语音状态的先前分数和第二语音状态的先前分数中的最大值与语音概率分数中的最大概率分数的总和,提供第二语音状态的值。

处理在操作1003处继续,其中基于第一非语音状态(例如,模型的第一非语音状态)的分数与多个语音状态中的最终语音状态的分数的比较来判定所接收的音频输入是否包括语音。如所讨论的,第一语音状态在第一非语音状态之后,并且第二语音状态在第一语音状态之后并在第二非语音状态之前。在一个实施例中,关于所接收的音频输入是否包括语音的判定是基于第一非语音状态的分数与多个语音状态中的第二语音状态的分数的比较。在一个实施例中,第一语音状态紧接在第一非语音状态之后(例如,没有中间状态),并且第二语音状态在第一语音状态之后(例如,有中间语音状态)并紧接在第二非语音状态之前(例如,没有中间状态)。在一个实施例中,第一非语音状态的第一分数与第二语音状态的第二分数的比较是第二分数和第一分数之间的差异(例如,第二分数减去第一分数)与阈值的比较,使得第一语音状态通过多个第一转换而连接到第一非语音状态,每个第一转换对应于在操作1001处生成的概率分数中的语音概率分数,并且第二非语音状态通过多个第二转换而连接到第二语音状态,每个第二转换对应于在操作1001处生成的概率分数中的非语音概率分数。例如,如果差异与阈值相比有利(例如,超过、或者等于或大于阈值),则检测到语音。如果差异确实与阈值相比不利,则未检测到语音。

在一个实施例中,过程1000还包括基于第二非语音状态的第三分数超过第二分数来检测语音信号的语音结束。例如,检测语音结束可包括针对多个连续语音模型模式更新中的大多数(例如,五次连续更新中的三次,其中这三次无需是连续的)确定第二非语音状态的分数超过第二语音状态的分数。在一个实施例中,过程1000还包括:基于语音模式模型的先前更新,基于第一语音状态的第四分数超过第一非语音状态的第五分数来检测语音信号的语音开始。

处理在操作1004处继续,其中当所接收的音频输入包括语音时提供语音检测指示符。语音检测指示符可包括任何合适的指示符,诸如指示语音的标志,语音开始时间、时间戳或音频帧,语音结束时间、时间戳或音频帧,等等。在一些实施例中,过程1000还包括基于一个或多个语音检测指示符来执行动作,诸如给音频缓冲器加电,执行自动语音识别,将检测到的语音(例如,作为音频文件)发送到远程设备以进行处理,对检测到的语音信号执行语音处理,或停止将所记录的音频发送到远程设备。

虽然本文讨论的示例过程的实施方式可包括以所示顺序进行所示的所有操作,但是本公开在这方面不受限制,并且在各种示例中,本文的示例过程的实施方式可以包括仅所示操作的子集、以与所示顺序不同的顺序执行的操作或者额外的操作。

此外,可以响应于由一个或多个计算机程序产品提供的指令而进行本文讨论的任何一个或多个操作。这样的程序产品可包括提供指令的信号承载介质,所述指令在由例如处理器执行时可提供本文描述的功能。计算机程序产品可以以一个或多个机器可读介质的任何形式被提供。因此,例如,包括一个或多个图形处理单元或处理器核的处理器可以响应于由一个或多个机器可读介质传送到该处理器的程序代码和/或指令或指令集而进行本文的示例过程的一个或多个块。一般而言,机器可读介质可以以可使本文描述的任何设备和/或系统实现如本文讨论的任何系统、操作、模块或组件的程序代码和/或指令或指令集的形式传送软件。

如在本文描述的任何实施方式中使用的,术语“模块”指代被配置为提供本文描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任何组合。软件可被体现为软件包、代码和/或指令集或指令,并且如在本文描述的任何实施方式中使用的“硬件”可以(例如,单独地或以任何组合)包括硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路和/或存储由可编程电路执行的指令的固件。模块可以共同地或单独地体现为形成更大系统的一部分的电路,例如集成电路(ic)、片上系统(soc)等。

本文讨论的技术提高了音频设备、系统或计算机系统的性能,并且涉及接收音频输入并提供对该音频输入是否包括语音的指示。这种指示是对应于音频输入的重要指示符,并且可以如本文所讨论的那样使用以改善设备的操作。所讨论的技术和系统使用更少的计算和设备功率来提供改进的语音检测质量,以提高设备性能。与语音活动检测相比,所讨论的技术显著地提高了语音检测的准确度(例如,取决于语音的环境提高大约10%至50%,在诸如汽车或其他运输车辆以及自助餐厅或其他聚居环境之类的更喧闹的环境中具有更大的改进)和非语音检测的准确度(例如,取决于非语音的环境提高大约5%至10%,在更安静的环境中具有更大的改进)。

图12是根据本公开的至少一些实施方式布置的示例系统1200的说明图。在各种实施方式中,系统1200可以是媒体系统,但是系统1200不限于该上下文。例如,系统1200可被包含到以下各项中:个人计算机(pc),膝上型计算机,超便携式计算机,平板计算机,触摸板,便携式计算机,手持计算机,掌上型计算机,个人数字助理(pda),蜂窝电话,组合蜂窝电话/pda,电视,智能设备(例如,智能电话、智能平板计算机或智能电视),移动因特网设备(mid),消息传送设备,数据通信设备,相机(例如傻瓜相机,超级变焦相机,数字单透镜反射(dslr)相机),等等。

在各种实施方式中,系统1200包括耦合到显示器1220的平台1202。平台1202可以从诸如一个或多个内容服务设备1230或一个或多个内容递送设备1240或其他类似内容源之类的内容设备接收内容。如图所示,在一些示例中,系统1200可包括经由平台1202实现的麦克风201。平台1202可经由本文所讨论的麦克风201接收输入语音。包括一个或多个导航特征的导航控制器1250可用于与例如平台1202和/或显示器1220进行交互。下面更详细地描述这些组件中的每一个。

在各种实施方式中,系统1200可提供所描述的关键短语检测。例如,关键短语检测可以为所描述的设备或环境提供语音唤醒能力。在其他实施方式中,系统1200可以提供生成关键短语检测模型(例如,包括声学模型、拒绝模型和关键短语模型)。例如,可以在关键短语检测之前离线执行这种训练。

在各种实施方式中,平台1202可包括芯片组1205、处理器1210、存储器1212、天线1213、存储装置1214、图形子系统1215、应用1216和/或无线电装置1218的任何组合。芯片组1205可以在处理器1210、存储器1212、存储装置1214、图形子系统1215、应用1216和/或无线电装置1218之间提供相互通信。例如,芯片组1205可包括能够提供与存储装置1214的相互通信的存储适配器(未示出)。

处理器1210可被实现为复杂指令集计算机(cisc)或精简指令集计算机(risc)处理器,x86指令集兼容处理器,多核,或者任何其他微处理器或中央处理单元(cpu)。在各种实施方式中,处理器1210可以是一个或多个双核处理器,一个或多个双核移动处理器,诸如此类。

存储器1212可被实现为易失性存储器设备,诸如但不限于随机存取存储器(ram)、动态随机存取存储器(dram)或静态ram(sram)。

存储装置1214可被实现为非易失性存储设备,诸如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加存储设备、闪存、电池支持sdram(同步dram)和/或网络可访问存储设备。在各种实施方式中,存储装置1214可包括例如当包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强保护的技术。

图形子系统1215可执行对诸如静止或视频之类的图像的处理以供显示。例如,图形子系统1215可以是图形处理单元(gpu)或视觉处理单元(vpu)。模拟或数字的接口可用于通信地耦合图形子系统1215和显示器1220。例如,接口可以是高清晰度多媒体接口、显示端口、无线hdmi和/或无线hd兼容技术中的任何一种。图形子系统1215可被集成到处理器1210或芯片组1205中。在一些实施方式中,图形子系统1215可以是通信地耦合到芯片组1205的独立设备。

可以在各种硬件架构中实现本文描述的图形和/或视频处理技术。例如,可将图形和/或视频功能集成在芯片组内。或者,可以使用独立的图形和/或视频处理器。作为又一实施方式,可以由包括多核处理器的通用处理器提供图形和/或视频功能。在另外的实施方式中,可以在消费者电子设备中实现这些功能。

无线电装置1218可包括能够使用各种合适的无线通信技术来发送和接收信号的一个或多个无线电装置。这些技术可涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(wlan)、无线个域网(wpan)、无线城域网(wman)、蜂窝网络和卫星网络。在跨这样的网络进行通信时,无线电装置1218可以根据任何版本的一个或多个可适用标准进行操作。

在各种实施方式中,显示器1220可包括任何电视类型的监视器或显示器。显示器1220可包括例如计算机显示屏、触摸屏显示器、视频监视器、类似电视的设备和/或电视。显示器1220可以是数字的和/或模拟的。在各种实施方式中,显示器1220可以是全息显示器。而且,显示器1220可以是可以接收视觉投影的透明表面。这样的投影可以传达各种形式的信息、图像和/或对象。例如,这样的投影可以是移动增强现实(mar)应用的视觉覆盖。在一个或多个软件应用1216的控制下,平台1202可以在显示器1220上显示用户界面1222。

在各种实施方式中,一个或多个内容服务设备1230可以由任何国家、国际和/或独立的服务托管,并且因此可经由例如因特网被平台1202访问。一个或多个内容服务设备1230可被耦合到平台1202和/或显示器1220。平台1202和/或一个或多个内容服务设备1230可被耦合到网络1260以便向和从网络1260传送(例如,发送和/或接收)媒体信息。一个或多个内容递送设备1240也可被耦合到平台1202和/或显示器1220。

在各种实施方式中,一个或多个内容服务设备1230可包括有线电视盒,个人计算机,网络,电话,能够递送数字信息和/或内容的支持因特网的设备或电器,以及能够经由网络1260或直接地在内容提供商与平台1202和/或显示器1220之间单向或双向地传送内容的任何其他类似设备。将会认识到,可以经由网络1260向和从内容提供商和系统1200中的任何一个组件单向和/或双向地传送内容。内容的示例可包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。

一个或多个内容服务设备1230可以接收诸如有线电视节目的内容,包括媒体信息,数字信息和/或其他内容。内容提供商的示例可包括任何有线或卫星电视或者无线电或因特网内容提供商。所提供的示例并不意味着以任何方式限制根据本公开的实施方式。

在各种实施方式中,平台1202可以从具有一个或多个导航特征的导航控制器1250接收控制信号。例如,控制器1250的导航特征可以用于与用户界面1222进行交互。在各种实施中,导航控制器1250可以是指示设备,其可以是允许用户将空间(例如,连续和多维)数据输入到计算机中的计算机硬件组件(具体而言,人机接口设备)。诸如图形用户界面(gui)和电视和监视器之类的许多系统允许用户使用物理手势来控制和向计算机或电视提供数据。

可以通过显示器(例如,显示器1220)上显示的指针、光标、聚焦环或其他视觉指示符的移动在显示器上复制控制器1250的导航特征的移动。例如,在软件应用1216的控制下,位于导航控制器1250上的导航特征可被映射到例如在用户界面1222上显示的虚拟导航特征。在各种实施例中,控制器1250可以不是单独的组件,而是可被集成到平台1202和/或显示器1220中。然而,本公开不限于本文示出或描述的元件或上下文。

在各种实施方式中,例如,当启用时,驱动器(未示出)可包括使得用户能够在初始启动之后通过触摸按钮像电视一样立即打开和关闭平台1202的技术。即使当平台被“关闭”时,程序逻辑也可以允许平台1202将内容流式传输到媒体适配器或其他一个或多个内容服务设备1230或一个或多个内容递送设备1240。此外,例如,芯片组1205可包括例如对5.1环绕声音频和/或高清晰度7.1环绕声音频的硬件和/或软件支持。驱动器可包括用于集成图形平台的图形驱动器。在各种实施例中,图形驱动器可包括外围组件互连(pci)express图形卡。

在各种实施方式中,可以集成系统1200中所示出的任何一个或多个组件。例如,可以集成平台1202和一个或多个内容服务设备1230,或者可以集成平台1202和一个或多个内容递送设备1240,或者例如可以集成平台1202、一个或多个内容服务设备1230和一个或多个内容递送设备1240。在各种实施例中,平台1202和显示器1220可以是集成的单元。例如,可以集成显示器1220和一个或多个内容服务设备1230,或者可以集成显示器1220和一个或多个内容递送设备1240。这些示例不意味着限制本公开。

在各种实施例中,系统1200可被实现为无线系统、有线系统或两者的组合。当被实现为无线系统时,系统1200可包括适合于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等。无线共享介质的示例可包括部分无线频谱,诸如rf频谱等。当被实现为有线系统时,系统1200可包括适合于通过有线通信介质进行通信的组件和接口,诸如输入/输出(i/o)适配器,用于将i/o适配器与对应的有线通信介质连接的物理连接器,网络接口卡(nic),盘控制器,视频控制器,音频控制器等。有线通信介质的示例可包括电线,电缆,金属引线,印刷电路板(pcb),背板,交换结构,半导体材料,双绞线,同轴电缆,光纤等。

平台1202可以建立一个或多个逻辑信道或物理信道以传送信息。该信息可包括媒体信息和控制信息。媒体信息可以指代表示用于用户的内容的任何数据。内容的示例可包括例如来自语音对话、视频会议、流式视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音对话的数据可以例如是语音信息,无声时段,背景噪声,舒适噪声,音调等。控制信息可以指代表示用于自动系统的命令、指令或控制字的任何数据。例如,控制信息可以用于通过系统路由媒体信息,或指示节点以预定方式处理媒体信息。然而,实施例不限于图12中示出或描述的元件或上下文。

如上所述,可以以不同的物理样式或形状因子来实现系统1200。图13示出了根据本公开的至少一些实施方式布置的小形状因子设备的实施方式。在一些示例中,可以经由设备1300来实现系统1200。在其他示例中,可以经由设备1300来实现其他的设备或系统或其部分。在各种实施例中,例如,设备1300可被实现为具有无线能力的移动计算设备。例如,移动计算设备可以指代具有处理系统和移动的电源或电力供应(诸如一个或多个电池)的任何设备。

移动计算设备的示例可包括个人计算机(pc),膝上型计算机,超便携式计算机,平板计算机,触摸板,便携式计算机,手持计算机,掌上型计算机,个人数字助理(pda),蜂窝电话,组合蜂窝电话/pda,智能设备(例如,智能电话、智能平板计算机或智能移动电视),移动因特网设备(mid),消息传送设备,数据通信设备,相机,等等。

移动计算设备的示例还可包括被布置为由人佩戴的计算机,诸如手腕计算机,手指计算机,戒指计算机,眼镜计算机,带夹计算机,臂带计算机,鞋计算机,服装计算机,以及其他可穿戴计算机。在各种实施例中,例如,移动计算设备可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管可以利用例如被实现为智能电话的移动计算设备来描述一些实施例,但是可以认识到,也可以使用其他无线移动计算设备来实现其他实施例。实施例不限于该上下文。

如图13所示,设备1300可包括具有前部1301和后部1302的外壳。设备1300包括显示器1304,输入/输出(i/o)设备1306,以及集成的天线1308。设备1300还可包括导航特征1312。i/o设备1306可包括用于将信息输入到移动计算设备中的任何合适的i/o设备。i/o设备1306的示例可包括字母数字键盘,数字小键盘,触摸板,输入键,按钮,开关,麦克风,扬声器,语音识别设备和软件等。还可以通过麦克风201将信息输入到设备1300中,或者可以通过语音识别设备将信息数字化。如图所示,设备1300可包括相机1305(例如,包括镜头、光圈和成像传感器)和集成到设备1300的后部1302(或其他地方)的闪光灯1310。

可以使用硬件元件、软件元件或两者的组合来实现各种实施例。硬件元件的示例可包括处理器,微处理器,电路,电路元件(例如,晶体管,电阻器,电容器,电感器等),集成电路,专用集成电路(asic),可编程逻辑器件(pld),数字信号处理器(dsp),现场可编程门阵列(fpga),逻辑门,寄存器,半导体器件,芯片,微芯片,芯片组等。软件的示例可包括软件组件,程序,应用,计算机程序,应用程序,系统程序,机器程序,操作系统软件,中间件,固件,软件模块,例程,子例程,函数,方法,过程,软件接口,应用程序接口(api),指令集,计算代码,计算机代码,代码段,计算机代码段,字,值,符号,或其任何组合。确定是否使用硬件元件和/或软件元件实现实施例可以根据任何数量的因素(诸如期望的计算速率,功率水平,热容差,处理周期预算,输入数据速率,输出数据速率,存储器资源,数据总线速度以及其他设计或性能约束)而变化。

至少一个实施例的一个或多个方面可以通过存储在表示处理器内的各种逻辑的机器可读介质上的代表性指令来实现,这些代表性指令当由机器读取时使该机器制造逻辑以执行本文描述的技术。这种称为“ip核”的表示可被存储在有形的机器可读介质上,并被提供给各种客户或制造设施,以加载到实际制造逻辑或处理器的制造机器中。

虽然已经参考各种实施方式描述了本文阐述的某些特征,但是该描述并不旨在以限制意义来解释。因此,对本公开所属领域的技术人员显而易见的本文描述的实施方式的各种修改以及其他实施方式被认为位于本公开的精神和范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1