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

语音分离方法、装置、计算机设备及存储介质与流程

2021-10-20 00:08:00 来源:中国专利 TAG:人工智能 语音 装置 分离 特别


1.本技术实施例涉及人工智能技术领域,特别涉及一种语音分离方法、装置、计算机设备及存储介质。


背景技术:

2.随着人工智能技术的不断发展,可以通过构建神经网络模型将目标语音从背景音中分离出来。其中,构建的神经网络模型可以是基于pytorch训练得到的dprnn(dual path recurrent neural network,双路径递归神经网络)模型。
3.在相关技术中,通过该dprnn模型进行语音分离时,首先将语音数据进行分开处理,然后将分块后的语音数据块通过该dprnn模型中的至少一个块处理网络进行处理,最后将块处理网络的处理结果进行重叠相加,得到分离后的语音。
4.然而,相关技术中的drpnn模型的模型结构较为复杂,导致模型的处理速度较慢,进而影响语音分离的效率。


技术实现要素:

5.本技术实施例提供了一种语音分离方法、装置、计算机设备及存储介质,通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而提高模型的处理速度,进而提高语音分离的效率。该技术方案如下。
6.一方面,提供了一种语音分离方法,所述方法包括:
7.通过语音分离模型中的第一分块网络对输入的语音数据进行分块,获得至少两个语音数据块;
8.通过所述语音分离模型中的第一转置层对至少两个所述语音数据块进行第一转置处理,使得至少两个所述语音数据块的维度按照时域维度、频域维度、归一化维度的顺序排列;
9.通过所述语音分离模型中的至少一个第一块处理网络对至少两个所述语音数据块进行块处理,获得至少两个所述语音数据块的块处理结果数据;所述第一块处理网络包含串连的两个第一处理子网络;所述第一处理子网络用于依次执行以下操作:对输入的语音数据块的时域维度和频域维度进行第二转置处理、对所述第二转置处理的结果进行循环神经网络处理、对所述循环神经网络处理的结果的归一化维度进行归一化处理、将所述归一化处理的结果与所述第二转置处理的结果进行融合;
10.通过所述语音分离模型中的第一重叠相加网络,对至少一个所述第一块处理网络的块处理结果进行重叠相加处理,获得所述语音数据的语音分离结果。
11.一方面,提供了一种语音分离方法,所述方法包括:
12.获取在第一编码语言环境下训练生成的语音分离模型的第一模型源码;所述语音分离模型是用于在时域维度下进行语音分离的神经网络模型;
13.基于所述第一模型源码进行编码语言翻译和指定调整,获得第二编码语言编写的第二模型源码;所述指定调整用于实现所述语音分离模型的目标功能的前提下减少所述语音分离模型的运算量;
14.在第一引擎中运行所述第二模型源码,以实现所述语音分离模型的所述目标功能;所述第一引擎是支持所述第二编码语言的引擎。
15.又一方面,提供了一种语音分离装置,所述装置包括:
16.数据块获取模块,用于通过语音分离模型中的第一分块网络对输入的语音数据进行分块,获得至少两个语音数据块;
17.第一转置模块,用于通过所述语音分离模型中的第一转置层对至少两个所述语音数据块进行第一转置处理,使得至少两个所述语音数据块的维度按照时域维度、频域维度、归一化维度的顺序排列;
18.块处理模块,用于通过所述语音分离模型中的至少一个第一块处理网络对至少两个所述语音数据块进行块处理,获得至少两个所述语音数据块的块处理结果数据;所述第一块处理网络包含串连的两个第一处理子网络;所述第一处理子网络用于依次执行以下操作:对输入的语音数据块的时域维度和频域维度进行第二转置处理、对所述第二转置处理的结果进行循环神经网络处理、对所述循环神经网络处理的结果的归一化维度进行归一化处理、将所述归一化处理的结果与所述第二转置处理的结果进行融合;
19.结果获取模块,用于通过所述语音分离模型中的第一重叠相加网络,对至少一个所述第一块处理网络的块处理结果进行重叠相加处理,获得所述语音数据的语音分离结果。
20.在一种可能的实现方式中,所述第一处理子网络包含依次相连的第二转置层、第一循环神经网络层、第一归一化层、以及第一融合层;所述第二转置层还与所述第一融合层相连;
21.所述第二转置层用于对所述至少两个所述语音数据块的时域维度和频域维度进行第二转置处理;
22.所述第一循环神经网络层用于对所述第二转置处理的结果进行循环神经网络处理以及全连接处理;
23.所述第一归一化层用于对所述第一循环神经网络层的处理结果中的归一化维度进行归一化处理;
24.所述第一融合层用于将所述第一归一化层的处理结果与所述第二转置处理的结果进行融合。
25.在一种可能的实现方式中,所述数据块获取模块,包括:
26.指针获取子模块,用于基于循环算子,对所述语音数据进行循环处理,获取至少两个所述语音数据块的分块开始指针以及分块结束指针;
27.数据块获取子模块,用于基于所述分块开始指针以及所述分块结束指针,获取至少两个所述语音数据块。
28.在一种可能的实现方式中,所述循环算子由图像处理器中的单个处理器内核执行。
29.在一种可能的实现方式中,所述数据块获取模块,包括:
30.第一子模块,用于基于第一算子,获取所述语音数据块的前段语音数据块;
31.第二子模块,用于基于第二算子,获取所述语音数据块的后段语音数据块;
32.第三子模块,用于基于第三算子,将所述语音数据块对应的所述前段语音数据块与所述后段语音数据块进行拼接,生成拼接后的所述语音数据块;
33.第四子模块,用于基于第四算子,对所述拼接后的语音数据块进行转置处理。
34.在一种可能的实现方式中,所述第一算子、所述第二算子、所述第三算子以及所述第四算子分别由图像处理器中的一个处理器内核执行。
35.在一种可能的实现方式中,所述语音分离模型为双路径递归神经网络dprnn模型。
36.在一种可能的实现方式中,所述语音分离模型是对第一编程语言编写的所述dprnn模型进行代码翻译获得的。
37.在一种可能的实现方式中,所述第一编程语言编写的dprnn模型是基于pytorch训练获得的模型。
38.在一种可能的实现方式中,所述第一编程语言编写的dprnn模型包括第二分块网络、至少一个第二块处理网络以及第二重叠相加网络;所述第二块处理网络包含串连的两个第二处理子网络;
39.输入所述第二处理子网络的语音数据块的维度按照归一化维度、时域维度、频域维度的顺序排列;
40.所述第二处理子网络用于依次执行以下操作:对输入的语音数据块的归一化维度和频域维度进行第三转置处理、对所述第三转置处理的结果进行循环神经网络处理、对所述循环神经网络处理的结果的归一化维度和频域维度进行第四转置处理、对所述第四转置处理的结果的归一化维度进行归一化处理、将所述归一化处理的结果与输入的语音数据块进行融合。
41.在一种可能的实现方式中,所述第二处理子网络包括包含依次相连的第三转置层、第二循环神经网络层、第四转置层、第二归一化层、以及第二融合层;所述第二融合层还与所述第二处理子网络的输入口相连;
42.所述第三转置层用于对输入的语音数据块的归一化维度和频域维度进行第三转置处理;
43.所述第二循环神经网络层用于对所述第三转置处理的结果进行循环神经网络处理和全连接处理;
44.所述第四转置层对所述第二循环神经网络层的处理结果的归一化维度和频域维度进行第四转置处理;
45.所述第二归一化层用于对所述第四转置处理的结果的归一化维度进行归一化处理;
46.所述第二融合层用于将所述第二归一化层的处理结果与输入的语音数据块进行融合。
47.再一方面,提供了一种语音分离装置,所述装置包括:
48.第一源码获取模块,用于获取在第一编码语言环境下训练生成的语音分离模型的第一模型源码;所述语音分离模型是用于在时域维度下进行语音分离的神经网络模型;
49.第二源码获取模块,用于基于所述第一模型源码进行编码语言翻译和指定调整,
获得第二编码语言编写的第二模型源码;所述指定调整用于实现所述语音分离模型的目标功能的前提下减少所述语音分离模型的运算量;
50.源码运行模块,用于在第一引擎中运行所述第二模型源码,以实现所述语音分离模型的所述目标功能;所述第一引擎是支持所述第二编码语言的引擎。
51.再一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述的语音分离方法。
52.又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述语音分离方法。
53.再一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述语音分离方法。
54.本技术提供的技术方案可以包括以下有益效果:
55.在本技术实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
56.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
57.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
58.图1是根据一示例性实施例示出的一种语音分离方法的流程图;
59.图2是根据一示例性实施例示出的一种语音分离系统的示意图;
60.图3是根据一示例性实施例示出的一种语音分离方法的流程图;
61.图4是根据一示例性实施例示出的一种语音分离方法的流程图;
62.图5是图4所示实施例涉及的一种第一块处理网络的结构示意图;
63.图6是根据一示例性实施例示出的一种优化后的语音分离系统的结构示意图;
64.图7是根据一示例性实施例示出的一种未经过优化的语音分离系统的结构示意图;
65.图8是根据一示例性实施例示出的一种语音分离装置的结构方框图;
66.图9是根据一示例性实施例示出的一种语音分离装置的结构方框图;
67.图10是根据一示例性实施例示出的一种计算机设备的结构示意图。
具体实施方式
68.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
69.应当理解的是,在本文中提及的“若干个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
70.为了方便理解,下面对本技术实施例中涉及的名词进行说明。
71.1)人工智能(artificial intelligence,ai)
72.人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
73.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
74.2)机器学习(machine learning,ml)
75.机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。
76.3)语音技术(speech technology)
77.语音技术的关键技术有自动语音识别技术(automatic speech recognition,asr)和语音合成技术(text

to

speech,tts)以及声纹识别技术。让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中语音成为未来最被看好的人机交互方式之一。
78.4)语音分离技术
79.语音分离技术的目标是把目标语音从背景干扰音中分离出来。在信号处理过程中,语音分离的应用范围很广泛,其中包括听力假体、移动通信、鲁棒的自动语音以及说话人识别等。人类听觉系统能轻易地将一个人的声音和另一个人的分离开来。即使在鸡尾酒
会那样的声音环境中,也能在其他人的说话声和环境噪声的包围中听到一个人的说话内容。因此语音分离问题通常也被叫做“鸡尾酒会问题”。
80.图1是根据一示例性实施例示出的一种语音分离方法的流程图。该语音分离方法可以由计算机设备执行。比如,该计算机设备可以包括终端或者服务器中的至少一种。如图1所示,该语音分离方法包括的步骤如下:
81.步骤101,通过语音分离模型中的第一分块网络对输入的语音数据进行分块,获得至少两个语音数据块。
82.在本技术实施例中,计算机设备中构建有用于进行语音分离的语音分离模型,且该语音分离模型中包含第一分块网络,通过第一分块网络中的算法对输入的语音数据进行分块,获得至少两个语音数据块。
83.其中,第一分块网络可以是用于对语音数据进行分块处理的部分模型,第一分块网络输入的是语音数据,输出的是至少两个语音数据块。
84.步骤102,通过语音分离模型中的第一转置层对至少两个语音数据块进行第一转置处理,使得至少两个语音数据块的维度按照时域维度、频域维度、归一化维度的顺序排列。
85.在本技术实施例中,计算机设备将从第一分块网络输出的至少两个语音数据块通过语音分离模型中的第一转置层进行第一转置处理,将至少两个语音数据块的维度按照时域维度、频域维度以及归一化维度的顺序进行排序。
86.其中,从第一分块网络输出的至少两个语音数据块的维度可以是按照归一化维度、时域维度、频域维度进行排序的。
87.步骤103,通过语音分离模型中的至少一个第一块处理网络对至少两个语音数据块进行块处理,获得至少两个语音数据块的块处理结果数据;第一块处理网络包含串连的两个第一处理子网络;第一处理子网络用于依次执行以下操作:对输入的语音数据块的时域维度和频域维度进行第二转置处理、对第二转置处理的结果进行循环神经网络处理、对循环神经网络处理的结果的归一化维度进行归一化处理、将归一化处理的结果与第二转置处理的结果进行融合。
88.在本技术实施例中,计算机设备将经过第一转置处理后的至少两个语音数据块通过至少一个第一块处理网络,对至少两个语音数据块进行块处理,获得至少两个语音数据块的块处理结果数据。
89.其中,第一块处理网络中包含串联的两个第一处理子网络,每个第一处理子网络可以依次对输入的语音数据块的时域维度和频域维度进行第二转置处理,然后对第二转置处理的结果进行循环神经网络处理,然后对循环神经网络处理的结果的归一化维度进行归一化处理,最后将归一化处理的结果与第二转置处理的结果进行融合。
90.步骤104,通过语音分离模型中的第一重叠相加网络,对至少一个第一块处理网络的块处理结果进行重叠相加处理,获得语音数据的语音分离结果。
91.在本技术实施例中,计算机设备将第一块处理网络输出的至少一个块处理结果数据进行重叠相加处理,可以获取到该语音数据对应的语音分离结果。
92.其中,第一重叠相加网络是用于基于块处理后的语音数据块恢复生成分离后的语音数据。
93.综上所述,在本技术实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
94.本技术上述实施例所示的方案,可以应用在任意的语音分离的场景。
95.比如,在短视频中,由于短视频中存在添加的背景音乐、录制过程中的背景噪声或者是录制过程中其他人声,为了将目标语音从中进行分离,可以通过将短视频对应的语音数据输入到语音分离模型中,通过语音分离模型对语音数据进行分块处理后可以获取其中的目标语音。由于短视频中涉及到的语音数据长度较大,本技术所示方案中,将语音数据块输入第一块处理网络中仅需要进行两次转置操作,相较于现有技术中需要进行四次转置操作,大大减少了进行转置操作的运算量,并且需要处理的语音数据量越大,通过第一块处理网络进行块处理的优势越大。
96.在一种示例性的方案中,本技术上述实施例的方案涉及的系统包括语音数据分块部分、语音数据块处理部分以及语音数据块重叠相加部分。图2是根据一示例性实施例示出的一种语音分离系统的示意图。如图2所示,语音分离模型中包括语音数据分块部分、语音数据块处理部分以及语音数据块重叠相加部分。在模型训练时,模型训练设备220通过输入的语音数据样本训练出语音分离模型,在应用时,语音分离设备240可以在屏幕上显示用于输入或者选择语音数据的页面,通过该页面将语音数据输入训练完成的语音分离模型中,也可以通过该语音分离设备240对分离后的语音数据进行下载。
97.其中,上述模型训练设备220可以是具有机器学习能力的计算机设备,比如,该计算机设备可以是个人电脑、服务器以及固定式科研设备等固定式计算机设备,或者,该计算机设备也可以是平板电脑、电子书阅读器等移动式计算机设备。本技术实施例对于模型训练设备220的具体类型不做限定。
98.其中,语音分离设备240可以是计算机设备。该计算机设备可以具有屏幕显示功能。
99.在一种可能的实现方式中,以该语音分离系统应用于短视频语音分离场景下为例,当用户使用语音分离设备240输入短视频语音数据时,通过语音分离模型中的第一分块网络可以对输入的短视频语音数据进行分块,获得至少两个语音数据块,通过将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成短视频语音数据对应的语音分离结果,即获取到从短视频中分离出的目标语音。
100.图3是根据一示例性实施例示出的一种语音分离方法的流程图。该语音分离方法
可以由计算机设备执行。如图3所示,该语音分离方法包括的步骤如下:
101.步骤301中,获取在第一编码语言环境下训练生成的语音分离模型的第一模型源码;语音分离模型是用于在时域维度下进行语音分离的神经网络模型。
102.步骤302中,基于第一模型源码进行编码语言翻译和指定调整,获得第二编码语言编写的第二模型源码;指定调整用于实现语音分离模型的目标功能的前提下减少语音分离模型的运算量。
103.步骤303中,在第一引擎中运行第二模型源码,以实现语音分离模型的目标功能;第一引擎是支持第二编码语言的引擎。
104.综上所述,在本技术实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
105.图4是根据一示例性实施例示出的一种语音分离方法的流程图。该语音分离方法可以由计算机设备执行。比如,该计算机设备可以包括终端或者服务器中的至少一种。如图4所示,该语音分离方法包括的步骤如下:
106.步骤401,将语音数据输入语音分离模型。
107.在本技术实施例中,计算机设备中存在有训练完成的语音分离模型,确定需要进行语音分离的语音数据,将语音数据输入到该语音分离模型中。
108.在一种可能的实现方式中,语音分离模型为双路径递归神经网络dprnn模型。
109.其中,语音分离模型可以是对第一编程语言编写的dprnn模型进行代码翻译获得的。第一编程语言编写的dprnn模型是基于pytorch训练获得的模型。
110.示例性的,dprnn模型可以是基于pytorch框架训练得到的,其中,为了通过libtorch引擎进行上线运行,基于pytorch框架训练得到的dprnn模型可以转换为torchscript格式的模型,其中,torchscript格式的模型既可以被pytorch读取使用,也可以被libtorch读取使用。但是,语音分离模型通过libtorch进行上线运行,会导致模型中的部分算子出现冗余的情况,从而导致语音分离模型通过libtorch进行上线运行的运行速度较慢。
111.在一种可能的实现方式中,为了提高语音分离模型的上线运行速度,将dprnn模型使用的上线引擎确定为tensorrt引擎。
112.其中,tensorrt引擎是针对于图形处理器开发的上线引擎,且该引擎具有plugin特性,可以支持为模型定制深度优化,提高了dprnn模型的灵活性。同时,tensorrt上线引擎保证了整个网络计算流程可以有效利用gpu的计算资源。
113.在一种可能的实现方式中,语音分离模型包括第一分块网络、第一块处理网络以
及第一重叠相加网络。
114.其中,输入的语音数据可以优先通过第一分块网络,经过第一分块网络处理后通过第一块处理网络,由至少一个第一块处理网络处理完成后通过第一重叠相加网络进行处理,最终输出分离的语音数据。
115.步骤402,基于循环算子,对语音数据进行循环处理,获取至少两个语音数据块的分块开始指针以及分块结束指针。
116.在本技术实施例中,计算机设备通过进行循环算子操作,对语音数据进行循环处理,获取语音数据对应的至少两个语音数据块的分块开始指针以及分块结束指针。
117.在一种可能的实现方式中,输入到语音分离模型中的语音数据优先通过第一分块网络,在第一分块网络中基于循环算子,对该语音数据进行循环处理,获取该语音数据对应的至少两个语音数据块的分块开始指针以及分块结束指针。
118.其中,分块开始指针用于指示该语音数据中的至少两个语音数据块对应的开始分块的位置;分块结束指针用于指示该语音数据中的至少两个语音数据块对应的结束分块的位置。
119.也就是说,分块开始指针以及分块结束指针用于指示至少两个语音数据块在语音数据中的位置。
120.在一种可能的实现方式中,循环算子由图像处理器中的单个处理器内核执行。
121.示例性的,通过c 编码语言可以利用for循环算子作为该循环算子获取该语音数据对应的至少两个语音数据块的分块开始指针以及分块结束指针。
122.比如,获取该语音数据对应的至少两个语音数据块的分块开始指针以及分块结束指针对应的c 代码如下所示。
[0123][0124]
其中,batch_size是语音数据长度,n是语音数据的帧数,t是语音数据特征维度,segment_size是语音数据块长度,segment_stride是语音数据块之间的重叠区域大小,s是一帧语音数据切分成语音数据块的数量。
[0125]
在另一种可能的实现方式中,基于第一算子,获取语音数据块的前段语音数据块;基于第二算子,获取语音数据块的后段语音数据块;基于第三算子,将语音数据块对应的前段语音数据块与后段语音数据块进行拼接,生成拼接后的语音数据块;基于第四算子,对拼接后的语音数据块进行转置处理。
[0126]
也就是说,计算机设备可以分别通过使用第一算子、第二算子、第三算子以及第四算子对实现对语音数据进行分块处理,获取对应的语音数据块。
[0127]
其中,第一算子、第二算子、第三算子以及第四算子可以是相同、部分相同或者不同的算子,第一算子、第二算子、第三算子以及第四算子分别由图像处理器中的一个处理器内核执行。
[0128]
示例性的,通过pytorch框架对应的第一编码语言可以利用四个算子分别获取该语音数据对应的至少两个语音数据块的前段语音数据块以及后段语音数据块,然后将前段语音数据块与后段语音数据块进行拼接,最后将拼接后生成的语音数据块进行转置操作。
[0129]
比如,将输入语音数据分割成语音数据块,语音数据块的大小为(n,segment_size),再将各个语音数据块拼接起来。其中,相邻的两个语音数据块存在一半的重叠区域。输入语音数据,该语音数据大小为(b,n,t),其中,b为batch_size,n为语音数据对应的帧数,t为语音数据对应的特征维度。输出语音数据块,其大小为(b,s,n,segment_size)。其中,s为语音数据块的数量。对语音数据进行分块处理对应的pytorch源码如下所示。
[0130]
#获得输入的语音数据对应的维度和语音数据块重叠的大小
[0131]
batch_size,n,t=input.shape
[0132]
segment_stride=segment_size/2
[0133]
#获得前一半的语音数据块
[0134]
segments1=input[:,:,:

segment_stride].contiguous().view(batch_size,n,

1,segment_size)
[0135]
#获得后一半的语音数据块
[0136]
segments2=input[:,:,segment_stride:].contiguous().view(batch_size,n,

1,segment_size)
[0137]
#将两部分语音数据块拼接后并转置
[0138]
segments=torch.cat([segments1,segments2],3).view(batch_size,n,

1,segment_size).transpose(2,3)
[0139]
return segments.contiguous()
[0140]
其中,获得前一半的语音数据块使用的是第一算子,获得后一半的语音数据块使用的是第二算子,将两部分语音数据块拼接使用的是第三算子,进行转置操作使用的是第四算子。
[0141]
由于使用for循环算子进行分块开始指针以及分块结束指针的确定之间无数据依赖,可以由图形处理器对应的一个处理器内核进行该for循环算子的操作。而通过python源码进行语音数据分块处理具有局限性,只能通过四个算子进行实现,所以通过将python源码转换成通过for循环算子的c 代码可以实现将四个算子融合成一个循环算子,从而减少了运行时使用的图形处理器的处理器内核。
[0142]
步骤403,基于分块开始指针以及分块结束指针,获取至少两个语音数据块。
[0143]
在本技术实施例中,计算机设备基于获取到的分块开始指针以及分块结束指针可以获取到至少两个语音数据块。
[0144]
其中,计算机设备可以获取到至少两个语音数据块对应的分块开始指针以及分块结束指针,将分块开始指针所指示的位置作为语音数据块的起始位置,将分块结束指针所指示的位置作为语音数据块的终止位置,从而确定至少两个语音数据块。
[0145]
步骤404,通过语音分离模型中的第一转置层对至少两个所述语音数据块进行第一转置处理,使得至少两个语音数据块的维度按照时域维度、频域维度、归一化维度的顺序排列。
[0146]
在本技术实施例中,计算机设备通过在语音分离模型的第一分块网络之后设置一个第一转置层,对从第一分块网络输出的至少两个语音数据块通过该第一转置层。
[0147]
在一种可能的实现方式中,通过第一分块网络输出的语音数据块的维度是按照归一化维度、时域维度、频域维度的顺序排列。
[0148]
也就是说,响应于语音数据块经过第一转置层进行第一转置处理时,是将维度顺序为归一化维度、时域维度、频域维度的语音数据块,转置为维度顺序为时域维度、频域维度、归一化维度的语音数据块。
[0149]
其中,第一转置层可以是设置的transpose函数。通过transpose函数进行转置后的语音数据块可以继续进行以下步骤。
[0150]
步骤405,通过语音分离模型中的至少一个第一块处理网络对至少两个语音数据块进行块处理,获得至少两个语音数据块的块处理结果数据。
[0151]
在本技术实施例中,计算机设备将经过第一转置层进行第一转置处理后的语音数据块输入到第一块处理网络中,通过第一块处理网络对至少两个语音数据块进行块处理,可以获取至少两个语音数据块的块处理结果数据。
[0152]
其中,第一块处理网络包含串连的两个第一处理子网络;第一处理子网络用于依次执行以下操作:对输入的语音数据块的时域维度和频域维度进行第二转置处理、对第二转置处理的结果进行循环神经网络处理、对循环神经网络处理的结果的归一化维度进行归一化处理、将归一化处理的结果与第二转置处理的结果进行融合。
[0153]
在一种可能的实现方式中,第一处理子网络包含依次相连的第二转置层、第一循环神经网络层、第一归一化层、以及第一融合层;第二转置层还与第一融合层相连。
[0154]
其中,第二转置层用于对至少两个语音数据块的时域维度和频域维度进行第二转置处理;第一循环神经网络层用于对第二转置处理的结果进行循环神经网络处理以及全连接处理;第一归一化层用于对第一循环神经网络层的处理结果中的归一化维度进行归一化处理;第一融合层用于将第一归一化层的处理结果与第二转置处理的结果进行融合。
[0155]
在一种可能的实现方式中,响应于具有多个第一块处理网络,第一块处理网络之间进行串联,通过将前一个第一块处理网络的输出,输入到后一个第一块处理网络的输入来实现串联。
[0156]
其中,第一归一化层可以是groupnorm的变种算法,即groupnormnhwc。groupnormnhwc是支持输入维度为[时域维度,频域维度,归一化维度]的归一化层。
[0157]
比如,图5是本技术实施例涉及的一种第一块处理网络50的结构示意图。如图5所示,在第一块处理网络(dprnn block)之前设置第一转置层(transpose),执行第一转置操作,通过第一转置操作将dprnn block的输入维度修改为[时域维度,频域维度,归一化维度],响应于输入第一块处理网络之后,通过第二转置层,通过第二转置层执行第二转置操作将维度转置为[频域维度,时域维度,归一化维度],然后输入第一循环神经网络(recurrent neural network,rnn)层,并且同时进行全连接(fully connected layers,fc)操作,然后通过第一归一化层(groupnormnhwc)进行归一化处理后,由第一融合层将第一归一化层的处理结果与第二转置处理的结果进行融合,接着输入进行串联的另一个第一处理子网络。由此可知,在模型运行过程中,当整个dprnn中增加一个transpose的额外计算量的情况下,每个第一块处理网络dprnn block都可以减少2个transpose的计算量。
[0158]
在另一种可能的实现方式中,第一编程语言编写的drprnn模型包括第二分块网络、至少一个第二块处理网络以及第二重叠相加网络;第二块处理网络包含串连的两个第二处理子网络;输入第二处理子网络的语音数据块的维度按照归一化维度、时域维度、频域维度的顺序排列;第二处理子网络用于依次执行以下操作:对输入的语音数据块的归一化维度和频域维度进行第三转置处理、对第三转置处理的结果进行循环神经网络处理、对循环神经网络处理的结果的归一化维度和频域维度进行第四转置处理、对第四转置处理的结果的归一化维度进行归一化处理、将归一化处理的结果与输入的语音数据块进行融合。
[0159]
其中,第二处理子网络可以包括包含依次相连的第三转置层、第二循环神经网络层、第四转置层、第二归一化层、以及第二融合层;第二融合层还与第二处理子网络的输入
口相连。
[0160]
其中,第三转置层用于对输入的语音数据块的归一化维度和频域维度进行第三转置处理;第二循环神经网络层用于对第三转置处理的结果进行循环神经网络处理和全连接处理;第四转置层对第二循环神经网络层的处理结果的归一化维度和频域维度进行第四转置处理;第二归一化层用于对第四转置处理的结果的归一化维度进行归一化处理;第二融合层用于将第二归一化层的处理结果与输入的语音数据块进行融合。
[0161]
其中,第二归一化层可以是groupnorm算法。groupnorm是仅支持输入维度为[归一化维度,时域维度,频域维度]的归一化层。
[0162]
通过第二块处理网络对语音数据进行块处理时,需要在一个第二块处理网络中设置四个transpose操作,依次实现块处理。相比于第一块处理网络在进行运行的过程中需要进行冗余的transpose计算,从而加大了终端的运算量。
[0163]
步骤406,通过语音分离模型中的第一重叠相加网络,对至少一个第一块处理网络的块处理结果进行重叠相加处理,获得语音数据的语音分离结果。
[0164]
综上所述,在本技术实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
[0165]
由上述实施例可知,dprnn模型与常规模型相比,不容易达到上线部署速度的要求。
[0166]
其中,不容易达到上线部署速度的要求的原因包括:
[0167]
1)dprnn模型输入数据较大导致需要进行的计算量巨大。
[0168]
比如,dprnn模型的输入大小为输入语音数据的采样点数量,对于16k格式长度为4s的输入语音,输入长度高达4*16000=64000。
[0169]
2)dprnn模型中包含bi

rnn结构。
[0170]
其中,由于rnn本身的结构问题,导致dprnn模型无法并行计算。
[0171]
3)dprnn模型结构不规则,且复杂度高。
[0172]
比如,dprnn模型的第一分块网络以及第一重叠相加网络在pytorch的模型源码中,需要执行多个算子操作才能完成实现。
[0173]
为了解决以上问题,可以通过改变上线引擎的选择,对模型进行精简优化以及对算子进行融合优化。
[0174]
图6是根据一示例性实施例示出的一种优化后的语音分离系统的结构示意图。如图6所示,需要进行语音分离的语音数据,其长度为l,维度为n,将该语音数据输入到第一分块网络61中,通过该第一分块网络61将语音数据切分为具有一般重叠区域的语音数据块,
其中切分的各个语音数据块的长度为2p,重叠区域长度为p,将语音数据切分为s个语音数据块,将各个语音数据块进行拼接,将输入维度由二维改变为三维。将语音数据块经过第一转置层进行转置操作,由维度为[归一化维度,时域维度,频域维度]转换为[时域维度,频域维度,归一化维度],将维度为[时域维度,频域维度,归一化维度]的语音数据块输入第一块处理网络62,通过第二转置层将语音数据块对应的维度转换为[频域维度,时域维度,归一化维度],然后通过循环神经网络层以及全连接层对该语音数据块进行处理,之后通过第一归一化层对该语音数据块进行归一化维度的归一化处理,然后在第一融合层与第二转置层处理完成的语音数据块进行融合,输入给该第一块处理网络62的另一个第一处理子网络,再次进行上述第一处理子网络的步骤进行处理,由该第一处理子网络输出的语音数据块可以输入到下一个第一块处理网络62的第一个第一处理子网络中进行处理。当语音数据块经过各个第一块处理网络62进行处理完成后,将输出的块处理结果输入到第一重叠相加网络63,通过对至少一个第一块处理网络的块处理结果进行重叠相加处理,获得语音数据的语音分离结果,该语音分离结果可以是长度为l,维度为n的分离后的语音数据。
[0175]
图7是根据一示例性实施例示出的一种未经过优化的语音分离系统的结构示意图,如图7所示,在模型结构上,分块网络64与第一分块网络61相同,重叠相加网络66与第一重叠相加网络63相同。相较于优化后的语音分离模型,针对块处理网络65的结构进行了优化,将维度为[归一化维度,时域维度,频域维度]的语音数据块输入块处理网络65中,通过转置层进行一次转置,维度转换为[频域维度,时域维度,归一化维度],然后通过循环神经网络层以及全连接层对该语音数据块进行处理,再通过转置层进行第二次转置,将维度转换为[归一化维度,时域维度,频域维度],之后通过归一化层对该语音数据块进行归一化维度的归一化处理,其中,该归一化层为常规groupnorm,优化后的第一归一化层为变种的groupnorm,然后在融合层与输入块处理网络65的语音数据块进行融合,输入给该块处理网络65的另一个处理子网络,再次按照上述处理子网络的步骤进行处理,也就是说,经过一个块处理网络需要进行至少四次转置层进行维度转置,与优化后的语音分离模型相比,同样经过两个块处理网络,未经过优化的模型需要进行至少八次转置,而优化后的模型一共只需要进行三次转置,经过对比可以确定优化后的语音分离模型的模型结构更加精简,需要进行的计算量大大减少,从而可以提高语音数据处理的速度。
[0176]
综上所述,在本技术实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
[0177]
图8是根据一示例性实施例示出的一种语音分离装置的结构方框图。该语音分离装置可以实现图1或图4所示实施例提供的方法中的全部或部分步骤,该装置包括:
[0178]
数据块获取模块810,用于通过语音分离模型中的第一分块网络对输入的语音数据进行分块,获得至少两个语音数据块;
[0179]
第一转置模块820,用于通过所述语音分离模型中的第一转置层对至少两个所述语音数据块进行第一转置处理,使得至少两个所述语音数据块的维度按照时域维度、频域维度、归一化维度的顺序排列;
[0180]
块处理模块830,用于通过所述语音分离模型中的至少一个第一块处理网络对至少两个所述语音数据块进行块处理,获得至少两个所述语音数据块的块处理结果数据;所述第一块处理网络包含串连的两个第一处理子网络;所述第一处理子网络用于依次执行以下操作:对输入的语音数据块的时域维度和频域维度进行第二转置处理、对所述第二转置处理的结果进行循环神经网络处理、对所述循环神经网络处理的结果的归一化维度进行归一化处理、将所述归一化处理的结果与所述第二转置处理的结果进行融合;
[0181]
结果获取模块840,用于通过所述语音分离模型中的第一重叠相加网络,对至少一个所述第一块处理网络的块处理结果进行重叠相加处理,获得所述语音数据的语音分离结果。
[0182]
在一种可能的实现方式中,所述第一处理子网络包含依次相连的第二转置层、第一循环神经网络层、第一归一化层、以及第一融合层;所述第二转置层还与所述第一融合层相连;
[0183]
所述第二转置层用于对所述至少两个所述语音数据块的时域维度和频域维度进行第二转置处理;
[0184]
所述第一循环神经网络层用于对所述第二转置处理的结果进行循环神经网络处理以及全连接处理;
[0185]
所述第一归一化层用于对所述第一循环神经网络层的处理结果中的归一化维度进行归一化处理;
[0186]
所述第一融合层用于将所述第一归一化层的处理结果与所述第二转置处理的结果进行融合。
[0187]
在一种可能的实现方式中,所述数据块获取模块810,包括:
[0188]
指针获取子模块,用于基于循环算子,对所述语音数据进行循环处理,获取至少两个所述语音数据块的分块开始指针以及分块结束指针;
[0189]
数据块获取子模块,用于基于所述分块开始指针以及所述分块结束指针,获取至少两个所述语音数据块。
[0190]
在一种可能的实现方式中,所述循环算子由图像处理器中的单个处理器内核执行。
[0191]
在一种可能的实现方式中,所述数据块获取模块810,包括:
[0192]
第一子模块,用于基于第一算子,获取所述语音数据块的前段语音数据块;
[0193]
第二子模块,用于基于第二算子,获取所述语音数据块的后段语音数据块;
[0194]
第三子模块,用于基于第三算子,将所述语音数据块对应的所述前段语音数据块与所述后段语音数据块进行拼接,生成拼接后的所述语音数据块;
[0195]
第四子模块,用于基于第四算子,对所述拼接后的语音数据块进行转置处理。
[0196]
在一种可能的实现方式中,所述第一算子、所述第二算子、所述第三算子以及所述
第四算子分别由图像处理器中的一个处理器内核执行。
[0197]
在一种可能的实现方式中,所述语音分离模型为双路径递归神经网络dprnn模型。
[0198]
在一种可能的实现方式中,所述语音分离模型是对第一编程语言编写的所述dprnn模型进行代码翻译获得的。
[0199]
在一种可能的实现方式中,所述第一编程语言编写的dprnn模型是基于pytorch训练获得的模型。
[0200]
在一种可能的实现方式中,所述第一编程语言编写的dprnn模型包括第二分块网络、至少一个第二块处理网络以及第二重叠相加网络;所述第二块处理网络包含串连的两个第二处理子网络;
[0201]
输入所述第二处理子网络的语音数据块的维度按照归一化维度、时域维度、频域维度的顺序排列;
[0202]
所述第二处理子网络用于依次执行以下操作:对输入的语音数据块的归一化维度和频域维度进行第三转置处理、对所述第三转置处理的结果进行循环神经网络处理、对所述循环神经网络处理的结果的归一化维度和频域维度进行第四转置处理、对所述第四转置处理的结果的归一化维度进行归一化处理、将所述归一化处理的结果与输入的语音数据块进行融合。
[0203]
在一种可能的实现方式中,所述第二处理子网络包括包含依次相连的第三转置层、第二循环神经网络层、第四转置层、第二归一化层、以及第二融合层;所述第二融合层还与所述第二处理子网络的输入口相连;
[0204]
所述第三转置层用于对输入的语音数据块的归一化维度和频域维度进行第三转置处理;
[0205]
所述第二循环神经网络层用于对所述第三转置处理的结果进行循环神经网络处理和全连接处理;
[0206]
所述第四转置层对所述第二循环神经网络层的处理结果的归一化维度和频域维度进行第四转置处理;
[0207]
所述第二归一化层用于对所述第四转置处理的结果的归一化维度进行归一化处理;
[0208]
所述第二融合层用于将所述第二归一化层的处理结果与输入的语音数据块进行融合。
[0209]
综上所述,在本技术实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
[0210]
图9是根据一示例性实施例示出的一种语音分离装置的结构方框图。该语音分离装置可以实现图3或图4所示实施例提供的方法中的全部或部分步骤,该语音分离装置包括:
[0211]
第一源码获取模块910,用于获取在第一编码语言环境下训练生成的语音分离模型的第一模型源码;所述语音分离模型是用于在时域维度下进行语音分离的神经网络模型;
[0212]
第二源码获取模块920,用于基于所述第一模型源码进行编码语言翻译和指定调整,获得第二编码语言编写的第二模型源码;所述指定调整用于实现所述语音分离模型的目标功能的前提下减少所述语音分离模型的运算量;
[0213]
源码运行模块930,用于在第一引擎中运行所述第二模型源码,以实现所述语音分离模型的所述目标功能;所述第一引擎是支持所述第二编码语言的引擎。
[0214]
综上所述,在本技术实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
[0215]
图10是根据一示例性实施例示出的一种计算机设备的结构示意图。该计算机设备可以实现为上述各个方法实施例中的分布式系统。所述计算机设备1000包括中央处理单元(cpu,central processing unit)1001、包括随机存取存储器(random access memory,ram)1002和只读存储器(read

only memory,rom)1003的系统存储器1004,以及连接系统存储器1004和中央处理单元1001的系统总线1005。所述计算机设备1000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统1006,和用于存储操作系统1013、应用程序1014和其他程序模块1015的大容量存储设备1007。
[0216]
所述大容量存储设备1007通过连接到系统总线1005的大容量存储控制器(未示出)连接到中央处理单元1001。所述大容量存储设备1007及其相关联的计算机可读介质为计算机设备1000提供非易失性存储。也就是说,所述大容量存储设备1007可以包括诸如硬盘或者光盘只读存储器(compact disc read

only memory,cd

rom)驱动器之类的计算机可读介质(未示出)。
[0217]
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、闪存或其他固态存储其技术,cd

rom、或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量存储设备1007可以统称为存储器。
[0218]
计算机设备1000可以通过连接在所述系统总线1005上的网络接口单元1011连接到互联网或者其它网络设备。
[0219]
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器1001通过执行该一个或一个以上程序来实现图1、图3或图4所示的方法的全部或者部分步骤。
[0220]
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括计算机程序(指令)的存储器,上述程序(指令)可由计算机设备的处理器执行以完成本技术各个实施例所示的方法。例如,所述非临时性计算机可读存储介质可以是只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read

only memory,cd

rom)、磁带、软盘和光数据存储设备等。
[0221]
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例所示的语音分离方法。
[0222]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由权利要求指出。
[0223]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