簡體   English   中英

我如何知道哪些頻譜圖幀屬於哪些音頻樣本?

[英]How do I know which spectrogram frames belong to which audio samples?

我一直在使用這個腳本:

spgram = torchaudio.transforms.Spectrogram(512, hop_length=32)
audio = spgram(audio)

獲取一些立體聲音樂音頻的頻譜圖。 我預計生成的頻譜圖的形狀為 [2, 257, audio.shape[1]/32] 然而,事實並非如此。 例如,大小為 [2, 199488] 的音頻剪輯(sr=24576)會產生大小為 [2, 257, 6241] 的頻譜圖(請注意 199488/32=6234)。 這是為什么? 以及如何從幀位置轉換為樣本位置?

center參數。

是否在兩側填充waveform ,以便第t幀以時間 tx hop_length 為中心。 (默認值: True

因此,默認情況下,信號用零填充。 填充長度可能是 ( win_length - hop_length )。 這最終會使結果更長(win_length - hop_length) / hop_length ,在您的情況下為 7 。

感謝您的回答。 如果我有一個大小為 [1,128000] 的信號 x,它是 800 幀。 torch.stft(x).size() = [1,201,801,2]。 我想將 torch.stft(x) 的幀對齊到 800 幀。 我可以丟掉最后一幀,只保留前 800 幀嗎?

暫無
暫無

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

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