Skip to content

[windows][foundry-local] 本地 Whisper 空闲卸载后冷启动很慢;长句截断且末尾变成 �;希望长驻模式与本地润色模型 #1031

Description

@linonetwo

环境

  • OS: Windows 11 (10.0.26200)
  • OpenLess: 1.3.18C:\Program Files\OpenLess,stable)
  • ASR: foundry-local-whisper / whisper-large-v3-turbo(CUDA GPU,openai-whisper-large-v3-turbo-cuda-gpu:3
  • 硬件: i7-12700KF / 64 GB RAM / RTX 4070 Ti 12 GB
  • 相关配置(%AppData%\OpenLess\preferences.json):
    • foundryLocalAsrKeepLoadedSecs: 300
    • foundryLocalAsrLanguageHint: zh
    • activeLlmProvider: custom(未填 API Key)
    • defaultMode: light

1. 空闲一段时间后再用就会「像在加载」,希望长驻模式

现象:连续口述时几乎秒出(Foundry CoreAudioTranscribe 常见 270–480ms)。去做别的事过几分钟再按热键,会明显卡住,像在重新加载模型。内存/显存都很充裕,不希望为了省显存而卸载。

本机日志可以精确对上 5 分钟 keep-alive

# Foundry: 热路径很快
14:45:25 CoreAudioTranscribe Time:452ms
...
# 恰好 5 分钟后卸载(对应 foundryLocalAsrKeepLoadedSecs=300)
14:50:25 Unloading model:openai-whisper-large-v3-turbo-cuda-gpu:3
# 下次口述又走冷启动:注册 EP + 拉 Azure catalog + ModelLoad
14:51:13 AutoRegisterCertifiedEps
14:23:07 / 14:51:* ModelList Time:20243ms   # 冷启动曾卡在拉 catalog ~20s
14:51:40 ModelLoad Time:1122ms

9/4–9/5 的 foundry.core*.logUnloading model / ModelLoad 成对出现非常频繁。热路径 1s 内出字,冷路径还要再付 catalog + load。

请求:

  • 提供真正的 长驻 / never unload 选项(keepLoadedSecs=0 或无限),把权重留在 VRAM。
  • 推理路径不要每次空闲唤醒都去 Azure catalog 做 ModelList(本机已有缓存模型)。
  • UI 里把 keep-alive 说明写清楚;当前 300s 对「说一句、去干别的、再回来」太短。

2. 本地模型只能识别很短一段,更长直接截断,末尾变成 �

history.json 里大量 foundry-local-whisper 记录停在约 20 个汉字,并以 U+FFFD(``)结尾。今天口述本 issue 时就复现了:

durationMs rawTranscript
3490 希望还可以提供一个本地润色模型可以``
6000 我不开润色就是因为输入短内容的时候``
5810 有时候最后一个字还会变成一个特殊字(疑似「特殊字符」被截)

同一天用火山引擎时单条经常 70–140 字;切到 Foundry 后 9/4 的 activity 是 336 次口述 / 仅 3528 字(约 10.5 字/次),9/5 是 101 次 / 1128 字。这不像「我只说短句」,更像输出被截断。

另外 OpenLess 日志有:

[foundry-asr] splitting 36.09s audio into 2 chunks (limit=30000ms)

Whisper 30s 窗 + 可能的短 max_new_tokens / UTF-8 缓冲截断,都能解释「长内容没了 + 最后一个汉字变成 ``」。

请求:

  • 修截断:完整拼 chunk、提高/暴露生成长度、避免在多字节汉字中间切断。
  • 去掉或修复 U+FFFD 尾巴。
  • 中文长口述(>30s)应能拼成完整段落,而不是只剩开头一句。

3. 希望提供本地润色模型

当前 Windows 本地只有 ASR(Foundry Whisper)。润色仍走云端 LLM;我这边 custom 未填 key,所以每次都是 polish failed, falling back to raw: API Key 为空

机器有 64GB + 12GB 显存,希望能像 voxminutes 那样用本地小模型做整理(他们用 llama.cpp sidecar + Qwen2.5-3B / Qwen3-4B / Gemma-3-4B GGUF 做摘要)。OpenLess 已有风格包 prompt,缺的是本地 LLM 后端(Ollama / Foundry / llama.cpp 均可)。

相关:#1030(本地小参数润色会把上一轮历史当结果)、#998(连接 keep-alive)。

期望

  • 可配置长驻,空闲后第一次口述仍是亚秒级,而不是重新 load
  • 中文长句不再截断,末尾不再出现 ``
  • Windows 可选用本地润色模型,不必强制云端 API Key

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions