edit | blame | history | raw

Round 4 PRD:Parakeet English 高级模型

状态:v0.1 启动稿
所属子项目:02-P-NBL
Round:Round 4
日期:2026-06-03
基线版本:2.1.21 build20260603.1327
基线 commit:7bedb18
关联文档:

1. 背景

Round 3 已完成 English 默认 Moonshine:

  • English UI 可用。
  • English 默认 current model 为 moonshine-en
  • Moonshine 可下载、加载、断网识别。
  • 中文 SenseVoice 路径已回归通过。

Round 4 不改变默认策略。Moonshine 仍然是 English 默认模型;Parakeet 是用户主动选择的高级模型。

2. 本轮目标

Round 4 完成后:

场景 期望结果
English 用户未安装 Parakeet 继续默认使用 Moonshine
English 用户主动选择 Parakeet 未安装则提示下载,安装后切换为 Parakeet
English 用户从 Parakeet 切回 Moonshine 立即切回 Moonshine,Parakeet 保留
中文用户 不显示或不推荐 Parakeet,不影响 SenseVoice
Parakeet 下载失败 不破坏 Moonshine、SenseVoice、userdict、history

核心目标:

  • 新增 parakeet-en model profile。
  • 新增 nemo_transducer backend builder。
  • 新增 English 模型选择 UI。
  • 用户可以在 Moonshine EnglishParakeet English 之间手动切换。
  • Parakeet 未安装时不能直接使用,必须下载并校验。
  • Moonshine 保留,不自动删除。

3. 本轮非目标

明确不做:

  • 不把 Parakeet 作为 English 默认模型。
  • 不把 Parakeet 暴露给中文默认路径。
  • 不接 Qwen3-ASR。
  • 不做欧洲语言 UI。
  • 不做 30+ 语言列表。
  • 不做正式签名和 notarization。
  • 不做 Apple Silicon 之外的平台扩展承诺。
  • 不删除 Moonshine。
  • 不自动迁移用户到 Parakeet。

4. 模型选择决策

本轮选择:

model id: parakeet-en
actual package: sherpa-onnx-nemo-parakeet-unified-en-0.6b-int8-non-streaming
backend kind: nemo_transducer
language: English
tier: advanced

选择 unified-en 0.6b int8 non-streaming,原因:

  • sherpa-onnx 当前官方页面列出该模型。
  • 当前 Go 绑定 v1.12.24 支持 offline transducer + ModelType=nemo_transducer
  • 官方示例使用 encoder.int8.onnxdecoder.int8.onnxjoiner.int8.onnxtokens.txt
  • 下载包约 501350460 bytes,适合作为用户主动下载的高级模型,不适合作默认模型。

不选择旧计划里的 sherpa-onnx-nemo-parakeet-tdt-0.6b-v2-int8 作为默认实现对象,原因:

  • 当前 sherpa 官方页面优先展示 unified-en 0.6b。
  • unified 包更新时间更新。
  • 本轮只需要一个 English 高级模型,避免一次接入多个 Parakeet 变体。

5. Parakeet Profile

新增 profile:

ID: parakeet-en
DisplayName: Parakeet English
BackendKind: nemo_transducer
Tier: advanced
SupportedLanguageIDs: en
RecommendedFor: en
Description: 高质量英文离线模型,适合英文长句、技术词和更高准确率需求。
ApproxSize: 约 478 MiB 下载包
InstallDirName: parakeet-en
ProviderOrder: cpu
NumThreads: 4

下载 URL:

https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-parakeet-unified-en-0.6b-int8-non-streaming.tar.bz2

Required files:

Role Required file
encoder encoder.int8.onnx
decoder decoder.int8.onnx
joiner joiner.int8.onnx
tokens tokens.txt

6. sherpa-onnx 配置

当前项目依赖:

github.com/k2-fsa/sherpa-onnx-go-macos v1.12.24

Parakeet builder:

config.ModelConfig.Transducer.Encoder = resolved.Files["encoder"]
config.ModelConfig.Transducer.Decoder = resolved.Files["decoder"]
config.ModelConfig.Transducer.Joiner = resolved.Files["joiner"]
config.ModelConfig.Tokens = resolved.Files["tokens"]
config.ModelConfig.ModelType = "nemo_transducer"
config.ModelConfig.NumThreads = resolved.Profile.NumThreads
config.ModelConfig.Provider = "cpu"
config.DecodingMethod = "greedy_search"

保留:

config.FeatConfig.SampleRate = 16000
config.FeatConfig.FeatureDim = 80

7. 用户故事

7.1 English 用户升级到 Parakeet

前置:

  • 当前语言为 English。
  • Moonshine 已安装并可用。
  • Parakeet 未安装。

操作:

  1. 用户进入设置页。
  2. 在模型区域看到:
  • Moonshine English
  • Parakeet English
  1. 用户点击 Parakeet。
  2. UI 显示下载确认和体积提示。
  3. 用户确认下载。
  4. 下载完成后自动切换到 Parakeet。

期望:

  • ModelSelectionMode=manual
  • SelectedModelID=parakeet-en
  • Engine 显示 Parakeet English · CPU
  • Moonshine 模型目录仍保留。

7.2 English 用户切回 Moonshine

前置:

  • 当前使用 Parakeet。
  • Moonshine 已安装。

操作:

  1. 用户在模型区域点击 Moonshine English。
  2. App 重新加载 Moonshine。

期望:

  • SelectedModelID=moonshine-en
  • ModelSelectionMode=manual
  • Engine 显示 Moonshine English · CPU
  • Parakeet 模型目录仍保留。

7.3 中文用户不受影响

前置:

  • 当前语言为中文。

期望:

  • 继续默认 SenseVoice。
  • 不自动下载 Parakeet。
  • 不因为 Parakeet 下载失败影响中文识别。

8. UI 要求

设置页新增模型选择区域。

English 状态显示:

Recognition Model

Moonshine English
Lightweight English model, recommended default.

Parakeet English
Higher quality English model, larger download.

中文状态可以先显示中文模型路径,不强制暴露 Parakeet:

识别模型

SenseVoice
轻量中文离线模型,默认推荐。

模型卡片至少展示:

  • 模型名称。
  • 一行用途说明。
  • 安装状态。
  • 当前使用标记。
  • 下载/使用按钮。
  • 下载大小。

9. 验收标准

Round 4 通过条件:

  • parakeet-en profile 正确。
  • Parakeet required files 校验正确。
  • Parakeet 可下载、校验、加载。
  • English 用户可从 Moonshine 切到 Parakeet。
  • English 用户可从 Parakeet 切回 Moonshine。
  • Parakeet 下载失败不破坏 Moonshine、SenseVoice、userdict、history。
  • 中文 SenseVoice 回归通过。
  • 断网状态下 Parakeet 英文识别可用。
  • QA 报告记录版本、build、commit、DMG、日志和关键证据。