跳转至

高级数据准备

高级管道在基础 Token 化工作流之上增加了去噪和prompt 噪声增强。每个阶段都是可选的。

先决条件

  • 去噪:来自 https://huggingface.co/sarulab-speech/sidon-v0.1/tree/main 的 Sidon 模型检查点(feature_extractor_cuda.pt、decoder_cuda.pt)。
  • 噪声增强:带有 data.lst 清单的噪声 + RIR tar 分片

管道概览

Step 1 (optional): Denoise
  Raw audio → Sidon denoiser → clean audio

Step 2: Tokenize (with optional noise augmentation)
  Clean audio + noise augment on prefix → audio tokenizer → tokens

去噪

使用 Sidon 语音增强模型从原始音频中去除背景噪声。

export CUDA_VISIBLE_DEVICES="0,1,2,3"
python -m omnivoice.scripts.denoise_audio \
    --input_jsonl data.jsonl \
    --tar_output_pattern data/denoised/audios/shard-%06d.tar \
    --jsonl_output_pattern data/denoised/txts/shard-%06d.jsonl \
    --feature_extractor_path /path/to/sidon_feature_extractor_cuda.pt \
    --decoder_path /path/to/sidon_decoder_cuda.pt \
    --target_sample_rate 24000 \
    --batch_duration 200.0

其作用: 1. 读取你的 JSONL 清单 2. 对每个音频文件运行 Sidon 去噪器 3. 将去噪后的音频输出为自定义 WebDataset tar/jsonl 分片 4. 在 data/denoised/ 中生成 data.lst 清单

如果你已经有自定义 webdataset 格式的数据集,也可以传递 --input_manifest /path/to/data.lst。 下一步是将生成的 data.lst 文件通过 --input_manifest 传递给 omnivoice.scripts.extract_audio_tokens 以进行 Token 提取。

带噪声增强的 Token 化

在 Token 化过程中向 prompt 音频添加环境噪声和房间混响,使模型在推理时对嘈杂的参考音频具有鲁棒性。请注意,在我们的模型中,我们只对一小部分数据添加噪声增强,以确保模型在参考音频干净的情况下也能生成良好的音频。

你需要两个基于 WebDataset 格式的额外数据集: - 噪声录音:带有 data.lst 清单的环境噪声 tar 分片 - 房间脉冲响应(RIR):带有 data.lst 清单的 RIR tar 分片

export CUDA_VISIBLE_DEVICES="0,1,2,4"
python -m omnivoice.scripts.extract_audio_tokens_add_noise \
    --input_jsonl data.jsonl \
    --tar_output_pattern data/tokens/shard-%06d.tar \
    --jsonl_output_pattern data/txts/shard-%06d.jsonl \
    --tokenizer_path eustlb/higgs-audio-v2-tokenizer \
    --noise_manifest data/noise_shards/data.lst \
    --rir_manifest data/rir_shards/data.lst \
    --nj_per_gpu 3

如果你已经有自定义 webdataset 格式的数据集,也可以传递 --input_manifest /path/to/data.lst。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 om/VoiceStudio