必须安装微软神经语音包(如晓晓、云希),否则开源TTS只能输出机械音;用Edge-TTS-GUI可一键导入TXT生成MP3,支持分句、时间轴和断点续听;超长文本需按语义分块处理。

你想把下载好的TXT格式长篇小说转成自然流畅的音频,边通勤边听、边做家务边听,不依赖网络、不上传隐私文本、不被会员弹窗打断——用开源TTS工具在Windows本地完成,全程可控可调。
确认系统已启用微软神经语音引擎
Edge TTS等开源工具底层调用的是Windows自带的语音合成服务,但默认安装可能只装了基础语音包。若跳过这步,后续合成会 fallback 到老旧的SAPI5机械音,完全达不到“真人感”。
打开「设置 → 时间和语言 → 语言和区域 → 语言」→ 点击当前中文语言右侧的「…」→「语言选项」→ 滚动到底部「语音」→ 确保已安装「Microsoft XiaoXiao(晓晓)」或「Microsoft Yunxi(云希)」等神经语音,未安装则点击「下载」。
【必须安装神经语音包,否则所有开源TTS都只能输出机械音】
用 Edge-TTS-GUI 工具一键导入TXT生成MP3
这是目前最省心的方案:绿色便携、界面直观、支持断点续听、自动分句、带时间轴JSON,专为长文本听书优化。
第一步:访问 GitHub Releases 页面,下载 EdgeTTSGui-Portable.exe(免安装版),双击运行即可,无需管理员权限。
第二步:点击主界面上方「文件 → 打开TXT」,选择你的小说文件(支持UTF-8 / GBK编码,自动识别)。
第三步:左侧语音设置中,语言选「Chinese (Simplified, China)」→ 性别选「Female」→ 音色选「Xiaoxiao」;语速保持默认+0%,避免快读导致吞字;勾选「启用时间轴JSON」。
第四步:点击右下角「播放」试听前30秒,确认无静默、无卡顿、无乱码;满意后点「保存MP3」,自动生成 ZIP 包(含 MP3 + .timeline.json)。
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
处理超长文本(10万字以上)的分块策略
单次合成超过5万字易触发内存溢出或TTS引擎超时,必须手动分块。不要用记事本直接切——会切断句子、破坏标点停顿逻辑。
方法一:用Python脚本按语义分段(推荐)
新建一个 split_novel.py 文件,粘贴以下代码并双击运行(无需安装Python,用Windows自带的Python Launcher即可):
import re<br>with open("小说.txt", encoding="utf-8") as f: text = f.read()<br>blocks = re.split(r"([。!?;\n])", text)<br>chunk, chunks = "", []<br>for b in blocks:<br> if len(chunk + b) chunk += b<br> else:<br> chunks.append(chunk.strip())<br> chunk = b<br>if chunk: chunks.append(chunk.strip())<br>for i, c in enumerate(chunks):<br> with open(f"小说_第{i+1}段.txt", "w", encoding="utf-8") as f:<br> f.write(c)
生成的每个分段文件控制在3500~4000字,保留句末标点,保证朗读停顿自然。
方法二:用Edge-TTS-GUI内置分块功能
导入大TXT后,点击「高级 → 启用自动分块」→ 设置「每块最大字符数」为3800 → 勾选「保留完整句子」→ 工具将自动拆解并在后台逐块合成,最终合并为单个MP3。
修复中英混排/数字/括号导致的朗读错乱
小说里常有英文人名、章节编号(如“Chapter 3”)、括号注释(如“(约公元7世纪)”),系统TTS默认按中文规则切音节,结果念成“C H A P T E R 三”或“(约公元七世纪)”,非常出戏。
在Edge-TTS-GUI中,点击「高级 → 启用智能文本清洗」→ 勾选「自动转换阿拉伯数字为中文读法」「英文单词保留原音不逐字母读」「括号内内容降调轻读」。
若仍有异常,可在原文中手动添加SSML标记:把“Chapter 3”改为 ,工具会自动识别并正确朗读。
实现断点续听与进度记忆
听小说中途暂停,下次打开要从上次位置继续——这不是靠播放器记住的,而是靠Edge-TTS-GUI生成的.time.json文件驱动的。
保存MP3时,ZIP包里一定包含同名的 小说.timeline.json 文件;双击MP3用系统默认播放器无法调用该文件,必须用工具自带的「试听」按钮,或导入到支持JSON时间轴的播放器(如VLC + 插件、或PotPlayer加载LRC同步脚本)。
在Edge-TTS-GUI主界面点击「播放」→ 播放中任意暂停 → 关闭软件再重开 → 点击「恢复上次播放」按钮,光标自动跳回暂停处,且原文高亮同步定位。










