簡體   English   中英

了解音頻的幀/樣本

[英]Understanding frames/samples for Audio

我試圖理解這個名為“ The Amazing Audio Engine”的GitHub項目,該項目可簡化iOS上的音頻處理。

我正在從麥克風捕獲並使用此方法:

id<AEAudioReceiver> receiver = [AEBlockAudioReceiver audioReceiverWithBlock: ^(void *source, const AudioTimeStamp *time, UInt32 frames, AudioBufferList *audio) {
 // Do something with 'audio'
}];

據我所知,庫以44100的采樣頻率采樣,當該塊運行時, frames為1024。如果我正確地理解了整個音頻內容,則每次運行此塊時,它都會提供諸如麥克風可以捕獲的所有頻率的快照之類的信息。 ,從最小到最大赫茲。 因此,如果在44100處對整個樣本進行采樣,則意味着整個頻譜將被切成44100個切片。

不是,但假設最小頻率為0Hz,最大頻率為22 KHz,切片0將代表0Hz的振幅,切片44099將代表22KHz,換句話說,數組audio[0] = 0Hzaudio[44099] = 22KHz對嗎?

然后,我測量了該塊運行的時間,並在0.023秒內調用了該塊一次。 為什么? 這個數字不慢嗎?

這個數字對我來說沒有意義。 難道不應該以極快的速度調用該塊,這樣整個頻譜將以較短的間隔及時采樣嗎?

如果我正確理解了整個音頻,那么每次運行此模塊時,它都會發出類似麥克風可以捕獲的所有頻率(從最小到最大赫茲)的快照之類的信息。

沒有; 這是不正確的。 音頻數據通常在時域而不是頻域中表示。

簡而言之:將音頻視為波形。 每個樣本代表該波形在某個時間點的高度。 每秒有44100個這樣的樣本,樣本數組中的每個值代表其中一個。 每秒44100個樣本,一個1024個樣本的塊代表1024/44100 = 0.023秒的音頻。

來自Wikipedia的圖片-https://en.wikipedia.org/wiki/File:Sampled.signal.svg

此數據中沒有直接表示音頻的頻率。 可以使用傅立葉變換將時域樣本塊轉換為頻域表示形式,但是解釋這一點超出了我在單個答案中可以合理進行的范圍。

暫無
暫無

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

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