1.本发明涉及音频信号处理领域和算法作曲领域,具体而言,涉及一种基于音乐
调式信息修正音频内容
音高的方法及装置。
背景技术:
2.随着音乐互联网行业的发展与兴起,音乐播放及在线k歌(即karaoke,基于伴奏系统的歌曲演唱)、语音社交等功能已经成为移动互联网行业中一个热门的领域方向。对音频信号的处理如男声变女声、女声变男声、特殊变声等k歌类产品音频矫正已经越来越多的出现在移动互联网产品中,用户对于音频信号的个性化需求越来越强烈。
3.但在使用k歌类软件的过程中,并不是每个用户都能准确唱出每个音的正确音高,且随着新一代年轻人个性化需求愈发强烈,用户不再满足于和原唱一模一样的音高节奏演唱方式,而通常会采用原创的哼唱方式用自己的风格去创作音乐。然而,用户通常不能准确地以特定的调式唱出已有或原创歌曲,因此需要适用于对有伴奏或无伴奏的原创音乐演唱时的音高进行偏差修正的方法和系统。
技术实现要素:
4.为此,本发明提供了一种基于音乐调式信息修正音频内容音高的方法及装置。
5.本技术的一些实施例提供了修正音频的音高的方法,其包括步骤:获取所述音频的
基频序列,所述基频序列包括多个时间点以及每个所述时间点的基频数值;基于所述基频序列获取所述音频的原始音高序列;使用相似度算法计算不同的参考调式
音阶中与所述原始音高序列最贴近的调式音阶并作为标准调式音阶;基于所述标准调式音阶生成标准调式音阶基频参照表;使用排序法计算所述基频序列的每个时间点的基频与所述标准调式音阶基频参照表中的基频的最小音高差;基于所述每个时间点的基频的最小音高差及其偏移方向形成待修正音高差序列;以及将所述音频以及所述待修正音高差序列作为输入,依次通过重采样及psola算法对所述音频进行修正得到修正后的音频。
6.本技术的一些实施例提供了修正音频的音高的方法,其包括步骤:获取所述音频的基频序列,所述基频序列包括多个时间点以及每个所述时间点的基频数值;基于所述基频序列获取所述音频的原始音高序列;使用余弦相似度算法计算不同的参考调式音阶中与所述原始音高序列最贴近的调式音阶并作为标准调式音阶;基于所述标准调式音阶生成标准调式音阶基频参照表;使用快速排序法计算所述基频序列的每个时间点的基频与所述标准调式音阶基频参照表中的基频的最小音高差;基于所述每个时间点的基频的最小音高差及其偏移方向形成待修正音高差序列;以及将所述音频以及所述待修正音高差序列作为输入,依次通过重采样及psola算法对所述音频进行修正得到修正后的音频。
7.在一些实施例中,所述使用相似度算法或余弦相似度算法计算不同的参考调式音阶中与所述标准音高序列最贴近的调式音阶作为标准调式音阶,包括:使用预先设置的调式组合下的不同调式的音阶作为所述参考调式音阶;或者使用用户确定的不同调式的音阶
作为所述参考调式音阶。
8.在一些实施例中,所述使用相似度算法或余弦相似度算法计算不同的参考调式音阶中与所述标准音高序列最贴近的调式音阶作为标准调式音阶,包括:以每个八度音程内的十二个音高为基准进行所述参考调式音阶的筛选。
9.在一些实施例中,根据所述参考调式音阶的构成增加或者减少在一个八度音程内的音阶排列筛选出的音高数量。
10.在一些实施例中,使用相似度算法或余弦相似度算法选取相似度最大的参照音阶调式作为所述标准调式音阶前,将所述标准音序列根据八度音程关系转换到与所述参考调式音阶相同的八度音程范围内。
11.在一些实施例中,所述不同的参考调式音阶包括常用自然大调的十二个不同调式的音阶、中古调式、以五声音阶和布鲁斯音阶为基础的现代音乐调式音阶以及民族音阶等中的一个或多个。
12.在一些实施例中,所述标准调式音阶的标准调式音阶基频参照表的生成包括根据所述标准调式音阶的八度音程的数量以及每个八度音程中所述调式音阶的音高数量生成标准音高序列,以及根据国际标准音高与频率对照表将所述标准音高序列转换为标准音高的频率序列,从而得到所述标准调式音阶基频参照表。
13.在一些实施例中,所述八度音程的数量预先设置或由用户设定。
14.在一些实施例中,每个八度音程中所述调式音阶的音高数量预先设置或由用户设定。
15.在一些实施例中,所述使用快速排序法计算所述音频的基频与所述标准调式音阶基频参照表中基频最小的音高差包括:将所述每个采样点的基频向第一方向进行步长偏移;当偏移到所述标准调式音阶基频参照表内一个最近的标准音高对应的频率时或者其与所述标准调式音阶基频参照表内一个最近的标准音高对应的频率的差小于预先定义的最小容忍度时则停止偏移并记录第一累积的偏移量;并将所述第一累积的偏移量确定为该采样点的最小音高差。
16.在一些实施例中,所述使用快速排序法计算所述音频的基频与所述标准调式音阶基频参照表中基频最小的音高差包括:将所述每个采样点的基频向第一方向进行步长偏移;当偏移到所述标准调式音阶基频参照表内一个最近的标准音高对应的频率时或者其与所述标准调式音阶基频参照表内一个最近的标准音高对应的频率的差小于预先定义的最小容忍度时则停止偏移并记录第一累积的偏移量;将所述每个采样点的基频向与所述第一方向相反的第二方向进行步长偏移;当偏移到所述标准调式音阶基频参照表内一个最近的标准音高对应的频率时或者其与所述标准调式音阶基频参照表内一个最近的标准音高对应的频率的差小于预先定义的最小容忍度时则停止偏移并记录第二累积的偏移量;比较所述第一累积的偏移量和所述第二累积的偏移量并将较小的累积的偏移量确定为该采样点的最小音高差。
17.在一些实施例中,所述步长偏移的偏移量预先设定或由用户设置。
18.在一些实施例中,使用pyin算法确定所述基频序列。
19.在一些实施例中,根据已得到的待修正音高差序列,确定所述音频的音高需提高的倍数序列,将所述歌声音频按所述采集用户的歌声时的采样率的1/s倍重采样,得到重采
样后的音频;将所述重采样后的音频通过psola算法和待修正音高需提高的倍数序列将重采样的结果拉长到s倍。
20.在一些实施例中,待修正音高需要提高的倍数序列为计算得到的小数数组,或者为固定的小数而非小数数组。
21.在一些实施例中,还包括将每个音高差作为所述标准音高人声基频序列中对应时刻的共振峰的变调系数,基于psola算法重新合成所述人声音频。
22.本技术的另一些实施例提供了修正音频的音高的装置,包括至少一个处理器和包括计算机程序代码的至少一个存储器,其中,所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置至少执行上述任意一项的修正音频的音高的方法。
23.与传统的音高修正技术相比,本技术首次提出使用相似度算法,尤其是余弦相似度算法计算最相似的调式音阶,自采集的人声音频中自动获得调式音阶;本技术使用音乐调式音阶作为参照标准,使用排序算法,尤其是快速排序法计算在每个时间点下人声基频最贴近的音乐调式音阶对应的基频,以上两种方法配合缩减了计算量,可实现快速计算待修正音高差序列。
24.与传统的音高修正技术相比,本技术在适用场景上完全同点:首先,本技术不用比对原唱演唱者的歌声提取到的音乐信息和用户演唱歌声提取到的音乐信息,相对于已知技术本技术的技术更适用于未出现过原始演唱者的原创作品;其次,本技术可根据用户自定义选择调式音阶进行民族风格如日本风格,波斯风格演唱,更适用于用户的个性化演唱输出。
附图说明
25.图1 是根据本技术的实施例的修正音频的音高的方法的示意图;图2是根据本技术的实施例的修正音频的音高的方法中的音频处理步骤的示意图;图3是根据本技术的实施例的修正音频的音高的方法中的标准调式音阶处理步骤的示意图;图4a、4b是根据本技术的实施例的修正音频的音高的方法中的排序算法步骤的示意图;图5是根据本技术的实施例的修正音频的音高的方法中的重采样及psola算法的示意图。
具体实施方式
26.下面结合附图对本技术的具体实施方式进行详细说明。
27.术语定义:为了清楚地表达本技术的范围,避免歧义,现将本技术的常用术语定义如下:调式:以一个音为核心,按照一定音程关系不同音高组织在一起的若干个乐音,构成一个有机体。
28.调式音阶:以某调式的主音作为起点和终点,调式的其他各音按音高的顺序依次
排列成音阶的形式。包括自然调式、印度调式、中古调式等,每种调式包括大调、小调等。
29.音程:指两个乐音之间的音高关系,用“度”表示。包括纯一度、小二度、增一度、大二度、减三度、小三度、增二度、大三度、减四度、纯四度、增四度、减五度、纯五度、小六度、大六度、小七度、大七度、纯八度等。
30.容易理解的是,如本文的附图中一般性描述和描绘的,某些示例性实施方式的部件可以以各种不同的配置来布置和设计。因此,与交互式多媒体结构有关的系统、方法,装置和计算机程序产品的一些示例实施例的以下详细描述并非旨在限制某些实施例的范围,而是所选示例实施例的代表。
31.在整个说明书中描述的示例实施例的特征,结构或特性可以在一个或多个示例实施例中以任何合适的方式组合。例如,在整个说明书中,短语“某些实施例”,“一些实施例”或其他类似语言的使用是指以下事实:结合实施例描述的特定特征,结构或特性可以包括在至少一个实施例。因此,在整个说明书中,短语“在某些实施例中”,“在一些实施例中”,“在其他实施例中”或其他类似语言的出现不一定全都指向同一组实施例,并且所描述的特征、结构在一个或多个示例实施例中,可以以任何合适的方式组合。另外,短语“一组”是指包括一个或多个引用的组成员的一组。因此,短语“一组”,“一个或多个”和“至少一个”或等同用语可以互换地使用。另外,除非另外明确指出,否则“或”旨在表示“和/或”。
32.另外,如果需要,下面讨论的不同功能或操作可以彼此以不同的顺序和/或同时执行。此外,如果期望的话,所描述的功能或操作中的一个或多个可以是可选的或可以被组合。这样,以下描述应被认为仅是对某些示例实施例的原理和教导的说明,而不是对其的限制。
33.针对用户在哼唱原创歌曲、改编已有歌曲等包含人声的场景,本技术提供了对歌曲中的人声的音高向标准调式音阶中的音高进行修正的方法和系统。
34.本技术涉及一种修正音频的音高的方法,尤其是修正人声音频的音高的方法,其包括以采样率采集用户哼唱歌曲时的歌声得到例如一个wav格式的音频文件,步骤s100;此后对所述音频文件进行音频处理,得到所述音频文件的基频序列和音高序列,步骤s200;使用相似度算法将采集到的人声音高序列和不同的参考调式音阶进行比对,计算相似度,将最接近的参考调式音阶确定为标准调式音阶并生成标准调式音阶基频参照表,步骤s300;使用排序(sorting)算法将标准调式音阶内的每个标准音高与所述人声基频序列进行对比,计算得到每个人声基频与最贴近的标准调式音阶内的标准音的最小音高差,步骤s400;将所述人声基频序列中待修正的音高对应的最小音高差作为输入参数,得到标准调式音阶内的人声基频序列,步骤s500。
35.对所述音频文件的音频处理可以采用pyin算法进行。其可以包括使用pyin算法得到包括多个时间点的音频基频序列,步骤s201。所述音频基频序列可以为序列的格式,包括时间点的记录以及对某时间点的基频的数值的记录。得到所述音频基频序列后,则可以继而参照国际标准音高与频率对照表(scientific pitch notation)得到每个时间点下的音频的基频对应的音频音高序列,步骤s202。
36.在得到该音频的音高序列后,可以采用系统预先设置的或者用户选择的一个或多个不同的参考调式音阶使用相似度算法,例如余弦相似度算法进行比对,以得到与所述音频音高序列最接近的调式音阶。除余弦相似度算法外,可以使用例如欧几里得距离、曼哈顿
距离、明可夫斯基距离、雅卡德相似度、皮尔森相关系数等方法进行相似度计算。
37.所述参考调式音阶可以是任何已知调式,例如自然大调的十二个不同调式的音阶,也可以是中古调式音阶,以五声音阶和布鲁斯音阶为基础的现代音乐调式音阶,民族音阶等中的一个或多个。
38.以自然大调为例,其可以组合出十二个不同调式,包括c大调、g大调、e大调、b大调、d大调、a大调、升f大调、f大调、降b大调、降e大调、降a大调、降d大调的音阶作为对照比较的参考调式音阶。
39.确定了该音频的标准调式音阶后,则可使用快速排序算法将所述标准调式音阶内的每个标准音高的基频与所述音频的基频序列进行对比,计算得到所述音频的每个基频与最接近的标准调式音阶内的标准音高的最小音高差。例如,可以使用为所述标准调式音阶预存的标准音高的基频进行比对,或者可以在确定标准调式音阶后再根据国际标准音高与频率对照表(scientific pitch notation)将标准音的音高转换为频率,其中,标准调式内的标准音高的数量可以预先设定或者由用户设定,例如,对于一个确定的标准调式音阶,可以根据八度音程关系,或其他音程关系,例如五度音程等,选取该标准调式音阶的多个音程,例如n个,步骤s301,且可以选取每个音程中的音的数量,步骤s302,例如,一个八度音程中包含七个音,且选取了n个八度音程,则产生7n个标准音高的序列,并可以用该标砖音高序列作为基础根据国际标准音高与频率对照表(scientific pitch notation)将标准音的音高转换为频率,得到标准调式音阶基频参照表,步骤s303。
40.上述八度音程关系指不同八度音程之间的对应关系,例如,c1音高与c2、c3、c4、c5、c6、c7被设定为具有八度音程对应关系。当c大调被确定为标准调式音阶后,则可以选取c1~b1、c2~b2、c3~b3、c4~b4、c5~b5、c6~b6中的一个或多个音程的音高作为标准音高序列的音高,即所述八度音程的数量预先设置或由用户设定,每个八度音程中所述调式音阶的音高数量预先设置或由用户设定。
41.使用快速排序算法寻最小音高差可以包括:将所述音频的每个时间点的基频进行向第一方向的步长偏移,例如每次向上偏移2hz,即+2hz,当偏移到标准调式音阶基频参照表内一个最近的标准音高所对应的频率时候或距离小于预设的最小容忍度的时候,则停止偏移,记录累积的偏移量,步骤401a;并将该累积的偏移量以及该偏移方向作为最小音高差的参数与时间点共同形成待修正音高差序列,步骤402a;其元素包括时间点、累积的偏移量、偏移方向。这种偏移方式在音频整体偏低或偏高时最为适用。
42.然而,当事先无法判断音频整体偏低或偏高时则可以采用以下方式寻最小音高差:将所述音频的每个时间点的基频进行第一方向的步长偏移,例如每次向上偏移2hz,即+2hz,当偏移到标准调式音阶基频参照表内一个最近的标准音高所对应的频率时候或距离小于预设的最小容忍度的时候,则停止偏移,记录第一累积的偏移量,步骤401b;再重复该偏移过程进行与第一方向相反的第二方向的偏移,当偏移到标准调式音阶基频参照表内一个最近的标准音高所对应的频率时候或距离小于预设的最小容忍度的时候,则停止偏移,并记录第二累积的偏移量,步骤402b;取该时间点下两个偏移方向最小的累积的偏移量,记为该时间点下最小音高差及偏移方向,计算所述音频的基频序列中每个时间点的最小音高差,以形成待修正音高差序列,步骤403b;待修正音高差序列的元素包括时间点、以频率度量的音高差和偏移方向。
43.所述步长可以预先设定,或者配置为可由用户根据需要设定。所述最小容忍度指定义的于标准音高的最小距离。该最小容忍度可以预设或者被配置为用户可调整。
44.除所述快速排序算法外,还可以使用诸如插入排序、冒泡排序、归并排序、选择排序等方式所述音频的基频序列中每个时间点的最小音高差,以形成待修正音高差序列。
45.得到待修正音高差序列后,可将采集到歌声,包括wav,mp3、wma等常见音频格式、基频,与所述待修正的音高差序列作为输入参数,依次通过重采样及psola算法,完成对所述待修正的音高的变调计算得到修正后的音频格式文件,得到修正后的人声基频序列。
46.其中可以根据所述待修正音高差序列确定所述音频音高需提高的倍数序列,例如以峰值的扩大倍数度量,即除法运算,包括将所述节奏标准的音频按所述采集用户的歌声时的采样率的1/s倍重采样,得到重采样后的音频,步骤s501;将所述重采样后的音频通过psola算法和待修正音高需提高的倍数序列将重采样的结果拉长到s倍,步骤s502。
47.在一些实施例中,所述待修正音高需要提高的倍数序列为小数数组,如[1.2 , 2.1,
ꢀ‑
1.5, ..., 0.8]。在另一些实施例中,所述待修正音高需要提高的倍数序列可为一个固定的小数,例如从实现c调直接变换到d调,而非一个小数数组;变调系数计算步骤通过将待修正音高差序列中的每个音高差作为所述标准音高人声基频序列中对应时刻的共振峰的变调系数,基于psola算法重新合成的人声音频,步骤s503。
[0048]
显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
[0049]
下面结合本技术的技术方案的应用例对本技术的技术方案作进一步的描述。
[0050]
本技术的技术方案可以以单独的应用程序、app、小程序等形式呈现、或者以程序模块的形式集成于上述应用程序、app、小程序中,以实现人声哼唱自动伴唱功能。
[0051]
该app或程序模块可以为用户提供了“高度”、“中度”、“低度”三种音高自动矫正选项,其中,“高度”自动校正对应将自然大调的7声音阶换成了5声音阶,从而每个时间点基频的改动更大;“中度”自动校正对应上述通过单方向偏移确定待修正音高差序列;“低度”自动校正对应上述通过双方向偏移确定待修正音高差序列。
[0052]
该程序还可以向用户提供对调式的选择,例如可以向用户提供对调式的选项,在接收到用户对某一调式的选择后,则将在该调式的范围内,判断具体的调式音阶。例如,可以向用户提供“古印度风格”、“古中国风格”、“标准风格”等选项,其中每个选项对应一组调式音阶,对该风格的选择实现对该组调式音阶的选择,从而确定了相似度判断的调式音阶范围。例如古印度风格则对应十二个调式的印度音阶序列,当用户选定了“古印度风格”后,则后续会将十二个调式的印度音阶序列构成作为比对标准。
[0053]
该技术方案应用的场景也无特殊限制。例如可以应用于独立运行的系统中,或者运行于网络系统上,例如可以运行于客户端-服务端结构的网络系统上。在这样的网络系统结构中,可以在客户端配置应用以通过客户端的显示设备向用户提供图形用户界面并通过例如触摸屏等采集设备采集用户的输入、触发等操作,并可以利用客户端具备的或连接的声音采集设备对用户的哼唱的歌声进行采集,以及利用客户端的例如扩音器等播放设备播放修正后的哼唱音频。可以在服务端处理由所述客户端采集的哼唱音频,并将经过修正的哼唱音频传送至客户端。
[0054]
客户端对用户的哼唱的采集可以为以一定的采样率完整的采集一段时间内的哼唱并将采集结果存储于一个音频文件内,例如wav格式的音频文件内。服务端对该哼唱的采集可以包括对该音频文件,例如wav文件的以一定的采样率进行读取,或者直接读取客户端的缓存而实时地读取客户端采集的音频。
[0055]
本技术的修正音频的音高的方法和系统的示例一中,修正的选项的选择可以在对音频采集开始前进行,并在接收到用户对“低度”音高自动矫正功能的触发后,进入如下程序处理流程:流程1a:服务端获取用户端用户录制的人声哼唱音频文件存储地址,按已经商议好的44100hz采样率读取用户的音频wav格式文件;流程2a:使用pyin算法获取用户演唱的基频及基频对应的标准音高;形成每个时间点对应的基频及音高序列;在服务端存入数据库。
[0056]
流程3a:将十二个调式的自然大调音阶序列构成作为比对标准,使用余弦相似度算法计算流程二中获取到的音高序列与所述十二个调式中的每个调式下的自然大调音阶序列进行比对,得到相似度最大的自然大调音阶,确定和/或记录为该曲目的调式音阶。
[0057]
流程4a:如果该曲目的调式音阶被确定为c大调,则选取“c2”至“c7”每个八度范围内所有的自然大调音阶序列,形成自然大调音阶序列:“c1”、“d1”、“e1”...“a7”、“b7”、“c7”,将该自然大调音阶序列参照国际标准音高与频率对照表转换为频率序列。
[0058]
流程5a:使用快速排序法计算用户演唱基频与参考序列中基频的最小的音高差,形成待修正音高差序列,其中需要提高的频率记为正数,需要降低的频率记为负数;流程6a:使用待修正音高差序列作为输入参数,依次通过重采样及psola算法,完成对所述音高的修正计算,得到修正后的音高序列以及对应的修正后的人声音频文件。
[0059]
流程7a:将修正后的人声音频文件返回给客户端。
[0060]
本技术的修正音频的音高的方法和系统的示例二中,可实现把人声哼唱自旋律转换为古印度演唱风格的功能,在用户触发“古印度风格”功能后,对应的程序处理流程:流程1b:服务端获取用户端用户录制的人声哼唱音频文件存储地址,按44100hz采样率读取用户的音频wav格式文件;流程2b:使用pyin算法获取用户演唱的基频及基频对应的标准音高;形成每个时间点对应的基频及音高序列;在服务端存入数据库。
[0061]
流程3b:将十二个调式的印度音阶序列构成作为比对标准,例如,c调印度音阶构成音为c,d,e,#f,g,a,b;使用余弦相似度算法计算流程二中获取到的音高序列与每个调式下印度音阶序列进行比对,得到相似度最大的印度调式音阶,确定和/或记录为该音频的调式音阶。
[0062]
流程4b:根据确定的该音频的调式音阶,选取该音频的调式音阶所对应的全部音高的八度范围的音阶序列,并将这些印度音阶序列参照国际标准音高与频率对照表转换为频率序列。例如该音频的调式音阶被确定为c调印度音阶的调式音阶,则选取“c2”至“c7”每个八度范围内所有的印度音阶序列,并将这些印度音阶序列参照国际标准音高与频率对照表转换为频率序列。
[0063]
流程5b:使用快速排序法计算所述音频的基频与参考序列中基频最小的音高差,形成待修正音高差序列,其中需要提高的频率记为正数,需要降低的频率记为负数;
流程6b:使用待修正音高差序列作为输入参数,依次通过重采样及psola算法,完成对所述音高序列的修正计算,得到修正后的音高序列并继而得到修正后的人声音频文件。
[0064]
在一些示例实施例中,本文描述的任何方法,过程,信令图,算法或流程图的功能可以由存储在存储器或其他计算机可读或有形媒体的软件和/或计算机程序代码或代码部分实现,并由处理器执行。
[0065]
在一些示例实施例中,一种装置可以被包括或与至少一个软件应用、模块、单元或实体相关联,该软件应用、模块、单元或实体被配置为算术运算,或作为其程序或部分(包括添加或更新的软件例程),由至少一个操作处理器执行。程序,也称为程序产品或计算机程序,包括软件例程,小程序和宏,可以被存储在任何装置可读数据存储介质中,并且可以包括用于执行特定任务的程序指令。
[0066]
序列是数据结构的单元,其可以包括字符串、列表、元组等。
[0067]
一种计算机程序产品可以包括一个或多个计算机可执行部件,当程序运行时,该计算机可执行部件被配置为执行一些示例实施例。该一个或多个计算机可执行部件可以是至少一个软件代码或代码部分。用于实现示例实施例的功能的更改和配置可以作为例程来执行,该例程可以作为添加或更新的软件例程来实现。在一示例中,可以将软件例程下载到该装置中。
[0068]
作为示例,软件或计算机程序代码或代码的一部分可以是源代码形式,目标代码形式或某种中间形式,并且可以存储在某种载体,分发介质或计算机可读介质,其可以是能够承载程序的任何实体或设备。例如,这样的载体可以包括记录介质、计算机存储器、只读存储器、光电和/或电载体信号、电信信号和/或软件分发包。取决于所需的处理能力,计算机程序可以在单个电子数字计算机中执行,或者可以分布在多个计算机中。所述计算机可读介质或计算机可读存储介质可以是非暂时性介质。
[0069]
在其他示例实施例中,功能可以由路执行,例如通过使用专用集成电路(asic),可编程门阵列(pga),现场可编程门阵列(fpga)或任何其他硬件和软件组合。在又一示例实施例中,该功能可以被实现为信号,诸如可以由从因特网或其他网络下载的电磁信号所携带的非有形手段。
[0070]
根据示例实施例,诸如节点、设备或响应部件之类的装置可以被配置为电路,计算机或微处理器(诸如单芯片计算机元件)或芯片集,其可以至少包括用于提供用于算术运算的存储容量的存储器和/或用于执行算术运算的运算处理器。
[0071]
本文描述的示例实施例同等地适用于单数和复数实施方式,无论描述某些实施例所使用的语言是单数还是复数形式。例如,描述单个计算设备的操作的实施例同样适用于包括计算设备的多个实例的实施例,反之亦然。
[0072]
本领域的普通技术人员将容易理解,可以以不同顺序的操作和/或以与所公开的配置不同的配置的硬件元件来实施如上所述的示例实施例。因此,尽管已经基于这些示例实施例描述了一些实施例,但是对于本领域技术人员显而易见的是,某些修改,变化和替代构造将是显而易见的,同时仍在示例实施例的精神和范围内。
技术特征:
1.修正音频的音高的方法,其特征在于:包括步骤获取所述音频的基频序列,所述基频序列包括多个时间点以及每个所述时间点的基频数值;基于所述基频序列获取所述音频的原始音高序列;使用相似度算法计算不同的参考调式音阶中与所述原始音高序列最贴近的调式音阶并作为标准调式音阶;基于所述标准调式音阶生成标准调式音阶基频参照表;使用排序法计算所述基频序列的每个时间点的基频与所述标准调式音阶基频参照表中的基频的最小音高差;基于所述每个时间点的基频的最小音高差及其偏移方向形成待修正音高差序列;将所述音频以及所述待修正音高差序列作为输入,依次通过重采样及psola算法对所述音频进行修正得到修正后的音频。2.根据权利要求1的修正音频的音高的方法,其特征在于:所述使用相似度算法计算不同的参考调式音阶中与所述标准音高序列最贴近的调式音阶作为标准调式音阶,包括:使用预先设置的调式组合下的不同调式的音阶作为所述参考调式音阶;或者使用用户确定的不同调式的音阶作为所述参考调式音阶。3.根据权利要求1的修正音频的音高的方法,其特征在于:所述使用相似度算法计算不同的参考调式音阶中与所述标准音高序列最贴近的调式音阶作为标准调式音阶,包括:以每个八度音程内的十二个音高为基准进行所述参考调式音阶的筛选。4.根据权利要求3的修正音频的音高的方法,其特征在于:根据所述参考调式音阶的构成增加或者减少在一个八度音程内的音阶排列筛选出的音高数量。5.根据权利要求1的修正音频的音高的方法,其特征在于:使用相似度算法选取相似度最大的参照音阶调式作为所述标准调式音阶前,将所述标准音序列根据八度音程关系转换到与所述参考调式音阶相同的八度音程范围内。6.根据权利要求1的修正音频的音高的方法,其特征在于:所述不同的参考调式音阶包括自然大调的十二个不同调式的音阶、中古调式音阶、以五声音阶和布鲁斯音阶为基础的现代音乐调式音阶,民族音阶等中的一个或多个。7.根据权利要求1的修正音频的音高的方法,其特征在于:所述标准调式音阶的标准调式音阶基频参照表的生成包括根据所述标准调式音阶的八度音程的数量以及每个八度音程中所述调式音阶的音高数量生成标准音高序列,以及根据国际标准音高与频率对照表将所述标准音高序列转换为标准音高的频率序列,从而得到所述标准调式音阶基频参照表。8.根据权利要求7的修正音频的音高的方法,其特征在于:所述八度音程的数量预先设置或由用户设定;和/或每个八度音程中所述调式音阶的音高数量预先设置或由用户设定。9.根据权利要求1的修正音频的音高的方法,其特征在于:所述使用排序法计算或快速排序法计算所述音频的基频与所述标准调式音阶基频参照表中基频最小的音高差包括:将所述每个采样点的基频向第一方向进行步长偏移;当偏移到所述标准调式音阶基频参照表内一个最近的标准音高对应的频率时或者其与所述标准调式音阶基频参照表内一个最近的标准音高对应的频率的差小于预先定义的最小容忍度时则停止偏移并记录第一累积的偏移量;并将所述第一累积的偏移量确定为该采样点的最小音高差。
10.根据权利要求1的修正音频的音高的方法,其特征在于:所述使用排序法计算或快速排序法计算所述音频的基频与所述标准调式音阶基频参照表中基频最小的音高差包括:将所述每个采样点的基频向第一方向进行步长偏移;当偏移到所述标准调式音阶基频参照表内一个最近的标准音高对应的频率时或者其与所述标准调式音阶基频参照表内一个最近的标准音高对应的频率的差小于预先定义的最小容忍度时则停止偏移并记录第一累积的偏移量;将所述每个采样点的基频向与所述第一方向相反的第二方向进行步长偏移;当偏移到所述标准调式音阶基频参照表内一个最近的标准音高对应的频率时或者其与所述标准调式音阶基频参照表内一个最近的标准音高对应的频率的差小于预先定义的最小容忍度时则停止偏移并记录第二累积的偏移量;比较所述第一累积的偏移量和所述第二累积的偏移量并将较小的累积的偏移量确定为该采样点的最小音高差。11.根据权利要求9或10的修正音频的音高的方法,其特征在于:所述步长偏移的偏移量预先设定或由用户设置。12.根据权利要求1的修正音频的音高的方法,其特征在于:根据已得到的待修正音高差序列,确定所述音频的音高需提高的倍数序列,将所述歌声音频按所述采集用户的歌声时的采样率的1/s倍重采样,得到重采样后的音频;将所述重采样后的音频通过psola算法和待修正音高需提高的倍数序列将重采样的结果拉长到s倍。13.根据权利要求12的修正音频的音高的方法,其特征在于:所述待修正音高需要提高的倍数序列为计算得到的小数数组或单一固定的小数。14.根据权利要求12的修正音频的音高的方法,其特征在于:还包括将每个音高差作为所述标准音高人声基频序列中对应时刻的共振峰的变调系数,基于psola算法重新合成所述人声音频。15.根据权利要求1的修正音频的音高的方法,其特征在于:在所述使用相似度算法计算前确定所述参考调式音阶的范围;和/或在所述使用排序法计算前确定所述最小音高差的计算方法。16.根据权利要求1的修正音频的音高的方法,其特征在于:使用pyin算法确定所述基频序列;和/或所述相似度算法是余弦相似度算法;和/或所述排序法为快速排序法。17.修正音频的音高的装置,包括至少一个处理器和包括计算机程序代码的至少一个存储器,其中,所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置至少执行权利要求1至16中任意一项的修正音频的音高的方法。
技术总结
本发明公开了修正音频的音高的方法,其包括获取所述音频的基频序列,基于所述基频序列获取所述音频的原始音高序列;使用相似度算法确定最接近的标准调式音阶;基于所述标准调式音阶生成最小音高差;基于所述每个时间点的基频的最小音高差及其偏移方向形成待修正音高差序列;以及将所述音频以及所述待修正音高差序列作为输入,依次通过重采样及PSOLA算法对所述音频进行修正得到修正后的音频的步骤。本申请通过寻最相似的调式音阶,从而确定最贴近的音乐调式音阶对应的基频,可实现快速计算待修正音高差序列。本申请还公开了对应的修正音频的音高的装置。音频的音高的装置。音频的音高的装置。
技术研发人员:
张超 朱洁
受保护的技术使用者:
北京奇音妙想科技有限公司
技术研发日:
2021.05.11
技术公布日:
2022/11/10