SuperAPI AI 工具集

doubao-tts

通用与其它

查看项目

更新于 10-15 14:37

技能介绍

Doubao TTS 是 OpenMontage 项目中的一个语音合成(TTS)工具,基于火山引擎豆包语音 2.0(Volcengine Doubao Speech 2.0),用于生成普通话和多语言旁白。它适用于创建中文配音,或用户偏好豆包音色的场景。

用途 该工具主要用于将文本合成为语音旁白,尤其适合中文视频配音。资料中给出的示例文本为中文,并推荐用于长视频旁白。

主要能力

  • 支持普通话及多语言旁白生成。
  • 支持通过 voice_id 或环境变量 DOUBAO_SPEECH_VOICE_TYPE 指定默认音色。
  • 支持语速控制(speech_rate)、采样率(sample_rate)、时间戳(enable_timestamp)和用量元数据(return_usage)等参数。
  • 长视频旁白推荐使用异步接口:POST https://openspeech.bytedance.com/api/v3/tts/submit 和 POST https://openspeech.bytedance.com/api/v3/tts/query。异步接口返回 audio_url 以及 sentences[].words[] 时间元数据,可用于构建字幕。
  • 提供 TTSSelector 选择器和直接调用 DoubaoTTS 两种使用方式。

使用方式 需要配置环境变量 DOUBAO_SPEECH_API_KEY(在 .env 中)。使用新控制台 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 一起使用。如果 API 返回 load grant: requested grant not found,通常表示密钥类型或认证头有误。

通过 TTSSelector 生成: 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。

推荐工作流

  1. 在生成完整付费旁白前,先生成 10-15 秒的样本。
  2. 请用户确认音色自然度、口音和语速。
  3. 仅在获得批准后生成完整旁白。
  4. 保留查询 JSON,它是字幕时间信息的唯一来源。
  5. 基于 sentences[].words[] 构建字幕,而不是根据文本长度估算。
  6. 在应用时间戳前,按中文语义短语对字幕分组。不要仅按固定字符数拆分,否则可能破坏“在不押单个公司的情况下”或“可能会被慢慢稀释”这类短语,影响理解。
  7. 除非用户明确要求匹配之前的时长,否则视频时长应跟随已批准的语音节奏。

参数

  • voice_id:豆包说话人/音色。默认使用 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,并返回 unsupported additions explicit language zh-cn。 对于平静的普通话讲解,建议从 speech_rate: 0 开始。如果结果对于已批准的格式太长,先用 speech_rate: 25 或 50 制作一个简短对比样本,再重新生成完整旁白。如果用户偏好豆包的自然节奏,不要仅为匹配之前提供者的时长而加速。

适用场景

  • 中文视频配音、旁白制作。
  • 需要字幕时间元数据的视频项目。
  • 多语言旁白生成。
  • 在 OpenMontage 工作流中通过 TTSSelector 选择豆包作为提供者。

限制与注意事项

  • 需要有效的 DOUBAO_SPEECH_API_KEY。
  • 新控制台 API Key 必须使用 X-Api-Key 认证头,不能与 X-Api-App-Id 和 X-Api-Access-Key 混用。
  • 常见错误:load grant: requested grant not found(密钥类型或认证头错误);speaker permission denied(音色 ID 错误或未授权);quota exceeded(配额、生命周期字符数或并发超限);缺少时间戳(需确认 enable_timestamp: true、保留查询 JSON,并确认所选端点返回 sentences)。
  • 安全要求:切勿将 API 密钥打印或写入日志、元数据、补丁或项目产物。.env.example 应只包含空变量名。
  • 资料未提供具体收费、价格、平台支持范围或效果保证等信息。