# Edge TTS 指南(默认在线朗读 / Edge TTS Guide) > dsh-plugin-tts 的 Edge TTS 能力专册。Edge TTS 是插件的默认提供者,开箱即用,无需本地服务与模型。 > 主 README:[中文](../README.zh.md) / [English](../README.md) · 使用手册:[《执行手册》](USER-GUIDE.md) > > 🤖 **给 AI Agent 的说明**:本文档可直接喂给 AI Agent 照着落地。如果觉得晦涩难懂,或想直接脱手实现, > 把本文档全文粘贴给你的 AI Agent,让它按文末「给 AI Agent 的落地附录」一步步执行验证即可。 **目录** - [Edge TTS 是什么](#edge-tts-是什么) - [开始前准备](#开始前准备) - [设置面板配置](#设置面板配置) - [长文本流式播放](#长文本流式播放) - [设置项详解](#设置项详解) - [Edge TTS 疑难排查](#edge-tts-疑难排查) - [隐私与使用提示](#隐私与使用提示) - [给 AI Agent 的落地附录](#给-ai-agent-的落地附录) - [English](#english) --- ## Edge TTS 是什么 Edge TTS 是微软提供的免费在线合成端点:把要朗读的文本发送过去,返回一段朗读音频后播放。 链路只有一步: ``` 消息文本 → Edge TTS 在线合成 → mp3 → 播放 ``` 特点是零配置:不需要本地服务、不需要下载模型、不需要 API Key,只要本机能访问外网即可用。 它是其他本地音色(如 RVC)的“原声”来源,也是审批语音提醒的固定通道。 --- ## 开始前准备 | 需要 | 是什么 | 必须吗 | |---|---|---| | 可访问外网的网络 | 合成请求需要到达在线端点 | ✅ 必须 | | 任意现代浏览器 | 播放与自动播放解锁在浏览器内完成 | ✅ 必须 | | 本地服务 / 模型文件 | 不需要 | ❌ 不需要 | > 如果网络无法访问在线端点,请改用纯本地的提供者(Index-TTS2 / CosyVoice / RVC)。 --- ## 设置面板配置 打开 **设置 → 插件 → 语音**: - **TTS提供者** 选「**Edge TTS**」(默认即此项); - **朗读音色**:从下拉列表选一个喜欢的声音(中文 / 繁体 / 英文 / 日韩法等分组); - **声音调节**:语速 / 音调 / 音量,`0` 表示默认,直接作用于本次合成; - **试听测试**:在面板底部输入一句话点 ▶,马上听效果。 日常朗读入口与所有提供者共用: - 每条 AI 回复左下角的喇叭按钮 = 朗读本条 / 再点停止; - 输入框旁的喇叭开关 = 新回复自动朗读; - 选中消息内一段文本 = 悬浮「朗读选中」只读该片段。 --- ## 长文本流式播放 长回复不会等整段合成完才出声。插件把文本按句切成多块: 1. 第一块合成完成后立即开播,其余块在播放的同时后台合成——**边播边合成**; 2. 切分会避开 URL / 邮箱 / 小数 / 版本号等原子 token,不会把它们从中间切断; 3. 末尾的极短句会并入前一块,避免听感像结巴; 4. 播放期间按钮会显示 chunk 进度;停止 / 切换消息会立即取消后续块的合成。 短文本(预估朗读时长较短)走单文件链路,零额外开销。 --- ## 设置项详解 | 设置项 | 作用 | 建议 | |---|---|---| | 朗读音色 | 决定朗读是谁的声音 | 按语种偏好选;列表外的旧音色可能已被端点移除 | | 语速 | 朗读快慢 | `0` = 默认;±10-20% 听感自然 | | 音调 | 声音高低 | `0` = 默认;负值更低沉,正值更明亮 | | 音量 | 朗读响度 | `0` = 默认;负值更轻,正值更响 | | 朗读原始 Markdown 符号 | 默认清洗代码块 / 表格 / 链接等符号后朗读;开启后逐字读出原始符号 | 阅读类场景保持关闭;读源码时开启 | | 播放速度(mini 播放器) | 播放中的变速(1x / 1.25x / 1.5x),不重新合成 | 按听感切换 | | 审批语音提醒的提醒音色 | 审批事件播报用的独立音色,不跟随主朗读音色 | 选一个辨识度高的声音 | > 合成音频为 `audio-24khz-48kbitrate-mono-mp3`;同一文本 + 同一音色在同一会话内会复用缓存,不重复合成。 --- ## Edge TTS 疑难排查 > 💡 设置面板有「**诊断**」按钮:一键检查 Edge TTS 在线合成是否正常,并按「连接 / 协议 / 音色」分类给出可读提示。 | 症状 | 最常见原因 | 怎么办 | |---|---|---| | 点朗读没声音 | 浏览器自动播放限制 / 系统音量 | 先在页面任意处点一下再试;检查系统音量与浏览器标签页静音状态 | | 报 403 / 合成失败 | 在线端点协议或版本校验变更,或网络 / 代理拦截 | 过一会儿重试;仍失败则检查网络 / 代理设置,并反馈诊断日志 | | 提示 `1007 Unsupported voice` | 所选音色已被端点移除 | 换用列表内的现行音色;插件会自动回退到默认音色 | | 合成超时(约 45 秒) | 端点无响应或网络黑洞 | 检查网络 / 代理后重试;瞬时抖动会自动重试一次 | | 试听按钮一直转 | 网络不通或合成未返回 | 看红字提示;确认网络可达后再试 | | 反馈朗读问题时请附带 | 定位需要的信息 | 页面按 F12 打开控制台,复制 `[tts]` 开头的行;再运行 `copy(JSON.stringify(__dshTtsDebug.dump()))` 一并提供 | --- ## 隐私与使用提示 Edge TTS 会把要朗读的文本发送到微软在线端点作合成(个人使用没问题;商用 / 高并发请留意微软服务条款)。 合成音频写入系统临时目录,由系统自动清理;同一会话内的重复朗读会复用缓存,重启后首次朗读会重新合成。 --- ## 给 AI Agent 的落地附录 > 以下契约对所有机器通用,不含任何个人路径。按顺序执行即可打通。 - **provider id**:`edge-tts`(`/speak` 的 `provider` 字段就填这个;缺省也按它处理)。 - **无需本地服务**:没有 `baseUrl`,没有模型文件,跳过一切“启动服务”步骤。 - **合成调用**(经插件 Host 中转,前端不直连微软端点): `POST /dsh-tts-api/speak` body `{ text, voice, provider: "edge-tts", prosody: { rate, pitch, volume } }` → 短文本返回 `{ url }`,长文本返回 `{ jobId, chunks, total }`(后续块用 `GET /dsh-tts-api/rvc-next?job=` 逐块拉取)。 - **音频播放**:`GET /dsh-tts-audio/`(`id` 取自返回的 `url` 尾段)。 - **诊断验证**:`POST /dsh-tts-api/diagnose` body `{}` → 看 `checks` 里 `id === "edge"` 一项; `ok: true` 即联通,`cls === "voice"` 换音色,`cls === "protocol"/"connect"` 查网络。 - **验收标准**:任选列表内音色合成一句短文本能播;一句长文本能出 `chunks` 且首块可播。 --- ## English Edge TTS is the default provider: free online synthesis, no local service, no model, no API key — just network access to the online endpoint. ### Quick start 1. **Prepare**: network access to the online endpoint. Nothing to install. 2. **Configure**: 设置 → 插件 → 语音 → provider = Edge TTS; pick a voice; rate/pitch/volume `0` = default. 3. **Read**: the speaker button under a message reads it; the composer toggle auto-reads new replies; selecting text shows a "read selection" chip. ### Key capabilities - **Progressive long reads**: long replies are sentence-split; the first chunk plays while the rest synthesize; atomic tokens (URLs / emails / decimals / versions) are never split mid-token. - **Clean reads**: message Markdown (code blocks, tables, links, quotes, task lists) is cleaned before synthesis; an opt-in toggle reads raw Markdown verbatim for source code. - **In-session cache**: repeating the same text + voice reuses the cached audio instead of re-synthesizing. ### Troubleshooting - No sound → browser autoplay policy / system volume; interact with the page once first. - 403 / synthesis failure → endpoint protocol check changed or network/proxy interception; retry later. - `1007 Unsupported voice` → the voice was removed by the endpoint; pick a listed voice. > ⚠️ Privacy: Edge TTS sends the text-to-read to Microsoft's endpoint for online synthesis. > Check Microsoft's terms for commercial / heavy usage.