Skip to content

UtenKekkoDev/vibe-coding-voice

Repository files navigation

Vibe Coding Voice Native

English README

Vibe Coding Voice Native 是一个面向开发者的 Windows 本地语音输入工具。它可以从麦克风录音,使用本地 SenseVoice 兼容模型转写语音,然后把识别结果复制或发送到当前输入框。

这个项目使用 Rust 和 egui 构建,重点服务中文以及中英混合的编程口述场景。它支持全局快捷键、本地麦克风采集、轻量原生界面、录音状态浮窗,以及不主动上传音频到远端服务的本地转写流程。

当前状态

项目目前处于 alpha 阶段。它已经可以用于本地试用和日常自用,但模型配置、焦点恢复、安装包和发布流程还在继续完善。

预览

主页预览

主页面如图所示

已支持

  • Windows 10 或更高版本
  • 本地麦克风输入
  • 本地 SenseVoice 兼容模型转写
  • 在线 Qwen-ASR Realtime 转写
  • 全局快捷键开始和结束录音
  • 两种输出模式:原文输出、改代码提示词
  • 识别结果复制和发送
  • 可选的识别后自动粘贴
  • 托盘和录音浮窗基础能力
  • 在设置页手动选择本地模型目录

暂不保证

  • 自动更新
  • 跨平台支持
  • 内置模型下载器
  • 稳定的扩展 API
  • Whisper.cpp 本地后端

后续可能继续探索其他 ASR 后端,当前公开版本支持本地 SenseVoice 兼容模型和在线 Qwen-ASR Realtime。

功能特点

  • 基于 eframe / egui 的原生桌面界面
  • 使用全局快捷键控制录音
  • 通过 cpal 采集本地麦克风音频
  • 通过 transcribe-rs 接入 SenseVoice 兼容转写
  • 内置结果编辑框、复制、发送、自动粘贴开关
  • 使用 PowerShell 实现录音和处理中浮窗
  • Windows 托盘集成
  • 加载中文字体,避免中文界面显示异常

隐私与安全

  • 使用本地模型时,音频设计上由你配置的本地模型处理。
  • 使用在线模型时,录音音频会发送到你配置的 DashScope/Qwen-ASR Realtime 服务。
  • 复制、粘贴、发送会使用剪贴板和键盘模拟能力。
  • 录音浮窗通过 recording-overlay.ps1 启动。
  • 如果要处理敏感代码、凭据或私密文档,请先审查源码、依赖和模型许可证。

环境要求

  • Windows 10 或更高版本
  • 支持 Rust 2024 edition 的稳定 Rust 工具链
  • PowerShell
  • 可用麦克风
  • 本地 SenseVoice 兼容模型目录
  • 如果使用在线模型,需要 DashScope API Key

下载安装

Release 页面会提供两种 Windows 包:

  • .msi:安装版,适合普通用户。安装后从开始菜单启动。
  • .zip:绿色版,适合想直接解压试用、手动管理文件的用户。

发布包不包含模型文件。如果使用本地模型,请参考下方“模型安装”或 docs/MODELS.zh-CN.md 下载模型;如果使用在线模型,请在设置里填写自己的 DashScope API Key。

快速开始

克隆仓库并运行:

git clone https://github.com/UtenKekkoDev/vibe-coding-voice.git
cd vibe-coding-voice
cargo run --bin vibe-coding-voice-native

也可以使用辅助脚本:

.\run-native.ps1

开发时建议运行:

cargo fmt --check
cargo check
cargo clippy --all-targets -- -D warnings
cargo test

模型安装

仓库不包含模型文件。你需要自行下载一个本地 SenseVoice 兼容模型,并在应用设置中指向该文件夹。

推荐模型:

sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2024-07-17

官方模型说明:sherpa-onnx SenseVoice pre-trained models

Release 版默认优先查找程序所在目录下的模型文件夹:

models/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2024-07-17

推荐目录结构:

vibe-coding-voice-native-windows-v0.1.0-alpha.1/
  vibe-coding-voice-native.exe
  models/
    sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2024-07-17/
      model.int8.onnx
      tokens.txt

开发源码运行时,也可以把模型放在仓库相邻的 official-models 目录:

official-models/
  sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2024-07-17/
    model.int8.onnx
    tokens.txt

下载示例:

mkdir ..\official-models
cd ..\official-models
curl.exe -L -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2024-07-17.tar.bz2
tar -xjf sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2024-07-17.tar.bz2
cd ..\vibe-coding-voice

然后打开应用:

  1. 点击右上角设置图标。
  2. 确认模型目录,或点击 选择文件夹 选择刚下载解压后的模型文件夹。
  3. 点击 检查 SenseVoice
  4. 回到主页,开始录音。

更详细的模型下载、目录结构、兼容性和排错说明见 docs/MODELS.zh-CN.md

在线模型

设置页可以在 本地模型在线模型 之间切换。选择在线模型后,需要填写:

  • DashScope API Key
  • 模型名,默认 qwen3-asr-flash-realtime
  • WebSocket 地址,默认 wss://dashscope.aliyuncs.com/api-ws/v1/realtime
  • 语种,默认 zh

在线模式使用 Qwen-ASR Realtime 的 Manual 模式:录音结束后,应用会把 16 kHz PCM 音频通过 WebSocket 发送到服务端,等待最终识别结果后再复制或投送文本。

模型许可证

本仓库的 MIT 许可证只适用于项目源码,不适用于第三方模型权重。

使用、分发或打包模型前,请确认:

  • 模型许可证
  • 下载模型目录中是否包含 LICENSE
  • 是否允许商业使用
  • 是否允许再次分发
  • 是否要求署名
  • 转换或量化后的 ONNX 文件是否可以分享

第三方声明

项目使用了一些开源 Rust crate 和本地模型生态。依赖和模型边界说明见 THIRD_PARTY_NOTICES.md

项目结构

.
  src/
    app.rs                 主界面、设置页、录音区、结果区
    hotkeys.rs             全局快捷键注册和事件处理
    main.rs                窗口、字体、应用初始化
    sensevoice.rs          模型检测、兼容处理、转写
    services.rs            录音、转写、文本发送、浮窗编排
    state.rs               应用状态和默认值
    tray.rs                托盘集成
  assets/                  应用自带 UI 资源
  docs/                    文档和预览资源
  recording-overlay.ps1    录音状态浮窗
  run-native.ps1           本地运行脚本
  Cargo.toml
  Cargo.lock
  README.md

开发说明

主要入口:

  • src/main.rs:应用启动、字体、原生窗口配置
  • src/app.rs:界面布局、控件、页面、交互状态
  • src/services.rs:录音管线、转写流程、文本投递
  • src/sensevoice.rs:模型目录识别和转写引擎加载
  • recording-overlay.ps1:录音或处理中使用的独立浮窗

提交 PR 前建议运行:

cargo fmt --check
cargo check
cargo clippy --all-targets -- -D warnings
cargo test

路线图

  • 改进面向普通用户的 Release 更新体验
  • 增强模型设置诊断信息
  • 改进录音后的输入焦点恢复
  • 完善自动发布构建
  • 在 Windows 工作流稳定后探索跨平台支持
  • 在默认 SenseVoice 流程稳定后重新评估可选 ASR 后端

参与贡献

项目还很年轻,欢迎提交 issue 和 pull request。贡献前请阅读 CONTRIBUTING.md

许可证

本项目使用 MIT 许可证。详情见 LICENSE

About

A Windows voice input app for coding dictation, supporting local SenseVoice and online Qwen-ASR Realtime.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors