一种歌词时间戳生成方法及存储介质
文献发布时间:2023-06-19 10:55:46
技术领域
本申请涉及计算机技术领域,特别涉及一种歌词时间戳生成方法及存储介质。
背景技术
目前,为了使歌词逐字或逐行显示,需要人工标注歌词中每个字或每行歌词所对应的时间戳,从而按照此时间戳控制歌词中每个字或每行的显示时间。由于歌曲数量和种类较多,而人工标注效率低下,且容易出错,因此存在标注效率和准确率较低的技术问题。
发明内容
有鉴于此,本申请的目的在于提供一种歌词时间戳生成方法、装置、设备及存储介质,以提高歌词时间戳的标注效率和准确率。其具体方案如下:
为实现上述目的,一方面,本申请提供了一种歌词时间戳生成方法,包括:
获取待处理的目标歌曲;
将所述目标歌曲输入声学模型,以得到所述目标歌曲中每帧对应的发音状态;
确定每个发音状态在词典中对应的音素;其中,所述词典中的任一个初始元音音素对应有多个重叠音素,不同重叠音素包括的所述初始元音音素的个数不同;所述初始元音音素和所述重叠音素均为所述词典中的音素;
确定每个音素在所述词典中对应的歌词,从而确定歌词时间戳。
又一方面,本申请还提供了一种歌词时间戳生成装置,包括:
获取模块,用于获取待处理的目标歌曲;
模型处理模块,用于将所述目标歌曲输入声学模型,以得到所述目标歌曲中每帧对应的发音状态;
第一确定模块,用于确定每个发音状态在词典中对应的音素;其中,所述词典中的任一个初始元音音素对应有多个重叠音素,不同重叠音素包括的所述初始元音音素的个数不同;所述初始元音音素和所述重叠音素均为所述词典中的音素;
第二确定模块,用于确定每个音素在所述词典中对应的歌词,从而确定歌词时间戳。
又一方面,本申请还提供了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述歌词时间戳生成方法。
又一方面,本申请还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述歌词时间戳生成方法。
本申请在获取到待处理的目标歌曲后,将目标歌曲输入声学模型,以得到目标歌曲中每帧对应的发音状态,然后确定每个发音状态在词典中对应的音素,并确定每个音素在词典中对应的歌词,从而确定歌词时间戳。其中,本申请提供的词典中的任一个初始元音音素(如i:)对应有多个重叠音素(如i:i:或i:i:i:等),不同重叠音素包括的初始元音音素的个数不同;初始元音音素和重叠音素均为词典中的音素。需要说明的是,本申请中的声学模型可直接基于目标歌曲的原歌曲音频确定每帧对应的发音状态,不用执行声伴分离步骤(声伴分离步骤可能会损坏歌曲中人声),因此可提高处理效率和准确率,由于词典中的任一个初始元音音素都对应有多个重叠音素,也即:该词典对初始元音音素进行了扩增,故该词典可适用于不同音乐类型、不同音乐节奏下的不同发音语速,故本申请可以提高歌词时间戳的标注效率和准确率。
相应地,本申请提供的歌词时间戳生成装置、设备及存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种本申请适用的物理架构示意图;
图2为本申请提供的第一种歌词时间戳生成方法流程图;
图3为本申请提供的一种声学模型训练方法流程图;
图4为本申请提供的第二种歌词时间戳生成方法流程图;
图5为本申请提供的第三种歌词时间戳生成方法流程图;
图6为本申请提供的一种声学模型的训练框架示意图;
图7为本申请提供的一种强制对齐的框架示意图;
图8为本申请提供的一种歌词时间戳生成装置示意图;
图9为本申请提供的一种服务器结构图;
图10为本申请提供的一种终端结构图。
具体实施方式
现有歌曲数量和种类较多,而人工标注效率低下,且容易出错,因此存在标注效率和准确率较低的技术问题。鉴于目前所存在的上述问题,本申请提出了歌词时间戳生成方案,该方案能够确定该歌曲中每个字、每行歌词所对应的时间戳,提高标注效率和准确率。
为了便于理解,先对本申请所适用的物理框架进行介绍。
应理解,本申请提供的歌词时间戳生成方法可以应用于具有标注歌词时间戳功能的系统或程序中。具体的,具有标注歌词时间戳功能的系统或程序可以运行于服务器、个人计算机等设备中。
如图1所示,图1为本申请适用的物理架构示意图。在图1中,具有标注歌词时间戳功能的系统或程序可以运行于服务器,该服务器通过网络从其他终端设备中获取待处理的目标歌曲,将目标歌曲输入声学模型,以得到目标歌曲中每帧对应的发音状态,然后确定每个发音状态在词典中对应的音素,并确定每个音素在词典中对应的歌词,从而可确定该目标歌曲中每个字、每行歌词所对应的时间戳,据此即可标注歌词时间戳,获得QRC(QRC为扩展名)歌词文件或LRC(lyric,用作扩展名)歌词文件。其中,QRC歌词文件能够逐行逐字精确定位歌词,显示时歌词按行滚动显示,同时每行中的各个字也动态显示,达到先逐行后逐字显示的目的。LRC歌词文件能够逐行精确定位歌词,显示时歌词按行滚动显示。
如图1可知,该服务器可以与多个设备建立通信连接,服务器从这些设备中获取歌曲,并为歌曲生成歌词时间戳,以得到歌曲的QRC歌词文件或LRC歌词文件,之后可利用音乐播放设备播放歌曲并显示相关QRC歌词文件或LRC歌词文件。当然,待处理的歌曲也可以以数据库形式存储。图1中示出了多种终端设备,在实际场景中可以有更多或更少种类的终端设备参与到歌词时间戳生成的过程中,具体数量和种类因实际场景而定,此处不做限定,另外,图1中示出了一个服务器,但在实际场景中,也可以有多个服务器的参与,具体服务器数量因实际场景而定。
应当注意的是,本实施例提供的歌词时间戳生成方法可以离线进行。如果服务器本地存储有各种音乐流派的歌曲,那么可以直接按照本申请训练得到能够感知音乐流派的声学模型,并测试使用该声学模型。音乐流派可参见表1。其中,音乐流派可不必细分,因为属于一个大类的不同音乐对于歌词的发音相近,因此只需划分大类即可。
表1
可以理解的是,上述具有歌词时间戳生成的系统或程序也可以运行于个人移动终端,也可以作为云端服务程序的一种,具体运作模式因实际场景而定,此处不做限定。
结合以上共性,请参见图2,图2为本申请实施例提供的一种歌词时间戳生成方法流程图。如图2所示,该歌词时间戳生成方法可以包括以下步骤:
S201、获取待处理的目标歌曲。
S202、将目标歌曲输入声学模型,以得到目标歌曲中每帧对应的发音状态。
其中,目标歌曲可以为任意音乐流派的歌曲,本实施例中的声学模型可基于目标歌曲的原歌曲音频确定每帧对应的发音状态,不用执行声伴分离步骤。由于声伴分离步骤可能会损坏歌曲中人声信号,因此基于原歌曲音频确定发音状态,可提高处理效率和准确率。
其中,发音状态与音素对应,习惯上把一个音素的发音状态分为三个部分:“初始态”“稳定态”“结束态”,这三个部分即可构建一个音素的发音。
音素可以理解为发音的最小单位,有限数量的音素可以组成任意汉字的发音。不同语言所使用的音素不一样,比如:英文使用元音和辅音作为音素。汉语一般使用声母和韵母作为音素。声母和韵母的数量比较适中(50几个)便于训练声学模型,并且能比较好的代表汉字的发音特征。一个汉字一般由1-4个音素组成。
S203、确定每个发音状态在词典中对应的音素。
其中,词典中的任一个初始元音音素对应有多个重叠音素,不同重叠音素包括的初始元音音素的个数不同;初始元音音素和重叠音素均为词典中的音素。
词典即包括诸多汉字和英文,以及相应音素的发音词典,用于确定音素到词之间的映射关系。初始元音音素包括:英文元音音素和/或汉语拼音元音音素。英文国际音标共有48个音素,其中初始元音音素20个,英文元音音素可参见表2。汉语拼音包括声母和韵母。声母有:b、p、m、f、d、t、n、l、g、k、h、j、q、x、zh、ch、sh、r、z、c、s、y、w。韵母有:a、o、e、i、u、ü、ai、ei、ui、ao、ou、iu、ie、ve、er、an、en、in、un、vn、ang、eng、ing、ong。其中,汉语拼音的初始元音音素可参见表3。
表2
表3
参见表2和表3,其中的各个音素即为初始元音音素。
在一种具体实施方式中,任一个初始元音音素对应的多个重叠音素的生成过程包括:确定每个重叠音素包括的初始元音音素的个数,并基于个数重复初始元音音素,以得到多个重叠音素。例如:针对初始元音音素i:而言,假设其对应有3个重叠音素,且这3个重叠音素所包括的i:的个数分别为2、3、5,那么这3个重叠音素分别为:i:i:、i:i:i:、i:i:i:i:i:。其中,重叠音素中包括至少两个初始元音音素,由此才称之为重叠音素。
可见,本实施例对原发音词典中的初始元音音素进行了扩增,使得每一个初始元音音素都对应有多个重叠音素。具体可参照下述示例。
以“sleep”这个词作为示例,该词对应的初始元音音素i:,可以将i:重复多次(例如重复四次)。以“快”这个词作为示例,该词对应的初始元音音素ai,可以将ai重复多次(例如重复四次)。具体请参见表4。
表4
在原发音词典中,针对“sleep”这个词,只能确定一个对应的发音/sli:p/(音标),扩增初始元音音素后,词典中包括“sleep”这个词的四种发音方式。同理,扩增初始元音音素后,词典中包括“快”这个词的四种发音方式。当然,一个词中的初始元音音素还可以重复更多次,以得到该词的更多发音方式。针对一个词而言,其发音中包括的初始元音音素越多,发音的语速就越慢。
S204、确定每个音素在词典中对应的歌词,从而确定歌词时间戳。
由于发音状态与音素相对应,因此在一种具体实施方式中,确定每个发音状态在词典中对应的音素,包括:针对每个发音状态,在词典中查询与该发音状态距离最近的音素。也即:在词典中寻找与发音状态最接近的音素。此过程可利用维特比算法实现,该算法能够将发音状态与音素进行强制对齐。
针对一个歌曲,声学模型可以输出该歌曲中每帧对应的发音状态,因此利用维特比算法进行强制对齐可以理解为:针对每一帧音频,利用维特比算法寻找声学模型输出的该帧对应的发音状态,与词典中的哪个音素相对应(即:寻找发音状态与音素之间的最优路径),维特比算法输出的状态序列即为词典中的某个音素,由于可以在词典中找出歌曲的歌词文本中的每个字对应的音素,因此基于“状态-音素”、“音素-字”这两个关系,可以确定音素对应的歌词。
在一种具体实施方式中,确定每个音素在词典中对应的歌词,从而确定歌词时间戳,包括:统计每个音素所对应的帧数,并基于帧数确定每个音素的发音时间戳;查询目标歌曲的歌词文本中的每个字在词典中对应的音素,并基于该音素的发音时间戳确定相应字的歌词时间戳。其中,同一个音素可能对应至少一帧音频,而各帧音频的起始时间和终止时间固定且已知,因此统计音素所对应的音频帧即可确定该音素的发音时间戳(即发音的起始时间和终止时间),又由于可以在词典中找出一个字所对应的至少一个音素,因此基于这些音素的发音时间戳即可确定相应字的歌词时间戳。一个字可对应多个音素。
本实施例提供的词典中的任一个初始元音音素对应有多个重叠音素,不同重叠音素包括的初始元音音素的个数不同;初始元音音素和重叠音素均为词典中的音素。声学模型可直接基于目标歌曲的原歌曲音频确定每帧对应的发音状态,不用执行声伴分离步骤(声伴分离步骤可能会损坏歌曲中人声),因此可提高处理效率和准确率,由于词典中的任一个初始元音音素都对应有多个重叠音素,也即:该词典对初始元音音素进行了扩增,故该词典可适用于不同音乐类型、不同音乐节奏下的不同发音语速,故本申请可以提高歌词时间戳的标注效率和准确率。
请参见图3,图3为本申请实施例提供的一种声学模型训练方法流程图。如图3所示,该声学模型训练方法可以包括以下步骤:
S301、获取携带音乐流派标签的训练歌曲。
S302、将训练歌曲对应的歌词文本中的每个字转换为基准音素,并确定每个基准音素对应的基准发音状态。
将各个字转换为基准音素的过程中,若不同字对应同一基准音素,则保留一个基准音素即可,以避免重复出现基准音素。针对一个已知的基准音素,可以将其转换为相应的发音状态,因此可确定每个基准音素对应的基准发音状态。由于训练歌曲携带音乐流派标签,故基准发音状态也包括音乐流派标签。音乐流派的种类可参照表1。
S303、将训练歌曲输入目标模型,以得到训练歌曲中每帧对应的训练发音状态。
本实施例将携带音乐流派标签的基准发音状态,作为目标模型输出结果的对比结果,因此可以让目标模型学习到识别音乐流派的能力,故目标模型输出的训练发音状态也会携带音乐流派标签。
S304、针对每个训练发音状态,计算该训练发音状态与相应的基准发音状态的损失值。
S305、判断损失值是否符合预设条件;若是,则执行S306;若否,则执行S307。
S306、将目标模型确定为声学模型。
S307、根据损失值更新目标模型的模型参数,得到更新后的目标模型,用更新后的目标模型替换目标模型,并执行S301。
在本实施例中,损失值可利用任意损失函数进行计算,具体可参照现有相关技术。若损失值符合预设条件,则说明当前模型已经收敛,因此可直接输出该模型。若损失值不符合预设条件,则说明当前模型还未收敛,因此根据损失值更新模型参数后,用更新后的模型替换原模型,以进行下一次迭代训练,直至模型收敛。
其中,声学模型可以为GMM-HMM模型或DNN-HMM模型。GMM-HMM模型使用高斯混合模型对观察概率分布建模。DNN-HMM模型使用神经网络模型对观察概率分布建模。本实施例中的声学模型可直接基于歌曲音频确定每帧对应的发音状态,不用执行声伴分离步骤(声伴分离步骤可能会损坏歌曲中人声),因此可提高处理效率和准确率,该声学模型还能够适用于区别不同音乐类型。
需要说明的是,声伴分离步骤提取出来的人声可能含有较多噪音,歌曲中的伴奏也会使歌唱者的声音失真,因此声伴分离步骤提取出来的人声的质量难以保障。若执行声伴分离步骤后,用提取出来的人声进行模型训练,可能影响模型的准确度。而直接用原歌曲音频进行模型训练,不会导致人声失真,从而可提升模型的精度。
一般地,可以利用kaldi进行模型训练。kaldi是一个开源的语音识别工具。
由于本实施例提供的声学模型可输出携带音乐流派标签的发音状态,相应的,就需要给词典中的各个音素添加音乐流派标签,以便后续可以对齐音素和发音状态。
在一种具体实施方式中,给词典中的各个音素添加音乐流派标签,包括:确定需要标注的音乐流派的种类数M;M为正整数;在词典中,将每个音素重复记录M-1次,并对重复记录的同一个音素标注不同的音乐流派标签。例如:需要标注的音乐流派的种类数为3,即M=3,那么词典中的每个音素,都需要将其标记为3类,因此将每个音素重复记录2次,以得到3个重复的音素,对这3个重复的音素分别标记3种音乐流派标签,即可标注有不同音乐流派标签的同一个音素。如:将i:重复记录2次,得到3个i:(即i:、i:、i:),对每个i:分别标注hip、pop、met,则有:i:_
根据上述修改词典后,针对同一个字就可以有多种发音方式。由于不同音乐流派对同一个字的演唱方式(即发音方式)不同,故如果同一个字对应有多种发音方式,就可以在词典中找出最接近某一音乐流派的演唱方式。
若“sleep”这个词分别出现在不同音乐流派的歌曲中,那么对于该词的发音方式,就可以有多种表示。例如:“sleep:/s_
表5
参照表5可知,在扩增了初始元音音素,并标注有音乐流派标签的词典中,针对同一个字可以找出多种发音方式,从而为发音状态与音素的强制对齐提供了更多可选性,有利于为发音状态选择出最接近其发音的音素。
在本实施例中,由于训练歌曲携带音乐流派标签,故以此作为训练数据进行模型训练,可以得到能够感知音乐流派的声学模型,也就是声学模型不仅能够确定歌曲中每帧对应的发音状态,而且能够识别出发音状态所属的音乐流派。歌曲所属的音乐流派即是其中每帧对应的发音状态所属的音乐流派。一般地,可以给发音状态添加音乐流派标签,以表明各个发音状态所属的音乐流派。
请参见图4,图4为本申请实施例提供的第二种歌词时间戳生成方法流程图。如图4所示,该歌词时间戳生成方法可以包括以下步骤:
S401、获取待处理的目标歌曲。
S402、将目标歌曲输入声学模型,以得到目标歌曲中每帧对应的发音状态。
S403、确定每个发音状态在词典中对应的音素。
其中,词典中的任一个初始元音音素对应有多个重叠音素,不同重叠音素包括的初始元音音素的个数不同;初始元音音素和重叠音素均为词典中的音素。
S404、确定每个音素在词典中对应的歌词,从而确定歌词时间戳。
S405、生成并存储目标歌曲的QRC歌词文件和/或LRC歌词文件。
若播放目标歌曲,则可以按照QRC歌词文件或LRC歌词文件显示歌词。QRC歌词文件能够逐行逐字精确定位歌词,显示时歌词按行滚动显示,同时每行中的各个字也动态显示,达到先逐行后逐字显示的目的。LRC歌词文件能够逐行精确定位歌词,显示时歌词按行滚动显示。
本实施例提供的词典中的任一个初始元音音素对应有多个重叠音素,不同重叠音素包括的初始元音音素的个数不同;初始元音音素和重叠音素均为词典中的音素。声学模型可直接基于目标歌曲的原歌曲音频确定每帧对应的发音状态,不用执行声伴分离步骤(声伴分离步骤可能会损坏歌曲中人声),因此可提高处理效率和准确率,由于词典中的任一个初始元音音素都对应有多个重叠音素,也即:该词典对初始元音音素进行了扩增,故该词典可适用于不同音乐类型、不同音乐节奏下的不同发音语速,故本申请可以提高歌词时间戳的标注效率和准确率。
下面通过具体的应用场景实例描述,来介绍本申请提供的歌词时间戳生成方案。
请参见图5,图5为本申请实施例提供的第三种歌词时间戳生成方法流程图。如图5所示,该歌词时间戳生成方法可以包括以下步骤:
S501、终端上传歌曲至服务器;
S502、服务器获取训练完成的声学模型;
S503、服务器利用声学模型输出该歌曲中的各个帧对应的发音状态,以及该发音状态所属的音乐流派;
S504、服务器确定每个发音状态在词典中对应的音素,确定每个音素在词典中对应的歌词,从而确定歌词时间戳;
S505、服务器生成并存储目标歌曲的QRC歌词文件和/或LRC歌词文件,并发送QRC歌词文件和/或LRC歌词文件至终端;
S506、终端播放歌曲,并按照QRC歌词文件或LRC歌词文件显示歌词。
具体的,服务器上可以部署歌曲数据库,该数据库中的每个歌曲均可按照上述流程生成相应的QRC歌词文件或LRC歌词文件。
其中,声学模型的训练框架可参照图6。在图6中,声学模型的输入数据为从歌曲原音频中提取出来的MFCC特征,同时该歌曲的歌词文本中的各个字转换为相应的音素,并由音素转换为发音状态,并标注发音状态所属音乐流派。之后可按照图3完成声学模型的训练。
具体的,训练声学模型所需的对比标准(即每帧对应的基准发音状态)可按照下述过程确定:确定训练样本的总帧数和发音状态的个数,并按照状态总数将训练样本平均分段(即总帧数除以状态总数),以得到一个发音状态对应的帧数,反之即可确定各个帧对应的发音状态,并将此作为模型的对比标准。模型处理训练样本后,利用gmm-acc-stats-ali工具和gmm-est工具确定模型输出的训练结果和对比标准的差异,以更新模型参数,并据此迭代训练,直至模型收敛。模型训练完成后,利用模型处理某一歌曲的音频,并利用gmm-align-compiled工具(内置有维特比算法)对模型的输出和相应词典进行强制对齐。
声学模型训练完成后,利用维特比算法进行强制对齐(Forced alignment)。强制对齐即:针对每一帧音频,利用维特比算法寻找声学模型输出的该帧对应的发音状态,与词典中的哪个音素相对应(即:寻找发音状态与音素之间的最优路径)。维特比算法输出的状态序列即为词典中的某个音素,后续基于词典将该音素转换为字序列,从而可得到该音素对应的歌词。强制对齐的框架图可参见图7。
需要说明的是,歌唱发音的不同主要体现在语速上,这决定着每个音素发音时间的长短,通过扩增初始元音音素,就可以使同一个字具备不同的歌唱发音;同时,标注音素所属的音乐流派,可区分同一个字在不同音乐流派内的不同歌唱发音。由于声学模型可感知发音状态所属的流派,故该声学模型与修改后的词典(即扩增了初始元音音素,并标注有音乐流派标签的词典)相配合,可以识别不同音乐类型、不同音乐节奏下的不同发音语速,提高歌词时间戳标注效率和准确率。
按照本实施例生成的QRC歌词文件播放歌曲,可使歌词内容自动跟随音频歌唱内容滚动显示,实现字级别的时间戳对齐,有利于精准确定每个字的播放时机。利用该方案可以为曲库中的每个歌曲生成相应的QRC歌词文件和/或LRC歌词文件,完善曲库建设,节省人力和时间成本。
请参见图8,图8为本申请实施例提供的一种歌词时间戳生成装置示意图,该装置包括:
获取模块801,用于获取待处理的目标歌曲;
模型处理模块802,用于将目标歌曲输入声学模型,以得到目标歌曲中每帧对应的发音状态;
第一确定模块803,用于确定每个发音状态在词典中对应的音素;其中,词典中的任一个初始元音音素对应有多个重叠音素,不同重叠音素包括的初始元音音素的个数不同;初始元音音素和重叠音素均为词典中的音素;
第二确定模块804,用于确定每个音素在词典中对应的歌词,从而确定歌词时间戳。
在一种具体实施方式中,任一个初始元音音素对应的多个重叠音素的生成过程包括:
确定每个重叠音素包括的初始元音音素的个数,并基于个数重复初始元音音素,以得到多个重叠音素。
在一种具体实施方式中,初始元音音素为英文元音音素或汉语拼音元音音素。
在一种具体实施方式中,还包括:用于给词典中的各个音素添加音乐流派标签的添加模块,该添加模块包括:
种类数确定单元,用于确定需要标注的音乐流派的种类数M;M为正整数;
添加单元,用于在词典中,将每个音素重复记录M-1次,并对重复记录的同一个音素标注不同的音乐流派标签。
在一种具体实施方式中,还包括:用于训练声学模型的训练模块,该训练模块包括:
获取单元,用于获取携带音乐流派标签的训练歌曲;
转换单元,用于将训练歌曲对应的歌词文本中的每个字转换为基准音素,并确定每个基准音素对应的基准发音状态;基准发音状态包括音乐流派标签;
训练单元,用于将训练歌曲输入目标模型,以得到训练歌曲中每帧对应的训练发音状态;
损失计算单元,用于针对每个训练发音状态,计算该训练发音状态与相应的基准发音状态的损失值;
判断单元,用于判断损失值是否符合预设条件;
输出单元,用于若损失值符合预设条件,则将目标模型确定为声学模型。
在一种具体实施方式中,该训练模块还包括:
迭代单元,用于若损失值不符合预设条件,则根据损失值更新目标模型的模型参数,得到更新后的目标模型,用更新后的目标模型替换目标模型,并执行获取单元、转换单元、训练单元、损失计算单元、判断单元中的步骤,直至损失值符合预设条件,跳转至输出单元。
在一种具体实施方式中,第一确定模块具体用于:
针对每个发音状态,在词典中查询与该发音状态距离最近的音素。
在一种具体实施方式中,第二确定模块包括:
统计单元,用于统计每个音素所对应的帧数,并基于帧数确定每个音素的发音时间戳;
查询单元,用于查询目标歌曲的歌词文本中的每个字在词典中对应的音素,并基于该音素的发音时间戳确定相应字的歌词时间戳。
在一种具体实施方式中,还包括:
生成模块,用于生成并存储QRC歌词文件。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种歌词时间戳生成装置,该装置中的声学模型可直接基于歌曲音频确定每帧对应的发音状态,且本申请提供的词典对初始元音音素进行了扩增,适用于不同音乐类型、不同音乐节奏下的不同发音语速,提高了歌词时间戳的标注效率和准确率。
进一步的,本申请实施例还提供了一种电子设备。其中,上述电子设备既可以是如图9所示的服务器50,也可以是如图10所示的终端60。图9和图10均是根据一示例性实施例示出的电子设备结构图,图中的内容不能被认为是对本申请的使用范围的任何限制。
图9为本申请实施例提供的一种服务器的结构示意图。该服务器50,具体可以包括:至少一个处理器51、至少一个存储器52、电源53、通信接口54、输入输出接口55和通信总线56。其中,所述存储器52用于存储计算机程序,所述计算机程序由所述处理器51加载并执行,以实现前述任一实施例公开的歌词时间戳生成中的相关步骤。
本实施例中,电源53用于为服务器50上的各硬件设备提供工作电压;通信接口54能够为服务器50创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口55,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器52作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统521、计算机程序522及数据523等,存储方式可以是短暂存储或者永久存储。
其中,操作系统521用于管理与控制服务器50上的各硬件设备以及计算机程序522,以实现处理器51对存储器52中数据523的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序522除了包括能够用于完成前述任一实施例公开的歌词时间戳生成方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据523除了可以包括应歌曲、歌词等数据外,还可以包括应用程序的开发商信息等数据。
图10为本申请实施例提供的一种终端的结构示意图,该终端60具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的终端60包括有:处理器61和存储器62。
其中,处理器61可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器61可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器61也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器61可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器61还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器62可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器62还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器62至少用于存储以下计算机程序621,其中,该计算机程序被处理器61加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的歌词时间戳生成方法中的相关步骤。另外,存储器62所存储的资源还可以包括操作系统622和数据623等,存储方式可以是短暂存储或者永久存储。其中,操作系统622可以包括Windows、Unix、Linux等。数据623可以包括但不限于歌曲、歌词、应用程序信息。
在一些实施例中,终端60还可包括有显示屏63、输入输出接口64、通信接口65、传感器66、电源67以及通信总线68。
本领域技术人员可以理解,图10中示出的结构并不构成对终端60的限定,可以包括比图示更多或更少的组件。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的歌词时间戳生成方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
需要指出的是,上述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
- 一种歌词时间戳生成方法及存储介质
- 一种基于语谱图识别的歌词时间戳生成方法