本地优先的 AI 语音输入法 - 毫秒响应,隐私安全
| 功能 | 说明 |
|---|---|
| 🎤 语音输入 | 按住快捷键说话,松开即转换为文字 |
| 🌐 智能翻译 | 本地离线翻译,支持中英互译 |
| 🔢 数字转换 | 智能识别并转换中文数字(幺三八→138、零一二三→0123) |
| ⚡ 极速响应 | 端侧模型,毫秒级识别速度 |
| 🔒 隐私安全 | 音频本地处理,不上传云端 |
| ⚙️ 灵活配置 | 自定义快捷键、麦克风、翻译模式 |
| 📁 音频管理 | 自动清理和管理录音文件 |
| 项目 | 要求 |
|---|---|
| 操作系统 | macOS 10.15+ / Windows 10+ |
| Python | 3.10+ |
| 内存 | 8GB+ (推荐 16GB) |
| 磁盘空间 | 5GB+ (模型文件) |
# 克隆仓库
git clone https://github.com/dspcter/ai-automation-tools.git
cd ai-automation-tools/快人快语
# 安装依赖
pip install -r requirements.txt
# 启动程序
python main.py首次启动时会自动:
- 下载 SenseVoice 语音识别模型 (~700MB)
- 打开设置窗口进行初始配置
- 引导完成自动创建标记文件
| 功能 | macOS | Windows |
|---|---|---|
| 语音输入 | 按住 Option |
按住 Right Ctrl |
| 快速翻译 | 按住 Right Cmd |
按住 Right Cmd |
1. 按住 Option 键
2. 说话:"今天天气真不错"
3. 松开 Option 键
4. 文字自动注入到光标位置
| 输入 | 输出 | 说明 |
|---|---|---|
| 幺三八 | 138 | 电话号码 |
| 零一二三 | 0123 | 保留前导零 |
| 一二三四五 | 12345 | 连续数字 |
| 十一万 | 110000 | 大单位 |
| 一个亿 | 100000000 | 亿单位 |
| 模块 | 技术方案 |
|---|---|
| 语音识别 | sherpa-onnx + SenseVoice-small |
| 翻译引擎 | MarianMT (离线) / Qwen2.5-1.5B |
| 数字转换 | cn2an (自定义增强) |
| 快捷键监听 | pynput |
| 音频采集 | sounddevice + webrtcvad |
| 文字注入 | pyautogui (剪贴板方式) |
| 设置界面 | PyQt6 |
| 打包工具 | PyInstaller |
快人快语/
├── main.py # 主程序入口
├── requirements.txt # 依赖列表
├── README.md # 项目说明
├── PRD.md # 产品需求文档
├── PROJECT_SUMMARY.md # 项目总结
├── 安装说明.md # 安装指南
│
├── core/ # 核心功能模块
│ ├── __init__.py
│ ├── hotkey_manager.py # 全局快捷键监听
│ ├── audio_capture.py # 音频采集 + VAD
│ ├── asr_engine.py # SenseVoice 语音识别
│ ├── marianmt_engine.py # MarianMT 翻译
│ ├── translate_engine.py # Qwen2.5 翻译
│ ├── text_injector.py # 文字注入
│ └── text_postprocessor.py # 文本后处理 + 数字转换
│
├── models/ # 模型管理
│ ├── __init__.py
│ ├── model_manager.py # 模型下载/管理/检测
│ └── models/ # 本地模型存储目录
│ ├── asr/ # 语音识别模型
│ └── translation/ # 翻译模型
│
├── ui/ # 用户界面
│ ├── __init__.py
│ ├── settings_window.py # PyQt6 设置窗口
│ └── first_run_wizard.py # 首次运行向导
│
├── config/ # 配置管理
│ ├── __init__.py
│ ├── constants.py # 常量定义
│ └── settings.py # 配置读写
│
├── storage/ # 数据存储
│ ├── __init__.py
│ └── audio_manager.py # 音频文件管理
│
├── audio/recordings/ # 录音文件存储
├── assets/ # 资源文件 (图标)
└── logs/ # 日志文件
配置文件位于 config/settings.json:
{
"hotkeys": {
"voice_input": "option",
"quick_translate": "right_cmd"
},
"audio": {
"sample_rate": 16000,
"vad_threshold": 500
},
"translation": {
"mode": "button",
"target_language": "en",
"source_language": "zh"
},
"cleanup": {
"enabled": true,
"days": 7
}
}支持的快捷键格式:
- 单键:
fn,ctrl,alt,shift,cmd - 组合键:
ctrl+shift+t,cmd+space - 修饰键:
right_ctrl,right_alt,right_cmd
cd 快人快语
python main.py# macOS
chmod +x build.sh
./build.sh
# Windows
build.bat# 测试语音识别
python test_dependencies.py
# 测试翻译引擎
python test_marianmt.py
# 测试数字转换
python3 -c "import cn2an; print(cn2an.transform('幺三八零一二三'))"新功能
- ✨ 智能中文数字转换(cn2an 集成)
- 🔢 支持"幺"→"1"转换
- 🔢 保留前导零(零一二三→0123)
- 🔢 连续数字转换(一二三四五→12345)
修复
- 🐛 修复 Right Command 键监听问题
- 🐛 修复音频文件删除功能
- 🐛 优化快捷键映射逻辑
A: macOS 需要在「系统设置 → 隐私与安全性 → 辅助功能」中授权
A:
- 检查网络连接
- 手动下载:
# SenseVoice 模型 wget https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17.tar.bz2 tar -xf sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17.tar.bz2 mv sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17/* models/models/asr/sense-voice/
A: 在设置窗口中自定义其他快捷键组合
A:
- 确认已安装
cn2an库:pip install cn2an - 检查日志文件
logs/*.log
本项目基于以下优秀的开源项目:
- Sherpa-ONNX - 语音识别框架
- Qwen2.5 - 通义千问大模型
- MarianMT - 神经机器翻译
- cn2an - 中文数字转换工具
- pynput - 全局快捷键监听
产品灵感: 闪电说
MIT License
欢迎提交 Issue 和 Pull Request!
- GitHub Issues: 提交问题