免费 · 开源 · 300+ 音色 · 音色复刻 · 音色设计
基于 MiniMax 新一代语音大模型,提供文本转语音、音色复刻、音色设计一站式解决方案。
English version: README_EN.md
| 功能 | 说明 |
|---|---|
| AI 语音合成 | 文本转语音,支持 9 种情感风格、语速/音高/音色精细调控、副语言标签(叹气/笑声/呼吸等) |
| 音色复刻 | 上传 10 秒音频即可复刻任意音色 — 适合创作者、播客、有声书、无障碍场景 |
| 音色设计 | 用自然语言描述想要的音色,AI 即刻生成 — 「温暖亲切的女声,适合读睡前故事」 |
| 流式 & 同步 | SSE 流式输出实现即时播放,长文本自动切换流式;亦支持同步下载高质量音频 |
| 300+ 系统音色 | 内置中文、英语、日语、韩语、粤语、西班牙语、葡萄牙语、法语等 20+ 语言的预置音色 |
git clone https://github.com/harlan-zhang/maxspeak.git
cd maxspeak
npm install
npm run dev打开 http://localhost:3000,点击右上角设置图标,粘贴你的 MiniMax API Key,即可开始使用。
npm install -D @cloudflare/next-on-pages
npx @cloudflare/next-on-pages
npx wrangler pages deploy .vercel/output/static注意: Cloudflare Pages 以静态模式部署,API Routes 不可用。如需完整功能请使用 Vercel。
- 框架 — Next.js 14 (App Router) + TypeScript
- UI — React 18 + Tailwind CSS + lucide-react 图标
- 状态管理 — Zustand(持久化至 localStorage)
- 音频 — Web Audio API + 原生
<audio>元素,跨浏览器兼容 - API 代理 — Next.js API Routes 代理 MiniMax TTS、音色复刻和音色设计接口
浏览器 Next.js 服务端 MiniMax API
│ │ │
├─ POST /api/tts/synthesize ──► POST /v1/t2a_v2 ──► │
│ │ (output_format=hex) │
│ │ │
│ │ ◄── hex 音频数据 ──────────┤
│ │ │
│ │ 服务端格式检测: │
│ │ ID3/MP3 · RIFF/WAV │
│ │ fLaC/FLAC · OggS/OGG │
│ │ 都不是? → PCM → 封装 WAV │
│ │ │
│ ◄── binary audio blob ───┤ │
│ (Content-Type: audio/*) │ │
│ │ │
▼ API Key 由浏览器本地保存并发送到本站代理 ▼
[blob URL → <audio>] [300+ 音色]
- 本地 API Key 模式 — API Key 由用户在浏览器设置页输入,保存在本机
localStorage,请求 MiniMax 时会通过本站 Next.js API Routes 代理转发;请只在可信部署上使用 - 服务端格式检测 — 自动识别 5 种音频容器(ID3/MP3、RIFF/WAV、fLaC/FLAC、OggS/OGG、FFxx/MPEG),裸 PCM 自动封装 WAV 头
- 二进制返回 — 服务端始终返回
Content-Type: audio/*,客户端res.blob()单一路径,无 JSON 分支 - 流式合成使用 SSE 透传 + 实时 chunk 解码
| 语言 | 音色数量 |
|---|---|
| 中文(普通话) | 34 — 可靠高管、新闻主播、暖心闺蜜、可爱精灵 等 |
| English | 45 — Expressive Narrator、Radiant Girl、Magnetic Voiced Man 等 |
| 한국어 (韩语) | 49 |
| 日本語 (日语) | 15 |
| 粵語 (粤语) | 6 |
| Español (西班牙语) | 12+ |
| Português (葡萄牙语) | 10+ |
| Français, Deutsch, Русский, Italiano, Nederlands 等 | 各 3–8 个 |
完整列表见 lib/voices/preset-voices.ts。
😊 开心 · 😢 悲伤 · 😠 愤怒 · 😨 恐惧 · 🤢 厌恶 · 😲 惊讶 · 😐 中性 · 💬 流畅 · 🤫 耳语
(sighs) (laughs) (chuckle) (breath) (pant) (gasps) (sniffs) (crying) 等 22 种
音高偏移、强度、音色、预设音效(空旷回音、电话、收音机、扩音器)
MP3 / WAV / FLAC / PCM · 8–44.1 kHz · 64–320 kbps · 单声道/立体声
中文声调标注((cao3)(di1))、英文发音映射(Omg/Oh my god)
MaxSpeak 本身免费开源。MiniMax API 按量计费:
| 项目 | 费用 |
|---|---|
| 语音合成 | ¥2.0–3.5 / 万字符 |
| 音色复刻 | ¥9.9 / 音色(首次使用扣费) |
| 音色设计预览 | $30 / 百万字符 |
详见 MiniMax 语音定价。
maxspeak/
├── app/
│ ├── layout.tsx # 布局 + SEO 元数据
│ ├── page.tsx # 主页面(标签页路由)
│ └── api/ # 7 个 API Route 处理器
├── components/
│ ├── layout/ # 侧边栏、顶栏、主题切换
│ ├── tts/ # 语音合成面板及子控件
│ ├── player/ # 音频播放器(带进度条)
│ ├── clone/ # 音色复刻向导(上传 → 配置 → 试听)
│ ├── design/ # 音色设计(文本描述生成)
│ ├── library/ # 音色库浏览器
│ └── settings/ # 设置弹窗
├── public/ # Logo、海报图等静态资源
└── lib/
├── minimax/ # API 客户端、类型定义、常量
├── audio/ # 播放引擎、流解码器、工具函数
├── voices/ # 300+ 预置音色、情感标签、语言数据
└── store/ # Zustand 状态管理
MIT — 自由构建商用项目。使用 MiniMax API 需遵守其服务条款。
