# VoiceSnap 多语言与多模型总体产品规划 状态:产品规划稿 日期:2026-06-01 范围:安装语言识别、默认模型选择、用户可选大模型升级、未来多语言扩展 ## 1. 核心产品判断 VoiceSnap 后续不应再把“模型”写死为某一个固定模型。产品层面应升级为: ```text 语言版本 -> 推荐默认模型 -> 可选高级模型 -> 用户可手动切换/删除 ``` 第一阶段只支持两个语言版本: - 中文 - English 但产品和架构必须按可扩展方式设计,未来可以增加更多语言。粤语应按独立语言版本处理,而不是简单并入中文。 ## 2. 第一阶段目标 第一阶段目标不是做完整模型市场,而是把当前单模型产品升级成清晰的“双语言、双默认、双高级”产品结构。 | 语言版本 | 默认轻量模型 | 用户可选高级模型 | 产品定位 | |---|---|---|---| | 中文 | SenseVoice | Qwen3-ASR | 中文、中英混输、未来可扩展粤语/方言 | | English | Moonshine English | Parakeet | 英文输入、英文技术口述、英文离线听写 | 默认模型应尽量轻量、稳定、下载成本低。高级模型允许更大体积,但必须由用户主动选择下载。 ## 3. 安装与首次启动逻辑 ### 3.1 自动识别本机语言 安装或首次启动时,VoiceSnap 读取系统语言/区域设置。 MVP 规则: | 系统语言 | VoiceSnap 语言版本 | 默认模型 | |---|---|---| | 简体中文、繁体中文、中文区域 | 中文 | SenseVoice | | English | English | Moonshine English | | 其他暂未支持语言 | English | Moonshine English | 说明: - 第一阶段不在安装流程中要求用户手动选择模型。 - 中文用户默认进入中文产品体验。 - 英文用户默认进入英文产品体验。 - 其他语言第一阶段暂时回落到英文,未来再扩展。 ### 3.2 默认模型安装 首次启动时,系统根据语言版本自动准备默认模型: ```text 中文 -> SenseVoice English -> Moonshine English ``` 产品要求: - 用户不需要在首次启动时理解模型差异。 - 默认模型准备完成后,用户即可开始离线输入。 - 如果模型需要下载,应显示清晰下载进度。 - 下载模型不等于上传用户数据;音频识别仍然离线。 ## 4. 模型选择与保留策略 ### 4.1 默认模型不自动删除 如果用户安装高级模型,默认轻量模型必须保留。 中文场景: ```text 默认 SenseVoice 用户主动下载 Qwen3-ASR 切换到 Qwen3-ASR SenseVoice 保留 ``` English 场景: ```text 默认 Moonshine English 用户主动下载 Parakeet 切换到 Parakeet Moonshine English 保留 ``` 原因: - 高级模型更大,用户可能试用后回退。 - 默认模型是低风险 fallback。 - 删除模型是不可逆本地操作,应由用户明确触发。 ### 4.2 用户可手动删除模型 模型管理规则: - 用户可以删除未使用的模型。 - 当前正在使用的模型不能直接删除,必须先切换到其他已安装模型。 - 如果用户删除高级模型,自动回退到该语言版本的默认模型。 - 删除模型只删除本地模型文件,不删除用户词库、历史、设置。 ### 4.3 模型切换规则 当用户选择一个未安装模型: ```text 选择模型 -> 显示模型说明和体积 -> 用户确认下载 -> 下载完成 -> 初始化 -> 切换成功 ``` 当用户选择已安装模型: ```text 选择模型 -> 释放当前引擎 -> 初始化目标模型 -> 切换成功 ``` 切换失败时: - 保持原模型不变。 - 显示错误原因。 - 不破坏已安装模型文件。 ## 5. 设置页产品结构 设置页需要新增两个区域: 1. 语言版本 2. 识别模型 ## 6. 语言版本设置 ### 6.1 第一阶段 UI 第一阶段只显示: ```text 语言版本 选择 VoiceSnap 的界面语言和默认识别方向。 自动(跟随系统) 中文 English ``` 推荐默认: - 首次启动使用“自动”。 - 一旦用户手动选择中文或 English,则保存为显式选择。 ### 6.2 未来扩展 未来可以扩展为类似 TagLauncher 的多语言列表: ```text 自动 简体中文 English 粤语 繁體中文 日本語 한국어 Français Deutsch Español ... ``` 架构上必须支持: - 每个语言有独立 `languageId`。 - 每个语言可以配置默认模型。 - 每个语言可以配置多个可选模型。 - 一个模型可以服务多个语言。 - 粤语作为独立语言处理。 ## 7. 识别模型设置 ### 7.1 第一阶段模型列表 设置页显示四个模型。 建议 UI 结构: ```text 识别模型 ○ SenseVoice 轻量中文模型,适合中文和中英混输。 ○ Qwen3-ASR 高质量多语言大模型,适合中文、中英混输、粤语和更多语言。体积较大。 ○ Moonshine English 轻量英文模型,适合英文离线输入和低延迟听写。 ○ Parakeet 高质量英文/欧洲语言模型,适合更高准确率需求。体积较大。 ``` ### 7.2 推荐与过滤 第一阶段可以按当前语言版本排序: 中文语言版本: 1. SenseVoice,推荐 2. Qwen3-ASR,高级 3. Moonshine English 4. Parakeet English 语言版本: 1. Moonshine English,推荐 2. Parakeet,高级 3. SenseVoice 4. Qwen3-ASR 不建议隐藏其他语言模型。可以折叠到“其他模型”里,但不要让用户找不到。 ### 7.3 模型状态展示 每个模型至少显示: - 模型名称 - 适合语言 - 模型特点 - 体积提示 - 状态:未安装 / 下载中 / 已安装 / 当前使用 - 操作:下载 / 使用 / 删除 示例: ```text Moonshine English 适合:English 特点:轻量、英文专用、低延迟 大小:约 135 MB 状态:当前使用 ``` ## 8. 首批模型定位 ### 8.1 SenseVoice 产品定位: - 中文默认轻量模型。 - 适合中文、中英混输、常规离线输入。 说明: - 继续作为中文用户的默认选择。 - 用户升级 Qwen3-ASR 后仍保留 SenseVoice。 ### 8.2 Qwen3-ASR 产品定位: - 中文高级模型。 - 适合更高质量、多语言、粤语、方言、中英混输场景。 说明: - 模型体积明显大于 SenseVoice。 - 必须由用户主动下载。 - 不作为第一阶段默认模型。 ### 8.3 Moonshine English 产品定位: - English 默认轻量模型。 - 适合英文用户日常离线输入。 说明: - 作为英文版默认模型。 - 优先使用 sherpa-onnx Moonshine English quantized 路线,以复用现有 Go + sherpa-onnx 框架。 ### 8.4 Parakeet 产品定位: - English 高级模型。 - 适合用户愿意下载更大模型以换取更高英文识别质量的场景。 说明: - 不作为默认模型。 - 用户主动下载后可切换。 - Moonshine English 保留作为 fallback。 ## 9. 推荐用户流程 ### 9.1 中文用户首次使用 ```text 安装/首次启动 -> 检测系统语言为中文 -> UI 使用中文 -> 默认准备 SenseVoice -> 用户开始输入 ``` 后续: ```text 设置 -> 识别模型 -> Qwen3-ASR -> 下载 -> 使用 ``` 如果不满意: ```text 设置 -> 识别模型 -> SenseVoice -> 使用 ``` ### 9.2 English 用户首次使用 ```text Install / first launch -> Detect system language as English -> UI uses English -> Prepare Moonshine English -> User starts dictation ``` 后续: ```text Settings -> Recognition Model -> Parakeet -> Download -> Use ``` 如果不满意: ```text Settings -> Recognition Model -> Moonshine English -> Use ``` ## 10. 非目标 第一阶段不做: - 30 种语言完整 UI。 - 自动识别用户说话语言并切换模型。 - 自动删除旧模型。 - 云端 ASR。 - 模型市场。 - 用户上传模型。 - Moonshine Voice framework 重写。 - 实时边说边出字。 第一阶段重点是: ```text 语言版本 + 模型 profile + 默认模型 + 高级模型切换 ``` ## 11. 产品验收标准 ### 11.1 中文默认路径 - 中文系统首次启动进入中文体验。 - 默认模型为 SenseVoice。 - 用户未主动选择时,不提示英文模型。 - 用户可下载并切换 Qwen3-ASR。 - Qwen3-ASR 下载后 SenseVoice 仍保留。 - 删除 Qwen3-ASR 后可以回到 SenseVoice。 ### 11.2 English 默认路径 - English 系统首次启动进入英文体验。 - 默认模型为 Moonshine English。 - 用户未主动选择时,不提示中文模型。 - 用户可下载并切换 Parakeet。 - Parakeet 下载后 Moonshine English 仍保留。 - 删除 Parakeet 后可以回到 Moonshine English。 ### 11.3 通用路径 - 语言版本可手动切换。 - 模型可手动切换。 - 未安装模型不能直接使用,必须先下载。 - 当前使用模型不能直接删除。 - 删除模型不影响用户词库、历史和设置。 - 模型切换失败时,原模型继续可用。 ## 12. 参考资料 - sherpa-onnx Moonshine v2 models: https://k2-fsa.github.io/sherpa/onnx/moonshine/models-v2.html - sherpa-onnx Parakeet NeMo transducer models: https://k2-fsa.github.io/sherpa/onnx/pretrained_models/offline-transducer/nemo-transducer-models.html - sherpa-onnx Qwen3-ASR: https://k2-fsa.github.io/sherpa/onnx/qwen3-asr/index.html - sherpa-onnx Qwen3-ASR pretrained model: https://k2-fsa.github.io/sherpa/onnx/qwen3-asr/pretrained.html - SenseVoice 2025-09-09 model files: https://huggingface.co/csukuangfj/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2025-09-09/tree/main