本地语音转文字工作流,用于兼容OpenAI的STT服务器,通常位于 http://127.0.0.1:8000/v1。在配置、测试、调试或验证时使用。
本地 STT 工作流程是一项面向实际任务的技能,主要用于使用此技能调试完整转录路径, 而不仅仅是模型;默认 : 本地 STT 服务器在 http:// 127. 0.0.1: 8000/v1 上。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
使用此技能调试完整的语音转文本路径,而不仅限于模型本身。
默认假设:本地 STT 服务运行在 http://127.0.0.1:8000/v1。
当前值得记住的本地 model-path 回退逻辑:若服务器未按名称拉取模型,它可能直接从本地路径加载,例如 ./models/Qwen3-ASR-0.6B-bf16。
当精确的路由结构至关重要时,本地 OpenAPI 文档可通过以下地址获取:
http://localhost:8000/openapi.json请将该 OpenAPI 文档作为模式/参考依据,用于比对本地 mlx-audio 服务器与 OpenAI API 的行为差异。请勿将其用作健康检查(health check)手段。
首先检查基础项:
curl http://127.0.0.1:8000/health curl http://127.0.0.1:8000/v1/models
确认目标 STT 模型存在,通常为 qwen3-asr。
若模型未以注册名形式出现在列表中,请勿立即断定 STT 故障——该服务器可能正加载本地路径下的模型(如 ./models/Qwen3-ASR-0.6B-bf16)。
若服务器启用了任务门控(task-gated),请确保已启用 STT:
MLX_AUDIO_SERVER_TASKS=stt uv run python server.py
若模型缺失,请在测试客户端前完成注册;但在此之前,请先确认服务器是否本意即从本地路径加载,并通过 /v1/models 或 http://localhost:8000/openapi.json 核实其实际接受的模型 ID 列表。
务必先将服务器与客户端栈完全隔离。
最小化直连转录测试:
curl -X POST http://127.0.0.1:8000/v1/audio/transcriptions -F file=@sample.wav -F model=qwen3-asr -F response_format=json
更丰富的实用测试:
curl -X POST http://127.0.0.1:8000/v1/audio/transcriptions -F file=@sample.wav -F model=qwen3-asr -F response_format=verbose_json -F 'timestamp_granularities[]=segment' -F 'timestamp_granularities[]=word'
若直连 curl 成功但 OpenClaw 无响应,则问题极可能出在消息摄入或路由层,而非 STT 后端。
请严格遵守如下判断规则:
这一区分可节省大量排查时间。
本服务器设计基于OpenAI 风格的 multipart 表单上传协议。
根据当前本地 OpenAPI Schema,/v1/audio/transcriptions 接口所需的主体字段如下:
file、modellanguage、verbose、max_tokens、chunk_duration、frame_threshold、stream、context、prefill_step_size、text这意味着本地服务器暴露的表单结构与 OpenAI Whisper 风格文档并不一致。切勿仅因 OpenAI 支持某字段(如 response_format、prompt 或 timestamp_granularities[]),就盲目假设本地服务器也支持相同字段。
若怀疑客户端发送了错误结构的请求,可通过临时部署 dump 代理或查阅服务器日志来分析网络流量。
当需确认以下功能的确切行为时,请查阅 references/stt-api.md:
response_format=json|text|verbose_json|srt|vttstream=true 下的 SSE 事件格式timestamp_granularities[]include[]当本地服务器可能有意偏离标准时,请切勿依据通用 OpenAI 文档猜测字段支持情况。
当前显著差异示例:本地 Schema 暴露了 context 和 text 字段,并提供了分块与预填充控制参数(如 chunk_duration、frame_threshold 和 prefill_step_size),这些均不属于常规 OpenAI STT 字段集。
当 OpenClaw 的 STT 功能疑似异常时,请执行以下步骤:
tools.media.audio,而非 messages.stthttp://127.0.0.1:8000/v1/v1/models 中/v1/audio/transcriptions/audio/transcriptions 请求,则问题位于 STT 上游环节若 OpenClaw 从未触达服务器,请停止调整模型参数——此类操作属于“仪式性调试”(cargo-cult debugging)。
请按如下顺序执行测试:
GET /healthGET /v1/modelscurl 转录测试http://localhost:8000/openapi.json 进行比对典型表现:
.m4a)返回 500mp3 或 wav 后,转录立即成功结论:应将此视为输入容器格式兼容性缺陷,而非 ASR 识别质量缺陷。现阶段建议在测试识别质量前,先将小众格式转码为 mp3 或 wav。
典型表现:
curl 返回 { "text": ... }结论:应修复路由逻辑,而非推理能力。
典型表现:
curl 可行,但应用客户端失败结论:请比对 multipart 字段名与字段值。
典型表现:
结论:请以 references/stt-api.md 为准,统一双方预期。
references/stt-api.md —— 本地 API 的精确行为定义、Schema、响应格式、SSE 事件、限制说明及兼容性备注相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习