Files
2026-01-03 00:16:36 +08:00

3.3 KiB
Raw Permalink Blame History

OpenAITTS配音台

一个简洁高效的文本转语音工具,支持自定义OpenAI API地址,基于Go后端和浏览器前端实现。

功能特点

  • ✨ 简洁大方的用户界面
  • 🔧 支持自定义API地址
  • 🎤 多种声音模型选择
  • 📱 响应式设计,适配各种设备
  • 💾 本地存储API配置
  • ⚡ 快速生成和播放语音
  • 📥 支持音频下载

技术栈

  • 后端: Go 1.18+
  • 前端: HTML5 + CSS3 + JavaScript (ES6+)
  • API: OpenAI TTS API

配置说明

1. 配置文件方式

复制 config.example.json 为 config.json,然后修改其中的配置:

{
  "api_base_url": "https://your-api-address.com",
  "port": "8080"
}

2. 环境变量方式

你也可以通过环境变量来配置:

export OPENAI_API_BASE_URL="https://your-api-address.com"
export PORT="8080"

3. 前端直接配置

在浏览器界面中,你可以直接输入API Key和API Base URL,这些配置会自动保存到浏览器本地存储中。

快速开始

前提条件

  • 已安装Go 1.18或更高版本
  • 有可用的OpenAI API Key
  • 自定义API地址(如果需要)

启动服务

在项目根目录下执行:

go run main.go

或者使用配置文件:

go run main.go -config=config.json

服务启动后,会在控制台输出:

2024/01/01 12:00:00 Server starting on port 8080...
2024/01/01 12:00:00 Using API base URL: https://api.openai.com
2024/01/01 12:00:00 Open http://localhost:8080 in your browser

使用方法

  1. 在浏览器中打开 http://localhost:8080
  2. 在API配置区域输入你的API Key和自定义API地址
  3. 在文本输入区域输入要转换为语音的文本
  4. 选择模型和声音参数
  5. 点击"生成语音"按钮
  6. 生成完成后,可以播放或下载音频

支持的声音模型

  • tts-1: 标准模型,速度快
  • tts-1-hd: 高清模型,质量更高

支持的声音类型

  • alloy: 清晰自然的声音
  • echo: 沉稳有力的声音
  • fable: 温暖亲切的声音
  • onyx: 成熟稳重的声音
  • nova: 活泼开朗的声音
  • shimmer: 柔美动听的声音

项目结构

.
├── main.go           # Go后端主程序
├── index.html        # 前端HTML页面
├── styles.css        # 前端CSS样式
├── app.js            # 前端JavaScript
├── config.example.json # 配置文件示例
└── README.md         # 项目说明文档

API端点

POST /api/tts

生成语音的API端点,请求体格式:

{
  "api_key": "sk-...",
  "text": "要转换的文本",
  "voice": "alloy",
  "model": "tts-1-hd",
  "api_base": "https://your-api-address.com"
}

响应:

  • 成功:返回MP3音频文件(Content-Type: audio/mpeg)
  • 失败:返回JSON格式的错误信息

注意事项

  1. 请确保你的API Key有效且有足够的配额
  2. 自定义API地址需要兼容OpenAI TTS API的接口格式
  3. 文本长度建议不超过4096个字符
  4. 生成的音频文件会自动下载到你的默认下载目录

浏览器支持

  • Chrome 60+
  • Firefox 55+
  • Safari 12+
  • Edge 79+

许可证

MIT License

贡献

欢迎提交Issue和Pull Request!

联系方式

如有问题或建议,请通过GitHub Issues反馈。