#在关键字检测领域,一个比较流行的数据集就是Google Speech Commands,但是目前根据链接或者是在pytorch中直接下载,都是下载的30类别+background_noise。
如何找到它的V1-12,V2-12等其他版本的数据集?
23条回答 默认 最新
关注
获得0.45元问题酬金 引自免费微信小程序:皆我百晓生
要获取Google Speech Commands不同版本(如V1-12, V2-12)的数据集,你需要直接访问Google Research的GitHub仓库,因为官方并未提供通过PyTorch或者其他库直接下载特定版本数据集的选项。以下是获取不同版本数据集的步骤:
-
首先,打开Google Research的GitHub仓库:https://github.com/google/speech_commands
-
在GitHub页面上,你会看到各个版本的标签。例如,如果你想获取V1的数据集,你应该找到名为
v0.01
的标签,V2的数据集对应v1.0
,以此类推。点击对应的标签名,例如v0.01
会跳转到该版本的分支页面。 -
从该分支页面,找到并点击
data
文件夹下的speech_commands_v0.01.tar.gz
(或其他类似格式的压缩包,具体取决于你要的版本)。这将开始下载这个版本的数据集。 -
下载完成后,解压压缩包,然后你可以按照官方提供的README文件中的指示进行预处理和使用数据集。
如果你想要在Python环境中加载这些数据,可以参考以下代码片段。这里假设你已经将数据解压到了名为
speech_commands_data
的目录中,并且设置了相应的路径。注意,这个代码示例仅用于展示如何读取数据,实际应用可能需要根据你的任务需求进行调整。import os import tarfile import numpy as np from scipy.io import wavfile from sklearn.model_selection import train_test_split def load_audio_file(file_path): sampling_rate, audio_data = wavfile.read(file_path) return audio_data, sampling_rate def load_data(data_dir, categories): data = [] for category in categories: for file_name in os.listdir(os.path.join(data_dir, category)): file_path = os.path.join(data_dir, category, file_name) audio_data, sampling_rate = load_audio_file(file_path) data.append((audio_data, sampling_rate, category)) return data def preprocess_data(data, sample_rate=16000, window_size=0.01, window_stride=0.005): X = [] y = [] for audio_data, _, category in data: n_samples = int(sample_rate * window_size) n_step = int(sample_rate * window_stride) windows = np.split(audio_data, range(n_samples, len(audio_data), n_step)) for window in windows: X.append(window) y.append(category) X = np.array(X).astype(np.float32) / 32768.0 # Normalize to [-1, 1] y = np.array(y) return X, y # 设置你的数据目录和类别列表 data_dir = "speech_commands_data" # 这里替换为你的解压后的数据目录 categories = ["yes", "no", "up", "down", "left", "right", "on", "off", "stop", "go"] # 这里设置你感兴趣的类别 # 加载数据 raw_data = load_data(data_dir, categories) # 预处理数据 X, y = preprocess_data(raw_data) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 现在你可以使用X_train、y_train和X_test、y_test进行模型训练和评估了
这段代码首先定义了一些辅助函数,用于加载音频文件、加载整个数据集、以及对数据进行预处理。接下来,根据你的数据目录和感兴趣的目标类别(在这个例子中是基本的语音命令),加载数据并进行预处理。最后,数据被划分为训练集和测试集,准备用于模型训练。记得根据你的项目需求修改数据预处理和模型训练部分的代码。
解决 无用评论 打赏 举报 编辑记录-
关注
获得0.30元问题酬金 解决 无用评论 打赏 举报- qq_904477151 2024-05-20 07:43关注
获得0.30元问题酬金 以下参考免费微信小程序:皆我百晓生 作答,并由妄北y整理回复。
Google Speech Commands 数据集是用于关键词检测和语音识别的公开数据集,它包含大量的短音频片段,每个片段对应一个特定的命令词。该数据集由 Google AI 团队发布,并持续更新。
截至我的知识截止日期(2023年),Google Speech Commands 包括以下几个版本:
- V0.0.1:最初的版本,包含30个类别的命令词。
- V0.0.2:增加了一些命令词和背景噪声。
- V1-12:包含12个额外的命令词和背景噪声。
- V2-12:又增加了12个命令词和背景噪声。
要获取这些数据集,你可以按照以下步骤操作:
-
访问 Google Research 网站:首先,访问 Google Research 页面,该页面提供了关于 Google Speech Commands 数据集的详细信息。
-
查找数据集下载链接:在 Google Research 页面上,你应该能够找到数据集的下载链接。通常,这些链接是指向 Google Drive 的。
-
下载数据集:点击相应的链接,你将被重定向到 Google Drive,从那里可以下载整个数据集的压缩文件。
-
使用 Python 脚本下载:如果你希望使用 Python 自动下载数据集,可以编写一个简单的脚本来使用
requests
库或wget
命令下载数据集。例如,使用
requests
的脚本可能如下所示:import requests url = 'https://storage.googleapis.com/download.tensorflow.org/data/speech_commands_v0.0.2.tar.gz' filename = url.split('/')[-1] r = requests.get(url, stream=True) with open(filename, 'wb') as f: for chunk in r.iter_content(chunk_size=1024): if chunk: f.write(chunk)
-
解压缩数据集:下载完成后,解压缩文件以访问数据集。
-
检查数据集版本:确保你下载的是正确的版本。通常,文件名会包含版本信息。
-
使用 PyTorch 加载数据集:如果你希望在 PyTorch 中使用数据集,你可能需要找到或编写一个加载器,该加载器可以处理数据集的特定格式。
请注意,数据集的可用性和链接可能会随时间变化,因此建议直接访问 Google Research 网站或联系数据集的维护者以获取最新信息。如果你在获取数据集时遇到问题,可以考虑联系 Google AI 团队或在相关论坛和社区寻求帮助。
解决 无用评论 打赏 举报 - 专家-皆知 2024-05-20 07:43关注
获得0.15元问题酬金 解决 无用评论 打赏 举报 关注
获得0.30元问题酬金 解决 无用评论 打赏 举报关注
获得0.45元问题酬金 获取Google Speech Commands数据集的不同版本(如V1-12, V2-12)可能需要通过不同的渠道。以下是获取这些数据集的几种方法:
1. 官方Google Speech Commands数据集
官方的Google Speech Commands数据集可以通过以下链接获取:
2. 从TensorFlow数据集获取
可以通过TensorFlow的数据集模块直接下载不同版本的Google Speech Commands数据集。
TensorFlow Datasets (TFDS)
使用TensorFlow Datasets下载不同版本的数据集:
import tensorflow_datasets as tfds # 加载 V1 版本 ds_train_v1 = tfds.load('speech_commands', split='train', version='1.0.0') ds_train_v2 = tfds.load('speech_commands', split='train', version='2.0.0')
3. PyTorch加载自定义数据集
如果需要在PyTorch中使用这些数据集,可以先下载数据集并解压,然后使用PyTorch的自定义数据集类加载它们。
下载和解压数据集
wget https://storage.googleapis.com/download.tensorflow.org/data/speech_commands_v0.01.tar.gz wget https://storage.googleapis.com/download.tensorflow.org/data/speech_commands_v0.02.tar.gz tar -xzvf speech_commands_v0.01.tar.gz tar -xzvf speech_commands_v0.02.tar.gz
PyTorch自定义数据集类
import os import torchaudio from torch.utils.data import Dataset class SpeechCommandsDataset(Dataset): def __init__(self, root_dir, transform=None): self.root_dir = root_dir self.transform = transform self.labels = os.listdir(root_dir) self.filepaths = [] self.targets = [] for idx, label in enumerate(self.labels): files = os.listdir(os.path.join(root_dir, label)) for file in files: self.filepaths.append(os.path.join(root_dir, label, file)) self.targets.append(idx) def __len__(self): return len(self.filepaths) def __getitem__(self, idx): audio_path = self.filepaths[idx] label = self.targets[idx] waveform, sample_rate = torchaudio.load(audio_path) if self.transform: waveform = self.transform(waveform) return waveform, label # 使用自定义数据集类加载数据集 train_dataset_v1 = SpeechCommandsDataset(root_dir='speech_commands_v0.01') train_dataset_v2 = SpeechCommandsDataset(root_dir='speech_commands_v0.02')
4. 从第三方资源获取
有些第三方资源提供了不同版本的Google Speech Commands数据集的镜像或不同版本,以下是一些可能的资源:
在这些平台上,可以找到社区共享的不同版本数据集并下载。
通过以上方法,应该可以获取到不同版本的Google Speech Commands数据集并在PyTorch中使用。如果有其他具体问题或需要进一步帮助,请告诉我。
解决 无用评论 打赏 举报- threenewbee 2024-05-20 08:46关注
获得0.45元问题酬金 解决 无用评论 打赏 举报 - 喵手 2024-05-20 13:42关注
获得0.30元问题酬金 解决 无用评论 打赏 举报 - Java毕设王 2024-05-20 13:55关注
获得0.45元问题酬金 解决 无用评论 打赏 举报 关注
获得0.45元问题酬金 解决 无用评论 打赏 举报- 大黄鸭duck. 2024-05-21 02:53关注
获得0.15元问题酬金 结合GPT给出回答如下请题主参考
Google Speech Commands数据集是一个广泛使用的语音识别数据集,用于识别几种简短的口语命令。该数据集包含约6,000个单词,涵盖了30个不同的类别,每个类别有约2,000个样本。这些样本由来自不同人的声音进行录制,包括男性和女性,不同年龄组和不同口音。获取Google Speech Commands数据集的步骤如下:
下载数据集:首先,我们需要从Google开源项目中下载Speech Commands数据集。可以通过以下链接访问数据集的Google项目页面:https://ai.googleblog.com/2017/08/launching-speech-commands-dataset.html。在该页面上,你可以下载一个zip文件,其中包含了多个数据集文件和一个CSV文件。
解压数据集:下载完成后,将zip文件解压缩到一个合适的目录中。你会发现解压后的文件夹包含了多个子文件夹,每个子文件夹对应一个类别,以及一个CSV文件,其中包含了每个样本的标签和文件路径。
读取数据集:使用Python编程语言,我们可以读取CSV文件,并获取样本的标签和文件路径。下面是示例代码:
import csv # 数据集文件路径 dataset_csv = 'path/to/dataset.csv' # 存储样本标签和文件路径的列表 labels = [] file_paths = [] # 读取CSV文件 with open(dataset_csv, 'r') as file: csv_reader = csv.reader(file) next(csv_reader) # 跳过CSV文件的头部 for row in csv_reader: label = row[0] # 样本标签在CSV文件的第一列 file_path = row[1] # 文件路径在CSV文件的第二列 labels.append(label) file_paths.append(file_path) # 打印前10个样本的标签和文件路径 for i in range(10): print('Label:', labels[i], 'File path:', file_paths[i])
- 加载音频数据:获取到样本文件的路径后,我们可以使用音频处理库(如Librosa)加载音频数据。下面是示例代码:
import librosa # 加载音频数据 def load_audio(file_path): audio, _ = librosa.load(file_path, sr=None) return audio # 加载第一个样本的音频数据 audio = load_audio(file_paths[0]) print('Audio shape:', audio.shape)
以上就是获取Google Speech Commands数据集的详细步骤和代码解释。你可以根据需要修改代码以适应你的实际情况,例如将音频数据用于建立语音识别模型训练。
解决 无用评论 打赏 举报 - 东方佑 2024-05-21 02:57关注
获得0.45元问题酬金 解决 无用评论 打赏 举报 - yy64ll826 2024-05-21 09:17关注
获得0.15元问题酬金 解决 无用评论 打赏 举报 - giser@2011 2024-05-21 15:40关注
获得0.15元问题酬金 解决 无用评论 打赏 举报 关注
获得0.30元问题酬金 结合GPT给出回答如下请题主参考
Google Speech Command 数据集是一个用于语音识别的开源数据集,包含了 30 个常见的英语单词(例如“yes”和“no”),每个单词都有约 4000 个样本。在本文中,我们将详细介绍如何获取和使用这个数据集。首先,我们需要引入一些必要的库和工具。我们将使用 TensorFlow 来处理数据集和构建模型,还会使用 librosa 来处理音频文件。
import tensorflow as tf import numpy as np import os import librosa import librosa.display
Google Speech Command 数据集的原始数据可以从 TensorFlow 官方 GitHub 仓库中获取,链接为 https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/speech_commands。你可以使用
git clone
命令将整个仓库下载到本地。$ git clone https://github.com/tensorflow/tensorflow.git
下载完成后,我们可以在
tensorflow/examples/speech_commands
目录下找到数据集文件夹speech_commands
。在这个文件夹中,每个单词的样本都存储在一个单独的文件夹中,例如yes
文件夹中包含了所有关于“yes”这个单词的音频文件。由于原始数据集中的音频文件格式是
wav
,我们需要将其转换为数值数据来进行后续处理。下面的代码演示了如何读取音频文件并将其转换为音频数据和采样率。def load_audio_file(file_path): data, sr = librosa.load(file_path, sr=None) return data, sr
接下来,我们需要遍历每个单词的文件夹,并将每个音频文件的数据和对应的标签存储在一个列表中。我们将为每个单词分配一个数字标签,例如 “yes” 是 0,”no“ 是 1。
data = [] labels = [] words = ['yes', 'no', 'up', 'down', 'left', 'right', 'on', 'off', 'stop', 'go'] for word in words: word_path = os.path.join("speech_commands", word) for file in os.listdir(word_path): file_path = os.path.join(word_path, file) audio_data, sr = load_audio_file(file_path) data.append(audio_data) labels.append(words.index(word))
在加载所有音频文件后,我们可以使用 TensorFlow 的
train_test_split
函数将数据集划分为训练集和测试集。我们还可以使用tf.data.Dataset
来对训练集进行处理和批量化。data_train, data_test, labels_train, labels_test = train_test_split(data, labels, test_size=0.2) dataset_train = tf.data.Dataset.from_tensor_slices((data_train, labels_train)) dataset_train = dataset_train.batch(32)
现在,我们已经完成了数据集的获取和处理。接下来,我们可以构建模型来进行训练和测试。这里我们使用了一个简单的卷积神经网络(CNN)模型。
model = tf.keras.Sequential([ tf.keras.layers.Conv1D(16, 3, activation='relu', input_shape=(sr, 1)), tf.keras.layers.MaxPooling1D(2), tf.keras.layers.Conv1D(32, 3, activation='relu'), tf.keras.layers.MaxPooling1D(2), tf.keras.layers.Flatten(), tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(len(words), activation='softmax') ])
最后,我们可以使用
model.fit
函数对模型进行训练,并使用测试集评估模型的性能。model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) model.fit(dataset_train, epochs=10) predictions = model.predict(data_test) accuracy = np.mean(np.argmax(predictions, axis=1) == labels_test) print("Test Accuracy:", accuracy)
到此为止,我们已经完成了 Google Speech Command 数据集的获取和使用。希望通过这篇文章,你能够了解如何获取和处理语音识别数据集,并且能够构建一个简单的模型对其进行训练和测试。
解决 无用评论 打赏 举报- Hi 小朋友 2024-05-27 01:37关注
获得0.15元问题酬金 解决 无用评论 打赏 举报 - 杨同学* 2024-05-27 11:51关注
获得0.30元问题酬金 解决 无用评论 打赏 举报 - Minuw 2024-05-27 15:00关注
获得0.30元问题酬金 解决 无用评论 打赏 举报 - GIS工具开发 2024-05-27 15:22关注
获得0.15元问题酬金 解决 无用评论 打赏 举报 - 会跑的小鹿 2024-05-27 15:22关注
获得0.15元问题酬金 解决 无用评论 打赏 举报 - 阿里嘎多学长 2024-05-20 07:42关注解决评论 打赏 举报 编辑记录无用 1
- Kwan的解忧杂货铺@新空间 2024-05-20 07:42关注解决评论 打赏 举报无用 1
关注
解决评论 打赏 举报无用 1