剪辑音乐要很久?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 详细指南。添加链接描述

请选择以下任一种方式输入命令安装依赖:

  1. Windows 环境 打开 Cmd (开始-运行-CMD)。
  2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
  3. 如果你用的是 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瞬间搞定的主要内容,如果未能解决你的问题,请参考以下文章

手机剪辑视频指南,去水印加字幕做转场,统统一键就搞定

极简代码搞定视频剪辑

如何用fl制作 咚鼓音乐

Python:运用pydub模块转换音频格式对音频进行剪辑

Python:运用pydub模块转换音频格式对音频进行剪辑

请问水果做音乐FL STUDIO如何才能单独提高单轨道的音量???