WAAS

上传音视频,排队自动转文字,还能调 API

WAAS(Whisper as a Service)把 OpenAI Whisper 语音识别模型封装成带队列的后端服务,同时提供 Web GUI 和 HTTP API。它解决的核心问题是:Whisper 模型本地部署后缺乏易用的任务调度与多用户接入方式,直接调用脚本难以处理并发、排队和结果管理。项目用 Node.js/JavaScript 实现,内置任务队列,用户通过网页上传音频或视频文件,服务端排队依次调用 Whisper 转写,完成后返回文本结果;API 方式则方便集成到其他应用或自动化流程中。支持选择模型规格、语言等参数,适合自建私有语音转写服务,避免把音频数据上传到第三方云服务。整体定位是轻量、可自托管的 Whisper 服务化方案,兼顾人工操作界面和程序化调用。

开源 free 语音识别
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 2074
维护状态 较活跃
是否开源
定价模式 free

项目数据

分类语音识别
开发团队schibsted
所属国家
官网地址
定价模式free
价格说明开源免费,需自行部署
访问状态
是否开源
开源协议Apache-2.0
主要语言JavaScript
技术栈/模型
GitHub 星标★ 2074
30天Star增速
HF 下载量
上线时间2022-10-13 00:00:00
最近更新2026-09-17 00:00:00
维护状态较活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-23
浏览次数0

使用教程

难度:进阶 约 30 分钟 部署方式:Docker 7 步

环境要求

  • Python 3(本地安装方式需 python3 与 venv)
  • Docker 与 docker-compose(推荐部署方式,会启动 redis、api、worker 三个容器)
  • 一个可用的 SMTP 邮箱账号,用于发送转写结果邮件
  • 可选:NVIDIA GPU + nvidia-docker,用于加速 Whisper 转写
  • 可选:本地 Redis(在容器外跑测试时需要)

安装与启动步骤

  1. 1克隆项目仓库

    把 WAAS 源码拉到本地,进入项目目录,后续命令都在此目录执行。

    git clone https://github.com/schibsted/WAAS.git
    cd WAAS
  2. 2本地安装依赖

    README 给出的本地安装方式:创建 venv 虚拟环境并安装 requirements.txt 依赖。

    python3 -mvenv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
  3. 3创建 .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=true
  4. 4配置 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. 5用 compose 启动

    以 .envrc 作为环境变量文件启动整套服务,会拉起 redis、api(flask)、worker(rq)三个容器。

    docker-compose --env-file .envrc up
  6. 6启用 GPU 加速

    可选:有 NVIDIA GPU 时把 docker-compose.yml 的 dockerfile 改为 Dockerfile.gpu,并取消 devices 设备预留注释后重新启动。

    docker-compose --env-file .envrc up
  7. 7运行测试

    可选:在容器内直接执行 pytest;在容器外测试需先启动 Redis 并传入环境变量。

    pytest

关键配置

配置项必填说明示例
BASE_URL服务对外访问地址,用于生成邮件里的下载链接https://example.com
EMAIL_SENDER_ADDRESS发送转写结果邮件的发信邮箱地址example@example.com
EMAIL_SENDER_PASSWORD发信邮箱的密码或授权码example
EMAIL_SENDER_HOSTSMTP 服务器主机地址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,邮件内容会打印到控制台,便于排查。

注意事项

  • allowed_webhooks.json 会被 git 忽略,需自行在项目根目录创建,勿提交含真实 token 的文件。
  • 用 webhook.site 做测试可以,但不要提交或转写隐私数据。
  • docker-compose 会同时启动 redis、api、worker 三个容器,缺一不可。
  • Jojo 前端编辑器在浏览器本地运行,校对内容不会上传服务器。

核心亮点

  • 自带任务队列,多个转写请求自动排队,避免并发把 GPU/CPU 打满
  • 同时提供 Web GUI 和 HTTP API,既能手动上传文件也能被其他程序集成
  • 基于 OpenAI Whisper,可自托管,音频不必上传第三方服务,隐私可控

不足之处

  • 依赖 Whisper 本地环境与模型文件,首次部署和模型下载有一定门槛
  • 项目以 JavaScript 为主,模型推理性能受底层 Whisper 实现和硬件限制

适用场景

  • 个人或小团队搭建私有语音转文字服务,批量处理会议录音
  • 内容创作者把视频/播客上传后自动生成字幕文本
  • 开发者通过 API 把语音转写能力接入自己的应用或工作流

替代项目

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

★ 1614 2026-09-10
LiveCaptions-Translator 开源

实时捕获系统音频,一键翻译成你懂的语言

Lightweight and powerful real-time audio/speech translation tool based on Windows Li···

★ 3733 2026-08-10
speechbrain 开源

一站式 PyTorch 语音工具箱,快速搞定识别、说话人验证等任务

A PyTorch-based Speech Toolkit

★ 11834 2026-08-26
whisper-diarization 开源

给语音转写加上说话人标签,会议记录一目了然

Automatic Speech Recognition with Speaker Diarization based on OpenAI Whisper

★ 5657 2026-08-13