用途与实际影响
这项功能怎样使用
为什么需要它
录音可能含私人对话,几个本地模型也会争用同一块显卡。项目明确区分本地处理、显卡等待和这一次是否上传,避免悄悄换路线或泄露凭据。
举个实际例子
我问“普通录音会上传吗?”答案是不会。若我明确要求对一段重要录音使用云端,并授权这次上传,项目才尝试固定云路线;授权或网络条件不齐时只停云端部分,本地已有结果仍在。
最后我会得到什么
交回这次音频留在本机还是已实际上传、使用哪条识别路线、结果放在哪里,以及失败停在哪一步。云端不可用不会抹掉已保存的本地转写。
正常时
本地运行条件满足时按本地路线处理;只有本次云用途和上传许可都明确时才执行云候选。
发现问题时
显卡忙、网络失败或云端限流时保留已有本地结果和具体原因,按可行条件再继续。
入口不可用或证据不足时
凭据、模型或运行环境不可用时只阻断受影响路线,不露出秘密或自行换到别的服务。
从哪里开始
处理前说明用本地路线;确需云端时逐次明确上传范围。
需要准备什么
- 本次原音和用途
- 本地或云端选择
- 云端时的单次授权
从开始到拿到结果
- 1
系统核对并处理
日常录音在本地受管运行;更长或更重要不会自动授权上传,云端请求单独记录。
- 2
交付与接续
说明这次是否离开本机、模型是否真运行及失败位置,不把本地失败静默改成云处理。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
短进程租约与异常 worker 回收有来源真实验收;本轮不运行 GPU、云调用或壁纸观测关键规则与设计选择
普通、批量和长音频默认不上传。
Important 与 QualityReview 必须且只能选一个,CloudUploadAuthorized 仍独立必需。
密钥不进入命令行、请求文件、日志和转写结果。
OCR(光学字符识别) 与 ASR(自动语音识别) 可以各持一份租约并行;同类任务仍串行,Ollama 活跃请求或会话与二者互斥,不绕过 Broker(代理服务) 抢占未知工作负载。
网络和云失败不会污染本地证据链。
公开仓库只保留源码、测试与文档。
本模块用到的名词
- local-first(本地优先)
- 默认音频和模型推理都留在本机;云是独立显式路线。
- GPU lease(显卡租约)
- 绑定工作类型、持有者和有效期的可回收许可;同类互斥,OCR(光学字符识别)/ASR(自动语音识别) 可共存,Ollama 与两者互斥。
- SecretRef
- 引用密钥而不让模型或命令得到明文。
- cloud upload authorization(本次云上传授权)
- 仅针对当前选定录音、明确用途和当前一次上传,不是长期默认同意。
专业定义
普通录音默认留在本机,GPU 协调器按工作类型安排租约:OCR(光学字符识别) 与 ASR(自动语音识别) 可并行,Ollama 与两者互斥,同类仍串行。只有明确选择重要录音或存疑转写质量复核,并授权这一次上传,才打开云候选入口。
解决什么
解决音频隐私边界不清、云上传被默认触发、密钥泄露、GPU 并发冲突、服务进程失控,以及公开仓库误纳入模型权重、用户音频和生成结果的问题。
当前怎样实现
- 听写采用常驻受监督模型子进程,空闲权重留 RAM,录音与推理申请自己的 GPU 租约;加载 180 秒、激活/推理 60 秒、预热 40 秒、停车 20 秒均有上限。准备失败可点麦克风重试,不要求重启 Windows。
- 听写音频与识别结果不保存为历史文件;outputs/dictation/runtime.log 只记运行错误、耗时与字数,最近完整文本仅供本次托盘主动复制。
- 默认 pipeline 和 Smart API 使用本机模型与本机回环服务。
- ASR(自动语音识别) 租约最多 120 秒并每 20 秒续租;真实模型 worker 接管 PID/创建时间身份,监督进程消失时 watchdog 清理本任务 WSL(Windows 的 Linux 子系统) 后代。无法查询进程不是已死证明,旧六小时请求也不能重新占用数小时。
- OCR(光学字符识别)/ASR(自动语音识别) 可跨族并行、同族串行,Ollama 重型请求与二者互斥;合法文件作业占用时听写保留内存音频并显示真实阻断,可 Esc 取消。辅助进程隐藏,不暂停 Wallpaper Engine 或创建广泛 Python/WSL(Windows 的 Linux 子系统) 播放规则。
- FireRed worker 隔离在专用运行环境,不改变默认模型。
- asr-professional-cloud.ps1 在读音频前要求 Important / QualityReview 二选一及 CloudUploadAuthorized;重要路线写 importance=important,质量复核写 purpose=quality_review 且不写 importance。
- qwen_audio3_broker_worker.py 只接受固定请求结构和 SecretRef 注入,唯一 provider 为 Alibaba Cloud Model Studio(阿里云百炼),同步 API model id 固定 `qwen-audio-3.0-asr-flash`。
- 云音频仍本地转 16 kHz mono 并切成最长 180 秒,通过固定同步 Base64 HTTPS 入口发送;成功块可保存复用,已经发出但结果不明的请求不能盲重试重复计费,filetrans 路线仍未接入。
- transcript_readback.py 同时检索已保留本地 job(任务记录) 与完成态云结果,核对 schema(数据结构)、purpose、成功状态、原音哈希、每块范围和输出字节;完整云块只形成 chunk 时间粒度,quality 保持 unknown(未验证),不因更新日期更近就优先。
- 普通质量复核不会自动再启动 FireRed/Qwen 双引擎;只有仍影响理解的分歧才按需要回核原音和本地结果,重要证据路线继续保留本地证据链与人工核听。
- outputs、models、私人评测、wheelhouse 和录音由 Git ignore 与公开门排除。
执行流程
- 1
根据请求选择本地或专业云路线。
- 2
本地路线检查代理、GPU、依赖和模型。
- 3
重模型取得 GPU 租约并启动受管进程。
- 4
云路线在读取音频前验证唯一用途、上传授权与固定 worker 的 broker(代理服务) 绑定。
- 5
本地切片后只向阿里云百炼 `qwen-audio-3.0-asr-flash` 同步接口发送最长 180 秒的 Base64 片段;filetrans 路线保持未接入。
- 6
密钥只注入固定子进程环境。
- 7
执行结果写入被 Git 忽略的本地输出。
- 8
失败后返回本地后备或精确恢复条件。
边界
- 云入口不能由普通模式、文件夹批量或音频长度隐式触发。
- 云入口的精确数据目的地是阿里云百炼同步模型 qwen-audio-3.0-asr-flash;需要公网 URL 的 qwen-audio-3.0-asr-flash-filetrans 不属于当前能力。
- 任何输出都不能包含 API Key。
- 本地 API 只监听 127.0.0.1。
- 项目不结束未知 GPU 任务,也不通过强占资源制造成功。
- 公开仓库不包含私人 payload 与模型权重。
失败与恢复
- 缺少用途、同时选两个用途或缺少本次上传授权
- 在读取和上传前返回 blocked,不调用 broker(代理服务);普通质量复核不能通过假报重要性绕过用途检查。
- Secret Broker(本机受保护凭据中介) 或固定 worker 身份失败
- 不取得密钥、不上传,建议使用本地路线。
- 同类 GPU 租约占用或 Ollama 活跃请求/会话冲突
- 受影响任务保持 blocked 或等待;OCR(光学字符识别) 与 ASR(自动语音识别) 的允许共存不被当成冲突,也不绕过租约。
- 云网络、限流或 5xx
- 保留已成功块与本地证据;先区分未发出、明确失败和结果不明,后者不盲重发。取消就是终止,不自动再申请模型或因子授权。
真实入口
E:\Projects\Tools\ChineseASR\src\zh_asr\gpu_broker.pyGPU 租约与服务协调
E:\PCConfig\tools\local_gpu_broker\broker.pyOCR(光学字符识别)/ASR(自动语音识别) 分类共存、同类串行与 Ollama 互斥的所属实现;本轮只读源码,未调用服务
E:\Projects\Tools\ChineseASR\src\zh_asr\proxy_guard.py代理环境与本地请求边界
E:\Projects\Tools\ChineseASR\scripts\asr-professional-cloud.ps1重要录音显式云入口
E:\Projects\Tools\ChineseASR\scripts\qwen_audio3_broker_worker.py固定云 worker 与密钥消费
E:\Projects\Tools\ChineseASR\docs\public-release.md公开仓库内容与生成物边界
如何验证
- 2026-08-31 Doctor 确认 GPU、代理、FunASR、Qwen ASR(自动语音识别)、PyTorch 和模型目录可读;本轮只做源码与定向合成回归。
- GPU broker(代理服务)、proxy guard、professional cloud script 和 broker(代理服务) worker 回归包含在 2026-08-31 的 345 项通过结果中。
- 源码与测试固定 Alibaba Cloud Model Studio / qwen-audio-3.0-asr-flash、180 秒本地切片、HTTPS Base64 和一次有界重试;这些静态/测试事实不证明本轮云调用成功。
- 9 月 17 日来源 482 项回归与真实监督进程异常退出/worker租约回收通过,PCConfig 64 项 Broker(代理服务) 与 63 项配置恢复测试分别通过。本轮仅只读任务和对齐元数据,未把静态壁纸配置审计称为逐帧连续播放证明。
- 本次没有调用云端、没有上传音频、没有消费密钥或额度,也没有运行重模型真实 smoke。
与其他模块的关系
安装与恢复模块先提供可执行依赖和模型工件;本模块再为所有路线施加 GPU、进程、网络与隐私边界。它不决定正文质量,但决定某条处理路线是否允许执行、数据去了哪里。
