![](/img/trans.png)
[英]How can I extract the audio embeddings (features) from Google’s AudioSet?
[英]How can I extract features from audio to dataset?
我的桌面上存儲了一個文件夾,其中包含 187 個 WAV 格式的音頻文件。 我想從音頻文件中提取特征,我執行了以下代碼來提取特征音頻並將特征保存在 CSV 文件中,但我獲得了沒有值的 excel 文件,它只包含每列的標題和 len(音頻文件)是 0..但它必須是 187。我該如何解決這個問題???
from glob import glob
data_dir = './audio featur-extraction\audio-setA/'
audio_files = glob(data_dir + '*.wav')
len(audio_files)
from librosa import feature
import numpy as np
fn_list_i = [
feature.chroma_stft,
feature.spectral_centroid,
feature.spectral_bandwidth,
feature.spectral_rolloff,
]
fn_list_ii = [
feature.zero_crossing_rate
]
def get_feature_vector(y,sr):
feat_vect_i = [ np.mean(funct(y,sr)) for funct in fn_list_i]
feat_vect_ii = [ np.mean(funct(y)) for funct in fn_list_ii]
feature_vector = feat_vect_i + feat_vect_ii
return feature_vector
#build the matrix with normal audios featurized
audios_feat = []
for file in audio_files:
'''
y is the time series array of the audio file, a 1D np.ndarray
sr is the sampling rate, a number
'''
y,sr = librosa.load(file,sr=None)
feature_vector = get_feature_vector(y, sr)
audios_feat.append(feature_vector)
print('.', end= " ")
print(audios_feat)
#.........................
import csv
norm_output = 'normals_00.csv'
header =[
'chroma_stft',
'spectral_centroid',
'spectral_bandwidth',
'spectral_rolloff',
'zero_crossing_rate',
]
#WARNING : this overwrites the file each time. Be aware of this because feature extraction step takes time.
with open(norm_output,'+w') as f:
csv_writer = csv.writer(f, delimiter = ',')
csv_writer.writerow(header)
csv_writer.writerows(audios_feat)
錯誤在這一行:
data_dir = './audio featur-extraction\audio-setA/'
這是額外的斜線。 用反斜杠替換它(如路徑的其余部分),你會很高興。 將來:調試您的代碼。 逐行檢查代碼並找出錯誤。 如果要處理的路徑的數組長度為零,則不會計算任何內容。
它應該是
data_dir = r'audio featur-extraction\audio-setA\' # for Windows
或者
data_dir = 'audio featur-extraction/audio-setA/' # for Mac / Linux.
更一般地,在你的代碼中使用 os.path.join
audio_files = glob(data_dir + '/*.wav')
它通過在星形符號前添加斜杠來解決
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.