ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

3 条命令跑通 Whisper 语音识别服务:从 Docker 部署到 GPU 加速的完整实战

2026/8/23 10:38:02 拓冰建站 浏览量
3 条命令跑通 Whisper 语音识别服务:从 Docker 部署到 GPU 加速的完整实战 3 条命令跑通 Whisper 语音识别服务从 Docker 部署到 GPU 加速的完整实战【免费下载链接】whisper-asr-webserviceOpenAI Whisper ASR Webservice API项目地址: https://gitcode.com/gh_mirrors/wh/whisper-asr-webservice传一个会议录音进去带时间戳的文字就出来。Whisper ASR Webservice 把 OpenAI WhisperOpenAI 开源的语音识别模型打包成开箱即用的 REST API程序间调用的标准 HTTP 接口3 条命令就能跑起来。 它是什么为什么值得看一句话定位把语音转文字变成一个 API 服务——你上传音频文件它还你文本、字幕或结构化数据。三种引擎一套接口按场景换引擎调用代码不变。服务内置三个引擎OpenAI Whisper原版准确率最高、Faster Whisper速度优化版快 24 倍、WhisperX带说话人分离能区分谁说了哪句。启动时改一个ASR_ENGINE环境变量就能切换。五种输出格式拿来即用文本、字幕、结构化数据选哪个都行。output参数支持 text、json、vtt、srt、tsvjson 带逐段的时间戳和语言信息srt/vtt 可直接丢进剪辑软件tsv 方便导进表格做二次处理。空闲自动卸载显存不空占设个超时内存自己还回来。配置MODEL_IDLE_TIMEOUT后模型空闲超过指定秒数会自动卸载释放显存GPU 下还能开float16半精度量化用 16 位浮点数存模型权重显存占用直接减半。 跑起来3 条命令推荐 Docker CPU 方案这是任何机器上拿到可用服务的最短路径源码开发和 GPU 部署文末一句话带过。第 1 条命令启动容器base是速度和准确率比较均衡的模型openai_whisper是默认引擎docker run -d -p 9000:9000 \ -e ASR_MODELbase \ -e ASR_ENGINEopenai_whisper \ onerahmet/openai-whisper-asr-webservice:latest验证是否跑通浏览器打开http://localhost:9000能看到上面那张 Swagger 页面/asr接口点 Try it out 上传一段音频试一下即可。第 2 条命令用 curl 发第一条识别请求outputtext表示要纯文本curl -X POST http://localhost:9000/asr?outputtext \ -F audio_filedemo.mp3终端直接打印识别出的文字说明整条链路通了。有 NVIDIA 显卡的话把镜像换成:latest-gpu、命令前加--gpus all就能跑 medium、large-v3 这种更大的模型。想改代码则从 https://gitcode.com/gh_mirrors/wh/whisper-asr-webservice 克隆源码poetry install --extras cpu装依赖后poetry run whisper-asr-webservice --port 9000启动开发服务器。⚙️ 按场景选配置模型与引擎如果你的场景是 CPU 上快速验证→ 选ASR_MODELtiny或base服务在 CPU 上默认 int8 量化8 位整数精度精度最低但最快4GB 内存就够。如果你有 GPU、要生产级准确率→ 选ASR_MODELlarge-v3配ASR_QUANTIZATIONfloat16半精度省一半显存8GB 显存可跑。如果你只做英文转录→ 选ASR_MODELbase.en.en是英文专用模型同尺寸下比通用模型更准。如果你要多说话人区分→ 选whisperx引擎并配置HF_TOKENHugging Face 的访问令牌用来下载分离模型。以 GPU 生产配置为例最关键的 4 行环境变量docker run -d --gpus all -p 9000:9000 \ -e ASR_ENGINEfaster_whisper \ # 引擎比原版快 2~4 倍 -e ASR_MODELlarge-v3 \ # 模型越大越准越大越慢 -e ASR_QUANTIZATIONfloat16 \ # 精度GPU 下 float16 省一半显存 -e MODEL_IDLE_TIMEOUT300 \ # 空闲 300 秒后卸载模型 onerahmet/openai-whisper-asr-webservice:latest-gpu场景模型引擎备注CPU 快速验证tiny/baseopenai_whisper默认 int8 量化生产多语言large-v3faster_whisperGPU float16仅英文base.enopenai_whisper英文专用模型说话人分离large-v3whisperx需 HF_TOKEN所有配置项都从环境变量读取默认值和取值范围见 app/config.py。 用它能做什么会议录音转写加时间戳痛点一小时的会议录音人工整理要一整天还要回听才能定位这句话在几点几分。curl -X POST http://localhost:9000/asr?outputjsonlanguagezh \ -F audio_filemeeting.mp3你输入一段录音得到text字段放全文segments数组里每一段带timestamps起止时间和transcript这段的话外加检测到的语言码。多人会议换 WhisperX 引擎并加diarizetrue每段还会多出一个说话人编号。视频直接产出字幕文件痛点视频剪完要配字幕逐条打轴费时还容易错。curl -X POST http://localhost:9000/asr?outputsrt \ -F audio_filelecture.mp4你上传 mp4 视频得到标准 SRT 字幕序号、时间轴、文字三行一组拖进剪辑软件就能用。服务内部用 FFmpeg音频视频转码工具处理所以视频文件可以直接传不用先抽音轨output换成vtt则给网页播放器用。 遇到坑怎么办首次启动很慢重建后又慢现象容器第一次启动很慢删掉重建后每次都要慢一遍。原因模型是首次运行时下载到容器内/root/.cache的容器一重建缓存就没了。解法启动时加-v $PWD/cache:/root/.cache/把模型目录挂到宿主机持久化下次启动秒级加载。Swagger 里找不到 diarize 参数现象想用说话人分离接口页面上/asr的表单里根本没有diarize这一项。原因该参数只在选了 WhisperX 引擎且设置了HF_TOKEN时才会展示。解法启动时设ASR_ENGINEwhisperx并加-e HF_TOKEN你的令牌重启容器后参数就会出现。GPU 启动起不来现象加了--gpus all后容器起不来报错信息里提到 nvidia。原因宿主机缺 NVIDIA 驱动或没装 nvidia-container-toolkit让 Docker 使用 GPU 的组件。解法先跑nvidia-smi确认宿主机认卡再装容器工具包嫌麻烦就退回 CPU 镜像把模型降到base。下一步打开http://localhost:9000的 Swagger 页面在/asr接口上选一段短音频发出第一个请求。端点参数细节看 docs/endpoints.md两个接口的实现逻辑在 app/webservice.py。【免费下载链接】whisper-asr-webserviceOpenAI Whisper ASR Webservice API项目地址: https://gitcode.com/gh_mirrors/wh/whisper-asr-webservice创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考