ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

RescueSpeech 数据集全解析:面向搜救场景的德语 ASR 与语音增强数据(SpeechBrain)

RescueSpeech 数据集全解析:面向搜救场景的德语 ASR 与语音增强数据(SpeechBrain) RescueSpeech 数据集全解析面向搜救场景的德语 ASR 与语音增强数据SpeechBrain【免费下载链接】speechbrainA PyTorch-based Speech Toolkit项目地址: https://gitcode.com/GitHub_Trending/sp/speechbrain本指南以 SpeechBrain 仓库内 RescueSpeech 数据集说明文档 为主体系统讲解该数据集的采集规格、双任务自动语音识别 ASR 与语音增强 Speech Enhancement组织方式、train/test/dev 划分策略、逐说话人统计以及五类搜救场景噪声。读完本文你将掌握 RescueSpeech 数据集的完整结构、如何在 SpeechBrain 中通过数据准备脚本将其转换为可训练 CSV以及配套的 SepFormer Whisper 噪声鲁棒 ASR 配方如何消费这些数据。数据集概览来源与基本规格RescueSpeech 是一份德语语音数据集其音频来自真实的模拟搜救Search and Rescue, SAR演习。根据 dataset.md 的说明其关键规格如下内容由母语为德语German, DE的说话人在模拟搜救演习中录制的真实语音采样规格原始录音以 44.1 kHz 采集后下采样至 16 kHz并整理为单说话人、单声道mono-speaker, single channel的音频文件隐私处理为保护说话人身份说话人姓名已匿名化以spk01、spk02等 ID 标识其中部分录音无法确定说话人使用?标记用途定位面向搜救真实场景支撑 ASR 与语音增强两方面的研究帮助开发能在搜救作业中应对真实噪声环境的鲁棒系统。仓库配套的 README.md 给出了数据集 DOI10.5281/zenodo.8077622对应的学术论文为 arXiv:2306.04054*RescueSpeech: A German Corpus for Speech Recognition in Search and Rescue Domain*。SpeechBrain 侧围绕该数据集提供了噪声鲁棒语音识别配方recipes/RescueSpeech 目录并已发布预训练模型。双任务组织Task_ASR与Task_enhancement数据集以两个压缩包形式分发分别服务于 ASR 和语音增强两类任务Task_ASR.tar.gzASR 任务总时长约 1 小时 36 分钟。核心组织方式是干净-带噪配对clean-noisy pairs带噪语音由干净语音叠加来自 AudioSet 数据集的五类噪声污染合成。数据集包含 2412 条干净语音并合成了等量2412 条对应的带噪语音。此外还提供合成带噪语音所用的噪声波形文件noise waveform files以保证研究社区的可复现性与透明性。Task_enhancement.tar.gz语音增强任务规模大于 ASR 任务包目标是支撑语音增强模型的微调重点针对下述五类搜救噪声。由于可用干净音频仅 1 小时 36 分钟数据集的构建方式是从单条干净语音出发合成多条不同噪声类型、不同信噪比SNR水平的带噪语音——即通过数据增强手段扩展语料规模同时保持原始说话人分布。五类噪声源自 AudioSet 数据集贯穿两个任务包Emergency vehicle and siren noise紧急车辆与警笛噪声Breathing呼吸声Engine引擎噪声Chopper直升机旋翼噪声Static and radio noise静态/无线电噪声ASR 任务数据集统计与噪声合成Task_ASR包的总体统计见 dataset.md Task: ASR- Dataset details 一节指标数值录音总数2412总时长1:36:10说话人数26说话人未确定以?标记的录音数38平均时长2.39 秒最长时长15 秒最短时长0.28 秒在 SpeechBrain 的数据准备脚本 rescuespeech_prepare.py 中可以看到噪声合成的产物如何被组织create_asr_csv()通过遍历train.tsv/dev.tsv/test.tsv为每条录音同时定位audio_files/clean/干净语音、audio_files/noisy/带噪语音与audio_files/noise/噪声波形三个目录下的对应文件并生成包含以下列的 CSVID, duration, clean_wav, noisy_wav, clean_noisy_mix, noise_wav, noise_type, snr_level, spk_id, wrd其中值得注意的实现细节clean_noisy_mix列交替指向干净与带噪文件脚本通过idx % 2在干净/带噪路径间交替取值这服务于训练时一半数据用干净语音、一半用带噪语音的常见增强策略SNR 水平从带噪文件名中解析带噪文件命名包含snr字段如..._snr5_...脚本用item.replace(snr, )提取数值噪声类型匹配脚本内置五类噪声的规范名称列表Breathing-noise、Emergency-vehicle-and-siren-noise、Engine-noise、Chopper-noise、Static-radio-noise通过文件名子串匹配确定noise_type时长一致性校验脚本读取干净与带噪音频的num_frames / sample_rate若两者时长不一致会打印 Length mismatch detected 告警文本清洗转写文本会经过 Unicode 规范化、去除非字母数字字符、保留ß防止upper()将其转换为SS、可选去除重音accented_lettersFalse时并过滤掉词数少于 3 的过短句子。划分策略分层采样与逐说话人分布为避免数据泄露并保证评估集代表性数据集采用分层采样stratified sampling先识别数据集中的全部唯一说话人再随机抽取一部分说话人进入 test/dev 集其余说话人归入 train 集。这种按说话人划分的方式确保 test/dev 集中包含对总体说话人分布有代表性的样本。三个划分的总体统计如下划分文件数总时长说话人数涉及说话人Train159161.86 分钟17spk01, spk02, spk05, spk07, spk08, spk09, spk10, spk11, spk12, spk13, spk16, spk19, spk20, spk21, spk22, spk23, spk25Test57624.68 分钟5spk03, spk06, spk15, spk24, ?Dev2459.61 分钟4spk04, spk14, spk17, spk18逐说话人录音数量明细dataset.md 给出了每个说话人在三个集合train.tsv / test.tsv / dev.tsv中的录音数量全表Speaker IDtrain.tsvtest.tsvdev.tsvTotal?038038spk0121100211spk0250200502spk0303440344spk0400204204spk0526600266spk0601640164spk0725700257spk08250025spk09480048spk10240024spk11270027spk127007spk137007spk14001212spk15015015spk168008spk170044spk18002525spk197007spk20370037spk2110200102spk22130013spk23490049spk24015015spk251001Totals15915762452167注?表示说话人无法确定的录音表内 Train/Test/Dev 合计为 2167而 ASR 总录音数为 2412二者之差对应数据准备阶段过滤掉的过短少于 3 个词等不合格样本。语音增强任务数据集规模Task_enhancement包的划分规模见 dataset.md Task: Speech enhancement- Dataset details 一节集合# wav 文件数总长度Train45017.2 小时Valid1351130 分钟Test1351130 分钟增强数据包通过同一干净语音 × 多种噪声类型 × 多种 SNR 水平的合成方式扩充而来因此规模远超 ASR 包。数据准备脚本中的create_enhance_csv()对应处理该结构它按train/valid/test三个 split 目录分别从clean/、noise/、noisy/三个子目录收集 wav 文件按文件名中fileid_后的数字升序排序以保证 clean/noise/noisy 三路一一对齐并写入包含ID, language, duration, clean_wav, noise_wav, noisy_wav含各自 format/opts 列的 CSV语言标记为de。SpeechBrain 配套配方SepFormer Whisper 联合训练RescueSpeech 在 SpeechBrain 中的主配方位于 recipes/RescueSpeech/ASR/noise-robust由 README 描述为简单组合一个语音增强模型SepFormer与一个 ASR 模型Whisper的最佳方案两者联合训练以对抗噪声干扰。模型参数文件 sepformer.yaml 定义了增强部分的网络结构Encoderkernel_size16、kernel_stride8、输出通道 256speechbrain.lobes.models.dual_path.Encoder两个SBTransformerBlockintra 与 inter各 8 层 Transformer、d_model256、nhead8、d_ffn1024Dual_Path_ModelMaskNetnum_spks1、K250、LayerNorm用于估计掩码Decoder 将估计源信号还原为波形。训练超参数见 robust_asr_16k.yaml几个关键点模型与数据ASR 使用openai/whisper-large-v2语言设为german任务为transcribe数据文件夹为--data_folder占位符对应解压后的Task_ASR.tar.gz冻结/解冻策略frozen_models: [encoder, decoder, masknet, whisper]unfrozen_models: [masknet, whisper]前epochs_before_lr_drop: 2个 epoch 全部冻结从第 3 个 epochunfreeze_epoch起解冻 MaskNet 与 Whisper 参与训练联合损失增强损失使用get_si_snr_with_pitwrapperASR 损失使用 NLLsepformer_weight: 0.1、asr_weight: 1在 train.py 的fit_batch()中相加后统一反向传播训练细节10 个 epoch、lr_whisper: 3e-5AdamW NewBobScheduler、batch_size: 2注释说明 DDP 下每卡需 2 以适配 16GB 显存、test_beam_size: 8、按avoid_if_longer_than: 10.0过滤超过 10 秒的样本对应开放式麦克风长录音、速度扰动speed_changes: [95, 100, 105]。README.md 还提示了算力需求由于 Whisperlarge-v2约 906.5M 参数原文 1.5B 参数但特征编码器被冻结联合微调 SepFormer 与 Whisper 时使用了 NVIDIA A100-80GB GPU约每 epoch 15 分钟。运行与复现安装额外依赖extra_requirements.txt 含mir_eval、pesq、pystoipip install -r extra_requirements.txt完整训练cd recipes/RescueSpeech/ASR/noise-robust python train.py hparams/robust_asr_16k.yaml --data_folderdata_folder_path其中data_folder_path指向解压后的Task_ASR.tar.gz目录。仅跑测试集时追加--test_only标志。仓库的配方测试注册表 tests/recipes/RescueSpeech.csv 展示了用tests/samples/下的样例数据做 1 个 epoch 冒烟测试的等价调用--number_of_epochs1 --skip_prepTrue可作为快速验证运行链路的参考。训练过程中的评估会在验证/测试阶段计算 WER、CER、PESQ并在测试结束后通过save_results()输出逐句与平均的 SI-SNR、SI-SNRi、SDR、SDRi、PESQ、STOI 至test_results.csv同时可选保存增强后的 wav 供人工试听save_audio: True。已发布结果README.md 报告了联合微调ASR 与增强均不冻结、两个损失都参与回传后的最佳结果模型SISNRiSDRiPESQSTOIWERWhisper (large-v2)7.4828.0112.0830.85445.29预训练模型的微调路径为先在 Microsoft-DNS 上训练 SepFormer 增强模型 → 用 RescueSpeech 增强数据微调 → 用 RescueSpeech ASR 数据微调 Whisper → 两者再用 ASR 数据联合微调即上表最佳模型HuggingFace 与 Dropbox 链接见 README.md。联系人与致谢数据集的联系人信息如下详见 dataset.md主要联系人Bernd Kieferbernd.kieferdfki.de其他联系人Ivana Kruijff‑Korbayováivana.kruijffrettungsrobotik.de、Sangeet Sagarsangeetsagar2020gmail.com该工作受 A-DRZ 项目Setting up the German Rescue Robotics Center支持由德国联邦教育与研究部BMBF资助资助号 I3N14856。使用数据集的引用信息Zenodo DOI 与论文 BibTeX可在 README.md 中找到。小结RescueSpeech 是首个面向德语搜救场景、同时覆盖 ASR 与语音增强双任务的公开语料它以 2412 条干净语音配 2412 条五类噪声污染的带噪语音支撑 ASR又以单条干净语音 × 多噪声 × 多 SNR的合成策略扩展出 7200 条增强样本按说话人分层采样得到互不重叠的 train/test/dev 划分。配合 SpeechBrain 提供的 数据准备脚本 与 SepFormer Whisper 联合训练配方研究者可以端到端复现搜救场景下的噪声鲁棒语音识别实验。【免费下载链接】speechbrainA PyTorch-based Speech Toolkit项目地址: https://gitcode.com/GitHub_Trending/sp/speechbrain创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表