3行Python代碼實(shí)現(xiàn)剪輯音樂
前言
你沒看錯(cuò),Python剪輯音樂,只需要3行語句就能瞬間完成,比如我要剪輯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')
運(yùn)行這個(gè)腳本,我們能瞬間完成剪輯
對(duì)于Python而言,這個(gè)功能簡(jiǎn)直太基本了,難以言語的快。這段時(shí)間里,普通同學(xué)的Adobe Audition 可能還沒成功打開 。下面再介紹點(diǎn)更高級(jí)的玩法。
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。
Windows環(huán)境下打開Cmd(開始—運(yùn)行—CMD),蘋果系統(tǒng)環(huán)境下請(qǐng)打開Terminal(command+空格輸入Terminal),準(zhǔn)備開始輸入命令安裝依賴。
當(dāng)然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來,在編輯器下方的終端裝依賴模塊,多舒服的一件事啊
輸入以下命令安裝我們所需要的依賴模塊:
pip install pydub
看到 Successfully installed xxx 則說明安裝成功。你還需要安裝ffmpeg, 這個(gè)網(wǎng)絡(luò)上有許多教程,你也可以閱讀我們上次的《提取音樂高潮》內(nèi)含詳細(xì)的安裝教程。
1.音量變化
我們還可以修改上面剪輯的那段音樂的入場(chǎng)音量大小和退場(chǎng)音量大小:
from pydub import AudioSegment # 1秒=1000毫秒 SECOND = 1000 # 導(dǎo)入音樂 song = AudioSegment.from_mp3("end_of_time.mp3") # 取33秒到70秒間的片段 song = song[33*SECOND:70*SECOND] # 入場(chǎng)部分提高6分貝, 退場(chǎng)部分減少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 # 導(dǎo)出音樂 new_song.export('end_of_time_slice.mp3')
聽聽看
效果和預(yù)期的一致,想想看,如果這個(gè)你用專業(yè)的音樂編輯器來做,得畫段切片、設(shè)置音量,然后保存,細(xì)思極恐,太費(fèi)時(shí)間了!Python可能在你打開軟件的這段時(shí)間里就完成了。
2.重復(fù)片段
如何重復(fù)我們開頭說到的33秒到70秒這段音樂片段?可簡(jiǎn)單了,你只要會(huì)做乘法就行:
from pydub import AudioSegment song = AudioSegment.from_mp3("end_of_time.mp3") (song[33*1000:63*1000])*2.export('end_of_time_slice.mp3')
沒錯(cuò),在pydub中,片段和數(shù)量之間的運(yùn)算里加法調(diào)音量,乘法調(diào)長(zhǎng)度,你記住了嗎?
3.漸進(jìn)漸出
有時(shí)候我們的耳朵需要時(shí)間來適應(yīng)音量的變化,尤其是在看短視頻的時(shí)候,音量忽大忽小實(shí)在是太沒有用戶體驗(yàn)了,這時(shí)候漸進(jìn)漸出的設(shè)計(jì)就尤為關(guān)鍵:
from pydub import AudioSegment # 導(dǎo)入音樂 song = AudioSegment.from_mp3("end_of_time.mp3") # 提取片段 song = song[33*1000:70*1000] # 漸進(jìn)漸出 awesome = song.fade_in(5000).fade_out(3000) # 導(dǎo)出音樂 awesome.export('end_of_time_fade.mp3')
聽聽看,可優(yōu)秀了!
4.反轉(zhuǎn)音樂
這可能是最有趣和最可能產(chǎn)生特別效果的操作,它會(huì)讓你完全不認(rèn)得這首歌:
from pydub import AudioSegment # 導(dǎo)入音樂 song = AudioSegment.from_mp3("end_of_time.mp3")[33*1000:70*1000] # 翻轉(zhuǎn)音樂 backwards = song.reverse() # 導(dǎo)出音樂 backwards.export("end_of_time_reverse.mp3")
當(dāng)然,反轉(zhuǎn)音樂后會(huì)變得“耳”不忍“聽”,這也很正常,原來的“正向規(guī)律 ” 倒轉(zhuǎn)后,音調(diào)節(jié)奏也變了(不排除有特殊口味的人喜歡這種感覺呢)。好奇嗎?好奇就自己動(dòng)手試試看!
把這首歌折騰了這么久,還是得把原曲告訴大家的:是 K-391 / Alan Walker / Ahrix 的 End of Time.
到此這篇關(guān)于3行Python代碼實(shí)現(xiàn)剪輯音樂的文章就介紹到這了,更多相關(guān)Python剪輯音樂內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文了解Python中NotImplementedError的作用
NotImplementedError是一個(gè)內(nèi)置異常類,本文主要介紹了一文了解Python中NotImplementedError的作用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03利用Numba與Cython結(jié)合提升python運(yùn)行效率詳解
近些年來, Numba和Cython在數(shù)學(xué)科學(xué)界得到了廣泛的關(guān)注。它們都提供了一種加速CPU密集型任務(wù)的方法,但以不同的方式。本文描述了它們之間體系結(jié)構(gòu)的差異2021-09-09DJANGO-URL反向解析REVERSE實(shí)例講解
在本篇文章里小編給大家整理的是一篇關(guān)于DJANGO-URL反向解析REVERSE的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。2019-10-10使用python flask框架開發(fā)圖片上傳接口的案例詳解
剛領(lǐng)導(dǎo)安排任務(wù),需求是這樣的開發(fā)一個(gè)支持多格式圖片上傳的接口,并且將圖片壓縮,支持在線預(yù)覽圖片,下面小編分享下使用python flask框架開發(fā)圖片上傳接口的案例詳解,感興趣的朋友一起看看吧2022-04-04python 用所有標(biāo)點(diǎn)符號(hào)分隔句子的示例
今天小編就為大家分享一篇python 用所有標(biāo)點(diǎn)符號(hào)分隔句子的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07