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

生成针对用户的语音模型的制作方法

2022-06-25 12:54:08 来源:中国专利 TAG:


1.本公开总体涉及消息收发系统和方法,包括但不限于用于生成语音模型以将文本输入转换为对应于用户语音的合成音频输出的系统和方法。


背景技术:

2.在消息收发技术中,对于很大一部分人来说,异步文本消息收发可能是一种不可或缺的通信方法。然而,在免提或免视设置下的消息收发对于接收消息的用户来说可能是受限的、危险的或干扰的。接收消息的用户与消息收发系统之间的交互可以包括多轮交互以标识消息发送者。例如,一经接收到消息,用户就可能需要多次与消息收发系统(例如,移动设备、手持设备)交互,以标识发送相应消息的发送者或人。在诸如群聊的情况下,由于接收消息的用户与消息收发系统来回执行以标识或区分群聊中的不同潜在发送者,这会产生时间延迟和认知延迟。因此,当用户的注意力从当前活动(例如,驾驶汽车)转移到与消息收发系统交互时,这样的交互可能干扰用户参与的当前活动或造成危险的情况。


技术实现要素:

3.这里提供了用于生成针对用户的语音模型(例如,语音化身)的设备、系统和方法。语音模型可用于将文本输入(例如,文本消息)转换为与发送相应文本输入的人的语音相对应(例如,类似、听起来像)的合成音频输出。语音模型可以创建一个或多个用户语音的文本到语音数字克隆,以在回读相应消息受限或不可能的情况或环境中回读和朗读消息,从而在接收消息的人和发送消息的人之间提供个人化和熟悉的交互。例如,可以使用由相应的用户提供的音频样本来生成并进一步训练语音模型,以获得语音特征并训练神经网络模型,使得由语音模型生成的音频输出类似于相应的用户的语音。语音模型可以由具有编码器-解码器架构的设备来生成。编码器-解码器架构可以允许设备接收和处理来自用户的音频样本,将一个或多个说话者嵌入应用于音频样本,并生成类似于相应的针对用户的语音模型。语音模型可以生成针对用户的唯一语音化身,以部分地基于用户的语音化身的声音来标识相应的用户,以向从用户接收消息的人呈现对应于消息的音频输出,从而减少用于标识消息的发送者的通信数量,和/或消除用于标识消息的发送者的前导。
4.本发明的各方面包括根据本文所附的独立权利要求的方法、设备和非瞬态计算机可读介质。有利的实施例可以包括从属权利要求的特征。
5.在至少一个方面,提供了一种方法。该方法可以包括由包括神经网络的编码器接收来自用户的多个音频样本。该方法可以包括由解码器从编码器接收值序列。该方法可以包括由解码器使用值序列以及用户的一个或多个说话者嵌入来建立对应于用户的多个音频样本的语音模型。
6.在一些实施例中,该方法可以包括将语音模型建立为机器学习模型,并且使用语音模型和来自用户的输入文本生成针对用户的合成音频输出。该方法可以包括:从用户接收输入文本;标识针对用户的语音模型和用户的一个或多个说话者嵌入中的至少一个说话
者嵌入;以及使用语音模型和一个或多个说话者嵌入中的至少一个说话者嵌入,将输入文本转换为合成音频输出以对用户的语音建模。该方法可以包括由解码器使用一个或多个说话者嵌入和来自用户的一个或多个后续的音频样本来训练针对用户的语音模型。该方法可以包括由解码器将用户的一个或多个说话者嵌入应用于值序列以生成调节信号,以及由解码器将调节信号提供给多个残差层以建立语音模型。
7.该方法可以包括由编码器经由编码器的神经网络的至少一个卷积块的至少一个卷积层来修改多个音频样本的采样率。该方法可以包括将来自用户的一个或多个后续音频样本提供给解码器的神经网络的第一残差层和第二残差层,以及将一个或多个说话者嵌入提供给解码器的神经网络的第一残差层和第二残差层,其中来自第一残差层的输出被提供给第二残差层的输入以训练针对用户的语音模型。在实施例中,解码器可以包括神经网络,该神经网络包括至少两个完全连接的残差层和归一化函数。该方法可以包括由解码器将归一化函数应用于解码器的神经网络的多个残差层的输出以建立语音模型。
8.在至少一个方面,提供了一种设备。该设备可以被配置为实现本公开中描述的方法的任何方面和实现以及所有方面和实现。该设备可以包括使用至少一个处理器实现的编码器。编码器可以被配置为从用户接收多个音频样本,并将多个音频样本提供给编码器的神经网络,以生成对应于来自神经网络的一个或多个卷积层的输出的值序列。该设备可以包括使用该至少一个处理器实现的解码器。解码器可以被配置为从编码器接收值序列,并且使用值序列以及用户的一个或多个说话者嵌入来建立对应于用户的多个音频样本的语音模型。
9.该设备还可以被配置为将语音模型建立为机器学习模型,并且使用语音模型和来自用户的输入文本生成针对用户的合成音频输出。该设备还可以被配置为从用户接收输入文本,标识针对用户的语音模型以及用户的一个或多个说话者嵌入,并且使用语音模型和一个或多个说话者嵌入将输入文本转换为合成音频输出以对用户的语音建模。该设备还可以被配置为使用一个或多个说话者嵌入和来自用户的一个或多个后续的音频样本来训练针对用户的语音模型。
10.在一些实施例中,编码器还可以被配置为将用户的一个或多个说话者嵌入应用于值序列以生成调节信号并将调节信号提供给多个残差层以建立语音模型。编码器还可以被配置为经由编码器的神经网络的至少一个卷积块的至少一个卷积层来修改多个音频样本的采样率。该设备还可以被配置为将来自用户的一个或多个后续的音频样本提供给解码器的神经网络的第一残差层和第二残差层,并将一个或多个说话者嵌入提供给解码器的神经网络的第一残差层和第二残差层。在某些实施例中,可以将来自第一残差层的输出提供给第二残差层的输入,以训练针对用户的语音模型。解码器可以包括神经网络,该神经网络包括至少两个完全连接的残差层和归一化函数。
11.在至少一个方面,提供了一种存储指令的非瞬态计算机可读介质。非瞬态计算机可读介质可以存储指令,以在由一个或多个处理器执行时,实现本公开中描述的方法的任何和所有方面和实现。指令在由一个或多个处理器执行时,可以使一个或多个处理器从用户接收多个音频样本。指令在由一个或多个处理器执行时,可以使一个或多个处理器将多个音频样本提供给神经网络,以生成对应于来自神经网络的一个或多个卷积层的输出的值序列。指令在由一个或多个处理器执行时,可以使一个或多个处理器使用值序列以及用户
的一个或多个说话者嵌入来建立对应于用户的多个音频样本的语音模型。
12.在实施例中,指令在由一个或多个处理器执行时,可以使一个或多个处理器将语音模型建立为机器学习模型。指令在由一个或多个处理器执行时,可以使一个或多个处理器使用语音模型和来自用户的文本输入来生成针对用户的合成音频输出。指令在由一个或多个处理器执行时,可以使一个或多个处理器接收来自用户的输入文本。指令在由一个或多个处理器执行时,可以使一个或多个处理器标识针对用户的语音模型以及用户的一个或多个说话者嵌入中的至少一个说话者嵌入。指令在由一个或多个处理器执行时,可以使一个或多个处理器使用语音模型和一个或多个说话者嵌入中的至少一个说话者嵌入将输入文本转换为合成音频输出,以对用户的语音进行建模。
13.这些以及其他方面和实现在下面详细讨论。应当理解,在技术上适用于本公开的任何和所有方面和实现的情况下,本文描述为适合并入到特定方面的任何特征旨在是可概括的。前述信息和下面的详细描述包括各种方面和实现的说明性示例,并提供用于理解所要求保护的方面和实现的性质和特征的概述或框架。这些附图提供了对各个方面和实现的说明和进一步的理解,并被并入本说明书并构成本说明书的一部分。
附图说明
14.附图并不旨在按比例绘制。不同附图中相同的附图标记和名称表示相同的元件。为清楚起见,并不是每个组件都可以在每个附图中进行标记。在附图中:
15.图1是根据本公开的示例实现的用于生成针对用户的语音模型的系统的实施例的框图。
16.图2a-2c包括示出根据本公开的示例实现生成针对用户的语音模型的过程或方法的流程图。
17.图3是根据本公开的示例实现的计算环境的框图。
具体实施方式
18.在转到详细说明某些实施例的附图之前,应当理解,本公开不限于说明书中所阐述或附图中所示出的细节或方法。还应理解,这里使用的术语仅用于描述目的,不应被视为限制。
19.为了阅读下面对本发明的各种实施例的描述,说明书的各部分及其各自内容的以下描述可能是有帮助的:
[0020]-章节a描述了用于生成针对用户的语音模型的设备、系统和方法的实施例。
[0021]-章节b描述了计算系统的实施例。
[0022]
a.生成针对用户的语音模型
[0023]
本公开的主题涉及生成针对用户的语音化身(avatar)(例如,语音模型),该语音化身是用户语音的克隆、模仿或类似。语音化身可以被用于通过类似于用户声音的音频输出来朗读、呈现或回读消息(例如,由用户生成的文本或语音到文本)。可以基于从用户接收到的样本或录音来生成语音化身(例如,用于获得语音特征以训练对应于语音化身的神经网络模型),使得语音化身类似于相应用户的语音。在消息收发技术中,免提或免视设置可能是受限的,并且例如在与设备交互以接收和/或发送消息时对用户而言是危险的或干扰
的。例如,交互可以包括通过基于计算机的语音系统或人工语音系统进行通信,该系统提供与用户自己的语音不关联或不类似的通用语音或声音(例如,语音助理的语音)。因此,接收消息的个人可能需要标识消息的发送者。此外,在诸如具有多个参与者的群聊的情况下,在终端设备处标识各个消息的(多个)发送者可能有额外的延迟和/或努力。
[0024]
这里描述的设备、系统和方法可以生成针对用户的语音化身,使得可以使用对应于相应用户的语音的语音化身(例如,实时生成的语音,使用经训练的神经网络模型基于文本到通用wav(text-to-generic-wav)和通用wav到化身wav(generic-wav-to-avatar-wav)的转换过程),经由音频输出来读或播放从用户发送的消息。接收消息的个人可以通过语音的声音和/或质量来标识用户(例如,用户语音的立即识别),并提供更有意义、更个人化和更具表现力的消息或信号。
[0025]
为了生成个性化语音化身,用户可以选择进入、授权或请求录制用于训练或生成用户语音的模型的声学数据或语音样本。可以通过用户接口向用户提供要被读取到录制设备中的多个测试句子或短语。用户可以朗读初始测试句子以在开始录制之前验证语音质量。可以部分地基于语音的特性或属性来验证语音质量,例如但不限于,音量、音调、音高、长度和/或速度。可以通过用户接口将质量呈现给用户,以指示语音质量是否良好并且是否满足最低要求,或者是否应该重新录制测试句子。可以向用户提供确定数量的测试消息(其可以是标准化的,也可以不是标准化的),以生成针对用户的语音模型。例如,可以部分地基于句子或单词的总数和/或朗读相应测试消息的时间长度,来选择或获取所确定的测试消息的数量。
[0026]
一旦用户已经完成朗读测试消息,系统就可以响应于用户完成确定数量的测试消息来生成语音模型。例如,可以使用录制的来自用户的测试消息来训练语音模型,并且一旦录制、分析和/或处理了确定数量的测试消息,语音模型就可以针对对应于唯一语音化身的用户构建个性化语音模型。语音模型可以被训练并且可以部分地基于用户的语音嵌入和用户自己的语音的属性来生成针对用户的语音化身。该系统可以包括用于生成语音模型的编码器-解码器架构。编码器部分可以被训练以获得自动语音识别(asr)特征,并且解码器部分可以基于由编码器提供的表示和由查找表提供的期望说话者嵌入来重构原始信号(例如,语音样本)。语音模型可以对应于针对用户的语音化身,使得语音化身的音频输出类似于用户的语音,但是可以被标识为不真实或实际上不是正在说话的相应用户。例如,可以生成具有确定的质量级别的语音化身的音频输出,以向接收消息的个人标识用户,并允许接收消息的个人标识语音化身的语音是合成的或不真实的。可以选择确定的质量级别以防止深度仿冒、抄袭和/或模仿。用户可以更新或提供更多的语音数据以更新或改进相应的语音模型并更新针对相应用户的语音化身。因此,语音模型可以生成针对用户的唯一语音化身,该唯一语音化身可以部分地基于用户的语音化身的声音来标识相应的用户,以减少或简化用于标识消息发送者的通信的数量,或者消除用于标识消息发送者的前导。
[0027]
现在参考图1,提供了用于生成对应于、听起来像或类似于用户语音的语音模型140的示例系统100。简而言之,设备102可以包括编码器110和解码器130,以接收和处理从用户接收到的多个音频样本108,并生成类似用户语音的语音模型140。例如,编码器110可以形成设备102的第一部分,并且可以接收和处理多个音频样本108。解码器可以形成设备102的第二部分,并且可以接收和处理来自编码器110的输出(例如,值序列119)和来自设备
102的查找表122的一个或多个说话者嵌入124,以生成或建立语音模型140。
[0028]
系统100的各种组件和元件可以在图3中示出并随后描述的计算环境的组件或元件上实现或使用它们来实现。例如,设备102、编码器110和解码器130可以包括或并入类似于图3中示出并随后描述的计算系统314的计算系统。设备102、编码器110和解码器130可以包括一个或多个处理单元316、存储装置318、网络接口320、用户输入设备322和/或用户输出设备324。
[0029]
设备102可以包括计算系统或wifi设备。设备102可以包括消息收发系统或文本到语音(tts)系统以将文本输入转换成合成音频输出142。在一些实施例中,例如,设备102可以被实现为可穿戴计算设备(例如,智能手表、智能眼镜、头戴式显示器)、智能手机、其他移动电话、设备(例如,消费设备)、台式计算机、膝上型计算机、虚拟现实(vr)圆盘(puck)、vr个人计算机(pc)、vr计算设备、头戴式设备,或者利用分布式计算设备来实现。设备102可以被实现为提供vr、增强现实(ar)和/或混合现实(mr)体验。在一些实施例中,设备102可以包括常规的、专用的或定制的计算机组件,诸如处理器104、存储设备106、网络接口、用户输入设备和/或用户输出设备。在实施例中,设备102可以包括图3中示出并随后描述的设备的一些元件。
[0030]
设备102可以包括一个或多个处理器104。一个或多个处理器104可以包括任何逻辑、电路系统和/或处理组件(例如,微处理器),用于对设备102、编码器110和/或解码器130的输入数据(例如,音频样本108、说话者嵌入124)进行预处理,和/或用于对设备102、编码器110和/或解码器130的输出数据进行后处理。一个或多个处理器104可以提供用于配置、控制和/或管理设备102、编码器110和/或解码器130的一个或多个操作的逻辑、电路系统、处理组件和/或功能。例如,处理器104可以接收数据,包括但不限于一个或多个音频样本108,并生成类似于或对应于相应的音频样本108的语音模型140。
[0031]
多个音频样本108可以包括由用户提供给设备102的录音或音频样本。例如,音频样本108可以包括朗读到连接到设备102的输入设备(例如,麦克风、录音设备)中的多个测试短语。测试短语可以包括但不限于,由用户朗读的单词、声音、文本、句子和/或短语。测试短语可以包括预定的或随机的测试短语。例如,设备102可以通过设备102的用户接口或连接到设备102的用户接口将测试短语提供给用户,并且用户可以朗读测试短语或者以音频形式将测试短语提供给设备102的音频收集设备,该音频收集设备例如可以连接到设备102。设备102可以以确定的顺序或随机地向用户呈现或提供测试短语。该应用可以一次提供一个测试短语,并且用户可以朗读、发声或回说测试短语,例如,到音频收集设备中。音频收集设备可以包括但不限于,设备102的麦克风组件或连接到设备102的外部麦克风。在一些实施例中,测试短语可以包括或对应于由用户生成的随机测试短语。例如,设备102可以收集由用户提供给设备102的音频收集设备或连接到设备102的音频收集设备的随机测试短语。设备102可以收集对应于测试短语的音频样本108并将其存储在存储设备106中。
[0032]
设备102可以包括应用107。应用107可以对应于或包括在设备102上执行来与用户交互以收集或录制由用户提供的音频样本108的客户端应用。应用107可以包括硬件或以硬件或至少硬件和软件的组合来实现。应用107可以通过用户接口向用户提供一个或多个测试短语,以供用户与音频样本108交互并提供音频样本108。
[0033]
设备102可以包括编码器110。编码器110可以包括硬件或硬件和软件的组合,或以
硬件或硬件和软件的组合实现。例如,编码器110可以包括设备,电路,软件或设备、电路和/或软件的组合,以将数据(例如,音频样本108)从一种格式转换为第二或不同格式。在一些实施例中,编码器110可以包括神经网络或者是神经网络的组件,以生成与神经网络的一个或多个层的输出相对应的值序列。例如,编码器110可以包括具有卷积层113的多个块112的深度时延神经网络(tdnn)。例如,编码器110可以包括一系列卷积块112(例如,多个卷积块、七个卷积块、十个卷积块或一些其他数量的卷积块)。在实施例中,每个卷积块112(例如,一维卷积块)可以包括一个或多个卷积层113。在一些实施例中,每个卷积块112可以包括或形成为具有五个(或一些其他数量)卷积层113。在实施例中,编码器110可以包括图3中示出并随后描述的设备的一些元件。
[0034]
卷积块112可以通过一个或多个加法器114连接以形成一系列卷积块112。例如,第一卷积块112可以通过至少一个加法器114连接到第二卷积块112。加法器114可以接收先前卷积块112的输出作为第一输入,并接收先前卷积块112的至少一个卷积层113的输出作为第二输入。加法器114可以组合先前卷积块112的输出和先前卷积块112的至少一个卷积层113的输出,以生成组合输出。加法器114可以将来自先前卷积块112的组合输出提供给编码器110的一系列卷积块112中的下一个卷积块或后续卷积块112的输入。
[0035]
卷积层113可以包括或对应于编码器110的神经网络的组件。卷积层113可以包括多个权重和/或偏差以处理接收到的音频样本108。例如,卷积层113可以对对应于接收到的音频样本108或来自接收到的音频样本108的空间位置进行卷积或取其点积,以生成值序列或经修改的音频样本108(例如,不同于原始或接收到的形式)。在一些实施例中,可以连接两个或更多卷积层113,使得可以将第一卷积层113的输出作为输入提供给编码器110的第二或后续卷积层113,以生成对应于编码器110的输出的值序列。卷积层113可以包括但不限于一维(1-d)卷积层。卷积层113可以包括但不限于卷积运算、批归一化、截断式relu激活和/或丢弃函数的序列。卷积层113可以包括硬件或至少硬件和软件的组合或者以硬件或至少硬件和软件的组合来实现。例如,卷积层可以包括设备,电路,软件或设备、电路和/或软件的组合以处理用于编码器110的音频样本108。
[0036]
编码器110可以包括连接式时间分类(ctc)116。ctc 116可以包括损失函数或者向由多个卷积块112和卷积层113生成的输出提供损失函数,以对编码器110的神经网络进行标记、评分和/或训练。例如,ctc 616可以对来自多个卷积块112和卷积层113的输出进行标记或分类,并将标记或分类提供回神经网络以更新或训练编码器110的权重,使得提供给编码器的后续和/或未来的音频样本108可以被用于部分地基于来自先前音频样本108的标记或分类以及后续和/或未来的音频样本108的属性来训练神经网络。ctc 116可以包括硬件或至少硬件和软件的组合,或以硬件或至少硬件和软件实现。例如,ctc116可以包括设备,电路,软件或设备、电路和/或软件的组合,以处理来自卷积块112和卷积层113的输出。
[0037]
卷积块112系列可以生成对应于来自神经网络的一个或多个卷积层113的输出和/或编码器110的输出的值序列119。值序列119可以包括但不限于向量值或向量。值序列119可以包括或对应于使用音频样本108生成的语音特征120。语音特征120可以包括音频样本108和/或用户声音的特征,包括但不限于时间方面、节奏、音高、音调和/或语速或速率。值序列119可以被提供给设备102的解码器130的第一输入131。
[0038]
设备102可以包括查找表122。查找表122可以包括维护多个说话者嵌入124的数据
库、阵列或存储设备。在一些实施例中,查找表可以是设备102的存储设备106的组件。查找表122可以部分地基于用户来存储和组织说话者嵌入124。例如,查找表122可以包括来自每个用户的对应于或包括提供给设备102的先前音频样本108的多个说话者嵌入124。先前音频样本108可用于训练或进一步改进(例如,改善)特定用户的说话者嵌入124的质量。在实施例中,查找表122可以包括说话者嵌入124的初始集合,其包括人工生成的音频样本108和/或来自多个用户的音频样本108,并且可以用于针对新用户或不具有语音模型140的用户初始地生成新的语音模型140。说话者嵌入124可以被提供给设备102的解码器130的第二输入133。在实施例中,说话者嵌入124可以被应用于(例如,级联)值序列119以生成调节信号125。调节信号125可以被提供给解码器130的至少一个输入。
[0039]
解码器130可以包括硬件或至少硬件和软件的组合,或以硬件或至少硬件和软件的组合实现。例如,解码器130可以包括设备,电路,软件或设备、电路和/或软件的组合,以将数据(例如,值序列119、说话者嵌入124、调节信号125)从一种格式转换为第二不同格式。在一些实施例中,解码器130可以包括神经网络或者是神经网络的组件,以生成对应于或类似于用户的音频样本108和/或相应的用户的语音的语音模型140。解码器130可以包括或形成使用或部分基于来自编码器110的一个或多个先前输出的输出被调节的自回归模型。解码器130可以包括神经网络,该神经网络包括至少两个完全连接的残差层132和归一化函数138。解码器130可以包括wavenet解码器,并且可以包括多个残差层132(例如,wavenet层)。在实施例中,解码器130可以包括多个块,每个块具有多个残差层132。例如,解码器130可以包括四块十个残差层132。在一些实施例中,解码器130可以包括四块十个残差层132和针对确定数量的样本的采样时间段(例如,250ms)的结果接收场。解码器130的顶部或最后部分可以包括两个全连接层132和归一化函数138(例如,softmax激活)。在实施例中,解码器130可以将归一化函数138应用于解码器130的神经网络的多个残差层132的输出,以建立语音模型140。归一化函数138可以在下一个或后续的时间帧提供或生成针对量化的音频输出142的概率。解码器130可以将调节信号125(例如,值序列119、说话者嵌入124)提供给多个残差层132,以生成针对用户的语音模型140。在实施例中,解码器130可以包括图3中示出并随后描述的设备的一些元件。
[0040]
残差层132可以包括或对应于解码器130的神经网络的组件,例如,形成解码器130的残差神经网络的组件。残差层132可以包括提供给相应的残差层132的输入以调节或训练解码器130的权重和/或偏差。残差层132可以通过多个残差层132之间的残差连接,将它们相应的输出提供或传递到下一个或后续残差层132,并且还可以提供或传递到下一个或后续残差层132之外的一个或多个层。例如,在一些实施例中,可以连接残差层132,使得先前或第一残差层132将其输出提供或传递到下一个、后续或第二残差层132,并将其输出与下一个、后续或第二残差层132的输出相组合,以向解码器130的第三残差层132提供组合输出。在一些实施例中,残差层132可以将其相应的输出跳过、提供或传递到下一个或后续的残差层132之外的一个或多个层,从而通过多个残差层132之间的跳跃连接(例如,resnet跳跃连接)跳过下一个或后续的残差层132。在实施例中,跳跃连接可以包括不同残差层132之间的非线性(relu)和/或归一化函数138。
[0041]
语音模型140可以包括或对应于语音化身、合成音频输出142或合成音频样本。在实施例中,语音模型140可以包括或对应于神经网络,以将接收到的或对应于用户的文本输
入转换为类似于或听起来像相应用户的语音或话语的合成音频输出142。语音模型140可以包括硬件或至少硬件和软件的组合,或以硬件或或至少硬件和软件的组合来实现。例如,语音模型140可以包括设备,电路,软件或设备、电路和/或软件的组合,以将数据(例如,文本输入、文本消息)从一种格式(例如,文本)转换为第二不同格式(例如,音频)。语音模型140可以包括或对应于用户语音的数字克隆(例如,文本到语音克隆),该用户语音用于读回或朗读由相应的用户生成或输入的消息。语音模型140可以包括用户语音的独特的语音嵌入或特性,以生成类似于用户语音的合成音频样本。例如,语音模型140可以包括用户话语的特性或属性,例如但不限于音量、音调、音高、长度、时间方面、节奏和/或语速或速率。
[0042]
存储设备106可以包括或对应于设备102的帧缓冲器或存储器缓冲器。存储设备106可以被设计或实现为存储、保持或维护与设备102、编码器110和解码器130相关联的任何类型或形式的数据。例如,设备102、编码器110和/或解码器130可以在存储设备106中存储一个或多个音频样本108、值序列119、说话者嵌入124、调节信号125和/或语音模型140。存储设备106可以包括设备102内部的静态随机存取存储器(sram)或内部sram。在实施例中,存储设备106可以被包括在设备102的集成电路内。
[0043]
存储设备106可以包括存储器(例如,存储器、存储器单元、存储设备等)。存储器可以包括一个或多个设备(例如,ram、rom、闪存、硬盘存储等),用于存储用于完成或促进本公开中描述的各种过程、层和模块的数据和/或计算机代码。存储器可以是或包括易失性存储器或非易失性存储器,并且可以包括数据库组件、目标代码组件、脚本组件或用于支持本公开中描述的各种活动和信息结构的任何其他类型的信息结构。根据示例实施例,存储器经由处理电路可通信地连接到处理器104,并且包括用于执行(例如,由处理电路和/或处理器)本文描述的一个或多个过程或方法(例如,方法200)的计算机代码。
[0044]
现在参考图2a-2c,描述了用于生成语音模型的方法200。简而言之,方法200可以包括以下步骤中的一个或多个步骤:接收多个音频样本(202);验证音频样本(204);将接收到的音频样本的数量与阈值进行比较(206);如果大于阈值,则将音频样本提供给编码器(208);将值提供给解码器(210);将调节信号提供给多个残差层(212);生成语音模型(214);接收文本输入(216);标识发送者(218);将文本输入转换为音频输出(220);以及朗读文本输入作为音频输出(222)。前述操作中的任何操作可以由这里描述的组件或设备中的任何一个或多个组件或设备来执行,例如设备102、处理器104、编码器110和解码器130。
[0045]
参考202,并且在一些实施例中,可以接收多个音频样本108。在实施例中,可以在设备102的第一输入111处从用户接收多个音频样本108。用户可以选择进入(例如,授权或激活)设备102上的录制模式以提供音频样本108。例如,用户可以访问或激活在设备102上执行的应用107。设备102可以包括但不限于用户的手持设备、计算设备或移动设备。应用107可以被配置为向用户提供多个测试句子或短语。用户可以选择进入或同意提供并生成要被用于生成语音模型140的多个录音。例如,应用107可以请求或提供欢迎屏幕或用户界面,以请求用户同意应用107收集来自用户的音频样本或声学数据,以便构建类似于或部分基于用户语音的语音模型140。在一些实施例中,应用107可以提供许可提示或命令窗口,该许可提示或命令窗口响应于用户交互(例如,点击、选择),用户可以同意、接受或许可从用户收集和录制音频样本108。
[0046]
应用107可以包括或提供隐私设置,以供用户录制和提供音频样本108。例如,当用
户选择进入或选择开始与应用107的录制会话时,应用107可以允许用户建立和/或修改隐私设置以控制和/或限制对音频样本108的使用和访问。用户的隐私设置可以指定音频样本108可以仅由语音模型140用于文本到语音转换。例如,用户的隐私设置可以允许或向用户提供控制设备102的哪些系统或应用可以使用和/或被提供音频样本108的能力。用户的隐私设置可以允许或向用户提供阻止或防止设备102的一个或多个系统或应用访问音频样本108的能力。用户的隐私设置可以指定音频样本108可以仅被用于受限的目的(例如,语音模型140、生成音频输出142),并进一步指定音频样本108不可以与任何第三方系统共享或由与设备102相关联、连接到设备102或在设备102上执行的其他进程或应用使用。应用107可以在从用户接收到同意之后开始录制过程。
[0047]
应用107可以指示用户找到录制室来提供音频样本108。例如,应用107可以指示用户找到安静的房间或安静的地方,其没有背景噪声或最小的背景噪声或可能对音频样本108的录制产生负面影响的其他形式的外部噪声。应用107可以通过设备102向用户提供多个测试短语,以供用户朗读回设备102的录制设备或连接到设备102的录制设备。这里使用的测试短语可以包括但不限于单词、文本、句子、短语和/或话语集合。测试短语可以由应用生成。应用107可以从设备102的存储设备106取回或接收测试短语。在某些实施例中,初始地可以向每个用户提供相同或相似的测试短语以生成语音模型140。在一些实施例中,初始地可以向一个或多个用户提供来自一个或多个其他用户的一个或多个不同的测试短语以生成语音模型140。测试短语可以被随机生成或由用户生成。例如,应用107可以请求或要求用户说出用户选择或自己选择的确定数量的测试短语(例如,自由地说、用户选择的单词)。应用107可以请求用户朗读或说回测试短语和/或即兴说话以生成音频样本108。
[0048]
在实施例中,应用107可以以确定的顺序或随机地向用户呈现或提供测试短语。应用107可以一次一个地提供测试短语,并且用户可以朗读或说回测试短语,例如,到设备102的录制设备(例如,麦克风、音频收集设备)或连接到设备102的第一输入111的录制设备。在实施例中,音频样本108可以对应于或关联于由用户提供的至少一个测试短语、口语单词、口语短语或语音样本。设备102和/或应用107可以以自然音调(例如,从书、文章或文本消息中读)或以正常对话语音来指示或请求用户自然地说话。当测试短语出现在应用上时,可以指示用户读测试短语。在实施例中,麦克风图标或其他形式的图标可以与每个文本短语一起呈现,并且用户可以选择该图标或与该图标交互以开始录制相应的测试短语或多个测试短语。图标可以改变颜色或向用户提供设备102和/或应用107活动和录制的其他形式的视觉指示。
[0049]
参考204,并且在一些实施例中,可以验证多个音频样本108。在实施例中,音频样本108的质量可以由应用107或设备102验证。设备102可以部分地基于与音频样本108的属性相关的不同度量(例如,平均意见分数、启发式)来确定音频样本108的质量。例如,质量可以包括或对应于接收到的音频样本108的音量度量或音调。在实施例中,应用107可以包括或执行音量单位(vu)计量器。vu计量器可以检测、监测和指示接收到的音频样本108的音量级别。vu计量器可以确定接收到的音频样本的音量级别,并将音频样本的音量级别与音量阈值进行比较。音量级别等于或大于音量阈值可表示质量良好或认可的音频样本。音量级别低于音量阈值可能表示质量低、质量差或不认可的音频样本。当接收到相应的音频样本108时(例如,一次一个),vu计量器可以验证音频样本108的质量,或者在接收到确定数量的
音频样本之后,vu计量器可以验证一个或多个音频样本108的质量。
[0050]
在实施例中,设备102和/或应用107可以接受音量级别等于或大于音量阈值的音频样本108,并拒绝或要求用户重做或重新录制音量级别小于音量阈值的音频样本108。设备102和/或应用107可以请求用户验证接收到的音频样本108的质量。例如,在读测试短语之后,用户可以通过选择通过应用提供给用户的播放/查看图标或与播放/查看图标交互来查看或收听音频样本108。例如,应用107可以回放音频样本108以供用户验证或帮助验证(例如,多个验证过程)所提供的音频样本108的质量。如果用户犯了错误或误读了文本短语,或者在查看音频样本108之后,用户确定重新录制相应的测试短语,则用户可以选择麦克风图标来再次录制音频样本108。在实施例中,麦克风图标可以改变颜色以向用户提供从录制到停止录制的改变的可视指示符。例如,麦克风可以从指示激活录制的第一颜色(例如,红色)改变为第二颜色(例如,灰色、绿色、蓝色),以指示录制已经停止并且应用107正在等待来自用户的进一步交互(例如,认可音频样本、录制下一个文本短语)。用户可以响应于收听相应的音频样本108来认可或以其他方式验证音频样本。用户可以选择通过应用107提供给用户的下一个图标或继续图标或与下一个图标或继续图标交互,以读或录制下一个音频样本108。
[0051]
应用107可以向用户提供音频样本108被接受或被拒绝的一个或多个指示符(例如,视觉、音频)。例如,应用107可以向用户提供具有第一颜色(例如,绿色)的第一视觉指示符,以指示音频样本108被接受,并且向用户提供具有第二颜色(例如,红色)的第二视觉指示符,以指示音频样本108被拒绝并且应该重做。在实施例中,应用107可以向具有第一声音的用户提供第一音频指示符,以指示音频样本108被接受,并且向具有不同于第一声音的第二声音的用户提供第二音频指示符,以指示音频样本108被拒绝并且应该重做。
[0052]
参考206,并且在一些实施例中,可以将音频样本108的数量与样本阈值进行比较。设备102和/或应用107可以将音频样本108的数量与样本阈值进行比较,或者将接收到的音频样本108的总录制时间与样本阈值进行比较。在一些实施例中,样本阈值(例如,测试短语阈值)可以包括或对应于多个测试短语或录制时间长度。例如,样本阈值可以包括多个测试短语(例如,10个测试短语、20个测试短语)。在实施例中,样本阈值可以包括或对应于最小时间值(例如,2分钟的录制、5分钟的录制)或录制的最小运行时间。样本阈值可以包括多个测试短语和最小时间值的组合。例如,样本阈值可以包括由总计至少确定的运行时间音频量(例如,5分钟、10分钟或其他时间长度)的短语的各个行和/或段落组成的文本的组合。样本阈值可以在这里提供的采样数量和/或时间值之内或之外变化。
[0053]
在实施例中,样本阈值可以包括或对应于初始阈值或初始级别以生成针对用户的语音模型140。例如,在针对用户的语音模型140被初始地生成之后,样本阈值可以增加或被调整以利用从用户接收到的未来或后续的音频采样108来进一步改进和/或训练语音模型。设备102可以将音频样本108的数量与样本阈值进行比较,以确定用户是否已经完成录制短语以生成语音模型140。如果音频样本108的数量小于样本阈值,则方法200可以返回到202以接收和/或请求更多的音频样本。如果音频样本108的数量大于或等于样本阈值,则方法200可以移动到208。例如,设备102和/或应用107可以向用户指示已经接收并录制了确定数量的测试短语并且音频收集会话完成。
[0054]
在实施例中,设备102和/或应用107可以向用户提供状态指示(例如,状态栏),以
指示在录音会话期间的进度以满足生成语音模型140的样本阈值或最低要求。例如,状态指示可以指示,但不限于,“30个测试短语中的2个测试短语已完成”或“5分钟中的2分钟已完成”。设备102和/或应用107可以通过应用107向用户指示录制已完成,并向用户提供查看和重新录制一个或多个测试短语的最终机会。例如,应用107可以提供显示或示出所有测试短语已经被完成的屏幕或用户界面,其中每个测试短语旁边都有回放图标,以供用户在提交音频样本108以生成语音模型140之前进行选择和查看。在实施例中,应用107可以向用户提供提交图标以提交音频样本108。用户可以通过应用107选择提交图标,并被提供成功或完成消息来指示音频样本108的录制完成。
[0055]
参考208,并且在一些实施例中,多个音频样本108可以被提供给编码器110。包括神经网络的编码器110可以例如通过在设备102上执行的应用107从用户接收多个音频样本108。在实施例中,编码器110可以将多个音频样本108提供给神经网络,以生成对应于来自神经网络的一个或多个卷积层113的输出的值序列119。
[0056]
卷积层113可以是形成编码器110的神经网络的一系列卷积块112的组件。在一些实施例中,编码器110可以包括滤波器(例如,使用20ms的滑动窗口和10ms的跳跃节点,从16khz语音信号中提取的对数-梅尔滤波器组)或使用滤波器来采样或修改音频样本108的属性以用于处理来操作。例如,编码器110可以以确定的量(例如,2)经由编码器110的神经网络的至少一个卷积块112的至少一个卷积层113来修改(例如,减少、下采样)音频样本108的采样率。经滤波的信号或经滤波的音频样本108可被提供给具有多个卷积层113的一系列卷积块112。在实施例中,卷积块112可以包括一系列形成的层113(例如,卷积层),其具有将相应的卷积块112的投影输入到相应的卷积块输出112的残差连接。卷积层113可以包括多个权重和/或偏差以处理接收到的音频样本108。在实施例中,卷积层113可以包括或对应于一系列卷积运算、批归一化、截断式relu激活和/或丢弃,以生成值序列119。例如,卷积层113可以对对应于接收到的音频样本108或来自接收到的音频样本108的空间位置进行卷积或取其点积,以生成值序列119或修改后的音频样本108(例如,不同于原始的或接收到的形式)。在实施例中,编码器110可以包括七个(或其他数量)卷积块112,每个卷积块112包括五个(或其他数量)卷积层113。滤波后的音频样本108可以被提供给七个卷积块112,其中每个卷积块112包括五个卷积层113,以生成对应于来自多个卷积块112的一个或多个卷积层113的输出的值序列119。
[0057]
参考210,并且在一些实施例中,值序列119可以被提供给解码器130。解码器130可以从编码器110接收值序列119。在实施例中,解码器130可以在第一输入处接收值序列119,并且在第二输入处从设备102的查找表122接收一个或多个说话者嵌入124。解码器130可以将用户的一个或多个说话者嵌入124或与用户相关联的一个或多个说话者嵌入124应用于值序列119以生成调节信号125。解码器130可以将调节信号125提供给解码器的多个残差层132,以建立或生成语音模型140。
[0058]
设备102可以包括存储和维护说话者嵌入124的查找表122(例如,存储器、存储设备)。说话者嵌入124可以包括通过多个用户提供的合成或自动系统(例如,计算机化的)数字地生成的随机或一般说话者嵌入和/或目标用户提供的说话者嵌入124。例如,在第一或初始设置期间,解码器130可以使用或应用由多个用户提供的一般说话者嵌入124来初始地建立针对用户的语音模型140。对于后续或将来的会话,解码器130可以使用或应用由用户
例如从一个或多个先前录制会话提供的说话者嵌入124来建立、改进或训练针对用户的语音模型140。
[0059]
说话者嵌入124可以包括来自目标用户的嵌入(例如,唯一语音嵌入)。在实施例中,说话者嵌入124可以包括多个音频样本108或先前从目标用户接收到的音频样本108中的一个或多个音频样本108的部分。解码器130可以将说话者嵌入124应用或级联到值序列119,以生成调节信号125(例如,级联信号、组合信号)。
[0060]
参考212,并且在一些实施例中,调节信号可以被提供给多个残差层。解码器130可以包括具有多个残差层132的神经网络。在实施例中,解码器130可以包括神经网络,该神经网络包括至少两个完全连接的残差层132和归一化函数138。在一些实施例中,解码器可以包括具有四个块的十个残差层和所得到的感受野(例如,250ms、4093个样本)。在一些实施例中,解码器130可以在将调节信号125提供给残差层132之前,在时间域中修改调节信号125的采样率(例如,增加、上采样)以确定或获得调节信号125的原始音频速率和/或准备调节信号125以在残差层132中进行处理。
[0061]
解码器130可以将调节信号125提供给多个残差层132(例如,wavenet层),以生成对应于或类似于用户的声音和/或来自用户的多个音频样本108的语音模型140。在一些实施例中,解码器130可以向残差层132中的一个或多个残差层处的1x1卷积层提供调节信号125。解码器130的最终部分或最后部分可以包括两个完全连接的残差层和归一化函数138(例如,softmax激活)。在实施例中,归一化函数138可以对残差层132的输出执行softmax激活,以在下一个或后续的时间帧处或下一个或后续的音频样本108处生成或提供用于量化音频输出142(例如,256个选项)的概率。
[0062]
参考214,并且在一些实施例中,可以生成语音模型140。解码器130可以使用值序列119以及一个或多个说话者嵌入124来建立对应于用户的多个音频样本108的语音模型140。解码器可以生成对应于或类似于目标用户的语音和/或来自目标用户的多个音频样本108的语音模型140。语音模型140可以对应于文本到语音(tts)数字克隆、相应的用户自己的语音的副本或相应的用户的语音化身。语音模型140可以包括硬件或至少硬件和软件的组合,或以硬件或至少硬件和软件的组合来实现。例如,语音模型140可以包括设备102的设备,电路,软件或设备、电路和/或软件的组合,其可以将数据(例如,文本输入)从文本版本转换为第二格式,例如合成音频输出142。
[0063]
由于语音模型140是使用来自相应的用户的音频样本108来建立和生成的,因此语音模型140可以包括用户语音的唯一语音嵌入、特性和/或属性。例如,语音模型140可以生成具有用户语音的唯一语音嵌入、特性和/或属性的合成音频输出142,包括但不限于用户语音的音量、音调、音高、长度和/或速度。
[0064]
在实施例中,由语音模型140生成的音频输出142可以听起来像或类似于对应的用户自己的语音并且仍然发声或是合成的或人造的。例如,语音模型140可以生成水印或将水印提供给为特定用户生成的音频输出142。水印可以包括或对应于嵌入到相应的音频输出142中的音频水印、电子标识符或心理水印,使得由语音模型140生成的针对用户的音频输出142可以被标识为相应的用户,但不太可能与用户的原始语音混淆。语音模型140可以生成水印或将水印(例如,电子标识符)嵌入到针对用户的音频输出142中,给作为对应的用户收听音频输出142的不同的人。
[0065]
在实施例中,用户可以测试或验证他们的语音模型140以及由语音模型140生成的音频输出142的质量。例如,当针对用户的语音模型140完成时,设备102可以例如通过电子邮件消息或文本消息或其他形式的通信来发送通知。用户可以打开设备102的应用107来查看和测试语音模型140。应用107可以为用户提供用户接口(例如,文本输入窗口)以向语音模型140提供文本或测试短语。用户可以通过应用107向设备102提供文本输入。在实施例中,用户可以通过应用107向设备102说出或口述消息,以由语音模型140将其转换为音频输出142。设备102可以将文本(或口述消息)提供给语音模型140,并且语音模型140可以将文本转换成类似于用户自己的语音的音频输出142。应用107可以向用户提供认可窗口,以供用户认可音频输出142或拒绝音频输出142。在实施例中,如果用户拒绝音频输出142,则方法200可以移动到224以训练和/或改进语音模型140。设备102可以针对多个用户生成多个语音模型140。例如,设备102可以针对向设备102提交或提供音频样本108的每个用户生成至少一个唯一的语音模型140。
[0066]
参考216,并且在一些实施例中,可以接收文本输入。第一用户的设备102可以利用针对相应的第二用户生成的语音模型140从至少一个不同的用户或第二用户接收文本(例如,文本输入、文本消息)。设备102可以将语音模型140建立为机器学习模型。设备102可以使用语音模型和来自用户的输入文本,针对相应用户生成类似或听起来像相应的用户自己的语音的合成音频输出142。语音模型140可以包括自动语音识别特征,以标识和处理音频样本108(例如,人类声音),以标识相应的人和/或生成类似于相应人的声音的音频输出142。
[0067]
在实施例中,第一用户可以将设备102(例如,移动设备)设置或置于免提或免视设置,使得第一用户可以在不触摸或看着设备102的情况下与设备102交互。例如,第一用户可以将设备102设置为用于活动(诸如开车、一边锻炼一边在群消息中聊天、使用门户消息、在会议中和/或在家庭设置中)的免提或免视设置。设备102可以接收文本,并且设备102可以提供消息已经被接收到的音频指示。音频指示可以包括噪声或声音。该音频指示可以包括合成音频输出142,该合成音频输出142表明“已接收到消息”或类似的短语。第一用户可以向设备102提供音频响应以“播放消息”。在实施例中,第一用户可以对设备102的麦克风部分或连接到设备102的外部麦克风设备说话或讲话,以请求播放消息。
[0068]
参考218,并且在一些实施例中,可以标识文本输入的发送者。设备102可以标识文本的发送者。例如,设备102可以将从其接收文本的号码(例如,电话号码)与由设备102在存储器106中为第一用户维护的号码列表或联系人列表进行比较。在实施例中,设备102可以使用或提取文本中包括的一个或多个术语或单词(例如,人名)来标识文本的发送者。设备102可以使用发送者的身份来标识针对发送者(例如,第二用户)生成的语音模型140。例如,设备102可以使用发送者的身份(例如,姓名、电话号码、电子邮件)来搜索存储器以寻找针对第二用户生成的语音模型140。
[0069]
参考220,并且在一些实施例中,文本输入可以被转换为音频输出142。设备102可以使用语音模型140和一个或多个说话者嵌入124中的至少一个说话者嵌入,将输入文本转换为合成音频输出142,以对第二用户的语音进行建模。例如,设备102可以执行针对第二用户的语音模型140,并将接收到的文本和对应于第二用户或来自第二用户的一个或多个说话者嵌入作为输入提供给语音模型140。针对第二用户的语音模型140可以将文本转换为语
音,将说话者嵌入应用于转换后的语音,并生成针对第二用户的合成音频输出142。
[0070]
参考222,并且在一些实施例中,文本输入可以被朗读为音频输出142。第一用户的设备102可以朗读或读从第二用户接收到的文本,作为对应于或类似于第二用户语音的合成音频输出142。在实施例中,设备102可以使用对应于或类似于第二用户的语音并且由语音模型140针对第二用户生成的合成音频输出142来朗读包括在接收到的文本中的每个单词、短语或句子。设备102可以在合成音频输出142中嵌入或者包括水印,使得合成音频输出142听起来像或类似于第二用户的语音,并且对于收听合成音频输出142的第一用户是可识别的。设备102可以在合成音频输出142中嵌入或包括水印,使得合成音频输出142听起来像或类似于第二用户语音并且可与第二用户自己的或实际的语音区分。
[0071]
在实施例中,第一用户可以通过设备102并响应于接收到的文本向第二用户返回消息。例如,设备102可以从第一用户接收音频响应,并或且将该音频响应生成或转换为文本。设备102可以通过接收到第一文本的对话(例如,文本对话)将转换后的文本发送给第二用户或第一文本的发送者。在群聊或群对话中,设备102可以部分地基于来自第一用户的命令或指示(例如,“发送至群消息”、“仅发送至第二用户”),通过群对话将转换后的文本发送至第二用户或第一文本的发送者,或仅发送至第二用户。设备102可以继续在第一用户与第二用户之间的通信会话或对话,直到第一用户例如通过音频指示(例如,陈述“结束呼叫”)或在没有交互、接收到的文本和/或从任何一方接收到的音频输入的确定时间段(例如,20秒、30秒)之后指示通信会话结束。
[0072]
参考224,并且在一些实施例中,可以训练语音模型140。在实施例中,设备102可以训练或进一步改进用户的说话者嵌入124和/或针对用户的语音模型140。例如,设备102可以将语音模型140生成为机器学习模型,使得当机器学习模型接收更多或附加的数据点(例如,音频样本、说话者嵌入)时,机器学习模型可以改进语音模型140和由语音模型140生成的合成音频输出142。在实施例中,解码器130可以使用一个或多个说话者嵌入124以及来自用户的一个或多个后续音频样本来训练针对用户的语音模型140。
[0073]
在实施例中,设备102和/或应用107可以邀请或请求用户提供更多数据(例如,附加音频样本108、说话者嵌入124)以训练、改进和/或改善用户的语音模型140。应用107可以播放由语音模型140生成的一个或多个样本音频输出142,以供用户检查语音模型140和音频样本108的质量。在实施例中,用户可以请求向设备102提供更多音频样本108。方法200可以返回到202,以供用户选择进入或打开设备102上的应用107以提供音频样本108。解码器130可以将说话者嵌入124与来自用户的后续或新接收到的音频样本108进行应用或级联,以训练和/或改进针对用户的语音模型140。
[0074]
设备102和/或解码器130可以将来自用户的一个或多个后续的音频样本108提供给解码器130的神经网络的第一残差层132和第二残差层132。设备102和/或解码器130可以将一个或多个说话者嵌入124提供给解码器130的神经网络的第一残差层132和第二残差层132。在实施例中,来自第一残差层132的输出可以被提供给第二残差层132的输入,以训练针对用户的语音模型140。例如,解码器130可以改善由语音模型140生成的针对用户的音频输出142的一个或多个属性,包括但不限于,针对用户生成的音频输出142的音量、音调、音高、长度、时间方面、节奏以及语速或速率。在实施例中,随着相应的用户提供越来越多的音频样本108,语音模型140和由相应的语音模型140生成的音频输出142的准确性或质量可以
增加和/或改善。
[0075]
b.计算系统
[0076]
这里描述的各种操作可以在计算机系统上实现。图3示出了可用于实现本公开的代表性计算系统314的框图。在一些实施例中,图1的设备102、编码器110或解码器130由计算系统314实现。计算系统314可以例如被实现为消费设备,诸如智能手机、其他移动电话、平板计算机、可穿戴计算设备(例如,智能手表、眼镜、头戴式显示器)、台式计算机、膝上型计算机,或者利用分布式计算设备来实现。计算系统314可以被实现为提供vr、ar、mr体验。在一些实施例中,计算系统314可以包括常规计算机组件,诸如处理器316、存储设备318、网络接口320、用户输入设备322和用户输出设备324。
[0077]
网络接口320可以提供到广域网(例如,因特网)的连接,远程服务器系统的wan接口也连接到该广域网。网络接口320可以包括实现各种rf数据通信标准(例如wi-fi、蓝牙或蜂窝数据网络标准(例如,3g、4g、5g、60ghz、lte等))的有线接口(例如,以太网)和/或无线接口。
[0078]
用户输入设备322可以包括用户可以经由其向计算系统314提供信号的任何设备;计算系统314可以将信号解释为指示特定用户请求或信息。用户输入设备322可以包括键盘、触摸板、触摸屏、鼠标或其他定点设备、滚轮、点击轮、刻度盘、按钮、开关、小键盘、麦克风、传感器(例如,运动传感器、眼球跟踪传感器等)等中的任何或全部。
[0079]
用户输出设备324可以包括计算系统314可以通过其向用户提供信息的任何设备。例如,用户输出设备324可以包括显示器以显示由计算系统314生成或传递给计算系统314的图像。显示器可以结合各种图像生成技术,例如液晶显示器(lcd)、包括有机发光二极管(oled)的发光二极管(led)、投影系统、阴极射线管(crt)等,以及支持电子设备(例如,数模或模数转换器、信号处理器等)。可以使用既用作输入设备又用作输出设备的诸如触摸屏的设备。输出设备324可以作为显示器的补充或替代来提供。示例包括指示灯、扬声器、触觉“显示”设备、打印机等。
[0080]
一些实现包括诸如微处理器、在计算机可读存储介质中存储计算机程序指令的存储设备和存储器的电子元件。本说明书中描述的许多特征可以被实现为被指定为编码在计算机可读存储介质上的程序指令集合的过程。当这些程序指令由一个或多个处理器执行时,它们使处理器执行程序指令中指示的各种操作。程序指令或计算机代码的示例包括诸如由编译器产生的机器代码,以及包括由计算机、电子元件或使用解释器的微处理器执行的更高级代码的文件。通过适当的编程,处理器316可以为计算系统314提供各种功能,包括这里描述为由服务器或客户端执行的任何功能,或与消息管理服务相关联的其他功能。
[0081]
可以理解,计算系统314是说明性的,并且变化和修改是可能的。结合本公开使用的计算机系统可以具有这里未具体描述的其他能力。此外,虽然参考特定块来描述计算系统314,但是可以理解,这些块是为了便于描述而定义的,并且并不意在暗示组件的特定物理布置。例如,不同的模块可以位于同一设施中、同一服务器机架中或同一主板上。此外,这些块不需要对应于物理上不同的组件。块可以被配置为执行各种操作,例如通过对处理器编程或提供适当的控制电路,并且根据如何获得初始配置,各种块可能是可重构的,也可能是不可重构的。本公开的实现可以在各种设备中实现,包括使用电路和软件的任何组合实现的电子设备。
[0082]
现在已经描述了一些已经以示例的方式呈现的说明性实现,显然,前面是说明性的而不是限制性的。具体地说,尽管这里给出的许多示例涉及方法动作或系统元件的特定组合,但这些动作和那些元件可以以其他方式组合以实现相同的目标。结合一个实现所讨论的动作、元件和特征并不旨在被排除在其他实现中的类似角色或实现之外。
[0083]
用于实现结合本文公开的实施例描述的各种处理、操作、示例逻辑、逻辑块、模块和电路的硬件和数据处理组件可以用通用单或多芯片处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、或其他被设计为执行本文描述的功能的可编程逻辑设备、离散门或晶体管逻辑、离散硬件组件或其任意组合来实现或执行。通用处理器可以是微处理器,或任何常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合,诸如dsp和微处理器的组合、多个微处理器、一个或多个结合dsp核心的微处理器或任何其他这样的配置。在一些实施例中,特定的过程和方法可以由特定于给定功能的电路来执行。存储器(例如,存储器、存储单元、存储设备等)可以包括一个或多个设备(例如,ram、rom、闪存、硬盘存储等)。用于存储用于完成或促进本公开中描述的各种过程、层和模块的数据和/或计算机代码。存储器可以是易失性存储器或非易失性存储器或包括它们,并且可以包括数据库组件、目标代码组件、脚本组件或用于支持本公开中描述的各种活动和信息结构的任何其他类型的信息结构。根据示例实施例,存储器经由处理电路可通信地连接到处理器,并且包括用于执行(例如,由处理电路和/或处理器)本文描述的一个或多个过程的计算机代码。
[0084]
本公开设想了用于完成各种操作的任何机器可读介质上的方法、系统和程序产品。本公开的实施例可以使用现有的计算机处理器来实现,或者通过用于适当系统的专用计算机处理器来实现,为了这个或另一个目的而并入,或者通过硬连线系统来实现。本公开范围内的实施例包括程序产品,该程序产品包括机器可读介质,该机器可读介质用于携带或具有存储在其上的机器可执行指令或数据结构。这种机器可读介质可以是可由通用或专用计算机或具有处理器的其他机器访问的任何可用介质。作为示例,这种机器可读介质可以包括ram、rom、eprom、eeprom或其他光盘存储、磁盘存储或其他磁存储设备,或者可以用于以机器可执行指令或数据结构的形式携带或存储期望的程序代码并且可以由通用或专用计算机或具有处理器的其他机器访问的任何其他介质。上述各项的组合也包括在机器可读介质的范围内。机器可执行指令包括例如使通用计算机、专用计算机或专用处理机执行特定功能或功能组的指令和数据。
[0085]
这里使用的措辞和术语是为了说明的目的,不应被视为限制性的。这里使用的“包括”、“包含”、“具有”、“含有”、“涉及”、“特征是”、“其特征在于”及其变体意指包括其后列出的项、其等同形式、以及附加项目,以及由此后专门列出的项目组成的备选实现。在一个实现中,这里描述的系统和方法包括一个、多于一个的每个组合或所有所描述的元件、动作或组件。
[0086]
本文中以单数形式引用的对系统和方法的实现或元件或动作的任何引用也可以包括包括多个这些元件的实现,并且以复数形式对这里的任何实现或元件或动作的任何引用也可以包括仅包括单个元件的实现。单数或复数形式的引用并不意在将当前公开的系统或方法、其组件、动作或元件限制为单一或多个配置。对基于任何信息、动作或元件的任何动作或元件的引用可以包括动作或元件至少部分基于任何信息、动作或元件的实现。
[0087]
本文公开的任何实现可以与任何其他实现或实施例相结合,并且对“实现”、“一些实现”、“一个实现”等的引用不一定是相互排斥的,并且意在指示结合该实现所描述的特定特征、结构或特征可以被包括在至少一个实现或实施例中。这里使用的这些术语不一定都指相同的实现。任何实现都可以以与本文公开的方面和实现一致的任何方式与任何其他实现相结合,包括或排他地组合。
[0088]
在附图、详细说明书或任何权利要求书中的技术特征后面有附图标记的情况下,已包括附图标记以增加附图、详细说明书和权利要求书的可理解性。因此,附图标记或没有附图标记对任何权利要求要素的范围都没有任何限制作用。
[0089]
本文描述的系统和方法可以在不背离其特征的情况下以其他特定形式实现。除非另有明确说明,否则所提及的“大约”、“大致”或其他程度术语包括给定测量、单位或范围的 /-10%的变化。耦合元件可以彼此直接电耦合、机械耦合或物理耦合,或与中间元件耦合。因此,这里描述的系统和方法的范围由所附权利要求指示,而不是前述描述,并且在权利要求的含义和等同范围内的改变被包含在其中。
[0090]
术语“耦合”及其变体包括两个构件直接或间接地彼此结合。这种结合可以是固定的(例如,永久的或固定的)或可移动的(例如,可拆卸的或可释放的)。这种结合可以通过两个构件直接耦合或彼此耦合,通过两个构件使用单独的中间构件彼此耦合并且任何附加中间构件彼此耦合,或通过两个构件使用与两个构件之一一体形成为单一整体的中间构件彼此耦合来实现。如果通过附加术语(例如,直接耦合)来修饰“耦合”或其变体,则通过附加术语的简单语言含义(例如,“直接耦合”是指没有任何单独的中间构件的两个构件的结合)来修改上面提供的“耦合”的一般定义,从而导致比上面提供的“耦合”的一般定义更窄的定义。这种耦合可以是机械的、电气的或流体的。
[0091]
对“或”的引用可以被解释为包含性的,从而使用“或”描述的任何术语可以表示单个、多于一个和所有描述的术语中的任何一个。对
“‘
a’和

b’中的至少一个”的引用包括仅

a’、仅

b’以及

a’和

b’两者。这类参考文献与“包括”或其他开放术语一起使用,可以包括附加项目。
[0092]
在不会实质上偏离本文公开的主题的教导和优点的情况下,所描述的元件和动作的修改可以发生,例如各种元件的大小、尺寸、结构、形状和比例、参数值、安装布置、材料的使用、颜色、取向的变化。例如,被示为整体形成的元件可以由多个部分或元件构成,元件的位置可以反转或以其他方式改变,并且离散元件或位置的性质或数量可以改变或变化。在不脱离本公开的范围的情况下,还可以在所公开的元件和操作的设计、操作条件和布置中进行其他替换、修改、改变和省略。
[0093]
这里对元件的位置(例如,“顶”、“底”、“上”、“下”)的引用仅用于描述图中各种元件的取向。根据其他示例实施例,各种元件的取向可以不同,并且这些变化意在包含在本公开中。
再多了解一些

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

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

相关文献