CN113516996A - 语音分离方法、装置、计算机设备及存储介质 - Google Patents

语音分离方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN113516996A
CN113516996A CN202110025617.9A CN202110025617A CN113516996A CN 113516996 A CN113516996 A CN 113516996A CN 202110025617 A CN202110025617 A CN 202110025617A CN 113516996 A CN113516996 A CN 113516996A
Authority
CN
China
Prior art keywords
processing
voice data
block
network
voice
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110025617.9A
Other languages
English (en)
Other versions
CN113516996B (zh
Inventor
杨伟光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110025617.9A priority Critical patent/CN113516996B/zh
Publication of CN113516996A publication Critical patent/CN113516996A/zh
Application granted granted Critical
Publication of CN113516996B publication Critical patent/CN113516996B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0272Voice signal separating
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Quality & Reliability (AREA)
  • Machine Translation (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请是关于一种语音分离方法、装置、计算机设备及存储介质,涉及人工智能技术领域。所述方法包括:通过语音分离模型中的第一分块网络对输入的语音数据进行分块,通过第一转置层对语音数据块进行第一转置处理;通过语音分离模型中的第一块处理网络对语音数据块进行块处理,获得至少两个所述语音数据块的块处理结果数据;通过语音分离模型中的第一重叠相加网络,对第一块处理网络的块处理结果进行重叠相加处理,获得所述语音数据的语音分离结果。通过上述方案,在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。

Description

语音分离方法、装置、计算机设备及存储介质
技术领域
本申请实施例涉及人工智能技术领域,特别涉及一种语音分离方法、装置、计算机设备及存储介质。
背景技术
随着人工智能技术的不断发展,可以通过构建神经网络模型将目标语音从背景音中分离出来。其中,构建的神经网络模型可以是基于PyTorch训练得到的DPRNN(Dual PathRecurrent Neural Network,双路径递归神经网络)模型。
在相关技术中,通过该DPRNN模型进行语音分离时,首先将语音数据进行分开处理,然后将分块后的语音数据块通过该DPRNN模型中的至少一个块处理网络进行处理,最后将块处理网络的处理结果进行重叠相加,得到分离后的语音。
然而,相关技术中的DRPNN模型的模型结构较为复杂,导致模型的处理速度较慢,进而影响语音分离的效率。
发明内容
本申请实施例提供了一种语音分离方法、装置、计算机设备及存储介质,通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而提高模型的处理速度,进而提高语音分离的效率。该技术方案如下。
一方面,提供了一种语音分离方法,所述方法包括:
通过语音分离模型中的第一分块网络对输入的语音数据进行分块,获得至少两个语音数据块;
通过所述语音分离模型中的第一转置层对至少两个所述语音数据块进行第一转置处理,使得至少两个所述语音数据块的维度按照时域维度、频域维度、归一化维度的顺序排列;
通过所述语音分离模型中的至少一个第一块处理网络对至少两个所述语音数据块进行块处理,获得至少两个所述语音数据块的块处理结果数据;所述第一块处理网络包含串连的两个第一处理子网络;所述第一处理子网络用于依次执行以下操作:对输入的语音数据块的时域维度和频域维度进行第二转置处理、对所述第二转置处理的结果进行循环神经网络处理、对所述循环神经网络处理的结果的归一化维度进行归一化处理、将所述归一化处理的结果与所述第二转置处理的结果进行融合;
通过所述语音分离模型中的第一重叠相加网络,对至少一个所述第一块处理网络的块处理结果进行重叠相加处理,获得所述语音数据的语音分离结果。
一方面,提供了一种语音分离方法,所述方法包括:
获取在第一编码语言环境下训练生成的语音分离模型的第一模型源码;所述语音分离模型是用于在时域维度下进行语音分离的神经网络模型;
基于所述第一模型源码进行编码语言翻译和指定调整,获得第二编码语言编写的第二模型源码;所述指定调整用于实现所述语音分离模型的目标功能的前提下减少所述语音分离模型的运算量;
在第一引擎中运行所述第二模型源码,以实现所述语音分离模型的所述目标功能;所述第一引擎是支持所述第二编码语言的引擎。
又一方面,提供了一种语音分离装置,所述装置包括:
数据块获取模块,用于通过语音分离模型中的第一分块网络对输入的语音数据进行分块,获得至少两个语音数据块;
第一转置模块,用于通过所述语音分离模型中的第一转置层对至少两个所述语音数据块进行第一转置处理,使得至少两个所述语音数据块的维度按照时域维度、频域维度、归一化维度的顺序排列;
块处理模块,用于通过所述语音分离模型中的至少一个第一块处理网络对至少两个所述语音数据块进行块处理,获得至少两个所述语音数据块的块处理结果数据;所述第一块处理网络包含串连的两个第一处理子网络;所述第一处理子网络用于依次执行以下操作:对输入的语音数据块的时域维度和频域维度进行第二转置处理、对所述第二转置处理的结果进行循环神经网络处理、对所述循环神经网络处理的结果的归一化维度进行归一化处理、将所述归一化处理的结果与所述第二转置处理的结果进行融合;
结果获取模块,用于通过所述语音分离模型中的第一重叠相加网络,对至少一个所述第一块处理网络的块处理结果进行重叠相加处理,获得所述语音数据的语音分离结果。
在一种可能的实现方式中,所述第一处理子网络包含依次相连的第二转置层、第一循环神经网络层、第一归一化层、以及第一融合层;所述第二转置层还与所述第一融合层相连;
所述第二转置层用于对所述至少两个所述语音数据块的时域维度和频域维度进行第二转置处理;
所述第一循环神经网络层用于对所述第二转置处理的结果进行循环神经网络处理以及全连接处理;
所述第一归一化层用于对所述第一循环神经网络层的处理结果中的归一化维度进行归一化处理;
所述第一融合层用于将所述第一归一化层的处理结果与所述第二转置处理的结果进行融合。
在一种可能的实现方式中,所述数据块获取模块,包括:
指针获取子模块,用于基于循环算子,对所述语音数据进行循环处理,获取至少两个所述语音数据块的分块开始指针以及分块结束指针;
数据块获取子模块,用于基于所述分块开始指针以及所述分块结束指针,获取至少两个所述语音数据块。
在一种可能的实现方式中,所述循环算子由图像处理器中的单个处理器内核执行。
在一种可能的实现方式中,所述数据块获取模块,包括:
第一子模块,用于基于第一算子,获取所述语音数据块的前段语音数据块;
第二子模块,用于基于第二算子,获取所述语音数据块的后段语音数据块;
第三子模块,用于基于第三算子,将所述语音数据块对应的所述前段语音数据块与所述后段语音数据块进行拼接,生成拼接后的所述语音数据块;
第四子模块,用于基于第四算子,对所述拼接后的语音数据块进行转置处理。
在一种可能的实现方式中,所述第一算子、所述第二算子、所述第三算子以及所述第四算子分别由图像处理器中的一个处理器内核执行。
在一种可能的实现方式中,所述语音分离模型为双路径递归神经网络DPRNN模型。
在一种可能的实现方式中,所述语音分离模型是对第一编程语言编写的所述DPRNN模型进行代码翻译获得的。
在一种可能的实现方式中,所述第一编程语言编写的DPRNN模型是基于PyTorch训练获得的模型。
在一种可能的实现方式中,所述第一编程语言编写的DPRNN模型包括第二分块网络、至少一个第二块处理网络以及第二重叠相加网络;所述第二块处理网络包含串连的两个第二处理子网络;
输入所述第二处理子网络的语音数据块的维度按照归一化维度、时域维度、频域维度的顺序排列;
所述第二处理子网络用于依次执行以下操作:对输入的语音数据块的归一化维度和频域维度进行第三转置处理、对所述第三转置处理的结果进行循环神经网络处理、对所述循环神经网络处理的结果的归一化维度和频域维度进行第四转置处理、对所述第四转置处理的结果的归一化维度进行归一化处理、将所述归一化处理的结果与输入的语音数据块进行融合。
在一种可能的实现方式中,所述第二处理子网络包括包含依次相连的第三转置层、第二循环神经网络层、第四转置层、第二归一化层、以及第二融合层;所述第二融合层还与所述第二处理子网络的输入口相连;
所述第三转置层用于对输入的语音数据块的归一化维度和频域维度进行第三转置处理;
所述第二循环神经网络层用于对所述第三转置处理的结果进行循环神经网络处理和全连接处理;
所述第四转置层对所述第二循环神经网络层的处理结果的归一化维度和频域维度进行第四转置处理;
所述第二归一化层用于对所述第四转置处理的结果的归一化维度进行归一化处理;
所述第二融合层用于将所述第二归一化层的处理结果与输入的语音数据块进行融合。
再一方面,提供了一种语音分离装置,所述装置包括:
第一源码获取模块,用于获取在第一编码语言环境下训练生成的语音分离模型的第一模型源码;所述语音分离模型是用于在时域维度下进行语音分离的神经网络模型;
第二源码获取模块,用于基于所述第一模型源码进行编码语言翻译和指定调整,获得第二编码语言编写的第二模型源码;所述指定调整用于实现所述语音分离模型的目标功能的前提下减少所述语音分离模型的运算量;
源码运行模块,用于在第一引擎中运行所述第二模型源码,以实现所述语音分离模型的所述目标功能;所述第一引擎是支持所述第二编码语言的引擎。
再一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述的语音分离方法。
又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述语音分离方法。
再一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述语音分离方法。
本申请提供的技术方案可以包括以下有益效果:
在本申请实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种语音分离方法的流程图;
图2是根据一示例性实施例示出的一种语音分离系统的示意图;
图3是根据一示例性实施例示出的一种语音分离方法的流程图;
图4是根据一示例性实施例示出的一种语音分离方法的流程图;
图5是图4所示实施例涉及的一种第一块处理网络的结构示意图;
图6是根据一示例性实施例示出的一种优化后的语音分离系统的结构示意图;
图7是根据一示例性实施例示出的一种未经过优化的语音分离系统的结构示意图;
图8是根据一示例性实施例示出的一种语音分离装置的结构方框图;
图9是根据一示例性实施例示出的一种语音分离装置的结构方框图;
图10是根据一示例性实施例示出的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
应当理解的是,在本文中提及的“若干个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
为了方便理解,下面对本申请实施例中涉及的名词进行说明。
1)人工智能(Artificial Intelligence,AI)
人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
2)机器学习(Machine Learning,ML)
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。
3)语音技术(Speech Technology)
语音技术的关键技术有自动语音识别技术(Automatic Speech Recognition,ASR)和语音合成技术(Text-To-Speech,TTS)以及声纹识别技术。让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中语音成为未来最被看好的人机交互方式之一。
4)语音分离技术
语音分离技术的目标是把目标语音从背景干扰音中分离出来。在信号处理过程中,语音分离的应用范围很广泛,其中包括听力假体、移动通信、鲁棒的自动语音以及说话人识别等。人类听觉系统能轻易地将一个人的声音和另一个人的分离开来。即使在鸡尾酒会那样的声音环境中,也能在其他人的说话声和环境噪声的包围中听到一个人的说话内容。因此语音分离问题通常也被叫做“鸡尾酒会问题”。
图1是根据一示例性实施例示出的一种语音分离方法的流程图。该语音分离方法可以由计算机设备执行。比如,该计算机设备可以包括终端或者服务器中的至少一种。如图1所示,该语音分离方法包括的步骤如下:
步骤101,通过语音分离模型中的第一分块网络对输入的语音数据进行分块,获得至少两个语音数据块。
在本申请实施例中,计算机设备中构建有用于进行语音分离的语音分离模型,且该语音分离模型中包含第一分块网络,通过第一分块网络中的算法对输入的语音数据进行分块,获得至少两个语音数据块。
其中,第一分块网络可以是用于对语音数据进行分块处理的部分模型,第一分块网络输入的是语音数据,输出的是至少两个语音数据块。
步骤102,通过语音分离模型中的第一转置层对至少两个语音数据块进行第一转置处理,使得至少两个语音数据块的维度按照时域维度、频域维度、归一化维度的顺序排列。
在本申请实施例中,计算机设备将从第一分块网络输出的至少两个语音数据块通过语音分离模型中的第一转置层进行第一转置处理,将至少两个语音数据块的维度按照时域维度、频域维度以及归一化维度的顺序进行排序。
其中,从第一分块网络输出的至少两个语音数据块的维度可以是按照归一化维度、时域维度、频域维度进行排序的。
步骤103,通过语音分离模型中的至少一个第一块处理网络对至少两个语音数据块进行块处理,获得至少两个语音数据块的块处理结果数据;第一块处理网络包含串连的两个第一处理子网络;第一处理子网络用于依次执行以下操作:对输入的语音数据块的时域维度和频域维度进行第二转置处理、对第二转置处理的结果进行循环神经网络处理、对循环神经网络处理的结果的归一化维度进行归一化处理、将归一化处理的结果与第二转置处理的结果进行融合。
在本申请实施例中,计算机设备将经过第一转置处理后的至少两个语音数据块通过至少一个第一块处理网络,对至少两个语音数据块进行块处理,获得至少两个语音数据块的块处理结果数据。
其中,第一块处理网络中包含串联的两个第一处理子网络,每个第一处理子网络可以依次对输入的语音数据块的时域维度和频域维度进行第二转置处理,然后对第二转置处理的结果进行循环神经网络处理,然后对循环神经网络处理的结果的归一化维度进行归一化处理,最后将归一化处理的结果与第二转置处理的结果进行融合。
步骤104,通过语音分离模型中的第一重叠相加网络,对至少一个第一块处理网络的块处理结果进行重叠相加处理,获得语音数据的语音分离结果。
在本申请实施例中,计算机设备将第一块处理网络输出的至少一个块处理结果数据进行重叠相加处理,可以获取到该语音数据对应的语音分离结果。
其中,第一重叠相加网络是用于基于块处理后的语音数据块恢复生成分离后的语音数据。
综上所述,在本申请实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
本申请上述实施例所示的方案,可以应用在任意的语音分离的场景。
比如,在短视频中,由于短视频中存在添加的背景音乐、录制过程中的背景噪声或者是录制过程中其他人声,为了将目标语音从中进行分离,可以通过将短视频对应的语音数据输入到语音分离模型中,通过语音分离模型对语音数据进行分块处理后可以获取其中的目标语音。由于短视频中涉及到的语音数据长度较大,本申请所示方案中,将语音数据块输入第一块处理网络中仅需要进行两次转置操作,相较于现有技术中需要进行四次转置操作,大大减少了进行转置操作的运算量,并且需要处理的语音数据量越大,通过第一块处理网络进行块处理的优势越大。
在一种示例性的方案中,本申请上述实施例的方案涉及的系统包括语音数据分块部分、语音数据块处理部分以及语音数据块重叠相加部分。图2是根据一示例性实施例示出的一种语音分离系统的示意图。如图2所示,语音分离模型中包括语音数据分块部分、语音数据块处理部分以及语音数据块重叠相加部分。在模型训练时,模型训练设备220通过输入的语音数据样本训练出语音分离模型,在应用时,语音分离设备240可以在屏幕上显示用于输入或者选择语音数据的页面,通过该页面将语音数据输入训练完成的语音分离模型中,也可以通过该语音分离设备240对分离后的语音数据进行下载。
其中,上述模型训练设备220可以是具有机器学习能力的计算机设备,比如,该计算机设备可以是个人电脑、服务器以及固定式科研设备等固定式计算机设备,或者,该计算机设备也可以是平板电脑、电子书阅读器等移动式计算机设备。本申请实施例对于模型训练设备220的具体类型不做限定。
其中,语音分离设备240可以是计算机设备。该计算机设备可以具有屏幕显示功能。
在一种可能的实现方式中,以该语音分离系统应用于短视频语音分离场景下为例,当用户使用语音分离设备240输入短视频语音数据时,通过语音分离模型中的第一分块网络可以对输入的短视频语音数据进行分块,获得至少两个语音数据块,通过将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成短视频语音数据对应的语音分离结果,即获取到从短视频中分离出的目标语音。
图3是根据一示例性实施例示出的一种语音分离方法的流程图。该语音分离方法可以由计算机设备执行。如图3所示,该语音分离方法包括的步骤如下:
步骤301中,获取在第一编码语言环境下训练生成的语音分离模型的第一模型源码;语音分离模型是用于在时域维度下进行语音分离的神经网络模型。
步骤302中,基于第一模型源码进行编码语言翻译和指定调整,获得第二编码语言编写的第二模型源码;指定调整用于实现语音分离模型的目标功能的前提下减少语音分离模型的运算量。
步骤303中,在第一引擎中运行第二模型源码,以实现语音分离模型的目标功能;第一引擎是支持第二编码语言的引擎。
综上所述,在本申请实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
图4是根据一示例性实施例示出的一种语音分离方法的流程图。该语音分离方法可以由计算机设备执行。比如,该计算机设备可以包括终端或者服务器中的至少一种。如图4所示,该语音分离方法包括的步骤如下:
步骤401,将语音数据输入语音分离模型。
在本申请实施例中,计算机设备中存在有训练完成的语音分离模型,确定需要进行语音分离的语音数据,将语音数据输入到该语音分离模型中。
在一种可能的实现方式中,语音分离模型为双路径递归神经网络DPRNN模型。
其中,语音分离模型可以是对第一编程语言编写的DPRNN模型进行代码翻译获得的。第一编程语言编写的DPRNN模型是基于PyTorch训练获得的模型。
示例性的,DPRNN模型可以是基于PyTorch框架训练得到的,其中,为了通过libtorch引擎进行上线运行,基于PyTorch框架训练得到的DPRNN模型可以转换为TorchScript格式的模型,其中,TorchScript格式的模型既可以被PyTorch读取使用,也可以被libtorch读取使用。但是,语音分离模型通过libtorch进行上线运行,会导致模型中的部分算子出现冗余的情况,从而导致语音分离模型通过libtorch进行上线运行的运行速度较慢。
在一种可能的实现方式中,为了提高语音分离模型的上线运行速度,将DPRNN模型使用的上线引擎确定为TensorRT引擎。
其中,TensorRT引擎是针对于图形处理器开发的上线引擎,且该引擎具有plugin特性,可以支持为模型定制深度优化,提高了DPRNN模型的灵活性。同时,TensorRT上线引擎保证了整个网络计算流程可以有效利用GPU的计算资源。
在一种可能的实现方式中,语音分离模型包括第一分块网络、第一块处理网络以及第一重叠相加网络。
其中,输入的语音数据可以优先通过第一分块网络,经过第一分块网络处理后通过第一块处理网络,由至少一个第一块处理网络处理完成后通过第一重叠相加网络进行处理,最终输出分离的语音数据。
步骤402,基于循环算子,对语音数据进行循环处理,获取至少两个语音数据块的分块开始指针以及分块结束指针。
在本申请实施例中,计算机设备通过进行循环算子操作,对语音数据进行循环处理,获取语音数据对应的至少两个语音数据块的分块开始指针以及分块结束指针。
在一种可能的实现方式中,输入到语音分离模型中的语音数据优先通过第一分块网络,在第一分块网络中基于循环算子,对该语音数据进行循环处理,获取该语音数据对应的至少两个语音数据块的分块开始指针以及分块结束指针。
其中,分块开始指针用于指示该语音数据中的至少两个语音数据块对应的开始分块的位置;分块结束指针用于指示该语音数据中的至少两个语音数据块对应的结束分块的位置。
也就是说,分块开始指针以及分块结束指针用于指示至少两个语音数据块在语音数据中的位置。
在一种可能的实现方式中,循环算子由图像处理器中的单个处理器内核执行。
示例性的,通过C++编码语言可以利用for循环算子作为该循环算子获取该语音数据对应的至少两个语音数据块的分块开始指针以及分块结束指针。
比如,获取该语音数据对应的至少两个语音数据块的分块开始指针以及分块结束指针对应的C++代码如下所示。
Figure BDA0002890213330000131
其中,batch_size是语音数据长度,N是语音数据的帧数,T是语音数据特征维度,segment_size是语音数据块长度,segment_stride是语音数据块之间的重叠区域大小,S是一帧语音数据切分成语音数据块的数量。
在另一种可能的实现方式中,基于第一算子,获取语音数据块的前段语音数据块;基于第二算子,获取语音数据块的后段语音数据块;基于第三算子,将语音数据块对应的前段语音数据块与后段语音数据块进行拼接,生成拼接后的语音数据块;基于第四算子,对拼接后的语音数据块进行转置处理。
也就是说,计算机设备可以分别通过使用第一算子、第二算子、第三算子以及第四算子对实现对语音数据进行分块处理,获取对应的语音数据块。
其中,第一算子、第二算子、第三算子以及第四算子可以是相同、部分相同或者不同的算子,第一算子、第二算子、第三算子以及第四算子分别由图像处理器中的一个处理器内核执行。
示例性的,通过PyTorch框架对应的第一编码语言可以利用四个算子分别获取该语音数据对应的至少两个语音数据块的前段语音数据块以及后段语音数据块,然后将前段语音数据块与后段语音数据块进行拼接,最后将拼接后生成的语音数据块进行转置操作。
比如,将输入语音数据分割成语音数据块,语音数据块的大小为(N,segment_size),再将各个语音数据块拼接起来。其中,相邻的两个语音数据块存在一半的重叠区域。输入语音数据,该语音数据大小为(B,N,T),其中,B为batch_size,N为语音数据对应的帧数,T为语音数据对应的特征维度。输出语音数据块,其大小为(B,S,N,segment_size)。其中,S为语音数据块的数量。对语音数据进行分块处理对应的PyTorch源码如下所示。
#获得输入的语音数据对应的维度和语音数据块重叠的大小
batch_size,N,T=input.shape
segment_stride=segment_size/2
#获得前一半的语音数据块
segments1=input[:,:,:-segment_stride].contiguous().view(batch_size,N,-1,segment_size)
#获得后一半的语音数据块
segments2=input[:,:,segment_stride:].contiguous().view(batch_size,N,-1,segment_size)
#将两部分语音数据块拼接后并转置
segments=torch.cat([segments1,segments2],3).view(batch_size,N,-1,segment_size).transpose(2,3)
return segments.contiguous()
其中,获得前一半的语音数据块使用的是第一算子,获得后一半的语音数据块使用的是第二算子,将两部分语音数据块拼接使用的是第三算子,进行转置操作使用的是第四算子。
由于使用for循环算子进行分块开始指针以及分块结束指针的确定之间无数据依赖,可以由图形处理器对应的一个处理器内核进行该for循环算子的操作。而通过Python源码进行语音数据分块处理具有局限性,只能通过四个算子进行实现,所以通过将Python源码转换成通过for循环算子的C++代码可以实现将四个算子融合成一个循环算子,从而减少了运行时使用的图形处理器的处理器内核。
步骤403,基于分块开始指针以及分块结束指针,获取至少两个语音数据块。
在本申请实施例中,计算机设备基于获取到的分块开始指针以及分块结束指针可以获取到至少两个语音数据块。
其中,计算机设备可以获取到至少两个语音数据块对应的分块开始指针以及分块结束指针,将分块开始指针所指示的位置作为语音数据块的起始位置,将分块结束指针所指示的位置作为语音数据块的终止位置,从而确定至少两个语音数据块。
步骤404,通过语音分离模型中的第一转置层对至少两个所述语音数据块进行第一转置处理,使得至少两个语音数据块的维度按照时域维度、频域维度、归一化维度的顺序排列。
在本申请实施例中,计算机设备通过在语音分离模型的第一分块网络之后设置一个第一转置层,对从第一分块网络输出的至少两个语音数据块通过该第一转置层。
在一种可能的实现方式中,通过第一分块网络输出的语音数据块的维度是按照归一化维度、时域维度、频域维度的顺序排列。
也就是说,响应于语音数据块经过第一转置层进行第一转置处理时,是将维度顺序为归一化维度、时域维度、频域维度的语音数据块,转置为维度顺序为时域维度、频域维度、归一化维度的语音数据块。
其中,第一转置层可以是设置的Transpose函数。通过Transpose函数进行转置后的语音数据块可以继续进行以下步骤。
步骤405,通过语音分离模型中的至少一个第一块处理网络对至少两个语音数据块进行块处理,获得至少两个语音数据块的块处理结果数据。
在本申请实施例中,计算机设备将经过第一转置层进行第一转置处理后的语音数据块输入到第一块处理网络中,通过第一块处理网络对至少两个语音数据块进行块处理,可以获取至少两个语音数据块的块处理结果数据。
其中,第一块处理网络包含串连的两个第一处理子网络;第一处理子网络用于依次执行以下操作:对输入的语音数据块的时域维度和频域维度进行第二转置处理、对第二转置处理的结果进行循环神经网络处理、对循环神经网络处理的结果的归一化维度进行归一化处理、将归一化处理的结果与第二转置处理的结果进行融合。
在一种可能的实现方式中,第一处理子网络包含依次相连的第二转置层、第一循环神经网络层、第一归一化层、以及第一融合层;第二转置层还与第一融合层相连。
其中,第二转置层用于对至少两个语音数据块的时域维度和频域维度进行第二转置处理;第一循环神经网络层用于对第二转置处理的结果进行循环神经网络处理以及全连接处理;第一归一化层用于对第一循环神经网络层的处理结果中的归一化维度进行归一化处理;第一融合层用于将第一归一化层的处理结果与第二转置处理的结果进行融合。
在一种可能的实现方式中,响应于具有多个第一块处理网络,第一块处理网络之间进行串联,通过将前一个第一块处理网络的输出,输入到后一个第一块处理网络的输入来实现串联。
其中,第一归一化层可以是GroupNorm的变种算法,即GroupNormNHWC。GroupNormNHWC是支持输入维度为[时域维度,频域维度,归一化维度]的归一化层。
比如,图5是本申请实施例涉及的一种第一块处理网络50的结构示意图。如图5所示,在第一块处理网络(DPRNN Block)之前设置第一转置层(Transpose),执行第一转置操作,通过第一转置操作将DPRNN Block的输入维度修改为[时域维度,频域维度,归一化维度],响应于输入第一块处理网络之后,通过第二转置层,通过第二转置层执行第二转置操作将维度转置为[频域维度,时域维度,归一化维度],然后输入第一循环神经网络(Recurrent Neural Network,RNN)层,并且同时进行全连接(Fully Connected Layers,FC)操作,然后通过第一归一化层(GroupNormNHWC)进行归一化处理后,由第一融合层将第一归一化层的处理结果与第二转置处理的结果进行融合,接着输入进行串联的另一个第一处理子网络。由此可知,在模型运行过程中,当整个DPRNN中增加一个Transpose的额外计算量的情况下,每个第一块处理网络DPRNN Block都可以减少2个Transpose的计算量。
在另一种可能的实现方式中,第一编程语言编写的DRPRNN模型包括第二分块网络、至少一个第二块处理网络以及第二重叠相加网络;第二块处理网络包含串连的两个第二处理子网络;输入第二处理子网络的语音数据块的维度按照归一化维度、时域维度、频域维度的顺序排列;第二处理子网络用于依次执行以下操作:对输入的语音数据块的归一化维度和频域维度进行第三转置处理、对第三转置处理的结果进行循环神经网络处理、对循环神经网络处理的结果的归一化维度和频域维度进行第四转置处理、对第四转置处理的结果的归一化维度进行归一化处理、将归一化处理的结果与输入的语音数据块进行融合。
其中,第二处理子网络可以包括包含依次相连的第三转置层、第二循环神经网络层、第四转置层、第二归一化层、以及第二融合层;第二融合层还与第二处理子网络的输入口相连。
其中,第三转置层用于对输入的语音数据块的归一化维度和频域维度进行第三转置处理;第二循环神经网络层用于对第三转置处理的结果进行循环神经网络处理和全连接处理;第四转置层对第二循环神经网络层的处理结果的归一化维度和频域维度进行第四转置处理;第二归一化层用于对第四转置处理的结果的归一化维度进行归一化处理;第二融合层用于将第二归一化层的处理结果与输入的语音数据块进行融合。
其中,第二归一化层可以是GroupNorm算法。GroupNorm是仅支持输入维度为[归一化维度,时域维度,频域维度]的归一化层。
通过第二块处理网络对语音数据进行块处理时,需要在一个第二块处理网络中设置四个Transpose操作,依次实现块处理。相比于第一块处理网络在进行运行的过程中需要进行冗余的Transpose计算,从而加大了终端的运算量。
步骤406,通过语音分离模型中的第一重叠相加网络,对至少一个第一块处理网络的块处理结果进行重叠相加处理,获得语音数据的语音分离结果。
综上所述,在本申请实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
由上述实施例可知,DPRNN模型与常规模型相比,不容易达到上线部署速度的要求。
其中,不容易达到上线部署速度的要求的原因包括:
1)DPRNN模型输入数据较大导致需要进行的计算量巨大。
比如,DPRNN模型的输入大小为输入语音数据的采样点数量,对于16K格式长度为4s的输入语音,输入长度高达4*16000=64000。
2)DPRNN模型中包含Bi-RNN结构。
其中,由于RNN本身的结构问题,导致DPRNN模型无法并行计算。
3)DPRNN模型结构不规则,且复杂度高。
比如,DPRNN模型的第一分块网络以及第一重叠相加网络在Pytorch的模型源码中,需要执行多个算子操作才能完成实现。
为了解决以上问题,可以通过改变上线引擎的选择,对模型进行精简优化以及对算子进行融合优化。
图6是根据一示例性实施例示出的一种优化后的语音分离系统的结构示意图。如图6所示,需要进行语音分离的语音数据,其长度为L,维度为N,将该语音数据输入到第一分块网络61中,通过该第一分块网络61将语音数据切分为具有一般重叠区域的语音数据块,其中切分的各个语音数据块的长度为2P,重叠区域长度为P,将语音数据切分为S个语音数据块,将各个语音数据块进行拼接,将输入维度由二维改变为三维。将语音数据块经过第一转置层进行转置操作,由维度为[归一化维度,时域维度,频域维度]转换为[时域维度,频域维度,归一化维度],将维度为[时域维度,频域维度,归一化维度]的语音数据块输入第一块处理网络62,通过第二转置层将语音数据块对应的维度转换为[频域维度,时域维度,归一化维度],然后通过循环神经网络层以及全连接层对该语音数据块进行处理,之后通过第一归一化层对该语音数据块进行归一化维度的归一化处理,然后在第一融合层与第二转置层处理完成的语音数据块进行融合,输入给该第一块处理网络62的另一个第一处理子网络,再次进行上述第一处理子网络的步骤进行处理,由该第一处理子网络输出的语音数据块可以输入到下一个第一块处理网络62的第一个第一处理子网络中进行处理。当语音数据块经过各个第一块处理网络62进行处理完成后,将输出的块处理结果输入到第一重叠相加网络63,通过对至少一个第一块处理网络的块处理结果进行重叠相加处理,获得语音数据的语音分离结果,该语音分离结果可以是长度为L,维度为N的分离后的语音数据。
图7是根据一示例性实施例示出的一种未经过优化的语音分离系统的结构示意图,如图7所示,在模型结构上,分块网络64与第一分块网络61相同,重叠相加网络66与第一重叠相加网络63相同。相较于优化后的语音分离模型,针对块处理网络65的结构进行了优化,将维度为[归一化维度,时域维度,频域维度]的语音数据块输入块处理网络65中,通过转置层进行一次转置,维度转换为[频域维度,时域维度,归一化维度],然后通过循环神经网络层以及全连接层对该语音数据块进行处理,再通过转置层进行第二次转置,将维度转换为[归一化维度,时域维度,频域维度],之后通过归一化层对该语音数据块进行归一化维度的归一化处理,其中,该归一化层为常规GroupNorm,优化后的第一归一化层为变种的GroupNorm,然后在融合层与输入块处理网络65的语音数据块进行融合,输入给该块处理网络65的另一个处理子网络,再次按照上述处理子网络的步骤进行处理,也就是说,经过一个块处理网络需要进行至少四次转置层进行维度转置,与优化后的语音分离模型相比,同样经过两个块处理网络,未经过优化的模型需要进行至少八次转置,而优化后的模型一共只需要进行三次转置,经过对比可以确定优化后的语音分离模型的模型结构更加精简,需要进行的计算量大大减少,从而可以提高语音数据处理的速度。
综上所述,在本申请实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
图8是根据一示例性实施例示出的一种语音分离装置的结构方框图。该语音分离装置可以实现图1或图4所示实施例提供的方法中的全部或部分步骤,该装置包括:
数据块获取模块810,用于通过语音分离模型中的第一分块网络对输入的语音数据进行分块,获得至少两个语音数据块;
第一转置模块820,用于通过所述语音分离模型中的第一转置层对至少两个所述语音数据块进行第一转置处理,使得至少两个所述语音数据块的维度按照时域维度、频域维度、归一化维度的顺序排列;
块处理模块830,用于通过所述语音分离模型中的至少一个第一块处理网络对至少两个所述语音数据块进行块处理,获得至少两个所述语音数据块的块处理结果数据;所述第一块处理网络包含串连的两个第一处理子网络;所述第一处理子网络用于依次执行以下操作:对输入的语音数据块的时域维度和频域维度进行第二转置处理、对所述第二转置处理的结果进行循环神经网络处理、对所述循环神经网络处理的结果的归一化维度进行归一化处理、将所述归一化处理的结果与所述第二转置处理的结果进行融合;
结果获取模块840,用于通过所述语音分离模型中的第一重叠相加网络,对至少一个所述第一块处理网络的块处理结果进行重叠相加处理,获得所述语音数据的语音分离结果。
在一种可能的实现方式中,所述第一处理子网络包含依次相连的第二转置层、第一循环神经网络层、第一归一化层、以及第一融合层;所述第二转置层还与所述第一融合层相连;
所述第二转置层用于对所述至少两个所述语音数据块的时域维度和频域维度进行第二转置处理;
所述第一循环神经网络层用于对所述第二转置处理的结果进行循环神经网络处理以及全连接处理;
所述第一归一化层用于对所述第一循环神经网络层的处理结果中的归一化维度进行归一化处理;
所述第一融合层用于将所述第一归一化层的处理结果与所述第二转置处理的结果进行融合。
在一种可能的实现方式中,所述数据块获取模块810,包括:
指针获取子模块,用于基于循环算子,对所述语音数据进行循环处理,获取至少两个所述语音数据块的分块开始指针以及分块结束指针;
数据块获取子模块,用于基于所述分块开始指针以及所述分块结束指针,获取至少两个所述语音数据块。
在一种可能的实现方式中,所述循环算子由图像处理器中的单个处理器内核执行。
在一种可能的实现方式中,所述数据块获取模块810,包括:
第一子模块,用于基于第一算子,获取所述语音数据块的前段语音数据块;
第二子模块,用于基于第二算子,获取所述语音数据块的后段语音数据块;
第三子模块,用于基于第三算子,将所述语音数据块对应的所述前段语音数据块与所述后段语音数据块进行拼接,生成拼接后的所述语音数据块;
第四子模块,用于基于第四算子,对所述拼接后的语音数据块进行转置处理。
在一种可能的实现方式中,所述第一算子、所述第二算子、所述第三算子以及所述第四算子分别由图像处理器中的一个处理器内核执行。
在一种可能的实现方式中,所述语音分离模型为双路径递归神经网络DPRNN模型。
在一种可能的实现方式中,所述语音分离模型是对第一编程语言编写的所述DPRNN模型进行代码翻译获得的。
在一种可能的实现方式中,所述第一编程语言编写的DPRNN模型是基于PyTorch训练获得的模型。
在一种可能的实现方式中,所述第一编程语言编写的DPRNN模型包括第二分块网络、至少一个第二块处理网络以及第二重叠相加网络;所述第二块处理网络包含串连的两个第二处理子网络;
输入所述第二处理子网络的语音数据块的维度按照归一化维度、时域维度、频域维度的顺序排列;
所述第二处理子网络用于依次执行以下操作:对输入的语音数据块的归一化维度和频域维度进行第三转置处理、对所述第三转置处理的结果进行循环神经网络处理、对所述循环神经网络处理的结果的归一化维度和频域维度进行第四转置处理、对所述第四转置处理的结果的归一化维度进行归一化处理、将所述归一化处理的结果与输入的语音数据块进行融合。
在一种可能的实现方式中,所述第二处理子网络包括包含依次相连的第三转置层、第二循环神经网络层、第四转置层、第二归一化层、以及第二融合层;所述第二融合层还与所述第二处理子网络的输入口相连;
所述第三转置层用于对输入的语音数据块的归一化维度和频域维度进行第三转置处理;
所述第二循环神经网络层用于对所述第三转置处理的结果进行循环神经网络处理和全连接处理;
所述第四转置层对所述第二循环神经网络层的处理结果的归一化维度和频域维度进行第四转置处理;
所述第二归一化层用于对所述第四转置处理的结果的归一化维度进行归一化处理;
所述第二融合层用于将所述第二归一化层的处理结果与输入的语音数据块进行融合。
综上所述,在本申请实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
图9是根据一示例性实施例示出的一种语音分离装置的结构方框图。该语音分离装置可以实现图3或图4所示实施例提供的方法中的全部或部分步骤,该语音分离装置包括:
第一源码获取模块910,用于获取在第一编码语言环境下训练生成的语音分离模型的第一模型源码;所述语音分离模型是用于在时域维度下进行语音分离的神经网络模型;
第二源码获取模块920,用于基于所述第一模型源码进行编码语言翻译和指定调整,获得第二编码语言编写的第二模型源码;所述指定调整用于实现所述语音分离模型的目标功能的前提下减少所述语音分离模型的运算量;
源码运行模块930,用于在第一引擎中运行所述第二模型源码,以实现所述语音分离模型的所述目标功能;所述第一引擎是支持所述第二编码语言的引擎。
综上所述,在本申请实施例所示的方案中,通过将语音数据经过第一分块网络进行处理后获取到至少两个语音数据块,先将至少两个语音数据块经过第一转置处理后,再将经过第一转置处理后的至少两个语音数据块输入第一块处理网络,通过两个串联的第一处理子网络,依次执行包括第二转置处理、循环神经网络处理、归一化处理以及结果融合处理在内的操作,通过将获取的至少一个块处理结果进行重叠相加处理,生成语音数据对应的语音分离结果。通过上述方案,语音数据块的维度按照时域维度、频域维度、归一化维度进行排列之后,对时域维度和频域维度之间的转置操作不会影响对归一化维度的归一化操作,因此,可以在通过各个第一块处理网络之前,首先对语音数据块进行一次转置操作,这样可以减少后续每个第一处理子网络中需要进行转置操作的数量,从而可以极大的简化语音分离模型中的块处理网络的结构,提高模型的处理速度,进而提高语音分离的效率。
图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。
所述大容量存储设备1007通过连接到系统总线1005的大容量存储控制器(未示出)连接到中央处理单元1001。所述大容量存储设备1007及其相关联的计算机可读介质为计算机设备1000提供非易失性存储。也就是说,所述大容量存储设备1007可以包括诸如硬盘或者光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、闪存或其他固态存储其技术,CD-ROM、或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量存储设备1007可以统称为存储器。
计算机设备1000可以通过连接在所述系统总线1005上的网络接口单元1011连接到互联网或者其它网络设备。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器1001通过执行该一个或一个以上程序来实现图1、图3或图4所示的方法的全部或者部分步骤。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括计算机程序(指令)的存储器,上述程序(指令)可由计算机设备的处理器执行以完成本申请各个实施例所示的方法。例如,所述非临时性计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例所示的语音分离方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (15)

