高级数据准备¶
高级管道在基础 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