平台:windows 10 家庭中文版

ide:pycharm

环境:3.7

数字信号处理技术:≈0

librosa库

LibROSA is a python package for music and audio analysis. It provides the building blocks necessary to create music information retrieval systems.

librosa是处理音频的python库,可以进行时频处理、特征提取、绘制声音图形等

官方地址:http://librosa.github.io/librosa

生产流程

1.音频分析:通过对音频的一系列分析取得需要更换图片的时值组(重要,但对于没接触过数字信号处理的小白来说毫无思路)

很不幸,数字信号处理技术≈0,因此在本人深耕数字信号处理技术好几个小时后,有了这不太成熟的代码片段,文中代码因本人基础不好可能有部分错误,望指正

音频分析一般流程

主要函数:

peak_pick

beat_track

    # 音频路径music_path = ''# 音频开始截取时间start_time = 67# 截取时长duration = 15# 采样率sr=44100# 加载音频文件y ,sr= librosa.load(music_path, offset=start_time, duration=duration,sr=sr)onset_env = librosa.onset.onset_strength(y=y, sr=sr,hop_length=512,aggregate=np.median)# 获取信号中的峰值# delta参数对取值影响较大# 这个方法参数较为重要,可以写一个公式计算出部分参数的取值peaks = librosa.util.peak_pick(onset_env, 1, 1, 1, 1, 0.8, 5)# 使用beat_track函数得到速度和节拍点tempo, beats = librosa.beat.beat_track(y=y, sr=sr)# # 使用plp函数得到脉冲曲线# pulse = librosa.beat.plp(onset_envelope=onset_env, sr=sr)# # 得到局部脉冲的最大值# beats_plp = np.flatnonzero(librosa.util.localmax(pulse))# 创建一个节拍值1/4、2/4、3/4、4/4的数组M = beats * [[1 / 4], [2 / 4], [3 / 4]]M = M.flatten()M = np.sort(M)# 局部脉冲与节拍点做10%的去误差,得到节奏点L = []for i in M:for j in peaks:if i * 0.9 < j < i * 1.1:L.append(j)L = list(set(L))L.sort()# 节奏点转化为时间# 取前30个点,不够30个则全取if len(L) > 30:point_list = librosa.frames_to_time(L[:30], sr=sr)else:point_list = librosa.frames_to_time(L[:len(L)], sr=sr)# 音乐裁剪,设置开始结束时间end_time = point_list[len(point_list) - 1] + start_timestart_time = start_time * 1000end_time = end_time * 1000sound = AudioSegment.from_mp3(music_path)word = sound[start_time:end_time]# 音乐储存路径word.export('movie/music.wav', format="wav")movie_cut(point_list)

2.图片处理,转换视频:此处选择先将图片处理成指定大小,然后根据时值将图片转换为特定时长的视频片段,最后将视频合成

遗留问题

1.不能通过代码判断出哪段音乐更适合卡点

2.人声影响较大,尤其是连续的节奏较快的高音

解决思路

深耕数字信号处理技术

librosa:http://librosa.github.io/librosa

源代码:https://github.com/LaoADe/music_point

使用librosa库实现100行代码制作音乐卡点视频相关推荐

  1. Python小技 不到100行代码制作各种证件照

    生活中经常需要使用各种版本的电子版证件照,如:红底.蓝底.白底.一寸.两寸等等. 在 Python 中替换图片背景色可以用 Image 模块, 利用 Image 模块可以改变图片大小.背景色等操作. ...

  2. react hooks使用_我如何使用React Hooks在约100行代码中构建异步表单验证库

    react hooks使用 by Austin Malerba 奥斯汀·马勒巴(Austin Malerba) 我如何使用React Hooks在约100行代码中构建异步表单验证库 (How I bu ...

  3. 精选10个Python库,几行代码轻松搞定探索性数据分析!

    点击上方"菜鸟学Python",选择"星标"公众号 超级无敌干货,第一时间送达!!! 探索性数据分析是数据科学模型开发和数据集研究的重要组成部分之一.在拿到一个 ...

  4. 开源自制的6通道航模遥控器(一) 超简单不超过100行代码

    前言 前段时间跟着LOLI大神的教程制作了LOLI三代控,效果很好.但是,由于LOLI三代控的接收机带有数据回传功能,也就是接收机的无线模块也承担了发射数据功能,所以接收机也要使用带有功率放大芯片的N ...

  5. SAP系统和微信集成的系列教程之八:100行代码在微信公众号里集成地图搜索功能

    本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上. 系列目录 (1) 微信开发环境的搭建 (2) 如何通过微信公众号消费API (3) 微信用户关注公众号之后,自 ...

  6. python爬虫入门——13行代码制作英语翻译器教程,小白入门一点通

    有些同学一想到爬虫,就觉得很厉害,然后也认为是一个很难学,确实,会爬虫的确是个狠人,爬虫这个东西可以抓取很多东西,但是也并不是那么的难学,入门其实也很简单,爬虫都是一些套路步骤,那么接下来让我们用13 ...

  7. 用python画苹果的logo_简单几步,100行代码用Python画一个蝙蝠侠的logo

    转自:菜鸟学Python 简单几步,100行代码用Python画一个蝙蝠侠的logo-1.jpg (35.33 KB, 下载次数: 0) 2020-7-30 12:04 上传 蝙蝠侠作为DC漫画的核心 ...

  8. WebServer应用示例:不到100行代码玩转Siri语音控制 | ESP32轻松学(Arduino版)

    ESP32轻松学系列文章目录: ESP32 概述与 Arduino 软件准备 蓝牙翻页笔(PPT 控制器) B 站粉丝计数器 Siri 语音识别控制 LED 灯 Siri 语音识别获取传感器数据 本期 ...

  9. PONG - 100行代码写一个弹球游戏

    大家好,欢迎来到 Crossin的编程教室 ! 今天跟大家讲一讲:如何做游戏 游戏的主题是弹球游戏<PONG>,它是史上第一款街机游戏.因此选它作为我这个游戏开发系列的第一期主题. 游戏引 ...

最新文章

  1. PTA基础编程题目集-6-3 简单求和
  2. 何恺明大神新作--UnNAS:无监督神经网络架构搜索
  3. 通向未来:物联网+人工智能将成为人类的进化方向
  4. html缩进快捷键_HTML 入门笔记
  5. (NO.00001)iOS游戏SpeedBoy Lite成形记(二十二)
  6. c# 文件IO操作 StreamReader StreamWriter Split 使用
  7. Hadoop中shuffle阶段流程分析
  8. sql 查看数据库中的各表的大小
  9. 北师大本科毕业需要过计算机二级吗,全国计算机二级
  10. 的引用_懵!啥是Java软引用、弱引用、虚引用?
  11. 你想入门Python,还是得看这篇文章
  12. HDFS: The short-circuit local reads feature cannot be used
  13. 初中节点法分析电路_有关初中物理电路分析题的一些小技巧
  14. 数据库工作笔记004---mysql对结果字段进行判断的函数_Case when等
  15. oracle存储过程遍历,oracle存储过程中遍历的疑惑
  16. Linux下的高级文件权限ACL
  17. word文档中页眉页脚的设置问题
  18. antv g6 禁止移动_十 AntV
  19. 使用Telnet 在DS300上配置阵列
  20. wordpress本地网站怎么搬到服务器,如何把wordpress从本地服务器迁徙到网站主机上...

热门文章

  1. 猿创征文|《Java》关键字大全-小结
  2. bummed out
  3. HCL(新华三模拟器)如何连接CRT及改界面颜色
  4. SpringBoot——日志文件
  5. Android中 根据电话号码获取联系人姓名
  6. 什么是云计算领域的 orphaned resources
  7. android 齐刘海编程,[翻译]Android适配全面屏上的齐刘海
  8. DAO是什么?——为什么有人试图购买美国宪法?
  9. with grant option作用
  10. saas系统分几种类型