# edgeone-tts **Repository Path**: wangyidao/edgeone-tts ## Basic Information - **Project Name**: edgeone-tts - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-22 - **Last Updated**: 2026-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Edge TTS 在线配音(Web 版) 基于 Microsoft Edge 在线语音(`edge-tts`)的免费文字转语音 Web 工具。前端为精美静态页面,后端为 **EdgeOne Pages Cloud Functions(Python / Flask)**,可一键部署到 EdgeOne Pages。 > 由桌面版 `edge-tts-gui` 改写而来,原作者署名保留:by **@王君敕**。 ## 功能 - 🌐 **语音库筛选**:按「语言 → 性别 → 发音人」三级联动下拉,支持 300+ 发音人、75+ 语言。 - 🔍 **自动语言检测**:输入文本时自动识别语言并选中对应下拉(基于 `langdetect`,修复了原桌面版去区域码后匹配不到的问题)。 - 🎚️ **参数调节**:语速、音量、音调滑块,实时显示数值。 - ▶️ **在线试听 + 下载**:生成后直接用浏览器播放,或下载为 `.mp3`。 - 📜 **长文本友好**:后端自动按句/换行切分合成并拼接,避免单次请求过长报错。 - 🛡️ **健壮校验**:空文本 / 未选发音人 / 合成异常均返回友好提示,无崩溃。 - 🔀 **双引擎切换**:顶部「Edge TTS / Google TTS」分段按钮一键切换(默认 Edge TTS)。Google 模式支持「语言 + 域名(tld) + 慢速(slow)」,并自动隐藏 Edge 专属的性别/发音人/语速/音量/音调控件。 ## 目录结构 ``` edge-tts/ ├── index.html # 单页 Web UI ├── style.css # 玻璃拟态 + 渐变深色主题 ├── app.js # 前端逻辑(调用 /api/*) ├── cloud-functions/ │ ├── api/ │ │ └── index.py # Flask 云函数: /voices, /detect, /tts, /gvoices, /gtts │ └── requirements.txt # edge-tts, flask, langdetect, gtts ├── run_local.py # 本地开发服务(同域托管静态页 + /api) ├── LICENSE └── README.md ``` ## 本地开发 ```bash pip install -r cloud-functions/requirements.txt python run_local.py # 浏览器打开 http://localhost:8000/ ``` > Google TTS 模式依赖 `gtts`, 需要运行环境可访问 Google Translate 公网端点;若不可达, 前端会给出友好提示, 不影响 Edge TTS 的正常使用。 `run_local.py` 会把 `cloud-functions/api/index.py` 的 Flask 应用挂载到 `/api` 前缀,并同时托管根目录静态文件,路径与 EdgeOne 生产环境完全一致,便于本地联调。 也可单独调试后端(无 `/api` 前缀): ```bash flask --app ./cloud-functions/api/index.py run ``` 接口约定: | 方法 | 路径(EdgeOne) | 说明 | | --- | --- | --- | | GET | `/api/voices` | 返回 `{voices:[...], languages:[...]}`(`?refresh=1` 强制刷新缓存) | | POST | `/api/detect` | body `{text, languages}` → `{language}` | | POST | `/api/tts` | body `{text, voice, rate, volume, pitch}` → `audio/mpeg` 或 `{error}` | | GET | `/api/gvoices` | Google TTS 语言清单:返回 `{languages:[{code,name}], tlds:[...]}`(`?refresh=1` 强制刷新) | | POST | `/api/gtts` | Google TTS 合成:body `{text, lang, tld, slow}` → `audio/mpeg` 或 `{error}` | ## 部署到 EdgeOne Pages 1. 将本仓库推送到 GitHub / Git 仓库。 2. 登录 [EdgeOne Pages(Makers)](https://pages.edgeone.ai/),**导入该仓库**。 3. 构建设置(关键): - **构建命令**:留空(纯静态前端,无需构建)。 - **输出目录**:仓库根目录(`.` 或留空;即 `index.html` 所在目录)。 - **Node 版本**:默认即可(前端无 Node 依赖)。 4. 平台会自动识别 `cloud-functions/api/` 目录并部署为 Python Cloud Functions;`/api/*` 请求会路由到对应函数,静态文件由 EdgeOne 边缘直接托管。 5. 部署完成后访问分配的域名即可使用。 > 说明:后端依赖(`edge-tts` / `flask` / `langdetect`)由 EdgeOne 在构建时根据 `cloud-functions/requirements.txt` 自动安装,无需手动操作。 > 语音合成需要函数运行环境可访问 Microsoft TTS 公网端点(EdgeOne 云函数默认可访问)。 ## 许可证 [MIT](./LICENSE) · 原作者 [@王一舠](https://weibo.com/halfg0d) 增加 gTTS 实现