基于火山引擎流式语音识别 API 的全局语音输入工具。按空格键说话,文字实时输入到任意应用(微信、终端、浏览器等)。
- 全局热键: 空格键切换录音开/停
- 流式识别: 边说边显示,实时更新
- 智能输入: 自动检测终端/GUI应用,选择合适的粘贴方式
- 增量更新: 只修改变动部分,减少闪烁
- Linux (Ubuntu/Debian)
- Python 3.6+
- X11 桌面环境
git clone https://github.com/lz-googlefycy/linux-SeedVoice.git
cd linux-SeedVoicesudo apt install alsa-utils xclip xdotool xselpip3 install --user websockets pynput- 访问 火山引擎官网
- 注册并登录账号
- 进入 语音技术控制台
- 创建应用,获取 AppID
- 开通「流式语音识别」服务
- 在应用详情页获取 Access Token
创建配置文件(推荐):
# 创建 .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"echo $VOLC_ASR_APP_ID
echo $VOLC_ASR_TOKEN确保两个变量都有值。
# 如果使用 .env 文件,先加载
source ~/.voice_input_env
# 启动程序
python3 voice_input.py- 启动程序 - 运行
python3 voice_input.py - 切换窗口 - 点击你要输入文字的窗口(如微信、终端)
- 开始录音 - 按 空格键
- 说话 - 程序会实时显示识别结果
- 停止录音 - 再按 空格键,文字自动输入到目标窗口
- 退出程序 - 按
Ctrl+C
编辑 voice_input.py 可修改:
# 修改热键(默认空格)
TOGGLE_KEY = keyboard.Key.space # 可改为 keyboard.Key.f1 等未配置 API Key,请按照上面的步骤配置环境变量。
程序通过窗口标题判断是否为终端,支持的终端包括:
- gnome-terminal, konsole, xterm
- alacritty, kitty, terminator
- 标题包含 "terminal" 或 "oc |" 的窗口
剪贴板残留了图片内容,运行清空:
xsel --clipboard --clear- 语音识别: 火山引擎 ASR 大模型 (WebSocket 流式协议)
- 音频采集: arecord (PCM 16kHz 16bit mono)
- 文字输入: xsel + xdotool (剪贴板 + 模拟粘贴)
- 热键监听: pynput
MIT