1.本技术涉及计算机技术领域,尤其涉及一种音频处理方法、装置及设备。
背景技术:2.目前,歌曲(或称为音频数据)对应的演唱音准指示文件(如乐器数字接口(musical instrument digital interface,midi)文件)可被广泛应用到多种应用场景中;例如,可在用户演唱歌曲时,根据相应演唱音准指示文件为用户显示具有音高值的音符,使得用户可以通过参考所显示的音符来提升演唱时的音准。目前,针对任一歌曲而言,通常是基于人工标注的方法来标注生成该歌曲对应的演唱音准指示文件的;这样的处理方式会导致人力成本消耗较大,且演唱音准指示文件的生成效率较低。
技术实现要素:3.本技术实施例提供了一种音频处理方法、装置及设备,可以节省人力成本,并提升演唱音准指示文件的生成效率。
4.一方面,本技术实施例提供了一种音频处理方法,所述方法包括:获取目标音频数据的目标音高曲线,并确定所述目标音频数据中的目标无声区域,所述目标音频数据包括目标对象所演唱的一个或多个音素,一个音素包括一个或多个时间点位;对所述目标音频数据中的各个音素的起始时间点位进行检测,得到目标起始时间序列;基于所述目标起始时间序列、所述目标音高曲线和所述目标无声区域,确定所述目标音频数据对应的一个或多个演唱片段;一个演唱片段包括至少一个时间点位和相应音高值,一个演唱片段的开始时间点位对应一个音素的起始时间点位;对所述一个或多个演唱片段中的每个演唱片段进行音符转写处理,得到一个或多个音符;以及,采用所述一个或多个音符生成所述目标音频数据对应的演唱音准指示文件。
5.另一方面,本技术实施例提供了一种音频处理装置,所述装置包括:处理单元,用于获取目标音频数据的目标音高曲线,并确定所述目标音频数据中的目标无声区域,所述目标音频数据包括目标对象所演唱的一个或多个音素,一个音素包括一个或多个时间点位;所述处理单元,还用于对所述目标音频数据中的各个音素的起始时间点位进行检测,得到目标起始时间序列;所述处理单元,还用于基于所述目标起始时间序列、所述目标音高曲线和所述目标无声区域,确定所述目标音频数据对应的一个或多个演唱片段;一个演唱片段包括至少一个时间点位和相应音高值,一个演唱片段的开始时间点位对应一个音素的起始时间点位;所述处理单元,还用于对所述一个或多个演唱片段中的每个演唱片段进行音符转
写处理,得到一个或多个音符;生成单元,用于采用所述一个或多个音符生成所述目标音频数据对应的演唱音准指示文件。
6.再一方面,本技术实施例提供了一种计算机设备,所述计算机设备包括处理器、存储器,其中,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时实现如下步骤:获取目标音频数据的目标音高曲线,并确定所述目标音频数据中的目标无声区域,所述目标音频数据包括目标对象所演唱的一个或多个音素,一个音素包括一个或多个时间点位;对所述目标音频数据中的各个音素的起始时间点位进行检测,得到目标起始时间序列;基于所述目标起始时间序列、所述目标音高曲线和所述目标无声区域,确定所述目标音频数据对应的一个或多个演唱片段;一个演唱片段包括至少一个时间点位和相应音高值,一个演唱片段的开始时间点位对应一个音素的起始时间点位;对所述一个或多个演唱片段中的每个演唱片段进行音符转写处理,得到一个或多个音符;以及,采用所述一个或多个音符生成所述目标音频数据对应的演唱音准指示文件。
7.再一方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行如下步骤:获取目标音频数据的目标音高曲线,并确定所述目标音频数据中的目标无声区域,所述目标音频数据包括目标对象所演唱的一个或多个音素,一个音素包括一个或多个时间点位;对所述目标音频数据中的各个音素的起始时间点位进行检测,得到目标起始时间序列;基于所述目标起始时间序列、所述目标音高曲线和所述目标无声区域,确定所述目标音频数据对应的一个或多个演唱片段;一个演唱片段包括至少一个时间点位和相应音高值,一个演唱片段的开始时间点位对应一个音素的起始时间点位;对所述一个或多个演唱片段中的每个演唱片段进行音符转写处理,得到一个或多个音符;以及,采用所述一个或多个音符生成所述目标音频数据对应的演唱音准指示文件。
8.再一方面,本技术实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述所提及的音频处理方法。
9.本技术实施例可通过对目标音频数据中的各个音素的起始时间点位进行检测,并基于检测得到的目标起始时间序列、目标音频数据的目标音高曲线和目标音频数据中的目标无声区域,来较为准确地确定目标音频数据对应的一个或多个演唱片段。这样不仅可使得一个演唱片段包括至少一个时间点位和相应音高值,避免演唱片段中出现无声区域,提升演唱片段的准确性;还可使得一个演唱片段的开始时间点位对应一个音素的起始时间点位,从而使得在对各个演唱片段进行音符转写处理时,可实现将一个音素对应到一个或多个音符上,即实现音符按照音素进行划分,保证音符的精准分割,进而实现采用较为准确的各个音符生成较为准确的演唱音准指示文件。由于本技术实施例是通过对目标音频数据进行一系列处理后,自动化地生成目标音频数据对应的演唱音准指示文件的,因此可有效提
升演唱音准指示文件的生成效率,且有效节省人力成本;另外,通过利用目标音频数据的目标音高曲线来得到一个或多个演唱片段,可实现通过各个演唱片段中的各个音高值对目标音高曲线进行量化,进而实现输出量化音高曲线后得到的演唱音准指示文件。
附图说明
10.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
11.图1a是本技术实施例提供的一种音频处理方案的流程示意图;图1b是本技术实施例提供的一种终端和服务器交互的示意图;图1c是本技术实施例提供的一种音符的示意图;图1d是本技术实施例提供的一种音准检测结果的示意图;图2是本技术实施例提供的一种音频处理方法的流程示意图;图3是本技术实施例提供的一种模型的示意图;图4是本技术实施例提供的一种起始时间点位的示意图;图5是本技术实施例提供的另一种音符的示意图;图6是本技术实施例提供的另一种音频处理方法的流程示意图;图7a是本技术实施例提供的一种确定目标起始时间序列的示意图;图7b是本技术实施例提供的另一种确定目标起始时间序列的示意图;图8a是本技术实施例提供的一种分割处理的示意图;图8b是本技术实施例提供的另一种分割处理的示意图;图9a是本技术实施例提供的又一种音频处理方法的流程示意图;图9b是本技术实施例提供的一种后处理的流程示意图;图10是本技术实施例提供的一种音频处理装置的结构示意图;图11是本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
12.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
13.在本技术实施例中,音频数据可理解成是一种数字化的声音数据,数字化声音的过程是指以一定频率对连续的模拟音频信号进行采样,并对每个采样结果进行模数转换的过程。一个采样结果进行模数转换,可得到一个时间点位的音频振幅值;可见,音频数据可以包括多个时间点位以及每个时间点位的音频振幅值。进一步的,随着时间点位的音频振幅值的取值不同,连续的一个或多个时间点位以及相应的音频振幅值可构成不同的音频元素;此处的音频元素可以包括但不限于:演唱歌曲的对象所演唱的音素、伴奏或环境音等。其中,此处的音素可以指的是:用于构成字、词或者英文单词等的数据,例如,针对“想”这个字,其可由“x”、“i”和“ang”这三个音素构成;伴奏是指:伴随衬托歌唱的器乐演奏。也就是说,音频数据可以包括一个或多个音频元素(如音素、伴奏),各个音频元素可相同或不同,且一个音频元素(如音素)可包括一个或多个时间点位以及相应的音频振幅值。
14.为了提升音频数据对应的演唱音准指示文件的生成效率以及节省人力成本,本技术实施例提出了一种音频处理方案;参见图1a所示,本技术实施例所提出的音频处理方案的大致原理如下:首先,可获取目标音频数据,目标音频数据包括目标对象所演唱的一个或多个音素;目标对象可以指的是歌曲的原唱者或具有歌曲演唱版权的翻唱者,也可以指的是需进行音准检测的用户,等等。在获取到目标音频数据后,便可通过对目标音频数据的音高检测,得到目标音频数据的目标音高曲线;通过对目标音频数据的无声区检测,得到目标音频数据的目标无声区域;以及,通过对目标音频数据中各个音素的起始时间点位的检测,得到目标起始时间序列。然后,可基于目标起始时间序列、目标音高曲线和目标无声区域,生成演唱音准指示文件;具体的,可基于目标起始时间序列、目标音高曲线和目标无声区域,确定目标音频数据对应的一个或多个演唱片段,并分别对每个演唱片段进行音符转写处理,得到一个或多个音符,从而采用该一个或多个音符生成目标音频数据对应的演唱音准指示文件。
15.经实践表明,本技术实施例提出的音频处理方案可至少具有如下几点有益效果:
①
可通过对目标音频数据中的各个音素的起始时间点位进行检测,并基于检测得到的目标起始时间序列、目标音高曲线和目标无声区域来确定演唱片段,不仅可避免演唱片段中出现无声区域,还可使一个演唱片段的开始时间点位对应一个音素的起始时间点位,提升演唱片段的准确性,从而使得在对各个演唱片段进行音符转写处理时,可实现将一个音素对应到一个或多个音符上,即实现音符按照音素进行划分,保证音符的精准分割,进而保证基于各个音符生成的演唱音准指示文件的准确性。
②
整个处理过程均无需人为参与,可自动化地生成演唱音准指示文件,从而可有效提升演唱音准指示文件的生成效率,且有效节省人力成本。
③
利用目标音高曲线来得到一个或多个演唱片段,可实现通过各个演唱片段中的各个音高值对目标音高曲线进行量化,进而实现输出量化音高曲线后得到的演唱音准指示文件。
16.在具体实现中,上述所提及的音频处理方案可由一个计算机设备执行,该计算机设备可以是终端或者服务器;其中,此处所提及的终端可以包括但不限于:智能手机、平板电脑、笔记本电脑、台式计算机、智能手表、智能语音交互设备、智能家电、车载终端、飞行器等;终端内可运行各式各样的客户端(application,app),如视频播放客户端、社交客户端、浏览器客户端、信息流客户端、教育客户端,等等。此处所提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算(cloud computing)、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等;所谓的云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。并且,本技术实施例所提及的计算机设备可以位于区块链网络外,也可以位于区块链网络内,对此不作限定;所谓的区块链网络是一种由点对点网络(p2p网络)和区块链所构成的网络,而区块链则是指一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,其本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块(或称为区块)。
17.或者,在其他实施例中,上述所提及的音频处理方案也可由服务器和终端共同执
行;终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。例如:可由终端负责获取目标音频数据,并将目标音频数据发送至服务器,使得服务器负责确定目标音频数据的目标音高曲线、目标无声区域以及目标起始时间序列等,然后将目标音高曲线、目标无声区域以及目标起始时间序列返回至终端,再由终端通过目标音高曲线、目标无声区域以及目标起始时间序列,生成演唱音准指示文件,如图1b所示。又如:可由服务器负责获取目标音频数据,确定目标音频数据的目标音高曲线、目标无声区域以及目标起始时间序列,并基于目标起始时间序列、目标音高曲线和目标无声区域确定一个或多个演唱片段,以及分别对每个演唱片段进行音符转写处理以得到一个或多个音符,然后将各个音符发送给终端,使得终端可采用接收到的各个音符生成演唱音准指示文件。应理解的是,此处只是示例性地阐述了终端和服务器共同执行上述音频处理方案的两种情况,并非穷举。
18.进一步的,上述音频处理方案可适用于多种应用场景,如线上k歌(一种演唱形式)场景、演唱音准检测场景,等等。
19.例如,当上述音频处理方案应用于线上k歌场景时,上述目标对象可以指的是:歌曲的原唱者(或具有歌曲演唱版权的翻唱者);在此应用场景中,计算机设备可通过在目标对象演唱任一歌曲的过程中,对目标对象的歌声进行录制来得到目标音频数据,并采用上述的音频处理方案来生成目标音频数据对应的演唱音准指示文件,从而在任一用户选择该任一歌曲进行k歌时,计算机设备可以在该任一用户的设备屏幕中显示演唱音准指示文件中的一个或多个音符,以便于该任一用户可以通过参考所显示的各个音符来提升演唱时的音准,如图1c所示。
20.又如,当上述音频处理方案应用于演唱音准检测场景时,上述目标对象可以指的是:需进行音准检测的用户;在此应用场景中,计算机设备可通过在目标对象演唱任一歌曲的过程中,对目标对象的歌声进行录制来得到目标音频数据,并采用上述的音频处理方案来生成目标音频数据对应的演唱音准指示文件;并且,计算机设备还可以获取该任一歌曲对应的演唱音准指导文件,该演唱音准指导文件是基于录制该任一歌曲对应的原唱者(或翻唱者)演唱该任一歌曲时的歌声,所得到的音频数据生成的,其生成方式可参考上述生成目标音频数据对应的演唱音准指示文件的具体方式,在此不再赘述。然后,计算机设备可以根据目标音频数据对应的演唱音准指示文件与该任一歌曲的演唱音准指导文件之间的差异,对目标对象进行演唱音准检测,从而在目标对象的设备屏幕中输出演唱音准检测结果。可以理解的是,该演唱音准检测结果可以包括音准等级,如优或良等;也可以是音准分数,本技术对此不作限定;以演唱音准检测结果包括音准分数为例,输出演唱音准检测结果的示意图可参见图1d所示。
21.基于上述音频处理方案的相关描述,本技术实施例提出一种音频处理方法,该音频处理方法可以由上述所提及计算机设备(终端或服务器)执行;或者,该音频处理方法可由终端和服务器共同执行。为便于阐述,后续均以计算机设备执行该音频处理方法为例进行说明;请参见图2,该音频处理方法可包括以下步骤s201-s204:s201,获取目标音频数据的目标音高曲线,并确定目标音频数据中的目标无声区域。
22.在具体实现中,计算机设备可先获取目标音频数据;该目标音频数据可至少包括
目标对象所演唱的一个或多个音素,一个音素包括一个或多个时间点位以及每个时间点位的音频振幅值。那么可理解的是,当计算机设备播放目标音频数据时,可还原播放出目标对象演唱各个音素时的声音。举例来说,假设上述目标对象演唱的至少一个音素构成字“我”,那么计算机设备在播放目标音频数据时,便可还原播放出目标对象演唱“我”这个字时的声音。其中,目标音频数据的获取方式可包括但不限于以下几种:第一种获取方式:计算机设备可以获取初始音频数据的统一资源定位符(uniform resource locator,url),从而基于该统一资源定位符获取相应的初始音频数据,从而基于获取到的初始音频数据确定目标音频数据;其中,统一资源定位符可理解成是一种音频链接,也就是说,计算机设备可根据初始音频数据的音频链接下载初始音频数据,从而基于初始音频数据得到目标音频数据。其中,初始音频数据可以是单轨道的音频数据,即初始音频数据中只包括目标对象所演唱的一个或多个音素;或者,初始音频数据也可以是多轨道的音频数据,一个轨道对应一种音频元素,即初始音频数据中可包括目标对象所演唱的一个或多个音素,以及其他的音频元素(如伴奏、环境音等)。相应的,基于初始音频数据得到目标音频数据的实施方式可以是:无论初始音频数据是单轨道的音频数据还是多轨道的音频数据,均可直接将初始音频数据作为目标音频数据。或者,当初始音频数据是多轨道的音频数据时,为避免其他轨道的音频数据对后续处理(如音符转写)的干扰,则可以先对初始音频数据进行音源分离(一种将输入的音频数据分离成多个音乐轨道(简称为轨道)的音频数据的处理),在通过音源分离得到每个轨道的音频数据后,可将目标对象所演唱的音素所处的相应轨道的音频数据作为目标音频数据,即此情况下的目标音频数据是单轨道的音频数据。
23.需要说明的是,计算机设备在对初始音频数据进行音源分离时,可以采用开源的spleeter算法(一种轨道分离工具)来对初始音频数据进行音源分离,该算法采用u-net网络(一种卷积神经网络)的编解码结构对初始音频数据建模,实现高效准确的音源分离功能;也可以采用非负矩阵分解方法来对初始音频数据进行音源分离,本技术对此不作限定。值得注意的是,初始音频数据可以是单声道的音频数据,也可以是多声道的音频数据,无论初始音频初始是单声道的音频数据还是多声道的音频数据,计算机设备均可直接对初始音频数据进行音源分离;可选的,若初始音频数据为多声道的音频数据,计算机设备也可将初始音频数据转换成单声道的音频数据,并对转换后的初始音频数据进行音源分离,本技术对此不作限定。
24.第二种获取方式:计算机设备可以接收目标对象发送的音频数据,并将接收到的音频数据直接作为目标音频数据;或者,在接收到的音频数据为多轨道的音频数据时,通过对接收到的音频数据进行音源分离,得到目标音频数据。其中,目标对象是在想要对自己通过演唱某歌曲所得到的音频数据进行演唱音准检测时,向计算机设备发送音频数据的。或者,若计算机设备自身的存储空间中存储有音频数据,且计算机设备可通过扫描已存储的音频数据,将当前扫描的音频数据确定为目标音频数据;可选的,若当前扫描的音频数据为多轨道的音频数据,则也可以通过对当前扫描的音频数据进行音源分离,得到目标音频数据。
25.第三种获取方式:计算机设备也可预先对目标对象演唱任一歌曲时的声音进行录制,然后将录制得到的音频数据作为目标音频数据;或者,若录制得到的音频数据为多轨道
的音频数据,则也可以通过对录制得到的音频数据进行音源分离,得到目标音频数据。
26.值得注意的是,当本技术实施例运用到具体产品或技术中时,涉及与目标对象相关的一系列数据(如目标音频数据等)的获取,均需要获得目标对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,若计算机设备是通过录制目标对象的声音来得到目标音频数据的,则计算机设备在进行声音录制之前,可以先显示提示界面或提示弹窗,该提示界面或提示弹窗用于提示目标对象:是否允许录制目标对象的声音来得到目标音频数据,且该提示界面或提示弹窗中包括确认选项;若目标对象对上述提示界面或提示弹窗中的确认选项进行了选择操作,则计算机设备可执行开始声音录制以获取目标音频数据的相关步骤,否则结束。
27.在通过上述任一种获取方式得到目标音频数据后,计算机设备可对目标音频数据进行音高检测,得到目标音频数据的目标音高曲线。在一种实施方式中,计算机设备可调用一个音高值识别模型,对目标音频数据进行音高检测,得到目标音频数据中的各个时间点位的音高值,从而采用各个时间点位的音高值构建目标音高曲线;其中,该音高值识别模型可以是预先采用训练数据并基于机器学习技术/深度学习技术进行模型训练得到的。
28.在另一种实施方式,计算机设备可以对目标音频数据进行基频提取,并根据基频提取结果确定目标音高曲线。其中,基频提取结果可包括目标音频数据中各个时间点位的基频值,那么在根据基频提取结果确定目标音高曲线时,便可基于各个时间点位的基频值计算各个时间点位的音高值,从而采用各个时间点位的音高值构建目标音高曲线。进一步的,根据任一时间点位的基频值计算相应的音高值的方式可以是:直接将任一时间点位的基频值作为该任一时间点位的音高值,或者对任一时间点位的基频值进行线性变化等处理,来得到任一时间点位的音高值。值得注意的是,本技术对基频提取的具体实施方式不作限定;例如,计算机设备可以采用开源的pyin算法(probabilistic yin,一种时域下的基频提取算法)来获取基频提取结果,该算法基于yin算法(一种时域下的基频提取算法)进行基频提取,并利用隐马尔可夫模型获得较为准确的基频值,从而使得音高与实际一致,或者计算机设备也可以swipe算法(sawtooth wave inspired pitch estimator,一种频域下的基频提取算法),等等。
29.在通过上述任一种获取方式得到目标音频数据后,计算机设备还可对目标音频数据进行无声区检测,以确定目标音频数据中的目标无声区域;其中,一个无声区域可以指的是:无音高的区域,即包含的各个时间点位的音高值均为零的区域。需要说明的是,本技术对无声区检测的具体实施方式不作限定;例如,计算机设备可以采取开源的tony算法(一种语音端点检测算法)实现无声区检测;或者,计算机设备也可以采用基于短时能量的普熵参数加权而形成的加权普熵端点检测算法对目标音频数据进行无声区检测;又或者,计算机设备还可以采用基于人工神经网络的端点检测算法对目标音频数据进行无声区检测,等等。
30.s202,对目标音频数据中的各个音素的起始时间点位进行检测,得到目标起始时间序列。
31.其中,目标起始时间序列可以包括:至少一个音素中每个音素的起始时间点位。在获取目标起始时间序列时,计算机设备可以对目标音频数据中的各个音素的起始时间点位进行检测,得到初始起始时间序列,从而基于初始起始时间序列得到目标起始时间序列;其
中,初始起始时间序列包括各个音素的起始时间点位。相应的,基于初始起始时间序列得到目标起始时间序列的实施方式可以包括:直接将初始起始时间序列作为目标起始时间序列。或者,考虑到可能因为目标对象演唱时产生换气或其他动作导致一个音素存在两个起始时间点位,这种情况下的音素所对应的两个起始时间点位通常是相邻的,且两个起始时间点位之间的时间间隔通常较小,基于此为了提升音素的起始时间点位的准确性,可对初始起始时间序列进行过滤处理,以过滤掉初始起始时间序列中的时间间隔较小的起始时间点位,从而将过滤处理后的初始起始时间序列作为目标起始时间序列。又或者,考虑到可能存在目标对象演唱某个音素的时间较短,使得该音素的起始时间点位和下一个相邻的音素的起始时间点位之间的时间间隔较小,此情况下,也可将这两个音素视为同一个音素进行处理,那么计算机设备也可对初始起始时间序列进行过滤处理,以过滤掉初始起始时间序列中的时间间隔较小的起始时间点位,从而将过滤处理后的初始起始时间序列作为目标起始时间序列。又或者,考虑到可能存在目标对象所演唱的一个字可能由多个音素所构成,且这个字对应的演唱时长通常集中在相应的多个音素中的一个关键音素(如元音)上,而其他的音素时长很短,使得相应的起始时间点位之间的间隔较短,那么计算机设备也可对初始起始时间序列进行过滤处理,以过滤掉初始起始时间序列中的时间间隔较小的起始时间点位,从而将过滤处理后的初始起始时间序列作为目标起始时间序列,使得目标起始时间序列中包括的音素为关键音素。
32.需要说明的是,在对目标音频数据中的各个音素的起始时间点位进行检测,得到初始起始时间序列时,计算机设备可以采用开源深度学习提取音乐起始时间的算法,对目标音频数据中的各个音素的起始时间点位进行检测;该方法的原理是,首先经过特征提取,然后用图3所示的模型预测目标音频数据中的各个音素的起始时间点位,最后经过峰值选取选择满足条件的起始时间点位,并由选取出的起始时间点位构成初始起始时间序列。其中,图3中每个模块由不同结构的神经网络构成,例如五层卷积神经网络(convolutional neural networks,cnn)。示例性的,如图3所示,在训练过程中,计算机设备输入表示(input representation)后,可采用两个前端a(front-end a)进行训练,一个前端a可以指的是一个卷积神经网络;相应的,先对一个前端a预训练并固定权重(front-end a pre-trained and weights-fixed),再采用另一个准备训练的前端a(front-end a ready to train)与预训练并固定权重的前端a对同一训练数据进行特征提取,得到两个特征提取结果,对两个特征提取结果进行结合(concatenate),即对两个卷积神经网络输出的两个特征提取结果进行连接;进一步的,基于结合后的特征提取结果对后端d准备训练(back-end d ready to train)。
33.在此种情况下,计算机设备采用图3所示的模型预测起始时间点位时,此处的输入表示可以指的是输入目标音频数据的梅尔谱,并分别采用两个前端a(即两个卷积神经网络)进行特征提取,得到两个特征提取结果;然后,对两个特征提取结果进行结合,并通过后端网络d和激活单元,输出各个音素的起始时间点位,以得到初始起始时间序列。
34.举例来说,如图4所示,假设第一个坐标图用于表示目标音频数据的梅尔谱,且第一个坐标图纵坐标表示梅尔谱带(mel bands),第二个坐标图用于表示检测出的各个起始时间点位,且第二坐标图的纵坐标表示起始检测基线(odf baseline,onset detection functionbaseline),此处的起始检测基线也可称作起始检测函数基线;示例性的,图4中表
示的目标音频数据的梅尔谱中包括各个音素的起始时间点位,即起始时间点位a、b、c、d、e、f、g、h以及i,且一个起始时间点位对应一个音素,那么当计算机设备通过图3所示的模型预测起始时间点位时,可采用目标音频数据的梅尔谱,对目标音频数据中的各个音素的起始时间点位进行检测,从而检测出起始时间点位a、b、c、d、e、g、h以及i。
35.s203,基于目标起始时间序列、目标音高曲线和目标无声区域,确定目标音频数据对应的一个或多个演唱片段。
36.其中,一个演唱片段包括至少一个时间点位和相应音高值,一个演唱片段的开始时间点位对应一个音素的起始时间点位。
37.需要说明的是,计算机设备可以采用目标起始时间序列和目标无声区域对目标音高曲线进行分割,以得到目标音频数据对应的一个或多个演唱片段;也可以先采用目标无声区域对目标音高曲线进行调整,并采用目标无声区域对调整后的目标音高曲线进行分割,以得到一个或多个演唱片段,等等。
38.相应的,由于目标音高曲线为计算机设备根据基频提取结果所得的,则计算机设备可以先对目标音频数据的基频提取结果进行分割,得到一个或多个基频分割结果;然后,分别根据每个基频分割结果确定相应的演唱片段,以得到目标音频数据对应的一个或多个演唱片段。可以理解的是,考虑到基频波动性较大的问题,因此需要对基频进行区间划分,得到每个音素对应的区间;也就是说,目标音高曲线中各个时间点位的音高值的波动性较大,故需对各个时间点位的音高值进行区间划分,以得到一个或多个演唱片段。
39.s204,对一个或多个演唱片段中的每个演唱片段进行音符转写处理,得到一个或多个音符;以及,采用一个或多个音符生成目标音频数据对应的演唱音准指示文件。
40.可以理解的是,目标音频数据对应的演唱音准指示文件可以包括上述一个或多个音符。其中,目标音频数据对应的演唱音准指示文件可以指的是midi文件,也可以是包括上述一个或多个音符的文本文件等,本技术对此不作限定。需要说明的是,计算机设备生成目标音频数据对应的演唱音准指示文件的过程也可称作唱歌转写,该唱歌转写是指:将目标音频数据通过处理转换为音符与音高序列的表示形式(即演唱音准指示文件)的过程。
41.需要说明的是,计算机设备对一个或多个演唱片段中的每个演唱片段进行音符转写处理,得到一个或多个音符时,计算机设备可以确定每个音符的属性信息;可选的,任一音符的属性信息可以包括但不限于:音高属性、时间段属性,等等。其中,任一音符的音高属性可以用于表示该任一音符的音高值,且任一音符的时间段属性可以用于表示该任一音符所处的时间段。在此种情况下,计算机设备采用一个或多个音符生成的目标音频数据对应的演唱音准指示文件可以包括各个音符的属性信息。
42.为了进一步说明本技术实施例的有益效果,本技术实施例分别将人工标注的演唱音准指示文件与tony软件(一种对音频数据进行音符转写的软件)生成的演唱音准指示文件和本技术实施例所得的演唱音准指示文件进行对比分析,以突显本技术实施例所提出的音频处理方法的准确性。例如,如图5所示,显示界面501中显示了人工标注的演唱音准指示文件中的各个音符以及各个音符的音高值等,显示界面502中显示了本技术实施例所得的演唱音准指示文件中的各个音符以及相应的音高值,且显示界面503中显示了tony软件生成的演唱音准指示文件中的各个音符以及相应的音高值;相应的,显示界面502中的各个音符与显示界面501中的各个音符更加接近,也就是说,本技术实施例所得的演唱音准指示文
件与人工标注的演唱音准指示文件更接近,即本技术实施例可获取准确性更高的演唱音准指示文件。
43.本技术实施例可通过对目标音频数据中的各个音素的起始时间点位进行检测,并基于检测得到的目标起始时间序列、目标音频数据的目标音高曲线和目标音频数据中的目标无声区域,来较为准确地确定目标音频数据对应的一个或多个演唱片段。这样不仅可使得一个演唱片段包括至少一个时间点位和相应音高值,避免演唱片段中出现无声区域,提升演唱片段的准确性;还可使得一个演唱片段的开始时间点位对应一个音素的起始时间点位,从而使得在对各个演唱片段进行音符转写处理时,可实现将一个音素对应到一个或多个音符上,即实现音符按照音素进行划分,保证音符的精准分割,进而实现采用较为准确的各个音符生成较为准确的演唱音准指示文件。由于本技术实施例是通过对目标音频数据进行一系列处理后,自动化地生成目标音频数据对应的演唱音准指示文件的,因此可有效提升演唱音准指示文件的生成效率,且有效节省人力成本;另外,通过利用目标音频数据的目标音高曲线来得到一个或多个演唱片段,可实现通过各个演唱片段中的各个音高值对目标音高曲线进行量化,进而实现输出量化音高曲线后得到的演唱音准指示文件。
44.请参见图6,是本技术实施例提供的另一种音频处理方法的流程示意图。该音频处理方法可以由上述所提及的计算机设备执行,该计算机设备可以是终端或者服务器;或者,该音频处理方法可由终端和服务器共同执行。为便于阐述,后续均以计算机设备执行该音频处理方法为例进行说明;请参见图6,该音频处理方法可包括以下步骤s601-s606:s601,获取目标音频数据的目标音高曲线,并确定目标音频数据中的目标无声区域。
45.在具体实现中,计算机设备获取目标音频数据的目标音高曲线的具体实施过程可以包括:对目标音频数据中的各个时间点位进行基频提取,并根据基频提取结果确定目标音频数据的初始音高曲线;然后,对初始音高曲线进行极小值检测,并对检测出的初始音高曲线中的各个极小值进行修正,得到目标音频数据的目标音高曲线;其中,初始音高曲线中的极小值是指:处于预设时长范围内的各个音高值中与参考音高值之间的差值大于音高差异阈值的音高值;参考音高值是根据处于预设时长范围内的至少一个时间点位的音高值确定的。需要说明的是,计算机设备对目标音频数据中的各个时间点位进行基频提取,可得到目标音频数据中的各个时间点位的基频值,那么计算机设备根据基频提取结果确定目标音频数据的初始音高曲线可以指的是:分别采用目标音频数据中的每个时间点位的基频值,计算目标音频数据中的每个时间点位的音高值,以确定目标音频数据的初始音高曲线;也可以指的是:分别将目标音频数据中的各个时间点位的基频值作为各个时间点位的音高值,也就是说,初始音高曲线中各个时间点位的音高值等于相应时间点位的基频值,等等。
46.可选的,上述参考音高值可以指的是预设时长范围内的至少一个时间点位中各个音高值之间的均值,也可以指的是预设时长范围内的至少一个时间点位中各个音高值的最大值等,本技术对此不作限定。相应的,计算机设备在对初始音高曲线进行极小值检测时,可按照滑动步长采用一个滑动窗口在初始音高曲线上进行滑动,该滑动窗口用于表示一个预设时长范围;在每次滑动该滑动窗口后,可将初始音高曲线中当前位于滑动窗口内的各个时间点位的音高值均作为目标音高值,并可根据至少一个目标音高值确定当前的参考音高值;若各个目标音高值中的最小值与当前的参考音高值之间的差值大于音高差异阈值,
则将各个目标音高值中的最小值确定为初始音高曲线中的一个极小值。可选的,音高差异阈值可以是按照经验设置的,也可以是根据各个目标音高值所计算的,如15个半音或20个半音等;其中,半音是指相邻两个音阶之间的音高差值。
47.需要说明的是,计算机设备可以将至少一个目标音高值中各个目标音高值之间的均值作为当前的参考音高值,也可以将至少一个目标音高值中的最大值作为当前的参考音高值,本技术对此不作限定。其中,此处的至少一个目标音高值可以指的是当前位于滑动窗口内的所有时间点位的音高值,即所有的目标音高值;也可以指的是各个目标音高值中除最小值以外的所有目标音高值,等等。
48.在此种情况下,每从初始音高曲线中确定出一个极小值,计算机设备则可根据当前确定出的当前极小值所处的滑动窗口中的各个目标音高值,确定当前极小值的音高修正值;以及,记录当前极小值的音高修正值;相应的,计算机设备在对检测出的初始音高曲线中的各个极小值进行修正,得到目标音频数据的目标音高曲线时,可将检测出的初始音高曲线中的各个极小值,分别修正为记录的相应音高修正值,得到目标音频数据的目标音高曲线。可选的,每从初始音高曲线中确定出一个极小值,计算机设备则可采用确定的音高修正值对当前极小值进行修正。
49.可选的,计算机设备在根据当前确定出的当前极小值所处的滑动窗口中的各个目标音高值,确定当前极小值的音高修正值时,可将各个目标音高值中的最大值确定为当前极小值的音高修正值,也可将各个目标音高值之间的均值确定为当前极小值的音高修正值,等等。
50.举例来说,假设计算机设备确定的各个目标音高值分别为17、25、66、20和16个半音,至少一个目标音高值为确定的各个目标音高值,且当前的参考音高值为各个目标音高值中的最大值,那么计算机设备可以确定当前的参考音高值为66。在此种情况下,假设音高差异阈值为15个半音,则各个目标音高值中的最小值与当前的参考音高值之间的差值为50个半音,即各个目标音高值中的最小值与当前的参考音高值之间的差值大于音高差异阈值,那么计算机设备可将各个目标音高值中的最小值确定为初始音高曲线中的一个极小值,即当前极小值。进一步的,假设计算机设备将各个目标音高值中的最大值确定为当前极小值的音高修正值,则计算机设备可以记录当前极小值的音高修正值为66,从而将当前极小值修正为66。
51.需要说明的是,计算机设备也可对各个极小值所在的预设时长范围内的各个时间点位的音高值进行修正。在此种情况下,每从初始音高曲线中确定出一个极小值,计算机设备则可根据当前确定出的当前极小值所处的滑动窗口中的各个目标音高值,确定各个目标音高值的音高修正值;以及,记录各个目标音高值的音高修正值;相应的,计算机设备可将每个目标音高值分别修正为记录的相应音高修正值。可选的,每从初始音高曲线中确定出一个极小值,计算机设备则可将各个目标音高值分别修正为相应的音高修正值。
52.进一步的,计算机设备确定目标音频数据中的目标无声区域的具体实施过程可以包括:对目标音频数据进行无声区检测,得到目标音频数据中的一个或多个初始无声区域;根据各个初始无声区域的区域长度,识别一个或多个初始无声区域中的有效无声区域;并将识别出的各个有效无声区域,作为目标音频数据中的目标无声区域。其中,有效无声区域是指:区域长度大于长度阈值的无声区域。可选的,此处的长度阈值可以是计算机设备设置
的,也可以是目标对象按照意愿设置的,如50毫秒或者10秒(s)等。可以理解的是,若以帧为单位,那么此处的长度阈值也可以为20帧或25帧等;其中,一帧可以包括一个或多个时间点位的音频数据,即一帧可以指的是一个时间段,如一帧可以为20毫秒(ms)或23毫秒等;相应的,假设一帧为20毫秒,则长度阈值为20帧可以指的是:长度阈值为6.67秒。
53.例如,假设一个或多个初始无声区域包括初始无声区域a、初始无声区域b和初始无声区域c,且初始无声区域a的区域长度为12秒、初始无声区域b的区域长度为5秒以及初始无声区域c的区域长度为20秒,并假设长度阈值为7秒;由于初始无声区域a和初始无声区域c大于长度阈值,那么计算机设备可以识别一个或多个初始无声区域中的有效无声区域包括初始无声区域a和初始无声区域c。在此种情况下,计算机设备可以将初始无声区域a和初始无声区域c作为目标音频数据中的目标无声区域。
54.又如,假设一个或多个初始无声区域包括初始无声区域a、初始无声区域b和初始无声区域c,且初始无声区域a的区域长度为25帧、初始无声区域b的区域长度为5帧以及初始无声区域c的区域长度为30帧,并假设长度阈值为20帧,那么计算机设备可以将初始无声区域a和初始无声区域c识别为有效无声区域,以得到目标无声区域。
55.可以理解的是,计算机设备确定目标音频数据中的目标无声区域的具体实施过程也可以包括:对目标音频数据进行无声区检测,得到目标音频数据中的一个或多个初始无声区域;根据各个初始无声区域的区域长度,识别一个或多个初始无声区域中的无效无声区域;并一个或多个初始无声区域中除识别出的各个无效无声区域以外的各个初始无声区域,作为目标音频数据中的目标无声区域。其中,无效无声区域是指:区域长度小于或等于长度阈值的无声区域。换句话说,计算机设备可以在一个或多个初始无声区域中,排除较短的无音高区域后得到目标无声区域。
56.s602,对目标音频数据中的各个音素的起始时间点位进行检测,得到初始起始时间序列,初始起始时间序列中包括各个音素的起始时间点位。
57.举例来说,假设目标音频数据中包括音素a、音素b以及音素c,那么计算机设备对目标音频数据中的各个音素的起始时间点位进行检测时,可以得到音素a的起始时间点位、音素b的起始时间点位以及音素c的起始时间点位,从而得到初始起始时间序列;可以理解的是,此时的初始起始时间序列包括音素a的起始时间点位、音素b的起始时间点位以及音素c的起始时间点位。
58.s603,根据初始起始时间序列中的相邻起始时间点位之间的时间间隔,从初始起始时间序列中确定出一个或多个无效起始时间点位。
59.需要说明的是,无效起始时间点位是指:与前一个起始时间点位之间的时间间隔小于间隔阈值的起始时间点位。相应的,上述间隔阈值可以是按照经验设置的,也可以是根据各个起始时间点位之间的时间间隔计算得到的,如10秒或6秒等。可选的,间隔阈值也可以帧为单位,如20帧或12帧等;在此种情况下,假设间隔阈值为20帧,且假设一帧为20毫秒,则此时的间隔阈值为6.67秒。
60.在一种实施方式中,计算机设备在从初始起始时间序列中确定出一个或多个无效起始时间点位的过程中,可以从初始起始时间序列中的第二个起始时间点位开始,遍历初始起始时间序列,并将当前遍历的起始时间点位作为当前起始时间点位;也就是说,计算机设备可依次对初始起始时间序列中除第一个起始时间点位以外的所有起始时间点位进行
遍历。进一步的,计算机设备可在初始起始时间序列中确定当前起始时间点位的前一个起始时间点位;若当前起始时间点位与前一个起始时间点位之间的时间间隔小于间隔阈值,则将当前起始时间点位作为无效起始时间点位。可以理解的是,若当前起始时间点位与前一个起始时间点位之间的时间间隔大于或等于间隔阈值,计算机设备则可将当前起始时间点位作为有效起始时间点位。
61.例如,如图7a所示,当计算机设备在初始起始时间序列中确定当前起始时间点位的前一个起始时间点位时,假设初始起始时间序列包括起始时间点位a、起始时间点位b、起始时间点位c、起始时间点位d以及起始时间点位e,则计算机设备可以确定起始时间点位b的前一个起始时间点位为起始时间点位a、起始时间点位c的前一个起始时间点位为起始时间点位b、起始时间点位d的前一个起始时间点位为起始时间点位c、以及起始时间点位e的前一个起始时间点位为起始时间点位d。相应的,假设起始时间点位b与起始时间点位a之间的时间间隔为5秒、起始时间点位c与起始时间点位b之间的时间间隔为6秒,起始时间点位d与起始时间点位c之间的时间间隔为10秒,起始时间点位e与起始时间点位d之间的时间间隔为7秒,且假设间隔阈值为8秒;在此种情况下,由于起始时间点位b与起始时间点位a之间的时间间隔小于间隔阈值,起始时间点位c与起始时间点位b之间的时间间隔小于间隔阈值,且起始时间点位e与起始时间点位d之间的时间间隔小于间隔阈值,那么计算机设备可以在初始起始时间序列中,确定起始时间点位b、起始时间点位c和起始时间点位e均为无效起始时间点位;也就是说,计算机设备在初始起始时间序列中确定出的一个或多个无效起始时间点位包括起始时间点位b、起始时间点位c和起始时间点位e。需要说明的是,图7a仅示例性的表示了初始起始时间序列和目标起始时间序列,本技术对此不作限定;如目标起始时间序列中起始时间点位的数量还可以等于初始起始时间序列中起始时间点位的数量,也就是说,初始起始时间序列中的各个起始时间点位与前一个起始时间点位之间的时间间隔均大于间隔阈值,在此种情况下,计算机设备可以将初始起始时间序列作为目标起始时间序列。
62.另一种实施方式中,计算机设备在从初始起始时间序列中确定出一个或多个无效起始时间点位的过程中,计算机设备可将初始起始时间序列中的第一个起始时间点位作为有效起始时间点位;从初始起始时间序列中的第二个起始时间点位开始,遍历初始起始时间序列,并将当前遍历的起始时间点位作为当前起始时间点位,以及在各个有效起始时间点位中确定当前起始时间点位的前一个起始时间点位。进一步的,若当前起始时间点位与前一个起始时间点位之间的时间间隔小于间隔阈值,计算机设备则将当前起始时间点位作为无效起始时间点位;若当前起始时间点位与前一个起始时间点位之间的时间间隔大于或等于间隔阈值,计算机设备则将当前起始时间点位作为有效起始时间点位。
63.又如,如图7b所示,当计算机设备在各个有效起始时间点位中确定当前起始时间点位的前一个起始时间点位时,假设初始起始时间序列包括起始时间点位a、起始时间点位b、起始时间点位c、起始时间点位d以及起始时间点位e,且假设起始时间点位b与起始时间点位a之间的时间间隔为5秒、起始时间点位c与起始时间点位b之间的时间间隔为6秒,起始时间点位d与起始时间点位c之间的时间间隔为10秒,起始时间点位e与起始时间点位d之间的时间间隔为7秒。相应的,假设间隔阈值为8秒,则计算机设备可以确定起始时间点位b的前一个起始时间点位为起始时间点位a,且起始时间点位b与起始时间点位a之间的时间间
隔小于间隔阈值,那么计算机设备可以确定起始时间点位b为无效起始时间点位;进一步的,计算机设备可以确定起始时间点位c的前一个起始时间点位,由于此时计算机设备确定出的有效起始时间点位仅包括起始时间点位a,则计算机设备可以确定起始时间点位c的前一个起始时间点位为起始时间点位a,又由于起始时间点位c和起始时间点位a之间的时间间隔大于间隔阈值,则计算机设备可以将起始时间点位c作为有效起始时间点位。在此种情况下,由于当前系统时间下的有效起始时间点位包括起始时间点位a和起始时间点位c,那么计算机设备可以确定起始时间点位d的前一个起始时间点位为起始时间点位c,且起始时间点位d与起始时间点位c之间的时间间隔大于间隔阈值,则计算机设备可以将起始时间点位d作为有效起始时间点位;相应的,此时有效起始时间点位包括起始时间点位a、起始时间点位c和起始时间点位d,那么计算机设备可以确定起始时间点位e的前一个起始时间点位为起始时间点位d,由于起始时间点位e与起始时间点位d之间的时间间隔小于间隔阈值,则计算机设备可以确定起始时间点位e为无效起始时间点位。可以理解的是,计算机设备从初始起始时间序列中确定出的一个或多个无效起始时间点位包括起始时间点位b和起始时间点位e。
64.同理,图7b仅示例性的表示了初始起始时间序列和目标起始时间序列,本技术对此不作限定;例如,目标起始时间序列可以与初始起始时间序列相同。
65.s604,从初始起始时间序列中删除掉各个无效起始时间点位,得到目标起始时间序列。
66.可以理解的是,目标起始时间序列可以包括:初始起始时间序列中除各个无效起始时间点位以外的所有起始时间点位。
67.例如,如图7a所示,当计算机设备在初始起始时间序列中确定当前起始时间点位的前一个起始时间点位时,计算机设备可以确定初始起始时间序列中的无效起始时间点位包括起始时间点位b、起始时间点位c以及起始时间点位e,那么计算机设备可以从初始起始时间序列中删除掉起始时间点位b、起始时间点位c以及起始时间点位e,得到目标起始时间序列。可以理解的是,计算机设备可以将初始起始时间序列中除起始时间点位b、起始时间点位c以及起始时间点位e以外的所有起始时间点位(即起始时间点位a和起始时间点位d),作为目标起始时间序列中的各个起始时间点位,从而得到目标起始时间序列。
68.又如,如图7b所示,当计算机设备在各个有效起始时间点位中确定当前起始时间点位的前一个起始时间点位时,计算机设备可以确定初始起始时间序列中的无效起始时间点位包括起始时间点位b和起始时间点位e,那么计算机设备可以从初始起始时间序列中删除掉起始时间点位b和起始时间点位e,得到目标起始时间序列。可以理解的是,计算机设备可以将初始起始时间序列中除起始时间点位b和起始时间点位e以外的所有起始时间点位(即起始时间点位a、起始时间点位c以及起始时间点位d),作为目标起始时间序列中的各个起始时间点位,从而得到目标起始时间序列。
69.s605,基于目标起始时间序列、目标音高曲线和目标无声区域,确定目标音频数据对应的一个或多个演唱片段。
70.其中,一个演唱片段包括至少一个时间点位和相应音高值,一个演唱片段的开始时间点位对应一个音素的起始时间点位。可以理解的是,目标对象在演唱时通常都会伴随较多的处理,例如转音、颤音、滑音等,导致基频值的波动性较大,即目标音频数据中各个时
间点位的基频值的特点可以为:基频值的波动值较大,那么计算机设备需通过分割处理,以得到目标音频数据对应的一个或多个演唱片段。
71.在一种实施方式中,目标无声区域的数量为m个,m为正整数;计算机设备基于目标起始时间序列、目标音高曲线和目标无声区域,确定目标音频数据对应的一个或多个演唱片段的具体实施过程可以包括:确定m个目标无声区域中的各个目标无声区域的区域起始点,以及目标起始时间序列中的每个起始时间点位和确定的各个区域起始点之间的时间距离;然后,根据确定出的各个时间距离,在m个目标无声区域中确定每个起始时间点位对应的相邻无声区域,任一起始时间点位对应的相邻无声区域是指:m个目标无声区域中区域起始点位于任一起始时间点位之后,且相应的时间距离最小的目标无声区域;以及,基于各个起始时间点位以及对应的相邻无声区域的区域起始点,对目标音高曲线进行分割处理,得到q个曲线段,并将q个曲线段中的一个曲线段,确定为目标音频数据对应的一个演唱片段,以得到q个演唱片段。其中,第i个曲线段的起始点为目标起始时间序列中的第i个起始时间点位,结束点为第i个起始时间点位对应的区域起始点;i∈[1,q],q的取值等于目标起始时间序列中的起始时间点位的数量。
[0072]
例如,如图8a所示,假设m的取值为4,m个目标无声区域包括目标无声区域1、目标无声区域2、目标无声区域3以及目标无声区域4;其中,目标无声区域1为2~6秒的区域,目标无声区域2为10~15秒的区域,目标无声区域3为24~28秒的区域,目标无声区域4为33~40秒的区域,且假设目标起始时间序列包括起始时间点位a、起始时间点位b以及起始时间点位c,那么计算机设备可以分别确定起始时间点位a、起始时间点位b以及起始时间点位c中每个起始时间点位与各个目标无声区域的区域起始点之间的时间距离。在此种情况下,由于m个目标无声区域中区域起始点位于起始时间点位a之后,且相应的时间距离最小的目标无声区域为目标无声区域1,则计算机设备可以确定起始时间点位a对应的相邻无声区域为目标无声区域1;由于m个目标无声区域中区域起始点位于起始时间点位b之后,且相应的时间距离最小的目标无声区域为目标无声区域2,则计算机设备可以确定起始时间点位b对应的相邻无声区域为目标无声区域2;又由于m个目标无声区域中区域起始点位于起始时间点位c之后,且相应的时间距离最小的目标无声区域为目标无声区域3,则计算机设备可以确定起始时间点位c对应的相邻无声区域为目标无声区域3。进一步的,计算机设备可以基于各个起始时间点位和相应的目标无声区域的区域起始点,对目标音高曲线进行分割处理,得到3个(即q的取值为3)曲线段。其中,第1个曲线段(即曲线段1)的起始点为起始时间点位a,结束点为目标无声区域1的区域起始点;第2个曲线段(即曲线段2)的起始点为起始时间点位b,结束点为目标无声区域2的区域起始点;第3个曲线段(即曲线段3)的起始点为起始时间点位c,结束点为目标无声区域3的区域起始点。在此种情况下,计算机设备可以将3个曲线段中的一个曲线段,确定为目标音频数据对应的一个演唱片段,以得到3个演唱片段。
[0073]
需要说明的是,图8a仅示例性地表示了目标起始时间序列中的各个起始时间点位以及各个目标无声区域,本技术对此不作限定;例如,起始时间点位b也可以与目标无声区域1的区域结束点重叠,也就是说,起始时间点位b可以为目标无声区域1的区域结束点;又如,目标起始时间序列中起始时间点位的数量可以与m相同;再如,图8a中的虚线仅用于突出区域范围,在实际显示时可不显示该虚线,等等。
[0074]
可以理解的是,计算机设备将各个目标无声区域的边界与起始时间序列合并,能
够得到音素的目标起始时间序列和结束时间序列,且结束时间序列中的结束时间点位与目标起始时间序列中的起始时间点位一一对应;也就是说,计算机设备可以得到q个曲线段中每个曲线段的起始时间点位和结束时间点位,一个结束时间点位为相应起始时间点位对应的区域起始点。
[0075]
另一种实施方式中,目标无声区域的数量为m个,m为正整数;计算机设备基于目标起始时间序列、目标音高曲线和目标无声区域,确定目标音频数据对应的一个或多个演唱片段的具体实施过程可以包括:将目标音高曲线中处于m个目标无声区域的各个时间点位的音高值调整为零值,得到调整后的目标音高曲线;然后,基于目标起始时间序列中的各个起始时间点位,对调整后的目标音高曲线进行分割处理,得到q个曲线段;并将q个曲线段中的一个曲线段,确定为目标音频数据对应的一个演唱片段,以得到q个演唱片段。其中,第i个曲线段的起始点为目标起始时间序列中的第i个起始时间点位,结束点为被调整的时间点位中位于第i个起始时间点位之后,且离第i个起始时间点位最近的时间点位;i∈[1,q],q的取值等于目标起始时间序列中的起始时间点位的数量。
[0076]
可以理解的是,调整后的目标音高曲线在任一目标无声区域内的曲线是指:一段与横坐标重叠的线段。
[0077]
例如,假设m的取值为3,且m个目标无声区域包括目标无声区域1、目标无声区域2以及目标无声区域3,那么计算机设备可以将目标音高曲线中处于目标无声区域1中的各个时间点位的音高值调整为零,将目标音高曲线中处于目标无声区域2中的各个时间点位的音高值调整为零,并将目标音高曲线中处于目标无声区域3中的各个时间点位的音高值调整为零,从而得到调整后的目标音高曲线,也就是说,调整后的目标音高曲线在目标无声区域1、目标无声区域2以及目标无声区域3中的任一时间点位的音高值均为0。
[0078]
进一步的,一个目标无声区域采用一个零值序列进行表示,零值序列是指由多个零值构成的序列,且每个零值均对应一个时间点位;计算机设备将目标音高曲线中处于m个目标无声区域的各个时间点位的音高值调整为零值,得到调整后的目标音高曲线的具体实施过程可以包括:对m个目标无声区域和目标音高曲线进行乘法运算,并通过乘法运算将目标音高曲线中处于m个目标无声区域的各个时间点位的音高值调整为零值,得到调整后的目标音高曲线。
[0079]
可以理解的是,任一目标无声区域中时间点位的数量,与用于表示该任一目标无声区域的零值序列中零值的数量相同;也就是说,计算设备对m个目标无声区域和目标音高曲线进行乘法运算是指:将目标音高曲线中处于m个目标无声区域的各个时间点位的音高值均与一个零值相乘。
[0080]
例如,如图8b所示,假设m的取值为3,且m个目标无声区域包括目标无声区域1、目标无声区域2以及目标无声区域3,那么可分别采用一个零值序列来表示目标无声区域1、目标无声区域2以及目标无声区域3;其中,目标无声区域1为2~6秒的区域,目标无声区域2为10~15秒的区域,目标无声区域3为24~28秒的区域。相应的,假设用于表示目标无声区域1的零值序列为零值序列1,且目标无声区域1包括3个时间点位,则零值序列1包括3个零值;假设用于表示目标无声区域2的零值序列为零值序列2,且目标无声区域2包括4个时间点位,则零值序列2包括4个零值;假设用于表示目标无声区域3的零值序列为零值序列3,且目标无声区域3包括2个时间点位,则零值序列3包括2个零值。进一步的,计算机设备可以采用各
个目标无声区域和目标音高曲线进行乘法运算,也就是说,可采用相应的零值序列(即零值序列1、零值序列2以及零值序列3)和目标音高曲线进行乘法运算,得到调整后的目标音高曲线;其中,调整后的目标音高曲线中位于目标无声区域1、目标无声区域2以及目标无声区域3中的任一时间点位的音高值为0。
[0081]
进一步的,如图8b所示,假设目标起始时间序列包括起始时间点位a、起始时间点位b以及起始时间点位c,那么计算机设备在基于目标起始时间序列中的各个起始时间点位,对调整后的目标音高曲线进行分割处理时,可确定被调整的时间点位中位于起始时间点位a之后,且离起始时间点位a最近的时间点位为时间点位1(即第2秒所在的时间点位),被调整的时间点位中位于起始时间点位b之后,且离起始时间点位b最近的时间点位为时间点位2(即第10秒所在的时间点位),被调整的时间点位中位于起始时间点位c之后,且离起始时间点位c最近的时间点位为时间点位3(即第24秒所在的时间点位),从而基于各个起始时间点位以及相应的被调整的时间点位,将调整后的目标音高曲线划分为3个曲线段。其中,第1个曲线段(即曲线段1)的起始点为起始时间点位a,结束点为时间点位1;第2个曲线段(即曲线段2)的起始点为起始时间点位b,结束点为时间点位2;第3个曲线段(即曲线段3)的起始点为起始时间点位c,结束点为时间点位3。在此情况下,计算机设备可以将3个曲线段中的一个曲线段,确定为目标音频数据对应的一个演唱片段,以得到3个演唱片段。
[0082]
需要说明的是,图8b仅示例性的对目标起始时间序列、目标音高曲线、调整后的目标音高曲线等进行了表示,本技术对此不作限定;例如,调整后的目标音高曲线也可以是连续的曲线;又如,除第一个起始时间点位(即起始时间点位a)以外,任一起始时间点位与前一个起始时间点位对应的目标无声区域的区域结束点重叠,即该任一起始时间点位是指前一个起始时间点位对应的目标无声区域的区域结束点;再如,图8b中的虚线仅用于突出区域范围,在实际显示时可不显示该虚线,等等。
[0083]
值得注意的是,计算机设备也可以采用目标调整序列,将目标音高曲线中处于m个目标无声区域的各个时间点位的音高值调整为零值,得到调整后的目标音高曲线。其中,目标调整序列是指:由多个0和多个1构成的序列,且每个0均对应一个目标无声区域中的时间点位,每个1均对应一个目标音高曲线中除m个目标无声区域以外的任一区域中的时间点位;也就是说,目标调整序列中的各个序列值与目标音高曲线中的各个时间点位一一对应,且位于任一目标无声区域中的任一时间点位对应的序列值为0,其他时间点位中的任一时间点位对应的序列值为1。在此种情况下,采用目标调整序列,将目标音高曲线中处于m个目标无声区域的各个时间点位的音高值调整为零值的具体实施过程指的是:针对任一时间点位,若该任一时间点位位于任一目标无声区域中,则将该任一时间点位的音高值调整为零值,也就是说,将该任一时间点位的音高值与零值进行乘法运算;若该任一时间点位未位于任一目标无声区域中,则不对该任一时间点位的音高值进行调整,也就是说,将该任一时间点位的音高值与1进行乘法运算。
[0084]
s606,对一个或多个演唱片段中的每个演唱片段进行音符转写处理,得到一个或多个音符;以及,采用一个或多个音符生成目标音频数据对应的演唱音准指示文件。
[0085]
具体的,计算机设备对一个或多个演唱片段中的每个演唱片段进行音符转写处理,得到一个或多个音符的过程可以包括如下步骤s11-s13:s11,针对任一演唱片段,计算机设备可以根据任一演唱片段中的各个音高值对任
一演唱片段进行转音检测;其中,转音是指:在演唱时需进行音高值突变转换的时间点位。
[0086]
可选的,上述转音也可以指的是一种演唱方式,目标对象通过该演唱方式可以在演唱时进行音高值突变转换;可以理解的是,若任一演唱片段中存在转音,则该任一演唱片段中存在演唱时需进行音高值突变转换的时间点位。值得注意的是,即使按照目标起始时间序列、目标无声区域对基频值(即音高值)进行划分,一个区域(即一个演唱片段)内的基频值仍然波动较大,特别是有转音的情况;因此,不能直接简单按区域对基频曲线(即音高曲线)做平均,即不能直接根据任一演唱片段中各个时间点位的音高值之间的均值,来确定该任一演唱片段对应的一个音符,而应当根据任一演唱片段是否存在转音来分配该任一演唱片段对应的至少一个音符。
[0087]
需要说明的是,计算机设备根据任一演唱片段中的各个音高值对任一演唱片段进行转音检测的过程中,可先从任一演唱片段中选取一个时间点位,作为基准时间点位,并基于基准时间点位将该任一演唱片段划分成第一片段和第二片段;然后,将第一片段中的各时间点位的音高值之间的均值,作为第一平均音高值,以及将第二片段中的各时间点位的音高值之间的均值,作为第二平均音高值。在此种情况下,若第一平均音高值与第二平均音高值之间的差值大于转音判别阈值,则将基准时间点位确定为演唱时需进行音高值突变转换的时间点位,并确定该任一演唱片段存在转音;若第一平均音高值与第二平均音高值之间的差值小于或等于转音判别阈值,则确定该任一演唱片段未存在转音。
[0088]
可选的,计算机设备可以将任一演唱片段中各个时间点位的中间值作为基准时间点位,也可以将该任一演唱片段中的任一时间点位作为基准时间点位,还可以将该任一演唱片段中除第一个时间点位和最后一个时间点位以外的任一时间点位作为基准时间点位,本技术对此不作限定。具体的,在计算机设备将任一演唱片段中各个时间点位的中间值作为基准时间点位时,计算机设备可以确定该任一演唱片段中包括的时间点位的时间点位数量;然后,采用该时间点位数量计算该任一演唱片段中各个时间点位的中间值,并将该中间值作为基准时间点位。可选的,若计算机设备计算出的中间值为浮点值,即计算出的中间值不为整数,则计算机设备可以对该中间值进行向上取整,也可以对该中间值进行向下取整,等等;并将取整后的中间值作为基准时间点位。
[0089]
值得注意的是,计算机设备可以将基准时间点位划分至第一片段,即第一片段可以包括基准时间点位,也就是说,第一片段的结束点为基准时间点位,且第二片段的起始点为基准时间点位的后一个时间点位;计算机设备也可以将基准时间点位划分至第二片段,即第二片段可以包括基准时间点位,也就是说,第一片段的结束点为基准时间点位的前一个时间点位,第二片段的起始点为基准时间点位,等等。
[0090]
需要说明的是,转音判别阈值可以是按照经验设置的,由于转音一般是在一个音素内出现两个相差超过1.5个半音的音高值,则转音判别阈值可以为1.5个半音或1个半音等;可选的,转音判别阈值也可以是通过上述任一演唱片段中各个时间点位的音高值所计算的,如将上述任一演唱片段中各个时间点位的音高值之间的均值作为转音判别阈值,本技术对此不作限定。
[0091]
举例来说,假设任一演唱片段依次包括时间点位a、时间点位b、时间点位c、时间点位d以及时间点位e,且假设基准时间点位为时间点位c,则计算机设备可以基于时间点位c将该任一演唱片段划分成第一片段和第二片段。进一步的,假设计算机设备将基准时间点
位划分至第一片段,则第一片段包括时间点位a、时间点位b以及时间点位c,且第二片段包括时间点位d和时间点位e,那么计算机设备可以将时间点位a、时间点位b以及时间点位c的音高值之间的均值作为第一平均音高值,并将时间点位d和时间点位e的音高值之间的均值作为第二平均音高值。相应的,假设第一平均音高值与第二平均音高值之间的差值为3个半音,且假设转音判别阈值为1.5个半音,则第一平均音高值与第二平均音高值之间的差值大于转音判别阈值,那么计算机设备可以将时间点位c确定为演唱时需进行音高值突变转换的时间点位,并确定该任一演唱片段存在转音;又假设第一平均音高值与第二平均音高值之间的差值为1个半音,且假设转音判别阈值为1.5个半音,则第一平均音高值与第二平均音高值之间的差值小于转音判别阈值,那么计算机设备可以确定该任一演唱片段未存在转音。
[0092]
可以理解的是,若上述基准时间点位为任一演唱片段中各个时间点位的中间值,且计算机设备在确定目标音频数据的初始音高曲线时,将目标音频数据中各个时间点位的基频值作为相应时间点位的音高值,那么计算机设备可以逐区间判断区间前一半和后一半音高值(即基频值)的平均值是否超过转音判别阈值(如1.5个半音),也就是说,计算机设备可逐一判断演唱片段前一半和后一半音高值的平均值是否超过转音判别阈值;如果超过则认为该演唱片段存在转音,如果不超过则认为该演唱片段不存在转音。
[0093]
s12,若任一演唱片段中存在转音,则基于存在的转音将任一演唱片段分成两个子片段,并对每个子片段进行音符转写处理,得到两个音符。
[0094]
可以理解的是,计算机设备可以基于演唱时需进行音高值突变转换的时间点位,将任一演唱片段分成两个子片段。需要说明的是,计算机设备可以将转音(即演唱时需进行音高值突变转换的时间点位)划分至第一个子片段,此时第一个子片段的结束点为转音;计算机设备也可以将转音划分至第二个子片段,此时第二个子片段的起始点为转音,本技术对此不作限定。
[0095]
具体的,计算机设备对每个子片段进行音符转写处理,得到两个音符的具体实施过程可以包括:对每个子片段中的各个时间点位的音高值进行均值运算,得到每个子片段的平均音高值;并基于每个子片段的平均音高值和每个子片段的演唱时间段,为每个子片段分配一个音符。可以理解的是,计算机设备在对每个子片段进行音符转写处理的时,可为每个子片段分配音符,并对各个音符进行属性分配,即确定各个音符的属性信息。
[0096]
在此种情况下,若上述两个子片段分别为第一片段和第二片段;计算机设备可以为第一片段分配一个音符,并将第一片段的平均音高值作为第一片段对应的音符的音高值,将第一片段的演唱时间段作为第一片段对应的音符所处的时间段,也就是说,第一片段对应的音符的音高属性可以为第一片段的平均音高值,且第一片段对应的音符的时间段属性可以为第一片段的演唱时间段;相应的,计算机设备可以为第二片段分配一个音符,并将第二片段的平均音高值作为第二片段对应的音符的音高值,将第二片段的演唱时间段作为第二片段对应的音符所处的时间段,也就是说,第二片段对应的音符的音高属性可以为第二片段的平均音高值,且第二片段对应的音符的时间段属性可以为第二片段的演唱时间段。
[0097]
例如,假设计算机设备基于转音将任一演唱片段划分为子片段a和子片段b,即第一片段为子片段a,第二片段为子片段b。又假设第一片段包括时间点位a、时间点位b以及时
间点位c,第二片段包括时间点位d和时间点位e,那么计算机设备可以将时间点位a、时间点位b以及时间点位c的音高值之间的均值,作为第一片段的平均音高值,并基于第一片段的平均音高值和第一片段的演唱时间段,为第一片段分配一个音符,也就是说,第一片段对应的音符的音高值为时间点位a、时间点位b以及时间点位c的音高值之间的均值;相应的,计算机设备可以将时间点位d和时间点位e的音高值之间的均值,作为第二片段的平均音高值,并基于第二片段的平均音高值和第二片段的演唱时间段,为第二片段分配一个音符,也就是说,第二片段对应的音符的音高值为时间点位d和时间点位e的音高值之间的均值。
[0098]
可以理解的是,当任一演唱片段中存在转音时,针对该任一演唱片段,计算机设备可以向演唱音准指示文件中添加两个音符,也就是说,生成的演唱音准指示文件可以包括该任一演唱片段对应的两个音符。
[0099]
s13,若任一演唱片段中未存在转音,对任一演唱片段进行音符转写处理,得到一个音符。
[0100]
需要说明的是,计算机设备对任一演唱片段进行音符转写处理,得到一个音符的具体实施过程可以包括:按照时间点位从大到小的顺序,从任一演唱片段中的各个时间点位中,选取目标数量的时间点位;对选取出的目标数量的时间点位的音高值进行均值运算,得到均值运算结果;并基于均值运算结果和任一演唱片段的演唱时间段,为任一演唱片段分配一个音符。在此种情况下,针对该任一演唱片段,计算机设备可向演唱音准指示文件添加一个音符,即生成的演唱音准指示文件可包含该任一演唱片段对应的一个音符。
[0101]
可选的,目标数量可以是计算机设备设置的,也可以是用户按照意愿设置的,如60或78等。可以理解的是,计算机设备在选取目标数量的时间点位之前,可先确定目标数量;在此种情况下,计算机设备可以直接获取目标数量的取值;也可以先确定一个目标百分数,并将上述任一演唱片段包括的时间点位的数量与目标百分数进行乘法运算,得到目标数量,等等。
[0102]
举例来说,假设目标百分数为80%,且上述任一演唱片段包括的时间点位的数量为60,那么计算机设备可以确定目标数量为48。在此种情况下,计算机设备按照时间点位从大到小的顺序,从任一演唱片段中的各个时间点位中,选取目标数量的时间点位,并对选取出的目标数量的时间点位的音高值进行均值运算是指:在上述任一演唱片段中,选取后80%的时间点位,并对选取出的时间点位的音高值进行均值运算;相应的,若计算机设备在获取初始音高曲线时,可分别将初始音频数据中的每个时间点位的基频值作为每个时间点位的音高值,那么针对上述任一演唱片段,即针对没有检测到音高差异的片段,计算机设备可取后80%的音高值(基频值)做平均,得到该片段的音高值,即得到相应音符的音高值。
[0103]
需要说明的是,计算机设备在对任一演唱片段进行音符转写处理,得到一个音符的过程中,也可以按照时间点位从小到大的顺序,从该任一演唱片段中的各个时间点位中,选取目标数量的时间点位;还可以从该任一演唱片段中的各个时间点位中,随机选取数量为目标数量的时间点位,本技术对选取目标数量的时间点位的具体实施方式不作限定。
[0104]
本技术实施例可对目标音频数据中的各个音素的起始时间点位进行检测,得到初始起始时间序列,并从初始起始时间序列中删除掉各个无效起始时间点位,得到目标起始时间序列,其中,无效起始时间点位是指:与前一个起始时间点位之间的时间间隔小于间隔阈值的起始时间点位,可有效减少时间间隔较小的起始时间点位对演唱片段的确定结果的
影响。另外,本技术实施例可对目标音频数据的初始音高曲线中的各个极小值进行修正,以实现对每个极小值所在预设时长范围内的各个音高值的平滑处理;并且,可在各个初始无声区域中删除掉区域长度较小的无声区域以得到目标无声区域,即将区域长度大于长度阈值的有效无声区域作为目标无声区域,有效减少较短的演唱片段的出现,以避免出现较短的音符;并且,本技术实施例能够考虑到转音,可提升音符的准确性,从而提升演唱音准指示文件的准确性。
[0105]
为了便于更好地理解本技术实施例中图6所示的音频处理方法,下面进一步对本技术实施例所提出的音频处理方法进行具体说明:参见图9a所示,计算机设备可先获取初始音频数据,该初始音频数据可以包括目标对象所演唱的一个或多个音素,以及一个或多个伴奏,等等;也就是说,该初始音频数据可包括多个轨道中的音频数据,此处的多个轨道包括目标对象对应的目标轨道。然后,计算机设备可对初始音频数据进行音源分离,得到目标音频数据,该目标音频数据是指目标对象对应的目标轨道中的音频数据,目标音频数据包括目标对象所演唱的一个或多个音素。
[0106]
进一步的,计算机设备可对目标音频数据中的各个时间点位进行音高检测,得到初始音高曲线,初始音高曲线包括各个时间点位的音高值;对目标音频数据进行无声区检测,得到目标音频数据的初始无声区域;并对目标音频数据中的各个音素的起始时间点位进行检测,得到初始起始时间序列,初始起始时间序列包括各个音素的起始时间点位。
[0107]
在此种情况下,计算机设备可以对初始音高曲线、初始无声区域以及初始起始时间序列进行后处理,得到演唱音准指示文件,并输出演唱音准指示文件;相应的,此处的输出演唱音准指示文件可以指的是:按照时间点位从小到大的顺序,显示演唱音准指示文件中的各个音符以及各个音符的音高值等。其中,计算机设备对初始音高曲线、初始无声区域以及初始起始时间序列进行后处理的具体过程如图9b所示。
[0108]
具体的,计算机设备在对初始音高曲线、初始无声区域以及初始起始时间序列进行后处理时,可通过前处理模块和添加音符模块对初始音高曲线、初始无声区域以及初始起始时间序列进行后处理,此处的添加音符模块还可称为量化音符模块。在此种情况下,计算机设备可先通过前处理模块对初始音高曲线、初始起始时间序列和初始无声区域进行前处理;然后,通过添加音符模块,基于前处理结果确定一个或多个演唱片段,并为每个演唱片段分配音符,以将每个演唱片段对应的音符添加至演唱音准指示文件,即采用各个音符生成演唱音准指示文件,使演唱音准指示文件包括各个音符。
[0109]
在通过前处理模块对初始音高曲线、初始起始时间序列和初始无声区域进行前处理的过程中,计算机设备可修正初始音高曲线中的各个极小值,也就是说,可去除音高曲线中的极小值,以得到目标音高曲线;可删除掉初始无声区域中区域长度小于或等于长度阈值的无声区域,并将未删除的无声区域作为目标无声区域,也就是说,可将初始无声区域中区域长度大于长度阈值的有效无声区域作为目标无声区域;以及,删除掉初始起始时间序列中时间间隔小于间隔阈值的起始时间点位,即删除掉各个无效起始时间点位,得到目标起始时间点位。进一步的,计算机设备可通过前处理模块,采用目标无声区域对目标音高曲线进行调整,一个目标无声区域为一个零值序列,即采用目标无声区域与目标音高曲线相乘,得到调整后的目标音高曲线,调整后的目标音高曲线中处于任一目标无声区域中的任一时间点位的音高值为零值。
[0110]
相应的,在通过添加音符模块,基于前处理结果确定一个或多个演唱片段,并为每个演唱片段分配音符的过程中,计算机设备可以通过添加音符模块,基于目标起始时间序列,对调整后的目标音高曲线进行分割处理,以提取音高平均值不为零的演唱片段(即目标音频数据对应的一个或多个演唱片段),并对每个演唱片段进行转音检测;以及,根据转音检测结果为每个演唱片段分配音符。
[0111]
值得注意的是,图9a仅示例性的表示了音频处理方法的流程,本技术对此不作限定。例如,在上述流程中,计算机设备在获取初始音频数据后,可从初始音频数据中分离出目标音频数据;但在其他实施例中,计算机设备可以将初始音频数据作为目标音频数据。又如,计算机设备在生成演唱音准指示文件后,也可以不输出演唱音准指示文件,而是根据得到的演唱音准指示文件对目标对象进行演唱音准检测。再如,计算机设备在对目标音频数据中的各个时间点位进行音高检测时,可获取目标音频数据的目标音高曲线,并对目标音频曲线、初始无声区域以及初始起始时间序列进行后处理,等等。
[0112]
相应的,图9b仅示例性的表示了对初始音高曲线、初始起始时间序列以及初始无声区域进行后处理,并输出演唱音准指示文件的具体实施过程,本技术对此不作限定。例如,计算机设备也可基于各个目标无声区域,确定目标起始时间序列中的每个起始时间点位对应的区域起始点,并根据各个起始时间点位和相应的区域起始点对目标音高曲线进行分割处理,以得到目标音频数据对应的一个或多个演唱片段。又如,计算机设备也可以通过前处理模块,基于目标起始时间序列对调整后的目标音高曲线进行分割处理,得到目标音频数据对应的一个或多个演唱片段,也就是说,上述前处理结果也可以指的是:目标音频数据对应的一个或多个演唱片段。再如,当计算机设备对目标音频数据中的各个时间点位进行音高检测,得到目标音频数据的目标音高曲线时,前处理模块的输入为目标音高曲线、初始起始时间序列以及初始无声区域,等等。
[0113]
经实践表明,本技术实施例提出的音频处理方法可至少具有如下几点有益效果:第一点:可修正初始音高曲线中的各个极小值,以实现对每个极小值所在的预设时长范围内的各个音高值的平滑处理;第二点:删除掉初始无声区域中区域长度小于或等于长度阈值的无声区域,以及删除掉初始起始时间序列中时间间隔小于间隔阈值的起始时间点位,得到目标无声区域和目标起始时间序列,可有效减少得到较短音符的情况;第三点:基于检测得到的目标起始时间序列、目标音频数据的目标音高曲线和目标音频数据中的目标无声区域,可避免演唱片段中出现无声区域,提升演唱片段的准确性,从而生成较为准确的演唱音准指示文件;第四点:可自动化地生成目标音频数据对应的演唱音准指示文件的,提升演唱音准指示文件的生成效率。
[0114]
基于上述音频处理方法的相关实施例的描述,本技术实施例还提出了一种音频处理装置,该音频处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码)。该音频处理装置可以执行图2或图6所示的音频处理方法;请参见图10,所述音频处理装置可以运行如下单元:处理单元1001,用于获取目标音频数据的目标音高曲线,并确定所述目标音频数据中的目标无声区域,所述目标音频数据包括目标对象所演唱的一个或多个音素,一个音素包括一个或多个时间点位;所述处理单元1001,还用于对所述目标音频数据中的各个音素的起始时间点位进
行检测,得到目标起始时间序列;所述处理单元1001,还用于基于所述目标起始时间序列、所述目标音高曲线和所述目标无声区域,确定所述目标音频数据对应的一个或多个演唱片段;一个演唱片段包括至少一个时间点位和相应音高值,一个演唱片段的开始时间点位对应一个音素的起始时间点位;所述处理单元1001,还用于对所述一个或多个演唱片段中的每个演唱片段进行音符转写处理,得到一个或多个音符;生成单元1002,用于采用所述一个或多个音符生成所述目标音频数据对应的演唱音准指示文件。
[0115]
在一种实施方式中,目标无声区域的数量为m个,m为正整数;处理单元1001在基于所述目标起始时间序列、所述目标音高曲线和所述目标无声区域,确定所述目标音频数据对应的一个或多个演唱片段时,可具体用于:确定所述m个目标无声区域中的各个目标无声区域的区域起始点,以及所述目标起始时间序列中的每个起始时间点位和确定的各个区域起始点之间的时间距离;根据确定出的各个时间距离,在所述m个目标无声区域中确定所述每个起始时间点位对应的相邻无声区域;任一起始时间点位对应的相邻无声区域是指:所述m个目标无声区域中区域起始点位于所述任一起始时间点位之后,且相应的时间距离最小的目标无声区域;基于所述各个起始时间点位以及对应的相邻无声区域的区域起始点,对所述目标音高曲线进行分割处理,得到q个曲线段;并将所述q个曲线段中的一个曲线段,确定为所述目标音频数据对应的一个演唱片段,以得到q个演唱片段;其中,第i个曲线段的起始点为所述目标起始时间序列中的第i个起始时间点位,结束点为所述第i个起始时间点位对应的区域起始点;i∈[1,q],q的取值等于所述目标起始时间序列中的起始时间点位的数量。
[0116]
另一种实施方式中,目标无声区域的数量为m个,m为正整数;处理单元1001在基于所述目标起始时间序列、所述目标音高曲线和所述目标无声区域,确定所述目标音频数据对应的一个或多个演唱片段时,可具体用于:将所述目标音高曲线中处于所述m个目标无声区域的各个时间点位的音高值调整为零值,得到调整后的目标音高曲线;基于所述目标起始时间序列中的各个起始时间点位,对所述调整后的目标音高曲线进行分割处理,得到q个曲线段;并将所述q个曲线段中的一个曲线段,确定为所述目标音频数据对应的一个演唱片段,以得到q个演唱片段;其中,第i个曲线段的起始点为所述目标起始时间序列中的第i个起始时间点位,结束点为被调整的时间点位中位于所述第i个起始时间点位之后,且离所述第i个起始时间点位最近的时间点位;i∈[1,q],q的取值等于所述目标起始时间序列中的起始时间点位的数量。
[0117]
另一种实施方式中,一个目标无声区域采用一个零值序列进行表示,零值序列是指由多个零值构成的序列,且每个零值均对应一个时间点位;处理单元1001在将所述目标音高曲线中处于所述m个目标无声区域的各个时间点位的音高值调整为零值,得到调整后
的目标音高曲线时,可具体用于:对所述m个目标无声区域和所述目标音高曲线进行乘法运算,并通过所述乘法运算将所述目标音高曲线中处于所述m个目标无声区域的各个时间点位的音高值调整为零值,得到调整后的目标音高曲线。
[0118]
另一种实施方式中,处理单元1001在对所述目标音频数据中的各个音素的起始时间点位进行检测,得到目标起始时间序列时,可具体用于:对所述目标音频数据中的各个音素的起始时间点位进行检测,得到初始起始时间序列,所述初始起始时间序列中包括所述各个音素的起始时间点位;根据所述初始起始时间序列中的相邻起始时间点位之间的时间间隔,从所述初始起始时间序列中确定出一个或多个无效起始时间点位;无效起始时间点位是指:与前一个起始时间点位之间的时间间隔小于间隔阈值的起始时间点位;从所述初始起始时间序列中删除掉各个无效起始时间点位,得到目标起始时间序列。
[0119]
另一种实施方式中,处理单元1001在确定所述目标音频数据中的目标无声区域时,可具体用于:对所述目标音频数据进行无声区检测,得到所述目标音频数据中的一个或多个初始无声区域;根据各个初始无声区域的区域长度,识别所述一个或多个初始无声区域中的有效无声区域;其中,有效无声区域是指:区域长度大于长度阈值的无声区域;将识别出的各个有效无声区域,作为所述目标音频数据中的目标无声区域。
[0120]
另一种实施方式中,处理单元1001在获取目标音频数据的目标音高曲线时,可具体用于:对所述目标音频数据中的各个时间点位进行基频提取,并根据基频提取结果确定所述目标音频数据的初始音高曲线;对所述初始音高曲线进行极小值检测,并对检测出的所述初始音高曲线中的各个极小值进行修正,得到所述目标音频数据的目标音高曲线;其中,所述初始音高曲线中的极小值是指:处于预设时长范围内的各个音高值中与参考音高值之间的差值大于音高差异阈值的音高值;所述参考音高值是根据处于所述预设时长范围内的至少一个时间点位的音高值确定的。
[0121]
另一种实施方式中,处理单元1001在对所述初始音高曲线进行极小值检测时,可具体用于:按照滑动步长采用一个滑动窗口在所述初始音高曲线上进行滑动,所述滑动窗口用于表示一个预设时长范围;在每次滑动所述滑动窗口后,将所述初始音高曲线中当前位于所述滑动窗口内的各个时间点位的音高值均作为目标音高值,并根据至少一个目标音高值确定当前的参考音高值;若各个目标音高值中的最小值与所述当前的参考音高值之间的差值大于音高差异阈值,则将所述各个目标音高值中的最小值确定为所述初始音高曲线中的一个极小值。
[0122]
另一种实施方式中,处理单元1001还可用于:
每从所述初始音高曲线中确定出一个极小值,则根据当前确定出的当前极小值所处的滑动窗口中的各个目标音高值,确定所述当前极小值的音高修正值;以及,记录所述当前极小值的音高修正值;所述对检测出的所述初始音高曲线中的各个极小值进行修正,得到所述目标音频数据的目标音高曲线,包括:将检测出的所述初始音高曲线中的各个极小值,分别修正为记录的相应音高修正值,得到所述目标音频数据的目标音高曲线。
[0123]
另一种实施方式中,处理单元1001在对所述一个或多个演唱片段中的每个演唱片段进行音符转写处理,得到一个或多个音符时,可具体用于:针对任一演唱片段,根据所述任一演唱片段中的各个音高值对所述任一演唱片段进行转音检测;转音是指:在演唱时需进行音高值突变转换的时间点位;若所述任一演唱片段中存在转音,则基于存在的转音将所述任一演唱片段分成两个子片段,并对每个子片段进行音符转写处理,得到两个音符;若所述任一演唱片段中未存在转音,对所述任一演唱片段进行音符转写处理,得到一个音符。
[0124]
另一种实施方式中,处理单元1001在对每个子片段进行音符转写处理,得到两个音符时,可具体用于:对每个子片段中的各个时间点位的音高值进行均值运算,得到每个子片段的平均音高值;基于所述每个子片段的平均音高值和所述每个子片段的演唱时间段,为所述每个子片段分配一个音符。
[0125]
另一种实施方式中,处理单元1001在对所述任一演唱片段进行音符转写处理,得到一个音符时,可具体用于:按照时间点位从大到小的顺序,从所述任一演唱片段中的各个时间点位中,选取目标数量的时间点位;对选取出的目标数量的时间点位的音高值进行均值运算,得到均值运算结果;并基于所述均值运算结果和所述任一演唱片段的演唱时间段,为所述任一演唱片段分配一个音符。
[0126]
另一种实施方式中,处理单元1001在根据所述任一演唱片段中的各个音高值对所述任一演唱片段进行转音检测时,可具体用于:从所述任一演唱片段中选取一个时间点位,作为基准时间点位;并基于所述基准时间点位将所述任一演唱片段划分成第一片段和第二片段;将所述第一片段中的各时间点位的音高值之间的均值,作为第一平均音高值;以及,将所述第二片段中的各时间点位的音高值之间的均值,作为第二平均音高值;若所述第一平均音高值与所述第二平均音高值之间的差值大于转音判别阈值,则将所述基准时间点位确定为演唱时需进行音高值突变转换的时间点位,并确定所述任一演唱片段存在转音;若所述第一平均音高值与所述第二平均音高值之间的差值小于或等于所述转音判别阈值,则确定所述任一演唱片段未存在转音。
[0127]
根据本技术的一个实施例,图2或图6所示的方法所涉及的各个步骤均可由图10所示的音频处理装置中的各个单元来执行的。例如,图2中所示的步骤s201-s203均可由图10中所示的处理单元1001执行,步骤s204可由图10中所示的处理单元1001和生成单元1002共同执行。又如,图6中所示的步骤s601-s605均可由图10所示的处理单元1001执行,步骤s606可由图10所示的处理单元1001和生成单元1002共同执行,等等。
[0128]
根据本技术的另一个实施例,图10所示的音频处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本技术的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本技术的其它实施例中,音频处理装置也可以包括其他单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
[0129]
根据本技术的另一个实施例,可以通过在包括中央处理单元(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2或图6中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图10中所示的音频处理装置,以及来实现本技术实施例的音频处理方法。所述计算机程序可以记载于例如计算机存储介质上,并通过计算机存储介质装载于上述计算设备中,并在其中运行。
[0130]
本技术实施例可通过对目标音频数据中的各个音素的起始时间点位进行检测,并基于检测得到的目标起始时间序列、目标音频数据的目标音高曲线和目标音频数据中的目标无声区域,来较为准确地确定目标音频数据对应的一个或多个演唱片段。这样不仅可使得一个演唱片段包括至少一个时间点位和相应音高值,避免演唱片段中出现无声区域,提升演唱片段的准确性;还可使得一个演唱片段的开始时间点位对应一个音素的起始时间点位,从而使得在对各个演唱片段进行音符转写处理时,可实现将一个音素对应到一个或多个音符上,即实现音符按照音素进行划分,保证音符的精准分割,进而实现采用较为准确的各个音符生成较为准确的演唱音准指示文件。由于本技术实施例是通过对目标音频数据进行一系列处理后,自动化地生成目标音频数据对应的演唱音准指示文件的,因此可有效提升演唱音准指示文件的生成效率,且有效节省人力成本;另外,通过利用目标音频数据的目标音高曲线来得到一个或多个演唱片段,可实现通过各个演唱片段中的各个音高值对目标音高曲线进行量化,进而实现输出量化音高曲线后得到的演唱音准指示文件。
[0131]
基于上述方法实施例以及装置实施例的描述,本技术实施例还提供一种计算机设备。请参见图11,该计算机设备至少包括处理器1101、输入接口1102、输出接口1103以及计算机存储介质1104。其中,计算机设备内的处理器1101、输入接口1102、输出接口1103以及计算机存储介质1104可通过总线或其他方式连接。
[0132]
计算机存储介质1104可以存储在计算机设备的存储器中,所述计算机存储介质1104用于存储计算机程序,所述计算机程序包括程序指令,所述处理器1101 用于执行所述计算机存储介质1104存储的程序指令。处理器1101(或称cpu(central processing unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能;在一个实施例中,本
申请实施例所述的处理器1101可以用于进行一系列的音频处理,具体包括:获取目标音频数据的目标音高曲线,并确定所述目标音频数据中的目标无声区域,所述目标音频数据包括目标对象所演唱的一个或多个音素,一个音素包括一个或多个时间点位;对所述目标音频数据中的各个音素的起始时间点位进行检测,得到目标起始时间序列;基于所述目标起始时间序列、所述目标音高曲线和所述目标无声区域,确定所述目标音频数据对应的一个或多个演唱片段;一个演唱片段包括至少一个时间点位和相应音高值,一个演唱片段的开始时间点位对应一个音素的起始时间点位;对所述一个或多个演唱片段中的每个演唱片段进行音符转写处理,得到一个或多个音符;以及,采用所述一个或多个音符生成所述目标音频数据对应的演唱音准指示文件。
[0133]
本技术实施例还提供了一种计算机存储介质(memory),所述计算机存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机存储介质。在一个实施例中,可由处理器加载并执行计算机存储介质中存放计算机程序,以实现上述有关图2或图6所示的音频处理方法的实施例中的各个方法步骤。
[0134]
本技术实施例可通过对目标音频数据中的各个音素的起始时间点位进行检测,并基于检测得到的目标起始时间序列、目标音频数据的目标音高曲线和目标音频数据中的目标无声区域,来较为准确地确定目标音频数据对应的一个或多个演唱片段。这样不仅可使得一个演唱片段包括至少一个时间点位和相应音高值,避免演唱片段中出现无声区域,提升演唱片段的准确性;还可使得一个演唱片段的开始时间点位对应一个音素的起始时间点位,从而使得在对各个演唱片段进行音符转写处理时,可实现将一个音素对应到一个或多个音符上,即实现音符按照音素进行划分,保证音符的精准分割,进而实现采用较为准确的各个音符生成较为准确的演唱音准指示文件。由于本技术实施例是通过对目标音频数据进行一系列处理后,自动化地生成目标音频数据对应的演唱音准指示文件的,因此可有效提升演唱音准指示文件的生成效率,且有效节省人力成本;另外,通过利用目标音频数据的目标音高曲线来得到一个或多个演唱片段,可实现通过各个演唱片段中的各个音高值对目标音高曲线进行量化,进而实现输出量化音高曲线后得到的演唱音准指示文件。
[0135]
需要说明的是,根据本技术的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机存储介质中。计算机设备的处理器从计算机存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图2或图6所示的音频处理方法实施例方面的各种可选方式中提供的方法。
[0136]
并且,应理解的是,以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。