Skip to content

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

Description

@linonetwo

环境

  • OS: Windows 11 (10.0.26200)
  • OpenLess: 1.3.18(C:\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*.log 里 Unloading 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

  1. linonetwo commented on Sep 5, 2026

    @linonetwo
    Author

    补充:上一帖里 U+FFFD 在粘贴时被吃掉了。本机 history.json 的真实原文是末尾带替换字符 `` 的截断句,例如:

    • 希望还可以提供一个本地润色模型可以�
    • 我不开润色就是因为输入短内容的时候�

    即最后一个汉字经常变成 �(U+FFFD),而不是空的代码块。

  2. self-assigned this
    on Sep 10, 2026
  3. H-Chris233 commented on Sep 10, 2026

    @H-Chris233
    Collaborator

    接管

  4. linonetwo commented on Sep 12, 2026

    @linonetwo
    Author
    Image

    这里我改用ONNX,就完全没有这个问题,可以输入很长的内容。虽然他那种过程的时候也会偷懒,有时候就直接缩成一个question,之类的短的英文字符,直接放弃转录。
    但至少中长句子不会再被截断了。它要不就是偷懒,变成一个词;要不就是中长句子直出,反正效果好很多。

    反正归根结底,还是希望像我另一个叶修里说的那样,能够直接重试转路吧,或者如果老有问题,把它切分之后再转路之类的。不过其实能重试转路,究竟能解决一些这种问题吧,多试几次抽卡。

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

Metadata

Metadata

Assignees

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