1.一种语音分离方法,其特征在于,所述方法包括:
通过语音分离模型中的第一分块网络对输入的语音数据进行分块,获得至少两个语音数据块;
通过所述语音分离模型中的第一转置层对至少两个所述语音数据块进行第一转置处理,使得至少两个所述语音数据块的维度按照时域维度、频域维度、归一化维度的顺序排列;
通过所述语音分离模型中的至少一个第一块处理网络对至少两个所述语音数据块进行块处理,获得至少两个所述语音数据块的块处理结果数据;所述第一块处理网络包含串连的两个第一处理子网络;所述第一处理子网络用于依次执行以下操作:对输入的语音数据块的时域维度和频域维度进行第二转置处理、对所述第二转置处理的结果进行循环神经网络处理、对所述循环神经网络处理的结果的归一化维度进行归一化处理、将所述归一化处理的结果与所述第二转置处理的结果进行融合;
通过所述语音分离模型中的第一重叠相加网络,对至少一个所述第一块处理网络的块处理结果进行重叠相加处理,获得所述语音数据的语音分离结果。
2.根据权利要求1所述的方法,其特征在于,所述第一处理子网络包含依次相连的第二转置层、第一循环神经网络层、第一归一化层、以及第一融合层;所述第二转置层还与所述第一融合层相连;
所述第二转置层用于对所述至少两个所述语音数据块的时域维度和频域维度进行第二转置处理;
所述第一循环神经网络层用于对所述第二转置处理的结果进行循环神经网络处理以及全连接处理;
所述第一归一化层用于对所述第一循环神经网络层的处理结果中的归一化维度进行归一化处理;
所述第一融合层用于将所述第一归一化层的处理结果与所述第二转置处理的结果进行融合。
3.根据权利要求1所述的方法,其特征在于,所述通过语音分离模型中的第一分块网络对输入的语音数据进行分块,获得至少两个语音数据块,包括:
基于循环算子,对所述语音数据进行循环处理,获取至少两个所述语音数据块的分块开始指针以及分块结束指针;
基于所述分块开始指针以及所述分块结束指针,获取至少两个所述语音数据块。
4.根据权利要求3所述的方法,其特征在于,所述循环算子由图像处理器中的单个处理器内核执行。
5.根据权利要求1所述的方法,其特征在于,所述通过语音分离模型中分块网络对输入的语音数据进行分块,获得至少两个语音数据块,包括:
基于第一算子,获取所述语音数据块的前段语音数据块;
基于第二算子,获取所述语音数据块的后段语音数据块;
基于第三算子,将所述语音数据块对应的所述前段语音数据块与所述后段语音数据块进行拼接,生成拼接后的所述语音数据块;
基于第四算子,对所述拼接后的语音数据块进行转置处理。
6.根据权利要求5所述的方法,其特征在于,所述第一算子、所述第二算子、所述第三算子以及所述第四算子分别由图像处理器中的一个处理器内核执行。
7.根据权利要求1至6任一所述的方法,其特征在于,所述语音分离模型为双路径递归神经网络DPRNN模型。
8.根据权利要求7所述的方法,其特征在于,所述语音分离模型是对第一编程语言编写的所述DPRNN模型进行代码翻译获得的。
9.根据权利要求8所述的方法,其特征在于,所述第一编程语言编写的DPRNN模型是基于PyTorch训练获得的模型。
10.根据权利要求8所述的方法,其特征在于,所述第一编程语言编写的DPRNN模型包括第二分块网络、至少一个第二块处理网络以及第二重叠相加网络;所述第二块处理网络包含串连的两个第二处理子网络;
输入所述第二处理子网络的语音数据块的维度按照归一化维度、时域维度、频域维度的顺序排列;
所述第二处理子网络用于依次执行以下操作:对输入的语音数据块的归一化维度和频域维度进行第三转置处理、对所述第三转置处理的结果进行循环神经网络处理、对所述循环神经网络处理的结果的归一化维度和频域维度进行第四转置处理、对所述第四转置处理的结果的归一化维度进行归一化处理、将所述归一化处理的结果与输入的语音数据块进行融合。
11.根据权利要求10所述的方法,其特征在于,所述第二处理子网络包括包含依次相连的第三转置层、第二循环神经网络层、第四转置层、第二归一化层、以及第二融合层;所述第二融合层还与所述第二处理子网络的输入口相连;
所述第三转置层用于对输入的语音数据块的归一化维度和频域维度进行第三转置处理;
所述第二循环神经网络层用于对所述第三转置处理的结果进行循环神经网络处理和全连接处理;
所述第四转置层对所述第二循环神经网络层的处理结果的归一化维度和频域维度进行第四转置处理;
所述第二归一化层用于对所述第四转置处理的结果的归一化维度进行归一化处理;
所述第二融合层用于将所述第二归一化层的处理结果与输入的语音数据块进行融合。
12.一种语音分离方法,其特征在于,所述方法包括:
获取在第一编码语言环境下训练生成的语音分离模型的第一模型源码;所述语音分离模型是用于在时域维度下进行语音分离的神经网络模型;
基于所述第一模型源码进行编码语言翻译和指定调整,获得第二编码语言编写的第二模型源码;所述指定调整用于实现所述语音分离模型的目标功能的前提下减少所述语音分离模型的运算量;
在第一引擎中运行所述第二模型源码,以实现所述语音分离模型的所述目标功能;所述第一引擎是支持所述第二编码语言的引擎。
13.一种语音分离装置,其特征在于,所述装置包括:
数据块获取模块,用于通过语音分离模型中的第一分块网络对输入的语音数据进行分块,获得至少两个语音数据块;
第一转置模块,用于通过所述语音分离模型中的第一转置层对至少两个所述语音数据块进行第一转置处理,使得至少两个所述语音数据块的维度按照时域维度、频域维度、归一化维度的顺序排列;
块处理模块,用于通过所述语音分离模型中的至少一个第一块处理网络对至少两个所述语音数据块进行块处理,获得至少两个所述语音数据块的块处理结果数据;所述第一块处理网络包含串连的两个第一处理子网络;所述第一处理子网络用于依次执行以下操作:对输入的语音数据块的时域维度和频域维度进行第二转置处理、对所述第二转置处理的结果进行循环神经网络处理、对所述循环神经网络处理的结果的归一化维度进行归一化处理、将所述归一化处理的结果与所述第二转置处理的结果进行融合;
结果获取模块,用于通过所述语音分离模型中的第一重叠相加网络,对至少一个所述第一块处理网络的块处理结果进行重叠相加处理,获得所述语音数据的语音分离结果。
14.一种计算机设备,其特征在于,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至12任一所述的语音分离方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至12任一所述的语音分离方法。
CN202110025617.9A 2021-01-08 2021-01-08 语音分离方法、装置、计算机设备及存储介质 Active CN113516996B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110025617.9A CN113516996B (zh) 2021-01-08 2021-01-08 语音分离方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110025617.9A CN113516996B (zh) 2021-01-08 2021-01-08 语音分离方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN113516996A true CN113516996A (zh) 2021-10-19
CN113516996B CN113516996B (zh) 2024-01-26

