VGGish
通過閱讀幫助文檔,知道可以VGGish是產生128維音頻數據集的工具,原文的描述是這樣的: VGGish, as well as supporting code to extract input features for the model from audio wavaforms and post-process the model enmbedding output int the same fomat.\
輸入:音頻特征
1.所有的音頻都被重采樣為16KHz的單聲道形式。
2.使用 25ms 的幀長、10ms 的幀移,以及周期性的 Hann 窗口對語音進行分幀,對每一幀做短時傅里葉變換,然后利用信號幅值計算聲譜圖。
3.通過將聲譜映射到 64 階 mel 濾波器組(covering the range 125-7500 Hz.)中計算 mel 聲譜.
4.計算 log(mel-spectrum + 0.01),得到穩定的 mel 聲譜,所加的 0.01 的偏置是為了避免對 0 取對數。
5.然后這些特征被以 0.96s 的時長被組幀,並且沒有幀的重疊,每一幀都包含 64 個 mel 頻帶,時長 10ms(即總共 96 幀)。
測試安裝的VGGish是否成功
vgg_smoke_test.py 程序的checkpoint_path和pac_params_path需要根據你的放置的位置進行修改。在Anaconda Prompt直接執行
E://Audio_project//VGGish//vggish_smoke_test.py
運行該測試程序
測試完成!可以發現VGGish embedding:的結果和Postprocessed VGGish embedding:的結果都是128維的。
通過這一部分測試代碼可以知道:
1.測試的音頻是1K的正弦波,然后進行44.1Khz的采樣。
2.然后執行產生log mel 聲譜
input_batch = vggish_input.waveform_to_examples(x, sr)
之后經過VGGish后128維的數據:
之后再將此數據進行PCA變換: