我没有找到在 PyTorch 中使用我的 wav 文件作为数据集的方法



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

我想使用.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]

对不起,我的英语不太好。

编辑

我使用的是SPEECHCOMANDS数据集,但我想使用我自己的

谢谢你的阅读。

由于您正在谈论语音识别和pytorch,我建议您使用一套完善的工具,而不是从头开始执行与语音相关的培训任务。

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

回到你的问题,如果你想使用pytorch在你自己的数据集上训练你自己的语音识别模型,我建议你使用这个Espnet Librispeech ASR配方。尽管它使用.flac文件,但对数据准备脚本进行一些小的修改,并更改主条目脚本asr.sh中的一些参数,可能会满足您的需求。

请注意,除了了解python和torch之外,espnet还需要您熟悉shell脚本。他们的asr.sh脚本相当长。对于那些对一个特定型号的最小pytorch代码更满意的人来说,这可能不是一项容易的任务。Espnet设计用于容纳许多模型和许多数据集。它包含许多预处理阶段,如语音特征提取、长度滤波、标记准备、语言模型训练等,这些都是良好的语音识别模型所必需的。

如果你坚持你找到的回购。您需要编写一个自定义的数据集和数据加载器类。你可以参考pytorch数据加载教程,但这个链接使用图像作为例子,如果你想要一个音频例子,可能来自一些github repos,比如深度语音pytorch数据加载器

最新更新