修正音频的节奏的方法和装置与流程



1.本发明涉及音频信号处理领域和算法作曲领域,具体而言,涉及一种修正音频节奏的方法及装置。


背景技术:



2.随着音乐行业和互联网行业的发展,音乐创作(原创或二次创作)及在线k歌(即karaoke,基于伴奏系统的歌曲演唱)、语音哼唱等功能已经成为移动互联网行业中一个热门的领域方向。用户对于音频信号的个性化需求越来越强烈。
3.但在使用k歌类软件的过程中,用户往往无法准确的跟着音乐的节奏进行演唱,存在略早或略晚进行演唱的问题,且对于小白用户的音乐创作,用户在自主划分小节问题上存在音乐专业知识的瓶颈。传统的修正音频节奏的方法及装置,需要提供歌词模版或者演唱音频模版进行匹配,才能提供节奏修正的功能,对于年轻人个性化演唱及原创作品存在不适用性,因此需要适用于对有伴奏或无伴奏的原创音乐演唱时的音高进行偏差修正的方法和系统。


技术实现要素:



4.为了解决上述问题,本技术的实施例提供了修正音频的节奏的方法,其包括步骤:基于音频的每个小节的语音识别结果、原始音高序列、理论持续时间中的一个或者多个确定所述每个小节的实际持续时间并根据所述实际持续时间对所述每个小节进行重新划分;根据所述每个小节的理论持续时间与实际持续时间推导所述每个小节的变速系数序列;基于所述每个小节的所述变速系数序列对所述重新划分的每个小节的进行变速处理将其还原至所述小节的理论持续时间。
5.在一些实施例中,还包括获取所述音频的基频序列,所述基频序列包括多个时间点以及每个所述时间点的基频数值;获取所述音频的语音识别结果;基于所述基频序列获取所述音频的原始音高序列;以及基于拍速和/或拍号计算所述音频的每个小节的理论持续时间的步骤。
6.在一些实施例中,所述获取所述音频的所述基频序列包括:获取以数组形式给出的连续基频序列,其中根据所述数组可判断基频所对应的时间点;以及获取以基频变化的时间点给出的基频序列,其包含基频及基频变化的时间点。
7.在一些实施例中,所述获取所述音频的语音识别结果包括:获取数组形式的连续文字或编码序列,所述编码序列用于区分不同的文字的语音特征及持续时长,根据所述连续文字或编码序列的数组可判断所述文字或编码所对应的时间点;以及所述文字或编码序列包含所述文字及文字变化的时间点或编码及编码变化的时间点。
8.在一些实施例中,所述拍号和拍速由用户设置,或者若用户未对拍速和/或拍号进行设置的,则使用默认的拍号、拍速值。
9.在一些实施例中,所述基于拍速和拍号计算每个小节持续时间包括:基于拍号和
拍速计算每个小节理论持续时间;或者直接给出每个小节的理论持续时间;或者根据所述音频的总时长,给出所述音频小节划分总数,基于音频总时长和所述音频小节划分总数确定每个小节的理论持续时间。
10.在一些实施例中,所述语音识别结果包括识别出的每个字及每个字的发音持续时间;所述音频的所述原始音高序列包含所述音频的原始音高及每个原始音高的持续时间;所述基于所述音频的语音识别结果、原始音高序列,每个小节的理论持续时间确定所述音频的每个小节的实际持续时间,包括:如在所述理论持续时间结束点未检测到音高信息且未检测到语音序列信息,则以所述理论持续时间作为小节的实际持续时间;基于所述音频的所述语音识别结果和所述原始音高序列两个参考依据对所述音频的小节的实际持续时间进行确定并对小节进行重新划分;或者基于所述音频的语音识别结果或者原始音高序列单独一个参考依据对所述音频的小节的实际持续时间进行确定并对小节进行重新划分;或者寻所述语音识别结果发生变化的时间点和所述音高识别结果发生变化的时间点中距离所述小节的所述理论持续时间结束点最近的时间点,将该最近的时间点确定为所述小节的实际结束时间点;或者为所述语音识别结果和所述音高识别结果分配不同权重,寻所述语音识别结果发生变化的时间点和所述音高识别结果发生变化的时间点中距离所述小节的所述理论持续时间结束点最近的时间点,通过权重的计算,将权重最高的时间点确定为所述小节的实际结束时间点。
11.在一些实施例中,根据所述每个小节的理论持续时间与实际持续时间推导所述每个小节的变速序列,包括:对于以正负数的偏移量形式给出的变速系数序列,以所述正负数的偏移量对所述音频进行小节变速调整;或者,对于以变速比例给出的变速系数序列,以所述变速比例作为小节变速调整的依据。
12.在一些实施例中,按照每个小节变速系数序列对具有实际持续时间的每个小节音频进行变速处理。
13.本技术还公开了修正音频的节奏的装置,其包括至少一个处理器和包括计算机程序代码的至少一个存储器,其中,所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置至少执行上述任意一项的修正音频的节奏的方法。
14.本技术通过采集音频自身包含的基频、音高、并推导每个小节理论持续时间来确定小节的实际持续时间,并据此对小节的时长进行重新划分,再计算变速系数并根据该变速系数还原音频,从而实现对音频进行节奏调整。
附图说明
15.图1是根据本技术的实施例的修正音频的节奏的方法的示意图;
具体实施方式
16.下面结合附图对本技术的具体实施方式进行详细说明。
17.术语定义:
18.为了清楚地表达本技术的范围,避免歧义,现将本技术的常用术语定义如下:
19.拍号:拍号是在乐谱中常见的符号,用分数的形式来标画。一般乐谱前面都有拍号,中间如果改变节奏会标出改变的拍号,拍号如同分数,如2/4、3/4等。分母表示拍子的时
值也就是说用几分音符来当一拍,如2/4代表用四分音符代表一拍,每一小节有两拍。分子代表每一小节有多少拍子,前面说过了2/4拍就是以四分音符为一拍,一小节有两拍,3/4以四分音符为一拍,每个小节有三拍
……
读法是先读分母,再读分子,比如2/4叫四二拍,3/4叫四三拍,6/8叫八六拍。
20.拍速:拍子的速度,在本技术中通常形式为每分钟节拍数的单位,即bpm,在一分钟的时间段落之间,所发出的声音节拍的数量,这个数量的单位便是bpm。
21.小节:音乐进行中,其强拍、弱拍总是有规律地循环出现,从一个强拍到下一个强拍之间的部分即称一小节。在乐谱中,小节与小节之间用短竖线(小节线)划开。在本技术中,小节特指一个完整拍号响应持续的时间。
22.音高:音的标准高度。国际通用的标准高度(第一国际高度)是机械波为440hz,波长为78cm的a音,即以小字一组的a为“标准音”。以此延展出的平均十二律对应音高。
23.基频:一复杂波中最低且通常情况下最强的频率,是振动系统的最低固有频率。在音频中决定当前时间下的音高。
24.容易理解的是,如本文的附图中一般性描述和描绘的,某些示例性实施方式的部件可以以各种不同的配置来布置和设计。因此,与交互式多媒体结构有关的系统、方法,装置和计算机程序产品的一些示例实施例的以下详细描述并非旨在限制某些实施例的范围,而是所选示例实施例的代表。
25.在整个说明书中描述的示例实施例的特征,结构或特性可以在一个或多个示例实施例中以任何合适的方式组合。例如,在整个说明书中,短语“某些实施例”,“一些实施例”或其他类似语言的使用是指以下事实:结合实施例描述的特定特征,结构或特性可以包括在至少一个实施例。因此,在整个说明书中,短语“在某些实施例中”,“在一些实施例中”,“在其他实施例中”或其他类似语言的出现不一定全都指向同一组实施例,并且所描述的特征、结构在一个或多个示例实施例中,可以以任何合适的方式组合。另外,短语“一组”是指包括一个或多个引用的组成员的一组。因此,短语“一组”,“一个或多个”和“至少一个”或等同用语可以互换地使用。另外,除非另外明确指出,否则“或”旨在表示“和/或”。
26.另外,如果需要,下面讨论的不同功能或操作可以彼此以不同的顺序和/或同时执行。此外,如果期望的话,所描述的功能或操作中的一个或多个可以是可选的或可以被组合。这样,以下描述应被认为仅是对某些示例实施例的原理和教导的说明,而不是对其的限制。
27.针对用户在哼唱原创歌曲、改编已有歌曲等包含人声的场景,本技术提供了对歌曲中的人声的节奏进行修正的方法和装置。
28.图1为依据本技术的实施例的修正音频的节奏方法流程图。该实施例涉及一种修正音频的节奏的方法,尤其是修正人声音频的节奏的方法,其包括以采样率采集用户哼唱歌曲时的歌声得到例如一个wav格式的音频文件,步骤s110,同时或者顺序地可以采集用户定义的拍速和拍号s120;再获得音频文件后可对所述音频文件进行音频处理,得到所述音频文件的基频序列步骤s210和音高序列步骤s220;同时或者顺序地对所述音频文件进行语音识别,得到所述音频文件的语音识别序列,步骤s300,同时地或者顺序地,可以获得采集的所述用户定义的拍速和拍号,并根据所述拍速和拍号计算每个小节的理论持续时间s310;此后,基于所述音频的语音识别序列、原始音高序列,每个小节的理论持续时间计算
每个小节的实际持续时间,并根据该实际持续时间对所述音频进行重新划分成多个小节,步骤s400;根据所述时间的偏移量对所述音频划分的每个小节持续时间计算变速系数,得到每个小节变速系数序列s500,按照每个小节变速系数序列对每个小节音频进行变速处理得到修正节奏后的音频,步骤s600。
29.其中,获取的所述音频的基频序列包括多个时间点以及每个所述时间点的基频数值;其中,获取的所述音频的语音识别序列包括识别出的每个字及每个字的发音持续时间;其中,可以基于所述基频序列获取所述音频的原始音高序列,所述音频的原始音高序列包含音频的原始音高及每个音高的持续时间;其中,可以基于所述音频的语音识别序列,原始音高序列,每个小节理论持续时间计算每个小节的实际持续时间,并根据所述实际持续时间对所述音频的该小节重新进行划分;其中,根据所述音频的每个小节的实际持续时间相对于基于拍速值、拍号值计算的每个小节理论持续时间的偏移量对所述音频划分的每个小节实际持续时间计算变速系数,得到每个小节变速系数序列;后续按照每个小节变速系数序列对每个小节音频进行变速处理。
30.在本技术的方法中,可以提供功能使得用户对所述拍速值和拍号值进行设置,例如在已有的选项中选取。可以在用户未进行设置时,提供拍速值和拍号值的默认值。或者可以不提供该功能而直接将每个音频的拍速值和拍号值设置为默认的值。
31.如在小节理论结束的时间点未检测到基频信息且未检测到语音识别信息,则判断小节理论持续时间为其实际持续时间;
32.可以将所述音频的语音识别结果或者原始音高序列单独一个作为判断依据确定所述音频的小节的实际持续时间。例如,语音识别结果中的字发生变化或者原始音高发生变化,例如检测到一个字的持续时间结束或一个字的持续时间开始,或者例如检测到一个原始音高结束或者另一个原始音高开始,则确定该小节的理论持续时间即为该小节的实际持续时间。
33.可以基于所述音频的语音识别结果和原始音高序列两个参考依据确定所述音频的小节的实际持续时间。例如,可以通过寻语音识别结果发生变化的时间点,例如字的的变化,和音高识别结果发生变化的时间点,例如音高的变化,两者中距离小节理论持续时间结束最近的时间点,将该最近的时间点确定为所述小节的实际结束时间点;或者
34.分配语音识别结果和音高识别结果的不同权重,寻语音识别结果发生变化的时间点和音高识别结果发生变化的时间点中距离小节理论持续时间结束最近的时间点,通过权重的计算,将该权重最高的时间点确定为所述小节的实际结束时间点。
35.此外,根据所述每个小节的理论持续时间与实际持续时间推导所述每个小节的变速系数序列,该变速系数序列的推导可以包括推导基于偏移量的变速系数序列,和/或推导基于变速比例的变速系数序列。对于以正负数的偏移量形式给出的变速系数序列,以所述正负数的偏移量对所述音频进行小节变速调整;或者,对于以变速比例给出的变速系数序列,以所述变速比例作为小节变速调整的依据。
36.本技术通过采集音频自身包含的基频、音高、并推导每个小节理论持续时间来确定小节的实际持续时间,并据此对小节的时长进行重新划分,再计算变速系数并根据该变速系数还原音频,从而实现对音频进行节奏调整。
37.应用实例一
38.申请人设计了一款软件,其提供一种k歌模式新玩法,其运行方式为:由用户选取bpm、拍号,然后开始哼唱录制,当录制结束后,系统进入如下节奏自动修正步骤:
39.步骤一获取用户录制的音频文件;
40.步骤二使用pyin算法获取音频文件的基频序列,使用librosa模块将音频基频转换为音高序列;
41.步骤三调用第三方api接口进行语音识别,得到语音识别结果和时间的对应关系;
42.步骤四假设用户选取的bpm值为120,拍号为4/4,则计算理论小节时长为2s每个小节,即每理论小节持续时间为2s;
43.步骤五基于所述音频的语音识别结果,原始音高序列,每个小节理论持续时间对所述音频进行重新划分,其中重新划分规则为:1)若一小节理论持续时间结束时,语音识别结果中识别到的文字恰好发生变化,例如一个字时长结束或者开始时间,或者原始音高发生变化,例如0.5s,则将该理论持续时间的结束点确定为实际持续时间的结束点,并以该时间点为界重新划分为一小节,跳转至下一个小节划分;2)若一小节理论持续时间结束时,语音识别结果没有发生变化且原始音高没有发生变化,则在该小节中寻语音识别结果发生变化的时间点和音高识别结果发生变化的时间点中距离该小节理论持续时间的结束时间点最近的时间点,取该最近的时间点作为该小节实际结束的时间点,并以该实际结束的时间点为界重新划分该小节,跳转至下一小节的实际持续时间的确定以及小节的重新划分。
44.计算每个小节重新划分后的时间偏移量;时间偏移量计算方式为:偏移量=所述音频划分当前调整小节持续时间-基于拍速计算的每理论小节持续时间;如果计算最贴近2s的音高转换点累计为第1.9s,语音变化点为第2.2s,则选取音高转换点1.9s作为该小节的划分标准,计算偏移量为-0.1s;如果计算最贴近2s的音高转换点累计为2.2s,语音变化点为2.1s,则选取语音转换点2.1s作为该小节的重新划分时间点,计算偏移量为+0.1s;计算完所有小节后形成划分的重新划分的小节的时长序列,以及计算的偏移量时长序列,并以此类推得到包括音频整体或者一部分中所有小节的变速系数序列。
45.步骤六使用wsola算法,按照每个小节变速系数序列对每个小节音频进行变速处理,如包括五个小节的音频重新划分的时长为[1.9s,2.3s,1.8s,2.1s,2.0s],则使用wsola算法对这些小节进行变速调整至每个小节均为2s。
[0046]
应当理解,上述例子仅为实现本技术的方法的一种可能的实施例。其中一些步骤可以根据需要进行调整。
[0047]
例如,还可以用小节的理论时长与重新划分的小节的实际时长的比例作为变速系数。并基于该变数系数对音频进行变速处理。
[0048]
又例如,可以在用户哼唱录制结束后对采集的音频整体进行上述节奏调整,或者在用户哼唱的过程中直接实时采集音频并对音频按上述步骤进行调整。
[0049]
又例如,可以获取以数组形式给出连续基频序列,根据数组可判断基频所对应的时间点;获取以基频变化的时间点给出的基频序列包含基频及基频变化的时间点。
[0050]
又例如,可以以数组形式给出连续文字或编码序列,其中,编码序列的作用是区分不同的文字的语音特征及持续时长,根据所述数组可判断文字或编码所对应的时间点;以文字或编码变化的时间点给出的所述文字或编码序列包含文字及文字变化的时间点或编码及编码变化的时间点。
[0051]
在一些示例实施例中,本文描述的任何方法,过程,信令图,算法或流程图的功能可以由存储在存储器或其他计算机可读或有形媒体的软件和/或计算机程序代码或代码部分实现,并由处理器执行。
[0052]
在一些示例实施例中,一种装置可以被包括或与至少一个软件应用、模块、单元或实体相关联,该软件应用、模块、单元或实体被配置为算术运算,或作为其程序或部分(包括添加或更新的软件例程),由至少一个操作处理器执行。程序,也称为程序产品或计算机程序,包括软件例程,小程序和宏,可以被存储在任何装置可读数据存储介质中,并且可以包括用于执行特定任务的程序指令。
[0053]
序列是数据结构的单元,其可以包括字符串、列表、元组等。
[0054]
一种计算机程序产品可以包括一个或多个计算机可执行部件,当程序运行时,该计算机可执行部件被配置为执行一些示例实施例。该一个或多个计算机可执行部件可以是至少一个软件代码或代码部分。用于实现示例实施例的功能的更改和配置可以作为例程来执行,该例程可以作为添加或更新的软件例程来实现。在一示例中,可以将软件例程下载到该装置中。
[0055]
作为示例,软件或计算机程序代码或代码的一部分可以是源代码形式,目标代码形式或某种中间形式,并且可以存储在某种载体,分发介质或计算机可读介质,其可以是能够承载程序的任何实体或设备。例如,这样的载体可以包括记录介质、计算机存储器、只读存储器、光电和/或电载体信号、电信信号和/或软件分发包。取决于所需的处理能力,计算机程序可以在单个电子数字计算机中执行,或者可以分布在多个计算机中。所述计算机可读介质或计算机可读存储介质可以是非暂时性介质。
[0056]
在其他示例实施例中,功能可以由路执行,例如通过使用专用集成电路(asic),可编程门阵列(pga),现场可编程门阵列(fpga)或任何其他硬件和软件组合。在又一示例实施例中,该功能可以被实现为信号,诸如可以由从因特网或其他网络下载的电磁信号所携带的非有形手段。
[0057]
根据示例实施例,诸如节点、设备或响应部件之类的装置可以被配置为电路,计算机或微处理器(诸如单芯片计算机元件)或芯片集,其可以至少包括用于提供用于算术运算的存储容量的存储器和/或用于执行算术运算的运算处理器。
[0058]
本文描述的示例实施例同等地适用于单数和复数实施方式,无论描述某些实施例所使用的语言是单数还是复数形式。例如,描述单个计算设备的操作的实施例同样适用于包括计算设备的多个实例的实施例,反之亦然。
[0059]
本领域的普通技术人员将容易理解,可以以不同顺序的操作和/或以与所公开的配置不同的配置的硬件元件来实施如上所述的示例实施例。因此,尽管已经基于这些示例实施例描述了一些实施例,但是对于本领域技术人员显而易见的是,某些修改,变化和替代构造将是显而易见的,同时仍在示例实施例的精神和范围内。

技术特征:


1.修正音频的节奏的方法,其特征在于:包括步骤基于音频的每个小节的语音识别结果、原始音高序列、理论持续时间中的一个或者多个确定所述每个小节的实际持续时间并根据所述实际持续时间对所述每个小节进行重新划分;根据所述每个小节的理论持续时间与实际持续时间推导所述每个小节的变速系数序列;基于所述每个小节的所述变速系数序列对所述重新划分的每个小节的进行变速处理将其还原至所述小节的理论持续时间。2.根据权利要求1的修正音频的节奏的方法,其特征在于:还包括获取所述音频的基频序列,所述基频序列包括多个时间点以及每个所述时间点的基频数值;获取所述音频的语音识别结果;基于所述基频序列获取所述音频的原始音高序列;以及基于拍速和/或拍号值计算所述音频的每个小节的理论持续时间。3.根据权利要求2的修正音频的节奏的方法,其特征在于:所述获取所述音频的所述基频序列包括:获取以数组形式给出的连续基频序列,其中根据所述数组可判断所述基频所对应的时间点;以及获取以基频变化的时间点给出的基频序列,其包含基频及基频变化的时间点。4.根据权利要求2的修正音频的节奏的方法,其特征在于:所述获取所述音频的语音识别结果包括:获取数组形式的连续文字或编码序列,所述编码序列用于区分不同的文字的语音特征及持续时长,根据所述连续文字或编码序列的数组可判断所述文字或编码所对应的时间点;以及所述文字或编码序列包含所述文字及文字变化的时间点或编码及编码变化的时间点。5.根据权利要求1的修正音频的节奏的方法,其特征在于:所述拍号和/或拍速值由用户设置,或者若用户未对拍速和/或拍号进行设置的,则使用默认的拍号和/或拍速值。6.根据权利要求2的修正音频的节奏的方法,其特征在于:所述基于拍速和/或拍号值计算每个小节持续时间包括:基于拍号和拍速计算每个小节理论持续时间;或者直接给出每个小节的理论持续时间;或者根据所述音频的总时长,给出所述音频小节划分总数,基于音频总时长和所述音频小节划分总数确定每个小节的理论持续时间。7.根据权利要求1的修正音频的节奏的方法,其特征在于:所述语音识别结果包括识别出的每个字及每个字的发音持续时间;所述音频的所述原始音高序列包含所述音频的原始音高及每个原始音高的持续时间;所述基于所述音频的语音识别结果、原始音高序列,每个小节的理论持续时间确定所述音频的每个小节的实际持续时间,包括:如在所述理论持续时间结束点未检测到音高信息且未检测到语音序列信息,则以所述理论持续时间作为小节的实际持续时间;以及基于所述音频的所述语音识别结果和所述原始音高序列两个参考依据对所述音频的小节的实际持续时间进行确定并对小节进行重新划分;或者基于所述音频的语音识别结果或者原始音高序列单独一个参考依据对所述音频的小节的实际持续时间进行确定并对小节进行重新划分;或者寻所述语音识别结果发生变化的时间点和所述音高识别结果发生变化的时间点中
距离所述小节的所述理论持续时间结束点最近的时间点,将该最近的时间点确定为所述小节的实际结束时间点;或者为所述语音识别结果和所述音高识别结果分配不同权重,寻所述语音识别结果发生变化的时间点和所述音高识别结果发生变化的时间点中距离所述小节的所述理论持续时间结束点最近的时间点,通过权重的计算,将权重最高的时间点确定为所述小节的实际结束时间点。8.根据权利要求1的修正音频的节奏的方法,其特征在于:根据所述每个小节的理论持续时间与实际持续时间推导所述每个小节的变速序列,包括:对于以正负数的偏移量形式给出的变速系数序列,以所述正负数的偏移量对所述音频进行小节变速调整;或者,对于以变速比例给出的变速系数序列,以所述变速比例作为小节变速调整的依据。9.根据权利要求1的修正音频的节奏的方法,其特征在于:按照每个小节变速系数序列对具有实际持续时间的每个小节音频进行变速处理。10.修正音频的节奏的装置,其特征在于:包括至少一个处理器和包括计算机程序代码的至少一个存储器,其中,所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置至少执行权利要求1至9中任意一项的修正音频的节奏的方法。

技术总结


本发明公开了修正音频的节奏的方法,其包括步骤:基于每个小节的语音识别结果、原始音高序列、每个小节的理论持续时间中的一个或者多个确定所述每个小节的实际持续时间并根据所述实际持续时间对所述每个小节进行重新划分;以及按照所述每个小节的所述变速系数序列对所述重新划分的每个小节进行变速处理将其还原至所述小节的理论持续时间。本申请还公开了对应的装置。本申请通过采集音频自身包含的基频、音高、并推导每个小节理论持续时间来确定小节的实际持续时间,并据此对小节的时长进行重新划分,再计算变速系数并根据该变速系数还原音频,从而实现对音频进行节奏调整。从而实现对音频进行节奏调整。从而实现对音频进行节奏调整。


技术研发人员:

张超 朱洁

受保护的技术使用者:

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

技术研发日:

2021.08.18

技术公布日:

2023/2/20

本文发布于:2024-09-21 04:36:01,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/58705.html

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

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