Skip to content

Releases: Autsunset/VoxEngine

VoxEngine 2026.10.10.1 · 修复听书上下文串读

Choose a tag to compare

@Autsunset Autsunset released this 09 Oct 18:37

修复内容

  • 修复 MiMo 合成请求中的前后段落原文与 <上下文> 标签可能被读出,导致重复朗读或听起来前后错乱的问题。请求不再携带上下文原文,仅传递当前应朗读的正文。
  • 覆盖内置听书、系统 TTS 和并行分段合成入口;预设、克隆、设计音色及设计预览均不再发送上下文原文。
  • 预设/克隆音色在未指定风格时,从上下文提取简短的本地情绪提示;已指定风格保持不变。设计音色保留原有音色描述与预览行为。
  • 更新音频缓存版本,避免继续复用旧的异常音频。升级后旧缓存不再命中,需要重新合成或重新执行预缓存。

预缓存怎么触发

  • 自动缓冲:开始听书时,按“提前缓冲页数”自动准备后续片段,播放推进时继续补充。
  • 批量预缓存:在内置阅读器里点击正文唤出菜单 → 听书设置 → 设置“预缓存:从当前章开始 N 章” → 点击“开始预缓存”。只调章节数不会启动;正在听书时需要先停止。
  • 批量预缓存从当前章开头开始,不播放声音,通知栏提供进度、暂停、继续和停止。作为系统 TTS 供其他阅读应用使用时,后续章节仍需由调用方请求。

验证与安装

  • 91 项单元测试通过,包含上下文隔离、三类音色请求、设计预览、关闭上下文和分段顺序回归。
  • Lint 与开启 R8/资源压缩的正式版构建通过;沿用原正式签名,可覆盖安装官方版本。
  • 版本:2026.10.10.1;版本码:2610101。安装包为 app-release.apk,附 SHA-256 校验文件。
  • 尚未进行真机连续实听验证。

VoxEngine 2026.10.05.2 · 听书规则、上下文与预缓存

Choose a tag to compare

@Autsunset Autsunset released this 05 Oct 02:23

本版解决 #7、#8、#9,并同步更新阅读 Vox 的听书功能。

  • 角色匹配规则:可编辑目标角色、正则、对话前/后旁白与启停状态,按顺序优先匹配;支持 JSON 导入导出角色和规则,未命中沿用默认识别。
  • 段落上下文:MiMo 使用前后段落理解人物、情绪与语气,上下文放在指令中,朗读正文保持独立。系统 TTS 同样支持本次文本上下文及可调合成片段长度。
  • 减少等待:按原始段落生成稳定片段,播放时持续补充后续音频;可调整缓冲 1–20 页、单次合成上限 180–1800 字。预设与 Edge 音色有界并行,克隆/设计音色保留请求间隔与重试。
  • 多章预缓存:从当前章起预制 1–100 章,在后台通知查看进度、暂停、继续或停止。音频保留 30 天、总量上限 2 GB,改变屏幕分页后仍可复用;磁盘保存失败会明确报错。

预缓存会调用所选语音服务。更换音色、风格、温度、上下文或角色规则后,相应片段需要重新合成。实际情绪表现与请求耗时取决于服务和音色。

验证:79 项 JVM 测试及 lint 通过;Android 16 容器验证 50 章 / 150 片段预缓存、规则与上下文传递、并发上限、跨分页磁盘复用、缓存播放、停止和磁盘失败提示。

最低支持 Android 8.0。APK 使用既有 VoxEngine 发布证书签名,文件哈希见 SHA256SUMS.txt。

v2026.08.13.1 — 阅读音色实时刷新

Choose a tag to compare

@Autsunset Autsunset released this 13 Aug 06:37

v2026.08.13.1

修复

  • 修复克隆音色后进入阅读模式无法立即选择、必须退出重进的问题
  • 阅读模式现在会实时响应克隆、设计、导入和删除音色等数据库变更
  • 切换 TTS 引擎后继续只展示对应引擎的音色列表

实现与质量

  • 使用 Room 轻量音色投影监听变化,不读取克隆音频 Base64,避免增加 CursorWindow 压力
  • 140 项 Debug/Release 单元测试全部通过
  • Android Debug Lint、Release Vital Lint、R8 与资源压缩构建通过
  • GitHub Actions 独立构建成功,Release APK v2 签名验证通过

SHA-256: 071ca6d90e3669cad988c4dace540f4d5f3776b4237a6783610e9b06598abb49

v2026.08.11.1 — 音频解析与听书稳定性优化

Choose a tag to compare

@Autsunset Autsunset released this 11 Aug 14:22

v2026.08.11.1

修复

  • 安全解析带扩展块、截断或异常长度的 WAV,避免越界、错误 PCM 偏移与异常循环
  • 修复通知栏/耳机媒体键在首章或末章越界切换时重播当前章的问题
  • 修复听书完整播完一页后仍保存旧页起点、重启后重复播放的问题
  • 避免阅读分页和 TTS 长文本切段从中间拆开 emoji 等 UTF-16 代理对
  • 修复 EPUB 条目上限可被大量目录条目绕过的问题
  • 确保 MP3 解码初始化失败时也释放 MediaExtractor 与 MediaCodec 资源
  • 播放结束时立即同步 MediaSession 停止状态

性能优化

  • 播放热路径一次解析 WAV 格式与 PCM,替代对同一音频的四次重复扫描
  • Compose 分页与耗时状态改用原生 Int/Long 状态,减少装箱分配

质量

  • 新增 WAV 边界、非标准 RIFF、Unicode 切段、EPUB 条目限制与切章边界回归测试
  • 70 个单元测试全部通过,Android Lint 零错误
  • Debug 与签名 Release 完整构建通过,Release APK v2 签名验证通过

SHA-256: cc21ff92ee4d6e4ea207cbfc843df966edb69abdaa7dae7ef42add38c13576cc

v2026.08.10.1 — 阅读体验、性能与兼容性优化

Choose a tag to compare

@Autsunset Autsunset released this 10 Aug 08:15

v2026.08.10.1

修复

  • 修复阅读器翻页动画在过渡期间可能渲染错页的问题
  • 修复 Android 8.0 加载 API 27 导航栏主题属性的兼容性问题
  • 修复数字格式隐式依赖系统区域设置的问题

性能优化

  • 缓存设置页的引擎与自定义音色查询流,避免 Compose 重组时重复订阅 Room
  • 缓存测试页的合成历史查询流,减少无效数据库查询

质量

  • Android Lint 错误由 8 个清零
  • 完整单元测试、Lint、Release 混淆与资源压缩构建通过
  • APK v2 签名验证通过

SHA-256: ee58e8a1847b82c210a9baaf8edfce65bf8a0407df39207866809327cc9573e7

v2026.07.18.1

Choose a tag to compare

@Autsunset Autsunset released this 18 Jul 07:45

v2026.07.18.1

修复

  • 自定义克隆音色删除闪退:克隆参考音频 base64 过大时,删除/编辑会因 CursorWindow 上限崩溃,导致删不掉。
    • 删除、改标签、导出/导入、合成解析改为轻量查询,不再 SELECT * 整行
    • 新建克隆不再冗余写入 audioBase64(只保留 voiceParam)

v2026.07.16.1

Choose a tag to compare

@Autsunset Autsunset released this 16 Jul 07:33

v2026.07.16.1

新增

  • 采样温度 (temperature) 设置:MiMo TTS 请求支持自定义采样温度(0.0–1.5),可在设置页面调节。
    • 克隆/听书建议设为 0.1–0.3,减少句间风格漂移(#5)
    • 预设音色可用默认 0.6
    • 值越低越稳定一致,值越高越多样自然

v2026.07.13.1 — 支持 EPUB 小说阅读

Choose a tag to compare

@Autsunset Autsunset released this 12 Jul 16:35

更新内容

  • 增加 EPUB 小说导入与阅读,支持 EPUB 2 NCX 和 EPUB 3 navigation 目录
  • 按 EPUB manifest/spine 顺序提取 XHTML 正文,保留章节标题、段落、目录跳转与现有听书能力
  • 书架导入入口支持 TXT / EPUB,并增加 ZIP 路径、单文件大小、总解压大小和条目数量限制
  • 增加 EPUB 解析、目录顺序、编码路径和 TXT 回归测试

校验

  • 版本:2026.07.13.1(2607131)
  • 提交:3e8cf8f
  • APK SHA-256:48c54124d0363c02a6bf33f7841c77d2469f0b838762f1225be39ae76b4b0c49
  • 已通过 testDebugUnitTest(61 项测试)、Release R8、资源收缩、lintVitalRelease 和 APK 签名验证

使用说明

在书架点击导入,选择 .epub 或 .txt 文件即可。EPUB 章节按书内目录与正文顺序载入。

v2026.07.12.1 — 全链路性能优化

Choose a tag to compare

@Autsunset Autsunset released this 12 Jul 15:30

更新内容

  • 优化听书预取窗口、分页缓存与播放资源回收,降低长章节切分和重复分页开销
  • 复用 MiMo 客户端配置,批量查询角色音色类型,减少 DataStore 与 Room 访问
  • 优化角色分段、小说解析和阅读视口测量,减少热路径临时对象
  • 优化音频缓存哈希、Edge SSML 构建和二进制帧解析
  • 增加预取边界、文本编码、角色路由、XML 转义和语言区域回归测试

校验

  • 版本:2026.07.12.1(2607121)
  • APK SHA-256:d5f47f9f9cdd067ccde4d1b7013ad465feaa18f75cd01acc7dfec3206c7fedba
  • 已通过完整单元测试、R8、资源收缩、lintVital 和签名验证

v2026.07.11.1 — 听书与合成热路径优化

Choose a tag to compare

@Autsunset Autsunset released this 11 Jul 12:55

改动

听书预取并发

  • 预设音色 / Edge:有界并发预取(默认 3),减少「播一句等一句」
  • 克隆 / 设计音色:仍串行 + 节流,避免限流

播放路径

  • 复用 MODE_STREAM AudioTrack,段间不再反复 create/release
  • 进度写库 3 秒节流;翻页 / 换页边界仍强制落盘

内存与缓存

  • 视口测量分页缓存按书 LRU,最多 3 本
  • MiMo 音色解析结果内存缓存,避免热路径反复 SELECT * 拉大 base64
  • 系统 TTS 流式分句接入 AudioCache,重复句可命中缓存
  • AudioCache MD5 使用 ThreadLocal,减少 getInstance 开销

其它

  • 纯符号段统一经 hasSpeakableContent 短路为静音(MiMo + Edge)
  • EngineRegistry 改为 ConcurrentHashMap
  • 增删改 / 导入音色时失效 MiMo 音色缓存

构建

  • 单元测试通过;assembleRelease 签名包已附