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

语音输入处理的制作方法

2021-07-23 21:29:00 来源:中国专利 TAG:申请 引用 专利申请 并入 美国
语音输入处理的制作方法

相关申请的交叉引用

本专利申请要求享有于2018年12月3日提交的美国申请62/591,300的权益,该申请通过引用并入本文。

本说明书总体上涉及语音识别。



背景技术:

人们日益期望能够使用语音输入来执行与计算机的交互。这就需要输入处理方面的开发,特别是如何对计算机进行编程以处理和分析自然语言数据。这样的处理可能涉及语音识别,语音识别属于计算语言学领域,能够实现由计算机将口述的语言识别和翻译成文本。



技术实现要素:

为了使用户能够通过语音向计算设备提供输入,语音输入处理系统可以使用场境来标识要应用于自动语音识别器所生成的候选转录的语法。每个语法可以指示说话者的不同意图或系统针对相同的候选转录要执行的动作。系统可以基于解析候选转录的语法、语法与用户意图相匹配的似然率以及候选转录与用户所说内容相匹配的似然率来选择语法和候选转录。然后,系统可以通过使用所选候选转录中所包括的细节来执行与语法相对应的动作。

更具体地,语音处理系统接收来自用户的话语并生成字词网格。字词网格是一种反映话语的可能字词和每个字词的置信分值的数据结构。系统从字词网格中标识候选转录和每个候选转录的转录置信分值。系统标识当前场境,该当前场境可以是基于用户特征、系统位置、系统特征、系统上运行的应用(例如,当前活动的应用或前台运行的应用)或任何类似的场境数据。基于场境,系统针对解析每个候选转录的语法来生成语法置信分值。在一个以上的语法可以应用于相同候选转录的情况下,系统可以调整一些语法置信分值。系统基于经调整的语法置信分值和转录置信分值的组合来选择语法和候选转录。

根据本申请中所述主题的创新方面,一种用于处理语音输入的方法包括以下动作:由计算设备接收话语的音频数据;由计算设备使用声学模型和语言模型来生成字词网格,该字词网格包括话语的多个候选转录并包括转录置信分值,每个转录置信分值反映相应候选转录是话语的匹配的似然率;由计算设备确定计算设备的场境;基于计算设备的场境,由计算设备标识与多个候选转录相对应的语法;基于当前场境,由计算设备针对多个候选转录中的每个候选转录来确定语法置信分值,所述语法置信分值反映相应语法是相应候选转录的匹配的似然率;基于转录置信分值和语法置信分值,由计算设备从候选转录当中选择候选转录;以及由计算设备提供所选候选转录作为话语的转录,以用于输出。

这些及其他实施方式能够各自可选地包括以下特征中的一个或多个。所述动作包括:确定语法中的两个或多个语法与候选转录中的一个候选转录相对应;以及基于确定语法中的两个或多个语法与候选转录中的一个相对应,针对两个或多个语法来调整语法置信分值。计算设备基于转录置信分值和经调整的语法置信分值来从候选转录当中选择候选转录。针对两个或多个语法来调整语法置信分值的动作包括:针对两个或多个语法中的每个语法将每个语法置信分值提高一个因子。所述动作包括针对候选转录中的每个候选转录来确定相应转录置信分值与相应语法置信分值的乘积。计算设备基于转录置信分值与相应语法置信分值的乘积来从候选转录当中选择候选转录。所述动作包括由计算设备确定计算设备的场境是基于计算设备的位置、计算设备的前台中运行的应用以及当日的时间。语言模型被配置成标识字词网格中所包括的词语序列的概率。声学模型被配置成标识与音频数据的一部分相匹配的音素。所述动作包括由计算设备执行基于所选候选转录和与所选候选转录相匹配的语法的动作。

该方面的其他实施例包括均被配置成执行方法操作的相对应的系统、装置和记录在计算机存储设备上的计算机程序。

能够实施本说明书中所述主题的特定实施例,以便实现以下优点中的一个或多个。语音识别系统可以使用所接收的语音输入和所确定的场境两者,来选择用于进一步处理所接收的语音输入的语法以使计算设备执行动作。以此方式,语音识别系统可以通过将有限数目的语法应用于候选转录而减少人机界面中的延迟。语音识别系统可以使用包括语言中全部或几乎全部字词的词汇表,使得语音识别系统能够在系统接收到意想不到的输入时输出转录。

附图说明

在附图以及下面的描述中阐明在本说明书中所述主题的一个或多个实施例的细节。根据说明书、附图和权利要求,本主题的其他特征、方面和优点将变得显而易见。

图1示出了基于场境选择语法以应用于话语的示例系统。

图2示出了基于场境选择语法以应用于话语的示例系统的组件。

图3是基于场境选择语法的示例过程的流程图。

图4是计算设备和移动计算设备的示例。

各附图中相同的附图标记和名称表示相同的元件。

具体实施方式

图1示出了基于场境选择语法以应用于话语的示例系统100。简而言之,如下详述,用户102说出话语104。计算设备106检测话语104并响应于话语执行动作108。计算设备106可以使用计算设备106的场境110来确定用户102的可能意图。基于用户102的可能意图,计算设备106选择适当的动作。

更具体地,用户102在计算设备106附近说出话语104。计算设备106可以是任何类型的被配置为检测音频的计算设备。例如,计算设备106可以是移动电话、膝上型计算机、可穿戴设备、智能电器、桌面型计算机、电视机或任何其他类型的能够接收音频数据的计算设备。计算设备106处理话语104的音频数据并生成字词网格112。字词网格112表示字词的不同组合,该字词的不同组合可以与话语和每个字词的置信分值相对应。

如图1所示,用户102说话不清楚并且说出发音类似于“flightsout”的话语104。计算设备106检测用户语音的音频并使用自动语音识别来确定用户102所说的内容。计算设备106将声学模型应用于音频数据。声学模型可以被配置为确定可能对应于音频数据的不同音素。例如,声学模型可以确定音频数据除其他音素之外还包括“f”音素的音素。计算设备106可以将语言模型应用于音素。语言模型可以被配置为标识与音素相匹配的可能字词和一系列字词。在一些实施方式中,计算设备106可以将音频数据传送到另一个计算设备例如服务器。服务器可以对音频数据执行语音识别。

语言模型生成字词网格112,该字词网格包括与话语104相匹配的词语的不同组合。字词网格包括两个字词,它们可以是话语104中的第一字词。字词114“lights”可以是第一字词,或者字词116“flights”可以是第一字词。语言模型可以计算置信分值,该置信分值反映字词网格中的字词是用户说出的字词的似然率。例如,语言模型可以确定字词114“lights”的置信分值118为0.65,并且字词116“flights”的置信分值120为0.35。字词网格112包括针对第二字词的可能字词。在本示例中,语言模型仅标识第二字词的一个可能字词122,即“out”。

在一些实施方式中,计算设备106可以使用序列到序列神经网络或其他类型的神经网络来代替声学模型和语言模型。神经网络可以具有一个或多个隐藏层,并可以使用机器学习和训练数据来进行训练,该训练数据包括样本话语的音频数据以及与每个样本话语相对应的转录。在此情况下,序列到序列神经网络可以生成字词网格112以及置信分值118和120。序列到序列神经网络可以不像声学模型和语言模型那样为音素和字词组合生成单独的置信分值。相反,序列到序列神经网络可以生成置信分值,这些置信分值是由声学模型生成的音素的置信分值与由语言模型生成的字词组合的置信分值的组合。

基于字词网格112,计算设备106标识话语104的两个候选转录。第一候选转录是“lightsout”,并且第二候选转录是“flightsout”。

第一候选转录的置信分值为0.65,并且第二候选转录的置信分值为0.35。每个候选转录的置信分值可以是候选转录中每个字词的置信分值的乘积。短语“fightsout”可能是最接近话语104的声学匹配,但基于语言模型,“fight”与“out”的组合不太可能发生。相应地,“fightsout”不是候选转录。在实施方式中,当使用神经网络代替声学模型和语言模型时,神经网络可以不使用声学模型和语言模型来生成单独的置信分值。

计算设备106可以确定计算设备106的场境110。场境110可以是基于计算设备106之上或周围存在的因素的任任意组合。例如,场境110可以包括计算设备106位于用户102的家中。场境110可以包括当前时间为下午10:00,并且一周中的天数为星期二。场境110可以包括计算设备106是正在计算设备106的前台中执行数字助理应用程序的移动电话。

在一些实施方式中,场境110可以包括附加信息。例如,场境110可以包括关于计算设备106的取向的数据,诸如平放在桌上或者在用户的手中。场境110可以包括在后台中运行的应用程序。场境可以包括在接收话语104之前在计算设备的屏幕上显示的数据或由计算设备106输出的音频。例如,包括提示“嘿,请问您需要什么帮助?”的显示可以指示计算设备106正在前台中执行虚拟助理应用程序。场境110可以包括天气、用户102的身份、用户102的人口统计数据以及存储在计算设备106上或可供计算设备106访问的数据,诸如联系人。

计算设备106可以使用场境来选择语法以应用于转录。语法可以是能够使用常见注释技术(例如巴科斯诺尔范式)描述的任何字词结构。每个语法可以对应于特定的用户意图。例如,用户意图可以是发出住家自动化命令或媒体播放命令。语法的一个示例可以包括用于警报的语法。警报语法可以使用注释$digit=(0|1|2|3|4|5|6|7|8|9)将数字定义为0、1、2、3、4、5、6、7、8、9或0。警报语法可以使用注释$time=$digit$digit:$digit$digit(am|pm),该注释指示时间包括两个数字,后接冒号,然后是两个数字,接着是“上午”或“下午”。警报语法可以使用注释$mode=(alarm|timer)来定义警报的模式,该注释指示警报应是处于警报模式还是定时器模式。最后,警报语法可以将警报句法定义为$alarm=set$modefor$time,其指示用户可以说出“将警报设定为上午6:00”或“将定时器设定为下午20:00”。计算设备106使用语法来解析口述命令或键入命令,并标识供计算设备106执行的动作。因此,语法提供使计算设备106以特定方式操作以便解析命令的功能数据。

每个语法可以针对某些场境是活动的。例如,如果在计算设备106的前台中运行的应用程序是警报应用程序,则警报语法可以是活动的。如果在计算设备的前台中运行的应用程序是数字助理应用程序,则警报语法也可以是活动的。因为用户意图在警报应用程序中设定警报的似然率可以高于数字助理应用程序,如果计算设备106正运行警报应用程序,则计算设备106可以将0.95的概率分配给与命令和用户意图相匹配的警报语法的似然率,如果计算设备106正运行数字助理应用程序,则分配0.03的概率。

在图1所示的示例中,计算设备106基于可以应用于语法的不同候选转录来确定每个语法的置信分值。换而言之,计算设备106对解析每个候选转录的语法进行标识。所应用的语法124说明解析候选转录“lightsout”的那些语法以及每个语法是针对用户意图的正确语法的语法置信分值。基于给定的转录和场境,更高的语法置信分值指示更有可能的语法。如果转录为“lightsout”,则针对住家自动语法的语法置信分值126为0.35。如果转录为“lightsout”,则针对影片命令语法的语法置信分值128为0.25。如果转录为“lightsout”,则针对音乐命令语法的语法置信分值130为0.20。针对每个转录的语法置信分值的总分应该为1.0。在此情形下,计算设备106可以将余下的语法置信分值分配给默认意图语法。在本示例中,如果转录为“lightsout”,则针对默认意图语法的语法置信分值132为0.20。默认意图语法可以不限于任何特定的动作或意图,并能够解析全部或几乎全部转录。

在一些实施方式中,全部语法都不能解析特定的转录。在此情况下,应用默认意图语法。例如,可以不存在解析“flightsout”的语法。因此,如果转录为“flightsout”,则针对默认意图语法的语法置信分值为1.0。

在一些实施方式中,计算设备106基于计算转录置信分值与语法置信分值的乘积来选择语法和转录。框134示出基于转录置信分值与语法置信分值的乘积来选择转录和语法的结果。例如,“lightsout”与住家自动化语法的组合置信分值136为0.2275。“lightsout”与影片命令语法的组合置信分值138为0.1625。“lightsout”与音乐命令语法的组合置信分值140为0.130。“lightsout”与默认意图语法的组合置信分值142为0.130。“flightsout”与默认意图语法的组合置信分值144为0.350。在本实施方式中,组合置信分值144为最高分值。因而,使用该技术,计算设备106可以执行与命令“flightsout”相对应的动作。对于用户102而言,这可能是不佳的结果,并可能导致将转录“flightsout”提供给搜索引擎。

如果在因特网搜索“flightsout”不是用户102的意图,则用户将不得不重复话语104。这样做将要求计算设备106花费处理附加话语的附加的计算和功率资源。通过将计算设备102的屏幕激活一个附加的时段,用户102最终将期望的命令手动输入到计算设备102中,这将使用附加的处理和功率资源。

为了降低计算设备106执行与用户意图不匹配的动作的似然率,计算设备106可以将所应用的语法124的语法置信分值归一化。为了将所应用的语法124的语法置信分值归一化,计算设备106可以计算将最高语法置信分值增加到1.0所必需的因数。换而言之,该因数与最高语法置信分值的乘积应为1.0。然后,计算设备106可以将其他语法置信分值乘以该因数,以将其他语法置信分值归一化。由计算设备106执行的归一化可以不同于传统的概率被调整为合计为一的概率归一化。因为最高语法置信分值被增加到1.0,所以归一化的概率不会合计为一。增加的置信分值可以表示伪概率,而不是传统意义上的概率。本文其他地方描述的归一化过程也可能生成类似的伪概率。

如归一化的语法置信分值146所示,计算设备106可以将针对住家自动化语法的语法置信分值标识为最高语法置信分值。为了将语法置信分值126增加到1.0,计算设备将语法置信分值126乘以2.857(1.0/0.35=2.857)。计算设备106通过将语法置信分值128乘以2.857而计算出归一化的语法置信分值150。计算设备106通过将语法置信分值130乘以2.857而计算出归一化的语法置信分值152。计算设备106通过将语法置信分值132乘以2.857而计算出归一化的语法置信分值154。如果转录为“flightsout”,则针对默认意图语法的语法置信分值为1.0,因为不存在解析转录“flightsout”的其他语法。因此,如果转录为“flightsout”,则无需将针对默认意图语法的语法置信分值归一化,因为分值已经为1.0。

除了如框134所示的将框124的语法置信分值乘以字词网格112的转录置信分值之外,计算设备106使用归一化的语法置信分值和来自字词网格112的转录置信分值来计算组合置信分值。特别地,计算设备106将每个归一化的语法置信分值乘以各个转录的转录置信分值。如果只有默认意图语法适用于语法,则相应的转录置信分值保持不变,因为将转录置信分值乘以了1.0。

如框156所示,计算设备106通过将“lightsout”的转录置信分值乘以归一化的语法置信分值148来计算组合置信分值158从而得到0.650的结果。计算设备106通过将“lightsout”的转录置信分值乘以归一化的语法置信分值150来计算组合置信分值160从而得到0.464的结果。计算设备106通过将“lightsout”的转录置信分值乘以归一化的语法置信分值152来计算出组合置信分值162从而得到0.371的结果。计算设备106通过将“lightsout”的转录置信分值乘以归一化的语法置信分值154来计算组合置信分值164从而得到0.371的结果。计算设备106将“flightsout”的转录置信分值保持在0.350,因为不存在解析转录“flightsout”的语法。

在一些实施方式中,计算设备106可以调整框156中的置信分值,以考虑鉴于计算设备106的当前场境的当前用户场境更有可能发生的语法。例如,用户102可以使用计算设备106来收听音乐。计算设备106可以是播放歌曲的媒体设备。在此情况下,计算设备106可以调整置信分值162。计算设备106可以通过将置信分值乘以一个因数、通过将预设值分配给置信分值或通过其他技术来增加置信分值。例如,基于用户102通过作为媒体设备的计算设备102正在收听音乐的场境,音乐命令的当前概率为0.9。框124中音乐命令的概率可以是置信分值130,其为0.20。在此情形下,计算设备106可以将置信分值162乘以比值4.5(0.9/0.2=4.5)。所得的置信分值162可以为0.371*4.5=1.67。框156中的其他置信分值可以针对每个相应置信分值以类似比值来进行调整。例如,住家自动化命令的当前概率可能为0.04。在此情形下,该比值将为0.16(0.04/0.35=0.16),即0.04除以置信分值126。计算设备106可以将置信分值158乘以0.16以计算出经调整或偏移的置信分值为0.10。在此情形下,最高置信分值最终为与音乐命令相对应的置信分值。

在一些实施方式中,这个额外调整步骤可能影响计算设备106选择哪个候选转录。例如,如果候选转录“flightsout”是视频游戏的名称,并且预期用户将启动视频游戏,则计算设备106可以基于与上述计算的比值相似的比值来调整置信分值166,并且使用基于计算设备106和/或用户102的当前场境而得出的用户启动视频游戏的概率为0.8。

在一些实施方式中,诸如当多个语法解析相同的候选转录时,计算设备106可以不使用该重打分步骤而仍然改善对用户意图和语音识别的检测。该重打分步骤可以允许计算设备106基于语音识别置信分值来选择不太可能的不同候选转录。

在一些实施方式中,计算设备106可以使用该重打分步骤,而无需考虑框124的置信分值。例如,计算设备可以将重打分步骤应用于从字词网格112标识出的转录置信分值。在此情况下,计算设备106将不执行框146和框156中所示的调整。

计算设备106选择具有最高组合置信分值的语法和转录。例如,住家自动化转录和转录“lightsout”可以具有0.650的最高组合置信分值。在此情形下,计算设备106基于住家自动化语法执行“lightsout”。计算设备106可以在计算设备106所处的房屋中或用户102的家中关灯。如果计算设备106使用影片命令语法,则计算设备106可以播放影片“lightsout”。如果计算设备106使用音乐命令语法,则计算设备106可以播放歌曲“lightsout”。

如图1所示,计算设备106的显示可以指示由计算设备106执行的动作。最初,计算设备106可以显示用于数字助理的提示168。计算设备106接收话语104,并通过显示提示170来指示计算设备106正在关灯。

图2示出基于场境选择语法以应用于话语的示例系统200的组件。系统200可以是被配置为接收和处理语音音频的任何类型的计算设备。例如,系统200可以类似于图1的计算设备106。系统200的组件可以在单个计算设备中实施或分布在多个计算设备中。出于隐私原因,系统200在单个计算设备中实施可能是有益的。

系统200包括音频子系统205。音频子系统205可以包括麦克风210、模数转换器215、缓冲器220和各种其他音频滤波器。麦克风210可以被配置为检测周围区域中的声音,诸如语音。模数转换器215可以被配置为采样由麦克风210检测到的音频数据。缓冲器220可以存储采样的音频数据以供系统200进行处理。在一些实施方式中,音频子系统205可以是连续活动的。在此情形下,麦克风210可以持续地检测声音。模数转换器215可以持续地采样检测到的音频数据。缓冲器220可以存储最新采样的音频数据,诸如最后十秒的声音。如果系统200的其他组件未处理缓冲器220中的音频数据,则缓冲器220可以覆盖先前的音频数据。

音频子系统205将处理后的音频数据提供给语音识别器225。语音识别器将音频数据作为输入提供给声学模型230。可以训练声学模型230以标识与音频数据中的声音相对应的可能音素。例如,如果用户说出“set”,则声学模型230可以标识与“s”声音、“e”元音和“t”声音相对应的音素。语音识别器225将标识出的音素作为输入提供给语言模型235。语言模型235生成字词网格。字词网格包括由语言模型235标识出的每个候选词语的词语置信分值。例如,字词网格可以指示第一词语可能是“set”。语言模型235可能未标识出第一词语的任何其他可能词语。语言模型235可以针对第二词语标识两个可能的词语。例如,字词网格可以包括词语“time”和“chime”作为可能的第二词语。语言模型235可以为每个词语分配词语置信分值。针对“time”的词语置信分值可以为0.75,针对“chime”的词语置信分值可以为0.25。

语音识别器225可以基于字词网格生成候选转录。每个候选转录可以具有转录置信分值,其反映说话者说出转录中词语的似然率。例如,候选转录可以是“settime”并具有0.75的转录置信分值。另一个候选转录可以是“setchime”,并具有0.25的转录置信分值。

在语音识别器225生成字词网格、候选转录和转录置信分值的同时,场境标识器240可以正在收集指示系统200当前场境的场境数据。场境标识器240可以收集来自系统的任何传感器的传感器数据245。传感器可以包括位置传感器、温度计、加速计、陀螺仪、重力传感器、时间和日期以及任何其他类似的传感器。传感器数据245也可以包括关于系统200的状态的数据。例如,状态可以包括系统200的电池电量、信号强度、系统200可以与之通信或知道的任何附近设备以及系统200的任何其他类似的状态。

场境标识器240也可以收集指示系统200正在执行的过程的系统过程数据250。过程数据250可以指示分配给每个过程的存储器、分配给每个过程的处理资源、系统200正在执行的应用程序、在系统200的前台或后台中运行的应用程序、系统显示器上的界面内容以及任何类似的过程数据。

作为示例,场境标识器240可以接收传感器数据245和系统过程数据250,该系统过程数据指示系统200是用户的家、时间是下午6:00、当日是星期一、前台应用程序是数字助理应用程序以及设备是平板型计算机。

语法分值生成器255接收来自场境标识器240的系统200的场境以及来自语音识别器225的字词网格。语法分值生成器255标识解析字词网格的每个候选转录的语法260。在一些情况下,语法260都不解析候选转录。在此情形下,语法分值生成器255将语法置信分值为1.0的默认意图语法给出到任何语法260都不能解析的候选转录。

在一些情况下,单个语法260可以解析候选转录。在此情形下,假设候选转录是实际转录,语法分值生成器255可以确定针对单个语法的语法置信分值。因为语法置信分值表示概率,所以语法置信分值可能小于1.0。语法分值生成器255将1.0与语法置信分值之差分配给针对候选转录的默认意图语法的语法置信分值。

在一些情况下,多个语法260可以解析候选转录。在此情形下,假设候选转录是实际转录,语法分值生成器255可以确定针对每个语法的语法置信分值。因为语法置信分值表示概率集合,所以语法置信分值总和可能小于1.0。语法分值生成器255将1.0与语法置信分值总和之差分配给针对候选转录的默认意图语法的语法置信分值。

语法分值归一化器265接收针对每个候选转录的语法置信分值,并将这些语法置信分值归一化。在一些实施方式中,语法分值归一化器265仅将除了默认意图语法之外的语法的语法置信分值归一化。在语法分值生成器255针对特定候选转录生成语法的一个语法置信分值的情形下,语法分值归一化器265将该语法置信分值增加到1.0。在语法分值生成器255针对特定候选转录未生成任何语法的语法置信分值的情形下,语法分值归一化器265将默认意图语法的语法置信分值保持为1.0。

在语法分值生成器255针对特定候选转录生成针对多个语法中的每个语法的多个语法置信分值的情形下,语法分值归一化器265标识针对特定候选转录的最高语法置信分值。语法分值归一化器265计算将最高语法置信分值增加到1.0的因数,使得该因数与最高语法置信分值的乘积为1.0。语法分值归一化器265通过将因数乘以每个其他语法置信分值来增加针对同一特定转录的其他语法置信分值。

语法和转录选择器270接收归一化的语法置信分值和转录置信分值。通过使用语法置信分值和转录置信分值两者,语法和转录选择器270通过计算组合置信分值来标识最有可能与所接收的话语和说话者意图匹配的语法和转录。语法和转录选择器270通过计算每个归一化的语法置信分值与针对相应候选转录的转录置信分值的乘积来确定每个组合置信分值。在默认意图语法是针对特定候选转录的唯一语法的情形下,语法和转录选择器270将转录置信分值保持为组合置信分值。语法和转录选择器270选择具有最高组合置信分值的语法和候选转录。

动作标识器275接收来自语法和转录选择器270的所选语法和所选转录,并标识系统200要执行的动作。所选语法可以指示动作的类型,诸如设定警报、发送消息、播放歌曲、呼叫人物或任何其他类似的动作。所选转录可以指示动作类型的细节,诸如设定多长时间的警报、将消息发送给何人、播放何首歌曲、呼叫何人或任何其他类似的动作细节。语法260可以包括针对特定语法的动作类型的信息。语法260可以包括针对动作标识器275应如何解析候选转录以确定动作类型细节的信息。例如,该语法可以是$alarm语法,并且动作标识器275解析所选转录以确定将定时器设定为二十分钟。动作标识器275可以执行动作或者向系统200的另一部分(例如,处理器)提供指令。

在一些实施方式中,用户界面生成器280显示动作的指示或执行动作的指示或这两者。例如,用户界面生成器280可以显示从二十分钟开始倒数的定时器或在房屋中关灯的确认。在一些情况下,用户界面生成器280可以不提供对所执行动作的任何指示。例如,该动作可以是调节恒温器。系统200可以调节恒温器,而无需生成用于在系统200上显示的用户界面。在一些实施方式中,用户界面生成器280可以生成用于用户与动作交互或确认动作的界面。例如,动作可以是呼叫母亲。用户界面生成器280可以生成用户界面,以供用户在系统200执行动作之前确认呼叫母亲的动作。

图3是基于场境选择语法的示例过程300的流程图。一般而言,过程300对音频执行语音识别,并基于音频的转录和解析音频的语法来标识要执行的动作。过程300将语法置信分值归一化以标识说话者可能意图采取的动作。过程300将被描述为由包括一个或多个计算机的计算机系统执行,例如图1的计算设备106或图2的系统200。

系统接收话语的音频数据(310)。例如,用户可以说出听起来像“lightsout”或“flightsout”的话语。系统通过麦克风检测话语或接收话语的音频数据。系统可以使用音频子系统来处理音频数据。

系统使用声学模型和语言模型来生成字词网格,该字词网格包括话语的多个候选转录并包括转录置信分值,该每个转录置信分值反映相应候选转录是话语的匹配的似然率(320)。系统使用自动语音识别来生成字词网格。自动语音识别过程可以包括将音频数据作为输入提供给声学模型,该声学模型标识与音频数据的每个部分相匹配的不同音素。自动语音识别过程可以包括将音素作为输入提供给生成字词网格的语言模型,该字词网格包括话语中每个候选字词的置信分值。语言模型从词汇表中选择字词网格的字词。词汇表可以包括系统被配置为可以识别的语言的字词。例如,系统可以被配置为英语并且词汇表包括英语字词。在一些实施方式中,过程300的动作不包括限制系统能够识别的词汇表中的字词。换而言之,过程300能够使用系统被配置为可以识别的语言中的任何字词来生成转录。因为系统能够识别语言中的每个字词,当用户说出一些意想不到的内容时,系统的语音识别过程能够正常工作,只要它是系统被配置为可以识别的语言即可。

系统可以使用字词网格来生成不同的候选转录。每个候选转录可以包括反映用户说出转录的似然率的不同转录置信分值。例如,候选转录“lightsout”可以具有0.65的置信分值,并且候选转录“flightsout”可以具有0.35的置信分值。

系统确定系统的场境(330)。在一些实施方式中,场境是基于系统的位置、在计算设备的前台中运行的应用程序、用户的人口统计、系统上存储或可供系统访问的数据(诸如联系人数据、先前的用户查询或命令、当日的时间、日期、星期几、天气、系统定向)以及任何其他类似类型的信息。

基于系统的场境,系统标识与多个候选转录相对应的语法(340)。语法可以包括系统能够执行的不同命令的不同结构。例如,语法可以包括用于设定警报、播放影片、执行因特网搜索、检查用户日历或任何其他类似动作的命令结构。

基于当前场境,系统针对多个候选转录中的每个候选转录来确定语法置信分值,该语法置信分值反映相应语法是相应候选转录的匹配的似然率(350)。考虑到一个候选转录是话语的转录,语法置信分值可以被认为是基于系统的场境,与说话者的意图相匹配的语法的似然性的条件概率。例如,如果转录为“lightsout”,则住家自动化语法的语法置信分值可以为0.35。换而言之,考虑到转录为“lightsout”,住家自动化语法的条件概率为0.35。系统可以针对解析候选转录的每个语法来生成语法置信分值。在一些实施方式中,由于场境,系统可以仅针对解析候选转录的一些语法来生成语法置信分值。对于针对每个候选转录的语法置信分值的总和相加得1.0,系统可以将任何余下的概率分配给默认意图语法。

基于转录置信分值和语法置信分值,系统从候选转录中选择候选转录(360)。在一些实施方式中,系统通过增加匹配一个以上语法的那些候选转录而将语法置信分值归一化。针对每个候选转录,系统可以将最高语法置信分值乘以将语法置信分值归一化为1.0所需的因数。系统可以将针对同一候选转录的其他语法置信分值乘以同一因数。系统可以将归一化的语法置信分值乘以转录置信分值以生成组合置信分值。系统选择具有最高组合置信分值的语法和转录。

系统提供所选候选转录作为话语的转录以用于输出(370)。在一些实施方式中,系统基于语法和候选转录执行动作。语法可以指示要采取的动作。动作可以包括播放影片、呼叫联系人、开灯、发送消息或任何其他类似类型的动作。所选转录可以包括要呼叫的联系人、要发送的消息、消息的接收方、影片的名称或任何其他类似的细节。

在一些实施方式中,系统利用了使用通过有限状态转换器(fst)为给定的语法集标记字词网格的过程。在一些实施方式中,系统可以将语法约束为与当前场境相匹配的全部语法的并集。在一些实施方式中,系统可以预先离线地或在运行时动态地匹配语法。

在一些实施方式中,过程300可以对字词网格的边缘进行加权。系统可以将语法编译成约束语法的加权有限状态转换器。在该有限状态转换器中,弧权值或边边缘权值可以编码给定语法的字词的概率量,其可以是负对数权值。在一些实施方式中,与字词网格相关的全部或几乎全部的语法都可以彼此并集。

过程300可以使用确定每个语法的场境相关的概率的系统继续进行,该概率可以是给定了场境的语法的概率。系统可以通过所提供的分量和相应的权值来确定场境相关的概率,所述权值也可以被编码为语法约束器中的弧或边缘,诸如其开放装饰器弧。

过程300可以使用清除字词网格的权值的系统继续进行。系统可以用语法约束器构成字词网格,这可以导致跨度匹配语法被标记。例如,匹配语法的跨度可以包围有开放和封闭装饰器标签,诸如针对跨度的<media_commands>playsong</media_commands>,或者“playsong”的转录。

过程300可以继续将概率归一化。系统生成标签网格的副本并且去除装饰器标签。系统确定并最小化热带半环中的弧成本,这就得出每个唯一字词路径,通过该字词路径将最高概率进行编码。概率可以是给定了语法的字词路径乘以语法的概率的概率。概率可以通过在使用负对数权值时反转弧权值的符号而求逆,并且该逆网格可以由标签网格组成。对于每个字词序列或路径,利用逆网格的组成可能等效于对网格权值进行除法,在此情形下,是将给定了语法的字词路径的最高概率量乘以语法的概率。因此,系统可以将最佳标签路径的概率除以它们本身,并且每个均可以变为1.0。在一些实施方式中,非最佳路径将接收较低的伪概率,从而产生包含期望量的网格、给定字词路径的语法的伪概率。

在一些实施方式中,过程300可以包括通过使用波束修剪来丢弃具有低条件概率的语法。例如,如果存在过多与话语“lightsout”相匹配的语法,其中住家自动化的概率为0.32,影片命令的概率为0.25,音乐命令的概率为0.20,通用搜索的概率为0.10,在线交易的概率为0.03,社交团体的概率为0.03,在线百科搜索的概率为0.02。系统可以通过修剪低于阈值或低于最可能解释或语法的阈值百分比的语法来减轻处理负担。例如,系统可以修剪那些比最可能语法低十分之一的语法。然后,系统可以针对给定转录去除那些小于0.032的语法。修剪背后的基本原理是,低分标签的概率很低,以至于缺乏合理的偏移量将导致该解释在更可能的解释中被选择。修剪可能要求系统添加有限状态转换器,该有限状态转换器以期望的修剪权值对所得的网格进行运算,该期望的修剪权值指定标签要距离最佳假设多远才能被修剪。

过程300的益处允许系统直接在格上偏移语法。过程300具有比其他字词网格标记算法更低的复杂度。过程300通过实施最大归一化来解决因标记歧义引起的概率残片。过程300允许通过使用波束修剪来丢弃相对不太可能的被建议的标签。

在一些实施方式中,过程300可以从网格中提取n个最佳假设,并分别标记每个假设,并且可能可选地最终将它们重新组合回网格中。系统可以假定标记在其他方面相同。这样做可以产生相同的结果,但延迟更长和/或召回率更低。如果删除掉前n个假设后的n个最佳假设,诸如n=100,则召回率可以降低,这可以有助于管理延迟。因为网格中不同语句的数目可相对于其中字词的数目呈指数增长,在最差情形下,一些解决方案可能呈指数变慢,除非使用上述best-n限制,否则可能限制被检查的选择的数目。

图4示出可用于实施本文所述技术的计算设备400和移动计算设备450的示例。计算设备400旨在表示各种形式的数字计算机,诸如膝上型计算机、桌面型计算机、工作站、个人数字助理、服务器、刀片服务器、主机以及其他适当的计算机。移动计算设备450旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话以及其他类似的计算设备。本图所示的组件、它们的连接和关系以及它们的功能意在仅作示例,而非旨在作出限制。

计算设备400包括处理器402、存储器404、存储设备406、连接至存储器404和多个高速扩展端口410的高速接口408,以及连接至低速扩展端口414和存储设备406的低速接口412。处理器402、存储器404、存储设备406、高速接口408、高速扩展端口410和低速接口412中的每一个使用各种总线互连,并且可以被安装在公共主板上或以其他适当方式安装。处理器402能够处理用于在计算设备400内执行的指令,包括存储在存储器404中或存储设备406上的指令,以在诸如耦合至高速接口408的显示器416的外部输入/输出设备上显示gui图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多条总线以及多个存储器和多种类型的存储器。而且,可以连接多个计算设备,每个设备提供必要操作的多个部分(例如作为服务器阵列、刀片服务器组或多处理器系统)。

存储器404存储计算设备400内的信息。在一些实施方式中,存储器404是一个或多个易失性存储器单元。在一些实施方式中,存储器404是一个或多个非易失性存储器单元。存储器404也可以是另一种形式的计算机可读介质,诸如磁盘或光盘。

存储设备406能够为计算设备400提供大容量存储。在一些实施方式中,存储设备406可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储器设备或者设备的阵列(包括存储区域网络或其他配置中的设备)。指令能够被存储在信息载体中。指令当由一个或多个处理设备(例如,处理器402)执行时执行一种或多种方法,诸如上述那些方法。指令也能够被诸如计算机或机器可读介质的一个或多个存储设备(例如,存储器404、存储设备406或处理器402上的存储器)存储。

高速接口408管理针对计算设备400的带宽密集型操作,而低速接口412管理更低的带宽密集型操作。这样的功能分配仅作示例。在一些实施方式中,高速接口408耦合至存储器404、显示器416(例如,通过图形处理器或加速器)以及可以接受各种扩展卡(未示出)的高速扩展端口410。在本实施方式中,低速接口412耦合至存储设备406和低速扩展端口414。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口414可以例如通过网络适配器耦合至一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或联网设备(诸如交换机或路由器)。

如图所示,计算设备400可以通过数种不同的形式来实施。例如,它可以被实施为标准服务器420或多次实施在一组这样的服务器中。此外,它可以被实施在个人计算机(诸如膝上型计算机422)中,。它也可以被实施为机架式服务器系统424的一部分。替代地,来自计算设备400中的组件可以与诸如移动计算设备450的移动设备(未示出)中的其他组件组合。每个这样的设备中可以包含计算设备400和移动计算设备450中的一个或多个,并且整个系统可以由彼此通信的多个计算设备组成。

移动计算设备450包括处理器452、存储器464、诸如显示器454的输入/输出设备、通信接口466和收发器468,以及其他组件。移动计算设备450也可以设置有用于提供附加存储的存储设备,诸如微驱动器或其他设备。处理器452、存储器464、显示器454、通信接口466和收发器468中的每一个都使用各种总线互联,并且多个组件中可以被安装在公共主板上或以其他方式适当地安装。

处理器452能够执行移动计算设备450内的指令,包括存储在存储器464中的指令。处理器452可以被实施为包括独立和多个模拟和数字处理器的芯片的芯片组。例如,处理器452可以提供与移动计算设备450的其他组件的协作,诸如对用户界面的控制、由移动计算设备450运行的应用以及由移动计算设备450进行的无线通信。

处理器452可以通过耦合至显示器454的控制接口458以及显示器接口456与用户进行通信。例如,显示器454可以是tft(薄膜晶体管液晶显示器)显示器或oled(有机发光二极管)显示器或者其他适当的显示技术。显示器接口456可以包括用于驱动显示器454以将图形信息和其他信息呈现给用户的适当电路。控制接口458可以接收来自用户的命令,并将它们进行转换以提交给处理器452。此外,外部接口462可以提供与处理器452的通信,以使移动计算设备450能够与其他设备进行附近区域通信。例如,外部接口462可以在一些实施方式中提供有线通信或在其他实施方式中提供无线通信,并且也可以使用多个接口。

存储器464将信息存储在移动计算设备450内。存储器464能够被实施为一种或多种计算机可读介质或媒介、一个或多个易失性存储单元或者一个或多个非易失性存储单元中的一个或多个。也可以提供扩展存储器474,并且其通过扩展接口472连接至移动计算设备450,例如,该扩展接口可以包括simm(单列直插存储器模块)卡接口。扩展存储器474可以为移动计算设备450提供额外的存储空间,或者也可以存储针对移动计算设备450的应用或其他信息。具体地,扩展存储器474可以包括用于实行或补充上述过程的指令,并且也可以包括安全信息。因此,例如,扩展存储器474可以被设置为用于移动计算设备450的安全模块,并且可以用允许安全使用移动计算设备450的指令来进行编程。此外,可以经由simm卡提供安全应用连同附加信息,诸如以不可破解的方式将标识信息置于simm卡上。

例如,存储器可以包括闪存和/或nvram存储器(非易失性随机存取存储器),如下论述。在一些实施方式中,信息载体中存储有指令,这些指令当由一个或多个处理设备(例如,处理器452)执行时执行一种或多种方法,诸如上述那些方法。指令也能够被诸如一个或多个计算机或机器可读介质的一个或多个存储设备(例如,存储器464、扩展存储器474或处理器452上的存储器)存储。在一些实施方式中,例如能够通过收发器468或外部接口462在传播信号中接收指令。

移动计算设备450可以通过通信接口466进行无线通信,该通信接口必要时可以包括数字信号处理电路。通信接口466可以提供各种模式或协议下的通信,诸如gsm语音呼叫(全球移动通信系统)、sms(短消息服务)、ems(增强型消息服务)或mms消息(多媒体消息服务)、cdma(码分多址)、tdma(时分多址)、pdc(个人数字蜂窝)、wcdma(宽带码分多址)、cdma2000或gprs(通用分组无线电业务)等。例如,这样的通信可以通过收发器468使用射频来发生。此外,可以诸如使用蓝牙、wifi或其他这样的收发器(未示出)发生近程通信。此外,gps(全球定位系统)接收器模块470可以将附加的导航与位置相关的无线数据提供给移动计算设备450,其可以通过移动计算设备450上运行的应用来适当地使用。

移动计算设备450也可以使用音频编解码器460来进行可听通信,该音频编解码器450可以接收来自用户的口述信息并将其转换为可用的数字信息。音频编解码器460同样可以诸如在移动计算设备450的手持机中诸如通过扬声器为用户生成可听声音。这样的声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等),并且还可以包括由在移动计算设备450上操作的应用所生成的声音。

如图所示,移动计算设备450可以通过多种不同的形式来实施。例如,它可以被实施为蜂窝电话480。它还可以被实施为智能电话482、个人数字助理或其他类似的移动设备的一部分。

本文描述的系统和技术的各种实施方式能够用数字电子电路、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件和/或其组合来实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,该至少一个可编程处理器可以是专用或通用处理器,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并向存储系统、至少一个输入设备和至少一个输出设备传送数据和指令。

这些计算机程序(又称为程序、软件、软件应用或代码)包括针对可编程处理器的机器指令,并且可以利用高级程序和/或面向对象编程语言和/或用汇编/机器语言来实施。如本文所用,术语“机器可读介质”和“计算机可读介质”是指用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,本文所述的系统和技术可以在计算机上实施,该计算机具有用于将信息显示给用户的显示设备(例如,crt(阴极射线管)或lcd(液晶显示器)监视器),以及用户能够借以向计算机提供输入的键盘和指向设备(例如,鼠标或轨迹球)。也能够使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声学输入、语音输入或触觉输入。

本文描述的系统和技术能够在计算系统中实施,该计算系统包括后端组件(例如,作为数据服务器),或包括中间件组件(例如,应用服务器),或包括前端组件(例如,具有用户可以用来与本文描述的系统和技术的实施方式进行交互的图形用户界面或web浏览器的客户端计算机),或包括此类后端、中间件或前端组件的任何组合。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)来互联。通信网络的示例包括局域网(lan)、广域网(wan)和互联网。在一些实施方式中,本文描述的系统和技术可以在嵌入式系统上实施,其中直接在设备上执行语音识别和其他处理。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并彼此具有客户端-服务器关系的计算机程序来产生。

虽然上文已详细描述了一些实施方式,但也可能作出其他修改。例如,虽然客户端应用被描述为访问委托,但是在其他实施方式中,委托可以被由一个或多个处理器实施的其他应用所采用,诸如在一个或多个服务器上执行的应用。此外,附图中描绘的逻辑流程不需要图示的特定次序或顺序来获得期望的结果。此外,可以提供其他动作,或者可以从所述流程中取消动作,并且可以向所述系统添加其他组件或从所述系统中删除其他组件。相应地,其他实施方式落入所附权利要求的范围内。

再多了解一些

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

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

相关文章

  • 日榜
  • 周榜
  • 月榜