跨平台(Windows + Android)小说有声化阅读软件。支持 EPUB/TXT 格式,调用 OpenAI 兼容 TTS API 实时将文本转化为语音并流式播放。
- 📖 多格式支持:打开 EPUB 和 TXT 文件
- 🔤 自动编码检测:TXT 文件自动识别 UTF-8/GBK/GB2312/GB18030/UTF-16 编码
- 🎙️ OpenAI 兼容 TTS:支持任何兼容 OpenAI
/v1/audio/speech接口的 TTS 服务 - 🌐 自定义主机:可填入自定义服务器 IP 地址
- ⚙️ 自定义参数:完全可配置的请求参数(模型、音色、语速、额外参数)
- 🔊 流式播放:单一 PCM 模式自动识别有/无 WAV 头,并支持完整 WAV/MP3 文件播放
- ✂️ 智能断句:多种断句模式(全标点、句末标点、自定义标点、仅换行)
- ⏩ 预取管线:PCM 模式提前建立后续句子的实时响应流,不等待整句生成;深度可设为 0 以完全关闭预取
- 📱 后台播放:Android 锁屏/后台播放,通知栏媒体控制
- 🔦 高亮同步:播放时自动滚动并高亮当前朗读句子
- 📚 全书连续阅读:所有章节在同一页面连续显示并自动跨章朗读
- 🗂️ 章节侧栏:从右侧抽屉快速定位任意章节
- 🧹 朗读文本清理:自动跳过纯标点、装饰线和不可见符号行
- Flutter SDK ≥ 3.5.0:安装指南
- Android Studio(Android 开发)或 Visual Studio 2022(Windows 开发)
# 1. 进入项目目录
cd d:\Tools\eBookReader
# 2. 调试运行(Windows)
flutter run -d windows
# 3. 调试运行(Android 需连接手机或模拟器)
flutter run -d androidflutter build windows --release编译产物目录:d:\Tools\eBookReader\build\windows\x64\runner\Release\
- 可执行文件:
ebook_reader.exe - 使用方式:直接双击
ebook_reader.exe即可运行;若要在其他电脑上运行,只需将整个Release文件夹打包复制即可。
安装 Android SDK 后运行:
flutter build apk --release编译产物目录:build/app/outputs/flutter-apk/app-release.apk
本应用支持任何兼容 OpenAI TTS API 的服务器,包括:
| 服务 | 说明 |
|---|---|
| GPT-SoVITS | 少样本语音克隆 TTS |
| CosyVoice | 阿里通义语音合成 |
| AllTalk TTS | 多引擎 TTS 服务器 |
| Kokoro-FastAPI | 超快速轻量 TTS |
| IndexTTS | 索引语音合成 |
| OpenAI API | OpenAI 官方 TTS |
在应用设置页面中配置:
- Host Address:TTS 服务器地址(如
http://192.168.1.100:8080) - API Key:可选,本地部署时可留空
- Model:模型名称(如
tts-1、kokoro) - Voice:音色名称(如
alloy、nova或自定义音色) - Response Format:
pcm(流式 PCM,自动识别 WAV 头或裸数据)/wav/mp3 - Prefetch Depth:
0(关闭预取)到5;PCM 预取缓存的是实时流而不是完整音频
文件选择 → 书籍解析(EPUB/TXT) → 文本断句 → TTS 预取管线
↓
HTTP POST /v1/audio/speech
↓
音频格式检测(WAV/PCM/MP3)
↓
PCM 实时块 → SoLoud / WAV、MP3 → just_audio
↓
UI 高亮同步 + 自动续播下一句
lib/
├── main.dart # 入口
├── app.dart # MaterialApp + GoRouter
├── models/ # 数据模型
│ ├── book_info.dart # 书籍 + 章节模型
│ ├── tts_config.dart # TTS API 配置
│ ├── pcm_config.dart # PCM 音频参数
│ └── segmentation_config.dart # 断句配置
├── services/ # 核心业务逻辑
│ ├── book_parser/ # EPUB/TXT 解析
│ ├── segmenter/ # 文本断句引擎
│ ├── tts/ # TTS API 客户端 + 预取管线
│ ├── audio/ # 音频引擎
│ └── storage/ # 持久化存储
├── providers/ # Riverpod 状态管理
├── screens/ # 页面
│ ├── home_screen.dart # 书架首页
│ ├── reader_screen.dart # 阅读器(带高亮 + 播放控制)
│ └── settings_screen.dart # 设置页面
└── widgets/ # 可复用组件
MIT