首页 > 乐器声学 专利正文
多频带同步神经声码器的制作方法

时间:2022-02-13 阅读: 作者:专利查询

多频带同步神经声码器的制作方法
多频带同步神经声码器
1.相关申请的交叉引用
2.本技术要求于2019年9月20日提交美国专利局、申请号为16/576,943的美国正式申请的优先权,其全部内容通过引用结合在本技术中。


背景技术:

3.wavenet是第一个神经声码器并且由谷歌提供。为了提高wavenet的推理速度,谷歌后来提供了并行的wavenet。尽管并行的wavenet的速度明显优于原始的wavenet,但是,并行的wavenet在推理时需要大量图形处理单元(gpu)(或大量中央处理单元(cpu))来执行并行计算,这在计算上极其昂贵,并且在实际生产系统中应用受限。随后,提供了wavernn模型,并且显著地减少了推理时间。然而,推理速度仍然相当慢。


技术实现要素:

4.根据本技术实施例,一种由多频带同步神经声码器执行的方法,包括:接收将由所述多频带同步神经声码器进行处理的输入音频信号;由所述多频带同步神经声码器,将所述输入音频信号分离成多个频带;基于将所述输入音频信号分离成所述多个频带,由所述多频带同步神经声码器,获取与所述多个频带对应的多个音频信号;基于获取所述多个音频信号,由所述多频带同步神经声码器,对所述多个音频信号中的每个音频信号进行下采样;由所述多频带同步神经声码器,处理下采样的音频信号;及,由所述多频带同步神经声码器,基于处理下采样的音频信号,生成音频输出信号。
5.根据本技术实施例,一种多频带同步神经声码器设备,包括:至少一个存储器,用于存储计算机程序代码;至少一个处理器,用于读取所述计算机程序代码,根据所述计算机程序代码的指令进行操作,所述程计算机序代码包括:接收代码,用于使得所述至少一个处理器,接收将由所述多频带同步神经声码器进行处理的输入音频信号;分离代码,用于使得所述至少一个处理器,由所述多频带同步神经声码器,将所述输入音频信号分离成多个频带;获取代码,用于使得所述至少一个处理器,基于将所述输入音频信号分离成所述多个频带,由所述多频带同步神经声码器,获取与所述多个频带对应的多个音频信号;下采样代码,用于使得所述至少一个处理器,基于获取所述多个音频信号,由所述多频带同步神经声码器,对所述多个音频信号中的每个音频信号进行下采样;处理代码,用于使得所述至少一个处理器,由所述多频带同步神经声码器,处理下采样的音频信号;及,生成代码,用于使得所述至少一个处理器,由所述多频带同步神经声码器,基于处理下采样的音频信号,生成音频输出信号。
6.根据本技术实施例,一种非易失性计算机可读介质,其上存储有计算机代码,所述计算机代码由至少一个处理器执行时,使得所述至少一个处理器对点云信息进行编码,包括:接收将由所述多频带同步神经声码器进行处理的输入音频信号;由所述多频带同步神经声码器,将所述输入音频信号分离成多个频带;基于将所述输入音频信号分离成所述多个频带,由所述多频带同步神经声码器,获取与所述多个频带对应的多个音频信号;基于获
取所述多个音频信号,由所述多频带同步神经声码器,对所述多个音频信号中的每个音频信号进行下采样;由所述多频带同步神经声码器,处理下采样的音频信号;及,由所述多频带同步神经声码器,基于处理下采样的音频信号,生成音频输出信号。
附图说明
7.图1a和图1b示出了根据本技术实施例的概览图;
8.图2示出了本技术所实施的系统和/或方法中的示例环境的示意图;
9.图3示出了图2中至少一个设备的示例部件;
10.图4示出了根据本技术实施例的由多频带同步神经声码器生成音频输出信号的示例流程图。
具体实施方式
11.近来,诸如wavenet、wavernn和lpcnet之类的神经声码器逐帧地生成原始音频样本,并且能够基于对声学特征的估计,实现了优于传统声码器的高度自然的语音。
12.然而,在实际生产系统上应用神经声码器时,主要挑战是基于它们的推理(inference)速度。大多数神经声码器被设计成以自回归方式预测每个音频样本,并且,即使是一秒钟的语音/音频,也有数万个可能需要推理的样本,这明显地抑制了推理速度。已经进行了大量的工程努力来提高神经声码器的效率,但是,在许多生产系统中推理速度仍然不够快。
13.在本技术中,提供了一种多频带同步神经声码器,其将音频分离成多个频带(例如,n个频带),并对每个频带中的信号进行m次下采样。神经声码器被配置为利用单个cpu同时预测来自每个频带的样本。由于每个频带中的信号被下采样m次,推理样本也被减少m倍,因此,本技术实施例能够显著加快推理时的速度。因此,本技术实施例,提高了诸如wavenet、wavernn和lpc

net等神经声码器的语音/音频生成速度。
14.根据本技术实施例,提供了一种快速、高效且高质量的音频生成方法。所提出的多频带音频生成系统,可以将神经声码器的音频/语音生成速度提高4至6倍,而不牺牲所生成的音频质量。
15.图1a和图1b是本技术描述的实施例的概览图。如图1a和图1b所示,神经声码器是一种自回归模型,其在给定预测样本的历史的情况下递归地预测目标音频的每个样本。
16.如图1a所示,音频信号输入105被提供给神经声码器110。神经声码器110基于音频信号输入105生成音频/语音波形115。如图1a中进一步所示,在小于时间(t)的时间(t)将输入120提供到神经声码器125中。神经声码器125生成输出,并在时间(t)提供输出130。
17.在本技术实施例所述的多频带同步方法中,音频信号被分离成多个等距的频带。此外,训练每个频带中的信号以预测为单独的流。此外,基于奈奎斯特定理,每个频带中的信号可以被下采样n次而不会丢失信息。
18.因此,每个频带中的样本数目比原始音频信号少n倍。此外,本技术实施例同时预测所有n个频带中的样本,因此,将整个推理的步骤减少n倍。此外,除了最终的全连接层以及softmax层,其中每个频带具有其自己的全连接层和对应的softmax层之外,神经声码器中大多数的层用于预测所有频带中的样本。
19.通过在所有频带上共享大部分权重参数,多频带神经声码器的单步推理的计算仅稍高于常规神经声码器的计算,但总的推理步骤小n倍。因此,本技术实施例提供了一种明显更快的多频带神经声码器。
20.本技术实施例所提出的多频带音频生成系统,可以将神经声码器的音频/语音生成速度提高4~6倍,而不牺牲所生成的音频质量。
21.例如,如图1b所示,输入135被提供给神经声码器140。神经声码器145将输入135分离成一组不同频带的信号145、150和155。此外,神经声码器145对每个信号145、150和155进行下采样。
22.如图1b中进一步所示,神经声码器140可以使用一组上采样滤波器160、165和170对每个信号进行上采样。此外,神经声码器140可以使用合成滤波器175来合成分离的信号。最后,神经声码器140可以生成音频输出180。
23.如图1b进一步所示,神经声码器190(对应于上述神经声码器140)在小于时间(t)的时间(t)接收一组输入信号185。此外,神经声码器190生成一组输出195,并在时间(t)提供输出195。这样,神经声码器190同步且同时处理多个输入信号,从而减少推理时间、增加吞吐量等。
24.图2是其中可以实现本技术描述的系统和/或方法的示例环境200的图。如图2所示,环境200可以包括用户设备210、平台220和网络230。环境200的设备可以经由有线连接、无线连接或有线和无线连接的组合进行互连。
25.用户设备210包括能够接收、生成、存储、处理和/或提供与平台220相关联的信息的一个或多个设备。例如,用户设备210可以包括计算设备(例如,台式计算机、膝上型计算机、平板计算机、手持计算机、智能扬声器、服务器等)、移动电话(例如,智能电话、无线电话等)、可穿戴设备(例如,一对智能眼镜或智能手表)或类似设备。在一些实现方式中,用户设备210可以从平台220接收信息和/或向平台220传输信息。
26.平台220包括能够通过多频带同步神经声码器生成音频输出信号的一个或多个设备,如本技术别处所述。在一些实现方式中,平台220可以包括云服务器或一组云服务器。在一些实现方式中,平台220可以被设计为模块化的,使得可以根据特定需要换入或换出某些软件部件。这样,平台220可以容易地和/或快速地重新配置用于不同的用途。
27.在一些实现方式中,如图所示,平台220可以托管在云计算环境222中。值得注意的是,虽然本技术描述的实现方式将平台220描述为托管在云计算环境222中,但是在一些实现方式中,平台220不是基于云的(即,可以在云计算环境之外实现)或者可以是部分基于云的。
28.云计算环境222包括托管平台220的环境。云计算环境222可以提供不需要最终用户(例如,用户设备210)了解托管平台220的一个或多个系统和/或设备的物理位置和配置的计算、软件、数据访问、存储等服务。如图所示,云计算环境222可以包括一组计算资源224(统称为“计算资源224”,并且单独称为“计算资源224”)。
29.计算资源224包括一个或多个个人计算机、工作站计算机、服务器设备或其它类型的计算和/或通信设备。在一些实现方式中,计算资源224可以是托管平台220。云资源可以包括在计算资源224中执行的计算实例、在计算资源224中提供的存储设备、由计算资源224提供的数据传送设备等。在一些实现方式中,计算资源224可以经由有线连接、无线连接或
有线和无线连接的组合与其它计算资源224通信。
30.如图2中进一步所示,计算资源224包括一组云资源,诸如一个或多个应用程序(“app”)224-1、一个或多个虚拟机(“vm”)224-2、虚拟化存储(“vs”)224-3、一个或多个管理程序(“hyp”)224-4等。
31.应用程序224-1包括可以提供给用户设备210和/或传感器设备220或由用户设备210和/或传感器设备220访问的一个或多个软件应用程序。应用程序224-1可以消除在用户设备210上安装和执行软件应用程序的需要。例如,应用程序224-1可以包括与平台220相关联的软件和/或能够经由云计算环境222提供的任何其它软件。在一些实现方式中,一个应用程序224-1可以经由虚拟机224-2向/从一个或多个其它应用程序224-1发送/接收信息。
32.虚拟机224-2包括像物理机器一样执行程序的机器(例如,计算机)的软件实现。虚拟机224-2可以是系统虚拟机或进程虚拟机,这取决于虚拟机224-2的使用和与任何真实机器的对应程度。系统虚拟机可以提供支持完整操作系统(“os”)的执行的完整系统平台。进程虚拟机可以执行单个程序,并且可以支持单个进程。在一些实现方式中,虚拟机224-2可以代表用户(例如,用户设备210)执行,并且可以管理云计算环境222的基础设施,诸如数据管理、同步或长持续时间数据传送。
33.虚拟化存储224-3包括使用计算资源224的存储系统或设备内的虚拟化技术的一个或多个存储系统和/或一个或多个设备。在一些实现方式中,在存储系统的上下文中,虚拟化的类型可以包括块虚拟化和文件虚拟化。块虚拟化可以指逻辑存储与物理存储的抽象(或分离),使得可以在不考虑物理存储或异构结构的情况下访问存储系统。分离可以允许存储系统的管理员在管理员如何管理最终用户的存储方面具有灵活性。文件虚拟化可以消除在文件级访问的数据与物理地存储文件的位置之间的依赖性。这可以实现存储使用、服务器整合和/或无中断文件迁移的性能的优化。
34.管理程序224-4可以提供允许多个操作系统(例如,“客户操作系统”)在诸如计算资源224等主机计算机上并发执行的硬件虚拟化技术。管理程序224-4可以向客户操作系统呈现虚拟操作平台,并且可以管理客户操作系统的执行。各种操作系统的多个实例可以共享虚拟化的硬件资源。
35.网络230包括一个或多个有线和/或无线网络。例如,网络230可以包括蜂窝网络(例如,第五代(5g)网络、长期演进(lte)网络、第三代(3g)网络、码分多址(cdma)网络等)、公共陆地移动网络(plmn)、局域网(lan)、广域网(wan)、城域网(man)、电话网络(例如,公共交换电话网络(pstn))、专用网络、自组织网络、内联网、因特网、基于光纤的网络等,和/或这些或其它类型的网络的组合。
36.图2中所示的设备和网络的数量和布置被提供作为示例。在实践中,可以存在比图2所示的设备和/或网络更多的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络,或不同布置的设备和/或网络。此外,图2所示的两个或更多个设备可以在单个设备内实现,或者图2所示的单个设备可以实现为多个分布式设备。附加地或替换地,环境200的一组设备(例如,一个或多个设备)可以执行被描述为由环境200的另一组设备执行的一个或多个功能。
37.图3是设备300的示例部件的图。设备300可以对应于用户设备210和/或平台220。
如图3所示,设备300可以包括总线310、处理器320、存储器330、存储部件340、输入部件350、输出部件360和通信接口370。
38.总线310包括允许设备300的部件之间的通信的部件。处理器320以硬件、固件或硬件和软件的组合来实现。处理器320是中央处理单元(cpu)、图形处理单元(gpu)、加速处理单元(apu)、微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic)或另一类型的处理部件。在一些实现方式中,处理器320包括能够被编程以执行功能的一个或多个处理器。存储器330包括随机存取存储器(ram)、只读存储器(rom)和/或存储供处理器320使用的信息和/或指令的另一类型的动态或静态存储设备(例如,闪存、磁存储器和/或光存储器)。
39.存储部件340存储与设备300的操作和使用相关的信息和/或软件。例如,存储部件340可以包括硬盘(例如,磁盘、光盘、磁光盘和/或固态盘)、压缩盘(cd)、数字通用光盘(dvd)、软盘、盒式磁带、磁带和/或其它类型的非易失性计算机可读介质,以及对应的驱动器。
40.输入部件350包括允许设备300诸如经由用户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风)接收信息的部件。附加地或替换地,输入部件350可以包括用于感测信息的传感器(例如,全球定位系统(gps)部件、加速度计、陀螺仪和/或致动器)。输出部件360包括提供来自设备300的输出信息的部件(例如,显示器、扬声器和/或一个或多个发光二极管(led))。
41.通信接口370包括类似收发器的部件(例如,收发器和/或单独的接收器和发射器),其使得设备300能够诸如经由有线连接、无线连接或有线和无线连接的组合与其它设备通信。通信接口370可以允许设备300从另一设备接收信息和/或向另一设备提供信息。例如,通信接口370可以包括以太网接口、光接口、同轴接口、红外接口、射频(rf)接口、通用串行总线(usb)接口、wi-fi接口、蜂窝网络接口等。
42.设备300可以执行本技术描述的一个或多个过程。设备300可以响应于处理器320执行由诸如存储器330和/或存储部件340等非易失性计算机可读介质存储的软件指令而执行这些过程。计算机可读介质在本技术中被定义为非易失性存储器设备。存储器设备包括单个物理存储设备内的存储器空间或分布在多个物理存储设备的存储器空间。
43.软件指令可以经由通信接口370从另一计算机可读介质或从另一设备读入存储器330和/或存储部件340。当被执行时,存储在存储器330和/或存储部件340中的软件指令可以使处理器320执行本技术描述的一个或多个过程。附加地或替换地,硬连线电路可以代替软件指令或与软件指令结合使用,以执行本技术描述的一个或多个过程。因此,本技术描述的实现方式不限于硬件电路和软件的任何特定组合。
44.图3中所示的部件的数量和布置被提供作为示例。在实践中,设备300可以包括与图3所示的部件相比更多的部件、更少的部件、不同的部件或不同布置的部件。附加地或替换地,设备300的一组部件(例如,一个或多个部件)可以执行被描述为由设备300的另一组部件执行的一个或多个功能。
45.图4是用于由多频带同步神经声码器生成音频输出信号的示例过程400的流程图。在一些实现方式中,图4的一个或多个过程框可以由平台220执行。在一些实现方式中,图4的一个或多个过程框可以由与平台220分离或包括平台220的另一设备或一组设备(诸如用
户设备210)执行。
46.如图4所示,过程400可以包括接收将由所述多频带同步神经声码器进行处理的输入音频信号(框410)。
47.如图4中进一步所示,过程400可以包括由所述多频带同步神经声码器,将所述输入音频信号分离成多个频带(框420)。
48.如图4中进一步所示,过程400可以包括基于将所述输入音频信号分离成所述多个频带,由所述多频带同步神经声码器,获取与所述多个频带对应的多个音频信号(框430)。
49.如图4中进一步所示,过程400可以包括基于获取所述多个音频信号,由所述多频带同步神经声码器,对所述多个音频信号中的每个音频信号进行下采样(框440)。
50.如图4中进一步所示,过程400可以包括由所述多频带同步神经声码器,处理下采样的音频信号(框450)。
51.如图4中进一步所示,过程400可以包括由所述多频带同步神经声码器,基于处理下采样的音频信号,生成音频输出信号(框460)。
52.虽然图4示出了过程400的示例框,但是在一些实现方式中,过程400可以包括与图4中描绘的那些框相比更多的框、更少的框、不同的框或不同布置的框。附加地或替换地,可以并行地执行过程400的两个或更多个框。
53.上述公开内容提供了说明和描述,但并不旨在穷举或将实现方式限制为所公开的精确形式。根据上述公开内容可以进行修改和变化,或者可以从实现方式的实践中获得修改和变化。
54.如本技术所使用的,术语部件旨在被广泛地解释为硬件、固件或硬件和软件的组合。
55.显然,本技术描述的系统和/或方法可以以不同形式的硬件、固件或硬件和软件的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不是对实现方式的限制。因此,本技术描述了系统和/或方法的操作和行为,而没有参考特定的软件代码——应当理解,软件和硬件可以被设计成基于本技术的描述来实现系统和/或方法。
56.即使在权利要求中列举和/或在说明书中公开了特征的特定组合,这些组合并不旨在限制可能实现方式的公开。事实上,这些特征中的许多特征可以以权利要求中未具体叙述和/或说明书中未公开的方式组合。虽然下面列出的每个从属权利要求可以直接依赖于仅一个权利要求,但是可能实现方式的公开包括与权利要求集中的所有其它权利要求结合的每个从属权利要求。
57.除非明确说明,否则本技术使用的任何元素、行为或指令均不应被解释为关键或必要的。此外,如本技术所使用的,冠词“一(a)”和“一个(an)”旨在包括一个或多个项目,并且可以与“一个或多个”互换使用。此外,如本技术所使用的,术语“组”旨在包括一个或多个项目(例如,相关项目、不相关项目、相关和不相关项目的组合等),并且可以与“一个或多个”互换使用。在仅意指一个项目的情况下,使用术语“一个(one)”或类似语言。此外,如本技术所使用的,术语“具有(has)”、“具有(have)”、“具有(having)”等旨在是开放式术语。此外,除非另有明确说明,否则短语“基于”旨在表示“至少部分地基于”。