由於部落格播放不了音訊,所以音訊將以視訊形式展現。公眾號也正在進行抽書
往下拉就是文章地址
有時,在進行程式設計時,我們需要進行一些音訊處理。程式設計中最常用的音訊處理任務包括–載入和儲存音訊檔案,將音訊檔案拆分和追加到片段,使用不同的資料建立混合音訊檔案,操縱聲音級別,應用一些過濾器以及生成音訊調整和也許更多。
所有這些東西都可以使用Python
來實現。Python
是一種靈活的語言。它為您聽說過的幾乎所有任務提供了庫。對於音訊處理,Python
提供了Pydub
,這是一個非常簡單且設計良好的模組。
安裝Pydub
就像Python Pydub
中的所有其他模組一樣,也可以使用簡單的命令– pip install pydub
輕鬆安裝。
音訊處理:載入和播放
AudioSegment
是Pydub
中的父類。它起著可以載入,操作和儲存音訊檔案的容器的作用。讓我們用python
建立我們的第一個音訊。為此,我們將需要一個測試檔案,該檔案可以採用任何格式,例如WAV,MP3
或任何格式。在本文中,我將下載一個音訊檔案,就像我們從網路上抓取資料一樣:
import urllib.request
from pydub import AudioSegment
from pydub.playback import play
urllib.request.urlretrieve("音訊地址", "音訊名稱")
loop = AudioSegment.from_wav("音訊名稱")
play(loop)
音訊素材請看上面
基本音訊處理
載入音訊後,現在我們可以執行各種型別的音訊處理,讓我們從重複音訊檔案的一些必要步驟開始:
loop2 = loop * 2
length = len(loop2)
fade_time = int(length * 0.5)
faded = loop2.fade_in(fade_time).fade_out(fade_time)
音訊素材請看上面
分層音訊
上面我們只是簡單地重複了音訊,現在讓我們分層並混合不同級別的音訊片段:
urllib.request.urlretrieve("https://tinyurl.com/yx3k5kw5", "beat.wav")
beat = AudioSegment.from_wav("beat.wav")
mixed = beat[:length].overlay(loop2)
音訊素材請看上面
音訊處理:應用過濾器
現在,讓我們通過應用濾鏡和反轉音訊效果,將所有內容融合在一起,以進一步發展:
filtered = beat.low_pass_filter(3000)
loop = loop2.reverse().pan(-0.5).overlay(loop2.pan(0.5))
final = filtered.overlay(loop2 - 3, loop=True)
音訊素材請看上面
現在,如果您要儲存音訊檔案,則可以按如下所示輕鬆進行操作:
final.export("final.mp3", format="mp3")
合成音調
除了處理上面介紹的聲音的所有步驟之外,我們還可以合成新的音調。這些音調可以是任何頻率的正弦波,方波或操縱波。我們還可以執行白噪聲。在下面的示例中,我將顯示正弦方法,以諧波的方式為最初的15個間隔產生正弦調諧:
result = AudioSegment.silent(duration=0)
for n in range(15):
gen = Sine(200 * n)
sine = gen.to_audio_segment(duration=200).apply_gain(-3)
sine = sine.fade_in(50).fade_out(100)
result += sine
play(result)
音訊素材請看上面