Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI TTS 增强版

基于微软神经网络语音的文本转语音工具,支持文生音 (TTS)音生文 (STT) 双功能。

功能概览

文生音 (TTS)

  • 输入文字,选择声音、风格、语速、音调,生成自然朗读语音
  • 支持 17 种中文声音(晓晓、云希、云扬等),覆盖普通话、台湾国语、粤语
  • 多种风格:通用、欢快、愤怒、悲伤、温柔、抒情、新闻播报等
  • 语速 0.5x ~ 3.0x,音调 -30Hz ~ +30Hz 可调
  • 生成后可直接播放、下载 MP3、复制文本
  • 快捷键 Ctrl + Enter 快速生成

音生文 (STT)

  • 上传音频文件,自动转写为文字
  • 支持拖拽或点击上传
  • 支持格式:mp3 / wav / m4a / ogg / webm / flac / aac / opus
  • 转写结果可复制、清除

快速开始

方式一:Docker Desktop(推荐)

确保已安装 Docker Desktop,然后在项目目录下执行:

docker compose up -d

浏览器打开 http://localhost:8020

常用命令:

docker compose up -d            # 启动(后台运行)
docker compose down              # 停止
docker compose logs -f           # 查看日志
docker compose build --no-cache  # 重新构建镜像

音频文件和历史记录通过 Docker volume 持久化,删除容器不会丢失数据。

方式二:本地 Python 运行

环境要求

  • Python 3.9+
  • 依赖见 requirements.txt
pip install -r requirements.txt
python main.py

浏览器打开 http://localhost:8020


API 接口

健康检测

GET /api/health

响应示例:

{"status":"ok","time":"2026-06-03T15:00:00.000000"}

获取声音列表

GET /api/voices

返回 17 种声音及其支持风格

文生音 — 生成语音

POST /api/tts
Content-Type: application/json

请求体:

{
  "text": "欢迎使用AI TTS增强版",
  "voice": "zh-CN-XiaoxiaoNeural",
  "speed": 1.0,
  "pitch": "0",
  "style": "general"
}
参数 类型 必填 默认值 说明
text string - 要合成的文本,1~3000 字符
voice string zh-CN-XiaoxiaoNeural 声音 ID
speed float 1.0 语速 0.5~3.0
pitch string "0" 音调 Hz,如 "-10" / "+5"
style string general 风格,取决于所选声音

响应示例:

{
  "id": "a9de1e9fc1c4",
  "url": "/api/audio/a9de1e9fc1c4_481225.mp3",
  "filename": "a9de1e9fc1c4_481225.mp3",
  "text": "欢迎使用AI TTS增强版",
  "voice": "zh-CN-XiaoxiaoNeural",
  "voice_name": "晓晓",
  "speed": 1.0,
  "pitch": "0",
  "style": "general",
  "size": 45072,
  "created_at": "2026-06-03 15:01:10"
}

获取音频文件

GET /api/audio/{filename}

返回 MP3 音频文件流,Content-Disposition: attachment 可触发下载。

音生文 — 语音转文字

POST /api/transcribe
Content-Type: multipart/form-data
参数 类型 必填 说明
file file 音频文件
curl --location 'http://localhost:8020/api/transcribe' \
  --form 'file=@"/path/to/audio.mp3"'

响应:返回转写结果 JSON(包含 text 字段)

历史记录

GET    /api/history?page=1&limit=20   # 分页获取
GET    /api/history/{id}               # 获取单条详情
DELETE /api/history/{id}               # 删除单条
DELETE /api/history                    # 清空全部

可用声音列表

ID 名称 性别 风格
zh-CN-XiaoxiaoNeural 晓晓 general, cheerful, angry, sad, fearful, gentle, lyrical
zh-CN-YunxiNeural 云希 general, chat, newscast, narration, customerservice
zh-CN-YunyangNeural 云扬 general, newscast, customerservice
zh-CN-XiaoyiNeural 晓伊 general, cheerful, gentle
zh-CN-YunjianNeural 云健 general
zh-CN-XiaochenNeural 晓晨 general
zh-CN-XiaohanNeural 晓涵 general
zh-CN-XiaomengNeural 晓梦 general
zh-CN-XiaoxuanNeural 晓萱 general
zh-CN-XiaoruiNeural 晓瑞 general
zh-CN-YunfengNeural 云枫 general
zh-CN-YunyeNeural 云野 general
zh-CN-YunhaoNeural 云皓 general
zh-TW-HsiaoChenNeural 晓臻 general
zh-TW-YunJheNeural 云哲 general
zh-HK-HiuGaaiNeural 晓佳 general
zh-HK-WanLungNeural 云龙 general

技术架构

  • 后端:Python FastAPI + aiohttp
  • 前端:原生 HTML/CSS/JS,暗色主题
  • TTS APIhttps://g12.geekaiapp.top/v1/audio/speech
  • STT APIhttps://g12.geekaiapp.top/v1/audio/transcriptions
  • 存储:音频 static/audio/,历史记录 data/history.json

更新日志

v2.2.0 (2026-06-03)

  • 🐳 支持 Docker Desktop 部署,添加 Dockerfiledocker-compose.yml.dockerignore
  • 📦 历史记录迁移至 data/ 目录,支持 Docker volume 持久化
  • 📝 更新 README 添加 Docker 部署说明

v2.1.0 (2026-06-03)

  • 🎤 新增音生文 (STT) 功能:上传音频文件自动转写为文字
  • 📑 添加文生音 / 音生文选项卡切换
  • 🎨 拖拽上传区域,支持多种音频格式
  • 🔧 修复下载 MP3 按钮:改用 fetch + Blob 方式确保可靠下载
  • 🔧 修复音频接口响应头:添加 Content-Disposition: attachment
  • 🔧 修复历史记录乱码:清理损坏的 history.json 条目
  • 🔧 修复 Cloudflare 缓存导致 JS 旧版本被加载的问题,添加文件版本号

v2.0.0 (2026-06-03)

  • ✨ 全新 UI:暗色主题,响应式布局
  • 🎙️ 支持 17 种中文神经网络语音
  • 🎛️ 风格选择、语速/音调滑块调节
  • 📝 历史记录分页、点击回放、删除管理
  • ⌨️ 快捷键 Ctrl + Enter 快速生成
  • 🎯 智能内容检测:点歌/音乐请求自动提示
  • ✅ 健康状态实时检测

About

AI TTS ??? - TTS/STT ???,?? Docker ??

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages