Python实现音乐的剪辑
一、读取音频文件
from scipy.io import wavfile
import numpy as np
like = wavfile.read('./嘤嘤嘤.wav')
print (like)
结果:

图片是三维的ndarray,视频是四维的由[[img],[img],[img]]+音频组成
这里读取音频文件使用的scipy,scipy四个高端科学计算端。
音频结果将返回一个tuple。第一维参数是采样频率,单位为秒;第二维数据是一个ndarray表示歌曲,如果第二维的ndarray只有一个数据表示单声道,两个数据表示立体声。很明显这里是个立体声。
所以,通过控制第二维数据就能对歌曲进行裁剪。
继续音频裁剪就是:
like[1][ start_s*44100 : end_s*44100 ]
对like这个元组第二维数据进行裁剪,所以是like[1];第二维数据中是对音乐数据切分。 start_s表示你想裁剪音频的起始时间;同理end_s表示你裁剪音频的结束时间。乘44100 是因为每秒需要进行44100次采样。
对音频进行裁剪,并保存到本地,使用wavfile中的write:
wavfile.write('like2.wav',44100,like[1][30*44100:45*44100])
第一个参数表示,保存的路径。第二个参数表示采样频率。第三个参数表示裁剪的音乐片段。
完整代码就是:
from scipy.io import wavfile
import numpy as np
like = wavfile.read('./嘤嘤嘤.wav')
4 wavfile.write('like2.wav',44100,like[1][30*44100:45*44100])
二、两段音乐拼接:
音乐拼接使用ndarray的级联:
np.concatenate(参数1:参数2)
完整代码:
from scipy.io import wavfile
import numpy as np
like = wavfile.read('./嘤嘤嘤.wav')
jueji = wavfile.read('./林俊杰-爱不会绝迹.wav')
mix = np.concatenate([like[1][:30*44100],jueji[1][-30*44100:]])
wavfile.write('./mix.wav',44100,mix)
Python实现音乐的剪辑的更多相关文章
- python实现音乐播放器
python实现音乐播放器 模块:pygame 模块:time Python 布尔循环实例: import time import pygame muxi_k = """ ...
- python播放音乐
最近一直想实现使用Python播放音乐的功能,找了百度上的好多博客,要不就只能播放wav格式的,要不播放mp3格式的但无法在Linux系统下使用的,或者只能在Python2的情况下播放的,写的都不符合 ...
- python 视频配音、剪辑
一.FFmpeg的使用 首先下载FFmpeg然后将FFmpeg添加到环境路径中.运行cmd 输入ffmpeg无报错表示成功. 二.python中的使用 在python中执行cmd命令需要调用subpr ...
- Python 的音乐库
前言 其实处理这个用 Matlab 最方便,之前把 guitar-synthesizer 从 Matlab 移植到 Python,过程中更是体会到了这一点. 不过 Matlab 安装包又大,启动又慢, ...
- python 简易音乐盒子
#!/usr/bin/env python#-*- coding:utf-8 -*- from Tkinter import *import tkMessageBoximport urllib def ...
- 用Python演奏音乐
目录 背景 准备 安装mingus 下载并配置fluidsynth 下载soundfont文件 分析 乐谱格式 乐谱解析 弹奏音乐 添加伴奏 保存音乐 完整程序 背景 笔者什么乐器也不会,乐理知识也只 ...
- Python+moviepy音视频剪辑:视频帧数据的本质、Clip的fl方法进行变换处理的原理以及滚屏案例
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...
- 使用python播放音乐
1.首先安装pygame,pip install pygame 2.上代码: import time import pygame #音乐路径 filepath=r"C:\Users\1473 ...
- python 喜马拉雅 音乐下载 演示代码
1.主程序文件 import os import json import requests from contextlib import closing from progressbar import ...
随机推荐
- HTML 5篇(持续更新)
1.sessionStorage .localStorage 和 cookie 之间的区别 (一)共同点:都是保存在浏览器端,且同源的. (二)区别:cookie数据始终在同源的http请求中携带(即 ...
- linux 设置git记住密码
linux下: 1.在~/下, touch创建文件 .git-credentials, 用vim编辑此文件,输入: https://{username}:{password}@github.com 注 ...
- Fastdfs 部署干货
tracker server and client:192.168.1.42 storage server:192.168.1.46 storage server:192.168.1.53 安装: 安 ...
- MySQL5.7的组提交与并行复制
从MySQL5.5版本以后,开始引入并行复制的机制,是MySQL的一个非常重要的特性. MySQL5.6开始支持以schema为维度的并行复制,即如果binlog row event操作的是不同的sc ...
- SQLSERVER 中GO的作用
go 向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号.go是把t-sql语句分批次执行.(一步成功了才会执行下一步,即一步一个go) BEGIN 和 END 语句 ...
- QT的QPropertyAnimation讲解
m_pAnimation->setEasingCurve(QEasingCurve::Linear); //直线风格 m_pAnimation->setLoopCount(-1); //无 ...
- Spark Broadcast内幕解密:Broadcast运行机制彻底解密、Broadcast源码解析、Broadcast最佳实践
本课主题 Broadcast 运行原理图 Broadcast 源码解析 Broadcast 运行原理图 Broadcast 就是将数据从一个节点发送到其他的节点上; 例如 Driver 上有一张表,而 ...
- tp框架 php5.5以上版本出现”No input file specified“错误问题解决
public文件夹下 .htaccess文件中的 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] 在默认情况下会导致No input file specifie ...
- codeforces793 B. Igor and his way to work (dfs)
题目链接:codeforces793 B. Igor and his way to work (dfs) 求从起点到终点转方向不超过两次是否有解,,好水啊,感觉自己代码好搓.. #include< ...
- Cocos2dx打包apk时变更NDK引发问题及解决
现在官方的Cocos Studio已经支持打包apk文件,写该随笔的时候还没试过官方的打包功能,所以就按自己的学习顺序先把打包的心得写下. 问题及最终解决方案: 其中耗时最长的问题就是ndk-r10改 ...