簡體   English   中英

使用python從mp3音頻文件中獲取振幅數據

[英]get the amplitude data from an mp3 audio files using python

我有一個mp3文件,我想基本上繪制出該音頻樣本中存在的振幅頻譜。 我知道如果我們有一個wav文件,我們可以很容易地做到這一點。 有很多python軟件包可用於處理wav文件格式。 但是,我不想將文件轉換為wav格式,然后存儲然后使用。 我要實現的目標是直接獲取mp3文件的幅度,即使我必須將其轉換為wav格式,腳本也應該在運行時進行廣播,而無需實際將文件存儲在數據庫中。 我知道我們可以像下面這樣轉換文件:

from pydub import AudioSegment
sound = AudioSegment.from_mp3("test.mp3")
sound.export("temp.wav", format="wav")

並創建了預期的temp.wav,但是我們可以僅使用內容而不存儲實際文件嗎?

MP3是已編碼的wave(+標簽和其他內容)。 您需要做的就是使用MP3解碼器對其進行解碼。 解碼器將為您提供需要進一步處理的完整音頻數據。

如何解碼mp3? 令我震驚的是,幾乎沒有可用的Python工具。 雖然我在這個問題上找到了一個很好的人。 它叫做pydub ,我希望我可以使用作者提供的示例代碼片段(我用wiki的更多信息更新了它):

from pydub import AudioSegment

sound = AudioSegment.from_mp3("test.mp3")

# get raw audio data as a bytestring
raw_data = sound.raw_data
# get the frame rate
sample_rate = sound.frame_rate
# get amount of bytes contained in one sample
sample_size = sound.sample_width
# get channels
channels = sound.channels

請注意,此時raw_data處於“播放中”狀態;)。 現在由您決定如何使用收集的數據,但是此模塊似乎可以為您提供所需的一切。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM