Skip to content

Repository files navigation

Aria — Windows 本地 AI 语音输入

本地语音识别 · 本地屏幕 OCR 上下文 · 热词纠错 · 可选 AI 润色 · CPU / GPU 双运行形态

Version License Platform Python

下载 · 快速开始 · 默认状态 · 架构 · OCR 模块 · 隐私 · 参与开发


项目目的

Aria 是一个面向 Windows 桌面输入场景的本地语音输入项目。它的目标不是把语音识别单独做成演示,而是把“按下热键—说话—纠错—输入—恢复现场”做成可长期使用的完整链路:

  • 识别默认在本机完成,不配置账号也能使用;
  • CPU 机器有开箱即用的轻量运行时,NVIDIA GPU 可按需启用高质量运行时;
  • 屏幕 OCR 通过窗口标题、UI Automation 和本地截图识别提供专名证据,同时限制脏页面文字对 ASR 的干扰;
  • 热词、屏幕证据和近期上下文用于纠正专名与同音词,但不能改变用户原意;
  • AI 润色、云端识别救援均为可选能力,默认关闭;
  • 语音输入借用剪贴板时,必须恢复原来的文字、图片、文件或空状态;
  • 配置、历史和模型属于用户数据,更新程序不能覆盖它们。

当前稳定线是 1.6。它延续三运行时架构,并重点收口语音修改、AI 配置、GPU 安装和日常输入体验。

当前默认状态

场景 默认值 是否联网 说明
标准版 qwen3_sherpa sherpa-onnx int8 + Qwen3-ASR 0.6B,纯 CPU
GPU 形态 qwen3_llamacpp 仅本机回环 llama.cpp CUDA + Qwen3-ASR 1.7B Q8;识别请求只发往 127.0.0.1
源码模板 qwen3 可选 PyTorch 运行时;开发者也可切换到另外两个运行时
AI 润色 关闭 开启后会联网 默认模型 deepseek-v4-flash;没有 Key 时不调用
云端识别救援 关闭 开启后会联网 只有显式配置并启用后才上传失败语段
屏幕 OCR 采集 关闭 可在“自动学习的热词”中显式开启;截图仅在本地内存处理
屏幕感知增强 关闭 开启后随润色联网 只有与 AI 润色同时显式开启,才把文字摘要交给用户配置的 API
自动热词学习 关闭 开启审查后会联网 默认不持久化 OCR 候选词,也不调用热词审查 API
润色风格 顺畅口语 取决于润色开关 默认整理口头重复与语气词,不擅自改写意思
收音模式 正常 可切换嘈杂 / 轻语
调试录音 不保存 只有设置 ARIA_DEBUG_SAVE_AUDIO=1 才落盘

Qwen3-ASR 官方模型覆盖 30 种语言与 22 种中文方言。不同 Aria 运行时使用不同量化和推理后端,能力与速度仍以实际硬件和音频为准。

当前架构

前台窗口 ── 标题 / UI Automation / 窗口截图
                         │
                         ▼
              本地 ScreenOCR 上下文缓存
                         ├── fast:过滤后的短关键词 → ASR context
                         ├── quality:显式开启后 → AI 润色证据
                         └── 可选自动热词学习(默认关)

热键 / 持续监听 / 唤醒词
            │
音频采集 → DSP / VAD / 声学判定
            │
┌─────────────────────────────────────────────┐
│ qwen3_sherpa │ qwen3_llamacpp │ qwen3      │
│ CPU 0.6B     │ GPU 1.7B Q8    │ PyTorch    │
└─────────────────────────────────────────────┘
            │
            ├── 最终转写失败 → 引擎自愈 / 可选云端救援
            ▼
热词纠错 + 近期上下文 + 受控的屏幕证据
            ├── 可选 AI 润色
            ▼
输出注入 + 剪贴板恢复 + 历史记录 + UI 状态

四个 ASR 类型共用同一条后处理、输出和历史链路:

asr_engine 运行时 用途
qwen3_sherpa sherpa-onnx int8 标准版默认;无显卡也能运行
qwen3_llamacpp llama.cpp CUDA + GGUF GPU 形态默认;常驻本机 llama-server 子进程
qwen3 PyTorch 源码/legacy 环境兼容
funasr FunASR Paraformer 中文备用引擎

详细切换、文件布局和诊断方法见 引擎指南

屏幕 OCR 上下文模块

OCR 在 Aria 中不是附属截图功能,而是与 ASR、热词、润色并列的上下文子系统:

  • 三层取证:窗口标题立即可用;原生应用优先读取 UI Automation 文档文本;浏览器、终端和自绘界面由窗口截图 OCR 补齐。
  • 本地多级回退PP-OCRv5 DirectML → PP-OCRv5 CPU → RapidOCR v4 CPU → Windows OCR → 仅标题
  • 崩溃隔离:DirectML 跑在独立 OCR worker;驱动或 ONNX Runtime native 崩溃只会结束 worker,主程序自动切 CPU。
  • 延迟受控:OCR 后台运行并按窗口缓存;fast 模式永不等待,quality 模式只在确有屏幕证据需求时做预测式有界等待。
  • 证据而非输入:OCR 原文不会直接插入输出。屏幕采集、屏幕增强、自动热词学习和完整文字诊断日志都需要显式开启。

完整数据流、默认值、缓存策略、后端诊断和隐私边界见 屏幕 OCR 模块说明

下载与选择

公开 Release 固定提供两个文件:

文件 用途
Aria-v1.6.8-Windows.zip 唯一的新安装包;CPU 解压即用,包内含 GPU 一键安装器
Aria-source-1.6.8.zip 应用内自动更新载荷;普通新安装不需要下载

前往最新 Release

怎么选:

  • 没有 NVIDIA 显卡:解压后直接双击 Aria.exe,默认使用 CPU 轻量引擎。
  • 有 NVIDIA 显卡:先正常启动 Aria,再从悬浮窗右键菜单点击“GPU 加速”。未安装时会提示下载约 3.1 GB 的固定 GPU 资产并持续显示进度;逐项校验和显卡实机验证全部通过后,Aria 会自动切换到 GPU,无需重启。
  • GPU 安装失败不会把 CPU 配置改坏;按窗口里的明确错误修复驱动、网络或磁盘空间后重跑即可,下载支持断点续传。
  • 如果应用内入口无法使用,也可以在 Aria 关闭后双击包根的 Install_GPU.cmd 重新安装。
  • 维护者仍会构建约 4.8 GB 的完整 GPU 目录做发行验收,但其单个归档超过 GitHub Release 的单资产限制,不作为公开附件。
  • 旧版只用于历史追溯,不再作为新安装入口。

快速开始

  1. 下载 Aria-v1.6.8-Windows.zip,完整解压到普通可写目录;不要在压缩包预览窗口内直接运行。
  2. 双击 Aria.exe,默认先以 CPU 模式启动。首次运行如遇 Windows SmartScreen 提示「已保护你的电脑」,点「更多信息 → 仍要运行」即可——这是未签名开源程序的正常提示,仅首次出现,此后的应用内更新不会再弹。
  3. NVIDIA GPU 用户可在悬浮窗右键菜单点击“GPU 加速”,按提示完成安装并自动切换。
  4. 按反引号键 ` 开始录音,正常说话——每说完一句稍作停顿,文字自动上屏,中途不用按任何键;不再输入时再按一次关闭。
  5. 配好 AI 接口后(见下方“可选:开启 AI 润色”),说错了不用删、也不用按键:录音开着直接说「小助手,帮我把刚才那句话改得更自然一点」,刚才上屏的内容会被原地改写(用法见下方“语音修改”)。

不配置 API Key 也能完成本地识别、热词纠错、文字输入和本地类语音指令(截图、提醒、打开程序等);语音修改与翻译、总结、回复这类 AI 指令需要先配好 API Key。

可选:开启 AI 润色

  1. 右键托盘图标 → 设置 → API。
  2. 使用 DeepSeek 推荐配置或填写兼容接口。
  3. 粘贴自己的 API Key,测试成功后保存。
  4. 按需开启“屏幕感知增强”。

开启后,识别文本以及必要的屏幕上下文会发送给所配置的 API。具体边界见 数据与隐私说明

主要能力

  • 本地语音识别:标准版无需显卡;GPU 形态使用本机 llama.cpp 服务。
  • 声学防线:VAD、能量、峰值与置信度联合判断,减少低音量吞字和安静环境幻觉。
  • 识别自愈:超时、异常或空结果会触发引擎重建和救援策略。
  • 热词与同音纠错:支持权重、替换规则、拼音近似和屏幕专名学习。
  • 屏幕 OCR 上下文:标题、UI Automation、RapidOCR/Windows OCR 多级采集;独立 DML worker、CPU 回退、短期缓存和受控上下文路由。
  • 语音修改:刚说上屏的内容,喊一声唤醒词直接让它改,不用删掉重打(见下)。
  • 三档润色:逐字保真 / 顺畅口语 / 结构化文档。
  • 语音指令:截图、提醒、打开程序或路径本地即可用;配好 API 后支持翻译、总结、回复。
  • 剪贴板保护:恢复文字、图片、文件列表和空剪贴板;退出前冲刷等待中的恢复任务。
  • 自动更新:校验更新载荷后只替换程序文件,保留配置、历史和模型。

语音修改:说错了直接让它改

三步:① 按一次反引号开始录音,正常说话——每说完一句稍作停顿(约 1.5 秒),文字自动上屏,中途不用按键;② 想改刚上屏的内容,录音开着就直接说,句首喊默认唤醒词「小助手」加上你的要求,稍作停顿它就原地改写,不用选中文字(已经关了录音的话,再按反引号打开后说也行,刚上屏的内容约 3 分钟内都能改);③ 全部说完,再按一次反引号关闭录音。微信 / QQ 聊天框、Word / WPS 文档、终端里刚输入的内容都能改。

可以这样说(均为真实可用句式):

  • 「小助手,这句话太啰嗦,精简一点」
  • 「小助手,刚刚说的那段帮我润色一下」
  • 「小助手,把上面的内容写得更自然一点」
  • 「小助手,帮我把上一句话里天气挺好改成天气挺坏」
  • 改完不满意,接着说:「小助手,把上一句话再精简一点」——三分钟内都会在上一版的基础上继续调
  • 只要意见、不动原文:「小助手,看看这句话哪里不好」

说明:语音修改走 AI 改写,需要先配置 API Key(见上方“可选:开启 AI 润色”),未配置时 Aria 只会提示、不会动原文。唤醒词要说在句首;改写期间切了窗口、或原文被手动编辑过,Aria 会自动放弃这次覆盖,不会把内容写错地方。唤醒词可在 设置 → 语音指令 里改成自己喜欢的叫法,改完默认的「小助手」依然有效。选中一段文字后还可以说「小助手翻译成英文 / 总结一下 / 帮我回复」。

运行进程说明

这部分是运行时身份说明,不是产品功能宣传:

进程 来源与职责
Aria.exe 启动器;负责定位便携运行时并启动应用
AriaRuntime.exe Aria 使用的嵌入式 CPython 运行时;写入 Aria Project 的文件说明、版本和图标,避免任务管理器显示成匿名 pythonw.exe
llama-server.exe llama.cpp 上游组件;仅在 GPU 引擎启用时运行,保留上游文件名和身份,不伪装成 Aria

GPU 服务只绑定 127.0.0.1。Aria 只管理自己启动且资产匹配的子进程;发现端口被其他程序占用时会停止切换,不会结束无关进程。

数据与隐私

  • 麦克风音频默认只进入本地 ASR,处理完成后不保存原始 WAV。
  • OCR 窗口截图默认只在内存中处理,不保存图片;默认日志只写后端、耗时、长度和哈希,不写完整页面文字。
  • 热词、替换规则、历史记录、提醒和日志只存于当前安装目录。
  • API Key 使用 Windows DPAPI 加密;发布包不携带维护者或构建机器配置。
  • AI 润色、云端救援、更新检查和 GPU 资产下载是独立联网能力,说明和关闭方式见 数据与隐私说明
  • llama-server 的 HTTP 端口只监听本机回环地址,不是公网服务。

安全问题请按 安全策略 私下报告。

从源码运行

git clone https://github.com/Xingxun7777/Aria.git
cd Aria
py -3.12 -m venv .venv
.\.venv\Scripts\python.exe -m pip install torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
copy config\hotwords.template.json config\hotwords.json
.\.venv\Scripts\python.exe launcher.py

源码模板默认使用 qwen3 PyTorch CUDA 运行时,首次加载模型时需要联网下载模型资产;上面的 CUDA 12.8 安装行与仓库锁定版本一致。只想直接使用 CPU 版时,请优先下载 Release 的标准版,而不是安装整套开发依赖。

运行时配置文件已被 .gitignore 排除。不要提交 config/hotwords.jsonwakeword.json、日志、历史、模型或 API Key。

开发环境、测试命令与目录职责见 贡献指南

项目结构

公开仓库是每次发布生成的运行源码快照,目录只包含应用源码、出厂模板、运行资产和用户文档:

Aria/
├── app.py                    # 应用状态机、录音与 ASR 编排
├── launcher.py               # 单实例、启动画面、更新恢复
├── aria/                     # 稳定的 Python 包入口
├── core/
│   ├── asr/                  # 三个 Qwen3 运行时、FunASR、救援与声学策略
│   ├── audio/                # 音频采集、DSP、VAD、增益
│   ├── context/              # 三层屏幕 OCR、独立 DML worker、缓存与上下文路由
│   ├── hotword/              # 热词、纠错、润色
│   ├── history/              # 历史记录
│   ├── selection/            # 选区操作
│   ├── trigger/              # 热键/按住说话状态机
│   └── wakeword/             # 唤醒词与语音指令
├── system/                   # 全局热键、输出、剪贴板与权限
├── ui/qt/                    # PySide6 界面
├── config/                   # 可公开模板;运行时 JSON 不入库
├── assets/                   # 图标、VAD 与界面运行资产
├── docs/                     # 配置、引擎、OCR、数据与隐私说明
├── CONTRIBUTING.md           # 贡献约定
└── SECURITY.md               # 安全报告与支持边界

发布构建、维护者测试、一次性诊断和本机配置不进入公开快照。公开仓的每个版本仍可直接检查完整运行源码,并可针对当前快照提交 Issue 或 Pull Request。

配置速查

字段 默认值
general.hotkey 反引号键 `
语音唤醒词(wakeword.json 小助手(设置 → 语音指令 可改)
polish.enabled false
polish.model deepseek-v4-flash
polish_style smooth
asr_rescue.enabled true
asr_rescue.cloud_enabled false
vad.screen_ocr false
vad.screen_ocr_polish false
vad.screen_ocr_use_dml true
vad.screen_ocr_force_cpu false
auto_hotword.enabled false
audio.capture_mode standard
output.typewriter_mode false

完整字段见 配置参考

系统要求

项目 标准版 GPU 形态
操作系统 Windows 10/11 64 位 Windows 10/11 64 位
CPU x64,建议 4 核以上 x64
内存 8 GB,建议 16 GB 建议 16 GB
显卡 不需要 NVIDIA CUDA 显卡,建议至少 6 GB 可用显存
Python 便携包不需要;源码开发使用 3.12 同左

许可证与致谢

本项目采用 Apache License 2.0

主要上游组件:

项目依赖与第三方许可证以各组件随附许可为准。

About

Windows 本地 AI 语音输入:Qwen3-ASR CPU/GPU 双运行形态、本地屏幕 OCR 上下文、热词纠错与可选 AI 润色。

Topics

Resources

Contributing

Security policy

Stars

62 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages