Skip to content
GoldloliPublic

About

本地优先的音视频转写与字幕工作台:25 个本地 ASR 模型(Whisper、Faster Whisper、FunASR、Qwen3-ASR、Granite Speech、Cohere Transcribe、ARK-ASR、Voxtral、FireRedASR2、MLX)、macOS/Windows 桌面端与 Docker/Web 部署、字幕编辑导出及 LLM 字幕核对。 Local-first transcription workspace with 25 local ASR models, macOS/Windows desktop apps, Docker/Web deployment, and LLM subtitle proofreading.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Latest commit

 

History

370 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASRbox

本地优先的音视频转写与字幕工作台

把媒体变成可编辑字幕:本地与在线 ASR、任务恢复、不可变版本历史、多格式导出,
并可让 Ollama 或 OpenAI 兼容 LLM 核对与翻译字幕。开源、离线可用、数据归你。

version platform stack license status

website

官网 · English · Docker 部署 · 更新日志 · 贡献指南

ASRbox 工作台首页

当前状态

当前源码版本为 0.4.0,适合试用和反馈,还不是稳定版。

运行方式 支持范围
macOS 桌面端 Apple Silicon,Tauri 2 + 内置 FastAPI sidecar
Windows 桌面端 Windows 10/11 x64,Tauri 2 + 内置 FastAPI sidecar,NSIS 安装包
Docker Web Linux CPU 容器,网页与 API 同源,数据持久化到 /data
Linux 原生桌面端 暂未提供
签名、公证、自动安装更新 暂未提供;桌面端支持应用内检查并下载更新,安装仍由用户完成
模型权重 按需下载,不包含在桌面安装包或 Docker 镜像中

重要素材请保留原件,升级前先备份。Provider 密钥目前保存在本地 SQLite 数据库中,未接入系统钥匙串。Docker 默认只允许本机访问,不应直接暴露到公网。

主要功能

  • 拖入单个或多个音频、视频,预检音轨、格式、时长和分段策略。
  • 使用 Whisper、Faster Whisper、MLX Whisper、SenseVoice、Paraformer、Fun-ASR-Nano、Qwen3-ASR、Granite Speech、Cohere Transcribe、ARK-ASR、Voxtral Mini、MOSS-Transcribe-Diarize,或在线 ASR Provider 转写。
  • 三栏任务中心:任务列表、波形播放器与转写结果、状态与导出同屏联动。
  • 在"编辑字幕"模式中直接修改分段文字,批量保存为一个新的不可变版本。
  • 保留转写、重新转写、手工编辑、恢复、后处理和 AI 修改形成的不可变版本。
  • 导出 TXT、SRT、VTT、ASS、JSON 和 Markdown。
  • 模型管理行式列表:暂停、继续、停止、重试和删除下载,查看兼容性、天梯对比与磁盘占用。
  • 配置 Ollama、MiniMax、Kimi、DeepSeek、Qwen、GLM 或其他 OpenAI 兼容 LLM。
  • AI 工作台整合字幕核对、字幕翻译与对话,逐句试听、逐条审阅后才生成新版本。
  • 句段试听默认严格按时间轴播放,可在设置中为前后各增加 0.5–3 秒冗余;播放条可随时接管为连续自由播放。
  • 界面个性化:亮色/暗色主题、强调色、界面密度、侧边栏模式、中文/英文界面。
  • 在"设置 → 关于"查看版本、作者与支持入口,选择稳定版或预发布版,并检查和下载桌面更新。
  • 在"设置 → 转写默认值"把常用本地模型或线上接口设为默认模型,并选定默认转写语言(含自动识别),新建转写时自动套用。

任务中心与字幕编辑

任务中心把任务列表、波形播放器、转写结果和任务状态放在同一个三栏工作台中;点击分段左侧的播放按钮即可从该句起点试听。切换到"编辑字幕"后,每一行文字都可直接修改,确认无误后点击右上角"保存更改",一次保存为一个新的字幕版本:

任务中心

编辑字幕模式

AI 字幕核对

接入 Ollama 或任意 OpenAI 兼容 LLM,自动核对转写字幕中的错字、漏字和明显识别错误。每条建议都给出原文、修改后文本和修改原因,并可点击"播放这句话"试听对应片段;明确勾选后才会生成新字幕版本:

AI 字幕核对

AI 字幕翻译

保留原字幕,支持多语言互译,并以原文/译文对照展示;可导出译文或双语字幕:

AI 字幕翻译

AI 对话

在"AI → 对话"中直接用已配置的 LLM 提问:询问软件用法(内置离线答疑知识库),或绑定一个字幕任务后让它总结内容、查找某句话及其时间位置;回答流式呈现,引用片段可逐条试听,会话本地保存:

AI 对话

模型管理

行式列表集中管理本地 ASR 模型:筛选、搜索、下载控制、默认模型联动,并附速度/准确率/能力天梯对比:

模型管理

Docker 部署

需要 Docker Engine 24+ 和 Docker Compose v2。建议至少准备 8 GB 内存和 15 GB 可用空间;大模型还需要更多空间与内存。

git clone https://github.com/Goldloli/asrbox.git
cd asrbox
cp .env.example .env
docker compose up -d --build

浏览器打开 http://127.0.0.1:17494。查看状态和日志:

docker compose ps
docker compose logs -f asrbox

数据库、媒体、字幕、设置、模型和缓存都在名为 asrbox-data 的 Docker volume 中。docker compose down 不会删除它;docker compose down -v 会永久删除数据。

模型与 Hugging Face、ModelScope、Torch 缓存可在"设置 → 存储与诊断"中迁移到统一存储根。桌面版可选择本地或已挂载外接磁盘;Docker 版必须先在 compose.yaml 中挂载宿主机目录并通过 ASRBOX_MODEL_STORAGE_ROOTS 声明允许的容器挂载点,Web 页面只显示容器路径。完整配置与恢复步骤见 Docker 部署指南。

默认配置只绑定 127.0.0.1。手机或其他局域网设备访问时,在 .env 中设置:

ASRBOX_BIND_ADDRESS=0.0.0.0
ASRBOX_API_TOKEN=使用-openssl-rand-hex-32-生成的长随机值

重启后用 http://主机局域网IP:17494 打开,在"设置 → 通用 → API 令牌"输入同一令牌。ASRbox 没有内置 TLS、多用户账号或权限系统;局域网以外请使用可信 VPN,或带 HTTPS 和认证的反向代理。

完整升级、备份、Ollama 连接、卸载和排障步骤见 Docker 部署指南。

桌面端

从 v0.4.0 Release 下载对应平台的安装包(macOS Apple Silicon 为 DMG,Windows x64 为 NSIS 安装程序),并校验 SHA256SUMS.txt。

桌面端也可在"设置 → 关于"中检查 GitHub Release。默认会在启动约 10 秒后检查,此后最多每 24 小时自动检查一次;可以关闭自动检查或应用内通知,也可以随时手动检查。发现新版本后可在应用内把安装包下载到系统"下载"目录,查看进度并取消或重试。ASRbox 只接受官方 Release 中与当前平台匹配的资源,并根据同一 Release 的 SHA256SUMS.txt 校验;校验成功后才允许打开。

下载完成不等于自动安装。请先完成转写和模型下载等任务,正常退出 ASRbox,再打开安装包手动替换旧应用。Web 版只显示构建版本和 GitHub Releases 入口,不会把桌面安装包下载到服务器。

macOS

当前包未签名、未公证(未购买 Apple Developer Program 证书),macOS 可能直接提示 "ASRbox.app"已损坏,无法打开:

macOS 提示"ASRbox.app 已损坏,无法打开"

这是 Gatekeeper 对未签名应用的常见提示,并非文件真的损坏。把应用拖入"应用程序"后,在终端执行一次以下命令,清除下载文件的隔离属性即可正常打开:

xattr -cr /Applications/ASRbox.app

也可以在首次打开时右键应用选择"打开",或在"系统设置 → 隐私与安全性"中允许打开。

Windows

Windows 安装包未进行代码签名,运行时 SmartScreen 可能提示"Windows 已保护你的电脑":点击"更多信息"→"仍要运行"即可。安装为当前用户安装,不需要管理员权限。

CUDA 加速(可选,仅 NVIDIA 显卡): 在"设置 → 显卡加速"页打开开关,应用会从当前版本对应的 GitHub Release 一次性下载约 2.6GB 的加速套件(torch 2.11.0+cu128),逐卷与逐文件 SHA-256 校验通过后自动安装并重启后端;之后本地模型转写使用 GPU,关闭开关即回退 CPU。套件安装后约占 4GB 磁盘,启用失败(如驱动过旧)会保持 CPU 并在设置页显示原因;应用升级后若套件与新版后端不匹配会标记"已失效",按提示重新下载即可。macOS 版无此开关,继续使用既有的 Apple Silicon 加速路径。

桌面端在 127.0.0.1:17494 启动内置后端,每次启动生成仅在内存中的 API token;退出应用会停止 sidecar。删除应用不会删除任务、模型或备份。

第一次转写

  1. 在"模型"页下载模型。桌面 Apple Silicon 可先试 mlx-whisper-turbo;Docker 建议先试 faster-whisper-base 或 faster-whisper-small。
  2. 在"新建转写"选择音频或视频。
  3. 选择本地模型或在线平台,设置语言、时间戳和分段选项。
  4. 提交后在"任务中心"查看进度、日志和转写结果。
  5. 在"编辑字幕"中修改文字,或导出 SRT、VTT、ASS、TXT、JSON、Markdown。

ASRbox 注册 25 个本地模型,覆盖 Whisper 系、Faster Whisper、FunASR(SenseVoice / Paraformer / Fun-ASR-Nano)、Qwen3-ASR、Granite Speech、Cohere Transcribe、ARK-ASR、Voxtral Mini、FireRedASR2、MLX Whisper,以及端到端说话人分离模型 MOSS-Transcribe-Diarize;Docker 部署额外提供 2 个仅服务器端的 NeMo 模型(Parakeet TDT / Canary,需要 NVIDIA GPU)。运行参数的模型选择器和"模型"页会标出每个模型支持 CPU、NVIDIA GPU 或 Apple GPU;这是支持能力,实际使用的设备仍取决于当前电脑与可用运行时。Docker 是 Linux CPU 运行时,不支持 Apple 专用的 MLX;模型页面会把 MLX 标为不兼容并阻止下载。模型选择、体积、来源和许可说明见模型指南。

AI 字幕核对

  1. 打开"设置 → AI LLM 提供商",新增并测试一个提供商。
  2. Ollama 不需要接口密钥;Docker 连接宿主机 Ollama 时使用 http://host.docker.internal:11434/v1。
  3. 打开左侧"AI 工作台",选择一个已完成且有字幕版本的任务。
  4. 选择提供商并开始"字幕核对"。
  5. 页面默认只展开 LLM 发现的建议;正确段落按相邻区间分别折叠,可逐段展开。
  6. 勾选要采纳的建议后点击应用。未勾选的建议不会改字幕,应用结果会创建新版本。

连接失败、鉴权失败、服务端错误、上下文过长和返回格式错误会分别提示;只有 LLM 正常完成且没有建议时,才显示"没有发现需要修改的内容"。LLM 失败不会影响已经成功的转写。详见 AI 字幕核对指南。

数据与隐私

桌面数据默认位于:

macOS:   ~/Library/Application Support/com.goldloli.asrbox/
Windows: %APPDATA%\com.goldloli.asrbox\

Docker 数据统一位于容器 /data,由 asrbox-data volume 持久化。这里可能包含原始媒体、提取音频、字幕版本、导出、模型、日志和 Provider 密钥,备份时应按敏感数据处理。

本地 ASR 不会把媒体发送给 ASR 服务,但下载模型仍会访问 Hugging Face 或 ModelScope,桌面自动或手动检查更新会访问 GitHub。在线 ASR 会把媒体或音频发送给所选第三方。LLM 核对只发送字幕段落文字、段落编号和有限相邻上下文,不发送音频或文件路径;远程 LLM 仍属于第三方处理。

详见隐私与本地数据和安全政策。

本地开发

桌面开发目标使用 Bun 1.3.8、Rust stable,支持 macOS Apple Silicon 与 Windows x64;Python 版本按平台固定:macOS 用 3.13(requirements-dev.lock),Windows 用 3.14(requirements-windows.lock,Windows 上 3.11/3.13 存在 asyncio proactor 断连污染问题,详见 openspec/changes/windows-desktop-support/design.md D2b);Docker 运行时使用独立的 Linux CPU 依赖锁。

bun install
python -m venv .venv
# macOS / Linux: .venv/bin/python -m pip install pip==25.3 && .venv/bin/pip install -r requirements-dev.lock
# Windows:       .venv\Scripts\python.exe -m pip install pip==25.3 和 -r requirements-windows.lock
npm run dev:server
npm run dev:web

桌面开发:npm run dev:desktop。容器构建:npm run build:docker。详细贡献流程见 CONTRIBUTING.md。

构建与验证

npm run typecheck
npm run build:web
npm run test:backend
npm run test:e2e:llm
npm run test:docker
npm run check:open-source

桌面安装包:

# 先安装打包依赖(路径同上,区分 .venv/bin 与 .venv\Scripts)
.venv/bin/pip install -r requirements-build.lock
npm run build:desktop

macOS 输出位于 tauri/src-tauri/target/release/bundle/dmg/,Windows 输出位于 tauri/src-tauri/target/release/bundle/nsis/。真实模型测试需要自行准备合法媒体和已下载模型,不属于默认 CI。

项目结构

app/                 React 路由、组件、状态和共享 UI
web/                 Vite Web 入口
backend/             FastAPI、任务、ASR、LLM、版本、存储和导出
tauri/               macOS / Windows 桌面壳与 sidecar 生命周期
Dockerfile           Linux CPU 单容器构建
compose.yaml         持久化和网络部署入口
scripts/             构建、测试、审计和发布门禁
openspec/            已接受规格与活动变更
third_party/ffmpeg/  桌面内置 FFmpeg 的许可与来源材料

文档

许可证

ASRbox 源代码采用 MIT License。FFmpeg、模型、Python/JavaScript 运行库和其他第三方组件分别受其自身许可证约束。模型权重不会随仓库、DMG 或 Docker 镜像分发。

About

本地优先的音视频转写与字幕工作台:25 个本地 ASR 模型(Whisper、Faster Whisper、FunASR、Qwen3-ASR、Granite Speech、Cohere Transcribe、ARK-ASR、Voxtral、FireRedASR2、MLX)、macOS/Windows 桌面端与 Docker/Web 部署、字幕编辑导出及 LLM 字幕核对。 Local-first transcription workspace with 25 local ASR models, macOS/Windows desktop apps, Docker/Web deployment, and LLM subtitle proofreading.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages