feat(asr): 接入 ZenMux 语音转写(JSON + base64)作为可选云端 ASR(#837) (#915)
* feat(asr): 接入 ZenMux 语音转写(JSON + base64)作为可选云端 ASR(#837) - WhisperBatchASR 新增 ZenMuxJson 请求格式:application/json + base64 input_audio,language 跟随工作语言(ISO 639-1 映射),enable_itn 可配置 - 新增 zenmux 命名预设:默认 https://zenmux.ai/api/v1 + qwen/qwen3-asr-flash, 复用 Whisper 兼容路由与 30s 分片;模型 slug 自由输入 - 设置页新增 enable_itn 开关(per-provider 高级配置,默认开启) - 补齐五语言 i18n、前端单测与 README * fix(asr): ZenMux「测试连接」按 JSON 协议验证 + 词典不生效说明(#837) - validate_asr_transcription 按 provider 真实请求格式发探针:OpenRouter / ZenMux 走 JSON+base64,其余 whisper 兼容厂商走 multipart,避免假阴性 - 设置页对 zenmux 预设增加说明:JSON 协议不发送词典热词(prompt/hotwords), 词典仍进入润色链路但不参与识别偏置;README 同步标注例外 - coordinator 再导出 whisper_request_format 供验证路径复用
This commit is contained in:
1 parent
d31cafd2d8
commit
5f9586f739
17 files changed
+555
-89
No files matched your search
@@ -180,7 +180,7 @@ Every item below is one more layer sedimented into a default — a capability yo
|
||||
- 🎨 **Style Pack Marketplace** — browse, install, and like community **style packs** from the in-app Marketplace, and publish your own (custom system prompt per pack, switchable by hotkey). Backed by a moderated marketplace backend; uploads are reviewed before they go public.
|
||||
- ⚡ **Streaming insertion** — polished text is written to the cursor character by character to reduce perceived latency, with an automatic one-shot-paste fallback. Toggle in Settings → Recording.
|
||||
- **Toggle and push-to-talk** recording modes, plus a **MediaPlayPause trigger** so wired-earbud inline controls can start and stop recording. `Esc` cancels at any phase, including polish and insertion.
|
||||
- **Cloud ASR**: Volcengine streaming ASR (bigasr), iFlytek realtime ASR (RTASR), Alibaba Cloud Bailian (classic realtime / Qwen3 realtime / Fun-ASR-Flash file transcription), StepFun StepAudio (batch + realtime), Zhipu GLM-ASR, Xiaomi MiMo ASR, ElevenLabs Scribe, OpenAI-compatible batch transcription (OpenAI Whisper / Groq / SiliconFlow SenseVoice / OpenRouter), and Apple Speech (macOS).
|
||||
- **Cloud ASR**: Volcengine streaming ASR (bigasr), iFlytek realtime ASR (RTASR), Alibaba Cloud Bailian (classic realtime / Qwen3 realtime / Fun-ASR-Flash file transcription), StepFun StepAudio (batch + realtime), Zhipu GLM-ASR, Xiaomi MiMo ASR, ElevenLabs Scribe, OpenAI-compatible batch transcription (OpenAI Whisper / Groq / SiliconFlow SenseVoice / OpenRouter / ZenMux), and Apple Speech (macOS).
|
||||
- **Local ASR**: bundled Qwen3-ASR (0.6B / 1.7B) via vendored `Open-Less/qwen-asr` (macOS); Windows Foundry Local Whisper and sherpa-onnx (experimental) variants.
|
||||
- **Polish providers**: Ark (Volcengine), DeepSeek, OpenAI, Google Gemini, Codex OAuth, SiliconFlow, Atlas Cloud, Xiaomi MiMo, CometAPI, OpenRouter, Alibaba Cloud Coding Plan, CodingPlanX, MiniMax, and StepFun — plus any OpenAI-compatible endpoint you bring.
|
||||
- **Four output modes**: raw, light polish, structured (**AI-prompt mode**), and formal. Plus a **translation hotkey** that converts speech directly into the configured target language ([#43](../../issues/43)).
|
||||
@@ -338,7 +338,7 @@ Long-term reference rewrites are stored as `raw → polished → rule` triples a
|
||||
The dictionary handles your proper nouns, product names, names of people, and new words. Today it supports:
|
||||
|
||||
- Manually adding the correct spelling, a category, and notes. You do not need to maintain misspellings or context hints.
|
||||
- Enabled entries are sent to the ASR provider that supports hotwords (Volcengine `context.hotwords`, StepFun `hotwords`, Whisper-compatible `prompt`, Bailian vocabulary ID) so they are recognized correctly during transcription. iFlytek realtime ASR has no request-level hotword parameter — configure personalized hotwords in the iFlytek console instead.
|
||||
- Enabled entries are sent to the ASR provider that supports hotwords (Volcengine `context.hotwords`, StepFun `hotwords`, Whisper-compatible `prompt` — except ZenMux, whose JSON protocol does not carry `prompt`/`hotwords`, Bailian vocabulary ID) so they are recognized correctly during transcription. iFlytek realtime ASR has no request-level hotword parameter — configure personalized hotwords in the iFlytek console instead.
|
||||
- Entries are also injected into the polish prompt: the model decides per sentence whether to substitute. If "Cloud" clearly refers to the AI product `Claude` in context, it is corrected; if it genuinely means cloud computing, it is left as is.
|
||||
- The app auto-learns candidate corrections such as `Claude`, `ChatGPT`, and `OpenLess` from your history and offers them later.
|
||||
|
||||
|
||||
Reference in new issue
Block a user