2024年Python最全Python 用3行代码提取音乐高潮部分

2.将选定长度的部分与其他部分比较并计算相似度,以查看是否重复。

3.寻找重复次数较大、且间隔长的片段。


![在这里插入图片描述](https://img-blog.csdnimg.cn/48b4f470dc2948d3bf26aee790e261d7.png)


### 2.代码实现


为了避免造轮子,我找到了别人已经做过的类似的项目:https://github.com/vivjay30/pychorus


我们只需要分析这个源代码中最核心的部分,即求相似区段的源代码,就能知道它是不是符合我们的项目需求了:


![在这里插入图片描述](https://img-blog.csdnimg.cn/81cf3fe148f54457a759bfa083851468.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6JqC6JqB54ixUHl0aG9u,size_20,color_FFFFFF,t_70,g_se,x_16)


可以看到,这部分代码就是做了我们算法的第二步,进行了片段与片段之间的相似度计算。检测时用到的相似函数是这样的:


![在这里插入图片描述](https://img-blog.csdnimg.cn/78ddc0dd34aa4bdf94c5736abfc780f5.png)


这主要是因为歌曲由12个基本音符的帧的集合而组成,v1和v2是任意两段音乐的音符矢量,如果说两段音乐非常相似,那么右边的式子将接近于0. 如果说 1-右边的式子 得分非常高,则说明两段音乐非常相似。


![在这里插入图片描述](https://img-blog.csdnimg.cn/413fa0af6416438592ae8ef3ba9ad106.png)


下面我们看看怎么使用这个项目求音乐高潮部分,其实非常简单。


### 2.1 安装所需要的项目


你可以通过pip安装该项目,如果你还没有安装好Python相关环境,建议阅读这篇文章:Python超详细安装指南,PIP安装指令如下:



pip install pychorus


![在这里插入图片描述](https://img-blog.csdnimg.cn/38413db692db41209500e79060bb6c2f.png)


### 2.2 编写代码


实际上,这个包用起来可是相当简单,如果我们只是想单纯提取歌曲高潮部分:



from pychorus import find_and_output_chorus

chorus_start_sec = find_and_output_chorus(“你的音乐文件”, “提取结果的目标路径”, 要多少秒的高潮部分)


没错,两行代码就解决了。如果你想知道一些详细的细节,比如说输出相似矩阵或者结果可视化,建议阅读github中该项目的操作指令。


![在这里插入图片描述](https://img-blog.csdnimg.cn/b7594afc833b4d1fa708972829782811.png)


### 3.效果展示


以《孤芳自赏》 为例,让我们试试这个提取器的功力。


孤芳自赏 原曲



#提取音乐高潮部分
from pychorus import find_and_output_chorus
chorus_start_sec = find_and_output_chorus(“孤芳自赏.mp3”, “孤芳自赏_high.wav”, 40)


大家也可以根据我今天的教程,试着提取一下自己喜欢的音乐的高潮部分哦!


### 4.批量提取


刚刚,只是完成了单首歌曲的高潮提取,如果你想提取整个文件夹下的音乐的高潮部分,可以这样做:


![在这里插入图片描述](https://img-blog.csdnimg.cn/8774338513964c37889d04652c399f4b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6JqC6JqB54ixUHl0aG9u,size_20,color_FFFFFF,t_70,g_se,x_16)



现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。



分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习

![](https://img-blog.csdnimg.cn/img_convert/21b2604bd33c4b6713f686ddd3fe5aff.png)



**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值