帶有Python的音頻處理(附帶源碼)

由於博客播放不了音頻,所以音頻將以視頻形式展現。公衆號也正在進行抽書

音頻素材請點擊這裏進行觀看

往下拉就是文章地址

有時,在進行編程時,我們需要進行一些音頻處理。編程中最常用的音頻處理任務包括–加載和保存音頻文件,將音頻文件拆分和追加到片段,使用不同的數據創建混合音頻文件,操縱聲音級別,應用一些過濾器以及生成音頻調整和也許更多。

所有這些東西都可以使用Python來實現。Python是一種靈活的語言。它爲您聽說過的幾乎所有任務提供了庫。對於音頻處理,Python提供了Pydub,這是一個非常簡單且設計良好的模塊。

安裝Pydub

就像Python Pydub中的所有其他模塊一樣,也可以使用簡單的命令– pip install pydub輕鬆安裝。

音頻處理:加載和播放

AudioSegmentPydub中的父類。它起着可以加載,操作和保存音頻文件的容器的作用。讓我們用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)

音頻素材請看上面

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章