我找不到在 PyTorch 中将我的 wav 文件用作数据集的方法

I don't find a way to use my wav file as dataset in PyTorch

你好,我是 PyTorch 的新手,我想做一个简单的语音识别,但我不想使用 pytorch.datasets 我有一些数据集的声音,但我找不到任何地方可以帮助我。

我想使用 .wav 文件。我看了一个教程,但是他用的是pytorch数据集。

import torch
from torch import nn, optim
import torch.nn.functional as F
import torchaudio

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

from torchaudio.datasets import SPEECHCOMMANDS
import os

class SpeechSubset(SPEECHCOMMANDS):
    def __init__(self, subset, str=None):
        super().__init__("./", download=True)
        
        def load_list(filename):
            filepath = os.path.join(self._path, file.name)
            with open(filepath) as fileob:
                return [os.path.join(self._path, line.strip())]
            
        if subset == "validation":
            self._walker = load_list("validation_list.txt")
        elif subset == "testing":
            self._walker = load_list("testing_list.txt")
        elif subset == "training":
            excludes = load_list("validation_list.txt") + load_list("testing_list.txt")
            excludes = set(excludes)
            self._walker = [w for w in self._walker if w not in excludes]
            
train_set = SpeechSubset("training")
test_set = SpeechSubset("testing")

waveform, sample_rate, label, speaker_id, utterance_number = train_set[0]

抱歉我的英语不太好。

编辑

我正在使用 SPEECHCOMMANDS 数据集,但我想使用自己的

感谢您的阅读。

既然你在谈论语音识别和pytorch,我建议你使用一套完善的工具,而不是从头开始做语音相关的训练任务。

github 上的一个好的回购是 Espnet。它包含一些关于文本到语音和语音到文本模型的最新工作,以及用于训练不同语言的流行开源数据集的即用型脚本。它还包括供您直接使用的训练模型。

回到你的问题,如果你想用pytorch在你自己的数据集上训练你自己的语音识别模型,我建议你去这个Espnet Librispeech ASR recipe. Although it uses .flac files, some little modifications on data preparation script and change some parameters in the major entry script asr.sh可能会满足你的需求。

注意,除了python和torch的知识外,espnet还需要你熟悉shell脚本。他们的 asr.sh 脚本很长。对于那些更愿意为一个特定模型使用最少的 pytorch 代码的人来说,这可能不是一件容易的事。 Espnet 旨在容纳许多模型和许多数据集。它包含许多预处理阶段,例如语音特征提取、长度过滤、token准备、语言模型训练等,这些都是好的语音识别模型所必需的。

如果您坚持使用您找到的回购协议。您需要编写自定义数据集和数据加载器 类。可以参考pytorch dataloading tutorial, but this link uses images as an example, if you want an audio example, maybe from some github repos like deepspeech pytorch dataloader