python - 我如何读取文件夹和子文件夹 *.wav ;和训练模型输入的特征提取?

标签 python

我有一个包含 20 个子文件夹的主文件夹。并且任何子文件夹又有 6 个子文件夹(20 个扬声器,任何扬声器语音(*.wav)分类为 6 类)。

我想读取所有 *.wav 文件和特征提取。特征提取是我的神经网络训练模型的输入。

如何读取所有 .wav 文件并提取特征?

所有类(class)都要一起训练?怎么办?

我从主文件夹读取wav文件的代码如下(但这段代码只读取一个子文件夹):

import os
import scipy.io.wavfile as wav

r_dir = '/my path/'

data = []
rate = []
for root,sub,files in os.walk(r_dir):
    files = sorted(files)
    for f in files:
        s_rate, x = wav.read(os.path.join(root, f))
        rate.append(s_rate)
        data.append(x)

对于特征提取,我使用此代码(我想为我的所有子文件夹和 wav 文件提取特征):

from python_speech_features import fbank
import scipy.io.wavfile as wav

(rate,sig)=wav.read("/my path for one .wav file")
fbank_feat = fbank(sig,rate)

print(fbank_feat)

我很困惑。请帮助我一步一步地做。

谢谢。

最佳答案

globpathlib.Path 一起使用时效果更好。

from pathlib import Path

path = Path('D:\\test path').glob('**/*.wav')
wavs = [str(wavf) for wavf in path if wavf.is_file()]

print(wavs)

产量

D:\test path\a..wav
D:\test path\b.wav
D:\test path\sub 1\1a..wav
D:\test path\sub 1\1b.wav
D:\test path\sub 1\nest a\aaa..wav
D:\test path\sub 1\nest a\bbb.wav
D:\test path\sub 2\2a..wav
D:\test path\sub 2\2b.wav

关于python - 我如何读取文件夹和子文件夹 *.wav ;和训练模型输入的特征提取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56303838/

相关文章:

python - 使用 MySQL insert 命令运行 python 时出现参数错误

python - 使用 Python 在后台下载文件

python - AttributeError: 'Application' 对象没有属性 'tk'

python - Azure函数Python docker容器: Unable to find an Azure Storage connection string to use for this binding

python - 根据其他列的唯一字符串创建一个带有数字的新列

python - 如何在 tkinter 中显式调整帧大小?

python - 从 Python 中的多个列表创建复杂的嵌套字典

python - 似乎无法将 GDAL 导入到 anaconda 中?

python - 图例中的分割标记和线条 - Matplotlib

Python:多重继承和属性