CN106057208B - 一种音频修正方法及装置 - Google Patents
一种音频修正方法及装置 Download PDFInfo
- Publication number
- CN106057208B CN106057208B CN201610425682.XA CN201610425682A CN106057208B CN 106057208 B CN106057208 B CN 106057208B CN 201610425682 A CN201610425682 A CN 201610425682A CN 106057208 B CN106057208 B CN 106057208B
- Authority
- CN
- China
- Prior art keywords
- pitch
- curve
- pitch curve
- broken line
- audio data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/003—Changing voice quality, e.g. pitch or formants
- G10L21/007—Changing voice quality, e.g. pitch or formants characterised by the process used
- G10L21/013—Adapting to target pitch
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/10537—Audio or video recording
- G11B2020/10546—Audio or video recording specifically adapted for audio data
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
本发明实施例提供了一种音频修正方法及装置,其中方法包括:获取第一音频数据;获取第一音高曲线,所述第一音高曲线为所述第一音频数据的音高曲线;根据第二音高曲线,对所述第一音高曲线依次进行音阶修正及调性修正,以得到修正后的第一音高曲线,其中所述第二音高曲线为与所述第一音频数据相对应的第二音频数据的音高曲线;将修正后的第一音高曲线转换回音频信号,以得到修正后的第一音频数据。以歌曲为例,本发明实施例可以使修正后的用户演唱歌曲音高曲线与原唱歌曲音高曲线的走势保持一致,并且用户演唱歌曲音高曲线的起伏相比修正前更接近原唱歌曲,从而大大提升了用户演唱歌曲的节奏感和听感,提升了对歌曲等音频数据的修正效果。
Description
技术领域
本发明涉及音频数据处理技术,尤其涉及一种音频修正方法及装置。
背景技术
人们在工作及生活中,有时会遇到需要录制音频的场景,例如音频可以是演奏的音乐,或者是演唱的歌曲,等等。以歌曲为例,随着移动互联网的快速发展,各种唱歌类APP(应用软件)逐渐兴起,对于普通用户来说,将自己录制的歌曲分享到社交网站已成为一种新的社交方式。不过普通用户由于缺乏专业的歌唱训练,往往无法很好的完成整首歌曲的演唱,例如可能会出现曲调唱错、节奏跟不上等问题,这些问题都会影响所录歌曲的听感。因此在所录歌曲发布之前,对所录歌曲进行修正以提升歌曲听感,已成为用户的一种迫切需求。
歌曲自身往往带有重复性的特点,例如同一句歌词既在歌曲高潮中出现,也在歌曲结尾中出现,也就是说一首歌曲内通常会出现歌词相同或相近的两个或多个部分,所以在一种现有技术中,可以分析用户所录歌曲与原唱歌曲之间的差异,在相同歌词或相近歌词的地方,使用用户演唱较好(也即与原唱歌曲差异较小)的那部分去替换用户演唱较差的那部分,从而得到修正后的用户演唱歌曲。
然而发明人在实现本发明的过程中发现,如果歌词相同或相近的部分都没唱好,则这种修正无法完成,而且,即使有唱的比较好的歌词相同或相近的部分可以用来替换其他部分,现有方法在修正用户演唱歌曲时,也并未考虑用户的听感,这是因为即使在歌词相同或相近的地方,歌曲的音高或节奏也有可能不一样,如果采取现有技术这种直接替换的方式,则容易导致修正后的歌曲听起来会比较奇怪,也即听感及节奏感较差。可见现有技术目前并不能对歌曲等音频进行很好的修正。
发明内容
本发明提供一种音频修正方法及装置,以提升对歌曲等音频数据的修正效果。
根据本发明实施例的第一方面,提供一种音频修正方法,所述方法包括:
获取第一音频数据;
获取第一音高曲线,所述第一音高曲线为所述第一音频数据的音高曲线;
根据第二音高曲线,对所述第一音高曲线依次进行音阶修正及调性修正,以得到修正后的第一音高曲线,其中所述第二音高曲线为与所述第一音频数据相对应的第二音频数据的音高曲线;
将修正后的第一音高曲线转换回音频信号,以得到修正后的第一音频数据。
可选的,所述获取第一音高曲线,包括:
对所述第一音频数据进行分帧;
提取分帧后得到的每帧数据的基频;
将提取的每帧数据的基频转换为音高值;
以各音高值作为曲线上的点得到所述第一音高曲线。
可选的,所述对所述第一音频数据进行分帧,包括:
根据所述第一音频数据的节奏进行分帧;
或者,
以固定时长为单位进行分帧。
可选的,所述根据第二音高曲线,对所述第一音高曲线进行音阶修正,包括:
按照预设方式将所述第一音高曲线划分为多个片段,每个片段包含一个或多个音高连续段;
通过获取每个片段与所述第二音高曲线相应部分在音高值上的差别、每个片段内各音高连续段与所述第二音高曲线相应部分在音高值上的差别,确定每个片段内各音高连续段偏离所述第二音高曲线的程度,以及,
根据每个片段内各音高连续段偏离所述第二音高曲线的程度,对需要调整的音高连续段进行音阶调整,以使调整后的第一音高曲线与所述第二音高曲线在音阶上满足预设关系。
可选的,所述预设关系为:
调整后的第一音高曲线与所述第二音高曲线在相同的音阶范围内,
或者,
调整后的第一音高曲线与所述第二音高曲线相差固定的音阶。
可选的,所述通过获取每个片段与所述第二音高曲线相应部分在音高值上的差别、每个片段内各音高连续段与所述第二音高曲线相应部分在音高值上的差别,确定每个片段内各音高连续段偏离所述第二音高曲线的程度,包括:
对于每个片段,计算当前片段的第一均值以及当前片段内每个音高连续段的第二均值,其中第一均值为当前片段上各帧与第二音高曲线相应帧的音高差的总均值,第二均值为音高连续段上的各帧与第二音高曲线相应帧的音高差的均值;
基于音高连续段的第二均值与第一均值的比值,确定音高连续段偏离所述第二音高曲线的程度。
可选的,所述根据每个片段内各音高连续段偏离所述第二音高曲线的程度,对需要调整的音高连续段进行音阶调整,包括:
对于每个音高连续段,根据当前音高连续段偏离所述第二音高曲线的程度与预设阈值的关系,确定是否需要对当前音高连续段进行音阶调整;
当需要对当前音高连续段进行音阶调整时,向偏离的反方向调整当前音高连续段的音阶,直至当前音高连续段与所述第二音高曲线在音阶上满足所述预设关系。
可选的,所述根据第二音高曲线,对所述第一音高曲线进行调性修正,包括:
获取第二音符折线,所述第二音符折线为对所述第二音频数据进行调性规整后得到的音符折线;
根据所述第二音符折线中每个折线段与所述第一音高曲线的高低位置关系,对所述第一音高曲线进行调性规整以得到第一音符折线;
对所述第一音符折线进行平滑处理,将平滑处理后得到的曲线作为修正后的第一音高曲线。
可选的,所述获取第二音符折线,包括:
获取所述第二音频数据的调性;
通过计算所述第二音高曲线中每帧与临近音符在音高上的距离,将每帧的音高规整到距离最近的音符上以得到所述第二音符折线,其中所述第二音频数据的调性中未出现的音符不作为所述临近音符。
可选的,所述根据所述第二音符折线中每个折线段与所述第一音高曲线的高低位置关系,对所述第一音高曲线进行调性规整以得到第一音符折线,包括:
当第一音高曲线在第二音符折线的折线段以下或以上时,将第一音高曲线相应部分变换为折线段,此时第一音高曲线的折线段的音高值根据第二音符折线的折线段对应的第一音高曲线相应部分的中间帧音高值、第二音符折线的折线段对应的音高值以及第一音高曲线相应部分中的音高最大值而确定;
当第一音高曲线穿过第二音符折线的折线段时,将第一音高曲线相应部分变换为折线段,此时第一音高曲线的折线段的音高值为第二音符折线的折线段对应的音高值。
可选的,得到修正后的第一音频数据之后,所述方法还包括:
将修正后的第一音频数据反馈给用户。
可选的,所述第一音频数据为用户所唱歌曲,所述第二音频数据为与所述第一音频数据对应的原唱歌曲;或者,所述第一音频数据为用户所演奏的纯音乐,所述第二音频数据为与第一音频数据对应的示范音乐。
可选的,当所述第一音频数据为用户所唱歌曲时,所述第一音频数据和所述第二音频数据均为清唱歌曲;当所述第一音频数据为用户所演奏的纯音乐时,所述第一音频数据和所述第二音频数据均为使用单一乐器所演奏的音乐。
可选的,当所述第一音频数据为用户所唱歌曲时,对所述第一音高曲线依次进行音阶修正及调性修正之前,所述方法还包括:
根据歌词语义将所述第一音高曲线中音高连续段的起始点与所述第二音高曲线中音高连续段的起始点对齐。
根据本发明实施例的第二方面,提供一种音频修正装置,所述装置包括:
音频数据获取模块,用于获取第一音频数据;
音高曲线获取模块,用于获取第一音高曲线,所述第一音高曲线为所述第一音频数据的音高曲线;
音阶修正模块,用于根据第二音高曲线,对所述第一音高曲线进行音阶修正,其中所述第二音高曲线为与所述第一音频数据相对应的第二音频数据的音高曲线;
调性修正模块,用于根据第二音高曲线,对完成了音阶修正的第一音高曲线进行调性修正,以得到修正后的第一音高曲线;
音频数据还原模块,用于将修正后的第一音高曲线转换回音频信号,以得到修正后的第一音频数据。
可选的,所述音高曲线获取模块包括:
分帧子模块,用于对所述第一音频数据进行分帧;
基频提取子模块,用于提取分帧后得到的每帧数据的基频;
音高值转换子模块,用于将提取的每帧数据的基频转换为音高值;
曲线生成子模块,用于以各音高值作为曲线上的点得到所述第一音高曲线。
可选的,所述对所述第一音频数据进行分帧,包括:
根据所述第一音频数据的节奏进行分帧;或者,以固定时长为单位进行分帧。
可选的,所述音阶修正模块包括:
片段划分子模块,用于按照预设方式将所述第一音高曲线划分为多个片段,每个片段包含一个或多个音高连续段;
音阶调整子模块,用于通过获取每个片段与所述第二音高曲线相应部分在音高值上的差别、每个片段内各音高连续段与所述第二音高曲线相应部分在音高值上的差别,确定每个片段内各音高连续段偏离所述第二音高曲线的程度,以及,根据每个片段内各音高连续段偏离所述第二音高曲线的程度,对需要调整的音高连续段进行音阶调整,以使调整后的第一音高曲线与所述第二音高曲线在音阶上满足预设关系。
可选的,所述预设关系为:
调整后的第一音高曲线与所述第二音高曲线在相同的音阶范围内,或者,调整后的第一音高曲线与所述第二音高曲线相差固定的音阶。
可选的,所述通过获取每个片段与所述第二音高曲线相应部分在音高值上的差别、每个片段内各音高连续段与所述第二音高曲线相应部分在音高值上的差别,确定每个片段内各音高连续段偏离所述第二音高曲线的程度,包括:
对于每个片段,计算当前片段的第一均值以及当前片段内每个音高连续段的第二均值,其中第一均值为当前片段上各帧与第二音高曲线相应帧的音高差的总均值,第二均值为音高连续段上的各帧与第二音高曲线相应帧的音高差的均值;
基于音高连续段的第二均值与第一均值的比值,确定音高连续段偏离所述第二音高曲线的程度。
可选的,所述根据每个片段内各音高连续段偏离所述第二音高曲线的程度,对需要调整的音高连续段进行音阶调整,包括:
对于每个音高连续段,根据当前音高连续段偏离所述第二音高曲线的程度与预设阈值的关系,确定是否需要对当前音高连续段进行音阶调整;
当需要对当前音高连续段进行音阶调整时,向偏离的反方向调整当前音高连续段的音阶,直至当前音高连续段与所述第二音高曲线在音阶上满足所述预设关系。
可选的,所述调性修正模块包括:
第二音符折线获取子模块,用于获取第二音符折线,所述第二音符折线为对所述第二音频数据进行调性规整后得到的音符折线;
第一音符折线生成子模块,用于根据所述第二音符折线中每个折线段与所述第一音高曲线的高低位置关系,对所述第一音高曲线进行调性规整以得到第一音符折线;
平滑子模块,用于对所述第一音符折线进行平滑处理,将平滑处理后得到的曲线作为修正后的第一音高曲线。
可选的,所述获取第二音符折线,包括:
获取所述第二音频数据的调性;
通过计算所述第二音高曲线中每帧与临近音符在音高上的距离,将每帧的音高规整到距离最近的音符上以得到所述第二音符折线,其中所述第二音频数据的调性中未出现的音符不作为所述临近音符。
可选的,所述根据所述第二音符折线中每个折线段与所述第一音高曲线的高低位置关系,对所述第一音高曲线进行调性规整以得到第一音符折线,包括:
当第一音高曲线在第二音符折线的折线段以下或以上时,将第一音高曲线相应部分变换为折线段,此时第一音高曲线的折线段的音高值根据第二音符折线的折线段对应的第一音高曲线的中间帧音高值、第二音符折线的折线段对应的音高值以及第一音高曲线相应部分中的音高最大值而确定;
当第一音高曲线穿过第二音符折线的折线段时,将第一音高曲线相应部分变换为折线段,此时第一音高曲线的折线段的音高值为第二音符折线的折线段对应的音高值。
可选的,所述装置还包括:
反馈模块,用于将修正后的第一音频数据反馈给用户。
可选的,所述第一音频数据为用户所唱歌曲,所述第二音频数据为与所述第一音频数据对应的原唱歌曲;或者,所述第一音频数据为用户所演奏的纯音乐,所述第二音频数据为与第一音频数据对应的示范音乐。
可选的,当所述第一音频数据为用户所唱歌曲时,所述第一音频数据和所述第二音频数据均为清唱歌曲;当所述第一音频数据为用户所演奏的纯音乐时,所述第一音频数据和所述第二音频数据均为使用单一乐器所演奏的音乐。
可选的,当所述第一音频数据为用户所唱歌曲时,所述装置还包括:
对齐模块,用于在对所述第一音高曲线进行音阶修正及调性修正之前,根据歌词语义将所述第一音高曲线中音高连续段的起始点与所述第二音高曲线中音高连续段的起始点对齐。
本发明的实施例提供的技术方案可以包括以下有益效果:
在本发明实施例中,并不是对音频数据进行简单的替换,而是从音频数据的音高曲线入手,分别从音阶层面及调性层面对用户演唱歌曲等音频数据的音高曲线进行修正。音阶层面的修正可以将用户演唱歌曲音高曲线规整到与原唱歌曲音高曲线相同音阶范围内或相差一或多个音阶,而调性层面的修正则可以针对用户演唱歌曲音高曲线的起伏进行修正。本发明实施例中的方案可以使修正后的用户演唱歌曲音高曲线与原唱歌曲音高曲线的走势保持一致,并且用户演唱歌曲音高曲线的起伏相比修正前更接近原唱歌曲,从而大大提升了用户演唱歌曲的节奏感和听感,提升了对歌曲等音频数据的修正效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据本发明一示例性实施例示出的一种音频修正方法的流程图;
图2是根据本发明一示例性实施例示出的应用场景示意图;
图3是根据本发明一示例性实施例示出的应用场景示意图;
图4是根据本发明一示例性实施例示出的一种音频修正方法的流程图;
图5是根据本发明一示例性实施例示出的一种音频修正方法的流程图;
图6是根据本发明一示例性实施例示出的一种音频修正方法的流程图;
图7是根据本发明一示例性实施例示出的一种音频修正方法的流程图;
图8是根据本发明一示例性实施例示出的音高曲线示意图;
图9是根据本发明一示例性实施例示出的一种音频修正方法的流程图;
图10是根据本发明一示例性实施例示出的一种音频修正方法的流程图;
图11是根据本发明一示例性实施例示出的音高曲线示意图;
图12是根据本发明一示例性实施例示出的音高曲线示意图;
图13是根据本发明一示例性实施例示出的音高曲线示意图;
图14是根据本发明一示例性实施例示出的音高曲线示意图;
图15是根据本发明一示例性实施例示出的一种音频修正方法的流程图;
图16是根据本发明一示例性实施例示出的应用场景示意图;
图17是根据本发明一示例性实施例示出的一种音频修正装置的示意图;
图18是根据本发明一示例性实施例示出的一种音频修正装置的示意图;
图19是根据本发明一示例性实施例示出的一种音频修正装置的示意图;
图20是根据本发明一示例性实施例示出的一种音频修正装置的示意图;
图21是根据本发明一示例性实施例示出的一种音频修正装置的示意图;
图22是根据本发明一示例性实施例示出的一种音频修正装置的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据本发明一示例性实施例示出的一种音频修正方法的流程图。作为示例,该方法可用于手机、平板电脑、个人电脑等终端设备,也可用于服务器等。
参见图1所示,该方法可以包括如下步骤:
步骤S101,获取第一音频数据。
本实施例中所述的音频主要是指与音乐相关的音频,如纯音乐或者演唱的歌曲等。作为示例,本实施例中所述的第一音频数据可以为用户所唱歌曲,本实施例中所述的第二音频数据可以为用户所唱歌曲对应的原唱歌曲;或者,所述第一音频数据可以为用户所演奏的纯音乐,所述第二音频数据可以为与第一音频数据对应的示范音乐。
音乐是由不同频率的机械波复合而成,为了更符合人的听感,采用音高来描述音乐的频率。音高与人耳感知成线性关系,在现代音乐中,音高使用十二平均律来表示,音高对应的音符记为C,C#,D,D#,E,F,F#,G,G#,A,A#,B,其中“#”表示升半音。在演唱过程中,演唱者演唱歌曲的音高曲线的走势应该与乐谱中对应音符序列表示的音高曲线的走势一致,这样演唱出的歌曲音准才准确。同时除了音准之外,节奏也会影响到演唱歌曲的听感,如果演唱者演唱时的气息不平稳、有时唱的快、有时唱的慢,与乐谱节奏不对应,则会造成演唱歌曲听起来较奇怪,没有节奏感。普通用户由于未经过专业训练,所唱歌曲很可能出现上面这些问题,可以使用本实施例方法进行修正。
举例来讲,本实施例方法可以以应用软件(APP)的方式提供给用户,用户将该APP安装到手机上之后,在将所录的用户演唱歌曲发布之前,可以使用该APP对用户演唱歌曲进行修正,或者说是润色,然后再对外发布(例如上传到社交网站上)。作为示例可参见图2所示,在图2中,用户可以在该APP的界面中通过点击“录制歌曲”按钮来录制歌曲,通过“润色歌曲”按钮来对所录歌曲进行修正。
另外对所录歌曲的修正可以在用户的手机上直接进行,也可以将所唱歌曲发送给云端的服务器,参见图3所述,由服务器进行修正,然后再将修正后的歌曲发回给用户的手机,对此本实施例并不进行限制。
步骤S102,获取第一音高曲线,所述第一音高曲线为所述第一音频数据的音高曲线。
对于具体如何获取第一音高曲线本实施例并不进行限制,本领域技术人员可以根据不同需求\不同场景而自行设计,可以在此处使用的这些设计都没有背离本发明的精神和保护范围。
步骤S103,根据第二音高曲线,对所述第一音高曲线依次进行音阶修正及调性修正,以得到修正后的第一音高曲线,其中所述第二音高曲线为与所述第一音频数据相对应的第二音频数据的音高曲线。
第二音频数据是修正第一音频数据的基准,例如当第一音频数据为用户所唱歌曲时,则第二音频数据可以是对应的原唱歌曲。
作为示例,原唱歌曲通常可以是由专业歌手演唱的歌曲。而为了提升修正效果,优选的,所述用户所唱歌曲和所述原唱歌曲均为清唱歌曲。当然在其他情况下,如歌曲含有伴奏的情况下,可以先对歌曲进行预处理,以去掉伴奏或减弱伴奏,对于预处理的方式本实施例并不进行限制。原唱歌曲的音高曲线可以预先提取,也可以和用户演唱歌曲音高曲线一同提取,具体提取方法可以与用户演唱歌曲音高曲线的提取方法相同。类似的,当所述第一音频数据为用户所演奏的纯音乐时,所述第一音频数据和所述第二音频数据优选均为使用单一乐器所演奏的音乐。
需要说明的是,在本实施例中,以歌曲为例,默认用户所唱歌曲与原唱歌曲在时间上相差不远,即用户所唱歌曲不抢唱太多,也不唱慢太多,即基本上在时间上是对齐的。而对于与原唱歌曲在时间上相差过多的用户演唱歌曲,可以通过语义的方法将用户演唱歌曲的音高连续段与原唱歌曲的音高连续段的起始点对齐。换句话说,在本实施例或本发明其他某些实施例中,对所述第一音高曲线依次进行音阶修正及调性修正之前,所述方法还可以包括:
根据歌词语义将所述第一音高曲线中音高连续段的起始点与所述第二音高曲线中音高连续段的起始点对齐。
当然本领域技术人员也可以根据不同需求\不同场景而自行设计其他对齐方法,对此本实施例并不进行限制。
步骤S104,将修正后的第一音高曲线转换回音频信号,以得到修正后的第一音频数据。
作为示例,具体转换时,可以将修正后的第一音高曲线先转换为基频,然后通过逆傅里叶变换得到相应的音频信号,将音高修正前的音频信号进行高通滤波处理得到共振峰加强后的音频信号,为了重新引入修正后的声道特性,将共振峰加强后的音频信号与逆傅里叶变换后的音频信号进行混叠,最终得到修正后的第一音频数据。
参见图4所示,在本实施例或本发明其他某些实施例中,所述获取第一音高曲线,可以包括:
步骤S401,对所述第一音频数据进行分帧。
作为示例,所述对所述第一音频数据进行分帧,可以包括:
根据所述第一音频数据的节奏进行分帧,或者,以固定时长为单位进行分帧。
具体来讲,所述分帧可以使用基于beat tracking的分帧方法,将用户歌曲数据分为一系列小的beat帧,baet帧根据歌曲的节奏划分,从而可以避免固定时长分帧时出现帧长不足一段节奏或跨越多个节奏等情况。当然,也可以采用其它的分帧方法,如固定时长分帧方法,如40ms作为一帧对歌曲数据进行分帧。
步骤S402,提取分帧后得到的每帧数据的基频。
为了能够较好的从乐理角度对用户歌曲进行修正,本实施例根据基频与音高的转换关系,将每帧音频数据的基频值转换为音高,从而得到用户演唱歌曲音高曲线。
具体来讲,可以采用动态规划方法提取每帧歌曲数据的基频。为了避免计算自相关函数时共振峰的干扰,可以首先对歌曲数据进行低通滤波,再计算分帧后每帧音频数据傅里叶变换的自相关函数;然后根据每帧音频数据自相关函数计算结果,选择局部极大值作为每帧音频数据的侯选基频值;最后选择多帧音频数据的侯选基频值进行动态规划,根据动态规划得到的最优路径,确定每帧音频数据的基频值。
步骤S403,将提取的每帧数据的基频转换为音高值。
根据乐理知识,将基频转换为音高可以通过如下公式进行计算:
其中,f0为中心音符C所对应的频率,取值为440Hz,c0、c1为固定常数,F为每帧音频数据的基频值,s为转换后的音高值。
步骤S404,以各音高值作为曲线上的点得到所述第一音高曲线。
将各音高值连接起来,便可以得到第一音高曲线。
音阶即以全音、半音按照固定音程组织顺序排列的一串音,排列形式为梯形,如七声音阶;所述调性即多个音按照一定的关系(高低关系、稳定与不稳定的关系)联结在一起,构成以某一音为中心的体系。音高反映了人耳对音高的线性感知程度,根据乐理知识,通过音高值可以得到音高所在音阶及相应的音符,如音高值s=1时,表示中心音阶的音符D,记为其中的上标表示音阶编号,下标表示具体音符,则当s=-11时, 表示比中心音阶低一个八度的音符D;同理,当s=13时, 表示比中心音阶高一个八度的音符D。
音阶反应了音高的整体趋势,一首歌曲的音阶会在不同时刻发生变化,一般歌曲的主歌部分通常以叙事为主,音阶较低,而歌曲的副歌部分通常感情较丰富,音阶较高。经过训练的专业歌手通常能较好的控制整首歌曲的音阶,而普通用户经常无法做到这点,经常会出现音阶忽高忽低的情况,因此,需要对用户演唱歌曲进行音阶规整。音阶层面的修正,主要是根据原唱歌曲的音高曲线,修正用户演唱歌曲音高曲线所在音阶范围,使修正后的用户演唱歌曲与原唱歌曲保持在相同的音阶范围内或相差一或多个音阶,如用户演唱歌曲整体比原唱歌低一个音阶或高一个音阶。
对音阶进行修正的过程可参见图5所示,在本实施例或本发明其他某些实施例中,所述根据第二音高曲线,对所述第一音高曲线进行音阶修正,可以包括:
步骤S501,按照预设方式将所述第一音高曲线划分为多个片段,每个片段包含一个或多个音高连续段。
对于预设方式的具体内容本实施例并不进行限制,以歌曲为例,可以根据歌词以句为单位选择歌曲片段,每次可以选择一句或多句作为一个片段。一般中间不停顿就认为是一个音高连续段,一个片段可以包含一到多个音高连续段。
步骤S502,通过获取每个片段与所述第二音高曲线相应部分在音高值上的差别、每个片段内各音高连续段与所述第二音高曲线相应部分在音高值上的差别,确定每个片段内各音高连续段偏离所述第二音高曲线的程度,以及,
根据每个片段内各音高连续段偏离所述第二音高曲线的程度,对需要调整的音高连续段进行音阶调整,以使调整后的第一音高曲线与所述第二音高曲线在音阶上满足预设关系。
作为示例,所述预设关系可以为:
调整后的第一音高曲线与所述第二音高曲线在相同的音阶范围内,
或者,
调整后的第一音高曲线与所述第二音高曲线相差固定的音阶。
参见图6所示,在具体实施时,所述通过获取每个片段与所述第二音高曲线相应部分在音高值上的差别、每个片段内各音高连续段与所述第二音高曲线相应部分在音高值上的差别,确定每个片段内各音高连续段偏离所述第二音高曲线的程度,可以包括:
步骤S601,对于每个片段,计算当前片段的第一均值以及当前片段内每个音高连续段的第二均值,其中第一均值为当前片段上各帧与第二音高曲线相应帧的音高差的总均值,第二均值为音高连续段上的各帧与第二音高曲线相应帧的音高差的均值。
步骤S602,基于音高连续段的第二均值与第一均值的比值,确定音高连续段偏离所述第二音高曲线的程度。
参见图7所示,在具体实施时,所述根据每个片段内各音高连续段偏离所述第二音高曲线的程度,对需要调整的音高连续段进行音阶调整,可以包括:
步骤S701,对于每个音高连续段,根据当前音高连续段偏离所述第二音高曲线的程度与预设阈值的关系,确定是否需要对当前音高连续段进行音阶调整。
步骤S702,当需要对当前音高连续段进行音阶调整时,向偏离的反方向调整当前音高连续段的音阶,直至当前音高连续段与所述第二音高曲线在音阶上满足所述预设关系。
下面对图5~图7所涉及的具体计算过程进行进一步说明:
1)首先计算第一均值和第二均值。
第二均值,即第一音高曲线的音高连续段上的各帧与第二音高曲线相应帧的音高差的均值,可以通过如下公式进行计算:
其中,表示第一音高曲线当前片段与第二音高曲线相应片段中第i个音高连续段的音高差的均值,s″ij表示当前片段内第i个音高连续段内第j帧的音高值,s″ij表示第二音高曲线上与s″ij相对应的帧的音高值,ai与bi分别表示当前片段内第i个音高连续段的帧起始及帧结束位置。
第一均值,即当前片段上各帧与第二音高曲线相应帧的音高差的总均值,可以通过如下公式进行计算:
其中,μs”-s'表示当前片段上各帧与第二音高曲线上相应帧的音高差的总均值,k表示当前片段内音高连续段的总数,其他参数含义同上文。
2)然后计算每个片段中每个音高连续段偏离第二音高曲线的程度。
第二均值与第一均值的比值可以通过如下公式计算:
其中,Devi表示第二均值与第一均值的比值,用于指示第一音高曲线当前片段内第i个音高连续段相比于当前片段内所有音高连续段偏离第二音高曲线的程度。
3)再根据音高连续段偏离第二音高曲线的程度判断当前片段内每个音高连续段是否需要进行音阶规整,判断结果使用Ii表示,具体判断方法可以通过下式:
其中,Ii=1表示第i个音高连续段需要进行音阶规整,Ii=0表示第i个音高连续段不需要进行音阶规整。Ctolerance为音阶规整容忍度,也即预设阈值,Ctolerance>1,具体取值可以根据应用需求或实验结果而定。
4)最后,当需要对当前音高连续段进行音阶调整时,向偏离的反方向调整当前音高连续段的音阶,直至当前音高连续段与所述第二音高曲线在音阶上满足所述预设关系。
音阶调整方向包含正向音阶调整和反向音阶调整两种,可以通过下式确定当前片段内第i个音高连续段的音阶调整方向Diri:
如果Diri>0,说明第一音高曲线中的该音高连续段所在音阶高于第二音高曲线中相应的音高连续段所在音阶,则该音高连续段所在音阶需要降低,即对该音高连续段进行反向音阶规整,具体规整时,每次降低一个音阶后,重新计算降低音阶后的该音高连续段偏离第二音高曲线的程度,判断是否需要再次进行音阶规整,具体判断方法与式(5)相同,持续该过程直到不需要进行音阶规整为止;
如果Diri<0,说明第一音高曲线中的该音高连续段所在音阶低于第二音高曲线中相应的音高连续段所在音阶,则该音高连续段所在音阶需要增加,即对该音高连续段进行正向音阶规整,具体规整时,每次增加一个音阶后,重新计算增加音阶后的该音高连续段偏离第二音高曲线的程度,判断是否需要再次进行音阶规整,具体判断方法与式(5)相同,持续该过程直到不需要进行音阶规整为止。
最终规整后的第一音高曲线与作为标准的第二音高曲线保持在相同的音阶范围内或相差固定的音阶,一般第一音高曲线与第二音高曲线最多相差2个音阶。
作为示例,对音阶的规整可参见图8所示,在图8中以歌曲为例,横轴表示歌曲的帧数,纵轴表示每帧的音高值,I表示原唱歌曲片段的音高曲线,II和III分别表示比原唱歌曲片段高一个音阶和低一个音阶的音高曲线。图8中原唱音高曲线I保持在了同一个音阶范围内,而对于普通用户,在歌曲的转折部分,用户对于音阶走势的表现经常出现明显偏差,如图中,对音高曲线I,用户演唱的音高曲线经常会是曲线IV和曲线VII的组合,或者曲线VI和曲线VII的组合(VII表示用户演唱歌曲片段副歌部分音高曲线),这两种情况下,用户演唱音高连续段偏离原唱歌曲片段的程度较大,超过了音阶规整的容忍度,因此,需要进行音阶规整,最终规整后的结果为用户演唱音高曲线组合为曲线V和曲线VII的组合,与原唱歌曲保持在相同的音阶范围内。
对第一音高曲线进行音阶规整之后,第一音高曲线相对符合第二音高曲线的趋势,但在音高曲线的起伏上可能还存在一些差异,为了减小这些差异,需要从调性层面对第一音高曲线继续进行修正。
因此参见图9所示,在本实施例或本发明其他某些实施例中,所述根据第二音高曲线,对所述第一音高曲线进行调性修正,可以包括:
步骤S901,获取第二音符折线,所述第二音符折线为对所述第二音频数据进行调性规整后得到的音符折线。
步骤S902,根据所述第二音符折线中每个折线段与所述第一音高曲线的高低位置关系,对所述第一音高曲线进行调性规整以得到第一音符折线。
步骤S903,对所述第一音符折线进行平滑处理,将平滑处理后得到的曲线作为修正后的第一音高曲线。
作为示例,参见图10所示,在本实施例或本发明其他某些实施例中,所述获取第二音符折线,可以包括:
步骤S1001,获取所述第二音频数据的调性。
例如具体实现时,可以首先利用预先训练构建的调性检测模型对第二音频数据进行调性检测,得到其调性,其中调性检测模型可以通过预先收集大量音频如歌曲等数据训练得到,如采用贝叶斯模型描述调性检测模型。
步骤S1002,通过计算所述第二音高曲线中每帧与临近音符在音高上的距离,将每帧的音高规整到距离最近的音符上以得到所述第二音符折线,其中所述第二音频数据的调性中未出现的音符不作为所述临近音符。
以歌曲为例,如采用调性检测模型检测原唱歌曲的调性为C大调,在C大调歌曲中既无升调音符也无降调音符;然后根据调性检测结果对原唱歌曲进行调性规整,具体规整时,先计算音高曲线中每帧音高与临近音符音高的距离,将每帧音高规整到距离较近的音符上,需要说明的是,当前歌曲调性中不出现的音符不作为临近音符。
作为示例可参见图11所示,图11中实线为原唱音高曲线,横轴为歌曲的帧数,纵轴为每帧对应音符。在原唱音高曲线第100帧处的音高值距离音符Gb较近,如果原唱歌曲为C大调,而Gb音符在C大调中不出现,故计算距离时Gb忽略。经计算其中s100表示原唱歌曲音高曲线第100帧处的音高值,表示中心音阶的G音符,表示中心音阶的F音符,因此,s100被规整为这样依次对原唱歌曲音高曲线的每帧音高值进行规整,得到规整后的音符折线,如图11中虚线所示。
在本实施例或本发明其他某些实施例中,所述根据所述第二音符折线中每个折线段与所述第一音高曲线的高低位置关系,对所述第一音高曲线进行调性规整以得到第一音符折线,可以包括:
当第一音高曲线在第二音符折线的折线段以下或以上时,将第一音高曲线相应部分变换为折线段,此时第一音高曲线的折线段的音高值根据第二音符折线的折线段对应的第一音高曲线相应部分的中间帧音高值、第二音符折线的折线段对应的音高值以及第一音高曲线相应部分中的音高最大值而确定;
当第一音高曲线穿过第二音符折线的折线段时,将第一音高曲线相应部分变换为折线段,此时第一音高曲线的折线段的音高值为第二音符折线的折线段对应的音高值。
将第二音高曲线规整为一段段折线段的目的是使第一音高曲线可以根据第二音高曲线的各折线段也规整为一段段折线段。折线段的关键在于该折线段有多“高”,也即对应多少音高值。那么下面就对如何确定第一音高曲线的各折线段的音高值,也即如何根据所述第二音符折线中每个折线段与所述第一音高曲线的高低位置关系,对所述第一音高曲线进行调性规整以得到第一音符折线所涉及的具体计算过程进行进一步说明:
假设W'是第二音符折线中的一个折线段,W'对应的音符为音符X,第一音高曲线中与W'相对应的曲线段为V,V的帧起始和帧结束的位置分别为pl和ql,曲线段V最终将会被规整为折线段W”。
1)首先确定基础值。所要得到的第一音高曲线的折线段的音高值,也即W”的音高值,是通过在一个基础值上提升或降低某音高值而得到的。在这里以曲线段为V的中间帧音高值作为该基础值,即基础值为s(pl+ql)/2。
2)然后计算需要提升或降低的音高值。又分为三种情况:
情况1:曲线段V在W'之下。此时需要提升的音高值可以通过下式计算:
其中,Sup1表示需要提升的音高值。Samount为控制因子,具体取值可以实际应用需求或实验结果取值,如取值为0.5。表示音阶为y的音符X对应折线的音高值,也即第二音符折线的折线段对应的音高值。sl表示第一音高曲线第l帧的音高值。表示曲线段V中的音高最大值,也即第一音高曲线相应部分中的音高最大值。
情况2:曲线段V在W'之上。此时需要提升的音高值(此时实际为降低音高值,故需要提升的音高值为负)可以通过下式计算:
其中,Sup2表示需要提升的音高值(实际为负值)。
情况3:曲线段V穿过W'。此时不需要提升也不需要降低音高值。
3)最后基于基础值及需要提升或降低的音高值得到W”的音高值。
对于曲线段V在W'之下或之上的情况,根据以下公式计算:
Sformat=Sup+s(pl+ql)/2 (9)
其中,Sformat为W”的音高值,之下时Sup取Sup1,之上时Sup取Sup2。
而对于曲线段V穿过W'的情况,则W”的音高值直接取W'的音高值即可。
需要说明的是,以歌曲为例,如果音阶修正时将用户演唱歌曲音高曲线规整到与原唱歌曲音高曲线相差一或多个音阶,则在对用户演唱歌曲音高曲线进行调性规整前,需要先将得到的原唱歌曲的音符折线上移或下移到与用户演唱歌曲音高曲线相同的音阶范围内。如音阶修正后,用户演唱歌曲音高曲线比原唱歌曲音高曲线低一个音阶,则在对用户演唱歌曲音高曲线进行调性规整前,需要将原唱歌曲音高曲线相应音符折线下移一个音阶。
下面再结合图12对第一音高曲线进行调性规整的过程进行举例说明。在图12中,以歌曲为例,横轴为歌曲的帧数,纵轴为每帧对应音符,曲线为用户演唱歌曲音高曲线,虚折线为原唱歌曲音高曲线调性规整后得到的音符折线,实折线为用户演唱歌曲音高曲线调性规整后的得到折线。
例如:用户演唱歌曲音高曲线的第20帧至第65帧在原唱歌曲音符G对应折线以下,需要对用户演唱歌曲音高曲线对应音高值提升,根据提升后的音高值对用户演唱歌曲音高曲线进行调性规整,如第20帧到第65帧的实折线。
又例如:用户演唱歌曲音高曲线的第66帧至第92帧在原唱歌曲音符F对应折线以上,需要对用户演唱歌曲音高曲线进行反向提升,根据反向提升后的音高值对用户演唱歌曲音高曲线进行调性规整,如第66帧至第92帧的实折线。
再例如:用户演唱歌曲音高曲线的第159帧至212帧,用户演唱歌曲音高曲线穿过原唱音符F对应折线,则直接将该段用户演唱歌曲音高曲线规整为原唱音符F对应折线,如图中第159帧至212帧的实折线。
得到了第一音符折线(即用户演唱歌曲音高曲线调性规整后的折线)后,如何对第一音符折线进行平滑处理本实施例并不进行限制。例如可以通过如下方式:
可以采用插值的方法将第一音符折线平滑成曲线,插值方法可以为多项式插值、样条插值及其思想类似的插值方法。将插值后的音高值连接起来,即得到平滑后的第一音高曲线。
作为示例可参见图13。图13中以歌曲为例,横轴为歌曲的帧数,纵轴表示每帧的音高值,虚折线为原唱歌曲音高曲线调性规整后的音符折线,实折线为用户演唱歌曲音高曲线调性规整后的折线,曲线为根据实折线,使用插值方法得到平滑曲线,即用户演唱歌曲调性规整后的音高曲线。
作为示例图14展示出了原唱音高曲线与修正后的用户演唱音高曲线的对比,横轴为歌曲的帧数,纵轴表示每帧的音高值,虚线为原唱歌曲音高曲线,实线为音阶修正和调性修正后的音高曲线,由图中可以看出音阶修正将用户演唱歌曲音高曲线修正到与原唱歌曲音高曲线相同的音阶范围内,再经过调性修正使用户演唱歌曲音高曲线的起伏更明显,同时更接近原唱歌曲音高曲线,从而使修正后的用户演唱歌曲具有更好的节奏感。
此外,参见图15所示,得到修正后的第一音频数据之后,所述方法还可以包括:
步骤S1501,将修正后的第一音频数据反馈给用户。
参见图16所示,用户可以点击“试听歌曲”按钮,从而听到修正也即润色后的所录歌曲。
在本实施例中,并不是对音频数据进行简单的替换,而是从音频数据的音高曲线入手,分别从音阶层面及调性层面对用户演唱歌曲等音频数据的音高曲线进行修正。音阶层面的修正可以将用户演唱歌曲音高曲线规整到与原唱歌曲音高曲线相同的音阶范围内或相差一或多个音阶,而调性层面的修正则可以针对用户演唱歌曲音高曲线的起伏进行修正。本发明实施例中的方案可以使修正后的用户演唱歌曲音高曲线与原唱歌曲音高曲线的走势保持一致,并且用户演唱歌曲音高曲线的起伏相比修正前更接近原唱歌曲,从而大大提升了用户演唱歌曲的节奏感和听感,提升了对歌曲等音频数据的修正效果。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图17是根据本发明一示例性实施例示出的一种音频修正装置的示意图。参见图17所示,该装置可以包括:
音频数据获取模块1701,用于获取第一音频数据;
音高曲线获取模块1702,用于获取第一音高曲线,所述第一音高曲线为所述第一音频数据的音高曲线;
音阶修正模块1703,用于根据第二音高曲线,对所述第一音高曲线进行音阶修正,其中所述第二音高曲线为与所述第一音频数据相对应的第二音频数据的音高曲线;
调性修正模块1704,用于根据第二音高曲线,对完成了音阶修正的第一音高曲线进行调性修正,以得到修正后的第一音高曲线;
音频数据还原模块1705,用于将修正后的第一音高曲线转换回音频信号,以得到修正后的第一音频数据。
参见图18所示,在本实施例或本发明其他某些实施例中,所述音高曲线获取模块可以包括:
分帧子模块1801,用于对所述第一音频数据进行分帧;
基频提取子模块1802,用于提取分帧后得到的每帧数据的基频;
音高值转换子模块1803,用于将提取的每帧数据的基频转换为音高值;
曲线生成子模块1804,用于以各音高值作为曲线上的点得到所述第一音高曲线。
在本实施例或本发明其他某些实施例中,所述对所述第一音频数据进行分帧,可以包括:
根据所述第一音频数据的节奏进行分帧;或者,以固定时长为单位进行分帧。
参见图19所示,在本实施例或本发明其他某些实施例中,所述音阶修正模块可以包括:
片段划分子模块1901,用于按照预设方式将所述第一音高曲线划分为多个片段,每个片段包含一个或多个音高连续段;
音阶调整子模块1902,用于通过获取每个片段与所述第二音高曲线相应部分在音高值上的差别、每个片段内各音高连续段与所述第二音高曲线相应部分在音高值上的差别,确定每个片段内各音高连续段偏离所述第二音高曲线的程度,以及,根据每个片段内各音高连续段偏离所述第二音高曲线的程度,对需要调整的音高连续段进行音阶调整,以使调整后的第一音高曲线与所述第二音高曲线在音阶上满足预设关系。
在本实施例或本发明其他某些实施例中,所述预设关系为:
调整后的第一音高曲线与所述第二音高曲线在相同的音阶范围内,或者,调整后的第一音高曲线与所述第二音高曲线相差固定的音阶。
在本实施例或本发明其他某些实施例中,所述通过获取每个片段与所述第二音高曲线相应部分在音高值上的差别、每个片段内各音高连续段与所述第二音高曲线相应部分在音高值上的差别,确定每个片段内各音高连续段偏离所述第二音高曲线的程度,可以包括:
对于每个片段,计算当前片段的第一均值以及当前片段内每个音高连续段的第二均值,其中第一均值为当前片段上各帧与第二音高曲线相应帧的音高差的总均值,第二均值为音高连续段上的各帧与第二音高曲线相应帧的音高差的均值;
基于音高连续段的第二均值与第一均值的比值,确定音高连续段偏离所述第二音高曲线的程度。
在本实施例或本发明其他某些实施例中,所述根据每个片段内各音高连续段偏离所述第二音高曲线的程度,对需要调整的音高连续段进行音阶调整,可以包括:
对于每个音高连续段,根据当前音高连续段偏离所述第二音高曲线的程度与预设阈值的关系,确定是否需要对当前音高连续段进行音阶调整;
当需要对当前音高连续段进行音阶调整时,向偏离的反方向调整当前音高连续段的音阶,直至当前音高连续段与所述第二音高曲线在音阶上满足所述预设关系。
参见图20所示,在本实施例或本发明其他某些实施例中,所述调性修正模块可以包括:
第二音符折线获取子模块2001,用于获取第二音符折线,所述第二音符折线为对所述第二音频数据进行调性规整后得到的音符折线;
第一音符折线生成子模块2002,用于根据所述第二音符折线中每个折线段与所述第一音高曲线的高低位置关系,对所述第一音高曲线进行调性规整以得到第一音符折线;
平滑子模块2003,用于对所述第一音符折线进行平滑处理,将平滑处理后得到的曲线作为修正后的第一音高曲线。
在本实施例或本发明其他某些实施例中,所述获取第二音符折线,可以包括:
获取所述第二音频数据的调性;
通过计算所述第二音高曲线中每帧与临近音符在音高上的距离,将每帧的音高规整到距离最近的音符上以得到所述第二音符折线,其中所述第二音频数据的调性中未出现的音符不作为所述临近音符。
在本实施例或本发明其他某些实施例中,所述根据所述第二音符折线中每个折线段与所述第一音高曲线的高低位置关系,对所述第一音高曲线进行调性规整以得到第一音符折线,可以包括:
当第一音高曲线在第二音符折线的折线段以下或以上时,将第一音高曲线相应部分变换为折线段,此时第一音高曲线的折线段的音高值根据第二音符折线的折线段对应的第一音高曲线的中间帧音高值、第二音符折线的折线段对应的音高值以及第一音高曲线相应部分中的音高最大值而确定;
当第一音高曲线穿过第二音符折线的折线段时,将第一音高曲线相应部分变换为折线段,此时第一音高曲线的折线段的音高值为第二音符折线的折线段对应的音高值。
参见图21所示,在本实施例或本发明其他某些实施例中,所述装置还可以包括:
反馈模块2101,用于将修正后的第一音频数据反馈给用户。
在本实施例或本发明其他某些实施例中,所述第一音频数据为用户所唱歌曲,所述第二音频数据为与所述第一音频数据对应的原唱歌曲;或者,所述第一音频数据为用户所演奏的纯音乐,所述第二音频数据为与第一音频数据对应的示范音乐。
在本实施例或本发明其他某些实施例中,当所述第一音频数据为用户所唱歌曲时,所述第一音频数据和所述第二音频数据均为清唱歌曲;当所述第一音频数据为用户所演奏的纯音乐时,所述第一音频数据和所述第二音频数据均为使用单一乐器所演奏的音乐。
参见图22所示,在本实施例或本发明其他某些实施例中,当所述第一音频数据为用户所唱歌曲时,所述装置还可以包括:
对齐模块2201,用于在对所述第一音高曲线进行音阶修正及调性修正之前,根据歌词语义将所述第一音高曲线中音高连续段的起始点与所述第二音高曲线中音高连续段的起始点对齐。
在本实施例中,并不是对音频数据进行简单的替换,而是从音频数据的音高曲线入手,分别从音阶层面及调性层面对用户演唱歌曲等音频数据的音高曲线进行修正。音阶层面的修正可以将用户演唱歌曲音高曲线规整到与原唱歌曲音高曲线相同的音阶范围内或相差一或多个音阶,而调性层面的修正则可以针对用户演唱歌曲音高曲线的起伏进行修正。本发明实施例中的方案可以使修正后的用户演唱歌曲音高曲线与原唱歌曲音高曲线的走势保持一致,并且用户演唱歌曲音高曲线的起伏相比修正前更接近原唱歌曲,从而大大提升了用户演唱歌曲的节奏感和听感,提升了对歌曲等音频数据的修正效果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (26)
1.一种音频修正方法,其特征在于,所述方法包括:
获取第一音频数据;
获取第一音高曲线,所述第一音高曲线为所述第一音频数据的音高曲线;
根据第二音高曲线,对所述第一音高曲线依次进行音阶修正及调性修正,以得到修正后的第一音高曲线,其中所述第二音高曲线为与所述第一音频数据相对应的第二音频数据的音高曲线;
将修正后的第一音高曲线转换回音频信号,以得到修正后的第一音频数据;其中,
所述第一音频数据为用户所唱歌曲,所述第二音频数据为与所述第一音频数据对应的原唱歌曲;或者,所述第一音频数据为用户所演奏的纯音乐,所述第二音频数据为与第一音频数据对应的示范音乐;
所述音阶修正是将所述第一音高曲线调整到与所述第二音高曲线相同音阶范围内或相差一或多个音阶;
所述调性修正是根据所述第一音高曲线与第二音符折线的高低位置关系进行修正,所述第二音符折线为对所述第二音频数据进行调性规整后得到的音符折线。
2.根据权利要求1所述的方法,其特征在于,所述获取第一音高曲线,包括:
对所述第一音频数据进行分帧;
提取分帧后得到的每帧数据的基频;
将提取的每帧数据的基频转换为音高值;
以各音高值作为曲线上的点得到所述第一音高曲线。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一音频数据进行分帧,包括:
根据所述第一音频数据的节奏进行分帧;
或者,
以固定时长为单位进行分帧。
4.根据权利要求1所述的方法,其特征在于,所述根据第二音高曲线,对所述第一音高曲线进行音阶修正,包括:
按照预设方式将所述第一音高曲线划分为多个片段,每个片段包含一个或多个音高连续段;
通过获取每个片段与所述第二音高曲线相应部分在音高值上的差别、每个片段内各音高连续段与所述第二音高曲线相应部分在音高值上的差别,确定每个片段内各音高连续段偏离所述第二音高曲线的程度,以及,
根据每个片段内各音高连续段偏离所述第二音高曲线的程度,对需要调整的音高连续段进行音阶调整,以使调整后的第一音高曲线与所述第二音高曲线在音阶上满足预设关系。
5.根据权利要求4所述的方法,其特征在于,所述预设关系为:
调整后的第一音高曲线与所述第二音高曲线在相同的音阶范围内,
或者,
调整后的第一音高曲线与所述第二音高曲线相差固定的音阶。
6.根据权利要求4所述的方法,其特征在于,所述通过获取每个片段与所述第二音高曲线相应部分在音高值上的差别、每个片段内各音高连续段与所述第二音高曲线相应部分在音高值上的差别,确定每个片段内各音高连续段偏离所述第二音高曲线的程度,包括:
对于每个片段,计算当前片段的第一均值以及当前片段内每个音高连续段的第二均值,其中第一均值为当前片段上各帧与第二音高曲线相应帧的音高差的总均值,第二均值为音高连续段上的各帧与第二音高曲线相应帧的音高差的均值;
基于音高连续段的第二均值与第一均值的比值,确定音高连续段偏离所述第二音高曲线的程度。
7.根据权利要求4所述的方法,其特征在于,所述根据每个片段内各音高连续段偏离所述第二音高曲线的程度,对需要调整的音高连续段进行音阶调整,包括:
对于每个音高连续段,根据当前音高连续段偏离所述第二音高曲线的程度与预设阈值的关系,确定是否需要对当前音高连续段进行音阶调整;
当需要对当前音高连续段进行音阶调整时,向偏离的反方向调整当前音高连续段的音阶,直至当前音高连续段与所述第二音高曲线在音阶上满足所述预设关系。
8.根据权利要求1所述的方法,其特征在于,所述根据第二音高曲线,对所述第一音高曲线进行调性修正,包括:
获取第二音符折线,所述第二音符折线为对所述第二音频数据进行调性规整后得到的音符折线;
根据所述第二音符折线中每个折线段与所述第一音高曲线的高低位置关系,对所述第一音高曲线进行调性规整以得到第一音符折线;
对所述第一音符折线进行平滑处理,将平滑处理后得到的曲线作为修正后的第一音高曲线。
9.根据权利要求8所述的方法,其特征在于,所述获取第二音符折线,包括:
获取所述第二音频数据的调性;
通过计算所述第二音高曲线中每帧与临近音符在音高上的距离,将每帧的音高规整到距离最近的音符上以得到所述第二音符折线,其中所述第二音频数据的调性中未出现的音符不作为所述临近音符。
10.根据权利要求8所述的方法,其特征在于,所述根据所述第二音符折线中每个折线段与所述第一音高曲线的高低位置关系,对所述第一音高曲线进行调性规整以得到第一音符折线,包括:
当第一音高曲线在第二音符折线的折线段以下或以上时,将第一音高曲线相应部分变换为折线段,此时第一音高曲线的折线段的音高值根据第二音符折线的折线段对应的第一音高曲线相应部分的中间帧音高值、第二音符折线的折线段对应的音高值以及第一音高曲线相应部分中的音高最大值而确定;
当第一音高曲线穿过第二音符折线的折线段时,将第一音高曲线相应部分变换为折线段,此时第一音高曲线的折线段的音高值为第二音符折线的折线段对应的音高值。
11.根据权利要求1所述的方法,其特征在于,得到修正后的第一音频数据之后,所述方法还包括:
将修正后的第一音频数据反馈给用户。
12.根据权利要求11所述的方法,其特征在于,当所述第一音频数据为用户所唱歌曲时,所述第一音频数据和所述第二音频数据均为清唱歌曲;
当所述第一音频数据为用户所演奏的纯音乐时,所述第一音频数据和所述第二音频数据均为使用单一乐器所演奏的音乐。
13.根据权利要求11所述的方法,其特征在于,当所述第一音频数据为用户所唱歌曲时,对所述第一音高曲线依次进行音阶修正及调性修正之前,所述方法还包括:
根据歌词语义将所述第一音高曲线中音高连续段的起始点与所述第二音高曲线中音高连续段的起始点对齐。
14.一种音频修正装置,其特征在于,所述装置包括:
音频数据获取模块,用于获取第一音频数据;
音高曲线获取模块,用于获取第一音高曲线,所述第一音高曲线为所述第一音频数据的音高曲线;
音阶修正模块,用于根据第二音高曲线,对所述第一音高曲线进行音阶修正,其中所述第二音高曲线为与所述第一音频数据相对应的第二音频数据的音高曲线;
调性修正模块,用于根据第二音高曲线,对完成了音阶修正的第一音高曲线进行调性修正,以得到修正后的第一音高曲线;
音频数据还原模块,用于将修正后的第一音高曲线转换回音频信号,以得到修正后的第一音频数据;其中,
所述第一音频数据为用户所唱歌曲,所述第二音频数据为与所述第一音频数据对应的原唱歌曲;或者,所述第一音频数据为用户所演奏的纯音乐,所述第二音频数据为与第一音频数据对应的示范音乐;
所述音阶修正是将所述第一音高曲线调整到与所述第二音高曲线相同音阶范围内或相差一或多个音阶;
所述调性修正是根据所述第一音高曲线与第二音符折线的高低位置关系进行修正,所述第二音符折线为对所述第二音频数据进行调性规整后得到的音符折线。
15.根据权利要求14所述的装置,其特征在于,所述音高曲线获取模块包括:
分帧子模块,用于对所述第一音频数据进行分帧;
基频提取子模块,用于提取分帧后得到的每帧数据的基频;
音高值转换子模块,用于将提取的每帧数据的基频转换为音高值;
曲线生成子模块,用于以各音高值作为曲线上的点得到所述第一音高曲线。
16.根据权利要求15所述的装置,其特征在于,所述对所述第一音频数据进行分帧,包括:
根据所述第一音频数据的节奏进行分帧;或者,以固定时长为单位进行分帧。
17.根据权利要求14所述的装置,其特征在于,所述音阶修正模块包括:
片段划分子模块,用于按照预设方式将所述第一音高曲线划分为多个片段,每个片段包含一个或多个音高连续段;
音阶调整子模块,用于通过获取每个片段与所述第二音高曲线相应部分在音高值上的差别、每个片段内各音高连续段与所述第二音高曲线相应部分在音高值上的差别,确定每个片段内各音高连续段偏离所述第二音高曲线的程度,以及,根据每个片段内各音高连续段偏离所述第二音高曲线的程度,对需要调整的音高连续段进行音阶调整,以使调整后的第一音高曲线与所述第二音高曲线在音阶上满足预设关系。
18.根据权利要求17所述的装置,其特征在于,所述预设关系为:
调整后的第一音高曲线与所述第二音高曲线在相同的音阶范围内,或者,调整后的第一音高曲线与所述第二音高曲线相差固定的音阶。
19.根据权利要求17所述的装置,其特征在于,所述通过获取每个片段与所述第二音高曲线相应部分在音高值上的差别、每个片段内各音高连续段与所述第二音高曲线相应部分在音高值上的差别,确定每个片段内各音高连续段偏离所述第二音高曲线的程度,包括:
对于每个片段,计算当前片段的第一均值以及当前片段内每个音高连续段的第二均值,其中第一均值为当前片段上各帧与第二音高曲线相应帧的音高差的总均值,第二均值为音高连续段上的各帧与第二音高曲线相应帧的音高差的均值;
基于音高连续段的第二均值与第一均值的比值,确定音高连续段偏离所述第二音高曲线的程度。
20.根据权利要求17所述的装置,其特征在于,所述根据每个片段内各音高连续段偏离所述第二音高曲线的程度,对需要调整的音高连续段进行音阶调整,包括:
对于每个音高连续段,根据当前音高连续段偏离所述第二音高曲线的程度与预设阈值的关系,确定是否需要对当前音高连续段进行音阶调整;
当需要对当前音高连续段进行音阶调整时,向偏离的反方向调整当前音高连续段的音阶,直至当前音高连续段与所述第二音高曲线在音阶上满足所述预设关系。
21.根据权利要求14所述的装置,其特征在于,所述调性修正模块包括:
第二音符折线获取子模块,用于获取第二音符折线,所述第二音符折线为对所述第二音频数据进行调性规整后得到的音符折线;
第一音符折线生成子模块,用于根据所述第二音符折线中每个折线段与所述第一音高曲线的高低位置关系,对所述第一音高曲线进行调性规整以得到第一音符折线;
平滑子模块,用于对所述第一音符折线进行平滑处理,将平滑处理后得到的曲线作为修正后的第一音高曲线。
22.根据权利要求21所述的装置,其特征在于,所述获取第二音符折线,包括:
获取所述第二音频数据的调性;
通过计算所述第二音高曲线中每帧与临近音符在音高上的距离,将每帧的音高规整到距离最近的音符上以得到所述第二音符折线,其中所述第二音频数据的调性中未出现的音符不作为所述临近音符。
23.根据权利要求21所述的装置,其特征在于,所述根据所述第二音符折线中每个折线段与所述第一音高曲线的高低位置关系,对所述第一音高曲线进行调性规整以得到第一音符折线,包括:
当第一音高曲线在第二音符折线的折线段以下或以上时,将第一音高曲线相应部分变换为折线段,此时第一音高曲线的折线段的音高值根据第二音符折线的折线段对应的第一音高曲线的中间帧音高值、第二音符折线的折线段对应的音高值以及第一音高曲线相应部分中的音高最大值而确定;
当第一音高曲线穿过第二音符折线的折线段时,将第一音高曲线相应部分变换为折线段,此时第一音高曲线的折线段的音高值为第二音符折线的折线段对应的音高值。
24.根据权利要求14所述的装置,其特征在于,所述装置还包括:
反馈模块,用于将修正后的第一音频数据反馈给用户。
25.根据权利要求14所述的装置,其特征在于,当所述第一音频数据为用户所唱歌曲时,所述第一音频数据和所述第二音频数据均为清唱歌曲;
当所述第一音频数据为用户所演奏的纯音乐时,所述第一音频数据和所述第二音频数据均为使用单一乐器所演奏的音乐。
26.根据权利要求14所述的装置,其特征在于,当所述第一音频数据为用户所唱歌曲时,所述装置还包括:
对齐模块,用于在对所述第一音高曲线进行音阶修正及调性修正之前,根据歌词语义将所述第一音高曲线中音高连续段的起始点与所述第二音高曲线中音高连续段的起始点对齐。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610425682.XA CN106057208B (zh) | 2016-06-14 | 2016-06-14 | 一种音频修正方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610425682.XA CN106057208B (zh) | 2016-06-14 | 2016-06-14 | 一种音频修正方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106057208A CN106057208A (zh) | 2016-10-26 |
CN106057208B true CN106057208B (zh) | 2019-11-15 |
Family
ID=57168218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610425682.XA Active CN106057208B (zh) | 2016-06-14 | 2016-06-14 | 一种音频修正方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106057208B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268530B (zh) * | 2016-12-30 | 2022-04-29 | 阿里巴巴集团控股有限公司 | 一种歌词的配乐生成方法和相关装置 |
CN106970950B (zh) * | 2017-03-07 | 2021-08-24 | 腾讯音乐娱乐(深圳)有限公司 | 相似音频数据的查找方法及装置 |
CN107025902B (zh) * | 2017-05-08 | 2020-10-09 | 腾讯音乐娱乐(深圳)有限公司 | 数据处理方法及装置 |
CN107800879A (zh) * | 2017-10-23 | 2018-03-13 | 努比亚技术有限公司 | 一种音频调整方法、终端及计算机可读存储介质 |
CN108257613B (zh) * | 2017-12-05 | 2021-12-10 | 北京小唱科技有限公司 | 修正音频内容音高偏差的方法及装置 |
CN108206026B (zh) * | 2017-12-05 | 2021-12-03 | 北京小唱科技有限公司 | 确定音频内容音高偏差的方法及装置 |
CN108257609A (zh) * | 2017-12-05 | 2018-07-06 | 北京小唱科技有限公司 | 音频内容修正的方法及其智能装置 |
CN108281130B (zh) * | 2018-01-19 | 2021-02-09 | 北京小唱科技有限公司 | 音频修正方法及装置 |
CN108172232A (zh) * | 2018-01-19 | 2018-06-15 | 北京小唱科技有限公司 | 音频修正方法及装置 |
CN108810241B (zh) * | 2018-04-03 | 2020-12-18 | 北京小唱科技有限公司 | 基于音频数据的修音展示方法及装置 |
CN108766452B (zh) * | 2018-04-03 | 2020-11-06 | 北京小唱科技有限公司 | 修音方法及装置 |
CN108810075B (zh) * | 2018-04-11 | 2020-12-18 | 北京小唱科技有限公司 | 基于服务器端实现的音频修正系统 |
CN108597527B (zh) * | 2018-04-19 | 2020-01-24 | 北京微播视界科技有限公司 | 多声道音频处理方法、装置、计算机可读存储介质和终端 |
CN111383646B (zh) * | 2018-12-28 | 2020-12-08 | 广州市百果园信息技术有限公司 | 一种语音信号变换方法、装置、设备和存储介质 |
CN109741723A (zh) * | 2018-12-29 | 2019-05-10 | 广州小鹏汽车科技有限公司 | 一种卡拉ok音效优化方法及卡拉ok装置 |
CN109979483B (zh) * | 2019-03-29 | 2020-11-03 | 广州市百果园信息技术有限公司 | 音频信号的旋律检测方法、装置以及电子设备 |
CN110074780A (zh) * | 2019-04-25 | 2019-08-02 | 内蒙古农业大学 | 一种基于erp技术的音乐模式调节方法 |
CN110099183B (zh) * | 2019-05-06 | 2021-09-17 | 湖南国科微电子股份有限公司 | 一种音频数据处理装置、方法以及通话设备 |
CN112435680A (zh) * | 2019-08-08 | 2021-03-02 | 北京字节跳动网络技术有限公司 | 音频处理方法、装置、电子设备及计算机可读存储介质 |
CN111081265B (zh) * | 2019-12-26 | 2023-01-03 | 广州酷狗计算机科技有限公司 | 音高处理方法、装置、设备及存储介质 |
CN112309410A (zh) * | 2020-10-30 | 2021-02-02 | 北京有竹居网络技术有限公司 | 一种歌曲修音方法、装置、电子设备及存储介质 |
CN112365868A (zh) * | 2020-11-17 | 2021-02-12 | 北京达佳互联信息技术有限公司 | 声音处理方法、装置、电子设备及存储介质 |
CN113392259B (zh) * | 2021-05-14 | 2022-11-29 | 深圳航天科技创新研究院 | 声音刺激样本选择方法、控制设备及存储介质 |
CN113470699B (zh) * | 2021-09-03 | 2022-01-11 | 北京奇艺世纪科技有限公司 | 一种音频处理方法、装置、电子设备及可读存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008095190A2 (en) * | 2007-02-01 | 2008-08-07 | Museami, Inc. | Music transcription |
US9330720B2 (en) * | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
WO2010115298A1 (zh) * | 2009-04-07 | 2010-10-14 | Lin Wen Hsin | 卡拉ok歌曲伴唱自动评分方法 |
TWI473078B (zh) * | 2011-08-26 | 2015-02-11 | Univ Nat Central | 音訊處理方法以及裝置 |
CN103839559B (zh) * | 2012-11-20 | 2017-07-14 | 华为技术有限公司 | 音频文件制作方法及终端设备 |
CN104575508B (zh) * | 2013-10-15 | 2018-07-13 | 京微雅格(北京)科技有限公司 | 一种音频信号变调的处理方法及其装置 |
CN103987001A (zh) * | 2014-05-28 | 2014-08-13 | 深圳市金立通信设备有限公司 | 一种音频修正的方法及装置 |
CN104200818A (zh) * | 2014-08-06 | 2014-12-10 | 重庆邮电大学 | 一种音高检测方法 |
CN105206280A (zh) * | 2015-09-14 | 2015-12-30 | 联想(北京)有限公司 | 一种信息处理方法和电子设备 |
-
2016
- 2016-06-14 CN CN201610425682.XA patent/CN106057208B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106057208A (zh) | 2016-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106057208B (zh) | 一种音频修正方法及装置 | |
WO2021218138A1 (zh) | 歌曲合成方法、装置、设备及存储介质 | |
US9847078B2 (en) | Music performance system and method thereof | |
JP6735100B2 (ja) | 音楽コンテンツ及びリアルタイム音楽伴奏の自動採譜 | |
CN104347080B (zh) | 语音分析方法和装置、语音合成方法和装置、以及存储语音分析程序的介质 | |
Gómez et al. | Towards computer-assisted flamenco transcription: An experimental comparison of automatic transcription algorithms as applied to a cappella singing | |
US9818396B2 (en) | Method and device for editing singing voice synthesis data, and method for analyzing singing | |
Dittmar et al. | Music information retrieval meets music education | |
CN108206026B (zh) | 确定音频内容音高偏差的方法及装置 | |
Nakano et al. | VocaListener: A singing-to-singing synthesis system based on iterative parameter estimation | |
US20060165240A1 (en) | Methods and apparatus for use in sound modification | |
Umbert et al. | Expression control in singing voice synthesis: Features, approaches, evaluation, and challenges | |
WO2017058387A1 (en) | Automatic composer | |
CN109923609A (zh) | 用于音调轨道生成的众包技术 | |
JP2008529078A (ja) | 音響的特徴の同期化された修正のための方法及び装置 | |
CN112951198A (zh) | 歌声合成 | |
CN105957515A (zh) | 声音合成方法、声音合成装置和存储声音合成程序的介质 | |
CN103915093A (zh) | 一种实现语音歌唱化的方法和装置 | |
Arzt et al. | Artificial intelligence in the concertgebouw | |
CN103903628A (zh) | 基于音频输入的动态调适音调校正 | |
TWI742486B (zh) | 輔助歌唱系統、輔助歌唱方法及其非暫態電腦可讀取記錄媒體 | |
Cho | Improved techniques for automatic chord recognition from music audio signals | |
CN109416911B (zh) | 声音合成装置及声音合成方法 | |
Umbert et al. | Generating singing voice expression contours based on unit selection | |
d'Alessandro et al. | Drawing melodies: Evaluation of chironomic singing synthesis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |