热词抑制的制作方法
相关申请的交叉引用
本申请要求2019年5月21日提交的美国申请no.16/418,415的权益,该美国申请no.16/418,415要求2018年5月22日提交的美国申请no.62/674,973的权益,两者的内容通过引用合并于此。
本公开总体上涉及自动语音处理。
背景技术:
启用语音的家庭或其他环境的现实——也就是说,其中用户仅需大声讲出查询或命令并且基于计算机的系统将应付并回答该查询和/或使命令被执行的环境——即将来临。可以使用分布在环境的各个房间或区域中的连接的麦克风设备的网络来实现启用语音的环境(例如,家庭、工作场所、学校等)。通过这样的麦克风的网络,用户基本上有权力从环境中的任何地方对系统进行口头查询,而无需在他/她的面前或者甚至附近拥有计算机或其他设备。例如,在厨房烹饪时,用户可能会询问系统“howmanymillilitersinthreecups(三杯中有多少毫升)?”并且作为响应,例如从系统接收以合成话音输出的形式的答案。可替代地,用户可以询问系统问题,诸如“whendoesmynearestgasstationclose(我最近的加油站何时关闭)”,或者在准备离开房子时,“shouldiwearacoattoday?(我今天应该穿外套吗?)”
此外,用户可以询问系统的查询和/或发出与用户的个人信息有关的命令。例如,用户可能会询问系统“whenismymeetingwithjohn?(我与john的会议是何时?)”或命令系统“remindmetocalljohnwhenigetbackhome(提醒我回到家时给john打电话)”。
技术实现要素:
对于启用语音的系统,用户与系统交互的方式被设计为主要(如果不是专门地)借助于话音输入来进行。因此,潜在地拾取周围环境中发出的包括并非指向系统的那些话语在内的所有话语的系统必须以某些方式来辨别任何给定话语何时是指向该系统而不是例如指向出现在该环境中的个人。一种完成此目的的方式是使用“热词”,根据环境中的用户间的协定,该“热词”被保留为预定的一个或多个词,其被讲出以引起系统的注意。在示例环境中,用于引起系统注意的热词是“okcomputer(好的,计算机)”的词。因此,每当讲出“okcomputer”词时,其都会被麦克风拾取并传送到系统,该系统可以执行语音识别技术或使用音频特征和神经网络来确定是否讲出了热词,如果是这样,等待随后发生的命令或查询。因此,针对系统的话语采用通用格式[hotword][query],其中此示例中的“hotword(热词)”是“okcomputer”,“query(查询)”可以是任何问题、命令、声明或可以是单独或者经由网络与服务器一起由系统进行语音识别、解析和行动的其他请求。
本公开内容讨论基于音频水印的方法来将例如广播的语音或文本到语音的音频的重新记录的语音与实时语音区分开。这种区别使能够在包括重新记录的语音的输入中检测到错误的热词触发,并且允许抑制错误的热词触发。但是,来自用户的实时语音输入将不会被加水印,并且在语音输入中被确定为未加水印的热词可能不会被抑制。水印检测机制对嘈杂和混响的环境具有鲁棒性,并且可以使用基于卷积神经网络的检测器,该检测器被设计为满足占用空间小、兼备内存和计算以及低时延的目标。此方法的可扩展性优势在防止大收视率的电视事件期间在数百万个设备上地同时热词触发方面被突出。
基于热词的触发可能是激活虚拟助理的机制。将实时语音中的热词与记录的语音中的热词(例如,广告)区分开可能是一个问题,因为错误的热词触发会导致虚拟助理的意外激活。此外,在用户将虚拟助理安装在多个设备上的情况下,从一个虚拟助理输出的语音甚至可能包含无意间触发另一个虚拟助理的热词。虚拟助理的意外激活通常可能是不可取的。例如,如果使用虚拟助理来控制家庭自动化设备,则虚拟助理的意外激活可能会导致例如照明、供暖或空调设备的意外打开,从而导致不必要的能源消耗以及给用户带来不便。同样,当设备打开时,它可能会向其他设备传送消息(例如,从其他设备检索信息,向其他设备发信号通知其状态,与搜索引擎通信以执行搜索等),使得意外打开设备还可能导致不必要的网络业务和/或不必要的处理能力的使用,导致不必要的功耗等。此外,意外激活设备(诸如照明、供暖或空调设备)可能会引起设备的不必要的磨损并降低其可靠性。此外,随着虚拟助理控制的设备和设备的范围的增加,虚拟助理的意外激活的可能性也有潜在的危险。同样,虚拟助理的意外激活可能引起对隐私的担忧。
根据本申请中描述的主题的创新方面,一种用于抑制热词的方法包括,由计算设备接收与话语的回放相对应的音频数据的动作;由计算设备提供音频数据作为模型的输入,该模型(i)被配置成确定给定音频数据样本是否包括音频水印,并且(ii)使用均包括音频水印样本的加水印的音频数据样本和均不包括音频水印样本的未加水印的音频数据样本来训练;由计算设备并从模型接收指示是否音频数据包括音频水印的数据,该模型(i)被配置成确定给定音频数据样本是否包括音频水印,并且(ii)使用均包括音频水印的加水印的音频数据样本和均不包括音频水印的未加水印的音频数据样本来训练;以及,基于指示音频数据是否包括音频水印的数据,由计算设备确定继续或者停止对音频数据的处理。
这些和其他实施方式可以均可选地包括下述特征中的一个或者多个。接收指示音频数据是否包括音频水印的数据的动作包括接收指示音频数据包括音频水印的数据。确定继续或停止对音频数据的处理的动作包括基于接收到指示音频数据包括音频水印的数据来确定停止对音频数据的处理。所述动作进一步包括基于确定停止对音频数据的处理,由计算设备停止对音频数据的处理。接收指示音频数据是否包括音频水印的数据的动作包括接收指示音频数据不包括音频水印的数据。确定继续或停止音频数据的处理的动作包括基于接收到指示音频数据不包括音频水印的数据来确定继续对音频数据的处理。
动作进一步包括:基于确定继续对音频数据的处理,由计算设备继续处理音频数据。音频数据的处理的动作包括通过对音频数据执行语音识别来生成话语的转录。音频数据的处理的动作包括确定音频数据是否包括特定的预定义热词的话语。动作进一步包括,在提供音频数据作为模型的输入之前,由计算设备确定音频数据包括特定的预定义热词的话语,该模型(i)被配置成确定给定音频数据样本是否包括音频水印,并且(ii)使用均包括音频水印样本的加水印的音频数据样本和均不包括音频水印样本的未加水印的音频数据样本来训练。动作进一步包括由计算设备确定音频数据包括特定的预定义热词的话语。提供音频数据作为模型的输入的动作是响应于确定音频数据包括特定的预定义热词的话语,该模型(i)被配置成确定给定音频数据样本是否包括音频水印,并且(ii)使用均包括音频水印样本的加水印的音频数据样本和均不包括音频水印样本的未加水印的音频数据样本来训练。
动作进一步包括:由计算设备接收均包括音频水印的加水印的音频数据样本、均不包括音频水印的未加水印的音频数据样本、以及指示每个加水印的音频样本和未加水印的音频样本是否包括音频水印的数据;和由计算设备并使用机器学习来训练模型,该模型使用均包括音频水印的加水印的音频数据样本、均不包括音频水印的未加水印的音频数据样本以及指示每个加水印的音频样本和未加水印的音频样本是否包括音频水印的数据。加水印的音频数据样本的至少一部分均在多个周期性位置处包括音频水印。加水印的音频数据样本中的一个加水印的音频数据样本中的音频水印不同于另一个加水印的音频数据样本中的音频水印。该动作进一步包括,由计算设备确定接收与话语的回放相对应的音频数据的第一时间;由计算设备接收附加计算设备提供与话语的回放相对应的音频数据和指示音频数据是否包括水印的数据以供输出的第二时间;由计算设备确定第一时间与第二时间匹配;以及基于确定第一时间与第二时间匹配,由计算设备使用指示音频数据是否包括水印的数据来更新模型。
此方面的其他实施方式包括记录在计算机存储设备上的相应的系统、装置和计算机程序,均都被配置成执行方法的操作。该方面的其他实施方式包括一种计算机可读介质,该计算机可读介质存储包括可由一个或多个计算机执行的指令的软件,该指令在执行时,使一个或多个计算机执行包括本文所述的任何方法的操作。
可以实现本说明书中描述的主题的特定实施方式,使得实现以下优点中的一个或多个。计算设备可以响应于包括在实时语音中的热词,而不响应于包括在记录的媒体中的热词。这可以减少或防止设备的意外激活,并因此节省电池电量和计算设备的处理能力。当接收到具有音频水印的热词时,通过执行搜索查询的计算设备更少,也可以节省网络带宽。
在本说明书中描述的主题的一种或多种实施方式的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得显而易见。
附图说明
图1图示当检测到记录的媒体中的热词时抑制热词触发的示例系统。
图2是用于在检测到记录的媒体中的热词时抑制热词触发的示例过程的流程图。
图3图示在水印区域中的帧的示例最小掩蔽阈值、能量和绝对听觉阈值。
图4图示(a)主机信号的示例幅度谱图、(b)水印信号的示例幅度谱图、(c)水印信号的示例复制符号矩阵、以及(d)具有符号矩阵的单个实例的复制符号矩阵图案的示例相关性,其中垂直线表示复制之间的水印图案的示例边界。
图5图示用于水印检测器的示例神经网络架构。
图6图示由互相关模式的复制创建的示例匹配滤波器。
图7图示用于未加水印的信号的示例神经网络输出和示例匹配滤波的神经网络输出。
图8图示计算设备和移动计算设备的示例。
在附图中,相似的附图标记始终表示相应的部分。
具体实施方式
图1图示用于在检测到记录的媒体中的“热词”时抑制热词触发的示例系统100。简要地,并且如下面更详细地描述的,计算设备104输出话语108,该话语108包括音频水印116和预定义热词110的话语。计算设备102检测该话语108并且通过使用音频水印标识模型158确定该话语108包括音频水印134。基于包括音频水印134的话语108,计算设备102不响应预定义热词110。
更详细地,计算设备104正在播放鸡块世界(nuggetworld)的媒体内容。在媒体内容期间,媒体内容中的演员说出话语108:“okcomputer,what’sinanugget?(好的,计算机,鸡块中有什么?)”。语音108包括热词110“okcomputer”和查询112,其包括其他词项“what’sinanugget?”。计算设备104通过扬声器输出话语108。附近具有麦克风的任何计算设备都能够检测话语108。
话语108的音频包括语音部分114和音频水印116。媒体内容的创建者可以添加音频水印116,以确保检测到话语108的计算设备不响应热词110。在一些实施方式中,音频水印116可以包括高于或低于人类听力范围的音频频率。例如,音频水印116可以包括大于20khz或小于20hz的频率。在一些实施方式中,音频水印116可以包括在人类听力范围内但是因为其声音类似于噪声所以人类检测不到的音频。例如,音频水印116可以包括8至10khz之间的频率模式。不同频带的强度对于人类来说可能是不可感知的,但是可以被计算设备检测到。如通过频域表示115所图示的,话语108包括比可听部分114更高的频率范围内的音频水印116。
在一些实施方式中,计算设备104可以使用音频水印器120来将水印添加到语音数据118。语音数据118可以是“okcomputer,what’sinanugget?”的记录的话语108。音频水印器120可以以周期性的间隔在语音数据118中添加水印。例如,音频水印器120可以每两百毫秒添加水印。在一些实施方式中,计算设备104可以例如通过执行语音识别来标识语音数据118的包括热词110的部分。音频水印器120可以在热词110的音频上方、热词110之前、和/或在热词110之后添加周期性水印。例如,音频水印120可以以周期性间隔在“okcomputer”的音频上方添加三个(或任何其他数量)水印。
下面关于图3至图7详细讨论用于添加水印120的技术。通常,每个水印120对于每个语音数据样本是不同的。音频水印器120可以每两三百毫秒将音频水印添加到话语108的音频中,并且每两三百毫秒将不同或相同的音频水印添加到话语的音频中,“okcomputer,orderacheesepizza(好吧,计算机,订购芝士披萨)”。音频水印器120可以生成用于每个音频样本的水印,使得水印使音频样本的失真最小化。这可能是重要的,因为音频水印器120可能会添加人类可以检测到的频率范围内的水印。计算设备104可以将加水印的音频样本存储在加水印的语音112中,以供以后由计算设备104输出。
在一些实施方式中,每当计算设备104输出加水印的音频时,计算设备104可以将指示所输出的音频的数据存储在回放日志124中。回放日志124可以包括标识所输出的音频108、输出音频108的日期和时间、计算设备104、计算设备104的位置、音频108的转录以及没有水印的音频108的任何组合的数据。
计算设备102通过麦克风检测话语108。计算设备102可以是能够接收音频的任何类型的设备。例如,计算设备102可以是台式计算机、膝上型计算机、平板计算机、可穿戴计算机、蜂窝电话、智能电话、音乐播放器、电子书阅读器、导航系统、智能扬声器和家庭助理、无线(例如,蓝牙)耳机、助听器、智能手表、智能眼镜、活动跟踪器或任何其他适当的计算设备。如图1中所图示,计算设备102是智能电话。计算设备104可以是能够输出音频的任何设备,例如电视、收音机、音乐播放器、台式计算机、膝上型计算机、平板计算机、可穿戴计算机、蜂窝电话或智能电话。如图1中所图示,计算设备104是电视。
计算设备102的麦克风可以是音频子系统150的一部分。音频子系统150可以包括缓冲器、滤波器、模数转换器,它们均被设计为最初处理通过麦克风接收到的音频。缓冲器可以存储通过麦克风接收并由音频子系统150处理的当前音频。例如,缓冲器存储前五秒的音频数据。
计算设备102包括音频水印标识器152。音频水印标识器152被配置成处理通过麦克风接收和/或存储在缓冲器中的音频,并标识包括在音频中的音频水印。音频水印标识器152可以被配置成将处理后的音频作为输入提供给音频水印标识模型158。音频水印标识模型158可以被配置成接收音频数据并输出指示音频数据是否包括水印的数据。例如,音频水印标识器152可以将通过音频子系统150处理的音频连续地提供给音频水印标识模型158。随着音频水印标识器152提供更多的音频,音频水印标识模型158的精度可以增加。例如,在三百毫秒之后,音频水印标识模型158可能已经接收到包括一个水印的音频。在五百毫秒之后,音频水印标识模型158可能已经接收到包括两个水印的音频。在任意一个音频样本中的水印彼此都相同的实施例中,音频水印标识模型158可以通过处理更多音频来改善其精度。
在一些实施方式中,音频水印标识器152可以被配置成从从音频子系统150接收到的音频中去除任何检测到的水印。在去除水印之后,音频水印标识器152可以将没有水印的音频提供给热词器154和/或语音识别器162。在一些实施方式中,音频水印标识器152可以被配置成在不去除水印的情况下将从音频子系统150接收到的音频传递给热词器154和/或语音识别器162。
热词器154被配置成标识通过麦克风接收和/或存储在缓冲器中的音频中的热词。在一些实施方式中,热词器154可以在计算设备102被通电的任何时间是活动的。热词器154可以连续地分析存储在缓冲器中的音频数据。热词器154计算反映缓冲器中的当前音频数据包括热词的可能性的热词置信度分值。为了计算热词置信度分值,热词器154可以从诸如滤波器组能量或梅尔频率倒谱系数的音频数据中提取音频特征。热词器154可以使用分类窗口来处理这些音频特征,诸如通过使用支持向量机或神经网络。在一些实施方式中,热词器154不执行语音识别以确定热词置信度分值(例如,通过将从接收到的音频中提取的音频特征与一个或多个热词的对应音频特征进行比较,但是不使用提取的音频特征来执行音频数据上的语音识别)。如果热词置信度分值满足热词置信度分值阈值,则热词器154确定音频包括热词。例如,如果热词置信度分值是0.8并且热词置信度分值阈值是0.7,则热词器154确定对应于话语108的音频包括热词110。在一些情况下,该热词可以被称为唤醒词或关注词。
语音识别器162可以执行基于传入音频生成转录的任何类型的过程。例如,语音识别器162可以使用声学模型来标识缓冲器中的音频数据中的音素。语音识别器162可以使用语言模型来确定对应于音素的转录。作为另一示例,语音识别器162可以使用单个模型,其处理缓冲器中的音频数据并输出转录。
在音频水印标识模型158确定音频包括水印的情况下,音频水印标识器152可以停用语音识别器162和/或热词器154。通过停用语音识别器162和/或热词器154,音频水印标识器152可以防止可能触发计算设备102响应于热词110和/或查询112的音频的进一步处理。如图1中所图示,音频水印标识器152将热词器154设置为非活动状态156,并且将语音识别器162设置为非活动状态160。
在一些实施方式中,热词器154的默认状态可以是活动状态,并且语音识别器162的默认状态可以是活动状态。在这种情况下,非活动状态156和非活动状态162可以在预定时间量之后到期。例如,在五秒钟(或另一预定时间量)之后,热词器154和语音识别器162的状态可以返回到活动状态。每当音频水印标识器152检测到音频水印时,五秒周期可以更新。例如,如果话语108的音频115在音频的整个持续时间内包括水印,则可以将热词器154和语音识别器162设置为非活动状态156和非活动状态162,并且可以在计算设备104输出话语108的结束之后的另外五秒钟内保持在该状态中。作为另一示例,如果话语108的音频115在整个热词110的话语中包括水印,则热词器154和语音识别器162可以被设置为非活动状态156和非活动状态162,并且可以在计算设备104输出热词110之后的另外五秒钟内保留在该状态,这将与查询108的输出重叠。
在一些实施方式中,音频水印标识器152可以将数据存储在标识日志164中,该数据指示音频水印标识器152标识水印的日期和时间。例如,音频水印标识器152可以在2019年6月10日下午3:15在话语110的音频中标识水印。标识日志164可以存储标识接收水印的时间和日期、包含水印134的话语的转录、计算设备102、水印134、检测到水印时计算设备102的位置、底层音频132、组合的音频和水印、以及话语108或者水印134之前或者之后的一段时间内检测到的任何音频的任意组合的数据。
在一些实施方式中,音频水印标识器152可以将数据存储在标识日志164中,该数据指示音频水印标识器152没有标识水印并且热词器154标识热词的日期和时间。例如,在2019年6月20日晚上7:15,音频水印标识器152可能没有标识话语的音频中的水印,而热词器154可能标识话语的音频中的热词。标识日志164可以存储标识接收未加水印的音频和热词的时间和日期、话语的转录、计算设备102、计算设备的位置、在热词的话语之前或者之后的一段时间内检测到的音频的任意组合的数据。
在一些实施方式中,热词器154可以在音频水印标识器152之前、之后或与其同时处理从音频子系统150接收到的音频。例如,音频水印标识器152可以确定话语108的音频包括水印,并且同时,热词器154可以确定话语108的音频包括热词。在这种情况下,音频水印标识器152可以将语音识别器162的状态设置为非活动状态160。音频水印标识器152可能不能更新热词器154的状态156。
在一些实施方式中,在音频水印标识器152使用音频水印标识模型158之前,计算设备106生成水印标识模型130并将水印标识模型130提供给计算设备102。计算设备106使用未加水印的语音样本136、音频水印138和使用机器学习的训练器144,以生成音频水印标识模型148。
未加水印的语音样本136可以包括在各种条件下收集的各种语音样本。未加水印的语音样本136可以包括不同用户说出不同的词项、说出相同的词项、说出具有不同类型的背景噪声的词项、以不同的语言说出词项、以不同的口音说出词项、说出不同设备记录的词项等等的音频样本。在一些实施方式中,未加水印的语音样本136均包括热词的话语。在一些实施方式中,仅一些未加水印的语音样本136包括热词的话语。
音频水印器138可以生成用于每个未加水印的语音样本的不同的水印。音频水印器138可以生成用于每个未加水印的语音样本的一个或多个加水印的语音样本140。使用相同的未加水印的语音样本,音频水印器138可以生成包括每两百毫秒水印的加水印的语音样本和包括每三百毫秒水印的另一加水印的语音样本。音频水印器138还可以生成加水印的语音样本,该样本包括仅与热词重叠的水印(如果存在)。音频水印器138还可以生成加水印的语音样本,其包括与热词重叠并且在热词之前的水印。在这种情况下,音频水印器138可以用相同的未加水印的语音样本来制作四个不同的加水印的语音样本。音频水印器138还可以制作多于或少于四个。在一些情况下,音频水印器138可以类似于音频水印器120操作。
训练器144使用包括未加水印的语音样本136和加水印的语音样本140的机器学习和训练数据来生成音频水印标识模型148。因为未加水印的语音样本136和加水印的语音样本140被标记为包括水印或不包括水印,则训练器148可以使用训练数据,该训练数据包括未加水印的语音样本136和指示每个样本不包括水印的标记以及加水印的语音样本140和指示每个样本包括水印的标记。训练器144使用机器学习来生成音频水印标识模型148,以能够接收音频样本并输出音频样本是否包括水印。
计算设备106可以访问音频水印标识模型148,并将模型128提供给计算设备102以用于处理接收到的音频数据。计算设备102可以将模型128存储在音频水印标识模型158中。
计算设备106可以基于回放日志142和标识日志146来更新音频水印标识模型148。回放日志142可以包括诸如从计算设备104接收并存储在回放日志124中的回放数据126的数据。回放日志142可以包括来自多个计算设备的已经输出加水印的音频的回放数据。标识日志146可以包括诸如从计算设备102接收并存储在标识日志164中的标识数据130的数据。标识日志146可以包括来自多个计算设备的附加标识数据,该附加标识数据被配置成标识音频水印并阻止对加水印的音频中包括的任何命令或查询的执行。
训练器144可以比较回放日志142和标识日志146,以标识匹配条目,该匹配条目指示计算设备输出加水印的音频,而另一个计算设备标识加水印的音频中的水印。训练器144还可以在标识日志146和回放日志142中标识水印标识错误。当标识日志146指示计算设备标识水印而回放日志142未指示加水印的音频的输出时,第一类型的水印标识错误可能发生。当回放日志142指示加水印的音频的输出而标识日志146指示在加水印的音频附近的计算设备没有标识水印时,第二类型的水印标识错误可能发生。
训练器144可以更新错误,并使用相应的音频数据作为附加训练数据来更新音频水印标识模型148。训练器144还可以使用其中计算设备已正确标识水印的音频来更新音频水印标识模型148。训练器144可以将计算设备输出的音频和计算设备检测到的音频都用作训练数据。训练器144可以使用机器学习和存储在回放日志142和标识日志146中的音频数据来更新音频水印标识模型148。训练器144可以使用回放日志142和标识日志146中提供的水印标签以及根据上述错误标识技术中校正的标签作为机器学习训练过程的一部分。
在一些实施方式中,计算设备102和数个其他计算设备可以被配置成将音频115传送到服务器,以由在服务器上运行的基于服务器的热词器和/或基于服务器的语音识别器进行处理。音频水印标识器152可以指示音频115不包括音频水印。基于该确定,计算设备102可以将音频传送到服务器,以由基于服务器的热词器和/或基于服务器的语音识别器进行进一步处理。数个其他计算设备的音频水印标识器也可以指示音频115不包括音频水印。基于那些确定,其他计算设备中的每一个可以将它们相应的音频传送到服务器,以由基于服务器的热词器和/或基于服务器的语音识别器进行进一步处理。服务器可以确定来自每个计算设备的音频是否包括热词和/或生成音频的转录并将结果传送回到每个计算设备。
在一些实施方式中,服务器可以接收指示用于每个水印决定的水印置信度分值的数据。服务器可以基于计算设备102和其他计算设备的位置、所接收到的音频的特性、在相似的时间接收每个音频部分、或者任何其它相似指标确定计算设备102和其他计算设备所接收的音频来自同一源。在一些情况下,每个水印置信度分值可以在特定范围内,该特定范围包括在该范围的一端的水印置信度分值阈值和可以与水印置信度分值阈值相差百分比的另一置信度分值,诸如少于百分之五。例如,范围可以是0.80至0.76的水印置信度分值阈值。在其他情况下,范围的另一端可以是与水印置信度分值阈值的固定距离,诸如0.05。例如,范围可以是0.80至0.75的水印置信度分值阈值。
如果服务器确定每个水印置信度分值在接近水印置信度分值阈值但不满足其的范围内,则服务器可以确定水印置信度分值阈值应被调整。在这种情况下,服务器可以将水印置信度分值阈值调整为范围的下限。在一些实施方式中,服务器可以通过将从每个计算设备接收到的音频包括在水印语音样本140中来更新水印语音样本140。训练器144可以使用机器学习和更新的水印语音样本140来更新音频水印标识模型148。
虽然图1图示执行上述不同功能的三个不同计算设备,一个或多个计算设备的任何组合可以执行功能的任何组合。例如,计算设备102可以训练音频水印标识模型148,而不是单独的计算设备106训练音频水印标识模型148。
图2图示用于在检测到记录的媒体中的热词时抑制热词触发的示例过程200。通常,过程200处理接收到的音频以确定该音频是否包括音频水印。如果音频包括音频水印,则过程200可以抑制音频的进一步处理。如果音频不包括音频水印,则过程200继续处理音频并执行音频中包括的任何查询或命令。将过程200描述为由包括一个或多个计算机(例如,如图1中所示的计算设备102、104和/或106)的计算机系统执行。
系统接收与话语的回放相对应的音频数据(210)。例如,电视可能正在播放媒体内容,而媒体内容中的演员可能说出:“okcomputer,turnonthelights(好吧,计算机,打开灯)”。该系统包括麦克风,并且麦克风检测包括演员的话语的媒体内容的音频。
系统提供音频数据作为模型的输入,该模型(i)被配置成确定给定音频数据样本是否包括音频水印,并且(ii)使用均包括音频水印样本的加水印的音频数据样本和均不包括音频水印样本的未加水印的音频数据样本来训练(220)。在一些实施方式中,系统可以确定音频数据包括热词。基于检测到热词,系统提供音频数据作为模型的输入。例如,系统可以确定音频数据包括“okcomputer”。基于检测到“okcomputer”,系统将音频数据提供给模型。该系统可以提供音频数据的包括热词和在热词之后接收到的音频的部分。在一些情况下,系统可以提供音频的来自热词之前的一部分。
在一些实施方式中,系统可以分析音频数据以确定音频数据是否包括热词。可以在提供音频数据作为模型的输入之前或之后发生分析。在一些实施方式中,系统可以使用机器学习和均包括音频水印的加水印的音频数据样本、均不包括音频水印的未加水印的音频数据样本以及指示每个加水印的音频样本和未加水印的音频样本包括音频水印的数据来训练模型。该系统可以训练模型以输出指示到模型的音频输入是否包括水印的数据。
在一些实施方式中,不同的加水印的音频信号可以包括彼此不同的水印(任何一个音频样本中的水印可以全部相同,但是一个音频信号中的水印不同于另一音频信号中的水印)。系统可以生成用于每个音频信号的不同的水印,以最小化音频信号中的失真。在一些实施方式中,系统可以将水印以周期性的间隔放置在音频信号中。例如,系统可以每200毫秒放置水印。在一些实施方式中,系统可以将水印放置在包括热词和/或在热词之前的时间段的音频上。
系统从模型接收指示音频数据是否包括音频水印的数据,该模型(i)被配置成确定给定音频数据样本是否包括音频水印,并且(ii)使用包括音频水印的加水印的音频数据样本和不包括音频水印的未加水印的音频数据样本来训练(s230)。该系统可以接收音频数据包括水印的指示,或者接收音频数据不包括水印的指示。
基于指示音频数据是否包括音频水印的数据,系统继续或停止对音频数据的处理(240)。在一些实施方式中,如果音频数据包括音频水印,则系统可以停止对音频数据的处理。在一些实施方式中,如果音频数据不包括音频水印,则系统可以继续对音频数据的处理。在一些实施方式中,对音频数据的处理可以包括对音频数据执行语音识别和/或确定音频数据是否包括热词。在一些实施方式中,该处理可以包括执行音频数据中包括的查询或命令。
在一些实施方式中,系统将系统接收音频数据的时间和日期记入日志。系统可以将该时间和日期与从计算设备接收到的输出音频数据的时间和日期进行比较。如果系统确定接收到音频数据的日期和时间与输出音频数据的日期和时间相匹配,则系统可以使用音频数据作为附加训练数据来更新模型。该系统可以在确定音频数据是否包括水印时标识该模型是否正确,并且当添加到训练数据时确保音频数据包括正确的水印标签。
更详细地,可以为用户执行任务的软件代理通常被称为“虚拟助理”。例如,虚拟助理可以通过来自用户的话音输入来致动-例如,可以被编程以识别一个或多个触发词,当用户讲出所述触发词时,该触发词使虚拟助理被激活并执行与已经被讲出的触发词相关联的任务。这样的触发词通常被称为“热词”。可以在例如用户的计算机移动电话或其他用户设备上提供虚拟助理。可替代地,虚拟助理可以集成到另一台设备中,诸如所谓的“智能扬声器”(一种具有集成虚拟助理的无线扬声器,该虚拟扬声器在一个或多个热词的帮助下提供交互式操作和免提激活)。
随着智能扬声器的广泛采用,出现附加问题。在具有大量观众的事件(例如,吸引超过1亿观众的体育赛事)期间,具有热词的广告可能导致同时触发虚拟助理。由于收视率高,对语音识别服务器的同时查询可能会显著增加,这可能导致拒绝服务(dos)。
用于过滤错误的热词的两种可能的机制是基于以下的机制:(1)音频指纹,其中将来自查询音频的指纹与来自已知音频(如广告)的指纹数据库进行检查,以过滤出错误的触发,并且(2)音频水印,其中音频由发布者加水印,并且为水印检查虚拟助理记录的查询进行过滤。
本公开描述了使用卷积神经网络的低时延、占用空间小的水印检测器的设计。训练此水印检测器以使其在嘈杂和混响环境中更健壮,而这种环境在感兴趣的场景中可能是频繁的。
音频水印可用于版权保护和第二屏应用。在版权保护中,水印检测通常不需要对时延敏感,因为整个音频信号都可用于检测。在第二屏幕应用的情况下,由于高时延水印检测而引入的延迟可能是可容忍的。与这两种场景不同,虚拟助理中的水印检测对时延非常敏感。
在涉及水印检测的已知应用中,构成水印的嵌入消息通常事先是未知的,并且水印检测器不得不在其能够确定消息序列是否包括水印之前解码消息序列,并且如果是,则确定水印。但是,在本文所述的一些应用中,水印检测器可能正在检测解码器/水印检测器确切已知的水印图案。就是说,重新记录的语音内容的发布者或提供商可以用水印对其加水印,并且可以使水印的细节可用于例如虚拟助理的提供商和/或包括虚拟助理的设备的提供商。类似地,虚拟助理的提供商可以安排从虚拟助理输出的语音提供有水印,并使水印的细节可用。结果,一旦在接收到的消息中已经检测到水印,就知道接收到的消息不是来自用户的实时语音输入,并且可以抑制由于接收到的消息中的任何热词而导致的虚拟助理的激活而不需要等待直到已经接收到并处理整个消息为止。这提供时延的减少。
一些用于热词抑制的实施方式利用音频指纹识别方法。该方法需要已知音频的指纹数据库。因为在设备上维护此数据库是重大的,所以在此类解决方案的设备上部署是不可行的。但是,音频指纹识别方法的显著优点是它可能不需要修改音频发布过程。因此,它甚至可以应对音频发布者不是合作者的对手情况。
本公开描述了基于水印的热词抑制机制。热词抑制机制可以使用设备上部署,这会带来内存和计算占用空间的设计约束。另外,存在对时延的约束,以避免对用户体验的影响。
基于水印的方法可能需要修改音频发布过程以添加水印。因此,它们有时只能用于检测合作者发布的音频。但是,它们可能不需要维护指纹数据库。此特征能够实现数个优点。
第一优点可能是设备上部署的可行性。在当可以同时触发数个虚拟助理时收视率高的事件期间,这可能是优点。基于服务器的用于检测这些错误触发的解决方案可能会由于同时触发的规模而导致拒绝服务。第二优点可以是检测合作者发布的未知音频,例如,文本到语音(tts)合成器输出,其中发布者可以是合作的,但是该音频不会提前已知。第三优点可以是可伸缩性。诸如在线平台上的音频/视频发布者的实体可以对其音频加水印,以避免触发虚拟助理。在一些实施方式中,这些平台托管数百万小时的内容,使用基于音频指纹识别的方法实际上无法处理这些内容。
在一些实施方式中,本文描述的基于水印的方法可以与基于音频指纹识别的方法相结合,这可以具有应对对手代理的能力。
以下描述描述水印嵌入器和水印检测器。
水印嵌入器可以基于fft域中基于扩频的水印。水印嵌入器可以使用心理声学模型来估计用于对水印信号的幅度进行成形的最小掩蔽(masking)阈值(mmt)。
为了总结该技术,基于最小能量准则选择适合于水印添加的主机信号区域。对于这些区域中的每个主机信号帧(2ms窗口-12.5ms跳变),估计离散傅里叶变换(dft)系数。这些dft系数用于使用心理声学模型估计最小掩蔽阈值(mmt)。mmt用于对水印信号的帧的幅度谱图进行成形。图3呈现所估计的mmt以及主机信号能量和绝对听觉阈值。主机信号的相位可以用于水印信号,并且dft系数的符号根据消息有效载荷来确定。可以使用多次加扰将消息比特有效载荷散布在大块帧上。在一些实施方式中,系统可能正在检测查询是否被加水印并且可能不必传送任何有效载荷。因此,系统可以在大块帧(例如,16帧或200ms)上随机选择符号矩阵,并跨水印区域重复该符号矩阵。可以利用符号矩阵的这种重复来对水印检测器输出进行后处理并改善检测性能。单个水印帧的重叠添加可以生成水印信号。图2的子图(a)和(b)表示主机信号和水印信号的幅度谱,并且子图(c)表示符号矩阵。垂直线表示矩阵的两次复制之间的边界。
在将水印信号缩放了因子(例如,α∈[0,1])之后,可以在时域中将水印信号添加到主机信号,以进一步确保水印的不可听性。在一些实施方式中,α使用如音频质量的感知评估(peaq)的客观评估度量来迭代地确定。在一些实施方式中,系统可以使用保守的缩放因子(例如,α∈{0.1,0.2,0.3,0.4,0.5}),并在这些缩放因子中的每一个上评估检测性能。
在一些实施方式中,水印检测器的设计要求可能是设备上部署,这对模型的内存占用空间及其计算复杂度都施加了显著约束。下面的描述描述了用于设备上关键字检测的基于卷积神经网络的模型架构。在一些实施方式中,系统可以使用时间卷积神经网络。
在一些实施方式中,训练神经网络以估计嵌入式水印符号矩阵(图4,子图(c))的互相关,其可以是相同的200ms模式的复制,其具有200ms模式的一个实例。图4中的子图(d)示出互相关。互相关可以对关于每个符号矩阵块的开始的信息进行编码,并且可以在主机信号内的水印信号的整个持续时间内不为零。
系统可以使用多任务损失函数来训练神经网络。主要任务可以是对地面真值(groundtruth)互相关的估计,而辅助任务可以是对能量扰动模式和/或水印幅度谱的估计。可以在地面真值和网络输出之间计算均方误差。在用正则化常数缩放辅助损失后,可以对一些或全部损失插值化。在一些实施方式中,将每个网络输出限定为仅覆盖相应地面真值的动态范围可以改善性能。
在一些实施方式中,系统可以对网络输出进行后处理。在一些实施方式中,水印可以不具有有效载荷消息,并且在整个水印区域中复制单个符号矩阵。这可能导致其是周期的互相关模式(图4,子图(d))。可以利用此方面来消除网络输出中的伪峰。在一些实施方式中并且为了改善性能,系统可以使用通过在隔离感兴趣的频率的带通滤波器上复制互相关模式(参见图6)而创建的匹配滤波器。图7比较在匹配滤波之前和之后针对未加水印的信号生成的网络输出。在一些实施方式中,不具有周期性的伪峰可以被显著地抑制。地面真值705可以大约为0.0(例如,在-0.01和0.01之间),并且可以比网络输出710和匹配滤波后的网络输出720更紧密地跟踪x轴。网络输出710可以相对于x轴比地面真值705和匹配滤波的网络输出720变化更大。匹配滤波后的网络输出720可以比网络输出710更紧密地跟踪x轴,并且可能不像地面真值705那样更紧密地跟踪x轴。匹配滤波后的网络输出720可以比网络输出710更平滑。匹配滤波后的网络输出720可以比网络输出710保持在小范围内。例如,匹配滤波后的网络输出720可以停留在-0.15和0.15之间。网络输出710可以停留在-0.30和0.60之间。
一旦已经训练了神经网络,就可以通过将体现神经网络的模型应用于音频数据样本,将其用于确定给定音频数据样本是否包括音频水印的方法中。该方法可以包括,确定反映音频数据包括音频水印的可能性的置信度分值;将反映音频数据包括音频水印的可能性的置信度分值与置信度分值阈值进行比较;以及基于将反映音频数据包括音频水印的可能性的置信度分值与置信度分值阈值进行比较,确定是否执行对音频数据的附加处理。
在实施例中,该方法包括:基于将反映音频数据包括音频水印的可能性的置信度分值与置信度分值阈值进行比较,确定置信度分值满足置信度分值阈值,其中确定是否执行对音频数据的附加处理包括确定抑制执行对音频数据的附加处理。在实施例中,该方法包括:基于将反映话语包括音频水印的可能性的置信度分值与置信度分值阈值进行比较,确定置信度分值不满足置信度分值阈值,其中确定是否执行对音频数据的附加处理包括确定执行对音频数据的附加处理。在实施例中,该方法包括:从用户接收确认执行对音频数据的附加处理的数据;和基于接收到确认执行对音频数据的附加处理的数据,更新模型。在实施例中,对音频数据的附加处理包括基于音频数据的转录执行动作;或确定音频数据是否包括特定的预定义热词。在实施例中,该方法包括:在向音频数据应用模型之前,确定音频数据包括特定的预定义热词,该模型(i)被配置成确定给定音频数据样本是否包括音频水印,并且(ii)使用包括音频水印的加水印的音频数据样本和不包括音频水印的未加水印的音频数据样本来训练。在实施例中,该方法包括:确定音频数据包括特定的预定义热词,其中向音频数据应用模型是响应于确定音频数据包括特定的预定义热词,该模型(i)被配置成确定给定音频数据样本是否包括音频水印,并且(ii)使用包括音频水印的加水印的音频数据样本和不包括音频水印的未加水印的音频数据样本来训练。在实施例中,该方法包括:接收包括音频水印的加水印的音频数据样本和不包括音频水印的未加水印的音频数据样本;以及使用机器学习训练模型,该模型使用包括音频水印的加水印的音频数据样本和不包含音频水印的未加水印的音频数据样本。在实施例中,该方法包括:加水印的音频数据样本的至少一部分在多个周期性位置处包括音频水印。
图8示出能够用于实现这里描述的技术的计算设备800和移动计算设备850的示例。计算设备800旨在代表各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。移动计算设备850旨在代表各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。此处示出的组件、它们的连接和关系以及它们的功能仅是示例,并不意味着限制。
计算设备800包括处理器802、存储器804、存储设备806、连接到存储器804和多个高速扩展端口810的高速接口808以及连接到该低速扩展接口814和存储设备806的低速接口812。处理器802、存储器804、存储设备806、高速接口808、高速扩展端口810和低速接口812中的每一个通过各种总线互连,并且可以安装在通用主板上或以其他合适的方式安装。处理器802可以处理用于在计算设备800内执行的指令,包括存储在存储器804中或存储在存储设备806上的指令,以在诸如耦合到高速接口808的显示器816的外部输入/输出设备上显示用于图形用户界面(gui)的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和各种类型的存储器。而且,可以连接多个计算设备,每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器804在计算设备800内存储信息。在一些实施方式中,存储器804是易失性存储单元或者单元。在一些实施方式中,存储器804是非易失性存储单元或者单元。存储器804也可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
存储设备806能够为计算设备800提供大容量存储。在一些实施方式中,存储设备806可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、磁带设备、闪存或其他类似的固态存储设备或设备阵列,包括存储区域网络或其他配置中的设备。指令可以存储在信息载体中。当指令由一个或多个处理设备(例如,处理器802)执行时,执行一种或多种方法,诸如上述那些方法。指令还可以由诸如计算机可读或机器可读介质的一个或多个存储设备(例如,存储器804、存储设备806或处理器802上的存储器)存储。
高速接口808管理用于计算设备800的带宽密集型操作,而低速接口412管理较低的带宽密集型操作。这种功能分配仅是示例。在一些实施方式中,高速接口808被耦合到存储器804、显示器816(例如,通过图形处理器或加速器),并且被耦合到可以接受各种扩展卡(未示出)的高速扩展端口810。在实施方式中,低速接口812被耦合到存储设备806和低速扩展端口814。低速扩展端口814可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网),可以例如通过网络适配器被耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或诸如交换机或路由器的网络设备。
如附图中所示,可以以多种不同形式来实现计算设备800。例如,其可以被实现为标准服务器820,或者多次被实现为一组这样的服务器。另外,其可以在诸如膝上型计算机822的个人计算机中实现。其也可以作为机架服务器系统824的一部分实现。可替选地,来自计算设备800的组件可以与诸如移动计算设备850的移动设备(未示出)中的其他组件组合。每个这样的设备可以包含计算设备800和移动计算设备850中的一个或多个,并且整个系统可以由彼此通信的多个计算设备组成。
移动计算设备850包括处理器852、存储器864、诸如显示器854的输入/输出设备、通信接口866和收发器868、以及其他组件。移动计算设备850还可以被设置有存储设备,诸如微驱动器或其他设备,以提供附加的存储。处理器852、存储器864、显示器854、通信接口866和收发器868中的每一个使用各种总线互连,并且数个组件可以安装在通用主板上或以适当的其他方式安装。
处理器852可以在移动计算设备850内执行指令,包括存储在存储器864中的指令。处理器852可以被实现为包括分离的和多个模拟和数字处理器的芯片的芯片组。处理器852可以提供例如用于移动计算设备850的其他组件的协调,诸如对用户接口的控制、由移动计算设备850运行的应用以及由移动计算设备850进行的无线通信。
处理器852可以通过控制接口858和耦合到显示器854的显示接口856与用户通信。显示器854可以是例如tft(薄膜晶体管液晶显示器)显示器或oled(有机发光二极管)显示器或其他合适的显示技术。显示接口856可以包括用于驱动显示器854以向用户呈现图形和其他信息的适当电路。控制接口858可以从用户接收命令并且将其进行转换以提交给处理器852。另外,外部接口862可以提供与处理器852的通信,使得实现移动计算设备850与其他设备的近距离通信。例如,外部接口862可以在一些实施方式中提供用于有线通信,或者在其他实施方式中提供用于无线通信,并且也可以使用多个接口。
存储器864在移动计算设备850内存储信息。存储器864可以被实现为计算机可读介质或者媒介、易失性存储单元或单元或者非易失性存储单元或者单元中的一个或多个。还可以提供扩展存储器874,并通过扩展接口872被连接到移动计算设备850,该扩展接口872可以包括例如simm(单列存储模块)卡接口。扩展存储器874可以为移动计算设备850提供额外的存储空间,或者还可以为移动计算设备850存储应用或其他信息。具体地,扩展存储器874可以包括用于执行或补充上述过程的指令,并且还包括安全信息。因此,例如,扩展存储器874可以被设置为用于移动计算设备850的安全模块,并且可以用允许安全使用移动计算设备850的指令来编程。此外,可以经由simm卡安全地提供安全应用,以及其他信息,例如以不可入侵的方式在simm卡上放置标识信息。
存储器可包括例如闪存和/或nvram存储器(非易失性随机存取存储器),如下面所讨论的。在一些实施方式中,指令被存储在信息载体中,当该指令被一个或多个处理设备(例如,处理器852)执行时,执行一种或多种方法,诸如上述那些方法。指令也可以由一个或多个存储设备存储,诸如一个或多个计算机或机器可读介质(例如,存储器864、扩展存储器874或处理器852上的存储器)。在一些实施方式中,可以例如通过收发器868或外部接口862以传播的信号来接收指令。
移动计算设备850可以通过通信接口866无线通信,该通信接口在必要时可以包括数字信号处理电路。通信接口866可以在各种模式或协议下提供通信,诸如gsm语音呼叫(全球移动通信系统)、sms(短消息服务)、ems(增强消息服务)或mms消息(多媒体消息服务)、cdma(码分多址)、tdma(时分多址)、pdc(个人数字蜂窝)、wcdma(宽带码分多址)、cdma2000或gprs(通用分组无线电业务)等。例如,可以使用射频通过收发器868发生这种通信。另外,可以发生短距离通信,诸如使用蓝牙、wifi或其他这样的收发器(未示出)。另外,gps(全球定位系统)接收器模块870可以向移动计算设备850提供附加的导航和与位置有关的无线数据,其可以适当地由在移动计算设备850上运行的应用程序使用。
移动计算设备850还可以使用音频编解码器860进行听觉通信,该音频编解码器860可以从用户接收语音信息并将其转换为可用的数字信息。诸如通过扬声器,例如,在移动计算设备850的听筒中,音频编解码器860可以类似地为用户生成可听见的声音。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如语音消息、音乐文件等),并且还可以包含由在移动计算设备850上运行的应用程序生成的声音。
移动计算设备850可以以多种不同的形式实现,如附图中所示。例如,其可以被实现为蜂窝电话880。其也可以被实现为智能电话882、个人数字助理或其他类似的移动设备的一部分。
这里描述的系统和技术的各种实施方式可以以数字电子电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或其组合来实现。这些各种实现方式可以包括在一个或多个计算机程序中的实现方式,该程序可以在包括至少一个可编程处理器的可编程系统上执行和/或解释,可以是专用的或通用的,被耦合以从中接收数据和指令,并且向存储系统、至少一个输入设备和至少一个输出设备传输数据和指令。
这些计算机程序(也称为程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且可以以高级过程和/或面向对象的编程语言和/或以汇编/机器语言实现。如本文所使用的,术语机器可读介质、计算机可读介质是指用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、装置和/或设备,例如,磁盘、光盘、存储器、可编程逻辑设备(pld),包括接收机器指令作为机器可读信号的机器可读介质。术语机器可读信号是指用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,此处描述的系统和技术可以在具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或lcd(液晶显示器)监视器)以及通过其用户能够将输入提供给计算机的键盘和指示设备(例如,鼠标或轨迹球)的计算机上实现。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
能够在计算系统中实现这里描述的系统和技术,所述计算系统包括后端组件(例如,作为数据服务器),或包括中间件组件(诸如应用服务器),或包括前端组件(例如,具有通过其用户能够与这里描述的系统和技术的实现方式交互的图形用户界面或web浏览器的客户端计算机),或者这种后端、中间件或前端组件的任何组合。系统的组件能够通过(例如,通信网络)的数字数据通信的任何形式或介质来互连。通信网络的示例包括局域网(lan)、广域网(wan)和互联网。
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
尽管上面已经详细描述了一些实施方式,但是其他修改也是可能的。例如,在应用中描述的逻辑流程不需要所示的特定顺序或顺序次序来实现期望的结果。另外,可以从所描述的流程中提供其他动作,或者可以消除动作,并且可以将其他组件添加到所描述的系统或从所描述的系统移除。因此,其他实施方式在所附权利要求的范围内。而且,在任何其它方面或者实施方式中应用在一个方面或者实施方式中描述的特征。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除