157 lines
3.3 KiB
Markdown
157 lines
3.3 KiB
Markdown
# OpenAITTS配音台
|
||||
|
|
|
|||
|
|
一个简洁高效的文本转语音工具,支持自定义OpenAI API地址,基于Go后端和浏览器前端实现。
|
|||
|
|
|
|||
|
|
## 功能特点
|
|||
|
|
|
|||
|
|
- ✨ 简洁大方的用户界面
|
|||
|
|
- 🔧 支持自定义API地址
|
|||
|
|
- 🎤 多种声音模型选择
|
|||
|
|
- 📱 响应式设计,适配各种设备
|
|||
|
|
- 💾 本地存储API配置
|
|||
|
|
- ⚡ 快速生成和播放语音
|
|||
|
|
- 📥 支持音频下载
|
|||
|
|
|
|||
|
|
## 技术栈
|
|||
|
|
|
|||
|
|
- **后端**: Go 1.18+
|
|||
|
|
- **前端**: HTML5 + CSS3 + JavaScript (ES6+)
|
|||
|
|
- **API**: OpenAI TTS API
|
|||
|
|
|
|||
|
|
## 配置说明
|
|||
|
|
|
|||
|
|
### 1. 配置文件方式
|
|||
|
|
|
|||
|
|
复制 `config.example.json` 为 `config.json`,然后修改其中的配置:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"api_base_url": "https://your-api-address.com",
|
|||
|
|
"port": "8080"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 环境变量方式
|
|||
|
|
|
|||
|
|
你也可以通过环境变量来配置:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
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地址(如果需要)
|
|||
|
|
|
|||
|
|
### 启动服务
|
|||
|
|
|
|||
|
|
在项目根目录下执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
go run main.go
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
或者使用配置文件:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
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端点,请求体格式:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"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反馈。
|