支持更多引擎/架构优化#31
Draft
amlkiller wants to merge 14 commits into
Draft
Conversation
新增 CrispASR worker 后端, 支持 GGUF/bin 单文件模型、HuggingFace 下载缓存、本地模型扫描、GPU backend/设备/标点/统一内存配置, 并在设置面板暴露模型下载和缓存状态。 安装和发布流程改为通过 uv、pyproject.toml、uv.lock 同步依赖, 单独安装匹配的 PyTorch/FunASR, 并为 CrispASR 下载对应 Windows native runtime; CUDA runtime 安装失败时自动回退 CPU runtime。 同步更新默认配置、README/CLAUDE 文档、中英文 changelog 和 i18n 文案, 删除旧 requirements.txt。
使用 uv 和 pyproject.toml/uv.lock 管理依赖后, FunASR 模型目录中的 requirements.txt 已不再作为运行时依赖来源, 旧的加载前重命名逻辑失去意义。 移除 SenseVoice、FunASR Nano 加载前和模型下载后的 neutralize_funasr_requirements 调用, 同时删除对应工具函数, 避免继续保留已废弃的模型文件改写路径。
将 CrispASR 默认模型改为空值,并在控制面板下载区域提供模型选择入口,避免未选择时自动落到内置默认模型。 新增中英文占位和未选择提示,在未选择 CrispASR 模型时禁用下载按钮并跳过预下载。 运行时在 CrispASR 模型为空或无效时保留当前 ASR worker,避免以无效模型重新加载;本地 CrispASR 模型列表继续用真实路径展示,同时用解析路径去重。
- 新增 settings_store.py,集中 user_settings.json 的加载、保存、默认值补齐和旧设置迁移 - 保留 control_panel 旧设置读写 wrapper,同时增加模型、目标语言、ASR 语言、字幕模式等公开同步方法 - main.py 改用 panel、overlay、AudioCapture、VADProcessor 的公开 API,减少对私有字段的直接访问 - 为 AudioCapture 和 VADProcessor 增加公开状态属性与 buffer 统计接口 - 清理默认配置和首次启动对话框中的硬编码 API Key,并补充 README 凭据存放说明
新增 asr_service.py,集中 ASR worker 配置构造、缺失模型判断、下载后校验、加载切换和失败恢复逻辑。 LiveTranslateApp 不再直接持有 ASRClient,仅负责触发下载/加载对话框、重置增量 ASR 状态和更新 overlay 状态显示。 转写、语言切换、padding 更新、ready 状态和 shutdown 统一通过 ASRService 公开接口访问,为后续 PipelineController 拆分降低 main.py 的运行时耦合。
将音频采集、VAD、ASR 队列线程和增量 ASR 协调迁移到新的 pipeline_controller.py。 LiveTranslateApp 现在通过 PipelineController 事件接收音频电平和 ASR 文本,只保留 ASR 调用包装、内存日志、翻译调度和 UI 更新职责。 ASR 切换和设置同步改为调用 PipelineController 的公开方法,避免 main.py 直接管理 capture/asr 线程、队列和 VAD 状态。 同步 CLAUDE.md 的线程模型说明,并补齐 control_panel.py 中已有 Path 使用缺失的导入。
CrispASR 不再维护内置模型 profile,也不再将模型 key 回退到默认模型。 仅保留本地 .gguf/.bin 文件的校验、扫描和路径解析;ASR 切换时必须解析到有效本地文件,否则保持当前 worker。 控制面板移除 CrispASR 下载按钮和内置模型选项,下载对话框也不再处理 crispasr: 下载任务。
新增 sherpa-onnx ASR 集成入口,并接入 ASR service、worker、主程序、控制面板和模型管理流程。 补充默认配置、设置存储、安装脚本与发布脚本,覆盖依赖安装、模型选择和打包所需配置。 同步 README、CLAUDE、中英文文案和变更日志,说明新引擎相关使用与发布信息。
- 合并 Remote Whisper 客户端、服务端和使用文档,新增 remote_asr_url 默认配置与设置持久化。 - 在现有 ASRService/PipelineController 架构下解决 main.py 冲突,Remote Whisper 走 HTTP 客户端,本地 ASR 继续走 worker 子进程。 - 保留并整合 CrispASR、sherpa-onnx、Anime-Whisper 等 ASR 选项,更新控制面板、模型显示名、README 与更新日志。 - 同步 WebID 翻译提示词预设、字幕窗口鼠标穿透设置及相关中英文文案。
- 新增 FireRedVAD streaming rolling-frame 适配器,将 32ms float32 音频块转换为 25ms/10ms frame,并按 int16 幅度尺度送入 detect_frame - 在 VADProcessor 中加入 firered 模式,FireRedVAD 只提供 confidence,分段、静音、回溯切分、增量 ASR 和 ASR queue 仍复用现有状态机 - 增加 FireRedVAD Stream-VAD 本地模型发现、设置默认值、控制面板模型选择/刷新/状态显示和中英文 UI 文案 - 更新 pyproject/uv.lock、安装脚本可选模型下载、README/CLAUDE 使用说明,并修复 main.py 中字幕穿透设置保存的未定义函数引用
Contributor
Author
- 新增 worker-only parakeet.cpp C API adapter,支持本地 GGUF 模型、runtime DLL 加载、语言设置和 text/JSON 转写路径。 - 接入 ASR worker 与 ASRService 切换流程,缺模型或 runtime 时返回 invalid plan,切换失败沿用现有 worker restore 机制。 - 增加 parakeet.cpp 模型与 runtime 扫描,避免与 CrispASR 的 GGUF 模型列表互相污染,并支持 models 下 parakeet 命名 runtime 目录。 - 扩展设置面板、配置默认值和 i18n,支持选择模型、runtime、backend、decoder 与词级时间戳选项。 - 更新 install.ps1 可选安装参数,以及 README/README_zh/CLAUDE 中的使用说明和维护约束。
Contributor
Author
Contributor
Author
- 将控制面板原 VAD/ASR 标签拆为独立 ASR 和 VAD 标签,降低单页配置密度。 - ASR 页保留引擎、模型、设备、Hub、界面语言和远程 ASR URL 等现有控件。 - VAD 页承载 VAD 模式、神经阈值、FireRedVAD、本地能量阈值和分段时序设置。 - 保持原有设置 key、自动保存逻辑、运行时信号和模型状态刷新流程不变。 - 补充中英文标签文案,并同步 CLAUDE 架构说明为 8 个设置标签。
新增 NeMo CTC family 的加载分支,调用 sherpa-onnx OfflineRecognizer.from_nemo_ctc,并传入模型、tokens、线程数、采样率、feature_dim 与解码方法。 模型检测支持 nemo_ctc/nemo-ctc 元数据别名,并在 sherpa-onnx 前缀目录中根据 model(.int8).onnx + tokens.txt 自动识别为 NeMo CTC;Paraformer 也优先匹配 model.int8.onnx。 CUDA 模式下将 torch/lib、crispasr 和 ctranslate2 加入当前进程 PATH,降低 sherpa-onnx CUDA DLL 加载失败概率;worker ready 消息同步上报 runtime_provider 便于诊断。
Contributor
Author
|
接上主流asr框架才发现难怪没人做,SOTA模型效果好但是基本要专门支持。 |
Owner
是这样的,要单独适配,感谢PR! |
Contributor
Author
|
每个模型都要单独写支持,本来是想用通用框架支持多种模型的。🤣 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



支持 crispasr sherpa-onnx
crispasr 模型从 hf cstr下载
sherpa-onnx 模型 从官方仓库release下载
减小main.py体积 分离模块。