Skip to content

lz-googlefycy/linux-SeedVoice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Linux SeedVoice - 语音输入法

基于火山引擎流式语音识别 API 的全局语音输入工具。按空格键说话,文字实时输入到任意应用(微信、终端、浏览器等)。

功能特点

  • 全局热键: 空格键切换录音开/停
  • 流式识别: 边说边显示,实时更新
  • 智能输入: 自动检测终端/GUI应用,选择合适的粘贴方式
  • 增量更新: 只修改变动部分,减少闪烁

环境要求

  • Linux (Ubuntu/Debian)
  • Python 3.6+
  • X11 桌面环境

安装

1. 克隆仓库

git clone https://github.com/lz-googlefycy/linux-SeedVoice.git
cd linux-SeedVoice

2. 安装系统依赖

sudo apt install alsa-utils xclip xdotool xsel

3. 安装 Python 依赖

pip3 install --user websockets pynput

配置火山引擎 API Key

步骤 1: 注册火山引擎账号

  1. 访问 火山引擎官网
  2. 注册并登录账号

步骤 2: 开通语音识别服务

  1. 进入 语音技术控制台
  2. 创建应用,获取 AppID
  3. 开通「流式语音识别」服务
  4. 在应用详情页获取 Access Token

步骤 3: 配置环境变量

创建配置文件(推荐):

# 创建 .env 文件
cat > ~/.voice_input_env << 'EOF'
export VOLC_ASR_APP_ID="你的AppID"
export VOLC_ASR_TOKEN="你的AccessToken"
EOF

# 加载环境变量
source ~/.voice_input_env

或者直接导出:

export VOLC_ASR_APP_ID="你的AppID"
export VOLC_ASR_TOKEN="你的AccessToken"

步骤 4: 验证配置

echo $VOLC_ASR_APP_ID
echo $VOLC_ASR_TOKEN

确保两个变量都有值。

使用方法

# 如果使用 .env 文件,先加载
source ~/.voice_input_env

# 启动程序
python3 voice_input.py

操作流程

  1. 启动程序 - 运行 python3 voice_input.py
  2. 切换窗口 - 点击你要输入文字的窗口(如微信、终端)
  3. 开始录音 - 按 空格键
  4. 说话 - 程序会实时显示识别结果
  5. 停止录音 - 再按 空格键,文字自动输入到目标窗口
  6. 退出程序 - 按 Ctrl+C

配置选项

编辑 voice_input.py 可修改:

# 修改热键(默认空格)
TOGGLE_KEY = keyboard.Key.space  # 可改为 keyboard.Key.f1 等

常见问题

Q: 提示 "YOUR_APP_ID" 错误?

未配置 API Key,请按照上面的步骤配置环境变量。

Q: 终端应用没有输出?

程序通过窗口标题判断是否为终端,支持的终端包括:

  • gnome-terminal, konsole, xterm
  • alacritty, kitty, terminator
  • 标题包含 "terminal" 或 "oc |" 的窗口

Q: 输出的是图片而不是文字?

剪贴板残留了图片内容,运行清空:

xsel --clipboard --clear

技术实现

  • 语音识别: 火山引擎 ASR 大模型 (WebSocket 流式协议)
  • 音频采集: arecord (PCM 16kHz 16bit mono)
  • 文字输入: xsel + xdotool (剪贴板 + 模拟粘贴)
  • 热键监听: pynput

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages