跳到主要内容

使用 OpenAI 进行文本转语音

本指南介绍如何在 Open WebUI 中使用 OpenAI 官方的文本转语音 (TTS) API。如果您已经拥有 OpenAI API Key,这是最简便的配置方式。

正在寻找 STT?

请参阅配套指南:使用 OpenAI 进行语音转文本

要求

  • 拥有 Audio API 访问权限的 OpenAI API Key
  • 已安装并运行的 Open WebUI

快速设置 (UI)

  1. 点击您的头像图标(左下角)
  2. 选择 管理员面板 (Admin Panel)
  3. 点击 设置 (Settings)音频 (Audio) 选项卡
  4. 配置以下内容:
设置
文本转语音引擎 (Text-to-Speech Engine)OpenAI
API Base URLhttps://api.openai.com/v1
API Key您的 OpenAI API Key
TTS 模型 (TTS Model)tts-1tts-1-hd
TTS 音色 (TTS Voice)从可用音色中选择
  1. 点击保存

可用模型

模型描述适用场景
tts-1标准画质/音质,低延迟实时应用、快速响应
tts-1-hd更高音质的音频预录制内容、对音质有较高要求的场景

可用音色

OpenAI 提供了 6 种内置音色:

音色描述
alloy中性、均衡
echo温暖、口语化
fable富有表现力、带英国口音
onyx低沉、有权威感
nova友好、欢快
shimmer温柔、柔和
提示

您可以尝试不同的音色,以找到最适合您应用场景的选择。您可以在 OpenAI 官方文档中预览这些音色的效果。

针对特定模型的 TTS 音色

您可以为不同的模型分配专属的 TTS 音色,从而让不同的 AI 人设拥有独特的嗓音。此项配置在模型编辑器中完成。

设置特定模型的专属音色

  1. 前往 工作区 (Workspace) > 模型 (Models)
  2. 点击您想要配置的模型旁边的 编辑(铅笔)图标
  3. 向下滚动找到 TTS 音色 (TTS Voice) 字段
  4. 输入音色名称(例如:alloy, echo, shimmer, onyx, nova, fable
  5. 点击保存

音色优先级

在播放 TTS 音频时,Open WebUI 使用以下优先级:

  1. 特定模型的专属 TTS 音色(如果在模型编辑器中设置了该项)
  2. 用户的个人音色设置(如果用户在个人设置中配置了该项)
  3. 系统默认音色(由管理员全局配置)

这样可以让管理员确保每款 AI 人设具有一致的嗓音,同时如果某模型未设置专属音色,用户仍可通过个人设置覆盖它。

应用场景

  • 角色扮演 (Character personas):给“英国管家”模型赋予 fable 音色,而“元气助手”则使用 nova
  • 语言学习:为不同的语言导师分配相契合的母语发音。
  • 无障碍辅助 (Accessibility):为无障碍辅助场景下的模型配置更清晰、易读的音色。

环境变量设置

如果您更倾向于通过环境变量进行配置:

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    environment:
      - AUDIO_TTS_ENGINE=openai
      - AUDIO_TTS_OPENAI_API_BASE_URL=https://api.openai.com/v1
      - AUDIO_TTS_OPENAI_API_KEY=sk-...
      - AUDIO_TTS_MODEL=tts-1
      - AUDIO_TTS_VOICE=alloy
    # ... 其他配置

所有 TTS 环境变量

变量描述默认值
AUDIO_TTS_ENGINE设置为 openai
AUDIO_TTS_OPENAI_API_BASE_URLOpenAI API Base URLhttps://api.openai.com/v1
AUDIO_TTS_OPENAI_API_KEY您的 OpenAI API Key
AUDIO_TTS_MODELTTS 模型 (tts-1tts-1-hd)tts-1
AUDIO_TTS_VOICE要使用的默认音色alloy

测试 TTS

  1. 开始新聊天
  2. 向任何模型发送一条消息
  3. 点击 AI 回复上的喇叭图标以听取朗读内容

响应切分模式

在阅读长文本响应时,Open WebUI 可以在将文本发送到 TTS 引擎之前将其切分成若干片段。此设置在 管理员面板 (Admin Panel) > 设置 (Settings) > 音频 (Audio) 下的 响应切分 (Response Splitting) 中配置。

选项描述
标点 (Punctuation) (默认)在句子边界处切分:句号 (.)、感叹号 (!)、问号 (?) 和换行符。提供最自然的语速控制。
段落 (Paragraphs)仅在段落分段处(双换行)切分。这将产生较长的音频切片。
无 (None)将整个响应作为一个整体一次性发送。如果文本较长,可能会在音频开始播放前产生明显的延迟。
提示

建议对大多数应用场景使用 标点 (Punctuation) 切分模式。它在流式传输表现(音频播放极其迅速)与自然语速控制之间提供了最佳的平衡。

故障排除

无法播放音频

  1. 检查您的 OpenAI API Key 是否有效并具备 Audio API 访问权限。
  2. 验证 API Base URL 是否正确 (https://api.openai.com/v1)。
  3. 打开浏览器开发者工具 (F12) 检查 Console 中是否有报错信息。

音频质量问题

  • tts-1 切换到 tts-1-hd 以获取更完美的音质表现。
  • 注意:tts-1-hd 具有略微增加的延迟。

速率限制 (Rate Limits)

OpenAI 对 Audio API 设有速率限制。如果您遇到了速率限制:

  • 可以考虑对常见短语采用缓存机制。
  • 使用 tts-1 代替 tts-1-hd(消耗更少的 Token 额度)。

有关更多故障排除信息,请参阅 音频故障排除指南

成本考量

OpenAI 按照 TTS 转换的字符数计费。请查看 OpenAI 定价 了解当前价格。需要注意的是,tts-1-hd 的费用高于 tts-1

信息

作为免费的替代方案,可以考虑使用 OpenAI Edge TTS,它调用了微软 Edge 浏览器的免费 TTS 服务。

This content is for informational purposes only and does not constitute a warranty, guarantee, or contractual commitment. Open WebUI is provided "as is." See your license for applicable terms.