本地语音转文字工作流,用于兼容OpenAI的STT服务器,通常位于 http://127.0.0.1:8000/v1。在配置、测试、调试或验证时使用。
本地 STT 工作流程
功能概述
本地 STT 工作流程是一项面向实际任务的技能,主要用于使用此技能调试完整转录路径, 而不仅仅是模型;默认 : 本地 STT 服务器在 http:// 127. 0.0.1: 8000/v1 上。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
使用与执行
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
本地 STT 工作流
使用此技能调试完整的语音转文本路径,而不仅限于模型本身。
默认假设:本地 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)手段。
工作流
1. 在归责 OpenClaw 前,先验证服务器状态
首先检查基础项:
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 列表。
2. 验证原始 STT 接口是否正常工作
务必先将服务器与客户端栈完全隔离。
最小化直连转录测试:
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 后端。
3. 区分服务器故障与路由故障
请严格遵守如下判断规则:
- 直连 curl 失败 → 首先修复本地 STT 服务器
- 直连 curl 成功,但 OpenClaw 未返回任何转录结果 → 检查 OpenClaw 的音频流水线 / 附件路由逻辑
- OpenClaw 发出了请求,但字段内容错误 → 检查请求结构的兼容性
这一区分可节省大量排查时间。
4. 检查请求结构
本服务器设计基于OpenAI 风格的 multipart 表单上传协议。
根据当前本地 OpenAPI Schema,/v1/audio/transcriptions 接口所需的主体字段如下:
- 必填字段:
file、model - 可选字段:
language、verbose、max_tokens、chunk_duration、frame_threshold、stream、context、prefill_step_size、text
这意味着本地服务器暴露的表单结构与 OpenAI Whisper 风格文档并不一致。切勿仅因 OpenAI 支持某字段(如 response_format、prompt 或 timestamp_granularities[]),就盲目假设本地服务器也支持相同字段。
若怀疑客户端发送了错误结构的请求,可通过临时部署 dump 代理或查阅服务器日志来分析网络流量。
5. 当字段细节至关重要时,请参考规范文档
当需确认以下功能的确切行为时,请查阅 references/stt-api.md:
response_format=json|text|verbose_json|srt|vttstream=true下的 SSE 事件格式timestamp_granularities[]include[]- 翻译接口(translation endpoint)语义
- 错误响应包(error envelope)结构
- 当前兼容性限制
当本地服务器可能有意偏离标准时,请切勿依据通用 OpenAI 文档猜测字段支持情况。
当前显著差异示例:本地 Schema 暴露了 context 和 text 字段,并提供了分块与预填充控制参数(如 chunk_duration、frame_threshold 和 prefill_step_size),这些均不属于常规 OpenAI STT 字段集。
6. OpenClaw 特定调试模式
当 OpenClaw 的 STT 功能疑似异常时,请执行以下步骤:
- 确认配置的是
tools.media.audio,而非messages.stt - 确认基础 URL 指向
http://127.0.0.1:8000/v1 - 确认所选模型存在于
/v1/models中 - 将相同的入站音频文件直接提交至
/v1/audio/transcriptions - 检查网关日志,确认是否存在转录调度(transcription dispatch)记录
- 若完全未出现**
/audio/transcriptions请求,则问题位于 STT 上游环节
若 OpenClaw 从未触达服务器,请停止调整模型参数——此类操作属于“仪式性调试”(cargo-cult debugging)。
7. 推荐的测试阶梯
请按如下顺序执行测试:
GET /healthGET /v1/models- 使用同一音频文件执行直连
curl转录测试 - 将请求字段与
http://localhost:8000/openapi.json进行比对 - OpenAI 客户端兼容性测试
- OpenClaw 集成测试
- 仅当问题仍不明确时,才启用 dump-proxy 或日志分析
8. 常见结论
小众输入容器格式缺陷
典型表现:
- 直接上传小众容器格式(如
.m4a)返回500 - 服务器日志提示在临时写入或归一化过程中遇到不支持的格式处理逻辑
- 将同一源音频转换为
mp3或wav后,转录立即成功
结论:应将此视为输入容器格式兼容性缺陷,而非 ASR 识别质量缺陷。现阶段建议在测试识别质量前,先将小众格式转码为 mp3 或 wav。
服务器正常,客户端异常
典型表现:
- 手动
curl返回{ "text": ... } - OpenClaw 日志中无任何转录请求记录
- 修改模型或语言参数无效
结论:应修复路由逻辑,而非推理能力。
Multipart 结构不匹配
典型表现:
- 服务器运行正常
- 模型存在
- 客户端收到 400 错误
- 直连
curl可行,但应用客户端失败
结论:请比对 multipart 字段名与字段值。
功能集不匹配
典型表现:
- 客户端期望支持说话人分离(diarization)、对数概率(logprobs)或更丰富的流式响应字段
- 本地服务器仅实现了一个较小的、兼容子集
结论:请以 references/stt-api.md 为准,统一双方预期。
资源
references/
references/stt-api.md—— 本地 API 的精确行为定义、Schema、响应格式、SSE 事件、限制说明及兼容性备注
热门AI工具
相关专题
Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。
0
2026.10.28
Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。
0
2026.10.28
Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。
0
2026.10.28
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.6万人学习
共6课时 | 54.7万人学习