WAAS 是语音识别领域的开源项目,由 schibsted 开发,2022 年首次发布。
在全站 12,961 个收录项目中,它的 GitHub 星标数(2,074)位列前 30%,在语音识别分类中处于中上游。
项目保持着较活跃的维护节奏,最近一次代码更新于 2026-09-17。开源免费,需自行部署。
它主要面向的使用场景是:个人或小团队搭建私有语音转文字服务,批量处理会议录音。同类可对比的替代方案包括 whisper.cpp、faster-whisper、whisperX。

上传音视频,排队自动转文字,还能调 API
WAAS(Whisper as a Service)把 OpenAI Whisper 语音识别模型封装成带队列的后端服务,同时提供 Web GUI 和 HTTP API。它解决的核心问题是:Whisper 模型本地部署后缺乏易用的任务调度与多用户接入方式,直接调用脚本难以处理并发、排队和结果管理。项目用 Node.js/JavaScript 实现,内置任务队列,用户通过网页上传音频或视频文件,服务端排队依次调用 Whisper 转写,完成后返回文本结果;API 方式则方便集成到其他应用或自动化流程中。支持选择模型规格、语言等参数,适合自建私有语音转写服务,避免把音频数据上传到第三方云服务。整体定位是轻量、可自托管的 Whisper 服务化方案,兼顾人工操作界面和程序化调用。
1克隆项目仓库
把 WAAS 源码拉到本地,进入项目目录,后续命令都在此目录执行。
git clone https://github.com/schibsted/WAAS.git
cd WAAS2本地安装依赖
README 给出的本地安装方式:创建 venv 虚拟环境并安装 requirements.txt 依赖。
python3 -mvenv .venv
source .venv/bin/activate
pip install -r requirements.txt3创建 .envrc 配置
在项目根目录创建 .envrc,填好站点地址、发信邮箱、SMTP 主机与免责声明等变量。
export BASE_URL=https://example.com
export EMAIL_SENDER_ADDRESS=example@example.com
export EMAIL_SENDER_PASSWORD=example
export EMAIL_SENDER_HOST=smtp.example.com
export DISCLAIMER='This is a disclaimer'
export ALLOWED_WEBHOOKS_FILE='allowed_webhooks.json'
export LOG_EMAIL=true4配置 webhook 白名单
在项目根目录新建 allowed_webhooks.json(该文件被 git 忽略),列出合法 webhook 的 url 和你生成的 token。
[
{
"id": "77c500b2-0e0f-4785-afc7-f94ed529c897",
"url": "https://myniceserver.com/mywebhook",
"token": "frKPI6p5LxxpJa8tCvVr=u5NvU66EJCQdybPuEmzKNeyCDul2-zrOx05?LwIhL5N"
}
]5用 compose 启动
以 .envrc 作为环境变量文件启动整套服务,会拉起 redis、api(flask)、worker(rq)三个容器。
docker-compose --env-file .envrc up6启用 GPU 加速
可选:有 NVIDIA GPU 时把 docker-compose.yml 的 dockerfile 改为 Dockerfile.gpu,并取消 devices 设备预留注释后重新启动。
docker-compose --env-file .envrc up7运行测试
可选:在容器内直接执行 pytest;在容器外测试需先启动 Redis 并传入环境变量。
pytest| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
BASE_URL | 是 | 服务对外访问地址,用于生成邮件里的下载链接 | https://example.com |
EMAIL_SENDER_ADDRESS | 是 | 发送转写结果邮件的发信邮箱地址 | example@example.com |
EMAIL_SENDER_PASSWORD | 是 | 发信邮箱的密码或授权码 | example |
EMAIL_SENDER_HOST | 是 | SMTP 服务器主机地址 | smtp.example.com |
DISCLAIMER | 否 | 网页上展示的免责声明文本,可含 HTML 链接 | This is a disclaimer |
ALLOWED_WEBHOOKS_FILE | 是 | 指向允许的 webhook 白名单 JSON 文件路径 | allowed_webhooks.json |
docker-compose 日志显示 redis、api、worker 三个容器正常启动,浏览器打开 BASE_URL 能进入 Jojo 上传界面。
Q:怎么让转写使用 GPU?
A:安装 nvidia-docker,把 docker-compose.yml 的 dockerfile 改为 Dockerfile.gpu,并取消 deploy.devices 的 nvidia 注释,然后照常用 docker-compose --env-file .envrc up 启动,worker 即走 GPU。
Q:转写完成后结果怎么拿到?
A:任务完成后会往你配置的发信邮箱发送一封含下载链接的邮件,可直接下载 Jojo 文件、SRT 或纯文本;把 Jojo 文件传回前端还能进入编辑器校对。
Q:想集成到自己的系统怎么办?
A:调用 API 的 POST /v1/transcribe,提交一个新的转写任务加入队列;也可在 allowed_webhooks.json 中登记 webhook,让结果回调到你的服务。
Q:在容器外跑测试报 Redis 连接错误?
A:需要先用 docker-compose 起好 Redis,再用 ENVIRONMENT=test BASE_URL=http://localhost REDIS_URL=redis://localhost:6379 pytest -v 运行。
Q:本地调试不想真发邮件?
A:在 .envrc 中设置 LOG_EMAIL=true,邮件内容会打印到控制台,便于排查。
whisper.cpp、faster-whisper、whisperX
WAAS 是语音识别领域的开源项目,由 schibsted 开发,2022 年首次发布。
在全站 12,961 个收录项目中,它的 GitHub 星标数(2,074)位列前 30%,在语音识别分类中处于中上游。
项目保持着较活跃的维护节奏,最近一次代码更新于 2026-09-17。开源免费,需自行部署。
它主要面向的使用场景是:个人或小团队搭建私有语音转文字服务,批量处理会议录音。同类可对比的替代方案包括 whisper.cpp、faster-whisper、whisperX。
上一篇:whisper-plus
下一篇:whisperIME
obs-localvocal
开源
直播录屏时,本地AI实时生成字幕,保护隐私零延迟
OBS plugin for local speech recognition and captioning using AI
LiveCaptions-Translator
开源
实时捕获系统音频,一键翻译成你懂的语言
Lightweight and powerful real-time audio/speech translation tool based on Windows Li···
speechbrain
开源
一站式 PyTorch 语音工具箱,快速搞定识别、说话人验证等任务
A PyTorch-based Speech Toolkit
whisper-diarization
开源
给语音转写加上说话人标签,会议记录一目了然
Automatic Speech Recognition with Speaker Diarization based on OpenAI Whisper