Skip to content

ooboqoo/live-caption

Repository files navigation

LiveCaption

跨平台实时字幕桌面应用。捕获电脑音频,通过阿里云百炼实时语音识别服务转写为文字,支持实时翻译,结果显示在悬浮字幕窗口中。

功能

  • 实时语音转文字(基于阿里云 Qwen3 ASR)
  • 实时翻译(英↔中等多语言)
  • 悬浮透明字幕窗口,始终置顶
  • 全局快捷键启停(默认 Ctrl+Shift+K / Cmd+Shift+K
  • 可调字号、窗口透明度
  • 支持选择音频输入设备

技术栈

  • 桌面框架: Tauri 2
  • 后端: Rust (tokio 异步运行时)
  • 前端: React 18 + TypeScript + Vite
  • 音频采集: cpal + rubato (重采样至 16kHz)
  • 语音识别: 阿里云百炼 WebSocket 实时 API
  • macOS 系统音频: ScreenCaptureKit

环境要求

  • Node.js 18+
  • pnpm 10+
  • Rust 1.70+(推荐通过 rustup 安装)
  • macOS 13+ 或 Windows 10+
  • 阿里云百炼 API Key(获取地址

macOS 额外说明

捕获系统播放音频需要 macOS 13+ 的 ScreenCaptureKit 权限,首次使用时系统会弹出授权提示。如需捕获麦克风输入则选择对应输入设备即可。

Windows 额外说明

可直接使用 WASAPI loopback 捕获系统音频,或选择麦克风等输入设备。

快速开始

# 安装依赖
pnpm install

# 启动开发模式(前端热更新 + Rust 编译)
pnpm tauri dev

首次启动后点击右上角设置图标,填入阿里云 API Key,根据需要开启翻译功能,然后点击播放按钮或按下全局快捷键即可开始转写。

开发命令

# 前端类型检查
npx tsc --noEmit

# Rust 检查
cd src-tauri && cargo check

# 生产打包
pnpm tauri build

项目结构

src/                    # 前端 (React + TypeScript)
├── app/                # 页面组件 (CaptionWindow, SettingsWindow)
├── components/         # UI 组件 (CaptionBar, SettingsForm, IconButton)
├── lib/                # 类型定义与 Tauri 接口封装
└── styles/             # CSS

src-tauri/              # 后端 (Rust)
├── src/
│   ├── aliyun/         # 阿里云 WebSocket 协议与客户端
│   ├── audio/          # 音频采集与重采样
│   ├── caption/        # 字幕状态管理
│   ├── config/         # 配置持久化
│   ├── commands.rs     # Tauri commands
│   └── lib.rs          # 应用入口与插件注册
└── tauri.conf.json     # Tauri 窗口与构建配置

配置项

配置 说明 默认值
API Key 阿里云百炼 API Key
翻译开关 是否启用实时翻译 关闭
源语言 识别语言 英文 (en)
目标语言 翻译目标语言 中文 (cn)
字号 字幕字体大小 20px
透明度 窗口透明度 0.85
快捷键 全局启停快捷键 CommandOrControl+Shift+K

License

MIT

About

实时字幕,实时语音转文本,支持多国语言,支持双语展示

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors