agent-Specialization/android-webview-app/APP_CHANGELOG.md
JOJO d24e00b9b3 feat(voice): Android 端侧离线语音识别集成
基于 Sherpa-ONNX + SenseVoice int8 实现 APK 端侧语音识别:
- VoiceBridge: AudioRecord 录音 + 整段识别 + JS Bridge 回调
- ModelManager: 模型下载管理(自有服务器),支持断点续传/校验/删除
- 前端:语音按钮仅 APK 环境显示,识别结果回填 ProseMirror 编辑器
- 调试:文件日志 + /api/voice_debug 接收路由
- demo/sense_voice_demo.py: Python 端测 Demo

versionCode 24→36, versionName 1.0.22→1.0.34
2026-06-10 00:50:16 +08:00

160 lines
9.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# App 更新说明
# 1.0.32
- 识别引擎改为预初始化模型下载完成后立即在后台加载用户点击时直接可用不再每次点击等3-5秒初始化
- startRecordingInternal 增加详细日志,便于排查录音问题
# 1.0.31
- 修复语音识别无结果:去掉多余的 decode() 调用,对齐 sherpa-onnx Android 官方 APIgetResult 内部已含 decode
- recognizeSegment 增加识别结果详细日志
# 1.0.30
- 修复语音识别无声问题:前端处理 initializing 状态,防止初始化期间重复触发 startListening 导致录音永不停止
- Android 端增加启动取消机制,初始化期间按停止不会意外开始录音
- 完善录音链路日志,便于后续调试
# 1.0.29
- 暂时禁用 VADAndroid 端 Silero VAD 存在 Native 兼容性问题),改为整段识别模式
- 录音结束后一次性识别,效果无差异,彻底消除闪退
# 1.0.28
- 修复 VAD 初始化导致闪退maxSpeechDuration 30f→5.0f默认值VAD 失败时降级为整段识别不崩溃
# 1.0.27
- 语音调试日志改为直接上传服务器(/api/voice_debug无需手动找文件
# 1.0.26
- 修复点击麦克风后闪退问题initEngine 增加文件完整性前置校验numThreads 降为 1 降低内存压力
- 新增「保存日志」按钮,调试日志写入手机 Download/voice_debug.log
- 下载/删除前自动释放引擎资源,避免文件锁定导致异常
# 1.0.25
- 修复下载进度一直显示 0% 的问题(整数除法 bug
- 新增模型文件完整性校验(文件大小 ±5% 容差),避免下载中断后显示“已下载”
- 新增「删除模型」按钮,可清理不完整的模型文件
- 模型文件移至 agents 代码目录外(/opt/agent/voice_models/),避免部署时被覆盖
# 1.0.24
- 修复语音按钮在首次启动模型未下载时不显示的问题VoiceBridge 改为随 App 启动即注册,不再等待模型下载完成
- 修复个人空间中「下载语音模型」按钮误提示「仅在 App 内支持」的问题
# 1.0.23
- 新增端侧语音输入功能:集成 sherpa-onnx SenseVoice int8 离线语音识别
- 支持中英混说 + 自动标点,完全离线运行,无需网络
- 语音模型约 228MB首次使用自动下载可在「个人空间 → 语音模型」手动下载)
- 输入框语音按钮仅在 App 端显示,桌面端隐藏
- 新增录音权限请求RECORD_AUDIO
# 1.0.22
- 修复 Android App 内从本地发送图片/视频无效的问题:补充 Android 13+ 所需的媒体读取权限(`READ_MEDIA_IMAGES` / `READ_MEDIA_VIDEO`
- 修复 Android App 文件选择器在 Android 13+ 上回调丢失的问题:将已废弃的 `startActivityForResult` 升级为 `registerForActivityResult`Activity Result API
# 1.0.21
- 修复 Android App 内手机端展开“对话记录”时仍沿用旧宽度的问题,面板宽度与桌面端对话侧栏保持一致
- 修复 Android App 内对话记录展开面板顶部残留系统栏空白的问题,内容从面板顶端开始显示
# 1.0.20
- 新增“新用户欢迎弹窗 + 新手教程”持久化机制:普通账号首次进入会提示是否开始教程,选择“开始吧”或“不再提示”后将状态写入 `data/users.json`
- 新增后端教程状态接口(查询/更新),并排除宿主机模式用户,避免 host 模式触发教程弹窗
- 修复宿主机模式切回普通账号登录时可能遗留 `host_mode` 状态,导致教程提示判定异常的问题
- 优化新手教程欢迎弹窗视觉风格:按钮与系统现有主题风格统一,支持多主题配色
# 1.0.19
- 修复 Android APK 内「个人空间-新手教程」期间无法上下滚动的问题:教程遮罩层现在会正确转发触摸滑动到可滚动容器
- 优化教程滚动目标识别:优先命中当前可滚动页面区域,减少 WebView 场景下滑动失效
- 调整软件更新页版本展示:移除括号内的构建代数,仅显示语义版本号(如 1.0.19
# 1.0.18
- 新增完整「新手教程」系统(高光 + 悬浮说明窗):覆盖桌面端与手机端核心功能入口
- 教程交互统一优化:仅保留“下一步”,支持自动点击与点击特效,避免误触真实页面
- 手机端教程新增专属流程:菜单展开、对话记录、工作文件、新建对话、模型/思考模式、个人空间全链路引导
- 教程定位与层级修复:高光区域更贴合小目标;教程弹窗始终保持最高图层,不再被移动端菜单遮挡
- 个人空间教程体验优化:教程期间支持滚动查看内容;移动端标签自动横向滚动到可见后再点击;桌面端标签自动纵向滚动后再点击
- 新增“连接状态指示灯”教程步骤:绿色表示连接正常,红色表示与后端断开
- 教程入口页精简:移除“已完成/重新开始”状态文案,统一为“开始新手教程”
- 主题命名文案统一将“Claude 经典”调整为“经典”,并同步更新相关引导文案
- 模型偏好页优化:移除“默认思考模型”中“思考模式”的“推荐”标记
- 修复“对话回顾”弹窗多主题适配问题:经典/明亮/夜间主题下的背景、边框、文本、按钮与状态样式统一跟随主题变量
# 1.0.17
- 登录/注册页改为 Vue 实现,统一前端技术栈
- 登录/注册页接入主题变量体系自动跟随已保存主题Claude / 浅色 / 深色)
- 移除登录/注册页独立主题切换控件,主题入口统一由主界面个人空间管理
# 1.0.16
- 工作区顶部品牌图标改为内联 SVG 渲染(不再依赖静态路径加载)
- 修复深色/浅色主题下 logo 颜色适配问题,跟随主题文本色显示
# 1.0.15
- 修复图片查看链路:`view_image` 工具结果可正确附带图片内容,降低“识别成其他图片/内容”的误判
- 新增「强约束系统」开关(个人空间):可分别约束 terminal 系列与子智能体系列工具,要求先阅读对应 `skills/*/SKILL.md`(且仅对已启用 skill 生效)
- 优化输入与消息气泡换行策略:达到最大宽度即换行
- 修复深色模式下 `run_python` 结果区显示异常,代码与输出统一为白色文字
# 1.0.14
- 移除前端「实验功能」中的 Liquid Glass 实验页与悬浮组件,减少无关试验功能干扰
- 删除 `scripts/liquid-glass-demo` 目录(含 node_modules/.next显著降低部署压缩包体积
# 1.0.13
- 修复工作区连接状态指示灯在轮询模式下常亮问题:新增连接探活心跳,断连时可正确切换为离线状态
- 调整状态灯视觉:离线红灯与在线绿灯均支持扩散呼吸特效
# 1.0.12
- 进一步修复手机端菜单点击反馈:增强去除系统默认蓝色点击高亮框(含快捷菜单按钮按压态)
# 1.0.11
- 优化手机端点击反馈样式:移除默认蓝色点击高亮矩形,减少触控干扰感
# 1.0.10
- 手机 App 左上角菜单新增“刷新页面”入口(仅 App 端显示)
- 加载界面(正在连接服务器)新增“刷新页面”按钮
- 继续优化 App 内更新下载链路稳定性
# 1.0.9-test1
- 测试版本:验证 App 内下载更新链路DownloadManager是否在不同浏览器环境下稳定工作
# 1.0.9
- 修复 App 内点击“更新”后依赖外部浏览器下载导致部分机型失败的问题
- 新增 Android JS Bridge 下载通道:优先使用系统 DownloadManager 直接下载 APK
- 前端下载逻辑增加桥接优先与浏览器回退,提升下载成功率
# 1.0.8
- 同步最新对话压缩体验:压缩中状态提示更稳定,压缩完成后反馈更清晰
- 优化压缩后会话切换与列表刷新表现,减少需要手动刷新的情况
- 修复电脑端摘要行与正式输出内容的对齐问题
# 1.0.7
- 应用图标替换为新的机器人插画 PNG 版本
# 1.0.6
- 应用图标替换为指定 JPG 图片资源
- 更新 AndroidManifest 图标引用icon / roundIcon
# 1.0.5
- 手机端「工作文件」侧栏最大宽度由 86% 提升到 100%
- 保持默认 60% 起始宽度,并在内容需要时继续自适应扩展
# 1.0.4
- 调整手机端「工作文件」侧栏宽度策略:默认按 60% 屏宽展开
- 当内容较宽时可自适应扩展侧栏宽度(上限 86%),减少内容被截断
- 保持「对话记录」侧栏宽度逻辑不变
# 1.0.3
- 修复 App 端版本读取时机,避免显示“当前版本未知(?)”
- 进一步隐藏 App 端页面滚动条(保留页面内部可滚动区域)
# 1.0.2
- 修复 App 端“当前版本显示未知”问题(版本号改为优先从 Android JS Bridge 读取)
- 优化“软件更新”页更新日志展示:长内容在卡片内滚动,不再无限拉长
- 强化 App 页面滚动隐藏补丁,减少出现系统滚动条的情况
- 更新上传脚本:支持自动打包 + 上传,并同步版本号与更新说明
# 1.0.1
- 移除 App 页面上下滚动条(仅 App 壳生效)
- 优化 App 内页面样式补丁与资源版本参数
## 1.0.0
- 首次发布 Android WebView 壳应用
- 适配移动端抽屉宽度与状态栏主题联动
- 新增个人空间「软件更新」页(仅 App 端显示)