m0_65354641 2024-05-20 15:42 采纳率: 0%
浏览 28
已结题

Google speech command 数据集获取

#在关键字检测领域,一个比较流行的数据集就是Google Speech Commands,但是目前根据链接或者是在pytorch中直接下载,都是下载的30类别+background_noise。
如何找到它的V1-12,V2-12等其他版本的数据集?

  • 写回答

23条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-20 15:42
    关注
    获得0.45元问题酬金

    引自免费微信小程序:皆我百晓生

    要获取Google Speech Commands不同版本(如V1-12, V2-12)的数据集,你需要直接访问Google Research的GitHub仓库,因为官方并未提供通过PyTorch或者其他库直接下载特定版本数据集的选项。以下是获取不同版本数据集的步骤:

    1. 首先,打开Google Research的GitHub仓库:https://github.com/google/speech_commands

    2. 在GitHub页面上,你会看到各个版本的标签。例如,如果你想获取V1的数据集,你应该找到名为v0.01的标签,V2的数据集对应v1.0,以此类推。点击对应的标签名,例如v0.01会跳转到该版本的分支页面。

    3. 从该分支页面,找到并点击data文件夹下的speech_commands_v0.01.tar.gz(或其他类似格式的压缩包,具体取决于你要的版本)。这将开始下载这个版本的数据集。

    4. 下载完成后,解压压缩包,然后你可以按照官方提供的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进行模型训练和评估了
    

    这段代码首先定义了一些辅助函数,用于加载音频文件、加载整个数据集、以及对数据进行预处理。接下来,根据你的数据目录和感兴趣的目标类别(在这个例子中是基本的语音命令),加载数据并进行预处理。最后,数据被划分为训练集和测试集,准备用于模型训练。记得根据你的项目需求修改数据预处理和模型训练部分的代码。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月28日
  • 创建了问题 5月20日

悬赏问题

  • ¥15 短剧的sdk在哪里接入
  • ¥15 求:可不可以提供一些 在国内可以用,低代码不要太难 在电脑上可以下载的 制作app的软件
  • ¥60 找人回答kibana8.14.3二次集成开发,自定义插件ui导航栏如何设置
  • ¥15 fluke高精度万用表8845A型号测交流电压一直跳动,且去掉输入后显示不归零
  • ¥15 不同模型怎么用同一个shader
  • ¥15 安卓启动没有ais proxy与v4l2的log打印
  • ¥15 go怎么读取mdb文件里面的数据
  • ¥60 Matlab联合CRUISE仿真编译dll文件报错
  • ¥15 脱敏项目合作,ner需求合作
  • ¥15 脱敏项目合作,ner需求合作