尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

用audio.cpp server搭建TTS/ASR API服务:OpenAI兼容接口完整实战指南

发布时间:2026/9/29 3:34:42

资讯中心
01
ARTICLE

用audio.cpp server搭建TTS/ASR API服务:OpenAI兼容接口完整实战指南

用audio.cpp server搭建TTS/ASR API服务:OpenAI兼容接口完整实战指南
用audio.cpp server搭建TTS/ASR API服务OpenAI兼容接口完整实战指南【免费下载链接】audio.cppAn all-in-one, pure C inference engine for audio models, powered by ggml. Supports TTS, STT, VAD, voice conversion, music generation, and more, with highly optimized performance. No Python dependency.项目地址: https://gitcode.com/gh_mirrors/au/audio.cppaudio.cpp是基于 ggml 的纯 C 音频模型推理引擎无需任何 Python 依赖。它内置的audiocpp_server可以把本地的 TTS文本转语音和 ASR语音识别模型一键暴露为OpenAI 兼容的 HTTP 接口——POST /v1/audio/speech和POST /v1/audio/transcriptions现有 OpenAI SDK 或任何标准 HTTP 客户端基本都能直接接入。本文带你从零完成构建、配置模型、启动服务并调通 TTS/ASR 两大接口是一套开箱即用的本地语音 API 服务方案。为什么选择 audio.cpp server相比Python 脚本 各种依赖的传统本地部署路线audio.cpp server 有几个明显优势优势说明 零 Python 依赖整个服务端是一个原生二进制部署到 Docker / 裸机都极简 OpenAI 兼容/v1/audio/speech、/v1/audio/transcriptions对齐 OpenAI 约定客户端几乎零改造⚡ 高性能CUDA 优化路径多个 TTS 路线实测比 Python 官方实现快 1.8x~8x端到端延迟降低 45%~85% 会话复用每个模型保持一个常驻会话重复请求复用 graph/缓存避免重复建图开销 内置 WebUI可选启动浏览器界面直接试听、上传录音方便调试 80 模型家族覆盖 TTS、语音克隆、ASR、说话人分离、VAD 等任务第一步构建 audiocpp_server克隆仓库并启用你打算使用的推理后端CUDA 为官方优化路径CPU 始终可用git clone https://gitcode.com/gh_mirrors/au/audio.cpp cd audio.cpp cmake -S . -B build -DENGINE_ENABLE_CUDAON cmake --build build --parallel --target audiocpp_server构建参数速查参数用途-DENGINE_ENABLE_CUDAONNVIDIA GPU推荐性能最佳-DENGINE_ENABLE_VULKANONAMD / 跨厂商 GPU-DENGINE_ENABLE_METALONApple Silicon-DAUDIOCPP_BUILD_NATIVE_MODEL_MANAGERON开启 WebUI 的模型下载与动态管理 详细构建与模式说明见 app/server/README.md。第二步编写 server.json 配置文件服务通过一份 JSON 声明监听地址、后端和要加载的模型。仓库提供了现成模板 app/server/example.json核心结构如下{ host: 127.0.0.1, port: 8080, backend: cuda, lazy_load: true, models: [ { id: pocket-tts, family: pocket_tts, path: /path/to/models/pocket-tts, task: tts, mode: offline, default_voice_preset: { voice_id: alba } }, { id: qwen3-asr, family: qwen3_asr, path: /path/to/models/Qwen3-ASR-0.6B, task: asr, mode: offline } ] }几个关键配置项id模型在接口请求中的名字客户端调用model字段时填它family模型家族名决定使用哪套推理实现可用audiocpp_cli --list-loaders查看lazy_load: true启动时只注册模型首次请求时才真正加载——多模型共存时能显著缩短启动时间、降低显存峰值modeoffline或streaming。流式 ASR/TTS 需要选支持 streaming 的模型完整示例见 app/server/streaming_example.jsonmax_loaded_models/idle_unload_ms分别限制常驻显存上限和空闲卸载时间显存紧张时建议开启。模型家族与任务对应关系可参考 docs/tts.mdTTS 列表和 docs/asr.mdASR 列表。第三步启动服务并验证build/bin/audiocpp_server --config server.json启动后先用健康检查和模型列表接口验证curl http://127.0.0.1:8080/health curl http://127.0.0.1:8080/v1/models/v1/models返回 OpenAI 风格的模型条目你可以把id直接填进任意 OpenAI SDK 的model参数。如果启用了 UI浏览器打开http://127.0.0.1:8080还能直接试听与传录音见 webui/README.md。调通 TTS 接口/v1/audio/speech这是与 OpenAI TTS 完全同构的接口默认返回audio/wavcurl http://127.0.0.1:8080/v1/audio/speech \ -H Content-Type: application/json \ -o out.wav \ -d { model: pocket-tts, input: audio.cpp is serving this request., max_tokens: 96, seed: 1234 }常见可选字段字段作用voice选择配置好的声音预设或voice_dir音色库中的音色voice_ref声音克隆参考音频支持服务器本地路径、{type:path}或{type:base64}内联 WAVreference_text参考音频对应的文本克隆时提高相似度speed语速倍数模型支持时生效response_format默认 wavjson返回 base64 WAV两个实用技巧声音预设在模型配置里写default_voice_preset客户端就可以省略voice_ref每次请求自动使用同一音色非常适合做固定播报员场景音色库voice_dir把多个.wav音色放到一个目录请求里传voice: demo_01_man即可克隆GET /v1/audio/voices?modelid可以列出全部可用音色方便前端做音色下拉框。调通 ASR 接口/v1/audio/transcriptions同样对齐 OpenAI Whisper API 约定支持两种请求方式方式一JSON 服务器本地路径模型和音频都在同一台机器上时最简单curl http://127.0.0.1:8080/v1/audio/transcriptions \ -H Content-Type: application/json \ -d { model: qwen3-asr, audio: /path/to/input.wav }方式二multipart 文件上传Open WebUI 等真实客户端的标准用法音频不落盘、在内存中解码curl http://127.0.0.1:8080/v1/audio/transcriptions \ -F modelqwen3-asr \ -F languageen \ -F file/path/to/input.wav对于mode: streaming的流式 ASR 模型追加-F streamtrue即可收到 OpenAI 风格的 SSE 事件流先是一串transcript.text.delta增量文本最后一条transcript.text.done携带完整转写适合长音频降低首字等待。 需要词级时间戳、分段或说话人标签时改用扩展接口POST /v1/audio/transcriptions/details普通接口的响应结构保持不变。进阶能力一览接口用途POST /v1/batches/transcriptions多个 WAV 走同一批离线推理模型需支持原生 batchSSE 逐条返回结果POST /v1/audio/transcriptions/live麦克风 PCM 边采边传、边说边出字配合 ffmpeg 一行管道即可实现实时听写POST /v1/audio/alignments强制对齐已知文本 音频返回词级时间戳POST /v1/audio/speech/live语音到语音模型的实时接入端点POST /v1/tasks/unload_models手动卸载指定模型释放显存下次请求自动透明重载完整端点说明见 app/server/README.md。性能表现长会话复用是最大亮点由于每个模型保持一个常驻会话audio.cpp server 在长生命周期会话下优势尤其明显——下图展示了多个 TTS/ASR 模型相对 Python 官方实现的推理加速比PocketTTS、Qwen3 系普遍达到 2x~3x 以上而在一次性冷启动场景下首次请求虽然包含模型加载与建图成本多数模型仍明显快于 Python 路线Parakeet-TDT 甚至接近 13x实际部署建议 保持lazy_load: true让显存在首次请求时才被占用 显存不够时设max_loaded_models: 1超出上限的模型会自动 LRU 换出⏱ 长任务如批量转写注意busy_timeout_ms同一模型的请求是串行锁执行的超时后返回 503 供客户端重试避免请求无限排队。总结用 audio.cpp server 搭建一套 OpenAI 兼容的 TTS/ASR API 服务只需要三步构建两条 cmake 命令→配置一份声明 TTS/ASR 模型的 server.json→启动一条命令即可获得/v1/audio/speech、/v1/audio/transcriptions等标准端点外加流式转写、批量处理、声音克隆预设等生产级特性——全部零 Python 依赖。常用资料索引服务端完整文档app/server/README.md配置示例app/server/example.json、app/server/streaming_example.jsonTTS 模型手册docs/tts.mdASR 模型手册docs/asr.mdCLI 用法docs/usage.mdWebUI 说明webui/README.md【免费下载链接】audio.cppAn all-in-one, pure C inference engine for audio models, powered by ggml. Supports TTS, STT, VAD, voice conversion, music generation, and more, with highly optimized performance. No Python dependency.项目地址: https://gitcode.com/gh_mirrors/au/audio.cpp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。