SuperAPI AI 工具集

doubao-tts

智能体与模型

查看项目

更新于 11-08 16:04

技能介绍

用途

Doubao TTS 用于生成普通话和多语种旁白,基于火山引擎豆包语音 2.0。适合制作中文配音、视频旁白等需要语音合成的场景。

主要能力

  • 支持普通话及多语种语音合成。
  • 提供同步与异步两种调用方式;长视频旁白建议使用异步接口:
    • POST https://openspeech.bytedance.com/api/v3/tts/submit
    • POST https://openspeech.bytedance.com/api/v3/tts/query
  • 异步接口返回 audio_url 以及 sentences[].words[] 时间戳元数据,可用于构建字幕。
  • 可通过参数控制音色、语速、采样率,并可启用时间戳和用量元数据返回。

使用方式

先在 .env 中配置 DOUBAO_SPEECH_API_KEY,并可用 DOUBAO_SPEECH_VOICE_TYPE 设置默认音色,或在调用时传入 voice_id。

新控制台 API Key 认证方式:

  • X-Api-Key: ${DOUBAO_SPEECH_API_KEY}
  • X-Api-Resource-Id: seed-tts-2.0

不要将 X-Api-App-Id 和 X-Api-Access-Key 与新控制台 API Key 混用。

通过 TTS 选择器生成:

from tools.audio.tts_selector import TTSSelector

result = TTSSelector().execute({ "preferred_provider": "doubao", "text": "如果 AI 真的会改变未来,普通人到底该怎么参与?", "voice_id": "zh_female_vv_uranus_bigtts", "output_path": "projects/my-video/assets/audio/narration.mp3", "speech_rate": 0, "enable_timestamp": True, })

或直接调用提供者:

from tools.audio.doubao_tts import DoubaoTTS

result = DoubaoTTS().execute({ "text": "短样本试听文本。", "voice_id": "zh_female_vv_uranus_bigtts", "output_path": "projects/my-video/assets/audio/doubao_sample.mp3", })

提供者会写出 output_path(下载的音频文件)和 metadata_path(完整查询响应 JSON,默认为 <output_path>.json)。

参数

  • voice_id:豆包音色/voice type,默认取 DOUBAO_SPEECH_VOICE_TYPE。
  • resource_id:豆包语音 2.0 音色使用 seed-tts-2.0。
  • speech_rate:0 为正常,100 为 2 倍,-50 为 0.5 倍。
  • sample_rate:默认 24000。
  • enable_timestamp:默认 true。
  • return_usage:默认 true,在可用时请求用量元数据。

默认不要传 additions.explicit_language,部分端点与密钥组合会因不支持 zh-cn 而报错。

推荐工作流

  1. 在完整付费旁白前先生成 10-15 秒样本。
  2. 请用户确认音色自然度、口音和语速。
  3. 确认后再生成完整旁白。
  4. 保留查询 JSON,它可作为字幕时间的依据。
  5. 基于 sentences[].words[] 构建字幕,不要按文本长度估算。
  6. 先按中文语义短语分组,再应用时间戳;不要只按固定字符数切分,以免拆断短语影响理解。
  7. 除非用户明确要求匹配既有成片时长,否则视频时长应跟随已确认的语音节奏。

对于平静的中文讲解,可先使用 speech_rate: 0;若结果超出已确认格式的时长,可先用 speech_rate: 25 或 50 生成简短对比样本,再决定是否重新生成完整旁白。

限制与排错

  • load grant: requested grant not found:密钥类型或认证头错误,新控制台 API Key 应使用 X-Api-Key。
  • speaker permission denied:voice id 错误或未对所选资源授权。
  • quota exceeded:配额、字符额度或并发超限。
  • 缺少时间戳:确认 enable_timestamp 为 true,保留查询 JSON,并确认所选端点返回了 sentences。

安全要求:不得将 API Key 打印或写入日志、元数据、补丁或项目产物;.env.example 只应包含空变量名。