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

音频处理方法、装置、计算设备以及介质与流程

2021-06-18 20:18:00 来源:中国专利 TAG:音频处理 公开 实施 方式 介质
音频处理方法、装置、计算设备以及介质与流程

本公开的实施方式涉及计算机技术领域,更具体地,本公开的实施方式涉及音频处理方法、音频处理装置、计算设备以及介质。



背景技术:

本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

随着计算机技术的发展,越来越多的用户通过智能设备演唱歌曲。由于演唱水平、演唱设备等限制,用户在唱歌时经常会出现跑调等情况,需要对用户演唱的歌曲进行修音。

修音是指把单个音乐素材例如歌曲的节奏、音准做一个规范化的修正,来弥补乐器或人声演唱过程中的不足。在相关技术方案中,获取标准音高模板,根据标准音高模板对用户演唱歌曲的音频进行修正。



技术实现要素:

但是,上述技术方案中,根据标准音高模板中的固定音高值对音频进行修正,会造成脱离用户实际音域的音高调节,导致修音调整范围过大的问题。

为此,非常需要一种改进的音频处理方法、音频处理装置、计算设备以及介质。

根据本公开实施例的第一方面,提供了一种音频处理方法,包括:从用户演唱歌曲的音频数据中提取用户音频特征,所述用户音频特征包括用户音高序列;确定所述用户音高序列与第一标准音高序列的音域区间是否一致;若不一致,则生成与所述用户音高序列的音域区间一致的第二标准音高序列;基于所述第二标准音高序列对所述用户音高序列进行修正。

根据第一方面,在本公开的一些示例实施例中,所述确定所述用户音高序列与第一标准音高序列的音域区间是否一致,包括:确定第一标准音高序列的平均值与所述用户音高序列的平均值之间的音高差;若所述音高差大于预定阈值,则确定所述用户音高序列与所述第一标准音高序列的音域区间不一致;若所述音高差小于或等于所述预定阈值,则确定所述用户音高序列与所述第一标准音高序列的音域区间一致。

根据第一方面,在本公开的一些示例实施例中,所述生成与所述用户音高序列的音域区间一致的第二标准音高序列,包括:将所述第一标准音高序列中各个音高值减去所述音高差,生成所述第二标准音高序列,所述第二标准音高序列与所述用户音高序列的音域区间一致。

根据第一方面,在本公开的一些示例实施例中,所述基于所述第二标准音高序列对所述用户音高序列进行修正,包括:确定所述第二标准音高序列与所述用户音高序列中对应音高的差值;基于所述差值对所述用户音高序列中的对应音高进行修正。

根据第一方面,在本公开的一些示例实施例中,所述用户音频特征还包括用户节奏序列,所述方法还包括:确定标准节奏序列与所述用户节奏序列中对应节奏时长的比值;基于所述比值对所述用户节奏序列中对应节奏时长进行修正。

根据第一方面,在本公开的一些示例实施例中,所述用户音频特征还包括伴奏序列,所述方法还包括:若所述音高差大于所述预定阈值,则基于所述音高差确定所述歌曲的伴奏的升降调系数;基于所述升降调系数对所述伴奏序列进行升降调操作。

根据第一方面,在本公开的一些示例实施例中,所述从用户演唱歌曲的音频数据中提取用户音频特征,包括:从用户演唱歌曲的音频数据中提取各个歌词的时间戳信息;基于所述时间戳信息与标准歌曲歌词进行逐字时长对齐,生成所述用户音高序列。

根据第一方面,在本公开的一些示例实施例中,所述方法还包括:响应于用户的修音触发操作,确定与所述修音触发操作对应的修音模式;基于所述修音模式,从修音模板库中获取与所述歌曲以及所述修音模式对应的修音模板,所述修音模板包括所述第一标准音高序列,所述修音模板库中包含与所述歌曲对应的多种修音模式下的修音模板。

根据第一方面,在本公开的一些示例实施例中,所述方法还包括:基于旋律改编模型对所述歌曲进行改编,生成与所述歌曲对应的多种修音模式的修音模板。

根据本公开实施例的第二方面,提供了一种音频处理装置,包括:特征提取模块,用于从用户演唱歌曲的音频数据中提取用户音频特征,所述用户音频特征包括用户音高序列;判断模块,用于确定所述用户音高序列与第一标准音高序列的音域区间是否一致;模板生成模块,用于若不一致,则生成与所述用户音高序列的音域区间一致的第二标准音高序列;修正模块,用于基于所述第二标准音高序列对所述用户音高序列进行修正。

根据第二方面,在本公开的一些示例实施例中,所述判断模块具体用于:确定第一标准音高序列的平均值与所述用户音高序列的平均值之间的音高差;若所述音高差大于预定阈值,则确定所述用户音高序列与所述第一标准音高序列的音域区间不一致;若所述音高差小于或等于所述预定阈值,则确定所述用户音高序列与所述第一标准音高序列的音域区间一致。

根据第二方面,在本公开的一些示例实施例中,所述模板生成模块具体用于:将所述第一标准音高序列中各个音高值减去所述音高差,生成所述第二标准音高序列,所述第二标准音高序列与所述用户音高序列的音域区间一致。

根据第二方面,在本公开的一些示例实施例中,所述修正模块具体用于:确定所述第二标准音高序列与所述用户音高序列中对应音高的差值;基于所述差值对所述用户音高序列中的对应音高进行修正。

根据第二方面,在本公开的一些示例实施例中,所述用户音频特征还包括用户节奏序列,所述装置还包括:节奏修正系数确定模块,用于确定标准节奏序列与所述用户节奏序列中对应节奏时长的比值;节奏修正模块,用于基于所述比值对所述用户节奏序列中对应节奏时长进行修正。

根据第二方面,在本公开的一些示例实施例中,所述用户音频特征还包括伴奏序列,所述装置还包括:升降调系数确定模块,用于若所述音高差大于所述预定阈值,则基于所述音高差确定所述歌曲的伴奏的升降调系数;伴奏修正模块,用于基于所述升降调系数对所述伴奏序列进行升降调操作。

根据第二方面,在本公开的一些示例实施例中,所述特征提取模块具体用于:从用户演唱歌曲的音频数据中提取各个歌词的时间戳信息;基于所述时间戳信息与标准歌曲歌词进行逐字时长对齐,生成所述用户音高序列。

根据第二方面,在本公开的一些示例实施例中,所述装置还包括:修音模式确定模块,用于响应于用户的修音触发操作,确定与所述修音触发操作对应的修音模式;模板确定模块,用于基于所述修音模式,从修音模板库中获取与所述歌曲以及所述修音模式对应的修音模板,所述修音模板包括所述第一标准音高序列,所述修音模板库中包含与所述歌曲对应的多种修音模式下的修音模板。

根据第二方面,在本公开的一些示例实施例中,所述装置还包括:模板生成模块,用于基于旋律改编模型对所述歌曲进行改编,生成与所述歌曲对应的多种修音模式的修音模板。

在本公开实施例的第三方面中,提供了一种计算设备,包括:处理器和存储器,所述存储器存储有可执行指令,所述处理器用于调用所述存储器存储的可执行指令执行如上述第一方面所述的方法。

在本公开实施例的第四方面中,提供了一种介质,其上存储有程序,该程序被处理器执行时实现如上述第一方面任一项所述的方法。

根据本公开实施例的技术方案,一方面,确定用户音高序列与标准音高序列的音域区间是否一致,在不一致的情况下生成音域区间一致的第二标准音高序列,能够生成与用户音域区间一致的标准音高模板;另一方面,基于第二标准音高序列对用户音高序列进行修正,能够根据与用户音域区间一致的标准音高模板对用户干声进行准确调整,避免脱离用户实际音域的音高调节导致修音调整范围过大的问题;再一方面,根据与用户音域区间一致的标准音高模板对用户干声进行准确调整,不仅显著提高了用户演唱歌曲的音高准确度,而且能够保护用户原有音域音色,避免破坏用户演唱风格。

附图说明

通过参考附图阅读下文的详细描述,本公开示例性实施例的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:

图1示意性地示出了根据本公开实施例的音频处理方法的应用场景的示意图;

图2示意性地示出了根据本公开的一些实施例的音频处理方法的流程图;

图3示意性地示出了根据本公开的一些实施例的修音模式与相关技术中的修音模式的对比示意图;

图4示意性地示出了根据本公开的另一些实施例的音频处理方法的流程图;

图5示意性地示出了根据本公开的一些实施例的用户音频包络与用户演唱歌词时间戳的对应关系的示意图;

图6示意性地示出了根据本公开的一些实施例的用户音高序列与标准音高序列的示意图;

图7示意性地示出了根据本公开的一些实施例的用户演唱歌词时间戳与参考标准歌词时间戳的对有关系的示意图;

图8示意性地示出了根据本公开的一些实施例的修音前和修音后的对比示意图;

图9示意性地示出了根据本公开的一些实施例的确定修音模板的流程示意图;

图10示意性地示出了根据本公开的一些实施例的修音模板库的示意图;

图11示意性地示出了根据本公开的一些实施例的音频处理装置的结构示意图;

图12示意性地示出了根据本公开的一些实施例的计算机可读存储介质的示意图;

图13示意性地示出了根据本公开的一些实施例的音频处理装置的结构示意图;

图14示意性示出了根据本公开的一些实施例的计算设备的结构示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施例来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本公开的实施方式,提出了一种音频处理方法、装置、计算设备和介质。

在本文中,需要理解的是,所涉及的术语:

修音:指把单个音乐素材例如歌曲的节奏、音准做一个规范化的修正,来弥补乐器或人声演唱过程中的不足。

干声:是指未经过任何混音和其他处理的用户录音音频。

音高(pitch):即音的高度,音的基本特征的一种。声音的本质是机械波,所以音的高低是由机械波的频率决定的,声速一定时,和波长也有关系,频率高、波长短,则音"高",反之,频率低、波长长,则"低"。在示例实施例中,音高可以为音频的基频周期,人在发音时,声带振动产生浊音(voiced),声带不振动产生的则是清音(unvoiced)。浊音是由来自肺部的气流冲击声门,造成声门的一张一合,形成一系列准周期的气流脉冲,经过声道的谐振及唇齿的辐射形成的语音信号。基频就是指的这个周期性,基频反映了声门相邻两次开闭之间的时间间隔或开闭的频率。在示例实施例中,音高可以从基频(frequency)的频率值通过下式(1)转为音符(note)值。

其中,note为音符值,f为基频。

半音:是音乐中的一个术语,即一个小二度。十二平均律按照比例将音高频率平均分成12份,每份是一个半音,例如c♯比c高半音。

音域区间:指某人声或乐器所能达到的最低音至最高音的范围,例如,男高音的音域区间为c1-a2,男中音的音域区间为bb-f2,男低音的音域区间为g-d2,女高音的音域区间为c1-a2,女中音的音域区间为bb-f2,女低音g-d2。

音分:是一个用于度量音程的对数标度单位。在十二平均律中,每一个半音的音程等于100音分。

音准:是指乐器或者人声发出的音高的准确程度。在歌唱中,音准既指一个长音的音高把握能力,也指对自然音阶的把握能力。

音高检测算法(pitchdetectionalgorithm):也叫基音检测算法,是用来估计周期性或准周期性信号的音高或基本频率的算法。该算法主要用于语音或乐音的信号处理中。基音检测算法既可以单独从时域或频域的角度实现,也可以同时利用时域和频域的信息来实现。

移频系数:用来表示目标音高值和当前音高值间的差值,是升降调算法的输入信息。

升降调算法(变调不变速算法)(pitchshiftalgorithm):该算法是用来修改音频音高的,但是同时维持了原音频的速度不变。变调不变速算法有三类方法:时域法、频域法、参量法。

此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。

发明概述

本发明人发现,为了解决如何对用户演唱的歌曲进行修音的问题,在一种技术方案中,用户从歌曲库中选择一首支持修音功能的歌曲进行演唱,修音系统获得用户演唱歌曲的用户音频文件,修音系统首先分析用户音频文件蕴含的音高以及节奏等特征,再和标准歌曲文件的音高、节奏等对应特征进行比较,依据这些特征上的差异对用户音频进行修正。然而,在上述技术方案中,根据标准歌曲文件中的固定音高值对音频进行修正,会造成脱离用户实际音域的音高调节,导致修音调整范围过大的问题。例如,女声唱男声歌曲时,会存在高一个八度的情况,同样地,男生唱女生歌曲时也会有低一个八度的情况,如果用户音频仅是八度上和标准音高模板的值不匹配,修音时把用户音频的音高整体降或者升一个八度是不合适的。

基于上述内容,本公开的基本思想在于:从用户演唱歌曲的音频数据中提取用户音高序列,确定用户音高序列与标准音高序列的音域区间是否一致,若不一致,则生成音域区间一致的第二标准音高序列,基于第二标准音高序列对用户音高序列进行修正。根据本公开实施例的技术方案,一方面,确定用户音高序列与标准音高序列的音域区间是否一致,在不一致的情况下生成音域区间一致的第二标准音高序列,能够生成与用户音域区间一致的标准音高模板;另一方面,基于第二标准音高序列对用户音高序列进行修正,能够根据与用户音域区间一致的标准音高模板对用户干声进行准确调整,避免脱离用户实际音域的音高调节导致修音调整范围过大的问题;再一方面,根据与用户音域区间一致的标准音高模板对用户干声进行准确调整,不仅显著提高了用户演唱歌曲的音高准确度,而且能够保护用户原有音域音色,避免破坏用户演唱风格。

在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。

应用场景总览

需要注意的是,下述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。

图1示意性地示出了根据本公开实施例的音频处理方法的应用场景的示意图。

参照图1所示,该应用场景可以包括:至少一个客户端110以及服务器120,其中,客户端110安装有音视频播放应用程序。客户端110与服务器120之间通过网络130进行通信。以视频直播应用场景为例,客户端110上安装有直播应用程序,服务器120上部署有多首歌曲的标准歌曲模板库,标准歌曲模板库包括各首歌曲的标准歌曲文件,标准歌曲文件可以包括标准音高序列。用户通过直播应用程序演唱歌曲并进行直播,客户端110从用户演唱歌曲的音频数据中提取用户音频特征,用户音频特征包括用户音高序列,客户端110从服务器120获取与该歌曲对应的原标准音高序列,确定用户音高序列与原标准音高序列的音域区间是否一致;若不一致,则生成与用户音高序列的音域区间一致的新标准音高序列;基于新标准音高序列对用户音高序列进行修正。

需要说明的是,虽然以标准歌曲模板库部署在服务器120上为例进行说明,但是本领域普通技术人员应该理解的是,标准歌曲模板库也可以部署在客户端110上,这同样在本申请的保护范围。标准歌曲文件的标准音高序列或节奏序列等其他参照素材可以事先存储为文本,也可以在实际使用时从标准歌曲文件的干声文件中实时提取,本公开对此不进行特殊限定。

需要说明的是,客户端110可以为手机、平板电脑、台式计算机、便携笔记本式计算机或车载式终端等。服务器120可以为包含独立主机的物理服务器,或者为主机集群承载的虚拟服务器,或者为云服务器。网络130可以为有线网络或无线网络,例如,网络130可以为pstn(publicswitchedtelephonenetwork,公共交换电话网络)或因特网。

示例性方法

下面结合上述的应用场景,参考图2来描述根据本公开示例性实施例的音频处理方法。该音频处理方法可以应用于图1的客户端110或服务器120。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施例在此方面不受任何限制。相反,本公开的实施例可以应用于适用的任何场景。

参照图2所示,在步骤s210中,从用户演唱歌曲的音频数据中提取用户音频特征,用户音频特征包括用户音高序列。

在示例实施例中,通过音频提取模型从用户演唱歌曲的音频数据中提取用户音频特征。音频提取模型可以为mfcc(melfrequencycepstralcoefficents,梅尔倒频谱系数)模型,也可以为其他适当的模型例如lstm(longshort-termmemory,长短期记忆网络)模型或librosa工具包等,本公开对此不进行特殊限定。

进一步地,音频数据可以包括用户演唱歌曲的干声音频数据,用户音频特征包括用户音高序列,用户音高序列可以为对用户音频进行逐字划分后形成的序列。举例而言,可以根据用户音频歌词各个字的时间戳对用户音频包络进行划分,得到多个包络分段,对划分后的包络分段进行平滑处理,得到用户音高序列。例如,用户演唱《后来》这首歌曲中的一句“后来终于在眼泪中明白”,对应的用户音高序列可以为{音高x1(后)、音高x2(来)、音高x3(终)、音高x4(于)、音高x5(在)、音高x6(眼)、音高x7(泪)、音高x8(中)、音高x9(明)、音高x10(白)}。

需要说明的是,在一些示例实施例中,用户音频特征还可以包括其他适当的特征例如歌词各个字的时间戳信息或音频包络特征等,这同样在本公开的保护范围内。

在步骤s220中,确定用户音高序列与第一标准音高序列的音域区间是否一致。

在示例实施例中,音域区间指的是某人声或乐器所能达到的最低音至最高音的范围,例如,男高音的音域区间为c1-a2,男中音的音域区间为bb-f2,男低音的音域区间为g-d2,女高音的音域区间为c1-a2,女中音的音域区间为bb-f2,女低音g-d2。

进一步地,从客户端或服务器获取用户演唱歌曲对应的标准歌曲文件,标准歌曲文件包括该歌曲对应的标准音高序列。需要说明的是,标准歌曲文件的标准音高序列或节奏序列等其他参照素材可以事先存储为文本,也可以在实际使用时从标准歌曲文件的干声文件中实时提取,本公开对此不进行特殊限定。

在示例实施例中,根据用户音高序列中各个元素的音高值与第一标准音高序列中各个元素的音高值,采用统计方法确定用户音高序列与第一标准音高序列的音域区间是否一致。下面,结合几个具体实施例对如何确定音域区间是否一致进行说明。

实施例一:

在实施例一中,根据用户音高序列中各个元素的音高值的最大值和最小值确定用户音高序列的音域区间,根据第一标准音高序列中各个元素的音高值的最大值和最小值确定第一标准音高序列的音域区间,根据两个音域区间的最大值和最小值确定音域区间是否一致。例如,若用户音高序列中音高值的最大值为f2、最小值为bb,则确定用户音高序列对应的音域区间为bb-f2;若第一标准音高序列中音高值的最大值为f2、最小值为a,则确定第一标准音高序列对应的音域区间为a-f2,则确定用户音高序列与第一标准音高序列的音域区间不一致。

实施例二:

在实施例二中,确定用户音高序列以及第一标准音高序列中各个元素的音高值的平均值,计算用户音高序列中音高值的平均值与第一标准音高序列中音高值的平均值的差值,若该差值大于预定阈值例如1个半音,则确定用户音高序列与第一标准音高序列的音域区间不一致;若该差值小于或等于该预定阈值,则确定用户音高序列与第一标准音高序列的音域区间一致。

实施例三:

在实施例三中,确定用户音高序列以及第一标准音高序列中各个元素的音高值的中位值,计算用户音高序列中音高值的中位值与第一标准音高序列中音高值的中位值的差值,若该差值大于预定阈值例如1个半音,则确定用户音高序列与第一标准音高序列的音域区间不一致;若该差值小于或等于该预定阈值,则确定用户音高序列与第一标准音高序列的音域区间一致。

在步骤s230中,若不一致,则生成与用户音高序列的音域区间一致的第二标准音高序列。

在示例实施例中,若确定用户音高序列与第一标准音高序列的音域区间不一致,则基于第一标准音高序列以及对应的音高差生成与用户音高序列的音域区间一致的第二标准音高序列。

举例而言,在示例实施例中,确定第一标准音高序列的平均值与用户音高序列的平均值之间的音高差;将第一标准音高序列中各个音高值减去该音高差,生成第二标准音高序列,第二标准音高序列与用户音高序列的音域区间一致。

在步骤s240中,基于第二标准音高序列对用户音高序列进行修正。

在示例实施例中,确定第二标准音高序列与用户音高序列中对应音高的差值;基于该差值对用户音高序列中的对应音高进行修正。举例而言,可以基于对应音高的差值,采用升降调运算即变调不变速算法对用户音高序列中的对应音高进行修正。变调不变速算法包括时域法、频域法和参量法,时域法利用重采样的方法对用户音高序列中的对应音高进行修正;频域法对信号频谱进行插值和抽取,实现各频率分量的扩展和压缩;参量法将信号看作是一系列随时间变化的正弦信号叠加,进行变调不变速处理后,各个频率成分随系数拉伸或者收缩。

根据图2的示例实施例的技术方案,一方面,确定用户音高序列与标准音高序列的音域区间是否一致,在不一致的情况下生成音域区间一致的第二标准音高序列,能够生成与用户音域区间一致的标准音高模板;另一方面,基于第二标准音高序列对用户音高序列进行修正,能够根据与用户音域区间一致的标准音高模板对用户干声进行准确调整,避免不必要的音高调节导致修音调整范围过大的问题;再一方面,根据与用户音域区间一致的标准音高模板对用户干声进行准确调整,不仅显著提高了用户演唱歌曲的音高准确度,而且能够保护用户原有音域音色,避免破坏用户演唱风格。

图3中的a示出了相关技术中的修音模式,图3中的b示出了本公开示例实施例中的修音模式。参照图3中的a所示,对于同一首歌曲,对应一个标准音高音域,用户a干声音域与用户b干声音域与标准音高序列的音域的音高差较大,采用该技术方案,会造成脱离用户实际音域的音高调节,导致修音调整范围过大的问题。参照图3中的b所示,在本公开示例实施例中,对于同一首歌曲,用户a干声音域、用户b干声音域均与标准音高音域的音高差较大,因此,需要对用户a、用户b对应的标准音高序列进行调整,用户a干声音域对应调整后的标准a音高序列的音域,用户b干声音域对应调整后的标准b音高序列的音域。根据标准a音高序列对用户a音高序列进行修音,得到目标a音高序列;根据标准b音高序列对用户b音高序列进行修音,得到目标b音高序列。设xdiff表示标准音高序列的平均值与用户音高序列的平均值的差值,参照图3中的b所示,xdiff其实就是八度距离和相对音高差这两个矢量的和。相关技术的修音方案中计算音高差的方式如图3中的a所示,直接计算用户音高序列和标准音高序列对应音高的差值,作为后续模块的输入。本公开示例实施例中的修音方案如图3中的b所示,首先需要调整标准音高序列到音域区间一致的对应标准音高序列的位置,保证用户干声音域和标准音高序列的音域在一个区间内,然后再计算标准音高序列与用户音高序列对应音高的差值。根据本公开示例实施例中的技术方案,能够根据与用户音域区间一致的标准音高模板对用户干声进行准确调整,避免脱离用户实际音域的音高调节导致修音调整范围过大的问题。

图4示意性地示出了根据本公开的另一些实施例的音频处理方法的流程图。

参照图4所示,在步骤s410中,获取用户演唱歌曲的音频,提取音频的音频特征,音频特征包括用户音高序列。

在示例实施例中,音频特征包括用户音高序列,音频特征也可以包括其他适当的信息例如歌词每个字的时间戳信息、音高包络特征等。时间戳信息用于与标准歌曲的标准歌词进行时长对齐,通过时间戳信息形成音频的用户音高序列和/或用户节奏序列。

进一步地,也可以根据音频特征中每个字的时间戳信息、音高包络特征生成用户音高序列。例如,参照图5所示,以《后来》这首歌曲a为例,获取输入音频中歌词的时间戳信息以及用户音频包络,根据用户音频歌词各个字的时间戳对用户音频包络进行划分,得到多个包络分段,对划分后的包络分段进行平滑处理,得到用户音高序列。例如,用户演唱《后来》这首歌曲中的一句“后来终于在眼泪中明白”,对应的用户音高序列可以为{音高x1(后)、音高x2(来)、音高x3(终)、音高x4(于)、音高x5(在)、音高x6(眼)、音高x7(泪)、音高x8(中)、音高x9(明)、音高x10(白)}。

在步骤s420中,将用户演唱歌曲的用户音高序列与标准音高序列进行对比,获取音高差值序列。

在示例实施例中,根据用户音高序列中各个元素的音高值与标准音高序列中各个元素的音高值,采用统计方法确定用户音高序列与原标准音高序列即第一标准音高序列的音域区间是否一致。例如,可以通过下式(2)计算用户演唱的歌曲对应的用户音高序列和原标准音高序列的平均值。

其中,xmean表示音高序列的平均值,n表示音高序列中的元素数量,xi表示音高序列中的第i个音高元素。

然后,使用下式(3)计算用户音高序列的平均值与原标准音高序列的平均值的差值xdiff

其中,表示原标准音高序列的平均值,表示用户音高序列的平均值。xdiff表示原标准音高序列的平均值与用户音高序列的平均值的差值。

如果两个平均值的差值没有超过预定阈值例如1个半音,则可认为区间一致;否则就认为音域区间不一致,需要获得在同一区间内的新标准音高序列即第二标准音高序列。新标准音高序列是由原标准音高序列即第一标准音高序列的每个值减去差值xdiff得到的。新标准音高序列即第二标准音高序列对应的音高可以用下式(4)进行计算。

其中,表示新标准音高序列中的音高值,xref表示原标准音高序列中的音高值,xdiff表示原标准音高序列的平均值与用户音高序列的平均值的差值。

进一步地,在示例实施例中,参照图6所示,根据用户音频歌词各个字的时间戳对用户音频包络进行划分,得到多个包络分段,对划分后的包络分段进行平滑处理,得到用户音高序列。用户音高序列与新标准音高序列之间存在一定的音高差。可以通过下式(5)计算用户音高序列与新标准音高序列之间对应音高的音高差。

其中,表示新标准音高序列中音高元素对应的音高,xsut表示用户音高序列中音高元素对应的音高;表示新标准音高序列中的音高与用户音高序列中对应音高的音高差。

在步骤s430中,确定标准节奏序列与用户节奏序列中对应节奏时长的比值,得到节奏比值序列。

在示例实施例中,用户演唱歌曲的音频特征中还包括用户节奏序列,获取该歌曲对应的标准节奏序列,确定标准节奏序列与用户节奏序列中对应节奏时长的比值,得到节奏比值序列,即节奏修正系数序列。举例而言,可以通过下式(6)确定标准节奏序列与用户节奏序列中对应节奏时长的比值。

其中,durationref表示标准节奏序列对应的标准节奏时长,durationsut表示用户节奏序列对应的用户节奏时长,durationratio表示标准节奏序列与用户节奏序列中对应节奏时长的比值即节奏修正系数。

在示例实施例中,参照图7所示,以《后来》这首歌里的一句歌词为了,根据用户演唱歌词时间戳可以得到用户节奏序列,根据参考标准歌词时间戳可以得到标准节奏序列,通过上式(6)确定标准节奏序列与用户节奏序列中对应节奏时长的比值。

在步骤s440中,基于计算得到的音高差值序列以及节奏比值序列对用户演唱歌曲的音频进行修正。

在示例实施例中,将计算得到的音高差值序列以及节奏比值序列输入声音变换模块,该声音变换模块对输入音频进行音高以及节奏的调整,输出修音后的音频。举例而言,获得音高差值序列以及节奏比值序列后,通过声音变化技术例如升降调算法对原音频进行修改,完成音高修正以及节奏修正。

以音高修正为例,参照图8所示,修音前用户演唱音高包络与第一标准音高序列之间的差值较大,采用本公开示例实施例中的音频处理方法进行修音后,用户演唱音高包络与第二标准音高序列重合度较高,修正后的音高准确度大幅度提升。

根据图4的示例实施例中的技术方案,一方面,基于与用户音域区间一致的标准音高序列对用户音高序列进行修正,能够对用户干声进行准确调整,避免脱离用户实际音域的音高调节导致修音调整范围过大的问题;另一方面,基于标准节奏序列与用户节奏序列中对应节奏时长的节奏比值序列,对用户节奏序列进行修正,能够使用户演唱节奏更准确;再一方面,通过对用于演唱音高以及节奏进行准确修正,不仅显著提高了用户演唱歌曲的音高准确度,而且能够保护用户原有音域音色,避免破坏用户演唱风格。

此外,在一些示例实施例中,在获得新标准音高序列中的音高值之后,可以通过音高与音符之间的转换公式例如公式(1)将音高转为音符,获得对应的新标准音符序列。

在示例实施例中,获得新标准音高序列对应的新标准音符序列的音符值后,可以用新标准音符序列与实际用户音符序列进行对比,得到音符差序列,可以通过下式(7)确定用户音符序列与新标准音符序列中音符序列的差值。

其中,表示新标准音符序列对应的音符,notesut表示用户音符序列中的音符;notediff表示新标准音符序列的音符与用户音符序列中对应音符的差值。

进一步地,在示例实施例中,根据该差值对用户音符序列中的对应音符进行修正。举例而言,可以基于对应音符的差值,采用升降调运算即变调不变速算法对用户音符序列中的对应音符进行修正。

进一步地,在对用户演唱歌曲的干声处理完毕后,需要对该歌曲的伴奏进行修正。因此,在示例实施例中,对干声处理完毕后,若标准音高序列的平均值与用户音高序列的平均值的差值xdiff大于预定阈值,则基于该音高差确定用户演唱歌曲的伴奏的升降调系数;基于升降调系数对伴奏序列进行升降调操作。举例而言,需要检查之前计算的差值xdiff是否大于预定阈值。如果小于或等于预定阈值,则不需要调整伴奏,直接将伴奏和用户干声音频进行混音;否则使用xdiff这个模值作为伴奏的升降调系数,基于该升降调系数对伴奏进行一个升降调操作,保证升降调后的伴奏和用户干声是和谐的(同一调式)。通过对xdiff进行取模值的操作,能够避免对伴奏过度升降调导致降低伴奏质量,并且保证伴奏与人声的音程差是八度的倍数,也能保证伴奏与人声的和谐性。

根据本公开示例实施例中的技术方案,根据用户演唱的音域相对于修音参考标准音域的差值,对伴奏进行升降调操作,在保证用户演唱音域不发生较大改变的同时,使伴奏的旋律与用户干声的旋律相匹配。

图9示意性地示出了根据本公开的一些实施例的确定修音模板的流程示意图。

参照图9所示,在步骤s910中,响应于用户的修音触发操作,确定与所述修音触发操作对应的修音模式。

在示例实施例中,用户打开直播或录播音乐播放程序,选择目标歌曲对应的修音模式,例如通过点击选择目标歌曲对应的修音模式。修音模式可以包括:摇滚模式、民谣模式以及流行模式等。需要说明的是,本公开示例实施例中的修音模式还可以为其他适当的模式例如古典模式或金属模式等,这同样在本公开的保护范围内。

在步骤s920中,基于修音模式,从修音模板库中获取与歌曲以及修音模式对应的修音模板。

在示例实施例中,修音模板库中包含与多首歌曲对应的多种修音模式下的修音模板,修音模板包括第一标准音高序列。多种修音模板包括各种修音模式对应的修音模板,基于用户选取的修音模式,从修音模板库中与目标歌曲以及修音模式对应的修音模板,修音模板包括第一标准音高序列。参照图10所示,修音模板库1000中包括歌曲a、歌曲b、…、歌曲n对应的多种修音模式下的修音模板。用户演唱目标歌曲a后根据修音模板进行修音,该修音模板库中有目标歌曲a的多个修音模式下的修音模板,修音模板是由目标歌曲a按照一定乐理规则或者基于深度学习的旋律生成算法衍生出来的。因此,用户按照目标歌曲a的歌词、旋律以及节奏进行演唱,但是可以按照修音模板库中其他修音模式下的旋律以及节奏进行修音,能够根据用户想要的修音效果进行修音,增加修音的趣味性,提高用户粘性。

进一步地,在示例实施例中,基于旋律改编模型对歌曲进行改编,生成与歌曲对应的多种修音模式的修音模板。举例而言,可以基于n-gram模型建立一个旋律改编模型,对原歌曲进行与各种修音模式或调式对应的改编创作,获得与各种修音模式对应的改编作品集合。n-gram模型就是以原歌曲音高序列为基础,对随机位置的音符值进行修改,通过上n个音符值预测当前位置的音符值。

根据图9的示例实施例中的技术方案,一方面,通过生成修音模板库中歌曲的各种修音模板,能够使得修音模板多样化;另一方面,通过修音模式确定对应修音模板,能够根据用户想要的修音效果进行修音,增加修音的趣味性,提高用户粘性。

图11示意性地示出了根据本公开的一些实施例的音频处理装置的结构示意图。

参照图11所示,该音频处理装置1100包括输入模块1110、特征提取模块1120、数据分析模块1130、声音变换模块1140、音频输出模块1150、变调调节模块1160、伴奏输出模块1170以及混音模块1180。

其中,输入模块1110用于获取用户演唱目标歌曲的干声音频,将干声音频输入到特征提取模块1120。特征提取模块1120用于提取干声音频的音频特征,将提取的音频特征输入到数据分析模块1130,音频特征包括歌词各个字的时间戳信息、音频包络特征、音高包络特征中的一种或多种。

数据分析模块1130包括:时长对齐单元1132、音高对比单元1134以及节奏对比单元1136。其中,时长对齐单元1132用于根据音频特征中每个字的时间戳信息、音高包络特征生成用户音高序列以及用户节奏序列。音高对比单元1134获取目标歌曲对应的用户音高序列以及标准音高序列,将用户演唱歌曲的用户音高序列与标准音高序列进行对比,获取音高差值序列。节奏对比单元1136用于获取用户演唱歌曲的标准节奏序列以及用户节奏序列,确定标准节奏序列与用户节奏序列中对应节奏时长的比值,得到节奏比值序列。

声音变换模块1140用于基于计算得到的音高差值序列以及节奏比值序列对用户演唱歌曲的音频进行修正。音频输出模块1150用于输出修正后的用户演唱歌曲的音频。

变调调节模块1160用于根据用户演唱歌曲的升降调系数对该歌曲的伴奏进行修正。例如,可以从数据分析模块1130获取标准音高序列与用户音高序列的音域差值xdiff,则基于该音域差值xdiff确定用户演唱歌曲的伴奏的升降调系数。伴奏输出模块1170用于输出修正后的用户演唱歌曲的音频,将该音频输入到混音模块1180。

混音模块1180用于对用户演唱歌曲的修正音频以及修正伴奏进行混音处理,生成最终音频。

根据图11的示例实施例中的技术方案,一方面,基于与用户音域区间一致的标准音高序列对用户音高序列进行修正,能够对用户干声进行准确调整,避免不必要的音高调节导致修音调整范围过大的问题;另一方面,基于标准节奏序列与用户节奏序列中对应节奏时长的节奏比值序列,对用户节奏序列进行修正,能够使用户演唱节奏更准确;再一方面,通过对用于演唱音高以及节奏进行准确修正,不仅显著提高了用户演唱歌曲的音高准确度,而且能够保护用户原有音域音色,避免破坏用户演唱风格。

示例性介质

在介绍了本公开示例性实施例的方法之后,接下来,对本公开示例性实施例的介质进行说明。

在一些可能的实施例中,本公开的各个方面还可以实现为一种介质,其上存储有程序代码,当所述程序代码被设备的处理器执行时用于实现本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的音频处理方法中的步骤,例如图2或图4中的步骤。

在一些可能的实施例中,所述设备的处理器执行所述程序代码时用于实现如下步骤:。

参考图12所示,描述了根据本公开的实施例的用于实现上述音频处理方法的程序产品1200,其可以采用便携式紧凑盘只读存储器并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此。

需要说明的是:上述的介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器、只读存储器、可擦式可编程只读存储器、光纤、便携式紧凑盘只读存储器、光存储器件、磁存储器件、或者上述的任意合适的组合。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网或广域网—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

示例性装置

在介绍了本公开示例性实施例的介质之后,接下来,参考图13对本公开示例性实施例的音频处理装置进行说明。

参照图13所示,音频处理装置1300包括:特征提取模块1310,用于从用户演唱歌曲的音频数据中提取用户音频特征,所述用户音频特征包括用户音高序列;判断模块1320,用于确定所述用户音高序列与第一标准音高序列的音域区间是否一致;模板生成模块1330,用于若不一致,则生成与所述用户音高序列的音域区间一致的第二标准音高序列;修正模块1340,用于基于所述第二标准音高序列对所述用户音高序列进行修正。

在本公开的一些示例实施例中,所述判断模块1320具体用于:确定第一标准音高序列的平均值与所述用户音高序列的平均值之间的音高差;若所述音高差大于预定阈值,则确定所述用户音高序列与所述第一标准音高序列的音域区间不一致;若所述音高差小于或等于所述预定阈值,则确定所述用户音高序列与所述第一标准音高序列的音域区间一致。

在本公开的一些示例实施例中,所述模板生成模块1330具体用于:将所述第一标准音高序列中各个音高值减去所述音高差,生成所述第二标准音高序列,所述第二标准音高序列与所述用户音高序列的音域区间一致。

在本公开的一些示例实施例中,所述修正模块1340具体用于:确定所述第二标准音高序列与所述用户音高序列中对应音高的差值;基于所述差值对所述用户音高序列中的对应音高进行修正。

在本公开的一些示例实施例中,所述用户音频特征还包括用户节奏序列,所述装置1300还包括:节奏修正系数确定模块,用于确定标准节奏序列与所述用户节奏序列中对应节奏时长的比值;节奏修正模块,用于基于所述比值对所述用户节奏序列中对应节奏时长进行修正。

在本公开的一些示例实施例中,所述用户音频特征还包括伴奏序列,所述装置1300还包括:升降调系数确定模块,用于若所述音高差大于所述预定阈值,则基于所述音高差确定所述歌曲的伴奏的升降调系数;伴奏修正模块,用于基于所述升降调系数对所述伴奏序列进行升降调操作。

在本公开的一些示例实施例中,所述特征提取模块1310具体用于:从用户演唱歌曲的音频数据中提取各个歌词的时间戳信息;基于所述时间戳信息与标准歌曲歌词进行逐字时长对齐,生成所述用户音高序列。

在本公开的一些示例实施例中,所述装置1300还包括:修音模式确定模块,用于响应于用户的修音触发操作,确定与所述修音触发操作对应的修音模式;模板确定模块,用于基于所述修音模式,从修音模板库中获取与所述歌曲以及所述修音模式对应的修音模板,所述修音模板包括所述第一标准音高序列,所述修音模板库中包含与所述歌曲对应的多种修音模式下的修音模板。

根据第二方面,在本公开的一些示例实施例中,所述装置1300还包括:模板生成模块,用于基于旋律改编模型对所述歌曲进行改编,生成与所述歌曲对应的多种修音模式的修音模板。

由于图13的示例实施例的音频处理装置的各个功能模块与上述音频处理方法的示例实施例的步骤对应,因此对于本公开装置实施例中未披露的细节,请参照本公开上述的音频处理方法的实施例。

示例性计算设备

在介绍了本公开示例性实施例的方法、介质和装置之后,接下来,介绍根据本公开的另一示例性实施例的计算设备。

所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

在一些可能的实施例中,根据本公开实施例的计算设备可以至少包括至少一个处理器、以及至少一个存储器。其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的音频处理方法中的步骤。例如,所述处理器可以执行如图2中所示的步骤:步骤s210,从用户演唱歌曲的音频数据中提取用户音频特征,用户音频特征包括用户音高序列;步骤s220,确定用户音高序列与第一标准音高序列的音域区间是否一致;步骤s230,若不一致,则生成与用户音高序列的音域区间一致的第二标准音高序列;步骤s240,基于第二标准音高序列对用户音高序列进行修正。又如,所述处理器也可以执行如图4中所示的步骤。

下面参照图14来描述根据本公开的示例实施例的电子设备1400。图14所示的电子设备1400仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图14所示,电子设备1400以通用计算设备的形式表现。电子设备1400的组件可以包括但不限于:上述至少一个处理单元1410、上述至少一个存储单元1420、连接不同系统组件(包括存储单元1420和处理单元1410)的总线1430。

总线1430表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。

存储单元1420可以包括易失性存储器形式的可读介质,例如ram(randomaccessmemory,随机存取存储器)1421和/或高速缓存存储器1422,还可以进一步包括rom(read-onlymemory,只读存储器)1423。

存储单元1420还可以包括具有一组(至少一个)程序模块1424的程序/实用工具1425,这样的程序模块1424包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

电子设备1400也可以与一个或多个外部设备1440(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与电子设备1400交互的设备通信,和/或与使得电子设备1400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1450进行。并且,电子设备1400还可以通过网络适配器1460与一个或者多个网络(例如局域网,广域网和/或公共网络,例如因特网)通信。如图所示,网络适配器1460通过总线1430与电子设备1400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid(redundantarraysofindependentdisks,独立冗余磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了音频处理装置的若干单元或子单元,但是这种划分仅仅是示例性的,并非是强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或单元的特征和功能可以在一个模块或单元中具体化。反之,上文描述的一个模块或单元的特征和功能可以进一步划分为由多个模块或单元来具体化。

此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

再多了解一些

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

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

相关文章

  • 日榜
  • 周榜
  • 月榜