一种基于空耳文本的音乐检索方法技术

技术编号:27393950 阅读:30 留言:0更新日期:2021-02-21 14:03
本发明专利技术公开了一种基于空耳文本的音乐检索方法,该方法首先将空耳文本进行罗马化的操作,使之变成一个同一标准的编码,随后采用了一个TextToHumming框架,该框架采用WaveNet作为声码器,并且在输入进WaveNet之前,通过一个编码器,捕获文本之间的高阶映射。通过该框架,通过将空耳的文本转换成相应的音乐哼唱片段。然后我们改进了现有的DTW算法,为DTW算法添加了浮动系数,使之更加适用通过空耳文本生成的哼唱音乐的检索。通过以上方法,解决了目前通过空耳寻找歌曲难度大的问题。过空耳寻找歌曲难度大的问题。过空耳寻找歌曲难度大的问题。

【技术实现步骤摘要】
一种基于空耳文本的音乐检索方法


[0001]本专利技术属于数据检索
,特别涉及一种基于空耳文本的音乐检索方法。

技术介绍

[0002]随着数字音乐的普及,在大型数字音乐数据库中搜索所需的音乐需要高效的索引和检索 工具。传统的音乐检索系统中,通常都有按照标题或者歌手检索音乐。在基于内容的音乐检 索系统中,歌唱/哼唱查询是一种具有代表性的方便、智能的方法。它可以用于根据用户哼唱 的音乐旋律检索没有歌手姓名和歌曲标题的音乐文件。但是由于找歌者的心理因素或者是歌 唱水平限制,歌唱/哼唱查询并不能满足找歌者的需求,反观在网络上存在着大量的找歌者通 过空耳文本来求助网络,寻找自己想要的歌曲。但是,除了找歌者刚好听过这首歌,几乎很 难从庞大的音乐数据库中查询相关曲目。故研究出一个通过空耳来寻找音乐的方法是非常有 必要的。

技术实现思路

[0003]本专利技术提供一种基于空耳文本的音乐检索方法,模型基于WaveNet声码器和DTW 算法,主要解决找歌者的心理因素或者是歌唱水平限制,歌唱/哼唱查询并不能满 足找歌者的需求,反观在网络上存在着大量的找歌者通过空耳文本来求助网络, 寻找自己想要的歌曲。但是空耳文本的模糊性导致很难从庞大的音乐数据库中找 到该歌曲问题,本专利提供一种基于空耳文本的音乐检索方法,操作过程基于编码器和 WaveNet的TextToHumming框架,该框架由一个编码器和一个WaveNet声码器组成,具体步 骤如下,其特征在于:
[0004]1)将空耳文本进行罗马化的操作,使之变成一个同一标准的编码随后采用了一个 TextToHumming框架,该框架采用WaveNet作为声码器,并且在输入进WaveNet之前,通 过一个编码器,捕获文本之间的高阶映射,通过该框架,通过将空耳的文本转换成相应的 音乐哼唱片段,具体算法流程如下:
[0005]11)获取空耳文本,如果空耳文本为统一标准,则不需要对该空耳文本进行处理,否 则将其进行罗马化处理,将其转换为拉丁字符;
[0006]12)通过对拉丁字符进行处理,转换成输入矩阵X;
[0007]13)对WaveNet的输出进行缩放,缩放采用μ-law压缩变换,将输出的波形 的值压缩至可接受的范围,设将输出值压缩至K,采用以下函数对输出进行压缩:
[0008][0009]其中y
t
为原本输出的一个分量,其范围为-1<y
t
<1;
[0010]14)编码器采用KL loss作为损失函数,定义如下,设Y为原始输出,设Y'为预 测值,则损失函数的表达式为:
[0011][0012]15)WaveNet声码器除了输入层的大小变为编码器的输出大小,网络的架构采 用WaveNet采用原始的架构和损失函数,即网络扩张率为2k,其中K表示网络 处于第几层,卷积核的大小为3.除此之外,每个残差层都包含一个ReLu非线 性激活函数;
[0013]16)将预测值通过μ-law逆变换转换为哼唱音频;
[0014]2)进行哼唱检索算法,为DTW算法添加了浮动系数,使之更加适用通过空耳文本生 成的哼唱音乐的检索,具体算法流程如下:
[0015]21)假设D是一组音乐的时间序列的数据库,即D={X1,X2,...,X
N
},其中N为该 音乐数据库的大小;
[0016]22)假设X={x1,x2,....,x
n
}表示一个音乐的时间序列,其中n表示音乐序列的大小。 设X[s:t]={x
s
,x
s+1
,....,x
t
},其中s≥1且t≤n,其中x
s
是该集合的第一个元素,x
t
是该集合的最 后一个元素,即X[s:t]是X的一个子序列,定义如下函数:
[0017]DTW(Q,X)=f(m,n)
[0018]f(0,0)=0
[0019]f(i,0)=∞
[0020]f(0,j)=∞
[0021]23)增加三个波形拟合参数α1,α2,α3,用于改变算法的搜索路径的权重;
[0022][0023]24)那么DTW中动态规划的搜索函数为:
[0024][0025]25)给定长度为n的多维序列X和长度为m的Q,求出X的某个子序列X[s:t]使得X[s:t] 是X中所有字串到Q的距离的距离是最小的,即对于任意的i≤n,j<m,都有 DTW(X[s:t],Q)≤DTW(X[i:j],Q),
[0026]26)那么Top-K子序列查询定义为给定一组多维序列D和一个查询序列Q, 找出集合D中满足DTW
sub
(X1,Q)≤DTW
sub
(X2,Q)≤......DTW
sub
(X
k
,Q)的集合 Top
k
={X1,X2,...,X
k
};
[0027]27)并且对于其他的X
t
∈D且都有DTW
sub
(X
k
,Q)≤DTW
sub
(X
j
,Q);
[0028]28)生成该片段检索到的Top-K音乐列表。
[0029]作为本专利技术进一步改进,所述基于空耳文本的音乐检索方法对应硬件配套如 下:
[0030]CPU:Intel(R)Xeon(R)E5-2660 v4@2.00GHz GPU:NVIDIA GV100GL[Tesla V100 PCIe 32GB]GPU大小:32GB内存:48GB。
[0031]作为本专利技术进一步改进,所述基于空耳文本的音乐检索方法对应软件配套如 下:
[0032]操作系统为64位Ubuntu 16.04.6LTS,cuda版本为cuda 10,python版本 为3.6.4,深度学习框架tensorflow-gpu 1.8.0,keras 2.2.4,音乐处理框架 有librosa 0.72等。
[0033]与现有技术相比,本专利技术具有如下优点和有益效果:
[0034]本专利技术公开了一种基于空耳文本的音乐检索方法,该方法首先将空耳文本进行罗马化 的操作,使之变成一个同一标准的编码,随后采用了一个TextToHumming框架,该框架
采 用WaveNet作为声码器,并且在输入进WaveNet之前,通过一个编码器,捕获文本之间的 高阶映射。通过该框架,本申请通过将空耳的文本转换成相应的音乐哼唱片段。然后我们 改进了现有的DTW算法,为DTW算法添加了浮动系数,使之更加适用通过空耳文本生成 的哼唱音乐的检索。通过以上方法,解决了目前通过空耳寻找歌曲难度大的问题。
附图说明
[0035]图1表示本专利技术处理空耳文本的示例(中英文示例但不限于中英文);
[0036]图2表示本专利技术的TextToHumming的框架示意图;<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于空耳文本的音乐检索方法,操作过程基于编码器和WaveNet的TextToHumming框架,该框架由一个编码器和一个WaveNet声码器组成,具体步骤如下,其特征在于:1)将空耳文本进行罗马化的操作,使之变成一个同一标准的编码随后采用了一个TextToHumming框架,该框架采用WaveNet作为声码器,并且在输入进WaveNet之前,通过一个编码器,捕获文本之间的高阶映射,通过该框架,通过将空耳的文本转换成相应的音乐哼唱片段,具体算法流程如下:11)获取空耳文本,如果空耳文本为统一标准,则不需要对该空耳文本进行处理,否则将其进行罗马化处理,将其转换为拉丁字符;12)通过对拉丁字符进行处理,转换成输入矩阵X;13)对WaveNet的输出进行缩放,缩放采用μ-law压缩变换,将输出的波形的值压缩至可接受的范围,设将输出值压缩至K,采用以下函数对输出进行压缩:其中y
t
为原本输出的一个分量,其范围为-1&lt;y
t
<1;14)编码器采用KL loss作为损失函数,定义如下,设Y为原始输出,设Y'为预测值,则损失函数的表达式为:15)WaveNet声码器除了输入层的大小变为编码器的输出大小,网络的架构采用WaveNet采用原始的架构和损失函数,即网络扩张率为2k,其中K表示网络处于第几层,卷积核的大小为3.除此之外,每个残差层都包含一个ReLu非线性激活函数;16)将预测值通过μ-law逆变换转换为哼唱音频;2)进行哼唱检索算法,为DTW算法添加了浮动系数,使之更加适用通过空耳文本生成的哼唱音乐的检索,具体算法流程如下:21)假设D是一组音乐的时间序列的数据库,即D={X1,X2,...,X
N
},其中N为该音乐数据库的大小;22)假设X={x1,x2,....,x
n
}表示一个音乐的时间序列,其中n表示音乐序列的大小。设X[s:t]={x
s
,x
s+1
,....,x
t
},其中s≥1且t≤n,其中x
s
是该集合的...

【专利技术属性】
技术研发人员:叶洪良朱皖宁
申请(专利权)人:金陵科技学院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1