剪辑音乐要很久?3行代码Python瞬间搞定
Posted 程序员朱鹏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剪辑音乐要很久?3行代码Python瞬间搞定相关的知识,希望对你有一定的参考价值。
用Python, 只需要3行语句就能剪辑音乐,比如我要剪辑《End of Time》33秒到1分10秒的音乐片段:
from pydub import Audiosegment
song = AudioSegment.from_mp3("end_of_time.mp3")
song[33,[object Object],1000].export('end_of_time_slice.mp3')
运行这个脚本,我们能瞬间完成剪辑:
这个功能非常基本,处理速度也非常快,这段处理的时间里,普通的同学可能 Adobe Audition 还没成功打开 。
下面再介绍点 Pydub 模块的更高级玩法。
1.准备
开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。添加链接描述
(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,添加链接描述 它内置了Python和pip.
(可选2) 此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南。添加链接描述
请选择以下任一种方式输入命令安装依赖:
- Windows 环境 打开 Cmd (开始-运行-CMD)。
- MacOS 环境 打开 Terminal (command+空格输入Terminal)。
- 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install pydub
看到 Successfully installed xxx 则说明安装成功。此外你还需要安装ffmpeg,这个在网络上有许多教程,你也可以阅读我们上篇文章:《提取音乐高潮》添加链接描述,内含详细的安装教程。
2.音量变化
我们可以修改上面剪辑的那段音乐的入场音量大小和退场音量大小:
from pydub import AudioSegment
# 1秒=1000毫秒
SECOND = 1000
# 导入音乐
song = AudioSegment.from_mp3("end_of_time.mp3")
# 取33秒到70秒间的片段
song = song[33*SECOND:70*SECOND]
# 入场部分提高6分贝, 退场部分减少5分贝
ten_seconds = 10 * SECOND
last_five_seconds = -5 * SECOND
beginning = song[:ten_seconds] + 6
ending = song[last_five_seconds:] - 5
# 形成新片段
new_song = beginning + song[ten_seconds:last_five_seconds] + ending
# 导出音乐
new_song.export('end_of_time_slice.mp3')
2.重复片段
如何重复我们开头说到的33秒到70秒这段音乐片段?可简单了,你只要会做乘法就行:
from pydub import AudioSegment
song = AudioSegment.from_mp3("end_of_time.mp3")
(song[33*1000:63*1000])*2.export('end_of_time_slice.mp3')
由于微信公众号只允许放三个音频,因此这个例子大家可以阅读原文进行聆听。没错,在pydub中,片段和数量之间的运算里加法调音量,乘法调长度,你记住了吗?
3.渐进渐出
有时候我们的耳朵需要时间来适应音量的变化,尤其是在看短视频的时候,音量忽大忽小实在是太没有用户体验了,这时候渐进渐出的设计就尤为关键:
# 公众号:Python 实用宝典
from pydub import AudioSegment
# 导入音乐
song = AudioSegment.from_mp3("end_of_time.mp3")
# 提取片段
song = song[33*1000:70*1000]
# 渐进渐出
awesome = song.fade_in(5000).fade_out(3000)
# 导出音乐
awesome.export('end_of_time_fade.mp3')
4.反转音乐
这可能是最有趣和最可能产生特别效果的操作,它会让你完全不认得这首歌:
from pydub import AudioSegment
# 导入音乐
song = AudioSegment.from_mp3("end_of_time.mp3")[33*1000:70*1000]
# 翻转音乐
backwards = song.reverse()
# 导出音乐
backwards.export("end_of_time_reverse.mp3")
当然,反转音乐后会变得“耳”不忍“听”,这也很正常,原来的“正向规律 ” 倒转后,音调节奏也变了(不排除有特殊口味的人喜欢这种感觉呢)。好奇吗?好奇就自己动手试试看!
如果你喜欢我们今天的Python制作音乐教程,请三连,如果对你有帮助,可扫下方领取Python全套学习资料
以上是关于剪辑音乐要很久?3行代码Python瞬间搞定的主要内容,如果未能解决你的问题,请参考以下文章