你好,我是PyTorch的新手,我想做一个简单的语音识别,但我不想使用pytorch.datasets,我有一些声音数据集,但我找不到任何地方可以帮助我。
我想使用.wav文件。我看了一本教程,但他用的是毕火数据集。
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数据集,但我想使用自己的
感谢您的阅读。
发布于 2021-04-11 08:02:01
既然你说的是语音识别和语音火炬,我建议你使用一套完善的工具,而不是从头开始做与语音相关的培训任务。
埃斯佩特是github上一个很好的回购工具。它包含了一些关于文本到语音和语音到文本模型的最新工作,以及用于在流行的开放源码数据集上以不同语言进行培训的现成脚本。它还包括培训的模型,供您直接使用。
回到你的问题上,如果你想要在你自己的数据集中训练你自己的语音识别模型,我建议你去这个Espnet图书馆员ASR配方。尽管它使用.flac文件,但对数据准备脚本的一些小修改和更改主要输入脚本asr.sh中的一些参数可能满足您的需求。
请注意,除了有关python和torch的知识之外,espnet还需要您熟悉shell脚本。他们的asr.sh脚本很长。对于一个特定型号的人来说,这可能不是一件容易的事情。Espnet被设计用于容纳许多模型和数据集。它包括语音特征提取、长度滤波、标记准备、语言模型训练等多个预处理阶段,是良好的语音识别模型所必需的。
如果你坚持你找到的回购。您需要编写自定义数据集和Dataloader类。您可以引用pytorch数据传输教程,但是这个链接使用图像作为示例,如果您想要一个音频示例,可能来自一些github repos,比如深度语音电筒数据采集器
https://stackoverflow.com/questions/67022524
复制相似问题