ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

vllm-omni 基准测试:SeedTTS 测试数据集下载与预处理实战指南

vllm-omni 基准测试:SeedTTS 测试数据集下载与预处理实战指南 vllm-omni 基准测试SeedTTS 测试数据集下载与预处理实战指南【免费下载链接】vllm-omniA framework for efficient model inference with omni-modality models项目地址: https://gitcode.com/GitHub_Trending/vl/vllm-omni导读本文是 vllm-omni 仓库中 download_process_data_seedtts.md 的完整展开版。它讲解如何从 Google Drive 下载 SeedTTS 评测数据集、解压并整理出meta.lst元数据文件再通过仓库自带的extract_tts_prompts.py提取出供 TTS 基准测试使用的 prompt 列表。读完本文你将掌握完整的 SeedTTS 数据集准备流程、meta.lst各字段格式的精确定义、仓库内多种自带数据变体的适用场景以及准备后的数据如何接入vllm bench serve --omni的seed-tts/seed-tts-text/seed-tts-design三条 TTS 基准测试链路。一、为什么需要准备 SeedTTS 数据集vllm-omni 的 TTS 通用基准测试benchmarks/tts/bench_tts.py与vllm bench serve --omni支持 Qwen3-TTSBase / CustomVoice / VoiceDesign、VoxCPM2 等模型的性能与质量评测。其中voice_clone任务Qwen3-TTS-Base、VoxCPM2使用seed-tts数据集即来自 BytedanceSpeech seed-tts-eval 评测集的全量语料约 1.2 GB包含meta.lst与prompt-wavs参考音频default_voice与voice_design任务则直接使用仓库内自带的小型文本变体。完整语料并不随仓库分发需要先按本文流程下载、解压、整理然后把它作为--dataset-path指向的本地根目录传入基准工具详见 benchmarks/tts/README.md 的数据集表格与说明。二、前置条件Python 3.8运行extract_tts_prompts.py及后续基准脚本所需gdown用于从 Google Drive 下载数据集压缩包本文第三步会安装可访问 Google Drive数据集托管在 Google Drive 上仓库中的基准脚本即benchmarks/build_dataset/extract_tts_prompts.py克隆仓库后即可使用。三、分步操作指南1. 进入数据集构建目录cd benchmarks/build_dataset该目录位于仓库根目录下同时存放着extract_tts_prompts.py与多个自带数据子目录seed_tts_smoke/、seed_tts_design/、ttsd_smoke/、sound_effect_smoke/结构可查看 benchmarks/build_dataset。2. 安装依赖pip install gdowngdown是 Google Drive 文件下载工具支持通过文件 ID 直接拉取公开文件。3. 下载 SeedTTS 测试数据集gdown 1GlSjVfSHkW3-leKKBlfrjuuTGqQ_xaLP该命令会下载seedtts_testset.tar压缩包内含seedtts_testset/目录。文件 ID1GlSjVfSHkW3-leKKBlfrjuuTGqQ_xaLP对应的是用于 TTS 基准测试的评测集归档与benchmarks/tts/README.md中seed-tts4 字段 meta.lst WAV 参考音频约 1.2 GB这一数据集项一致。4. 解压数据集tar -xf seedtts_testset.tar解压后应得到形如seedtts_testset/locale/meta.lst与seedtts_testset/locale/prompt-wavs/的目录结构。其中locale即语言子目录如en。从源码看数据集加载器正是按{root}/{locale}/meta.lst与{root}/{locale}/prompt-wavs/的布局来定位文件见 vllm_omni/benchmarks/data_modules/seed_tts_dataset.py 的resolve_seed_tts_root与 seed_tts_dataset.py 的load_data因此请保持解压后的目录结构不被改动。5. 准备元数据文件将英文元数据文件复制到工作目录cp seedtts_testset/en/meta.lst meta.lstmeta.lst是数据集的“索引文件”每行描述一条测试样本。基准测试会读取该文件并据此构造请求详见第五节字段格式。若需要使用中文评测集可类似地复制seedtts_testset/zh/meta.lst并在后续基准命令中通过--seed-tts-locale zh指定。6. 提取 Prompt 列表# 提取前 100 条 prompt调整 -n 可提取不同数量 python extract_tts_prompts.py -i meta.lst -o top100.txt -n 100该脚本读取meta.lst从每行的**第二个字段prompt 文本**中提取内容输出为每行一条 prompt 的纯文本文件。脚本实现在 extract_tts_prompts.py 中核心逻辑如下逐行读取输入文件跳过空行以|分割取索引为 1 的字段parts[1]作为 prompt处理到第num_lines行即停止将结果逐行写入输出文件并打印统计信息Extracted {n} prompts from first {m} lines与输出路径。命令行参数参数说明默认值是否必填-i, --input输入meta.lst文件路径meta.lst否-o, --output输出 prompt 文件路径prompts.txt否-n, --num-lines需要提取的 prompt 条数从文件开头计数—是此外脚本在入口处会校验输入文件是否存在不存在时打印Error: Input file ... not found并直接返回见 extract_tts_prompts.py因此请务必先完成第 5 步。7. 清理临时文件可选rm -rf seedtts_testset rm seedtts_testset.tar rm meta.lst评测集归档与解压目录体积较大约 1.2 GB 级别在提取出 prompt 列表后可删除以释放磁盘空间。若后续还需要运行voice_clone基准需要参考音频则应保留seedtts_testset/与meta.lst因为基准测试会读取其中的 WAV 文件构造ref_audio请求体。四、一键快速开始All-in-One以下命令串起“下载 → 解压 → 整理 → 提取 → 清理”全流程# 完整设置并准备基准输入 cd benchmarks/build_dataset pip install gdown gdown 1GlSjVfSHkW3-leKKBlfrjuuTGqQ_xaLP tar -xf seedtts_testset.tar cp seedtts_testset/en/meta.lst meta.lst python extract_tts_prompts.py -i meta.lst -o top100.txt -n 100 rm -rf seedtts_testset seedtts_testset.tar meta.lst执行完成后benchmarks/build_dataset/top100.txt即为可直接供下游脚本消费的 100 条 prompt 文件。五、meta.lst 格式深度解析理解meta.lst的字段格式是正确准备与使用数据集的根本。从 vllm_omni/benchmarks/data_modules/seed_tts_dataset.py 的模块文档与_parse_meta_line实现seed_tts_dataset.py可以确认seed-tts-eval 风格的 4 字段格式为utt_id|prompt_transcript|prompt_wav_relative_path|text_to_synthesize字段含义utt_id样本唯一标识如smoke001、vd001prompt_transcript参考音频对应的文本转写voice clone 的ref_textprompt_wav_relative_path参考音频相对{root}/{locale}/的路径voice clone 的ref_audiotext_to_synthesize需要模型合成的目标文本即请求中的 prompt解析器的行为细节同样值得注意空行与以#开头的注释行会被直接跳过seed_tts_dataset.py字段数少于 4 的行会被判定为畸形并跳过同时打印Skipping malformed meta.lst line警告目标文本为空的样本会被过滤seed_tts_dataset.py加载后可选的洗牌由random_seed默认 0控制关闭洗牌可用disable_shuffleseed_tts_dataset.py。仓库自带数据与全量数据集遵循同一格式家族可作为快速上手或 CI 冒烟测试的替代输入详见下一节。六、仓库自带的多种数据集变体benchmarks/build_dataset/目录下随仓库分发了几组轻量级meta.lst无需下载即可用于冒烟测试或功能验证变体路径格式用途seed_tts_smokeseed_tts_smoke/en/meta.lst4 字段仅文本音频列留空30 条Qwen3-TTS-CustomVoicedefault_voice冒烟--dataset-name seed-tts-textseed_tts_designseed_tts_design/en/meta.lst5 字段目标文本 自然语言音色描述30 条Qwen3-TTS-VoiceDesignvoice_design--dataset-name seed-tts-designttsd_smokettsd_smoke/en/meta.lst多说话人对话形式[S1]/[S2]轮次标记TTS 对话turn场景冒烟sound_effect_smokesound_effect_smoke/en/meta.lst音效描述 时长秒音效生成类模型冒烟其中seed_tts_design的 5 字段格式是在 4 字段基础上追加音色设计描述instructions用于VoiceDesign任务的零样本音色指令合成。相关解析与校验逻辑可参考测试 tests/benchmarks/test_seed_tts_dataset_variants.py字段数不足 5 的行会被过滤缺少描述的行会被拒绝。七、与 vllm bench serve 的衔接准备完成的数据集最终要接入 TTS 基准测试。以voice_clone任务为例完整命令见 benchmarks/tts/README.mdvllm bench serve --omni \ --host 127.0.0.1 --port 8000 \ --model Qwen/Qwen3-TTS-12Hz-1.7B-Base \ --backend openai-audio-speech \ --endpoint /v1/audio/speech \ --dataset-name seed-tts \ --dataset-path /path/to/seed-tts-eval \ --seed-tts-locale en \ --num-prompts 20 --num-warmups 2 \ --extra-body {task_type:Base} \ --max-concurrency 1 --request-rate inf \ --percentile-metrics ttft,e2el,audio_rtf,audio_ttfp,audio_duration,audio_underrun \ --save-result --result-dir ./results关键衔接点--dataset-path指向本文解压出的seedtts_testset目录源码中resolve_seed_tts_root会按{root}/{locale}/meta.lst布局解析见 seed_tts_dataset.py--dataset-name seed-tts对应 4 字段 WAV 的全量格式若使用seed_tts_smoke这种纯文本变体则改用--dataset-name seed-tts-text--seed-tts-locale en选择语言子目录en或zh默认情况下参考音频会以data:audio/wav;base64,...内联进请求体因此服务端无需--allowed-local-media-path如需减小请求体可改用file://形式并给服务端配置媒体路径白名单seed_tts_dataset.py。仓库数据集对应关系总结摘自 benchmarks/tts/README.md数据集是否随仓库分发格式来源seed-tts-design✅5 字段 meta.lst仓库内 seed_tts_design/en/meta.lstseed_tts_smoke✅4 字段 meta.lst仅文本仓库内 seed_tts_smoke/en/meta.lstseed-tts❌4 字段 meta.lst WAV本文流程下载的 Google Drive 归档约 1.2 GBseed-tts-text❌4 字段 meta.lst忽略 WAV 列与seed-tts同一归档八、常见问题与注意事项gdown下载失败或网络不可达数据集托管在 Google Drive需要可访问的下载环境下载完成后可先ls seedtts_testset/确认目录结构完整再继续解压后的步骤。FileNotFoundError: Seed-TTS meta not found通常是--dataset-path指向的根目录下缺少{locale}/meta.lst或解压后目录结构被改动请对照第五节的布局检查。提取数量与基准规模匹配extract_tts_prompts.py的-n决定提取条数基准命令的--num-prompts决定实际发送的请求数两者可按需配合如先提取 200 条基准时只跑 20 条用于快速验证200 条用于质量评估。清理时机仅需文本 prompt 时可在提取后删除归档与解压目录但voice_cloneseed-tts与 WER/SIM/UTMOS 质量评估需要参考 WAV 与转写务必在完成这些基准后再清理。语音克隆任务的模型限制-CustomVoice检查点不携带speaker_encoder权重voice_clone 请求会在模型运行时抛出ValueError因此 voice_clone 必须使用-Base检查点见 benchmarks/tts/README.md。九、参考与延伸数据集准备流程本指南对应的仓库原文 download_process_data_seedtts.mdPrompt 提取脚本实现extract_tts_prompts.pyTTS 通用基准测试总览与数据集映射benchmarks/tts/README.md数据集加载器meta.lst 解析、locale 布局、内联音频vllm_omni/benchmarks/data_modules/seed_tts_dataset.py质量评估协议WER/SIM/UTMOSvllm_omni/benchmarks/data_modules/seed_tts_eval.py数据集变体行为测试tests/benchmarks/test_seed_tts_dataset_variants.py完成数据准备后即可将--dataset-path指向解压出的seedtts_testset目录配合vllm bench serve --omni运行端到端的 TTS 吞吐、延迟与音质基准测试。【免费下载链接】vllm-omniA framework for efficient model inference with omni-modality models项目地址: https://gitcode.com/GitHub_Trending/vl/vllm-omni创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表