Skip to content
# 注意:file 必须是 multipart 的最后一个字段
curl -X POST https://api.wxiai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $WXIAI_API_KEY" \
  -F "model=grok-stt" \
  -F "language=zh" \
  -F "file=@./meeting.mp3"
curl -X POST https://api.wxiai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $WXIAI_API_KEY" \
  -F "model=grok-stt" \
  -F "language=zh" \
  -F "url=https://example.com/audio.mp3"
curl -X POST https://api.wxiai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $WXIAI_API_KEY" \
  -F "model=grok-stt" \
  -F "language=en" \
  -F "format=true" \
  -F "diarize=true" \
  -F "file=@meeting.mp3"
{
  "text": "The balance is $167,983.15.",
  "language": "en",
  "duration": 3.45,
  "words": [
    { "text": "The", "start": 0.24, "end": 0.48 },
    { "text": "balance", "start": 0.48, "end": 0.96 }
  ]
}
{
  "error": {
    "message": "file 或 url 至少需要提供一个",
    "type": "wxi_api_error",
    "param": "file",
    "code": "invalid_request_error"
  }
}
OpenAI 兼容层

音生文 STT

上传一段音频或给一个音频地址,拿到转写文本和词级时间戳。同步接口。

POST/v1/audio/transcriptions

端点 ​

http
POST /v1/audio/transcriptions

这是 OpenAI 兼容路径。同一能力在原生透传层的写法见 音生文 STT(原生透传)。

请求 ​

请求格式是 multipart/form-data,不是 JSON。file 和 url 至少给一个。

bash
# 方式一:直接传文件
curl -X POST https://api.wxiai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $WXIAI_API_KEY" \
  -F "model=grok-stt" \
  -F "language=zh" \
  -F "file=@./meeting.mp3"

# 方式二:让服务端去下载音频
curl -X POST https://api.wxiai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $WXIAI_API_KEY" \
  -F "model=grok-stt" \
  -F "language=zh" \
  -F "url=https://example.com/audio.mp3"

file 必须是最后一个字段

其余字段要写在 file 前面——流式上传时,排在 file 之后的字段可能被忽略。

请求参数 ​

参数必填说明
file二选一音频文件,最大 500 MB。必须是 multipart 最后一个字段
url二选一音频地址,服务端下载后转写
language否语言码。只有配 format=true 时才起作用
format否开启反向文本规范化:把口语数字/货币转成书面形式("one hundred dollars" → "$100")。需要同时传 language
diarize否说话人分离。开启后每个词会带 speaker 字段
multichannel否逐声道独立转写,结果放在 channels 数组里
channels否声道数(2–8)。仅裸音频需要
audio_format否裸音频格式提示:pcm / mulaw / alaw。容器格式别传这个字段
sample_rate否采样率,仅裸音频需要
model否不传默认 grok-stt

兼容层只透传 OpenAI 也有的那组字段

keyterm(关键词偏置)、filler_words(保留填充词)、vad_threshold(语音活动门限)这三个是 Grok 专有参数,走兼容层不会生效。

需要它们请改用 音生文 STT(原生透传)。

返回 ​

json
{
  "text": "The balance is $167,983.15.",
  "language": "en",
  "duration": 3.45,
  "words": [
    { "text": "The", "start": 0.24, "end": 0.48 },
    { "text": "balance", "start": 0.48, "end": 0.96 }
  ]
}
字段说明
text完整转写文本
language识别到的语言(BCP-47,如 en、es-mx)
duration音频时长(秒,保留 2 位小数)
words词级时间戳。开了 diarize 时每个词多一个 speaker(整数)
channels逐声道结果。开了 multichannel 时才有,每项含 index、text、words

支持的音频格式 ​

容器格式(自动识别,不要传 audio_format):.wav、.mp3、.ogg、.opus、.flac、.aac、.mp4、.m4a、.mkv

裸格式(必须同时传 audio_format 和 sample_rate):pcm(16 位小端)、mulaw(G.711 μ-law)、alaw(G.711 A-law)

上限:单文件 500 MB;单声道、立体声或最多 8 声道(需 multichannel=true)。

这一层的注意点 ​

  • 发 JSON 会失败:STT 只接受 multipart/form-data。
  • file 没放最后:写在 file 后面的字段可能被丢掉。
  • file 和 url 都不给:请求会被拒绝,错误信息会指出缺哪个字段。
  • format=true 必须配 language:不配的话格式化不生效。

相关页 ​

基于 Apache-2.0 许可发布