HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

在调用短语检测中选择性地适配和利用噪声降低技术的制作方法

2021-01-28 17:01:06|558|起点商标网
在调用短语检测中选择性地适配和利用噪声降低技术的制作方法



背景技术:

人类可以用在本文中称为“自动化助理”(也称为“数字代理”、“聊天机器人”、“交互式个人助理”、“智能个人助理”、“助理应用”、“谈话代理”等)的交互式软件应用来参与人机对话。例如,人类(当他们与自动化助理交互时可以被称为“用户”)可以使用口语自然语言输入(即,发言)和/或通过提供文本(例如,打字)自然语言输入来向自动化助理提供命令和/或请求,该口语自然语言输入可以在一些情况下被转换成文本,然后进行处理。自动化助理通过提供响应性用户接口输出来对请求做出响应,该响应性用户接口输出能够包括可听和/或可视用户接口输出。

如上所述,许多自动化助理被配置成经由口语发言与之交互。为了保护用户隐私和/或保存资源,用户必须常常在自动化助理将充分地对口语发言进行处理之前显式地调用自动化助理。对自动化助理的显式调用通常响应于在客户端设备处接收到某个用户接口输入而发生。客户端设备包括助理接口,该助理接口向客户端设备的用户提供用于与自动化助理交互的接口(例如,接收来自用户的口语和/或打字输入,并且提供可听和/或图形响应),而且与实现自动化助理的一个或多个附加组件(例如,对用户输入进行处理并且生成适当响应的远程服务器设备)接口。

能够经由客户端设备调用自动化助理的一些用户接口输入包括客户端设备处用于调用自动化助理的硬件和/或虚拟按钮(例如,对硬件按钮的轻敲、对由客户端设备显示的图形接口元素的选择)。能够附加地或替换地响应于一个或多个口语调用短语而调用许多自动化助理,这些口语调用短语也被称为“热词/短语”或“触发词/短语”。例如,能够说出诸如“heyassistant(嘿助理)”、“okassistant(好的助理)”和/或“assistant(助理)”的语音调用短语来调用自动化助理。

常常,包括助理接口的客户端设备包括一个或多个在本地存储的模型,客户端设备利用这些模型来监视口语调用短语的发生。这样的客户端设备能够利用在本地存储的模型来在本地对接收到的音频数据进行处理,并且丢弃不包括语音调用短语的任何音频数据。然而,当对接收到的音频数据的本地处理指示口语调用短语的发生时,客户端设备然后将使该音频数据和/或接着的音频数据由自动化助理进一步处理。例如,如果口语调用短语是“hey,assistant(嘿,助理)”且用户说出“hey,assistant,whattimeisit(嘿,助理,几点了)”,则与“whattimeisit(几点了)”相对应的音频数据能够由自动化助理基于对“hey,assistant(嘿,助理)”进行的检测来处理,并且用于提供当前时间的自动化助理响应。另一方面,如果用户简单地说出“whattimeisit(几点了)”(而没有首先说出调用短语),则作为“whattimeisit(几点了)”之前没有调用短语的结果,不提供来自自动化助理的响应。

尽管存在用于监视口语调用短语的发生的模型,但是许多此类模型遭受一个或多个缺点。例如,一些模型在具有强背景噪声(例如,来自电视、来自播放音乐、来自其它谈话的噪声)的环境中表现很差。例如,一些模型在存在背景噪声的情况下可能缺少期望的鲁棒性和/或准确性。这可能导致无法检测到实际的口语调用短语并且/或者可能导致对调用短语的错误检测。



技术实现要素:

本文描述了用于在检测音频数据帧流的一个或多个特征时选择性地适配和/或选择性地利用噪声降低技术的技术。例如,各种技术涉及在检测音频数据帧流中的调用短语、检测音频数据帧流中的话音特性(例如,用于说话者识别)等时选择性地适配和/或利用噪声降低技术。利用本文描述的技术能够在诸如在具有强背景噪声的环境中的各种情形下得到对音频数据帧流的特征的更鲁棒和/或更准确的检测。在各种实现方式中,结合自动化助理实现本文描述的技术,并且利用本文描述的技术检测到的特征用于适配自动化助理的功能性。例如,当利用技术来在音频数据帧流中检测调用短语的存在时,能够响应于检测到口语调用短语而激活自动化助理的至少一个功能,诸如使一个或多个随后接收到的音频数据帧被发送到一个或多个远程自动化助理服务器以进一步处理的功能。另外,例如,当利用技术来检测音频数据帧流中的话音特性(例如,用于说话者识别)时,能够基于使用所检测到的话音特性识别的说话者来适配由自动化助理生成的内容。

在各种实现方式中,使用训练后的机器学习模型来对基于来自客户端设备的一个或多个麦克风的输出的音频数据帧进行处理以生成相应的输出。对于每个音频数据帧所生成的输出指示音频数据帧是否具有一个或多个目标特征(例如,目标音素),并且所生成的输出用于以对应的输出指示标记音频数据帧。作为工作示例,对于每个音频数据帧所生成的输出能够指示多个触发音素中的每一个的对应概率,并且可选地指示“无触发音素”的对应概率。继续该工作示例,针对每个音频数据帧的输出指示在输出对于触发音素中的任何一个指示至少第一“高”阈值概率的情况下可以是“触发”指示;在输出未能至少指示触发音素中的任何一个、而是对于触发音素中的任何一个指示小于第一阈值概率但是大于第二“低”阈值概率的情况下可以是“接近触发”指示;以及在输出对于所有触发音素指示小于第二阈值概率(和/或对于“无触发音素”指示大于第三阈值概率)的情况下可以是“噪声”指示。

在那些各种实现方式中的一些实现方式中,音频数据帧及其对应的输出指示能够被存储在先进先出(fifo)缓冲器中,并且能够周期性地(或以其它规则和/或非规则间隔)评估缓冲器的内容,以确定基于缓冲器的内容要执行的进一步处理。继续该工作示例,如果在给定实例处的缓冲器的音频数据帧全部具有指示“噪声”的输出指示,则缓冲器的音频数据帧中的至少一个能够用于适配噪声降低技术。例如,能够从缓冲器中“弹出”包括至少第一声道(基于第一麦克风)和第二声道(基于第二麦克风)的音频数据帧并且利用其来适配自适应噪声消除滤波器(或者适配另一噪声降低技术,诸如波束形成)。如果在给定实例处的缓冲器的音频数据帧不包括指示“触发”的输出指示,但是包括指示“接近触发”的至少一个输出指示,则能够刷新整个缓冲器并且使用如最近适配的噪声降低技术来对音频数据帧进行处理,以生成滤波后的数据帧。然后能够使用附加的训练后的机器学习模型来对滤波后的数据帧进行处理,以确定在滤波后的音频数据帧中是否存在调用短语。附加机器学习模型能够与用来确定输出指示的机器学习模型相同(但是可选地与其单独的实例相同),或者可能可选地是单独的模型,诸如利用起来可能计算上更密集的更鲁棒模型。如果在给定实例处的缓冲器的音频数据帧包括指示“触发”的至少一个输出指示,则能够刷新整个缓冲器并且使用附加的训练后的机器学习模型来对缓冲器的音频数据帧进行处理,以确定在附加机器学习模型中是否存在调用短语。在一些实现方式中,当存在触发输出指示时,能够附加地或替换地使用如最近适配的自适应噪声降低技术来对缓冲器的音频数据帧进行处理,以生成滤波后的数据帧,并且使用附加的训练后的机器学习模型来对此类帧进行处理以确定调用短语是否存在。

以这些和其它方式,当确定缓冲器仅包含全部标记有指示音频数据帧缺少目标特征(例如,缺少任何调用音素)的输出指示的音频数据帧时,能够基于缓冲器的音频数据帧来适配噪声降低技术。如上所述,基于使用被训练来预测目标特征是否存在的初始训练后的机器学习模型来对音频数据帧进行处理而生成音频数据帧的输出指示。另一方面,无论何时确定了缓冲器包含“潜在地”包括目标特征中的一个或多个的音频数据帧,都能够使用最近适配的噪声降低技术来对缓冲器的音频数据帧进行处理以生成滤波后的数据帧,并且对此类滤波后的数据帧进行处理以确定目标特征是否存在。在这样的情形下,能够使用当前适配的噪声降低技术来对音频数据帧进行处理,但是可选地将不在进一步适配噪声降低技术时利用音频数据帧。可能不在这样的情形下进一步适配噪声降低技术,因为音频数据帧潜在地包括目标特征,并且基于包括目标特征的音频数据帧进一步适配它可能不期望地使目标特征由噪声降低技术滤波。如上所述,每当确定了缓冲器包含“很可能”包括目标特征中的一个或多个的音频数据帧时,就能够对音频数据帧进行处理以确定目标特征是否存在(可选地而不基于经适配的滤波器技术进行滤波)。

此外,一些实现方式包括一个或多个计算设备的一个或多个处理器,其中一个或多个处理器可操作来执行存储在相关存储器中的指令,并且其中指令被配置成使本文描述的方法中的任一种的执行。一些实现方式也包括一个或多个暂时性或非暂时性计算机可读存储介质,其存储可由一个或多个处理器执行以执行本文描述的方法中的任一种的计算机指令。

应该认识到,本文更详细地描述的前述构思和附加构思的所有组合被设想为本文公开的主题的一部分。例如,在本公开的结尾处出现的要求保护的主题的所有组合被设想为本文公开的主题的一部分。

附图说明

图1是其中可以实现本文公开的实现方式的示例环境的框图。

图2a和图2b描绘了图示根据本文公开的各种实现方式的示例方法的流程图。

图3说明了根据本文公开的各种实现方式的能够如何对音频数据帧进行处理的示例。

图4图示了示例客户端设备、示例用户和示例背景噪声源。

图5描绘了图示根据本文公开的各种实现方式的另一示例方法的流程图。

图6图示了计算设备的示例架构。

具体实施方式

现在转向图1,图示了其中可以实现本文公开的技术的示例环境。该示例环境包括客户端计算设备106(其在本公开中也被简称为“客户端设备”),该客户端计算设备执行自动化助理客户端120的实例。可以在一个或多个计算系统(统称为“云”计算系统)上实现一个或多个基于云的自动化助理组件130,诸如自然语言处理器133,这些计算系统经由一般地在110处指示的一个或多个局域网和/或广域网(例如,因特网)通信地耦合到客户端设备106。

自动化助理客户端120的实例通过其与一个或多个基于云的自动化助理组件130的交互,可以形成从用户的角度似乎为用户可以参与人机对话的自动化助理140的逻辑实例的东西。在图1中描绘了这样的自动化助理140的实例。因此应该理解的是,在一些实现方式中,与在客户端设备106上执行的自动化助理客户端120接涉的用户实际上可以与他或她自己的自动化助理140的逻辑实例接涉。为了简洁和简单起见,如本文中用作“服务”特定用户的词语“自动化助理”将常常是指在由用户操作的客户端设备106上执行的自动化助理客户端120和一个或多个基于云的自动化助理组件130(其可以在多个客户端计算设备的多个自动化助理客户端之间共享)的组合。也应该理解的是,在一些实现方式中,自动化助理140可以对来自任何用户的请求做出响应,而不管该用户是否由自动化助理140的那个特定实例实际地“服务”。

客户端计算设备106可以是例如:台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的车辆的计算设备(例如,车载通信系统、车载娱乐系统、车载导航系统)、独立交互式扬声器、诸如智能电视的智能器具和/或用户的可穿戴装置,该可穿戴装置包括计算设备(例如,具有计算设备的用户的手表、具有计算设备的用户的眼镜、虚拟或增强现实计算设备)。可以提供附加和/或替代客户端计算设备。在各种实现方式中,客户端计算设备106可以可选地操作除了自动化助理客户端120之外的一个或多个其它应用,诸如消息交换客户端(例如,sms、mms、在线聊天)、浏览器等。在那些各种实现方式中的一些实现方式中,一个或多个其它应用能够可选地与自动化助理客户端120接口(例如,经由应用编程接口),或者包括它们自己的自动化助理应用(其也可以与基于云的自动化助理组件130对接)的实例。

自动化助理140经由客户端设备106的用户接口输入和输出设备与用户一起参与人机对话会话。如上所述,为了保护用户隐私和/或保存资源,在许多情形下,在自动化助理将充分地对口语发言进行处理之前,用户必须常常显式地调用自动化助理140。对自动化助理140的显式调用能够响应于在客户端设备106处接收到的某个用户接口输入而发生。例如,能够经由客户端设备106调用自动化助理140的用户接口输入能够可选地包括客户端设备106的硬件和/或虚拟按钮的致动。客户端设备106包括调用引擎124,该调用引擎可选地可操作来辨识此类非口语输入。

此外,调用引擎124进一步可操作来检测一个或多个口语调用短语的存在,并且响应于检测到口语调用短语中的一个而调用自动化助理140。例如,调用引擎124能够响应于检测到诸如“嘿助理”、“好的助理”和/或“助理”的口语调用短语而调用自动化助理140。调用引擎124能够连续地对基于来自客户端设备106的一个或多个麦克风的输出的音频数据帧流进行处理(例如,如果不处于“不活动”模式),以监视口语调用短语的发生。在监视口语调用短语的发生的同时,调用引擎124丢弃(例如,在暂时存储在缓冲器中之后)不包括口语调用短语的任何音频数据帧。然而,当调用引擎124在处理后的音频数据帧中检测到口语调用短语的发生时,调用引擎124能够调用自动化助理140。

如本文所用,“调用”自动化助理140能够包括使自动化助理140的一个或多个先前不活动的功能被激活。例如,调用自动化助理140能够包括使一个或多个本地引擎122和/或基于云的自动化助理组件130进一步处理基于其检测到调用短语的音频数据帧,和/或一个或多个接着的音频数据帧(然而在调用之前,对音频数据帧的进一步处理尚未发生)。

自动化助理140的一个或多个本地引擎122是可选的,并且能够包括例如本地语音至文本(“stt”)引擎(其将捕获的音频转换为文本)、本地文本至语音(“tts”)引擎(其将文本转换为语音)、本地自然语言处理器(其确定音频和/或从音频转换的文本的语义含义)和/或其它本地组件。因为客户端设备106在计算资源(例如,处理器周期、存储器、电池等)方面相对地受限制,所以本地引擎122相对于基于云的自动化助理组件130中包括的任何对方可能具有有限的功能性。

相对于本地引擎122的任何对方,基于云的自动化助理组件130利用云的实际上无限的资源来对音频数据和/或其它用户接口输入执行更鲁棒和/或更准确的处理。再次,在各种实现方式中,客户端设备106能够响应于调用引擎124检测到口语调用短语或者检测到对自动化助理140的某个其它显式调用而向基于云的自动化助理组件130提供音频数据和/或其它数据。

所图示的基于云的自动化助理组件130包括基于云的tts模块131、基于云的stt模块132、自然语言处理器133、对话状态跟踪器134和对话管理器135。在一些实现方式中,可以省略、组合和/或在与自动化助理140分开的组件中实现自动化助理140的引擎和/或模块中的一个或多个。另外,在一些实现方式中自动化助理140能够包括附加和/或替代引擎和/或模块。

基于云的stt模块132能够将音频数据转换成文本,然后可以将该文本提供给自然语言处理器133。基于云的tts模块132能够将文本数据(例如,由自动化助理140制定的自然语言响应)转换成计算机生成的语音输出。在一些实现方式中,tts模块132可以例如使用一个或多个扬声器来直接输出。将计算机生成的语音输出提供给客户端设备106。在其它实现方式中,可以将由自动化助理120生成的文本数据(例如,自然语言响应)提供给本地引擎122中的一个,本地引擎122然后可以将文本数据转换成在本地输出的计算机生成的语音。

自动化助理140的自然语言处理器133(或者被称为“自然语言理解引擎”)对自由形式自然语言输入进行处理,并且基于该自然语言输入生成带注释的输出以供由自动化助理140的一个或多个其它组件使用。例如,自然语言处理器133能够对作为文本输入的自然语言自由形式输入进行处理,该本文输入是由stt模块132对由用户经由客户端设备106提供的音频数据的转换。所生成的带注释的输出可以包括自然语言输入的一个或多个注释并且可选地包括自然语言输入的一个或多个(例如,全部)词语。

在一些实现方式中,自然语言处理器133被配置成标识并注释自然语言输入中的各种类型的语法信息。例如,自然语言处理器133可以包括语音标记器(未描绘)的一部分,该语音标记器被配置成按词语的语法角色而注释它们。另外,例如,在一些实现方式中,自然语言处理器133可以附加地和/或替换地包括依赖解析器(未描绘),该依赖解析器被配置成确定自然语言输入中的词语之间的句法关系。

在一些实现方式中,自然语言处理器133可以附加地和/或替换地包括实体标记器(未描绘),该实体标记器被配置成注释一个或多个分段中的实体引用,诸如对人(包括例如文学角色、名人、公众人物等)、组织、位置(真实的和虚构的)等的引用。自然语言处理器133的实体标记器可以以高粒度水平(例如,以使得能够标识对诸如人的实体类的所有引用)和/或较低粒度水平(例如,以使得能够标识对诸如特定人员的特定实体的所有引用)注释对实体的引用。实体标记器可以依靠自然语言输入的内容来解析特定实体并且/或者可以可选地与知识图或其它实体数据库进行通信以解析特定实体。

在一些实现方式中,自然语言处理器133可以附加地和/或替换地包括共指解析器(未描绘),该共指解析器被配置成基于一个或多个上下文线索来对对同一实体的引用进行分组或“聚类”。例如,可以利用共指解析器来将自然语言输入“ilikedhypotheticalcafélasttimeweatethere(我喜欢上次我们在那里吃饭的假想咖啡馆)”中的词语“there(在那里)”解析为“hypotheticalcafé(假想咖啡馆)”。

在一些实现方式中,自然语言处理器133的一个或多个组件可以依靠来自自然语言处理器133的一个或多个其它组件的注释。例如,在一些实现方式中命名实体标记器可以在对对特定实体的所有提及进行注释时依靠来自共指解析器和/或依赖解析器的注释。另外,例如,在一些实现方式中共指解析器可以在对对同一实体的引用进行聚类时依靠来自依赖解析器的注释。在一些实现方式中,在处理特定自然语言输入时,自然语言处理器133的一个或多个组件可以使用相关在先输入和/或除了特定自然语言输入之外的其它相关数据来确定一个或多个注释。

在一些实现方式中,对话状态跟踪器134可以被配置成跟踪“对话状态”,该“对话状态”包括例如一个或多个用户在人机对话会话的过程中和/或跨越多个对话会话的目标(或“意图”)的简要状态。在确定对话状态时,一些对话状态跟踪器可以设法基于用户和系统在对话会话中发言来确定在对话中实例化的槽(slot)的最可能的值。一些技术利用固定本体论,该固定本体论定义了一组槽和与那些槽相关联的值的集合。附加地或替换地,一些技术可以适于个别槽和/或域。例如,一些技术可能要求针对每个域中的每种槽类型来训练模型。

对话管理器135可以被配置成将例如由对话状态跟踪器134提供的当前对话状态映射到然后由自动化助理140执行的多个候选响应动作中的一个或多个“响应动作”。取决于当前对话框状态,响应动作可以以各种形式出现。例如,可以将与在最后轮次之前(例如,当执行最终用户期望的任务时)发生的对话会话的轮次相对应的初始和中流对话状态映射到各种响应动作,这些响应动作包括自动化助理140输出附加自然语言对话。此响应对话可以包括例如请求用户提供用于对话状态跟踪器134认为用户打算执行的一些动作(即,填充槽)的参数。在一些实现方式中,响应动作可以包括诸如下列的动作:“请求”(例如,寻找用于槽填充的参数)、“提供”(例如,为用户建议动作或行动方针)、“选择”、“通知”(例如,给用户提供请求的信息)、“不匹配”(例如,通知用户不理解用户的最后输入)、对外围设备的命令(例如,关掉灯泡)等。

如上所述,调用引擎124可被操作来在音频数据中检测一个或多个口语调用短语的存在,并且响应于对口语调用短语中的一个的检测而调用自动化助理140。调用引擎124能够在音频数据帧流中检测到口语调用短语时选择性地适配和利用噪声降低技术。如图1中所图示的,调用引擎124能够包括分类模块125、控制器模块126、噪声降低(nr)适配模块127和调用短语模块128。

分类模块125使用训练后的声学模型160a来对音频数据帧流的音频数据帧中的每一个进行处理。音频数据帧流基于来自客户端设备106的一个或多个麦克风的输出。例如,音频数据帧中的每一个能够具有至少第一声道和第二声道,该第一声道基于来自第一麦克风的输出,该第二声道基于来自第二麦克风的输出。使用训练后的声学模型160a对音频数据帧中的每一个进行处理来生成相应的输出,诸如对于一个或多个调用音素中的每一个指示该音素存在于音频数据帧中的对应概率的输出。

如本文所用,词语“音频数据帧”是指音频数据的单位。例如,音频数据帧可以是由单个麦克风在单个时间点捕获的单个音频样本、由对应的多个麦克风在相同的单个时间点捕获的多个音频样本、由单个麦克风在一时间段期间捕获的多个音频样本、或由多个麦克风在公共时间段期间捕获的多个音频样本。如本文所用,“调用音素”是指作为针对自动化助理的调用短语的一部分的声音(例如,口语发言或其一部分)的单位。调用短语可以包括一个或多个调用音素。可以使用机器学习技术来训练经训练后的声学模型160a;因此,在整个本说明书中可互换地使用词语“声学模型”、“训练后的声学模型”、“机器学习模型”和“训练后的机器学习模型”。

分类模块125还将音频数据帧连同基于基于对音频数据帧进行处理而生成的对应输出的对应输出指示一起存储在缓冲器162中。例如,输出指示中的每一个能够指示“噪声”、“接近触发”和“触发”中的一个。例如,当使用训练后的声学模型160a生成的音频数据帧的输出对于调用音素中的任一个未能指示至少第一“低”阈值概率时,分类模块125能够向音频数据帧指派“噪声”输出指示。另外,例如,当使用训练后的声学模型160a生成的音频数据帧的输出对于调用音素中的一个或多个指示至少第一阈值概率但是对于调用音素中的任一个未能指示至少第二“高”阈值概率时,分类模块125能够向另一音频数据帧指派“接近触发”输出指示。另外,例如,当使用训练后的声学模型160a生成的音频数据帧的输出对于调用音素中的任一个指示至少第二阈值概率时,分类模块125能够向又一音频数据帧指派“触发”输出指示。

因此,分类模块125能够使用训练后的声学模型160a来连续地对流的音频数据帧进行处理,并且将它们连同基于使用训练后的声学模型160a所处理的对应输出指示一起存储在缓冲器162中。缓冲器162可以是固定长度的先进先出缓冲器。因此,在任何给定时间缓冲器162能够包括一个或多个最近处理的音频数据帧。如果缓冲器162满了并且添加了新数据帧,则能够从缓冲器162中清除数据帧。另外,如在下面更详细地描述的,能够在各种情形下通过控制器模块126从缓冲器162中清除一个或多个数据帧。缓冲器162的固定长度可以是使得期望持续时间的音频数据能够被存储在缓冲器162中的长度。期望持续时间能够基于调用短语的预期持续时间(例如,足够长以使得完整调用短语能够被缓冲器中的音频数据帧共同地捕获)。然而,在许多实现方式中期望持续时间不应该明显地超出预知持续时间,以便不减轻本文描述的自适应噪声降低技术的影响。在一些实现方式中,期望持续时间是介于1秒与2秒之间的值,诸如介于1.25秒与2.0秒之间的值(例如,1.5秒)。

在一些实现方式中,训练后的声学模型160a是卷积神经网络(cnn)模型。在那些和/或其它实现方式中的一些实现方式中,每个音频数据帧包括多个声道,并且使用训练后的声学模型160a来对声道中的仅一个进行处理(但是两个声道都被存储在缓冲器162中并且由例如nr适配模块127和/或nr模块129使用)。能够基于对来自麦克风的信号的分段来生成音频数据帧流的每个音频数据帧。例如,每个音频数据帧可以是具有10毫秒跳的25毫秒帧。在训练后的声学模型160a是cnn的一些实现方式中,cnn模型能够包括五个层,在输入层和输出层之间具有三个隐藏层。在那些实现方式中的一些实现方式中,在使用训练后的声学模型160a来对音频数据帧的声道进行处理时,分类模块125对于该声道计算40声道对数梅尔滤波器组能量,并且使用每声道能量归一化(pcen)来对它们进行归一化。施加到训练后的声学模型160a的输入层的输入能够包括具有24个左上下文帧和15个右上下文帧的堆叠特征向量。卷积层能够位于输入层之上并且用于跨越时间和频率扫描308个不重叠的8×8补片。该卷积层后面可以是具有32个输出的线性投影层和具有128个输出的全连接修正线性单元(relet)层。输出层中的神经元能够使用例如softmax激活函数。在输出层上生成的输出能够包括多个目标音素中的每一个的后验概率,并且可选地包括表示无目标音素的后验概率的单个附加输出。

控制器模块126周期性地(或以其它规则和/或非规则间隔)评估缓冲器162并且使用缓冲器在给定实例处的一个或多个音频数据帧来选择要在给定实例处执行的动作。控制器模块126基于与缓冲器162的音频数据帧关联地存储的输出指示来选择要在给定实例处执行的动作。在一些实现方式中,当缓冲器162在给定实例处的音频数据帧全部具有指示“噪声”的输出指示时,控制器模块126从缓冲器中弹出音频数据帧并且将所弹出的音频数据帧提供给nr适配模块127以基于所弹出的音频数据帧适配nr滤波器164。在一些实现方式中,当缓冲器162在给定实例处的音频数据帧不包括指示“触发”的输出指示,但是包括指示“接近触发”的至少一个输出指示时,控制器模块126从缓冲器162中清除所有音频数据帧,并且将所清除的音频数据帧提供给nr适配模块129以对所清除的音频数据帧进行滤波以生成滤波后的数据帧。滤波后的数据帧然后能够由调用短语模块128使用训练后的声学模型160b来处理,以确定在滤波后的音频数据帧中是否存在调用短语。如果缓冲器在给定实例处的音频数据帧包括指示“触发”的至少一个输出指示,则控制器模块126从缓冲器162中清除所有音频数据帧并且将所清除的音频数据帧提供给调用短语模块128。所清除的音频数据帧然后能够由调用短语模块128使用训练后的声学模型160b来处理,以确定在滤波后的音频数据帧中是否存在调用短语。

当缓冲器162包括仅“噪声”音频数据帧时,nr适配模块127基于从缓冲器162中弹出的音频数据帧动态地适配噪声降低技术。在一些实现方式中,nr适配模块127通过适配nr滤波器164来适配噪声降低技术。例如,在一些实现方式中噪声降低技术是自适应噪声消除(anc),并且nr滤波器164是anc滤波器。在那些实现方式中的一些实现方式中,提供给nr适配模块127的音频数据帧包括多个声道,并且在适配nr滤波器164时,nr适配模块127将nr滤波器164与第一声道进行卷积并且从第二声道减去结果以形成误差信号。nr适配模块127然后调整nr滤波器164的滤波器系数以使误差信号的均方功率最小化。nr适配模块127能够可选地进一步将误差信号作为滤波后的音频数据帧提供给调用短语模块128以使用训练后的声学模型160b进一步处理(例如,以确定它是否包括调用音素)。

当利用anc时,能够利用各种自适应算法来实现anc。作为一个非限制性示例,能够利用基于短时傅立叶变换(stft)的递归最小二乘(rls)技术。这样的技术可以是灵活的和/或计算高效的。注意的是,虽然anc在上面被描述为一种示例噪声降低技术,但是其它技术能够被利用并且能够可选地利用一个或多个对应的滤波器。一个非限制性示例是波束成形噪声降低技术。

现在提供使用基于stft的rls技术的一个特定示例,其中音频数据帧包括来自相应的第一麦克风和第二麦克风的第一声道和第二声道。在这样的示例中,在音频数据帧m处并且对于弧度频率ω,两个麦克风信号的stft系数被分别表示为x1(jω,m)和x2(jω,m),其中anc用l个抽头的复数有限脉冲响应(fir)滤波器对第二麦克风信号进行滤波:

其中(·)t表示向量或矩阵的转置。从第一麦克风信号减去结果以得到误差信号:

其中(·)h是向量或矩阵的厄密转置并且

是当前和最后l-1个帧中的第二声道的stft系数的合集。加权最小二乘成本函数被表达为:

其中0<λ≤1是遗忘因子。通过如下取等式(3)相对于hh(jω,m)的偏导数并且将结果设定为零来使成本函数最小化:

其中

并且(·)*是复变量的共轭。对于h(jω,m)求解等式(4)产生rls解:

使用伍德伯里恒等式,能够避免对(5)中的矩阵逆的直接计算,并且推导出计算更高效的版本。

nr模块129使用如最近适配的噪声降低技术来对音频数据帧进行处理,以生成滤波后的音频数据帧。例如,当缓冲器162包括“接近触发”音频数据帧但是没有“触发”音频数据帧时,nr模块129能够从缓冲器162接收音频数据帧。另外,nr模块129能够使用如由nr适配模块127最近适配的nr滤波器164来对那些音频数据帧进行处理,以生成滤波后的音频数据帧。例如,提供给nr模块129的音频数据帧能够包括多个声道,并且在基于那些音频数据帧中的一个生成滤波后的数据帧时,nr模块129能够将nr滤波器164与第一声道进行卷积,从第二声道减去结果以形成误差信号,并且将该误差信号用作滤波后的数据帧。nr模块129将滤波后的音频数据帧提供给调用短语模块128以使用训练后的声学模型160b进一步处理。

调用短语模块128使用训练后的声学模型160b来对接收到的音频数据帧或滤波后的数据帧进行处理以确定是否存在调用短语。在一些实现方式中,训练后的声学模型160b可以与训练后的声学模型160a相同,但是可以是其不同的实例以使得能够由分类模块125和调用短语模块128进行并行处理。在一些其它实现方式中,训练后的声学模型160b可以与训练后的声学模型160a不同。例如,相对于训练后的声学模型160a,训练后的声学模型160b可以是利用可能更加计算密集的更鲁棒的模型。

调用短语模块128能够基于基于使用训练后的声学模型160b进行处理而生成的输出来确定是否存在调用短语。例如,当从缓冲器中清除了缓冲器162的所有音频数据帧并且nr模块129生成与那些音频数据帧相对应的滤波后的数据帧时,调用短语模块128能够基于通过使用训练后的声学模型160b对那些滤波后的数据帧进行处理而生成的输出来确定是否存在调用短语。例如,如果调用短语的至少阈值量的调用音素在输出中被指示有至少阈值概率(并且可选地以特定顺序指示),则调用短语模块128能够确定存在调用短语。在一些实现方式中,在确定是否存在调用短语时,调用短语模块128能够可选地附加地利用对于对应的音频数据帧使用训练后的声学模型160a来生成的输出。换句话说,能够将在训练后的声学模型160a上生成的输出连同在训练后的声学模型160b上针对所对应的音频数据帧(或其滤波后的变体)生成的输出一起考虑。

现在转向图2a和图2b,提供了能够由客户端设备106的调用引擎124实现的示例方法200的附加描述。为了方便,参考执行操作的系统来描述流程图的操作。此系统可以包括各种计算机系统的各种组件,诸如图1的客户端设备106的一个或多个处理器和/或调用引擎124的一个或多个模块。此外,虽然以特定顺序示出方法200的操作,但是这不意在为限制性的。可以重新排序、省略或添加一个或多个操作。

在图2a中图示了方法200的框252和254。在一些实现方式中,分类模块125执行图2a的框。在框252处,系统使用训练后的声学模型来对接收到的音频数据帧的一个或多个声道进行处理,以生成指示音频数据帧的分类的输出。例如,输出能够指示音频数据帧是否包括“触发”、“接近触发”或“噪声”。

在框254处,系统将所接收到的音频数据帧和分类存储在缓冲器诸如系统可访问的存储器中的先进先出缓冲器中。系统然后返回到框252,对另一音频数据帧进行处理,并且将该音频数据帧及其分类存储在缓冲器中。能够对音频数据帧流连续地执行框252和254。例如,当客户端计算设备的自动化助理客户端正在监视口语调用短语时,能够执行框252和254。能够响应于用户将自动化助理客户端手动地设定(例如,经由硬件开关)为不发生监视口语调用短语的不活动模式而暂时暂停并且/或者能够在自动化助理被调用的同时(例如,响应于在先检测到的调用短语)暂时暂停。

在图2b中图示了方法200的附加框。在各种实现方式中,能够以与图2a的间隔不同的间隔和/或经由与图2a的线程不同的线程执行图2b的框。例如,能够迭代地执行图2b的框的迭代,并且在每次迭代时,可能已经执行了图2a的框的多次迭代。换句话说,能够迭代地执行图2a的框以连续地更新缓冲器的内容,并且迭代地(但是不如图2a的框频繁地)执行图2b的框以周期性地评估缓冲器的当前内容,并且按照当前内容执行进一步动作。

在图2b的框256处,系统确定在缓冲器中是否存在具有指示其为“触发”帧的输出指示的至少一个音频数据帧。如果是这样的话,则系统进行到框260并且使用附加的训练后的声学模型来对缓冲器的音频数据帧的一个或多个声道进行处理,以确定在缓冲器的音频数据帧中是否存在调用短语。例如,在框260处系统能够清除缓冲器的所有音频数据帧,使用附加的训练后的声学模型来对那些音频数据帧的至少一个声道(以及可选地仅一个声道)进行处理,并且基于基于处理而生成的输出来确定是否存在调用短语。在框260之后,系统进行到框272,其中如果在框260处确定了存在调用短语则系统然后进行到框274,或者如果确定了不存在调用短语则系统向后进行到框256。

如果在图2b的框256的迭代时,系统确定在缓冲器中不存在具有指示其为“触发”帧的输出指示的至少一个音频数据帧,则系统进行到框262并且确定在缓冲器中是否存在具有指示其为“接近触发”帧的输出指示的至少一个音频数据帧。如果是这样,则系统进行到框264并且使用当前适配的噪声降低技术来对缓冲器的一个或多个音频数据帧的一个或多个声道进行处理以生成滤波后的数据帧。例如,在框264处系统能够清除缓冲器的所有音频数据帧,并且使用当前适配的噪声降低技术来对音频数据帧中的每一个的多个声道进行处理以生成对应滤波后的数据帧(例如,其仅包括单个滤波后的声道)。如在下面更详细地描述的,当前适配的噪声降低技术将是如在框268的最近迭代时最近适配的噪声降低技术。系统然后进行到框266并且使用训练后的声学模型来对滤波后的数据帧(在框264处生成的)进行处理以确定是否存在调用短语。除了对滤波后的数据帧进行处理以外,框266还能够与框260共同地共享一个或多个方面。在框266之后,系统进行到框272,其中如果在框260处确定了存在调用短语则系统然后进行到框274,或者如果确定了不存在调用短语则系统向后进行到框256。

如果在图2b的框262的迭代时,系统确定在缓冲器中不存在具有指示其为“接近触发”帧的输出指示的至少一个音频数据帧,则系统进行到框268。注意的是,在进行到框268时,系统已有效地确定了缓冲器仅包括全部具有指示“噪声”的输出指示的音频数据帧。换句话说,缓冲器的音频数据帧被有效地认为是“噪声”帧,因为在框256和262处的确定指示没有一个帧是“触发”帧或“接近触发”帧。

在框268处,系统使用缓冲器的一个或多个音频数据帧的一个或多个声道来适配噪声降低技术。例如,系统能够从缓冲器中“弹出”包括至少第一声道(基于第一麦克风)和第二声道(基于第二麦克风)的至少一个(且可选地仅一个)音频数据帧,并且利用该音频数据帧来适配anc噪声降低技术中利用的自适应噪声消除滤波器。系统然后能够可选地进行到框270并且使用训练后的声学模型来对滤波后的数据帧(在适配期间在框268处生成的)进行处理以确定是否存在调用短语。在一些实现方式中,在框270处系统能够最初仅对来自框268的噪声降低帧进行处理。如果基于处理确定了噪声降低帧缺少至少任何触发音素的阈值概率,则处理能够结束。然而,在那些实现方式中的一些实现方式中,如果确定了包括至少一个触发音素的至少阈值概率中包括的噪声降低帧,附加音频数据帧能够被从缓冲器中拉出,并且使用噪声降低技术来处理以生成滤波后的数据帧,并且在确定是否存在调用短语时也在框270处对那些滤波后的数据帧进行处理。在框270之后,系统进行到框272,其中如果在框260处确定了存在调用短语则系统然后进行到框274,或者如果确定了不存在调用短语则系统向后进行到框256。

如果在框272的迭代时,系统进行到框274,则系统在框274处使对缓冲器的音频数据帧(和/或其滤波后的版本)的附加处理被执行并且/或者使对接下来的音频数据帧(和/或其滤波后的版本)的附加处理被执行。例如,系统能够将缓冲器的音频数据帧(例如,在确定存在调用短语时使用的那些音频数据帧)和/或紧跟此类音频数据帧之后的接下来的音频数据帧提供给以前未对来自流的音频数据帧进行处理的一个或多个远程和/或本地自动化助理引擎。

在一些实现方式中,控制器模块126能够执行图2b的框256和262;nr适配模块127能够执行图2b的框268;nr模块129能够执行图2b的框264;并且/或者调用短语模块128能够执行图2b的框260、266、270和274。

现在转向图3,提供了根据本文公开的各种实现方式的如何能够对音频数据帧进行处理的示例。在图3中,音频数据帧流的音频数据帧1121-n被依次提供给分类模块125。分类模块125使用训练后的声学模型160a来依次对音频数据帧1121-n中的每一个进行处理以生成对应的标签1141-n,诸如指示“触发”、“接近触发”或“噪声”的标签。

音频数据帧1121-n连同其对应的标签1141-n一起被存储在缓冲器162中。控制器模块126访问缓冲器162并且基于缓冲器162的内容来确定是将缓冲器162的音频数据帧1121提供给nr适配模块127,还是将缓冲器162的所有音频数据帧1121-n提供给nr模块129,或者将缓冲器162的所有音频数据帧1121-n提供给调用短语模块128。如图3中所指示的,控制器模块126能够在它确定缓冲器162仅包括“噪声”帧时将缓冲器162的音频数据帧1121提供给nr适配模块127,能够在它确定缓冲器162包括“接近触发”帧(并且可选地确定它缺少任何“触发”帧)时将缓冲器162的所有音频数据帧1121-n提供给nr模块129,并且能够在它确定缓冲器162包括“触发”帧(并且可选地确定它缺少任何“接近触发”帧)时将缓冲器162的所有音频数据帧1121-n提供给调用短语模块128。

因此,在图3中控制器模块126基于缓冲器162的内容做出三个决定中的一个。应理解的是,图3的示例是一个实例处的示例,并且控制器模块126将基于缓冲器162在相应实例处的内容在多个附加实例的每一个下做出三个决定中的一个(当新的音频数据帧连同由分类模块125提供的标签一起被添加到缓冲器162时)。

当控制器模块126将缓冲器162的音频数据帧1121提供给nr适配模块127时,nr适配模块127基于音频数据帧1121适配nr滤波器164。nr适配模块127也可选地将滤波后的数据帧1131提供给调用短语模块128,该滤波后的数据帧1131是在适配期间生成的音频数据帧1121的滤波后的版本。调用短语模块128能够在确定是否存在调用短语116时使用训练后的声学模型160b来对滤波后的数据帧1131进行处理。

当控制器模块126将缓冲器162的所有音频数据帧1121-n提供给nr模块129时,nr模块129使用nr滤波器164(如由nr适配模块127在在先实例中最近适配的)来对那些音频数据帧1121-n进行处理以生成滤波后的数据帧1131-n。nr模块129将滤波后的数据帧1131-n提供给调用短语模块128,该调用短语模块128在确定是否存在调用短语116时使用训练后的声学模型160b来对那些帧进行处理。

当控制器模块126将缓冲器162的所有音频数据帧1121-n提供给调用短语模块128时,它在确定是否存在调用短语116时使用训练后的声学模型160b来对那些帧(可选地仅其单个声道)进行处理。

图4图示示例客户端设备406,在图4的示例中,该示例客户端设备406采取带有麦克风(未具体地描绘)的独立交互式扬声器的形式。图4也图示了示例用户402说出“ok,assistant,what’sonmycalendar(好的,助理,我的日历上有什么)”的口语发言403。另外,图4包括正在提供背景噪声405的电视404。“ok,assistant(好的,助理)”可以是(例如,经由自动化助理客户端)至少部分地在客户端设备406上实现的针对自动化助理的调用短语。客户端设备406的一个或多个处理器能够利用本文描述的技术来甚至在存在诸如来自电视404的背景噪声405的背景噪声的情况下检测口语发言403中的调用短语。例如,各种技术能够利用已鉴于先前的“噪声”音频数据帧适配了的噪声降低技术,从而有效地适配噪声降低技术以降低背景噪声405。如本文另外描述的,对调用短语的检测能够调用自动化助理,从而使对“what’sonmycalendar(我的日历上有什么)”的进一步处理被执行,由自动化助理生成适当的响应,并且经由客户端设备406的扬声器可听见地渲染响应。例如,响应可以是用户的存储的当天日历条目的摘要。

现在转向图5,提供了能够由客户端设备106的调用引擎124实现的另一示例方法500的附加描述。方法500能够由调用引擎124实现代替图2a和图2b的方法200(或类似的方法)—或者能可选地甚至与方法200并行地实现(并且两种方法都用于确定何时存在调用短语)。

为了方便,参考执行操作的系统来描述图5的流程图的操作。此系统可以包括各种计算机系统的各种组件,诸如图1的客户端设备106的一个或多个处理器和/或调用引擎124的一个或多个模块。此外,虽然以特定顺序示出方法500的操作,但是这不意在为限制性的。可以重新排序、省略或添加一个或多个操作。

在框554处,系统接收音频数据帧流的音频数据帧。系统然后进行到框554,并且进行到框558。系统能够并行地(例如,经由不同的线程)进行到框554和558。

在框554处,系统使用在框552处接收到的音频数据帧的一个或多个声道来适配噪声降低滤波器。例如,系统能够适配在anc噪声降低技术中使用的anc滤波器,诸如如上所述利用基于stft的rls的anc滤波器。

从框554起,系统进行到框556并且将如在框554的最新迭代时适配的适配滤波器存储在系统可访问的存储器中的先进先出(fifo)缓冲器中。例如,系统能够通过存储如在框554的最近迭代时适配的适配滤波器的系数来存储适配滤波器。因此,与方法200(其将音频数据帧存储在缓冲器中)不同,在方法500中适配滤波器被存储在缓冲器中。

在框558处,系统使用fifo缓冲器的适配滤波器来对所接收到的音频数据帧的一个或多个声道进行处理,其中适配滤波器是基于时间上较早的音频数据帧而适配的滤波器。例如,适配滤波器可以是在fifo缓冲器的“头部”处的适配滤波器(例如,fifo缓冲器的“最旧的”适配滤波器),其中在fifo缓冲器的头部处的适配滤波器基于在框552的较早迭代时接收到的音频数据帧流的时间上较早的音频数据帧在框554的时间上较早的迭时被适配。系统使用适配滤波器来对声道进行处理以生成滤波后的数据帧。因此,在框558处系统使用基于时间上较早的音频数据帧(并且鉴于在该音频数据帧之前的音频数据帧)而适配的适配滤波器来对所接收到的音频数据帧进行处理。例如,fifo缓冲器能够根据对应的音频数据帧保持一定量的适配滤波器,其中对应的音频数据帧构成音频数据流的1至2秒(或其它值)。另外,在框558中使用的音频数据滤波器可以来自fifo缓冲器的头部,从而鉴于基于来自1至2秒(或其它值)之前的音频数据帧而适配的适配滤波器来生成滤波后的数据帧—但是不在任何时间上最近的音频数据帧上适配。因此,在框558处使用的适配滤波器在其应用中被(相对于其生成和其对应的音频数据帧)“推迟”,从而生成已降低了背景噪声的滤波后的音频数据帧,同时减轻了在滤波后的音频数据帧中减少任何潜在存在的触发音素(或在其它实现方式中为其它目标特征)的风险。

从框558起,系统进行到框560并且在确定是否存在调用短语时使用训练后的声学模型来处理滤波后的数据帧。系统然后进行到框560并且确定是否存在调用短语,这能够基于框560的最近迭代以及框560的一个或多个在前迭代。例如,它可以是基于基于框560的最近迭代的处理确定存在触发音素,并且是基于基于框560的在前迭代的处理确定存在另一触发音素。如果在框562处确定了存在调用短语则系统进行到框564,或者如果确定了不存在调用短语则系统向后进行到框552。

如果在框562的迭代时,系统进行到框564,则系统在框564处使对接下来的音频数据帧(和/或其滤波后的版本)的附加处理被执行。例如,系统能够将接下来的音频数据帧提供给因此未在对来自流的音频数据帧进行处理的一个或多个远程和/或本地自动化助理引擎。

如果在框562的迭代时,系统进行到框552,则系统在框552处接收下一个音频数据帧并且基于该下一个音频数据帧进行到框554和558。因此,通过方法500的多次迭代,音频数据帧流被处理并监视调用短语的存在—同时使用在其应用中被推迟的适配滤波器来在确定是否存在调用音素时在通过声学模型处理之前对当前的音频数据帧进行滤波。注意的是,在执行方法500时,能够利用仅单个声学模型并且能够省略控制器模块126。

尽管相对于检测调用短语的存在描述了方法500,但是方法500能够附加地或替换地用于检测替代特征诸如用于说话者标识的话音特征的存在。在一些实现方式中,nr适配模块127能够执行图5的框554和556;nr适配模块127能够执行图5的框554和556;nr模块129能够执行图5的框558;并且/或者调用短语模块128能够执行图2b的框560、562和564。

图6是示例计算设备610的框图,该示例计算设备可以可选地用于执行本文描述的技术的一个或多个方面。计算设备610通常包括至少一个处理器614,该至少一个处理器经由总线子系统612与许多外围设备进行通信。这些外围设备可以包括:包括例如存储器子系统625和文件存储子系统626的存储子系统624、用户接口输出设备620、用户接口输入设备622和网络接口子系统616。输入和输出设备允许用户与计算设备610交互。网络接口子系统616提供到外部网络的接口并且耦合到其它计算设备中的对应的接口设备。

用户接口输入设备622可以包括键盘、诸如鼠标、轨迹球、触摸板或图形平板的指点设备、扫描器、并入到显示器中的触摸屏、诸如话音辨识系统、麦克风的音频输入设备和/或其它类型的输入设备。通常,词语“输入设备”的使用旨在包括所有可能类型的设备以及将信息输入到计算设备610中或到通信网络上的方式。

用户接口输出设备620可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(crt)、诸如液晶显示器(lcd)的平板设备、投影设备或用于创建可见图像的某种其它机制。显示子系统也可以例如经由音频输出设备提供非视觉显示。通常,词语“输出设备”的使用旨在包括所有可能类型的设备以及从计算设备610向用户或向另一机器或计算设备输出信息的方式。

存储子系统624存储提供本文描述的模块中的一些或全部的功能性的编程和数据构造。例如,存储子系统624可以包括用于执行图2a和图2b的方法、图5的方法的所选方面和/或用于实现图1中描绘的各种组件的逻辑。

这些软件模块通常由处理器614单独或与其它处理器相结合地执行。在存储子系统624中使用的存储器625能够包括许多存储器,其包括用于在程序执行期间存储指令和数据的主随机存取存储器(ram)630以及存储有固定指令的只读存储器(rom)632。文件存储子系统626能够为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及关联的可移动介质、cd-rom驱动器、光驱或可移动介质盒。实现某些实现方式的功能性的模块可以由文件存储子系统626存储在存储子系统624中,或者存储在可由处理器614访问的其它机器中。

总线子系统612提供了用于让计算设备610的各种组件和子系统按预期彼此通信的机制。尽管总线子系统612被示意性地示出为单条总线,但是总线子系统的替代实现方式可以使用多条总线。

计算设备610能够具有变化的类型,包括工作站、服务器、计算集群、刀片服务器、服务器场或任何其它数据处理系统或计算设备。由于计算机和网络的不断变化的性质,对图6中描绘的计算设备610的描述仅旨在作为用于图示一些实现方式的目的的具体示例。计算设备610的许多其它配置可能具有比图6中描绘的计算设备更多或更少的组件。

在本文讨论的某些实现方式可以收集或使用关于用户的个人信息(例如,从其它电子通信中提取的用户数据、关于用户的社交网络的信息、用户的位置、用户的时间、用户的生物计量信息以及用户的活动和人口统计信息、用户之间的关系等)的情形下,给用户提供了控制是否收集信息、是否存储个人信息、是否使用个人信息以及信息如何关于用户被收集、存储和使用的一个或多个机会。也就是说,本文讨论的系统和方法仅在从相关用户接收到要这样做的显式授权后才收集、存储和/或使用用户的个人信息。

例如,向用户提供了对程序或特征是否收集关于该特定用户或与程序或特征相关的其它用户的用户信息的控制。向要收集个人信息的每个用户呈现了允许控制与该用户相关的信息收集、关于是否收集信息并且关于要收集信息的哪些部分提供许可或授权的一个或多个选项。例如,能够通过通信网络向用户提供一个或多个此类控制选项。此外,某些数据可以在它被存储或使用之前被以一种或多种方式处理,使得个人可标识的信息被移除。作为一个示例,可以处理用户的身份,使得无法确定个人可标识的信息。作为另一示例,可以将用户的地理位置一般为更大的区域,使得无法确定用户的特定位置。

在一些实现方式中,一种用于检测针对自动化助理的调用短语的方法由客户端设备的一个或多个处理器实现并且包括:接收基于来自客户端设备的一个或多个麦克风的输出的音频数据帧流;以及使用训练后的机器学习模型来对流的音频数据帧中的每一个进行处理以生成相应的输出,该相应的输出指示一个或多个对应调用音素的存在的一个或多个对应概率。该方法进一步包括:将流的音频数据帧连同音频数据帧的输出指示一起存储在缓冲器中。输出指示中的每一个均是针对音频数据帧中的相应一个的并且是基于基于使用训练后的机器学习模型对音频数据帧中的相应一个进行处理而生成的相应的输出。该方法进一步包括:在第一实例处,确定在第一实例处的缓冲器中的输出指示指示在第一实例处的缓冲器中的音频数据帧全部未能包括一个或多个对应调用音素中的任一个。该方法进一步包括,响应于在第一实例处的确定:使用在第一实例处的缓冲器中的音频数据帧中的至少一个来适配噪声降低滤波器。该方法进一步包括:在第一实例之后的第二实例处,确定在第二实例处的缓冲器中的输出指示指示在第二实例处的缓冲器中的音频数据帧中的至少一个潜在地包括一个或多个对应调用音素中的至少一个。该方法进一步包括,响应于在第二实例处的确定:基于使用如至少部分地响应于在第一实例处的确定而适配的噪声降低滤波器来对在第二实例处的缓冲器中的多个音频数据帧进行处理而生成滤波后的数据帧;以及基于使用训练后的机器学习模型或附加的训练后的机器学习模型来对滤波后的数据帧进行处理而确定滤波后的数据帧是否指示调用短语的存在。该方法进一步包括,响应于确定滤波后的数据帧指示调用短语的存在:使自动化助理的至少一个功能被激活。

本文公开的技术的这些和其它实现方式能够包括以下特征中的一个或多个。

在一些实现方式中,使自动化助理的至少一个功能被激活包括:使流的随后接收到的音频数据帧被发送到一个或多个远程自动化助理服务器以进一步处理。进一步处理能够包括例如语音至文本转换、语义处理和对话状态跟踪中的一种或多种。

在一些实现方式中,使用在第一实例处的缓冲器中的音频数据帧中的至少一个来适配噪声降低滤波器包括:从缓冲器中移除单个数据帧;以及使用该单个数据帧来适配噪声降低滤波器。

在一些实现方式中,流的音频数据帧包括至少基于一个或多个麦克风中的第一麦克风的第一声道和基于一个或多个麦克风中的第二麦克风的第二声道。在那些实现方式中的一些实现方式中,使用训练后的声学模型来对流的音频数据帧中的每一个进行处理以生成相应输出包括:使用训练后的声学模型来仅对音频数据帧中的每一个的第一声道进行处理。在那些实现方式中的一些实现方式中,噪声降低滤波器是多声道噪声降低滤波器,并且使用在第一实例处的缓冲器中的音频数据帧中的至少一个来适配噪声降低滤波器包括:使用在第一实例处的缓冲器中的音频数据帧中的至少一个的第一声道和第二声道两者来适配噪声降低滤波器。使用在第一实例处的缓冲器中的音频数据帧中的至少一个的第一声道和第二声道两者来适配噪声降低滤波器能够包括:例如在确定用于更新噪声降低滤波器的误差时使用第一声道作为信号源并且使用第二声道作为噪声源。基于使用如至少部分地响应于在第一实例处的确定而适配的噪声降低滤波器来对在第二实例处的缓冲器中的多个音频数据帧进行处理而生成滤波后的数据帧能够包括:在生成滤波后的数据帧时使用多个音频数据帧的第一声道和第二声道两者。

在一些实现方式中,基于对应输出满足第一阈值但是未能满足第二阈值,在第二实例处的缓冲器中的输出指示指示在第二实例处的缓冲器中的音频数据帧中的至少一个潜在地包括一个或多个对应调用音素中的至少一个。

在一些实现方式中,提供了一种由客户端设备的一个或多个处理器实现的方法,并且该方法包括,在客户端设备的自动化助理客户端的一个或多个功能不活动时:访问包括多个最近处理的音频数据帧和各自与音频数据帧中的相应一个相对应的多个输出指示的缓冲器。音频数据帧基于来自客户端设备的一个或多个麦克风的输出。输出指示是各自基于使用机器学习模型来对音频数据帧中的相应一个进行处理而确定的,并且各自指示音频数据帧中的相应一个是否是:未能满足第一阈值的噪声帧、满足第一阈值但是未能满足第二阈值的接近触发帧、或满足第一阈值和第二阈值两者的触发帧。该方法进一步包括,当缓冲器的输出指示指示缓冲器的所有数据帧都是噪声帧时:使用缓冲器中的音频数据帧中的至少一个来适配噪声降低滤波器。该方法进一步包括,当缓冲器的输出指示指示缓冲器的数据帧包括至少一个接近触发帧而不是触发帧时:基于使用噪声降低滤波器来对缓冲器中的多个音频数据帧进行处理而生成滤波后的数据帧;以及使用训练后的机器学习模型或附加的训练后的机器学习模型来对滤波后的数据帧进行处理,以确定滤波后的数据帧是否指示调用短语的存在。该方法进一步包括:当滤波后的数据帧指示调用短语的存在时激活自动化助理的功能中的一个或多个。

本文公开的技术的这些和其它实现方式能够包括以下特征中的一个或多个。

在一些实现方式中,该方法进一步包括,当缓冲器的输出指示指示缓冲器的数据帧包括至少一个触发帧时:使用训练后的声学模型或附加的训练后的声学模型来对缓冲器中的多个音频数据帧进行处理,以确定音频数据帧是否指示调用短语的存在;以及当音频数据帧指示调用短语的存在时激活自动化助理的功能中的一个或多个。

在一些实现方式中,基于使用噪声降低滤波器来对缓冲器中的多个音频数据帧进行处理而生成滤波后的数据帧包括:从缓冲器中移除所有音频数据帧;以及基于对所有音频数据帧进行处理来生成滤波后的数据帧。在那些实现方式中的一些实现方式中,使用训练后的机器学习模型或附加的训练后的机器学习模型来对缓冲器中的多个音频数据帧进行处理以确定音频数据帧是否指示调用短语的存在包括:从缓冲器中移除所有音频数据帧;以及使用训练后的机器学习模型或附加的训练后的机器学习模型来对所有音频数据帧进行处理,以确定音频数据帧是否指示调用短语的存在。

在一些实现方式中,一种用于检测针对自动化助理的调用短语的方法由客户端设备的一个或多个处理器实现并且包括:接收基于来自客户端设备的一个或多个麦克风的输出的一组音频数据帧;以及使用训练后的机器学习模型来对该组音频数据帧中的每一个进行处理以生成相应的输出,该相应的输出指示一个或多个对应调用音素的存在的一个或多个对应概率。该方法进一步包括,响应于对应概率中的至少一个满足第一阈值但是未能满足第二阈值:基于使用噪声降低滤波器来对该组音频数据帧进行处理而生成滤波后的数据帧;基于使用训练后的机器学习模型或附加的训练后的机器学习模型来对滤波后的数据帧进行处理而确定滤波后的数据帧是否指示调用短语的存在;以及响应于确定滤波后的数据帧指示调用短语的存在:使自动化助理的至少一个功能被激活。

本文公开的技术的这些和其它实现方式能够包括以下特征中的一个或多个。

在一些实现方式中,该方法进一步包括,在使用噪声降低滤波器来生成滤波后的数据帧之前:基于该组音频数据帧之前的前一组音频数据帧中的至少一个音频数据帧来适配噪声降低滤波器。在那些实现方式中的一些实现方式中,该方法进一步包括:使用训练后的机器学习模型来对前一组音频数据帧中的每一个进行处理以生成相应的输出,该相应的输出指示一个或多个对应调用音素的存在的一个或多个对应在前概率。在那些实现方式的一些版本中,基于在前一组音频数据帧中的至少一个音频数据帧来适配噪声降低滤波器是响应于确定对应在前概率都不满足第一阈值或第二阈值。

在一些实现方式中,该方法进一步包括,在使用噪声降低滤波器来生成滤波后的数据帧之前:基于在该组音频数据帧之前的在前音频数据帧来适配噪声降低滤波器。在那些实现方式中的一些实现方式中,基于在前音频数据帧来适配噪声降低滤波器基于:使用训练后的机器学习模型来对在前音频数据帧进行处理以生成指示一个或多个调用音素的存在的一个或多个在前概率的在前输出,并且确定在先概率都不满足第一阈值或第二阈值。

在一些实现方式中,被激活的自动化助理的至少一个功能包括本地或远程:语音到文本处理、语义处理和/或对话状态跟踪。

在一些实现方式中,一种检测针对自动化助理的口语发言中的特征的方法由一个或多个处理器实现并且包括:接收基于来自客户端设备的一个或多个麦克风的输出的音频数据帧流;使用训练后的机器学习模型来对流的音频数据帧进行处理以生成相应的输出,该相应的输出指示一个或多个对应特征的存在的一个或多个对应概率;以及将流的音频数据帧连同音频数据帧的输出指示一起存储在缓冲器中。输出指示中的每一个均是针对音频数据帧中的相应一个的并且是基于基于使用训练后的机器学习模型对音频数据帧中的相应一个进行处理而生成的对应输出。该方法进一步包括:在第一实例处,确定在第一实例处的缓冲器中的输出指示指示在第一实例处的缓冲器中的音频数据帧全部未能包括一个或多个对应特征中的任一个。该方法进一步包括,响应于在第一实例处的确定:使用在第一实例处的缓冲器中的音频数据帧中的至少一个来适配噪声降低滤波器。该方法进一步包括:在第一实例之后的第二实例处,确定在第二实例处的缓冲器中的输出指示指示在第二实例处的缓冲器中的音频数据帧中的至少一个潜在地包括一个或多个对应功能中的至少一个。该方法进一步包括,响应于在第二实例处的确定:基于使用如至少部分地响应于在第一实例处的确定而适配的噪声降低滤波器来对在第二实例处的缓冲器中的多个音频数据帧进行处理而生成滤波后的数据帧;基于使用训练后的机器学习模型或附加的训练后的机器学习模型来对滤波后的数据帧进行处理而确定滤波后的数据帧是否指示特征的存在;以及响应于确定滤波后的数据帧指示特征的存在而适配由自动化助理执行的处理。

本文公开的技术的这些和其它实现方式能够包括以下特征中的一个或多个。

在一些实现方式中,特征包括与配置文件关联地存储的话音特性。在那些实现方式中的一些实现方式中,适配由自动化助理执行的处理包括基于配置文件生成要由自动化助理渲染的内容,其中内容是响应于滤波后的数据帧指示特征的存在而基于配置文件生成的,并且特征与配置文件关联地存储。

在一些实现方式中,适配由自动化助理执行的处理附加地或替换地包括使自动化助理的至少一个不活动的功能被激活。一个不活动的功能可以是例如自然语言处理或对话状态跟踪。

在一些实现方式中,提供了一种检测存在于针对自动化助理的口语发言中的至少一个特征的方法并且该方法包括:接收基于来自客户端设备的一个或多个麦克风的输出的一组音频数据帧;使用训练后的机器学习模型来对该组音频数据帧中的每一个进行处理以生成相应的输出,该相应的输出指示至少一个特征的存在的一个或多个对应概率。该方法进一步包括,响应于对应概率中的至少一个满足第一阈值但是未能满足第二阈值:基于使用噪声降低滤波器来对该组音频数据帧进行处理而生成滤波后的数据帧;以及基于使用训练后的机器学习模型或附加的训练后的机器学习模型来对滤波后的数据帧进行处理而确定滤波后的数据帧是否指示至少一个特征的存在。该方法还包括,响应于确定滤波后的数据帧指示至少一个特征的存在:适配由自动化助理执行的处理。

在一些实现方式中,一种用于检测针对自动化助理的调用短语的方法由客户端设备的一个或多个处理器实现并且包括:接收基于来自客户端设备的一个或多个麦克风的输出的音频数据帧流;使用训练后的机器学习模型来对流的音频数据帧中的每一个进行处理以生成相应的输出,该相应的输出指示一个或多个对应调用音素的存在的一个或多个对应概率;在第一实例处,确定针对音频数据帧中的给定音频数据帧生成的相应的输出指示给定音频数据帧未能包括一个或多个对应调用音素中的任一个;响应于在第一实例处的确定:使用给定音频数据帧来适配噪声降低滤波器;在第一实例之后的第二实例处,确定在给定音频数据帧之后接收到的音频数据帧中的一个或多个中的至少一个潜在地包括一个或多个对应调用音素中的至少一个;响应于在第二实例处的确定:基于使用如至少部分地响应于在第一实例处的确定而适配的噪声降低滤波器来对音频数据帧中的一个或多个进行处理而生成滤波后的数据帧;以及基于使用训练后的机器学习模型或附加的训练后的机器学习模型来对滤波后的数据帧进行处理而确定滤波后的数据帧是否指示调用短语的存在;以及响应于确定滤波后的数据帧指示调用短语的存在:使自动化助理的至少一个功能被激活。

在一些实现方式中,一种用于检测针对自动化助理的调用短语的方法由客户端设备的一个或多个处理器实现并且包括,对于基于来自客户端设备的一个或多个麦克风的输出的音频数据帧流的第一顺序音频数据帧集合中的每个音频数据帧:基于音频数据帧来生成对应的噪声降低滤波器,并且将该对应的噪声降低滤波器存储在先进先出缓冲器中。该方法进一步包括,对于音频数据帧流的紧接在第一顺序音频数据帧集合之后的给定音频数据帧:基于使用作为先进先出缓冲器的头部的对应的噪声降低滤波器来对给定音频帧进行处理而生成滤波后的数据帧,并且基于使用训练后的机器学习模型来对滤波后的数据帧进行处理而确定滤波后的数据帧是否指示调用短语的一个或多个音素的存在。该方法进一步包括:基于滤波后的数据帧是否指示调用短语的一个或多个音素的存在来确定在音频数据帧流中是否存在调用短语。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips