
转录针对语音信息和语音输入进行调谐,当说话者暂停时,每句话都作为一个完整的转录返回。
转录针对语音信息和语音输入进行调谐,当说话者暂停时,每句话都作为一个完整的转录返回。
通过插槽流式传输16 kHz pcm16音频。每句话在说话者暂停时或与partial_results对话时都会完整返回。在session.update中设置语言和结束话语的暂停。
也称为 Qwen Audio ASR Message, Alibaba Cloud Qwen Audio 3.1 ASR Message
qwen-audio-3-1-asr-message/v1/realtimeqwen-audio-3.1-asr-messagealibaba/qwen-audio-3-1-asr-message来自 EmpirioLabs 目录的实时按量计费价格。只为实际用量付费,没有月度最低消费。
Qwen Audio 3.1 ASR Message 通过 wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-asr-message 的 WebSocket 转写实时音频流,而不是通过 HTTP 端点。使用模型 id qwen-audio-3-1-asr-message 连接,并在握手时将 EmpirioLabs API 密钥作为 Authorization: Bearer 请求头发送。追加 base64 编码的 16 位 PCM 音频,说话过程中即可读取转写事件。 浏览器无法为 WebSocket 设置请求头,请从你的服务器发起该连接,再通过你自己的 socket 把音频转发给浏览器。 在EmpirioLabs 控制台获取 API 密钥。
import asyncio, json, os, websockets
async def main():
async with websockets.connect(
"wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-asr-message",
additional_headers=[
("Authorization", f"Bearer {os.environ['EMPIRIOLABS_API_KEY']}"),
],
max_size=None,
) as ws:
print(json.loads(await ws.recv())["type"]) # session.created
import base64
# 16-bit PCM microphone audio, base64 encoded, in small chunks.
for chunk in read_microphone_chunks():
await ws.send(json.dumps({
"type": "input_audio_buffer.append",
"audio": base64.b64encode(chunk).decode(),
}))
await ws.send(json.dumps({"type": "input_audio_buffer.commit"}))
async for raw in ws:
event = json.loads(raw)
if event["type"].endswith("input_audio_transcription.delta"):
# "text" is settled transcript; "stash" is still in progress.
if event.get("text"):
print(event["text"], end="", flush=True)
asyncio.run(main())EmpirioLabs 上 Qwen Audio 3.1 ASR Message API 支持的请求参数。省略字段时使用默认值。
| 参数 | 类型 | 默认值 | 范围 / 值 | 描述 |
|---|---|---|---|---|
| input_audio_format | enum | pcm16 | pcm16 | 你附加到输入缓冲区的音频编码:base64 16位PCM,单声道,16 kHz。 |
| language | enum | auto | auto, zh, en, ja, ko, vi, th, id, ms, tl, hi, ar, fr, de, es,... | 语音语言,或者自动从音频中检测。用连接URL的语言查询参数设置,或者像session.update里input_audio_transcription.language的那样。 |
| silence_duration_ms | integer | 800 | 200 到 6000 | 句子结束时的停顿(毫秒)从200到6000秒。较短的停顿会让每个句子更快确定;较长的停顿则在句子中保持停顿。也被接受为turn_detection.silence_duration_ms。 |
| threshold | number | - | 0 到 1 | 语音转录前的清晰度,从0.0到1.0。值越高,忽略更多背景噪声,可能会漏掉轻声说话。如果省略,则适用模型自身的默认值。也被接受为turn_detection.threshold。 |
| noise_reduction | enum | far_field | far_field, near_field | 语音检测调校的麦克风类型:near_field用于耳机或手机,far_field用于笔记本电脑或房间麦克风。也可作为input_audio_noise_reduction.type。 |
| keep_dialect | boolean | false | - | 保持汉语方言词汇的口语。关闭时,方言语言以标准普通话书写。 |
| partial_results | boolean | false | - | 同时也会在话语中发送每个话语,因为conversation.item.input_audio_transcription.delta事件推动话语发展至今,这些事件在稳定前仍可能发生变化。 |
语音消息转录通过 WebSocket 在 wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-asr-message 进行,并用普通授权承载者头进行认证。
带input_audio_buffer.append的16 kHz单声道PCM16音频流式传输。语音活动检测决定每个话语的结束位置,因此无需提交。
在session.created之后、第一个音频之前发送session.update,设置如下:input_audio_transcription.language(或连接URL的language查询参数;默认auto)、turn_detection.silence_duration_ms(200到6000,默认800)、turn_detection.threshold(0.0到1.0)以及input_audio_noise_reduction(near_field或far_field)。keep_dialect保持中文方言的口语。在音频流媒体中更改设置,正在进行的话语会终止,并应用到之后发送的音频。
每句话语作为一个完整的事件,在说话者暂停后作为一个conversation.item.input_audio_transcription.completed事件。设置 partial_results 在说话时也接收该话题,作为仍可能变化的事件conversation.item.input_audio_transcription.delta。对于实时字幕,qwen-audio-3-1-asr-stream 总是发送字幕。
输入和输出令牌按1M计价,每个完成的话题根据模型报告的使用情况单独计费。
在 EmpirioLabs,Qwen Audio 3.1 ASR Message 按量计费:输入 $1.86 每 1M 音频输入令牌; 输出 $1.40 每100万个生成代币。本页的实时价格表始终与 API 的实际计费一致。
Qwen Audio 3.1 ASR Message 通过 api.empiriolabs.ai 上的 WEBSOCKET /v1/realtime 提供,使用标准的 Bearer 令牌认证。
打开EmpirioLabs Playground并点击 Start session,即可在浏览器中试用。Qwen Audio 3.1 ASR Message 运行在 WebSocket 上,而不是一次请求一次响应,因此接入时请从实时语音快速入门开始。用 EmpirioLabs API 密钥和模型 id qwen-audio-3-1-asr-message 从你的服务器连接,然后双向流式传输音频。
创建 EmpirioLabs 账户,然后在控制台的 API Keys生成密钥。计费使用按量付费的额度,只为实际发出的请求付费。