功能需求
希望 Enjoy 网页版的 BYOK TTS 增加豆包语音(火山引擎)Provider 支持。
当前情况
网页版目前仅支持 OpenAI 和 Azure TTS。
选择 OpenAI TTS 并填写自定义 API Endpoint 时,Enjoy 会按照 OpenAI TTS 协议调用:
POST {endpoint}/audio/speech
同时使用 OpenAI 格式的鉴权方式、请求参数和响应处理。
豆包语音 V3 API 不兼容 OpenAI TTS 协议,因此无法通过修改 Base URL 接入。
不兼容原因
虽然新版豆包语音使用单个 API Key,但其接口协议与 OpenAI TTS 不同:
-
API Key 通过 X-Api-Key Header 传递,而不是 Authorization: Bearer <API_KEY>
-
需要额外提供 X-Api-Resource-Id,例如 seed-tts-2.0
-
TTS 接口为:
POST https://openspeech.bytedance.com/api/v3/tts/unidirectional
-
请求体使用 req_params.text、req_params.speaker 和 req_params.audio_params 等字段
-
返回结果为流式数据,需要解析并合并其中的音频内容
-
Resource ID 需要与音色所属的模型版本匹配
因此,当前的 OpenAI 自定义 Endpoint 功能不足以接入豆包语音。
希望实现
建议在以下位置增加“豆包语音 / Volcengine”Provider:
设置 → AI 服务 → TTS → 使用自己的 API Key
建议支持以下配置:
- API Key
- Resource ID,例如
seed-tts-2.0
- Speaker / 音色 ID
- 输出格式,例如 MP3
- 采样率
- 可选的语速、音量和情感参数
调用时按照豆包语音 V3 协议:
- 将 API Key 放入
X-Api-Key
- 添加
X-Api-Resource-Id
- 将文本、音色和音频参数转换为豆包请求体
- 解析流式响应并合并音频数据
- 将生成的音频交给现有播放器和缓存逻辑
如果浏览器直接请求存在 CORS 或安全限制,可以考虑通过 Enjoy 后端代理调用。
使用场景
豆包语音提供了较丰富的中英文音色。支持该 Provider 后,国内用户可以直接使用自己的火山引擎 API Key 和额度,用于:
- 电子书朗读
- 影子跟读
- 句子发音
- 其他网页版 TTS 场景
参考文档
功能需求
希望 Enjoy 网页版的 BYOK TTS 增加豆包语音(火山引擎)Provider 支持。
当前情况
网页版目前仅支持 OpenAI 和 Azure TTS。
选择 OpenAI TTS 并填写自定义 API Endpoint 时,Enjoy 会按照 OpenAI TTS 协议调用:
同时使用 OpenAI 格式的鉴权方式、请求参数和响应处理。
豆包语音 V3 API 不兼容 OpenAI TTS 协议,因此无法通过修改 Base URL 接入。
不兼容原因
虽然新版豆包语音使用单个 API Key,但其接口协议与 OpenAI TTS 不同:
API Key 通过
X-Api-KeyHeader 传递,而不是Authorization: Bearer <API_KEY>需要额外提供
X-Api-Resource-Id,例如seed-tts-2.0TTS 接口为:
POST https://openspeech.bytedance.com/api/v3/tts/unidirectional请求体使用
req_params.text、req_params.speaker和req_params.audio_params等字段返回结果为流式数据,需要解析并合并其中的音频内容
Resource ID 需要与音色所属的模型版本匹配
因此,当前的 OpenAI 自定义 Endpoint 功能不足以接入豆包语音。
希望实现
建议在以下位置增加“豆包语音 / Volcengine”Provider:
设置 → AI 服务 → TTS → 使用自己的 API Key
建议支持以下配置:
seed-tts-2.0调用时按照豆包语音 V3 协议:
X-Api-KeyX-Api-Resource-Id如果浏览器直接请求存在 CORS 或安全限制,可以考虑通过 Enjoy 后端代理调用。
使用场景
豆包语音提供了较丰富的中英文音色。支持该 Provider 后,国内用户可以直接使用自己的火山引擎 API Key 和额度,用于:
参考文档
豆包语音大模型 API 列表:
https://www.volcengine.com/docs/6561/2228192?lang=zh
火山引擎语音模型接入说明:
https://www.volcengine.com/docs/82379/2516286