一种歌曲的合成方法及终端技术领域
本发明涉及互联网技术领域,尤其涉及一种歌曲的合成方法及终端。
背景技术
随着通信及信息技术的高速发展,手机也日渐普及,其功能也日益增加,各种音乐
类产品也应运而生,特别是K歌类音乐产品,其中,用户可通过K歌类进行录制歌曲,并分享
录制歌曲。
目前,用户在通过K歌类音乐产品进行录制歌曲时,大都是用户选择相应的音乐伴
奏并跟随音乐伴奏及字幕进行演唱录制。但是,有些用户由于自身演唱水平不高而导致用
户不满意其所录制的歌曲,从而降低了用户使用K歌类音乐产品进行分享录制歌曲的热情。
发明内容
本发明实施例所要解决的技术问题在于,提供一种歌曲合成方法及终端。可使得
终端可仅根据用户的音频数据即能合成歌曲,提高录制歌曲的效果,并提高用户体验度。
本发明实施例第一方面提供了一种歌曲的合成方法,可包括:
对用户输入的音频数据进行识别,获取预置歌词信息中每个文字对应的文字音频
数据;
获取所述歌词信息对应的乐谱信息;
按所述乐谱信息对所述每个文字对应的文字音频数据进行合成,获得歌曲音频数
据。
本发明实施例第二方面提供了一种终端,可包括:
第一获取单元,用于对用户输入的音频数据进行识别,获取预置歌词信息中每个
文字对应的文字音频数据;
第二获取单元,用于获取所述歌词信息对应的乐谱信息;
合成单元,用于按所述乐谱信息对所述每个文字对应的文字音频数据进行合成,
获得歌曲音频数据。
在本发明实施例中,终端对用户输入的音频数据进行识别,获取预置歌词信息中
每个文字对应的文字音频数据,获取所述歌词信息对应的乐谱信息,按所述乐谱信息对所
述每个文字对应的文字音频数据进行合成,获得歌曲音频数据,使得终端可仅根据用户的
音频数据即能合成歌曲,提高录制歌曲的效果,并提高用户体验度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
图1是本发明实施例提供的一种网络构架示意图;
图2是本发明实施例提供的一种歌曲的合成方法的流程示意图;
图3是本发明实施例提供的一种终端的结构示意图;
图4是本发明实施例提供的另一种终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
本发明实施例提供的一种歌曲的合成方法可以应用于终端录制歌曲的场景。
在本发明实施例中,所描述的终端可包括:手机、平板电脑、掌上电脑或者移动互
联网设备(Mobile Internet Device,MID)等,上述终端仅是举例,而非穷举,包含但不限于
上述终端。
为了更好理解本发明实施例公开的方案,下面先对本发明实施例适用的网络构架
进行描述。请参阅图1,图1是本发明实施例公开的一种网络构架示意图。在图1所示的网络
构架中,可以包括终端和歌曲服务器,终端可以通过网络与歌曲服务器进行连接,终端可向
歌曲服务器请求获取数据。
基于图1所示的网络构架,本发明实施例公开了一种歌曲的合成方法。下面将结合
附图2,对本发明实施例提供的一种歌曲的合成方法进行详细介绍,其中,实施例的执行主
体为终端。
参见图2,是本发明实施例提供的一种歌曲的合成方法一种实施例流程示意图。本
发明实施例的一种歌曲的合成方法包括如下步骤:
S100,对用户输入的音频数据进行识别,获取预置歌词信息中每个文字对应的文
字音频数据。
在本发明实施例中,当用户需通过自身语音进行合成歌曲时,用户可操作终端输
入合成歌曲指令,其中,指令可携带歌曲标识。当终端接收到合成歌曲指令时,终端可根据
歌曲标识获取歌曲标识对应的歌曲的歌词信息,并显示歌词信息,以使用户根据终端显示
的歌词信息进行朗读,以向终端输入音频数据。同时,当终端接收到合成歌曲指令时,终端
可开启终端内置的麦克风,通过麦克风采集用户针对显示的歌词信息进行输入的音频数据
从而获取音频数据。其中,歌词信息可以是一句歌词或多句歌词,在此不进行限制。
在本发明实施例中,当终端获取到音频数据后,终端可对音频数据进行识别,获得
歌词信息所包括的每个文字对应的文字音频。具体的,终端可对音频数据的音素进行识别
切分,获得歌词信息中所包括的每个文字对应的文字音频数据。
在本发明实施例中,终端对音频数据的音素进行识别切分,获得歌词信息中所包
括的每个文字对应的文字音频数据具体可以是:终端首先收集大量语料,对语料进行切分
为音素,为每个音素进行训练模型获得音素模型,其中,模型可以是GMM-HMM模型,或者DNN-
HMM模型等,在此不进行限制。其中,由于每个音素的具体发音情况受到上下文的影响,因
此,终端在训练模型的时候可把不同上下文的因素分开训练,如同样是音素a,在不同上下
文环境中,如n-a+m(表示在此语料中a音素前面的音素是音素n,后面的音素是m)、k-a+m这
两个同一音素在实际情况下是训练成两个模型的,这样的话,如果音素总数是n个的话,实
际训练的模型数是n^3(由于训练集可能不够,所以会让一些比较难出现的音素映射到其他
音素的模型上)。
在本发明实施例中,当终端对音素进行训练后,终端可将歌词信息所包括的文字
转换为音素序列,比如文字内容“我们”转成的音素序列为sil-w+o w-o+m m-en+sil(其中
sil表示静音),之后终端可以将该音素序列输入至上述所生成的音素模型中,获得音素模
型序列。
在本发明实施例中,终端可将音频数据进行分帧,并对每帧的音频数据进行特征
提取,获得每帧的音频特征。当获得每帧的音频特征后,终端可将每帧的音频特征输入至上
述获得的音素模型序列中进行计算计算置信度,其中,一个音素模型序列可以对应多帧的
音频特征,每一帧的音频特征与一个音素模型序列都可以算出一个0~1的匹配度,由于按
顺序经过音素模型序列进行计算,故终端最终可以得到一条与所有帧的音频特征匹配度最
大化的路径,即是最优路径。具体可如:有5帧音频特征,有两个音素模型序列,则一共可能
有5种不同的路径,分别是(5,0)(表示5帧的语音特征对应音素模型序列1,0帧对应音素模
型序列2,此中情况的总置信度就是5帧的语音特征中的每一帧的语音特征与音素模型序列
1的匹配度的乘积)、(4,1)…,最后根据最优路径终端可获取用户在什么时间读了哪个音
素,因此终端将音素合并后即可获得用户读取每个文字所对应的时间信息,从而终端可根
据每个文字所对应的时间信息对获取到的音频数据进行切分,获取歌词信息中的每个文字
所对应的文字音频数据。其中,每个文字所对应的文字音频数据xii∈[1,n],其中n为该句
的字数。
S101,获取所述歌词信息对应的乐谱信息。
终端可获取歌词信息对应的歌曲标识,根据歌曲标识获取歌曲标识对应的乐谱信
息,其中,乐谱信息可以是MIDI(Musical Instrument Digital Interface,乐器数字接口)
文件,MIDI文件包括目标歌曲对应的歌词信息中的每个文字对应的音符的起始时间和持续
时间以及每个音符的音高值,具体的,可参见下表一所示的乐谱信息。
表一
表一第一列所示的为歌词信息所包括的文字,如表一所示,歌词信息包括的文字
为“明朝清风”,表一第二列所示音符为每个文字所对应的音符,其中,歌词信息中的大部分
文字在歌曲音频数据中只有一个音符,但是也有一个文字在歌曲音频数据中有多个音符
(在歌曲中一个字的也会变调),如表一中的乐谱信息显示歌词中的“清”字对应的歌曲音频
数据包括两个频率69和67,即是两个音符,其中每个音符都有各自对应的时间信息,两个音
符加起来的时间信息就是“清”字对应的歌曲音频的时间信息。
S102,按所述乐谱信息对所述歌词所包括的每个文字对应的文字音频数据进行合
成,获得歌曲音频数据。
在本发明实施例中,当终端获取到歌词信息所包括的每个文字所对应的文字音频
数据,终端可按乐谱信息记录的每个文字在歌曲音频数据中的时间信息以及音符对每个文
字的文字音频数据进行拉伸处理,获得每个文字对应的第一文字音频数据。
其中,终端按乐谱信息记录的每个文字在歌曲音频数据中的时间信息以及音符对
每个文字的文字音频数据进行拉伸处理,获得每个文字对应的第一文字音频数据具体可以
是:首先,终端获取每个文字对应的文字音频数据的时间长度,将每个文字对应的文字音频
数据的时间长度以及该文字在乐谱信息中对应的音符的时间长度转化为帧数,如一个文字
所对应的文字音频数据的时间长度tx,该文字在乐谱信息中对应的音符的时间长度为ty,
一帧为5ms,则该文字对应的文字音频数据的帧数fx=tx/5,同样文字在乐谱信息中对应的
音符的帧数fy=ty/5,其中,若是最后一片不足5ms的按一帧处理。因此,终端可定义每一帧
的文字音频数据为dxii∈[1,fx]。
进一步的,由于人在发声时声带震动产生的频率经过声道过滤后会产生大量泛
音。因此为了避免这些泛音影响终端数据处理,终端需要从文字音频数据中提取直接表现
声带震动频率的基频信息,基频信息也决定了整帧文字音频数据的音高。因此,终端可对每
一帧文字音频数据进行提取基频信息,具体的终端可定义每一帧的文字音频数据的基频信
息为pxii∈[1,fx]。同理,终端可定义每帧的文字在乐谱信息中对应的音符的基频信息为
pyii∈[1,fy]。定义每一帧处理后的文字音频数据为dyi,则从而终端可
根据每一帧处理后的文字音频数据以及帧的宽度获得第一文字音频数据。其中,终端可根
据预置公式进行提取基频信息,具体可如,参见表一,如文字“明”在歌曲中的文字音频数据
的频率为69,利用乐谱信息中的频率与实际频率的对应公式计算得到文
字“明”在歌曲中的文字音频数据的实际频率为440,由于此字只有这一个基频,即基频信息
pyi=440i∈[1,fy]。
在本发明实施例中,当终端对每个文字对应的文字音频数据进行拉伸处理,获得
每个文字对应的第一文字音频数据后,终端对每个文字对应的第一文字音频数据进行音高
调整,即是进行频率调整,获得每个文字对应的第二文字音频数据。具体可如:终端根据目
标帧频率将每个文字对应的第一文字音频数据切分为n个周期,如某一时刻的频率为
440hz,则意味着该时段每秒钟有440个周期,将每个文字整个输出时间按照这样的方式切
分为n个周期并定义为ojj∈[1,n],根据每个周期所属的帧id获取周期对应的原始音频帧
dyj,也就得到了对应的dyj对于周期j,其对应的原始音频帧为dxi,其原始频率为pxii∈[1,
fx],以原始帧中最大的采样点值为中心点,截取出一个时长为的数据块ki i∈[1,m],其
中m为此周期采样点的个数,加窗后得到新的数据快设目
标音频句子的采样点个数为ny,初始时各采样点值均为0,按照时间信息将上一步获取到的
每个字的每一周期对应的ri累加到y的采样点中,其中静音部分不处理,只填充乐谱信息中
有歌词的时间部分,这样就得到了调整频率后的第二文字音频数据,也就是音高转换后的
第二文字音频数据。
在本发明实施例中,当终端获取到每个文字所对应的第二文字音频数据后,终端
可按歌词信息所包括的文字顺序将每个文字对应的第二文字音频数据进行合成,获得音频
数据片段,并从乐谱信息中获取该音频数据片段对应的伴奏数据与音频数据片段进行合成
混音后即可得到该歌词对应的歌曲音频数据,终端可播放歌曲音频数据给用户进行试听。
在本发明实施例中,终端对用户输入的音频数据进行识别,获取预置歌词信息中
每个文字对应的文字音频数据,获取所述歌词信息对应的乐谱信息,按所述乐谱信息对所
述歌词所包括的每个文字对应的文字音频数据进行合成,获得歌曲音频数据,使得终端可
仅根据用户的音频数据即能合成歌曲,提高录制歌曲的效果,并提高用户体验度。
下面将结合附图3和4,对本发明实施例提供的一种终端进行介绍。需要说明的是,
附图3和4所示的一种终端,用于执行本发明图2所示实施例的方法,为了便于说明,仅示出
了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明图2所示的实施例。
请参见图3,为本发明实施例提供了一种终端的结构示意图。如图3所示,本发明实
施例的所述终端可以包括:
第一获取单元100,用于对用户输入的音频数据进行识别,获取预置歌词信息中每
个文字对应的文字音频数据;
第二获取单元200,用于获取所述歌词信息对应的乐谱信息;
合成单元300,用于按所述乐谱信息对所述歌词所包括的每个文字对应的文字音
频数据进行合成,获得歌曲音频数据。
其中,所述第一获取单元100包括:
输出子单元,用于输出所述歌词信息;
接收子单元,用于接收用户针对所述歌词信息输入的所述音频数据。
其中,所述乐谱信息包括所述歌词信息中的每个文字所对应的音频时长;
所述合成单元300包括:
第一获取子单元,用于从所述乐谱信息中获取所述歌词信息中的每个文字所对应
的音频时长;
第一调整子单元,用于按所述每个文字所对应的音频时长对每个文字所对应的目
标文字音频数据的时长进行调整,获得每个文字所对应的第一文字音频数据;
第一合成子单元,用于按所述乐谱信息对所述每个文字对应的第一文字音频数据
进行合成,获得歌曲音频数据。
其中,所述乐谱信息包括所述歌词信息中的每个文字所对应的音高信息;
所述第一合成子单元包括:
第二获取子单元,用于从所述乐谱信息中获取所述歌词信息中的每个文字所对应
的音高信息;
第二调整子单元,用于按所述每个文字所对应的音高信息对每个文字所对应的第
一文字音频数据的音高进行调整,获得每个文字所对应的第二文字音频数据;
第二合成子单元,用于按所述乐谱信息对所述每个文字对应的第二文字音频数据
进行合成,获得所述歌曲音频数据。
其中,所述乐谱信息包括伴奏数据;
所述第二合成子单元包括:
第三获取子单元,用于按所述歌词信息所包括的文字顺序将每个文字所对应的第
二文字音频数据进行合成,获得音频数据片段;
第四获取子单元,用于从所述乐谱信息中获取所述音频数据片段对应的伴奏数
据;
第三合成子单元,用于将所述音频数据片段对应的伴奏数据与所述音频数据片段
进行合成,获得所述歌曲音频数据。
其中,可以理解的是,本实施例的终端中的单元的各功能模块的功能可根据图2述
的方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,
此处不再进行赘述。
在本发明实施例中,终端对用户输入的音频数据进行识别,获取预置歌词信息中
每个文字对应的文字音频数据,获取所述歌词信息对应的乐谱信息,按所述乐谱信息对所
述歌词所包括的每个文字对应的文字音频数据进行合成,获得歌曲音频数据,使得终端可
仅根据用户的音频数据即能合成歌曲,提高录制歌曲的效果,并提高用户体验度。
请参见图4,为本发明实施例提供了又一种终端的结构示意图。如图4所示,终端
1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存
储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通
信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还
可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线
接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-
volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于
远离前述处理器1001的存储装置。如图4所示,作为一种计算机存储介质的存储器1005中可
以包括操作系统、网络通信模块、用户接口模块以及通信连接应用程序。
在图4所示的终端1000中,用户接口1003主要用于为用户提供输入的接口,获取用
户输入的数据;网络接口1004用于与新闻服务器相连接,获取新闻服务器发送的数据;而处
理器1001可以用于调用存储器1005中存储的通信连接应用程序,并具体执行以下操作:
对用户输入的音频数据进行识别,获取预置歌词信息中每个文字对应的文字音频
数据;
获取所述歌词信息对应的乐谱信息;
按所述乐谱信息对所述每个文字对应的文字音频数据进行合成,获得歌曲音频数
据。
其中,所述处理器1001对用户输入的音频数据进行识别,获取预置歌词信息中每
个文字对应的文字音频数据包括:
输出所述歌词信息;
接收用户针对所述歌词信息输入的所述音频数据。
其中,所述乐谱信息包括所述歌词信息中的每个文字所对应的音频时长;
所述处理器1001按所述乐谱信息对所述每个文字对应的文字音频数据进行合成,
获得歌曲音频数据包括:
从所述乐谱信息中获取所述歌词信息中的每个文字所对应的音频时长;
按所述每个文字所对应的音频时长对每个文字所对应的目标文字音频数据的时
长进行调整,获得每个文字所对应的第一文字音频数据;
按所述乐谱信息对所述每个文字对应的第一文字音频数据进行合成,获得歌曲音
频数据。
其中,所述乐谱信息包括所述歌词信息中的每个文字所对应的频率信息和伴奏信
息;
所述处理器1001按所述乐谱信息对所述每个文字对应的第一文字音频数据进行
合成,获得歌曲音频数据包括:
从所述乐谱信息中获取所述歌词信息中的每个文字所对应的频率信息;
按所述每个文字所对应的频率信息对每个文字所对应的第一文字音频数据的频
率进行调整,获得每个文字所对应的第二文字音频数据;
按所述歌词信息所包括的文字顺序将每个文字所对应的第二文字音频数据进行
合成,获得音频数据片段;
从所述乐谱信息中获取伴奏信息进行合成,获得所述歌曲音频数据。
其中,在所述处理器1001按所述乐谱信息对所述每个文字对应的文字音频进行合
成,获得歌曲音频之后,所述处理器1001还执行:
播放所述歌曲音频。
其中,可以理解的是,本实施例的终端中的单元的各功能模块的功能可根据图2所
述的方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描
述,此处不再进行赘述。
在本发明实施例中,终端对用户输入的音频数据进行识别,获取预置歌词信息中
每个文字对应的文字音频数据,获取所述歌词信息对应的乐谱信息,按所述乐谱信息对所
述歌词所包括的每个文字对应的文字音频数据进行合成,获得歌曲音频数据,使得终端可
仅根据用户的音频数据即能合成歌曲,提高录制歌曲的效果,并提高用户体验度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以
通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质
中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁
碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access
Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范
围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。