2026-07-08 08:57:50 +00:00

4.7 KiB
Raw Permalink Blame History

Seed-TTS-Eval

概述

Seed-TTS-Eval 是一个用于零样本文本到语音TTS和语音转换评估的客观基准测试。它使用来自 Common Voice 和 DiDiSpeech-2 的域外英文和中文样本,官方评估重点关注语音可懂度和说话人一致性。

任务描述

  • 任务类型:零样本文本到语音生成
  • 输入:参考说话人音频、提示文本转录和目标文本
  • 输出:使用参考说话人声音合成的目标文本语音音频
  • 语言:英文和中文

评估说明

  • 默认子集:enzh
  • 被评估的 TTS 模型必须返回 ContentAudio 类型的生成音频,或在 completion 文本中返回音频路径、URL 或 data URI
  • EvalScope 为 HTTP TTS 服务提供 eval_type="text2speech" 配置:
    • Volcengine 提供商:配置 model="seed-tts-2.0"api_url="https://openspeech.bytedance.com/api/v3/tts/unidirectional"model_args={"speaker": "..."}
    • OpenAI 提供商:配置 model="tts-1"(或 tts-1-hd)、api_url="https://api.openai.com/v1"model_args={"provider": "openai", "voice": "nova"}
  • 默认指标:audio_wer,该指标通过兼容 OpenAI 的 /audio/transcriptions 端点对生成的音频进行转录,并结合语言特定的归一化计算 WER/CER 风格的错误率
  • 可通过 metric_list 配置 ASR 端点,或设置环境变量 SEED_TTS_EVAL_ASR_API_BASESEED_TTS_EVAL_ASR_API_KEYSEED_TTS_EVAL_ASR_MODELSEED_TTS_EVAL_ASR_API_PROTOCOL
  • 对于 Volcengine Ark 的 audio-understanding 模型,请设置 api_protocol="responses" 并使用支持音频输入的模型,例如 doubao-seed-2-0-lite-260428
  • 说话人相似度是官方基准测试的一部分,但需要单独的说话人验证后端,默认未启用

属性

属性
基准测试名称 seed_tts_eval
数据集ID evalscope/Seed-TTS-Eval
论文 Paper
标签 Audio, TextToSpeech
指标 audio_wer
默认样本数 0-shot
评估划分 train

数据统计

指标
总样本数 3,108
提示词长度(平均) 243.31 字符
提示词长度(最小/最大) 193 / 376 字符

各子集统计数据:

子集 样本数 提示词平均长度 提示词最小长度 提示词最大长度
en 1,088 304.3 224 376
zh 2,020 210.46 193 231

音频统计数据:

指标
音频文件总数 3,108
每样本音频数量 最小: 1, 最大: 1, 平均: 1
格式 wav

样例示例

子集: en

{
  "input": [
    {
      "id": "ffd452c5",
      "content": [
        {
          "audio": "[BASE64_AUDIO: wav, ~183.0KB]",
          "format": "wav"
        },
        {
          "text": "Use the reference audio and prompt transcript to synthesize the target text in the same speaker voice.\nPrompt transcript: We asked over twenty different people, and they all said it was his.\nTarget text: Get the trust fund to the bank early.\nReturn only the generated audio."
        }
      ]
    }
  ],
  "target": "Get the trust fund to the bank early.",
  "id": 0,
  "group_id": 0,
  "subset_key": "en",
  "metadata": {
    "filename": "common_voice_en_10119832-common_voice_en_10119840",
    "prompt_text": "We asked over twenty different people, and they all said it was his.",
    "text": "Get the trust fund to the bank early.",
    "prompt_audio_path": "prompt-wavs/common_voice_en_10119832.wav",
    "reference_audio_path": "wavs/common_voice_en_10119832-common_voice_en_10119840.wav",
    "language": "en",
    "wer_language": "en"
  }
}

提示模板

提示模板:

Use the reference audio and prompt transcript to synthesize the target text in the same speaker voice.
Prompt transcript: {prompt_text}
Target text: {text}
Return only the generated audio.

使用方法

使用 CLI

evalscope eval \
    --model YOUR_MODEL \
    --api-url OPENAI_API_COMPAT_URL \
    --api-key EMPTY_TOKEN \
    --datasets seed_tts_eval \
    --limit 10  # 正式评估时请删除此行

使用 Python

from evalscope import run_task
from evalscope.config import TaskConfig

task_cfg = TaskConfig(
    model='YOUR_MODEL',
    api_url='OPENAI_API_COMPAT_URL',
    api_key='EMPTY_TOKEN',
    datasets=['seed_tts_eval'],
    dataset_args={
        'seed_tts_eval': {
            # subset_list: ['en', 'zh']  # 可选,评估指定子集
        }
    },
    limit=10,  # 正式评估时请删除此行
)

run_task(task_cfg=task_cfg)