Как перебирать аудиофайлы при конвертации в mfccs - PullRequest
0 голосов
/ 06 апреля 2019

Я новичок, я конвертирую аудиофайлы в mfccs, я сделал это для одного файла, но не знаю, как перебрать его по всему набору данных.У меня есть несколько папок в папке «Обучение», одна из которых - 001 (0), из которой конвертируется один файл WAV. Я хочу преобразовать все файлы WAV, имеющиеся в папке «Обучение»

import os
import numpy as np
import matplotlib.pyplot as plt
from glob import glob
import scipy.io.wavfile as wav
from python_speech_features import mfcc, logfbank

# Read the input audio file
(rate,sig) = wav.read('Downloads/DataVoices/Training/001(0)/001000.wav')


# Take the first 10,000 samples for analysis
sig = sig[:10000]
features_mfcc = mfcc(sig,rate)

# Print the parameters for MFCC
print('\nMFCC:\nNumber of windows =', features_mfcc.shape[0])
print('Length of each feature =', features_mfcc.shape[1])

# Plot the features
features_mfcc = features_mfcc.T
plt.matshow(features_mfcc)
plt.title('MFCC')

# Extract the Filter Bank features
features_fb = logfbank(sig, rate)

# Print the parameters for Filter Bank 
print('\nFilter bank:\nNumber of windows =', features_fb.shape[0])
print('Length of each feature =', features_fb.shape[1])

# Plot the features
features_fb = features_fb.T
plt.matshow(features_fb)
plt.title('Filter bank')

plt.show()

1 Ответ

0 голосов
/ 06 апреля 2019

Вы можете использовать glob рекурсивно с подстановочными знаками, чтобы найти все файлы wav.

for f in glob.glob(r'Downloads/DataVoices/Training/**/*.wav', recursive=True):
     (rate,sig) = wav.read(f)
     # Rest of your code
...