基于重采样加速计算的修正音频的音高及音的方法及装置与流程



1.本发明涉及音频信号处理领域,具体而言,涉及一种基于重采样修正音频内容音高及音的方法及装置。


背景技术:



2.早在1998年,美国埃克森美孚公司的电器工程师harold hildebrand发明了一项自动矫正音高的技术专利,并且把该项专利移交了antares audio technologies公司,该项专利经过产品包装后推出产品为auto-tune。自此开始,一直用于唱片业和现代音乐文化,该项专利呈现的效果不仅更改了音频的音高信息,并且对音也形成了一定的渲染左右,形成了唱片业经典的“电音音”。
3.随着技术的进步,利用自相关函数提取基频方式已不是最佳提取基频的技术方案,在准确度和提取速度上存在不足;而auto-tune产品虽经过二十年技术沉淀,但至今无适配于移动端的产品出现,难以满足移动端音矫正和音更改的需求。在移动互联网时代,国内移动互联网公司没有实现过该类音效果,现阶段国内移动互联网公司的技术替代方案有两种:1)基于传统算法psola实现音高矫正或电音类效果,但由于psola算法底层技术的局限性,无法在本质上解决音频帧抖动的问题,且与唱片业经典的“电音音”存在一些差别;2)利用深度学习方式进行音高矫正,但该类技术呈现音效果与auto-tune系列产品存在较多的音差别,并非唱片业经典的“电音音”。


技术实现要素:



4.本发明的目的之一是提供一种可对音频进行包括“电音音”在内的音高和音进行修正的方法。
5.为此,一种基于重采样加速计算的修正音频的音高及音的方法,其包括步骤:利用dio算法获取待修正音频的原始基频序列;基于所述原始基频序列自定义设定所述待修正音频的目标基频序列;基于所述待修正音频的总采样点数量修正所述原始基频序列和所述目标基频序列以分别与所述待修正音频的音频数组对齐;对所述原始基频序列和所述目标基频序列进行跟踪对比得到所述待修正音频的不同基频部分对应的重采样采样率;根据所述重采样采样率对所述待修正音频进行重采样计算得到修正后的音频数组;以及基于所述修正后的音频数组形成修正后的音频。
6.在一些实施例中,所述利用dio算法获取所述音频的基频序列包括:首先使用不同截止频率的低通滤波器对所述音频进行滤波;如果滤波后的信号只包含一个周期的信号即确定为基音周期;然后,为每个滤波后的周期信号计算基频候选以及置信度;最后,选取置信度最高的频率作为基频。
7.在一些实施例中,使用不同离散度的低通滤波器进行滤波。
8.在一些实施例中,舍弃基频提取结果中的离散点。
9.在一些实施例中,对置信度进行二次修正计算,加权重信息后作为最后的音高。
10.在一些实施例中,对绝对响度小于某个阈值的音频进行过滤,对该部分音频不做处理。
11.在一些实施例中,所述基于所述基频序列自定义设定待修改音频的目标基频序列包括:以基频序列的数组形式给出的所述目标基频序列;和/或以绝对音高的数组形式给出的所述目标基频序列;和/或以不同时间间隔给出的所述目标基频序列。
12.在一些实施例中,所述基于待修正音频总采样点数量修正所述原始基频序列和所述目标基频序列包括:根据所述原始基频序列以及所述目标基频序列和所述待修正音频在时间轴上的时间点的对应关系,将所述原始基频序列以及所述目标基频序列分别投影到所述待修正音频的所有采样点上,分别形成和所述待修正音频的所有采样点对应的数组。
13.在一些实施例中,基于所述原始基频序列的提取时间间隔,以采样点总数量修正所述原始基频序列和所述目标基频序列,选取任意的投影计算方式将所述原始基频以及目标基频进行投影以建立原始基频序列、所述目标基频序列以及所述待修正音频的在时间轴上各时间点的对应关系。
14.在一些实施例中,对所述原始基频序列和所述目标基频序列进行跟踪对比得到所述待修正音频的不同基频部分对应的重采样采样率包括:用下述重采样方程的建立寻用于修正音频的差值,其包括设定初始窗口值i、设定步长值s;定义初始采样点个数ei为ei=int(sr/cur_freq),定义重采样采样点个数为eo为eo=int(ei*(cur_freq/item_freq)),其中,cur_freq为当前实际音频检测到的基频,item_freq为目标的音频基频;sr为该音频的初始采样率,int()为取整函数;对所述待修正音频的数组中[i:i+ei]这部分音频数据进行重采样处理,重采样率设定值为eo;对所述待修正音频的数组以步长值s进行步长迁移并在迁移后以相同的重采样率进行重采样计算;以步长值s对音频数组继续进行多次步长迁移、以重采样率eo重采样计算直至音频数组剩余采样点数小于预设值时结束重采样计算并形成修正后音频的数组;用修正后音频的数组替换待修正音频的数组,生成修正后音频。
[0015]
在一些实施例中,将所述初始窗口值设定为一个单位音频采样率值或单位音频采样率值的一半。
[0016]
在一些实施例中,将所述步长值设定为相对音频采样率值为一个较小的整数值,例如对应44100hz的采样率值,步长值优选为20~500之间的任意数,100是的推荐的步长值。
[0017]
在一些实施例中,对所述重采样部分进行加速处理,包括对所述待修正音频的数组的[i:i+ei*2]部分进行近似处理,对应也直接跳过下一个步长。
[0018]
对应的,本技术还公开了对应的修正音频的音高及音的装置。
[0019]
本技术的有益效果在于:一方面,本技术在harold hildebrand的技术基础上进行了优化,舍弃该技术利用自相关函数追踪基频的步骤,替换了基频提取的技术方案,设计了重采样加速计算的方法,在一些实施例中在基本复现了“电音”效果的同时解决了传统方法中基频提取速度过慢的问题,且轻量级的技术方案适配移动客户端,得以在移动客户端实现该类“电音”效果。另一方面,通过不同的参数设定,本技术的逻辑可以扩展到任意效果的变换,为在移动客户端的音高及音调整提供了一种高效、轻量的解决方案。
附图说明
[0020]
图1a是根据本技术的实施例的音频的原始基频图谱示意图;
[0021]
图1b是根据本技术的实施例的对所述原始基频进行修正音频后的基频图谱示意图;
[0022]
图2是显示根据本技术的实施例的重采样加速计算原理的示意图;
[0023]
图3是根据本技术的基于重采样加速计算修正音频的音高及音的方法的流程图。
具体实施方式
[0024]
下面结合附图对本技术的具体实施方式进行详细说明。
[0025]
容易理解的是,如本文的附图中一般性描述和描绘的,某些示例性实施方式的部件可以以各种不同的配置来布置和设计。因此,与交互式多媒体结构有关的系统、方法,装置和计算机程序产品的一些示例实施例的以下详细描述并非旨在限制某些实施例的范围,而是所选示例实施例的代表。
[0026]
在整个说明书中描述的示例实施例的特征,结构或特性可以在一个或多个示例实施例中以任何合适的方式组合。例如,在整个说明书中,短语“某些实施例”,“一些实施例”或其他类似语言的使用是指以下事实:结合实施例描述的特定特征,结构或特性可以包括在至少一个实施例。因此,在整个说明书中,短语“在某些实施例中”,“在一些实施例中”,“在其他实施例中”或其他类似语言的出现不一定全都指向同一组实施例,并且所描述的特征、结构在一个或多个示例实施例中,可以以任何合适的方式组合。另外,短语“一组”是指包括一个或多个引用的组成员的一组。因此,短语“一组”,“一个或多个”和“至少一个”或等同用语可以互换地使用。另外,除非另外明确指出,否则“或”旨在表示“和/或”。
[0027]
另外,如果需要,下面讨论的不同功能或操作可以彼此以不同的顺序和/或同时执行。此外,如果期望的话,所描述的功能或操作中的一个或多个可以是可选的或可以被组合。这样,以下描述应被认为仅是对某些示例实施例的原理和教导的说明,而不是对其的限制。
[0028]
本技术提供了对音频的,尤其是音频中的人声的音高及音修正的方法和装置,在特定的参数设定下,其可以产生电音音风格的音高及音矫正。应当理解在对本技术的方法和装置中的参数进行调整后,本技术的方法也可以适用于除“电音”效果外的音高音的其他效果的产生。
[0029]
下述是本技术的修正音频的音高及音的方法的实施例。
[0030]
本技术的修正音频的音高及音的方法可以应用于移动端中对音频进行处理,其可以是一个程序、小程序、进程、功能的全部或者一部分,例如,其可以为一个哼唱程序的一部分,或者单独作为一个程序或者小程序而对音频进行处理。其可以由用户的选择而启动。
[0031]
该方法可以包括以下步骤、流程中的全部或者部分:
[0032]
准备步骤:确定待修正音频,该待修正音频可以是由移动端在本地完成音频采集后得到的,也可以是任何本地、远程存储的任意格式的音频文件,所述待修正音频可以是录制人声哼唱形成的音频文件;接收由用户对“电音”音变换功能的触发后,进入如下程序处理流程:
[0033]
流程1:获取所述待修正音频文件的存储地址,按已经设定好的44100hz初始采样率读取该待修正音频文件,该待修改音频文件可以例如是wav格式文件,从而得到该待修正音频文件的初始采样的音频数组,其包含[a1,a2,a3,
…am
]这m个元素;
[0034]
流程2:使用dio算法获取所述初始采样的音频数组的原始基频及该基频对应的标准音高;形成dio算法中的设定的时间间隔的每个时间点对应的原始基频序列或者原始基频及标准音高序列;对全部频谱中所述每个时间点对应的原始基频及音高序列进行提取。提取到的原始基频序列包含[b
a1
,b
a2
,b
a3

……ban
]n个元素。
[0035]
可选的是,该提取过程包括加速处理,例如对小于70hz或者大于1200hz音频做跳过处理,不做基频提取;在绝对响度小于-45db的音频做跳过处理,不做音频提取,得到经过提取的音频序列,设定基频提取的最小时间间隔,例如为0.1s,对应时间点,对上述各参数的设定为本技术中的音频加速计算的第一个关键点。
[0036]
流程3:可选的是,为了得到“电音”效果中的某种特定的音可以自定义目标基频序列。目标基频序列数组同样包括[b
b1
,b
b2
,b
b3

……bbn
]n个元素。该流程可以对应用户在移动端的对于电音效果的等级的选择,例如,可以在移动端为“电音”效果选项进一步关联等级选项,例如,低、中、高三个等级。相应的,针对不同的等级,可以提供不同的目标基频序列,不同的目标基频序列则对应对所述原始基频序列的不同处理。例如,对应“高”这个等级的电音效果等级选项,可以通过把所述原始基频序列的对应时间范围内基频信息全部取均值拉平而得到目标基频序列,变换前后的基频序列如下图1a、1b所示。
[0037]
流程4:对所述原始基频序列的数组以及所述目标基频序列的数组进行投影处理。以本实施例采样率和最小时间间隔为例,由于最小时间间隔被设置为0.1s,音频采样率为44100hz,那么对应每一个基频数组则从一个数映射为4410个数(44100乘以0.1等于4410),若当前索引位置数据为220hz,那么对应的新数组索引位置插入4410个220hz的数据。使用该插入方法分别完成对原始基频序列和目标基频序列的投影变换,分别得到变换后的原始基频序列的数组和目标基频序列的数组。即投影变换后的原始基频序列为包含[c
a1
,c
a2
,c
a3

……cam
]m个元素的数组,投影变换后的目标基频序列[c
b1
,c
b2
,c
b3

……cbm
]m个元素的数组,可以看到数组的元素数与初始采集的音频的元素数相同,都是m。
[0038]
流程5:引入所述待修正音频文件的初始采样点个数ei和重采样采样点个数eo的计算方程:
[0039]
ei=int(44100/cur_freq)
[0040]
eo=int(ei*(cur_freq/item_freq))
[0041]
如当前基频为220hz,待修正的目标基频为240hz,那么对应计算初始采样点个数ei值为200,重采样采样点个数eo值为183。
[0042]
根据设定的初始窗口值i=22000,以及设定的每次迁移计算的步长值为100,对待修改音频数组【22000~22000+200】部分数据进行重采样,重采样率值为183。重复上述迁移以及重采样步骤直到所述音频数组的数据只剩下自定义设定的500个时,结束重采样的计算,此重采样计算中的相关数值,包括对窗口值、步长值以及剩余音频数据量的设定为重采样加速计算的第二个关键点。
[0043]
流程6:完成对所述音频数组的重采样计算后,得到电音效果变换后的音频数组文件,并基于该新的人声音频数组文件重新生成音频。
[0044]
此外,还可以对原始基频序列做其他处理以产生其他的效果。
[0045]
例如,优选的处理可以包括:
[0046]
1)考虑到后续用初始窗口值i这个参数进行重采样,将所述初始窗口值i设定为一个单位音频采样率值或单位音频采样率值的一半;
[0047]
2)将所述步长值s设定为相对音频采样率值为一个较小的整数值,步长值设定大小会影响到计算速度,通常步长值设定越大,计算结果生成速度越快,但对应的音频矫正效果越差;例如对应44100hz的采样率值,步长值s优选为20~500之间的任意数,100是的推荐的步长值;
[0048]
3)重采样部分可进行加速处理,例如设置对数组的[i:i+ei*2]部分进行近似处理,对应也直接跳过下一个步长。
[0049]
本技术的实施例还可以包括与所述方法对应的装置,该装置可以包括如上述方法的各流程相对应的计算机程序模块。
[0050]
在一些示例实施例中,本文描述的任何方法,过程,信令图,算法或流程图的功能可以由存储在存储器或其他计算机可读或有形媒体的软件和/或计算机程序代码或代码部分实现,并由处理器执行。
[0051]
在一些示例实施例中,一种装置可以被包括或与至少一个软件应用、模块、单元或实体相关联,该软件应用、模块、单元或实体被配置为算术运算,或作为其程序或部分(包括添加或更新的软件例程),由至少一个操作处理器执行。程序,也称为程序产品或计算机程序,包括软件例程,小程序和宏,可以被存储在任何装置可读数据存储介质中,并且可以包括用于执行特定任务的程序指令。
[0052]
序列是数据结构的单元,其可以包括字符串、列表、元组等。
[0053]
一种计算机程序产品可以包括一个或多个计算机可执行部件,当程序运行时,该计算机可执行部件被配置为执行一些示例实施例。该一个或多个计算机可执行部件可以是至少一个软件代码或代码部分。用于实现示例实施例的功能的更改和配置可以作为例程来执行,该例程可以作为添加或更新的软件例程来实现。在一示例中,可以将软件例程下载到该装置中。
[0054]
作为示例,软件或计算机程序代码或代码的一部分可以是源代码形式,目标代码形式或某种中间形式,并且可以存储在某种载体,分发介质或计算机可读介质,其可以是能够承载程序的任何实体或设备。例如,这样的载体可以包括记录介质、计算机存储器、只读存储器、光电和/或电载体信号、电信信号和/或软件分发包。取决于所需的处理能力,计算机程序可以在单个电子数字计算机中执行,或者可以分布在多个计算机中。所述计算机可读介质或计算机可读存储介质可以是非暂时性介质。
[0055]
在其他示例实施例中,功能可以由路执行,例如通过使用专用集成电路(asic),可编程门阵列(pga),现场可编程门阵列(fpga)或任何其他硬件和软件组合。在又一示例实施例中,该功能可以被实现为信号,诸如可以由从因特网或其他网络下载的电磁信号所携带的非有形手段。
[0056]
根据示例实施例,诸如节点、设备或响应部件之类的装置可以被配置为电路,计算机或微处理器(诸如单芯片计算机元件)或芯片集,其可以至少包括用于提供用于算术运算的存储容量的存储器和/或用于执行算术运算的运算处理器。
[0057]
本文描述的示例实施例同等地适用于单数和复数实施方式,无论描述某些实施例所使用的语言是单数还是复数形式。例如,描述单个计算设备的操作的实施例同样适用于包括计算设备的多个实例的实施例,反之亦然。
[0058]
本领域的普通技术人员将容易理解,可以以不同顺序的操作和/或以与所公开的配置不同的配置的硬件元件来实施如上所述的示例实施例。因此,尽管已经基于这些示例实施例描述了一些实施例,但是对于本领域技术人员显而易见的是,某些修改,变化和替代构造将是显而易见的,同时仍在示例实施例的精神和范围内。

技术特征:


1.一种基于重采样加速计算的修正音频的音高及音的方法,其特征在于:包括步骤:利用dio算法获取待修正音频的原始基频序列;基于所述原始基频序列自定义设定所述待修正音频的目标基频序列;基于所述待修正音频的总采样点数量修正所述原始基频序列和所述目标基频序列以分别与所述待修正音频的音频数组对齐;对所述原始基频序列和所述目标基频序列进行跟踪对比得到所述待修正音频的不同基频部分对应的重采样采样率;根据所述重采样采样率对所述待修正音频进行重采样计算得到修正后的音频数组;以及基于所述修正后的音频数组形成修正后的音频。2.根据权利要求1所述的基于重采样加速计算的修正音频的音高及音的方法,其特征在于:所述利用dio算法获取所述音频的基频序列包括:首先使用不同截止频率的低通滤波器对所述音频进行滤波;如果滤波后的信号只包含一个周期的信号即确定为基音周期;然后,为每个滤波后的周期信号计算基频候选以及置信度;最后,选取置信度最高的频率作为基频。3.根据权利要求2所述的基于重采样加速计算的修正音频的音高及音的方法,其特征在于:使用不同离散度的低通滤波器进行滤波。4.根据权利要求2所述的基于重采样加速计算的修正音频的音高及音的方法,其特征在于:舍弃基频提取结果中的离散点。5.根据权利要求2所述的基于重采样加速计算的修正音频的音高及音的方法,其特征在于:对置信度进行二次修正计算,加权重信息后作为最后的音高。6.根据权利要求2所述的基于重采样加速计算的修正音频的音高及音的方法,其特征在于:对绝对响度小于某个阈值的音频进行过滤,对该部分音频不做处理。7.根据权利要求1所述的基于重采样加速计算的修正音频的音高及音的方法,其特征在于:所述基于所述基频序列自定义设定待修改音频的目标基频序列包括:以基频序列的数组形式给出的所述目标基频序列;和/或以绝对音高的数组形式给出的所述目标基频序列;和/或以不同时间间隔给出的所述目标基频序列。8.根据权利要求2所述的基于重采样加速计算的修正音频的音高及音的方法,其特征在于:所述基于待修正音频总采样点数量修正所述原始基频序列和所述目标基频序列包括:根据所述原始基频序列以及所述目标基频序列和所述待修正音频在时间轴上的时间点的对应关系,将所述原始基频序列以及所述目标基频序列分别投影到所述待修正音频的所有采样点上,分别形成和所述待修正音频的所有采样点对应的数组。9.基于重采样加速计算的修正音频的音高及音的装置,其特征在于:包括利用dio算法获取待修正音频的原始基频序列的程序模块;基于所述原始基频序列自定义设定所述待修正音频的目标基频序列的程序模块;基于所述待修正音频的总采样点数量修正所述原始基频序列和所述目标基频序列以分别与所述待修正音频的音频数组对齐的程序模块;对所述原始基频序列和所述目标基频序列进行跟踪对比得到所述待修正音频的不同基频部分对应的重采样采样率的程序模块;根据所述重采样采样率对所述待修正音频进行
重采样计算得到修正后的音频数组的程序模块;以及基于所述修正后的音频数组形成修正后的音频的程序模块。10.基于重采样加速计算的修正音频的音高及音的装置,其特征在于:包括至少一个处理器和包括计算机程序代码的至少一个存储器,其中,所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置至少执行权利要求1至8中任意一项的基于重采样加速计算的修正音频的音高及音的方法。

技术总结


本发明公开了基于重采样加速计算修正音频内容音高及音的方法,其包括获取所述音频的基频序列,基于所述基频序列获取所述音频的原始音高序列;基于获取到的音高序列构建需要调整的基频序列数组;基于音频总时长建立基频数组映射关系数组;基于对比结果进行重采样加速计算的方法计算时间步长传入音频序列;获取所述音频进行修正得到修正后的音频的步骤。本申请还公开了对应的修正音频的音高的装置。申请还公开了对应的修正音频的音高的装置。申请还公开了对应的修正音频的音高的装置。


技术研发人员:

张超 朱洁

受保护的技术使用者:

北京奇音妙想科技有限公司

技术研发日:

2022.04.28

技术公布日:

2022/7/29

本文发布于:2024-09-24 11:27:40,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/18259.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:基频   所述   音频   序列
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议