Family

ID=78060865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110025617.9A Active CN113516996B (zh) 2021-01-08 2021-01-08 语音分离方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113516996B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090074197A1 (en) * 2007-08-08 2009-03-19 Oticon A/S Frequency transposition applications for improving spatial hearing abilities of subjects with high-frequency hearing losses
CN111243620A (zh) * 2020-01-07 2020-06-05 腾讯科技(深圳)有限公司 语音分离模型训练方法、装置、存储介质和计算机设备
CN111899758A (zh) * 2020-09-07 2020-11-06 腾讯科技(深圳)有限公司 语音处理方法、装置、设备和存储介质
CN112071329A (zh) * 2020-09-16 2020-12-11 腾讯科技(深圳)有限公司 一种多人的语音分离方法、装置、电子设备和存储介质
CN112071330A (zh) * 2020-09-16 2020-12-11 腾讯科技(深圳)有限公司 一种音频数据处理方法、设备以及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090074197A1 (en) * 2007-08-08 2009-03-19 Oticon A/S Frequency transposition applications for improving spatial hearing abilities of subjects with high-frequency hearing losses
CN111243620A (zh) * 2020-01-07 2020-06-05 腾讯科技(深圳)有限公司 语音分离模型训练方法、装置、存储介质和计算机设备
CN111899758A (zh) * 2020-09-07 2020-11-06 腾讯科技(深圳)有限公司 语音处理方法、装置、设备和存储介质
CN112071329A (zh) * 2020-09-16 2020-12-11 腾讯科技(深圳)有限公司 一种多人的语音分离方法、装置、电子设备和存储介质
CN112071330A (zh) * 2020-09-16 2020-12-11 腾讯科技(深圳)有限公司 一种音频数据处理方法、设备以及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EFTHYMIOS TZINIS;: "Sudo RM -RF: Efficient Networks for Universal Audio Source Separation", 《2020 IEEE 30TH INTERNATIONAL WORKSHOP ON MACHINE LEARNING FOR SIGNAL PROCESSING (MLSP)》, pages 2682 - 2686 *
WIJAYAKUSUMA ALFIAN: "Implementation of Real-Time Speech Separation Model Using Time-Domain Audio Separation Network (TasNet) and Dual-Path Recurrent Neural Network (DPRNN)", 《 PROCEDIA COMPUTER SCIENCE》, pages 762 - 772 *

Also Published As

Publication number Publication date
CN113516996B (zh) 2024-01-26

Similar Documents

Publication Publication Date Title
CN111933129B (zh) 音频处理方法、语言模型的训练方法、装置及计算机设备
CN109859736B (zh) 语音合成方法及系统
CN111325817B (zh) 一种虚拟人物场景视频的生成方法、终端设备及介质
US10380995B2 (en) Method and device for extracting speech features based on artificial intelligence
CN112562721A (zh) 一种视频翻译方法、系统、装置及存储介质
WO2022134894A1 (zh) 语音识别方法、装置、计算机设备及存储介质
CN111930992A (zh) 神经网络训练方法、装置及电子设备
CN106992001A (zh) 语音指令的处理方法、装置和系统
CN113555032B (zh) 多说话人场景识别及网络训练方法、装置
CN115019776A (zh) 语音识别模型及其训练方法、语音识别方法及装置
EP4030421A1 (en) Method for converting voice feature of voice
CN114333852A (zh) 一种多说话人语音人声分离方法、终端设备及存储介质
JP2023549048A (ja) 音声認識方法と装置並びにコンピュータデバイス及びコンピュータプログラム
CN113782042A (zh) 语音合成方法、声码器的训练方法、装置、设备及介质
CN113516996B (zh) 语音分离方法、装置、计算机设备及存储介质
CN115206284B (zh) 一种模型训练方法、装置、服务器和介质
CN115712739A (zh) 舞蹈动作生成方法、计算机设备及存储介质
CN115240654A (zh) 语音识别模型训练方法、装置、设备及存储介质
CN115130461A (zh) 一种文本匹配方法、装置、电子设备及存储介质
CN114373443A (zh) 语音合成方法和装置、计算设备、存储介质及程序产品
CN114360490A (zh) 语音合成方法、装置、计算机设备和存储介质
CN113505611A (zh) 在生成对抗中获得更好的语音翻译模型的训练方法和系统
CN113571063B (zh) 语音信号的识别方法、装置、电子设备及存储介质
Kwaśny et al. Explaining predictions of the x-vector speaker age and gender classifier
WO2024018429A1 (en) Audio signal processing method, audio signal processing apparatus, computer device and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40053947

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant