使用结构化音频输出检测回放和/或适应无线扬声器中的未对准的回放
文献发布时间:2023-06-19 12:25:57
背景技术
人类可以参与与在本文中被称为“自动化助理”(也被称为“数字代理”、“聊天机器人”、“交互式个人助理”、“智能个人助理”、“助理应用”、“会话代理”等)的交互式软件应用的人机对话。例如,人类(当他们与自动化助理交互时,其可以被称为“用户”)可以使用口头自然语言输入(即,话语)和/或通过提供文本(例如,键入的)自然语言输入向自动化助理提供命令和/或请求,其中口头自然语言输入在一些情况下可以被转换成文本并且然后被处理。自动化助理通过提供响应性用户界面输出来响应请求,该响应性用户界面输出能够包括可听和/或可视界面输出。
如上所述,许多自动化助理被配置为经由口头话语被交互。为了保护用户隐私和/或节约资源,用户必须经常在自动化助理将完全处理口头话语之前明确地调用自动化助理。自动化助理的明确调用通常响应于在客户端设备处接收的某些用户界面输入而发生。客户端设备包括助理接口,该助理接口向客户端设备的用户提供用于与自动化助理对接的接口(例如,从用户接收口头和/或键入的输入,并且提供可听和/或图形响应),并且该助理接口与实现自动化助理的一个或多个另外的组件(例如,处理用户输入并且生成适当响应的一个或多个远程服务器设备)对接。
能够经由客户端设备调用自动化助理的一些用户界面输入包括在客户端设备处的用于调用自动化助理的硬件和/或虚拟按钮(例如,轻击硬件按钮、选择客户端设备显示的图形界面元素)。许多自动化助理能够另外或可替换地响应于一个或多个口头调用短语而被调用,这些短语也被称为“热词/短语”或“触发词/短语”。例如,能够说出诸如“嘿助理”、“好的助理”和/或“助理”的口头调用短语来调用自动化助理。
用户可能希望在车辆中时与自动化助理交互。例如,用户能够调用移动智能电话的自动化助理来请求驾驶指导。此外,客户端设备(诸如移动智能电话)能够与车辆通信地耦合,使得由客户端设备提供的音频数据能够经由车辆扬声器被渲染。例如,移动智能电话能够经由蓝牙与车辆通信地耦合,并且来自移动智能电话的音频数据能够经由蓝牙被发送到车辆计算设备并且由车辆计算设备经由(多个)车辆扬声器渲染。该音频数据能够包括由自动化助理向移动智能电话提供的自然语言响应。
然而,在一个或多个条件下,许多车辆计算设备将无法经由(多个)车辆扬声器渲染由移动智能电话发送的全部音频数据。例如,一些车辆计算设备可以接收全部音频数据,但是由于例如在启动用于渲染音频数据的组件的延迟而将不经由扬声器渲染音频数据的初始部分。因此,音频数据的初始部分将无法经由车辆扬声器渲染。例如,音频数据可以包括“左转到主街道上”的合成语音,但是车辆计算设备将仅渲染“到主街道上”。这是有问题的,因为相关的“左转”没有被渲染,迫使用户激活移动智能电话的显示器以查明转向方向和/或使用户无意地转向错误的方向“到主街道上”。这些情景两者都导致计算资源的浪费。另外或可替代地,当车辆计算设备不处于适当模式(例如,蓝牙模式)时,许多车辆计算设备将无法经由车辆扬声器渲染由移动智能电话发送的任何音频数据。这导致音频数据的浪费的传输,因为它实际上不是经由(多个)车辆扬声器渲染的,并且能够导致用户请求在手动切换到适当模式之后重新发送音频数据。
发明内容
本文中描述的实施方式旨在确定计算设备与由另外的计算设备(例如,车辆计算设备)驱动的一个或多个另外的扬声器(例如,车辆扬声器)之间的音频延迟,其中计算设备和另外的计算设备经由无线通信信道被通信地耦合。在那些实施方式的一些版本中,具有使用音频延迟确定的持续时间的对应延迟音频片段被附加到向另外的计算设备发送的另外的音频流。将延迟音频片段附加到另外的音频流使得延迟音频片段的至少一部分不被另外的(多个)扬声器渲染,但是确保另外的音频流被另外的(多个)扬声器渲染。在那些实施方式的一些版本中,另外或可替代地利用音频延迟来适应计算设备和/或另外计算设备的降噪。例如,被适应的降噪能够是噪声消除滤波器,其从(经由麦克风捕获的)捕获的音频数据中过滤它知道正在被提供用于经由另外的(多个)扬声器渲染的音频数据,并且能够利用音频延迟来准确地确定用于经由另外的(多个)扬声器实际渲染音频数据的预期定时。
本文中描述的实施方式另外和/或可替代地旨在确定被发送到另外的计算设备(例如,车辆计算设备)以用于通过由另外的计算设备驱动的一个或多个另外的扬声器(例如,车辆扬声器)进行渲染的音频数据流是否实际上通过另外的(多个)扬声器正被渲染。如果是,则能够将另外的音频数据发送到另外的计算设备以用于通过另外的(多个)扬声器进行渲染(在假设其将同样通过另外的(多个)扬声器被渲染的情况下)。如果不是,则能够替代地使用不由另外的计算设备驱动的替代的扬声器来渲染另外的音频数据。以这些和其他方式,当确定先前发送的音频数据实际上经由(多个)车辆扬声器被渲染时,能够发送另外的音频数据以用于经由(多个)车辆扬声器进行渲染。然而,当确定先前发送的音频数据实际上没有经由车辆扬声器被渲染时,能够改为经由替代的(多个)扬声器渲染另外的音频数据。这能够确保音频数据被实际渲染并且对于用户是可感知的,这防止用户必须请求音频数据的重发送和/或另一尝试的渲染。此外,这能够可选地确保音频数据到另外的计算设备的传输仅当确定它将由另外的计算设备可听地渲染时才发生。
作为一个示例,智能电话能够经由蓝牙与车辆计算设备通信地耦合,并且智能电话能够向车辆计算设备发送音频数据以用于经由车辆的扬声器进行渲染。例如,智能电话的自动化助理客户端能够响应于来自用户的请求生成音频数据,并且能够响应于该请求使音频数据被向车辆计算设备发送。
在许多实施方式中,从计算设备发送的用于由车辆计算设备使用(多个)车辆扬声器渲染的音频数据能够在音频数据经由车辆扬声器被渲染之前经历长达几秒的延迟。例如,当车辆计算设备切换到蓝牙模式时,向车辆计算设备发送的音频数据的一部分(例如,1秒、1.5秒等)能够无法在(多个)车辆扬声器处渲染。在许多实施方式中,音频数据的该部分由车辆计算设备接收,但是由车辆计算设备丢弃(即,车辆计算设备丢弃音频数据流的任何接收到的部分,直到车辆计算设备处于蓝牙模式)。结果,尽管旨在经由车辆扬声器被渲染,但是音频数据的相关部分根本不经由车辆扬声器被渲染。这对于各种音频数据能够是有问题的,诸如捕获使用自动化助理客户端生成的自然语言响应的音频数据。这种自然语言响应通常很短,并且自然语言响应的相关部分(或全部)可能无法经由车辆扬声器渲染。
在许多实施方式中,计算设备与车辆计算设备之间的音频延迟能够被自动确定,并且其大小基于延迟的长度来确定的延迟音频片段能够被附加到未来音频数据。例如,客户端设备能够确定向车辆计算设备发送的音频数据中的0.5秒延迟,并且因此能够将包括0.5秒延迟音频的延迟音频片段附加到向车辆计算设备发送的未来音频数据流的开始。以这种方式,尽管延迟音频片段将不被渲染(至少不是完全地),但是将延迟音频片段附加到未来音频数据流确保了未来音频流的整体将被渲染。音频延迟可以发生在音频数据流的开始处、音频数据流的结尾处、或音频数据流的开始和结尾处两者。这样,延迟音频片段能够被附加到音频数据流的开始、结尾或开始和结尾两者。
为了确定车辆音频延迟,计算设备能够将已知音频数据序列发送到车辆计算设备。车辆计算设备能够使用一个或多个车辆扬声器来渲染音频数据,并且计算设备能够捕获音频数据的渲染。例如,移动智能电话能够向车辆计算设备发送音频数据流,并且能够捕获使用车辆的(多个)扬声器生成的音频输出。通过将捕获的音频数据与已知音频数据流进行比较,计算设备能够确定车辆音频延迟。该音频数据序列能够是对于用户可听的、对于用户不可听的(例如,高频音频)和/或可听的和不可听的音频数据的组合。例如,音频数据流能够包括在已知长度的单个频率上的音频数据的片段。客户端设备能够将捕获的音频数据的长度与音频数据流的已知长度进行比较以确定延迟。另外和/或可替代地,音频数据流能够包括频率片段序列。能够将捕获的频率片段序列与所发送的频率片段序列进行比较,以确定延迟。在各种实施方式中,背景噪声能够干扰捕获使用(多个)车辆扬声器渲染的音频输出(即,车辆外部的交通、在车辆内说话的人等能够干扰捕获音频输出)。音频数据流能够包括共现的频率片段序列(例如,双音调频率片段、三音调频率片段、四音调频率片段等)。在许多情况下,计算设备仍然能够捕获共现的频率片段中的至少一个频率,而不管背景噪声。在各种实施方式中,用于确定车辆音频延迟的音频数据是双音调多频(DTMF)音频的序列。
在各种实施方式中,车辆接口设备能够另外与计算设备通信地耦合。车辆接口设备能够提供另外的和/或替代的用户接口输入和/或用户接口输出,诸如另外的(多个)麦克风和/或另外的(多个)扬声器。例如,车辆接口设备能够经由蓝牙与计算设备通信地耦合,并且能够包括一个或多个另外的(多个)麦克风以捕获车辆扬声器的音频输出以及用户口头话语。在几个实施方式中,车辆接口设备的麦克风能够比计算设备的麦克风处于更好的位置和/或更适合于捕获音频输出。例如,用户能够在驾驶时将他们的移动智能电话放在背包中,并且背包能够防止移动智能电话的(多个)麦克风捕获与车辆接口设备的麦克风(其未被背包阻挡)一样多的音频输出。作为另一示例,车辆接口设备能够包括可以被更好地配备以捕获车辆中的各种话语的(多个)远场麦克风,而智能电话可以缺少(多个)远场麦克风。另外或可替代地,车辆接口设备能够检测调用短语的口头调用,并且在检测调用短语之后向计算设备发送音频数据。
在许多实施方式中,客户端设备能够向车辆计算设备发送音频数据流以确定音频数据流是否实际上使用一个或多个车辆扬声器被渲染。如果客户端设备(或与客户端设备通信地耦合的车辆接口设备)没有(经由(多个)麦克风)捕获与音频数据流相对应的任何音频数据输出,则客户端设备能够使用替代的扬声器(例如,客户端设备扬声器、车辆接口设备扬声器等)渲染未来音频数据流。另一方面,如果捕获对应于音频数据流的音频数据输出,则客户端设备能够向车辆计算设备发送未来音频数据流以用于经由(多个)车辆扬声器进行渲染。在许多实施方式中,客户端设备能够周期性地(例如,每分钟、每两分钟、每五分钟等)或以其他规则的或非规则的间隔发送音频数据流。另外或可替代地,客户端设备能够基于自从其最后发送音频数据流以来所逝去的时间来确定是否发送音频数据流。例如,如果自它上次发送已经经过了阈值时间(例如,如果自上次传输已经超过10秒、自上次传输已经超过30秒、自上次传输已经超过1分钟等),客户端设备将发送音频数据流。在许多实施方式中,客户端设备能够响应于检测自动化助理的调用(例如,响应于检测到热词或检测到调用按钮的致动)来发送音频数据流,同时自动化助理客户端“忙碌”确定对用户提供的输入的响应。以这些和其他方式,客户端设备能够动态地更新其关于是否应当提供音频数据流以用于经由(多个)车辆扬声器进行渲染或者,替代地,被提供以用于经由替代的扬声器进行渲染的确定。
在一些所述方式中,确定的音频延迟可以另外或可替代地与各种降噪技术一起使用。例如,用户可以向自动化助理客户端提供口头输入“好的助理,什么时间”,并且自动化助理客户端能够将“它是在下午3:05”制定为响应。客户端设备能够向车辆计算设备发送包括“它是下午3:05”的文本到语音转换的音频数据流,并且车辆计算设备能够经由(多个)车辆扬声器渲染音频数据流。客户端设备和/或单独的车辆接口设备能够利用发送的音频数据流和确定的音频延迟,从(经由麦克风捕获的)捕获的音频数据中消除“它是下午3:05”的文本到语音转换。换句话说,对正在被渲染的音频数据流的了解能够被用于从捕获的音频数据中消除音频数据流,以由此能够更好地识别用户的任何共现的口头话语。对音频数据流的了解与确定的音频延迟一起被利用,以使噪声消除能够在正确的时间抵消音频数据流(例如,知道“它是3:05pm”将实际上以1.2秒的延迟(或其他延迟)被渲染)。例如,客户端设备能够将“它是下午3:05”音频流发送到车辆接口设备,以用于车辆接口设备在降噪中使用。使用音频流和车辆音频延迟的车辆接口设备将知道音频输出将何时使用(多个)车辆扬声器被渲染,并且可以在适当的时间从发送到客户端设备的任何捕获的音频输出中过滤“它是下午3:05”。
应当理解,本文中更详细描述的前述概念和附加概念的所有组合被预期为本文中公开的主题的一部分。例如,在本公开结尾出现的所要求保护的主题的所有组合被认为是本文中公开的主题的一部分。
附图说明
图1图示其中本文中公开的各个实施方式能够被实现的示例环境。
图2图示其中本文中公开的各个实施方式能够被实现的另一示例环境。
图3图示其中本文中公开的各个实施方式能够被实现的另一示例环境。
图4图示根据本文中公开的各个实施方式的示例音频数据流和捕获的音频数据的各个示例。
图5是图示根据本文中公开的各个实施方式的示例过程的流程图。
图6图示根据本文中公开的各个实施方式的另一示例过程的流程图。
图7是图示其中本文中公开的各个实施方式能够被实现的示例环境的框图。
图8示出计算设备的示例架构。
具体实施方式
图1、图2和图3图示根据本文中描述的许多实施方式的通信地耦合到车辆计算设备的计算设备。尽管为了简单起见图1至图3图示车辆外部的计算设备和车辆接口设备(图2和3),但是应当理解,在执行本文中描述的各种技术期间,计算设备和/或车辆接口设备将位于车辆内。
图1图示经由无线通信信道104通信地耦合到车辆计算设备102的计算设备106。计算设备102可以是,例如,膝上型计算设备、平板计算设备、移动智能电话计算设备和/或包括计算设备的用户的可穿戴装置(例如,具有计算设备的手表、具有计算设备的眼镜、虚拟或增强现实计算设备等)。可以提供另外的和/或替代的客户端设备。在各种实施方式中,计算设备106包括各种用户接口输入和/或输出设备,诸如(多个)话筒、(多个)扬声器、和/或另外的用户接口设备。计算设备106能够被安装在车辆内(例如,在车架上、被吸到窗户上)和/或能够由车辆提供的辅助电力9例如,12V车辆插座、USB端口或诸如美国的“A型”插头的辅助标准插头)供电和/或充电。然而,计算设备106不与车辆集成,并且能够被容易地从车辆移除、容易地被放置在其他车辆中,并且能够是智能电话或用户在各种环境中使用的其他设备。
车辆的车辆计算设备102可以是,例如,车载通信系统、车载娱乐系统和车载导航系统等。能够提供另外的和/或替代的车辆计算设备。在各个实施方式中,车辆计算设备102与车辆集成并且直接驱动也与车辆集成的(多个)车辆扬声器。车辆计算设备102能够是车辆的原始设备,或者能够是售后安装的附件。车辆计算设备102被集成,因为它直接驱动(多个)车辆扬声器和/或不能在不需要使用专用工具和/或需要大量时间和/或专业知识的情况下从车辆移除。例如,车辆计算设备102能够被连接到车辆的控制器局域网(CAN)总线和/或能够经由车辆专用连接器(例如,不是12V车辆插座并且不是容易接近的辅助标准插头)供电。在许多实施方式中,车辆计算设备102可以包括各种用户接口设备,其包括(多个)麦克风、(多个)扬声器和/或另外的用户接口设备。例如,音频输出能够经由由车辆计算设备驱动的一个或多个车辆扬声器被渲染。
无线通信信道104能够包括各种无线通信网络,无线通信网络能够可选地利用一个或多个标准通信技术、协议和/或过程间通信技术。例如,无线通信信道104能够是蓝牙信道104,并且移动智能电话计算设备106能够经由蓝牙信道104与车辆计算设备102通信地耦合。作为进一步的示例,客户端设备106能够经由蓝牙信道104向车辆计算设备102发送音频数据流,这能够使车辆计算设备102渲染能够由车辆内的麦克风捕获的对应的音频输出,并且该捕获的数据能够被用于确定车辆音频延迟。
图2图示经由无线通信网络204与车辆计算设备202通信地耦合的计算设备206。另外,计算设备206经由无线通信网络208被通信地耦合到车辆接口设备210。如上文关于图1描述的,计算设备206能够包括各种计算设备,车辆计算设备202能够包括车辆的各种计算设备,和/或无线通信信道204和208能够包括各种通信信道。
在各种实施方式中,计算设备206能够另外地和/或可替代地经由无线通信信道208与车辆接口设备210耦合。车辆接口设备210能够提供另外的和/或替代的用户接口输入和/或输出,诸如一个或多个另外的麦克风、一个或多个另外的扬声器、一个或多个另外的按钮等。在各种实施方式中,能够使用12V车辆插座(这里也称为点烟器插座)、车辆USB端口、电池等对车辆接口设备210供电。例如,车辆接口设备210能够由车辆的12V插座供电,并且能够位于车辆的中央控制台上或周围(即,位于车辆的驾驶员附近,使得车辆接口设备210的一个或多个麦克风能够捕获由驾驶员和/或另外车辆乘客提供的口头话语)。诸如移动智能电话的计算设备206能够经由无线通信信道210与车辆接口设备210通信地耦合。作为进一步的示例,移动智能电话计算设备206能够经由第一蓝牙信道204与车辆计算设备202通信地耦合,并且计算设备206能够经由第二蓝牙信道208与车辆接口设备210通信地耦合。
图3图示与车辆计算设备和车辆接口设备通信地耦合的计算设备的替代的配置。计算设备304、车辆接口设备302和/或车辆接口设备308在上面关于图1和图2被描述。在各种实施方式中,车辆不经由无线通信信道与计算设备通信地耦合(例如,车辆能够缺乏经由无线通信信道与计算设备连接的能力)。在一些这种实施方式中,计算设备304能够经由无线通信信道306与车辆接口设备308通信地耦合。另外,车辆接口设备308能够经由通信信道310与车辆计算设备通信地耦合。例如,移动智能电话(即,计算设备304)能够经由蓝牙信道(即,无线通信信道306)与车辆接口设备308通信地耦合。车辆接口设备308能够另外地或可替代地经由辅助电缆(即,通信信道310)与车辆计算设备302通信地耦合。
在各种实施方式中,计算设备(例如,图1的106、图2的206和/或图3的304)能够通过向车辆计算设备发送音频数据流(例如,图1的102、图2的202和/或图3的302)并且将(使用一个或多个车辆扬声器渲染的)捕获的音频输出与音频数据流进行比较来自动地确定车辆设备延迟。本文中关于图4描述了根据许多实施方式的音频数据流。在许多实施方式中,能够使用计算设备的一个或多个麦克风和/或车辆接口设备的一个或多个麦克风来捕获由车辆扬声器渲染的所捕获的音频输出。
在各种实施方式中,一旦延迟被确定,延迟音频数据就能够被附加到未来音频数据流上,其中使用确定的延迟来确定延迟音频数据的长度。另外或可替代地,确定的延迟能够被用作降噪过程的一部分。
在许多实施方式中,音频数据流能够被发送以确定经由一个或多个车辆扬声器渲染的音频输出是否能够被捕获。换句话说,测试音频信号能够被发送到车辆计算设备,并且如果计算设备和/或车辆接口设备不能捕获经由车辆扬声器渲染的音频输出,则能够使用计算设备的扬声器和/或车辆接口设备的扬声器来渲染未来音频数据流。
应当理解,虽然本文中描述的实施方式涉及与车辆计算设备通信地耦合的计算设备,但是另外的或替代的计算设备能够与计算设备耦合。例如,计算设备能够与独立无线扬声器的计算设备(例如,与蓝牙无线扬声器通信地耦合的移动智能电话)通信地耦合。计算设备能够与另外的和/或替代的另外的计算设备耦合。
转到图4,根据各种实施方式的示例音频数据流和各种捕获的音频数据被图示。音频数据流402包括五个频率片段的序列:频率片段'1'404、频率片段'2'406、频率片段'3'408、频率片段'4'410以及频率片段'5'412。在许多实施方式中,计算设备将音频数据流402发送到车辆计算设备以用于使用(多个)车辆扬声器的渲染。进而,使用车辆扬声器渲染的对应的音频输出能够被捕获并且与音频数据402进行比较以确定任何车辆音频延迟。
例如,车辆音频延迟能够短于第一频率片段。捕获的音频数据414图示大约第一频率片段404的长度的一半的延迟,并且捕获序列频率片段'1'416、频率片段'2'418、频率片段'3'420、频率片段'4'422和频率片段'5'424。因为音频设备延迟,捕获的音频数据414的频率片段'1'416短于音频数据流402的频率片段'1'404。在许多实施方式中,能够使用频率片段'1'416与频率片段'1'404的结尾之间的差来确定延迟音频片段。另外的频率片段'2'、'3'、'4'和/或'5'将具有类似的延迟,并且计算设备能够另外和/或可替代地使用另外的捕获的频率片段来确定延迟。例如,音频数据流能够是2.5秒长,并且包括五个0.5秒长的频率片段。捕获的音频数据能够捕获0.3秒的频率片段“1”(即,捕获的音频数据能够捕获2.3秒的频率片段)。计算设备能够将频率片段'1'404与频率片段'1'416进行比较,并且确定0.2秒的延迟。类似地,能够将频率片段'2'406与频率片段'2'418进行比较以确定0.25秒的延迟,能够将频率片段'3'408与频率片段'3'420进行比较以确定0.2秒的延迟,能够将频率片段'4'410与频率片段'4'422进行比较以确定0.3秒的延迟,并且能够将频率片段'5'412与频率片段'5'424进行比较以确定0.2秒的延迟。计算设备能够选择0.3秒作为延迟(即,0.3秒是确定的0.2秒、0.25秒、0.2秒、0.3秒和0.2秒的延迟中的最大延迟)。
在许多实施方式中,整个频率片段能够在捕获的音频数据中丢失。系统能够将音频数据流402中的频率片段与捕获频率片段'2'428、频率片段'3'430、频率片段'4'432和频率片段'5'434的序列的捕获的音频数据进行比较。换句话说,音频数据流402的频率片段'1'404不具有在捕获的音频数据流426中的对应表示。例如,音频数据流402能够是5秒长,并且包括五个1秒频率片段。计算设备能够确定捕获的音频数据流426不包含频率片段'1'404。丢失的频率片段的数目能够乘以音频数据流402中频率片段的1秒长度以确定1秒延迟。
在许多实施方式中,整个频率片段能够丢失,以及频率片段的部分能够丢失。捕获的音频数据436图示其中频率片段'1'和频率片段'2'整体缺失,并且频率片段'3'的一部分缺失的捕获的音频。换句话说,捕获的音频数据436包括频率片段'3'438、频率片段'4'440以及频率片段'5'442,其中捕获的音频数据436的频率片段'3'438短于音频数据流402的频率片段'3'408。能够使用丢失的频率片段的长度以及如上所述的第一捕获频率片段的丢失部分的组合来确定设备延迟。例如,音频数据流402能够包含五个0.3秒长的频率片段(即,音频数据流402为1.5秒长)。捕获的音频数据流仅能够捕获音频数据流402的0.7秒。0.7秒的延迟能够通过将捕获的音频数据流436与音频数据流402进行比较以确定与频率片段“1”404和频率片段“2”406相对应的频率片段没有在捕获的音频数据流436中被捕获而被确定。另外,通过将频率片段'3'408与捕获的频率片段'3'438进行比较,能够确定仅频率片段'3'438的0.1秒被捕获。计算设备能够通过将丢失的频率片段的延迟(从丢失的频率片段'1'开始的0.3秒+从丢失的频率片段'2'开始的0.3秒)与第一捕获的频率片段'3'438的延迟(0.2秒)组合以确定0.8秒延迟(0.3+0.3+0.2)来确定延迟。
另外或可替代地,捕获的音频数据能够是音频数据流的开始及结尾两者的丢失部分。例如,捕获的音频数据444包括频率片段'2'446和频率片段'3'448,其中频率片段'2'446短于音频数据流402的频率片段'2'406。换句话说,在捕获的音频数据444中,频率片段'1'、'4'和'5'完全丢失,并且频率片段'2'的一部分丢失。第一车辆延迟能够基于丢失的频率片段'1'和丢失的频率片段'2'的一部分被确定。另外或可替代地,第二车辆延迟能够基于丢失的频率片段'4'和'5'被确定。例如,音频数据流402能够包括五个频率片段,每个1秒长(即,音频数据流为5秒长)。音频数据流402能够与捕获的音频数据流444比较,以确定捕获的音频数据流444没有捕获与频率片段'1'404、频率片段'4'410和频率片段'5'412相对应的频率片段。另外,通过将捕获的频率片段'2'446与频率片段'2'406进行比较,并且将捕获的频率片段'3'448与频率片段'3'408进行比较,能够确定另外的0.4秒延迟。通过将捕获的频率片段'2'(0.4秒)的延迟与丢失的频率片段'1'(1秒)的长度进行组合,可以将在捕获的音频数据流的开始处发生的第一音频延迟确定为1.4秒。另外或可替代地,能够通过组合丢失的频率片段'4'(1秒)和丢失的频率片段'5'(1秒)的长度来确定在捕获的音频数据流的结尾处发生的2秒的第二音频延迟。
虽然关于图4描述了频率片段的特定序列,但是根据许多实施方式可以利用各种音频数据流(和对应的捕获的音频数据)。例如,音频数据流能够是单个频率的片段。例如,音频数据流能够是单个频率的8秒长的片段,捕获的音频数据能够仅捕获单个频率的6.5秒,并且能够基于将片段的预期持续时间(8秒)与捕获的音频数据中的实际持续时间(6.5秒)进行比较来确定1.5秒的车辆音频延迟。作为另一示例,每个频率片段能够是几个共现频率(例如,双音共现频率、三音共现频率等)。在许多实施方式中,频率片段序列包括频率片段的非重复序列。在许多实施方式中,频率片段序列包括重复频率片段,其中丢失的频率片段是可唯一标识的。例如,序列可以是'1'、'2'、'3'、'4'、'5'、'4'、'3'、'2'、'1'的频率片段表示。音频数据流能够具有各种长度,诸如0.5秒、1秒、1.5秒、2秒等。
转到图5,示出了根据本文中公开的实施方式确定车辆音频延迟的示例过程500。为了方便起见,参考执行操作的系统来描述图5的流程图的某些方面的操作。该系统可以包括各种计算机系统的各种组件和/或(多个)GPU、(多个)CPU和/或(多个)TPU中的一个或多个。例如,系统能够包括智能电话或其他计算设备,和/或车辆接口设备。此外,虽然以特定顺序示出了过程500的操作,但是这并不意味着限制。一个或多个操作可以被重新排序、省略和/或添加。
在框502处,系统使计算设备经由无线通信信道向车辆计算设备发送音频数据流。例如,移动智能电话能够经由蓝牙向车辆计算设备发送音频数据流。作为另一示例,移动智能电话能够经由蓝牙向车辆接口设备发送音频数据流,并且车辆接口设备能够向车辆计算设备发送音频数据流。作为又一示例,车辆接口设备能够经由蓝牙和/或有线通信信道向车辆计算设备发送音频数据流。
在框504处,系统使车辆计算设备经由车辆的一个或多个扬声器渲染使用音频数据流生成的可听输出,其中车辆的一个或多个扬声器由车辆计算设备驱动。例如,车辆计算设备能够基于音频数据流的全部或部分来驱动与车辆集成的车辆扬声器,从而使得车辆扬声器渲染对应的可听输出。如本文中描述的,如果车辆计算设备没有延迟,则对应的可听输出将包括音频数据流的全部。然而,如果车辆计算设备确实具有延迟,则对应的可听输出能够省略音频数据流的一个或多个部分。
在框506处,系统接收捕获的音频数据,该音频数据捕获经由车辆的一个或多个扬声器渲染的可听输出。捕获的音频数据由车辆内的至少一个麦克风捕获。在一些实施方式中,车辆内的至少一个麦克风包括计算设备的麦克风,诸如框502中发送音频数据流的计算设备。在一些实施方式中,车辆内的至少一个麦克风另外或可替代地包括车辆接口设备的麦克风,并且车辆接口设备能够与框502中发送音频数据流的计算设备分离。另外或可替代地,可听输出能够由计算设备的至少一个麦克风以及车辆接口设备的至少一个麦克风两者捕获。
在框508处,系统通过将捕获的音频数据与音频数据流进行比较来确定车辆音频延迟。本文中描述了确定车辆音频延迟的一些非限制性示例(例如,以上关于图4)。
在框510处,系统确定是否存在要传送到车辆计算设备的附加音频数据流。在许多实施方式中,计算设备的自动化助理客户端生成另外的音频数据流。在许多实施方式中,车辆接口设备的自动化助理客户端生成另外的音频数据流。如果这样,则系统前进到框512,并且系统将延迟音频片段附加到另外的音频数据流,其中使用车辆音频延迟来确定延迟音频片段的持续时间。在各种实施方式中,延迟音频片段可以包括各种音频,包括白噪声、人类听不见的高频声音片段以及另外的其它声音。延迟音频片段能够是根据需要重复的单个长度(即,0.2延迟音频片段能够被附加一次用于0.1秒延迟以及0.2秒延迟,0.2延迟音频数据片段能够被附加两次用于0.3秒延迟和0.4秒延迟,等等)。另外或可替代地,延迟音频片段的长度可以被定制成确定的音频延迟(即,当0.5秒延迟被确定时能够附加0.5秒延迟音频片段,当0.75秒延迟被确定时能够附加0.75秒延迟音频片段,等等)。此外,能够附加比确定的音频延迟稍长的延迟音频片段(即,当0.25秒音频延迟被确定时,能够附加0.3秒延迟音频片段,当0.5秒音频延迟被确定时,能够附加0.75秒延迟音频片段,等等)。
在框514处,系统使计算设备经由无线通信信道向车辆计算设备发送具有附加的延迟音频片段的另外的音频流。一旦系统已经发送了另外的音频数据流,则该过程结束。
如果在框510处,系统确定不存在要向车辆计算设备发送的另外的音频数据流,则系统前进到框516,其中系统确定是否存在噪声消除滤波器。如果系统确定不存在噪声消除滤波器,则过程结束。如果在框516处,系统确定存在噪声消除滤波器,则系统前进到框518,其中系统使计算设备在过程结束之前基于车辆音频延迟适应噪声消除滤波器。在许多实施方式中,噪声消除滤波器被本地存储在计算设备上。在许多实施方式中,噪声消除滤波器被存储在单独的计算设备(例如,单独的车辆接口设备)处。如果噪声消除滤波器被存储在单独的计算设备处,则框512能够包括向单独的计算设备发送基于车辆音频延迟并且使单独的计算设备基于车辆音频延迟来适应其本地噪声消除滤波器的数据。
图5图示包括基于确定的车辆音频延迟附加延迟音频片段并且基于确定的车辆音频延迟适应噪声消除滤波器两者的过程。然而,如本文中描述的,在各种实施方式中,延迟音频片段能够被附加而没有噪声消除滤波器的任何适应,或者噪声消除滤波器的适应能够发生而没有延迟音频片段的任何附加。
转到图6,图示根据本文中公开的实施方式的确定由车辆计算设备驱动的一个或多个扬声器是否渲染使用音频数据流生成的可听输出的示例过程600。为了方便起见,参考执行操作的系统来描述图6的流程图的某些方面的操作,该系统可以包括各种计算机系统的各种组件和/或(多个)GPU、(多个)CPU和/或(多个)TPU中的一个或多个。例如,系统能够包括智能电话或其他计算设备,和/或车辆接口设备。此外,虽然以特定顺序示出了过程600的操作,但是这并不意味着限制。一个或多个操作可以被重新排序、省略和/或添加。
在框602处,系统确定是否经由通信信道将音频数据流从计算设备发送到车辆计算设备。在许多实施方式中,系统确定车辆是否处于通信信道模式(即,车辆是否处于蓝牙模式,车辆是否支持自动切换到蓝牙模式等)。在许多实施方式中,系统确定由车辆计算设备驱动的一个或多个扬声器的音量是否对于渲染的音频输出来说太低而不能经由车辆内的一个或多个麦克风被捕获。如果系统确定车辆处于通信信道模式(或支持自动切换到通信信道模式),并且由车辆计算设备驱动的扬声器的音量不是太低,则系统前进到框604。如果系统确定车辆不处于通信信道模式,或者系统确定由车辆计算设备驱动的扬声器的音量太低,则系统前进到框612。
在框604处,系统使计算设备经由通信信道向车辆计算设备发送音频数据流。在一些实施方式中,通信信道是无线通信信道(例如,蓝牙信道)。在其它实施方式中,通信信道是有线通信信道(例如,辅助电缆)。
在框606处,系统使车辆计算设备经由由车辆计算设备驱动的一个或多个扬声器来渲染基于音频数据流生成的可听输出。
在框608处,系统确定可听输出是否被车辆内的至少一个麦克风捕获。如果系统确定可听输出被至少一个麦克风捕获,则系统前进到框610。如果系统确定可听输出没有被至少一个麦克风捕获,则系统前进到框612。在许多实施方式中,可听输出被计算设备的至少一个麦克风捕获。在许多实施方式中,可听输出被车辆接口设备的至少一个麦克风捕获。在许多实施方式中,可听输出被计算设备的至少一个麦克风和车辆接口设备的至少一个麦克风捕获。
在框610处,系统使计算设备将另外的音频数据流发送到车辆计算设备以用于经由由车辆计算设备驱动的一个或多个扬声器来渲染。
在框612处,系统使另外的音频数据流在车辆内的一个或多个替代的扬声器处被渲染,其中一个或多个替代的扬声器不被车辆计算设备驱动。在许多所述方式中,一个或多个替代的扬声器是计算设备的扬声器。在许多实施方式中,一个或多个替代的扬声器是车辆接口设备的扬声器。
转向图7,能够实现本文中公开的实施方式的示例环境。图7包括执行自动化助理客户端704的实例的客户端计算设备702。一个或多个基于云的自动化助理组件712能够在一个或多个计算系统(统称为“云”计算系统)上被实现,一个或多个计算系统经由在710处概括指示的一个或多个局域网和/或广域网(例如,互联网)通信地耦合到客户端设备702。
自动化助理客户端704的实例通过其与一个或多个基于云的自动化助理组件712的交互,可以形成从用户的角度看起来为用户可以利用其参与人机对话的自动化助理700的逻辑实例。因此应当理解,在一些实施方式中,与在客户端设备702上执行的自动化助理客户端704交流的用户实际上可以与他或她自己的自动化助理700的逻辑实例交流。为了简洁和简明起见,如本文中用作“服务”特定用户的术语“自动化助理”将通常指在由用户操作的客户端设备702上执行的自动化助理客户端704和一个或多个基于云的自动化助理组件712(其可以在多个客户端计算设备的多个自动化助理客户端之间共享)的组合。还应当理解,在一些实施方式中,自动化助理700可以响应于来自任何用户的请求,而与用户是否实际上由自动化助理700的所述特定实例“服务”无关。
客户端计算设备702可以是,例如:台式计算设备、膝上型计算设备、平板计算设备、移动智能电话计算设备、独立交互式扬声器、智能电器和/或包括计算设备的用户的可穿戴装置(例如,具有计算设备的用户的手表、具有计算设备的用户的眼镜、虚拟或增强现实计算设备)。可以提供另外的和/或替代的客户端计算设备。另外或可替代地,客户端计算设备702的操作可以被分布在多个计算设备之间。例如,客户端计算设备702的一个或多个操作可以被分布在移动智能电话与车辆计算设备之间。此外,客户端计算设备702的操作可以在多个计算设备(在一些情况下,其可以被通信地耦合)之间被重复。作为进一步的示例,移动智能电话以及车辆接口设备可以各自实现自动化助理700的操作,诸如移动智能电话和车辆接口设备两者都包括调用引擎(下面描述)。在各种实施方式中,客户端计算设备702可以可选地操作除了自动化助理客户端704之外的一个或多个其他应用,诸如消息交换客户端(例如,SMS、MMS、在线聊天)、浏览器等等。在那些各种实施方式中的一些实施方式中,其它应用中的一个或多个能够(例如,经由应用程序编程接口)可选地与自动化助理704对接,或包含它们自己的自动化助理应用的实例(其也可与基于云的自动化助理组件712对接)。
自动化助理700经由客户端设备702的用户界面输入和输出设备参与与用户的人机对话会话。为了保护用户隐私和/或节约资源,在许多情形中,用户必须在自动化助理将完全处理口头话语之前经常明确地调用自动化助理700。自动化助理700的明确调用能够响应于在客户端设备702处接收的某些用户界面输入发生。例如,能够经由客户端设备702调用自动化助理700的用户界面输入能够可选地包括客户端设备702的硬件和/或虚拟按钮的致动。此外,自动化助理客户端能够包括一个或多个本地引擎708,诸如可操作以检测一个或多个口头调用短语的存在的调用引擎。调用引擎能够响应于检测一个或多个口头调用短语来调用自动化助理700。例如,调用引擎能够响应于检测到诸如“嘿助理”、“好的助理”和/或“助理”的口头调用短语来调用自动化助理700。调用引擎能够连续地处理(例如,如果不是处于“未激活”模式)基于来自客户端设备702的一个或多个麦克风的输出的音频数据帧流,以监视口头调用短语的出现。在监视口头调用短语的出现时,调用引擎抛弃(例如,在临时存储在缓冲器中之后)不包括口头调用短语的任何音频数据帧。然而,当调用引擎检测到在处理的音频数据帧中出现口头调用短语时,调用引擎能够调用自动化助理700。如本文中使用的,“调用”自动化助理700能够包括使激活自动化助理700的一个或多个先前不被激活的功能。例如,调用自动化助理700能够包括使一个或多个本地引擎708和/或基于云的自动化助理组件712基于其上调用短语被检测到的音频数据帧,和/或一个或多个随后的音频数据帧(而在调用之前,没有对音频数据帧的进一步处理正在发生)来进一步处理音频数据帧。
自动化助理704的一个或多个本地引擎708是可选的,并且能够包括例如上述调用引擎、本地语音到文本(“STT”)引擎(其将捕获的音频转换为文本)、本地文本到语音(“TTS”)引擎(其将文本转换为语音)、本地自然语言处理器(其确定音频和/或从音频转换的文本的语义含义)和/或其他本地组件。因为客户端设备702在计算资源(例如,处理器周期、存储器、电池等)方面相对被约束,所以本地引擎108可能具有相对于被包括在基于云的自动化助理组件712中的任何对应物的有限的功能。
自动化助理客户端704能够另外地包括延迟引擎706和音频数据720。延迟引擎706能够由自动化助理客户端704根据各种实施方式被利用,各种实施方式包括:向车辆计算设备发送音频数据流、向车辆接口设备发送音频数据流、确定车辆设备延迟、向音频数据流附加音频延迟片段、向车辆接口设备发送车辆设备延迟、捕获使用(多个)车辆扬声器渲染的音频数据等。在许多实施方式中,延迟引擎706能够从音频数据库720选择音频数据流。
基于云的自动化助理组件712利用云的虚拟无限资源来执行相对于本地引擎708的任何对应物的音频数据和/或其他用户界面输入的更稳健和/或更准确的处理。再次,在各种实施方式中,客户端设备702能够响应于调用引擎检测到口头调用短语或检测到自动化助理700的某一其他明确调用来向基于云的自动化助理组件712提供音频数据和/或其他数据。
图示的基于云的自动化助理组件712包括基于云的TTS模块714、基于云的STT模块716和自然语言处理器718。在一些实施方式中,自动化助理700的引擎和/或模块中的一个或多个可以被省略、被组合和/或被实现在与自动化助理700分离的组件中。此外,在一些实施方式中,自动化助理700能够包括另外的和/或可替换的引擎和/或模块。
基于云的STT模块716能够将音频数据转换成文本,该文本然后可以被提供到自然语言处理器718。在各种实施方式中,基于云的STT模块716能够至少部分地基于由分配引擎(未示出)提供的扬声器标签和分配的指示将音频数据转换成文本。
基于云的TTS模块714能够将文本数据(例如,由自动化助理700制定的自然语言响应)转换成计算机生成的语音输出。在一些实施方式中,TTS模块714能够将计算机生成的语音输出提供到客户端设备702以例如使用一个或多个扬声器被直接输出。在其他实施方式中,由自动化助理700生成的文本数据(例如,自然语言响应)可以被提供到本地引擎708中的一个,该本地引擎随后可以将文本数据转换成本地输出的计算机生成的语音。
自动化助理700的自然语言处理器718处理自由形式的自然语言输入,并且基于自然语言输入生成用于自动化助理700的一个或多个其他组件所使用的注释输出。例如,自然语言处理器718能够处理自然语言自由形式的输入,该输入是对由用户经由客户端设备702提供的音频数据由STT模块716转换的文本输入。生成的注释输出可以包括自然语言输入的一个或多个注释,并且可选地包括自然语言输入的一个或多个(例如,全部)术语。在一些实施方式中,自然语言处理器718被配置为识别和注释自然语言输入中的各种类型的语法信息。例如,自然语言处理器718可以包括被配置为利用术语的语法角色来注释术语的词性标记器(未描绘)。此外,例如,在一些实施方式中,自然语言处理器718可以另外和/或可替代地包括被配置为确定自然语言输入中的术语之间的句法关系的依存关系解析器(未描绘)。
在一些实施方式中,自然语言处理器718可以另外和/或可替代地包括实体标记器(未描绘),该实体标记器被配置为注释一个或多个片段中的实体引用,诸如对人(包括,例如,文学人物、名人、公众人物等)、组织、位置(真实的和想象的)等的引用。自然语言处理器718的实体标记器可以以高级别粒度(例如,以能够识别对诸如人的实体类的所有引用)和/或低级别粒度(例如,以能够识别对诸如特定人的特定实体的所有引用)来注释对实体的引用。实体标记器可以依赖于自然语言输入的内容来解析特定实体,和/或可以可选地与知识图或其他实体数据库通信以解析特定实体。
在一些实施方式中,自然语言处理器718可以另外和/或可替换地包括共指解析器(未描绘),其被配置为基于一个或多个上下文线索对同一实体的引用进行分组或“聚类”。例如,共指解析器可以被用于将自然语言输入“我喜欢上次我们在那里吃饭的“Hypothetical Café”中的术语“在那里”解析为“Hypothetical Café”。
在一些实施方式中,自然语言处理器718的一个或多个组件可以依赖于来自自然语言处理器718的一个或多个其他组件的注释。例如,在一些实施方式中,命名的实体标记器在对特定实体注释所有提及时可以依赖于来自共指解析器和/或依存解析器的注释。此外,例如,在一些实施方式中,共指解析器可以在对同一实体的引用进行聚类时依赖于来自依赖性解析器的注释。在一些实施方式中,在处理特定自然语言输入时,自然语言处理器718的一个或多个组件可以使用相关的先前输入和/或特定自然语言输入之外的其他相关数据以确定一个或多个注释。
图8是可以可选地被用于执行本文中描述的技术的一个或多个方面的示例计算设备810的框图。在一些实施方式中,客户端计算设备和/或其他组件中的一个或多个可以包括示例计算设备810的一个或多个组件。
计算设备810通常包括至少一个处理器814,其经由总线子系统812与多个外围设备通信。这些外围设备可以包括存储子系统824,存储子系统824包括,例如,存储器子系统825和文件存储子系统826、用户接口输出设备820、用户接口输入设备822以及网络接口子系统816。输入和输出设备允许用户与计算设备810交互。网络接口子系统816提供到外部网络的接口,并且被耦合到其他计算设备中的对应接口设备。
用户接口输入设备822可以包括键盘、诸如鼠标、跟踪球、触摸板或图形输入板等定点设备、扫描仪、结合到显示器中的触摸屏、诸如语音识别系统等音频输入设备、麦克风和/或其它类型的输入设备。通常,术语“输入设备”的使用旨在包括将信息输入到计算设备810中或通信网络上的所有可能类型的设备和方式。
用户接口输出设备820可以包括显示子系统、打印机、传真机、或者诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(“CRT”)、诸如液晶显示器(“LCD”)的平板设备、投影设备、或用于创建可视图像的某种其他机构。显示子系统还可以诸如经由音频输出设备提供非可视显示。通常,术语“输出设备”的使用旨在包括用于将信息从计算设备810输出到用户或另一机器或计算设备的所有可能类型的设备和方式。
存储子系统824存储提供本文中描述的一些或所有模块的功能的编程和数据构造。例如,存储子系统824可以包括用于执行图5和/或6的一个或多个过程的选择的方面以及实现图7中所描绘的各种组件的逻辑。
这些软件模块通常由处理器814单独执行或与其它处理器结合执行。存储子系统824中使用的存储器825能够包括多个存储器,多个存储器包括用于存储在程序执行期间的指令和数据的主随机存取存储器(“RAM”)830和其中存储固定指令的只读存储器(“ROM”)832。文件存储子系统826能够提供用于程序和数据文件的永久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、CD-ROM驱动器、光盘驱动器、或可移动介质盒。实现某些实现方式的功能的模块可以由文件存储子系统826存储在存储子系统824中,或者存储在由处理器814可访问的其他机器中。
总线子系统812提供用于使计算设备810的各种组件和子系统如预期彼此通信的机制。虽然总线子系统812被示意性地示出为单个总线,但是总线子系统的替代的实施方式可以使用多个总线。
计算设备810可以是各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器群、或任何其他数据处理系统或计算设备。由于计算机和网络的不断改变的性质,对图8中描绘的计算设备810的描述仅旨在作为用于图示一些实施方式的目的具体示例。计算设备810的许多其他配置可能具有比图8中描绘的计算设备更多或更少的组件。
在一些实施方式中,提供了一种由一个或多个处理器实现的方法,其包括使计算设备经由无线通信信道向车辆的车辆计算设备发送音频数据流,其中发送音频数据流使车辆计算设备经由车辆的一个或多个车辆扬声器渲染可听输出,并且其中,可听输出由车辆计算设备基于音频数据流的至少一部分被生成。方法进一步包括;接收由车辆内的至少一个麦克风捕获的捕获的音频数据,其中捕获的音频数据捕获由至少一个车辆扬声器渲染的可听输出。方法进一步包括基于将捕获的音频数据与音频数据流进行比较来确定车辆音频延迟。方法进一步包括,响应于确定车辆音频延迟,使计算设备在经由无线通信信道向车辆计算设备发送另外的音频数据流之前将对应的延迟音频片段附加到另外的音频数据流,其中,延迟音频片段的持续时间使用所述车辆音频延迟被确定。
本文中公开的技术的这些和其他实施方式可以包括以下特征中的一个或多个。
在一些实施方式中,基于将捕获的音频数据与音频数据流进行比较来确定车辆音频延迟包括确定捕获的音频数据中的特定特征的时间指示。在这些实施方式中的一些实施方式中,方法进一步包括确定音频数据流中的特定特征的另外的时间指示。在这些实施方式中的一些中,方法进一步包括基于捕获的音频数据中的特定特征的时间指示与音频数据流中的特定特征的另外的时间指示之间的差来确定车辆音频延迟。在这些实施方式的一些版本中,音频数据流包括定义的频率片段序列,其中特定特征是定义的频率片段序列中的特定频率片段。在那些实施方式的一些版本中,频率片段序列中的每个频率片段包括至少两个对应的共现频率。
在一些实施方式中,确定捕获的音频数据中的特定特征的时间指示包括确定捕获的音频数据中的特定频率片段的捕获位置,其中确定音频数据流中的特定特征的另外的时间指示包括。在这些实施方式的一些版本中,方法进一步包括确定音频数据流中的特定频率片段的流位置。在那些版本的一些版本中,基于捕获的音频数据中的特定特征的时间指示与音频数据流中的特定特征的另外的时间指示之间的差来确定车辆音频延迟包括确定特定频率片段的捕获位置指示它是捕获的音频数据中的最初出现的频率片段,并且音频数据流中的特定频率片段的流位置指示它不是音频数据流中的最初出现的频率片段,其中确定捕获的音频数据中的特定特征的时间指示与音频数据流中的特定特征的另外的时间指示之间的差包括确定捕获位置与流位置之间的位置偏移。
在一些实施方式中,基于将捕获的音频数据与音频数据流进行比较来确定车辆音频延迟包括,对于频率片段序列中的多个频率片段中的每一个,确定捕获的音频数据中的频率片段与音频数据流中的频率片段之间的对应的时间偏移。在那些实施方式的一些版本中,基于对应时间偏移中的最大偏移来确定车辆音频延迟。
在一些实施方式中,使计算设备在经由无线通信信道向车辆计算设备发送另外的数据流之前将对应延迟音频片段附加到另外的数据流包括使计算设备将对应延迟音频片段附加到另外的数据流的开始。
在一些实施方式中,使计算设备在经由无线通信信道向车辆计算设备发送另外的数据流之前将对应延迟音频片段附加到另外的数据流包括使计算设备将对应延迟音频片段附加到附加数据流的结尾。
在一些实施方式中,无线通信信道是蓝牙信道。
在一些实施方式中,计算设备包含自动化助理客户端。在那些实施方式的一些版本中,响应于自动化助理客户端经由一个或多个麦克风接收口头输入向车辆计算设备发送另外的音频数据流,并且其中另外的音频数据流是响应于口头输入被生成的自动化助理响应。在那些实施方式的一些版本中,捕获捕获的音频数据的至少一个麦克风包括计算设备的至少一个计算设备麦克风。在那些实施方式的一些版本中,捕获捕获的音频数据的至少一个麦克风包括经由第二无线通信信道与计算设备通信的车辆接口设备的至少一个接口麦克风,并且其中,接收捕获的音频数据包括:经由第二通信信道从车辆接口设备接收捕获的音频数据。
在一些实施方式中,车辆接口设备经由另外的无线通信信道被通信地耦合到车辆计算设备。
在一些实施方式中,车辆接口设备经由有线通信信道被通信地耦合到车辆计算设备。
在一些实施方式中,方法进一步包括使车辆接口设备基于车辆音频延迟来适应本地噪声消除滤波器。
在一些实施方式中,由一个或多个处理器实现的方法包括使计算设备经由通信信道向车辆的车辆计算设备发送音频数据流,其中,发送音频数据流使车辆计算设备在车辆计算设备处于通信信道模式时经由由车辆计算设备驱动的一个或多个车辆扬声器来渲染可听输出,并且其中可听输出由车辆计算设备基于音频数据流的至少一部分被生成。方法进一步包括确定可听输出是否由车辆内的至少一个麦克风捕获。方法进一步包括,响应于确定可听输出被车辆内的至少一个麦克风捕获,使计算设备经由通信信道向车辆计算设备发送另外的音频数据流,以用于由车辆计算设备经由一个或多个车辆扬声器渲染另外的音频数据流。响应于确定可听输出没有被车辆内的至少一个麦克风捕获,方法进一步包括使附加音频数据流改为在一个或多个替代的扬声器处被渲染,其中,一个或多个替代的扬声器在车辆内,但不是由车辆计算设备驱动的一个或多个车辆扬声器。
本文中公开的技术的这些和其他实施方式可以包括以下特征中的一个或多个。
在一些实施方式中,一个或多个替代扬声器属于计算设备。在那些实施方式的一些版本中,方法进一步包括检测计算设备的自动化助理客户端的调用,其中调用使自动化助理客户端从第一状态转换到第二状态,其中使计算设备向车辆的车辆计算设备发送音频数据流包括响应于检测到调用。
在一些实施方式中,检测调用包括检测经由计算设备的至少一个麦克风捕获的音频数据中的调用短语的出现。
在一些实施方式中,检测调用包括基于通过另外的通信信道从车辆接口设备接收调用的指示来检测调用,其中车辆接口设备响应于用户与硬件接口元件的交互或者响应于检测到在经由车辆接口设备的至少一个麦克风捕获的音频数据中出现调用短语来发送调用的所述指示。
在一些实施方式中,使计算设备向车辆计算设备发送音频数据流响应于被引导到计算设备的自动化助理客户端的用户接口输入,并且进一步包括基于用户界面输入向远程服务器设备发送包括用户界面输入和/或另外的数据的请求。在那些实施方式的一些版本中,响应于发送请求,从远程服务器设备接收另外的音频数据流,其中,将向车辆计算设备发送音频数据流发生在从远程服务器设备接收另外的音频数据流的全部之前。
在一些实施方式中,车辆的至少一个麦克风包括计算设备的至少一个麦克风。
在一些实施方式中,方法进一步包括确定时间指示,其指示自动化助理客户端使计算设备经由通信信道向车辆的车辆计算设备发送音频数据流的时间。在那些实施方式的一些版本中,方法进一步包括确定指示当前时间的当前时间指示。在这些实施方式的一些版本中,方法进一步包括确定当前时间指示与时间指示之间的差。响应于确定当前时间指示与时间指示之间的差超过阈值,那些实施方式的一些版本进一步包括使计算设备的自动化助理客户端经由通信信道向车辆的车辆计算设备发送第二音频数据流,其中发送第二音频数据流使车辆计算设备在车辆计算设备处于通信信道模式时经由车辆计算设备的一个或多个扬声器渲染另外的可听输出,并且其中另外的可听输出由车辆计算设备基于第二音频数据流的至少一部分生成。在这些实施方式的一些版本中,方法进一步包括确定另外的可听输出是否被车辆内的至少一个麦克风捕获。在那些实施方式的一些版本中,响应于确定另外的可听输出由车辆内的至少一个麦克风捕获。在那些实施方式的一些版本中,方法进一步包括使计算设备经由通信信道向车辆计算设备发送第三音频数据流。响应于确定另外的可听输出没有被车辆内的至少一个麦克风捕获,在那些实施方式的一些版本中,方法进一步包括使第三可听输出在一个或多个替代的扬声器处被渲染。
在一些实施方式中,由一个或多个处理器实现的方法包括使经由无线通信信道向车辆的车辆计算设备发送音频数据流,其中发送音频数据流使车辆计算设备经由车辆的一个或多个车辆扬声器渲染可听输出,并且其中,可听输出由车辆计算设备基于音频数据流的至少一部分被生成。在这些实施方式中的一些中,方法进一步包括接收由车辆内的计算设备的至少一个麦克风捕获的捕获的音频数据,其中捕获的音频数据捕获由至少一个车辆扬声器渲染的可听输出。在这些实施方式中的一些中,方法进一步包括基于将捕获的音频数据与音频数据流进行比较来确定车辆音频延迟。在那些实施方式的一些版本中,响应于确定车辆音频延迟,方法进一步包括使计算设备基于车辆音频延迟来适应本地噪声消除。
本文中公开的技术的这些和其他实施方式能够包括以下特征中的一个或多个。
在一些实施方式中,本地噪声消除从随后捕获的音频数据中减轻经由无线通信信道发送以用于由车辆计算设备经由一个或多个车辆扬声器渲染的已知源音频数据流,并且其中适应本地噪声消除包括基于车辆音频延迟适应检测已知源音频数据流的预期时间。
在一些实施方式中,计算设备是由车辆的点烟器插座供电的车辆接口设备。在那些实施方式的一些版本中,通过所述车辆接口设备确定车辆音频延迟。在那些实施方式的一些版本中,通过经由通信信道与车辆接口设备通信的智能电话确定车辆音频延迟,并且其中使计算设备基于车辆音频延迟来适应本地噪声消除包括向车辆接口设备发送车辆音频延迟和/或基于车辆音频延迟确定的另外的数据。
在一些实施方式中,提供一种由一个或多个处理器实现的方法,方法包括使计算设备经由无线通信信道向另外的计算设备发送音频数据流,其中发送音频数据流使另外的计算设备经由由附加计算设备驱动的一个或多个另外的扬声器渲染可听输出,并且其中可听输出由另外的计算设备基于音频数据流的至少一部分生成。方法进一步包括,接收由至少一个麦克风捕获的捕获的音频数据,其中捕获的音频数据捕获由至少一个另外的扬声器渲染的可听输出。方法进一步包括基于将捕获的音频数据与音频数据流进行比较来确定音频延迟。方法进一步包括响应于确定音频延迟:使计算设备在经由无线通信信道向另外的计算设备发送另外的音频数据流之前,将对应延迟音频片段附加到附加音频数据流,其中,延迟音频片段的持续时间使用音频延迟被确定;和/或基于音频延迟来适应本地噪声消除。
本文中公开的技术的这些和其他实施方式能够包括以下特征中的一个或多个。
另外的计算设备能够是车辆计算设备,并且一个或多个扬声器能够是一个或多个车辆扬声器。
另外的计算设备能够是蓝牙启动的设备,其结合了一个或多个另外的扬声器或者经由音频线缆被直接耦合到一个或多个另外的扬声器。
在一些实施方式中,提供一种由一个或多个处理器实现的方法,方法包括使计算设备经由通信信道向另外的计算设备发送音频数据流,其中发送音频数据流使车辆计算设备在另外的计算设备处于通信信道模式时经由由另外的计算设备驱动的一个或多个附加扬声器渲染可听输出,并且其中可听输出由另外的计算设备基于音频数据流的至少一部分生成。方法进一步包括确定可听输出是否被至少一个麦克风捕获。响应于确定可听输出由至少一个麦克风捕获,方法进一步包括基于将捕获的音频数据与音频数据流进行比较来确定音频延迟。方法进一步包括,响应于确定可听输出由至少一个麦克风捕获,使计算设备经由通信信道向另外的计算设备发送另外的音频数据流,以用于由车辆计算设备经由一个或多个另外的扬声器渲染另外的音频数据流。响应于确定可听输出没有被至少一个麦克风捕获,方法进一步包括使附加音频数据流改为在一个或多个替代的扬声器处被渲染,其中一个或多个替代的扬声器不是由另外的计算设备驱动的一个或多个车辆扬声器。
本文中公开的技术的这些和其他实施方式能够包括以下特征中的一个或多个。
附加计算设备能够是车辆计算设备,并且一个或多个扬声器能够是一个或多个车辆扬声器。
附加计算设备能够是蓝牙启动的设备,其结合了一个或多个另外的扬声器或者经由音频线缆被直接耦合到一个或多个另外的扬声器。
另外,一些实施方式包括一个或多个计算设备的一个或多个处理器(例如,中央处理单元(CPU)、图形处理单元(GPU)和/或张量处理单元(TPU)),其中,一个或多个处理器可操作以执行存储在相关联的存储器中的指令,并且其中,指令被配置为使执行本文中描述的任何方法。一些实施方式还包括存储计算机指令的一个或多个非暂时性计算机可读存储介质,计算机指令由一个或多个处理器执行以执行本文中描述的任何方法。
- 使用结构化音频输出检测回放和/或适应无线扬声器中的未对准的回放
- 全部使用可自由插入的同步图案的将用户位流转换成编码位流的方法、检测信号中的同步图案的方法、记录载体、信号、记录装置和回放装置