

Qwen Audio 3.1 ASR Stream と Qwen Audio 3.0 ASR Stream を並べて比較: 仕様、機能、パラメーター、EmpirioLabs カタログのライブ料金。
Qwen Audio 3.1 ASR Stream と Qwen Audio 3.0 ASR Stream はどちらも Alibaba Cloud のモデルで、転写カテゴリに属し、EmpirioLabs API から利用できます。
2 つのモデルの主な仕様は同じです。違いは下の料金表とパラメーターで確認できます。
| 仕様 | Qwen Audio 3.1 ASR Stream | Qwen Audio 3.0 ASR Stream |
|---|---|---|
| モデルID | qwen-audio-3-1-asr-stream | qwen-audio-3-0-asr-stream |
| 開発元 | Alibaba Cloud | Alibaba Cloud |
| リリース | - | 2026年7月30日 |
| 入力 | 音声 | 音声 |
| 出力 | テキスト | テキスト |
| リージョン | Singapore | Singapore |
| エンドポイント | WEBSOCKET /v1/realtime | WEBSOCKET /v1/realtime |
| 機能 |
両モデルの EmpirioLabs カタログのライブ料金です。各料金表は常に API の請求額と一致します。
EmpirioLabs で各モデルに記載されているリクエストパラメーターと、指定できる値または範囲です。ハイフンは、そのモデルに記載のないパラメーターを示します。
| パラメータ | Qwen Audio 3.1 ASR Stream | Qwen Audio 3.0 ASR Stream |
|---|---|---|
| input_audio_format | pcm16 デフォルト: pcm16 | pcm16 デフォルト: pcm16 |
| language | auto, zh, en, ja, ko, vi, th, id, ms, tl, hi, ar, fr, de, es,... デフォルト: auto | auto, zh, en, ja, ko, vi, th, id, ms, tl, hi, ar, fr, de, es,... デフォルト: auto |
| prompt | string | string |
| silence_duration_ms | 200 から 6000 デフォルト: 800 | 200 から 6000 デフォルト: 800 |
| threshold | 0 から 1 | 0 から 1 |
| noise_reduction | far_field, near_field デフォルト: far_field | far_field, near_field デフォルト: far_field |
| keep_dialect | boolean デフォルト: false | boolean デフォルト: false |
WebSocketをwss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-asr-streamでリアルタイムで書き起こし、通常のAuthorization Bearerヘッダーで認証されます。
input_audio_buffer.appendで16kHzのモノラルPCM16音声をストリーミングできます。音声アクティビティ検出は各文の終わりを決めるので、送信するコミットはありません。
session.created直後、最初の音声の直前でsession.update、以下の設定で送信してください:input_audio_transcription.language(または接続URLのlanguageクエリパラメータ;デフォルトでauto)、input_audio_transcription.prompt話者が使う名前と用語(最大400文字)、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.delta間ごとに決着文を伝えconversation.item.input_audio_transcription.completed。
入力トークンと出力トークンは1M単位で価格が設定され、完成した各文はモデルが報告する使用量から個別に請求されます。
WebSocketをwss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-0-asr-streamでリアルタイムで書き起こし、通常のAuthorization Bearerヘッダーで認証されます。
input_audio_buffer.appendで16kHzのモノラルPCM16音声をストリーミングできます。音声アクティビティ検出は各文の終わりを決めるので、送信するコミットはありません。
session.created直後、最初の音声の直前でsession.update、以下の設定で送信してください:input_audio_transcription.language(または接続URLのlanguageクエリパラメータ;デフォルトでauto)、input_audio_transcription.prompt話者が使う名前と用語(最大400文字)、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.delta間ごとに決着文を伝えconversation.item.input_audio_transcription.completed。
ストリーミングする音声(無音も含む)の秒単位で請求され、表示されている時間単位の料金で計定されます。セッションは終了時に請求されます。
Qwen Audio 3.1 ASR Stream は HTTP エンドポイントではなく、wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-asr-stream の WebSocket 上でライブ音声ストリームを文字起こしします。モデル ID qwen-audio-3-1-asr-stream で接続し、ハンドシェイク時に EmpirioLabs の API キーを Authorization: Bearer ヘッダーとして送信してください。base64 の 16 ビット PCM 音声を追加すると、話している最中から文字起こしイベントを受け取れます。 ブラウザは WebSocket にヘッダーを設定できないため、この接続はサーバーから開き、音声は自前のソケットでブラウザへ中継してください。 どちらのモデルも同じエンドポイントで呼び出します。model を qwen-audio-3-1-asr-stream または qwen-audio-3-0-asr-stream に設定してください。 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-stream",
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())2 つのモデルの主な仕様は同じです。違いは下の料金表とパラメーターで確認できます。 このページの仕様、料金表、パラメーターは EmpirioLabs のライブカタログに基づいています。
2 つのモデルは課金単位または階層が異なるため、このページのライブ料金表で比較してください。料金表は常に API の請求額と一致します。
はい。どちらのモデルも同じ EmpirioLabs API キーで WEBSOCKET /v1/realtime を使うため、ほとんどの連携は model の値を変えるだけで切り替えられます。モデル固有のパラメーターに依存している場合は、先にこのページのパラメーター表を確認してください。
はい。EmpirioLabs プレイグラウンド で各モデルを開き、Start session を押すとブラウザーで試せます。