首頁 > 軟體

3行Python程式碼實現剪輯音樂

2022-06-14 14:03:05

前言

你沒看錯,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')

執行這個指令碼,我們能瞬間完成剪輯

對於Python而言,這個功能簡直太基本了,難以言語的快。這段時間裡,普通同學的Adobe Audition 可能還沒成功開啟 。下面再介紹點更高階的玩法。

開始之前,你要確保Python和pip已經成功安裝在電腦上,如果沒有,可以存取這篇文章:超詳細Python安裝指南 進行安裝。

Windows環境下開啟Cmd(開始—執行—CMD),蘋果系統環境下請開啟Terminal(command+空格輸入Terminal),準備開始輸入命令安裝依賴。

當然,我更推薦大家用VSCode編輯器,把本文程式碼Copy下來,在編輯器下方的終端裝依賴模組,多舒服的一件事啊

輸入以下命令安裝我們所需要的依賴模組:

pip install pydub

看到 Successfully installed xxx 則說明安裝成功。你還需要安裝ffmpeg, 這個網路上有許多教學,你也可以閱讀我們上次的《提取音樂高潮》內含詳細的安裝教學。

1.音量變化

我們還可以修改上面剪輯的那段音樂的入場音量大小和退場音量大小:

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') 

聽聽看

效果和預期的一致,想想看,如果這個你用專業的音樂編輯器來做,得畫段切片、設定音量,然後儲存,細思極恐,太費時間了!Python可能在你開啟軟體的這段時間裡就完成了。

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.漸進漸出

有時候我們的耳朵需要時間來適應音量的變化,尤其是在看短視訊的時候,音量忽大忽小實在是太沒有使用者體驗了,這時候漸進漸出的設計就尤為關鍵:

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") 

當然,反轉音樂後會變得“耳”不忍“聽”,這也很正常,原來的“正向規律 ” 倒轉後,音調節奏也變了(不排除有特殊口味的人喜歡這種感覺呢)。好奇嗎?好奇就自己動手試試看!

把這首歌折騰了這麼久,還是得把原曲告訴大家的:是 K-391 / Alan Walker / Ahrix 的 End of Time.

到此這篇關於3行Python程式碼實現剪輯音樂的文章就介紹到這了,更多相關Python剪輯音樂內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com