Skip to content

Repository files navigation

SonicInput Icon

SonicInput

基于 sherpa-onnx 的 Windows 语音输入工具,支持本地/云端 ASR 与 AI 后处理

Languages: 中文 | English

核心特性

  • 即开即用:剪贴板 / 文本 / GUI 多入口
  • 热键无管理员:Win32 RegisterHotKey(默认 Ctrl+Alt+Space,可自定义),冲突时会提示
  • 双模式录制:Realtime 低延迟;Chunked 精度高(AI 后处理)
  • 云端/本地切换:Groq / OpenRouter / NVIDIA / OpenAI / 本地 sherpa-onnx
  • 本地词汇记忆:用户确认后的词条会在后续 AI 清理前按同音/近音匹配注入
  • 词汇审查:设置页可调用当前 AI 提供商从 raw 转写上下文中挖掘候选词条

v0.8.8 更新

  • 遗留 API 清理:移除旧 ConfigServiceEventBus 兼容模块及未使用的服务、接口和异常方法;当前入口统一使用 RefactoredConfigServiceDynamicEventSystem
  • CLI 收敛:删除旧 --test--diagnostics 测试框架,保留默认 GUI、--gui--validate 与发布包专用 --package-smoke
  • 诊断与资源瘦身:删除孤立常量、依赖诊断、废弃 QML 页面和录音托盘资源,同时保留旧 Whisper 配置迁移能力。
  • 视觉审计工具归位:设置页视觉审计脚本移至 scripts/,显式修复 Qt 类型,并继续覆盖 34 个离屏截图场景。
  • 观测工具退役:删除完整 Stage 6 临时检查脚本;生产数据库字段、迁移、运行日志事件和长期质量审计保持不变。
  • 发布验证:Ruff、mypy、Vulture、Bandit、393 项非 GUI 回归、69 项离屏 GUI 回归及 Nuitka/MSVC 单文件构建均通过。

性能优化记录

系统需求

  • Windows 10/11 64 位
  • 内存 4GB+,磁盘 500MB

快速开始

  1. Releases 下载 SonicInput-v0.8.8-win64.exe
  2. 双击运行,默认热键 Ctrl+Alt+Space(若冲突可在设置中自定义)
  3. 在设置中填写需要的云端 API Key(可选),或直接使用本地模型

热键后端建议保持 win32(无需管理员,冲突率低);需要按键抑制时再切换 pynput

词汇审查与本地学习

  • 词汇审查只读取 raw ASR 转写,不读取 AI 清理后的 ai_optimized_text / final_text,避免把 AI 自己清错的结果固化进词库。
  • 本地词汇记忆是设置窗口中的一级页面,候选词和已保存词汇可分别查看和滚动。
  • 审查模型会根据整句 raw 上下文提取最小完整词组;候选必须带有可验证的原始记录证据,并由用户接受后才会进入本地词汇记忆。
  • 后续 AI 清理前,系统用 LexiconMatcher 对当前 raw 文本做同音/近音预筛,只注入相关词条。
  • 自动词汇审查默认关闭;可在设置页手动运行,也可开启空闲调度。
  • v0.8.1 起不保留旧审查结构的兼容迁移;若检测到不兼容 schema,会重建 review/lexicon 表。升级前可从旧版本设置页导出词库;配置和历史记录不受影响。
  • 本地审计脚本默认不输出转写原文,只保存长度、状态、路径、异常标签等元数据,便于比较不同 prompt 或模型配置。

开发环境

git clone https://github.com/Oxidane-bot/SonicInput.git
cd SonicInput
uv sync          # 安装运行依赖
uv run sonicinput --gui

代码质量自动化(Ruff)

# 安装开发依赖
uv sync --extra dev

# 安装本仓库 Git hooks(pre-commit / pre-push)
.\scripts\setup-git-hooks.ps1

默认行为:

  • pre-commit:自动执行 ruff format src testsruff check src tests --fix
  • pre-push:执行 ruff check src testsruff format --check src tests

AI Provider Notes

  • O​penAI Compatible 会优先以当前 base_url + A​PI k​ey 请求 /models 作为真实可用模型列表。
  • 测试连接时,如果填写的 model_id 不在该列表中,会直接提示“当前模型不在可用模型列表中”,而不是继续发起无效推理请求。
  • 对接 Cerebras 这类 O​penAI-compatible 服务时,请以 /models 返回结果为准,不要只看文档总览页。
  • 配置路径:%AppData%/SonicInput/config.json,对应字段为 ai.o​penai_compatible.base_urlai.o​penai_compatible.a​pi_k​eyai.o​penai_compatible.model_id

路径

  • 配置:%AppData%/SonicInput/config.json
  • 日志:%AppData%/SonicInput/logs/app.log
  • 历史与 Review 数据:%AppData%/SonicInput/history/history.db
  • 本地质量审计输出:quality_audit/(默认 git 忽略)

许可

MIT License,详见 LICENSE

About

An open-source voice input application.

Resources

Stars

32 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages