Merge pull request #359 from JefferyHcool/feat/desktop-transcriber-defaults

feat(transcriber): 默认 size 改 tiny + 切本地引擎前 confirm 模型下载
This commit is contained in:
Jianwu Huang
2026-05-09 14:35:08 +08:00
committed by GitHub
2 changed files with 29 additions and 2 deletions

View File

@@ -73,6 +73,28 @@ export default function Transcriber() {
}, [modelStatuses, mlxModelStatuses, fetchModelsStatus])
const handleSave = async () => {
// 切到本地 whisper 引擎且选了未下载的模型时,提前 confirm避免用户保存后到首次任务才发现要下 GB 级模型
if (isWhisperType(selectedType)) {
const pool = selectedType === 'mlx-whisper' ? mlxModelStatuses : modelStatuses
const target = pool.find(m => m.model_size === selectedModelSize)
if (target && !target.downloaded && !target.downloading) {
const sizeHint: Record<string, string> = {
'tiny': '~75MB',
'base': '~150MB',
'small': '~500MB',
'medium': '~1.5GB',
'large-v3': '~3GB',
'large-v3-turbo': '~1.6GB',
}
const ok = window.confirm(
`选择 ${selectedType} / ${selectedModelSize} 后,首次转写时会下载该模型(${sizeHint[selectedModelSize] || '体积未知'})。\n` +
`网络较差时容易中断;推荐改用 Groq / 必剪 / 快手 等在线引擎。\n\n` +
'继续保存吗?',
)
if (!ok) return
}
}
setSaving(true)
try {
const payload: { transcriber_type: string; whisper_model_size?: string } = {

View File

@@ -25,7 +25,12 @@ class TranscriberConfigManager:
json.dump(data, f, ensure_ascii=False, indent=2)
def get_config(self) -> Dict[str, Any]:
"""获取当前转写器配置fallback 到环境变量默认值。"""
"""获取当前转写器配置fallback 到环境变量默认值。
whisper 默认 size 从 'medium' (~1.5GB) 改为 'tiny' (~75MB)
新装用户没主动设置时不应该被首次下载卡住。想要更高精度可在「音频转写配置」
页主动切换。
"""
data = self._read()
return {
"transcriber_type": data.get(
@@ -34,7 +39,7 @@ class TranscriberConfigManager:
),
"whisper_model_size": data.get(
"whisper_model_size",
os.getenv("WHISPER_MODEL_SIZE", "medium"),
os.getenv("WHISPER_MODEL_SIZE", "tiny"),
),
}