すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:Qwen-ASR-Realtime Python SDK - API リファレンス

最終更新日:Jul 03, 2026

WebSocket を介して音声を Qwen-ASR-Realtime にストリーミングし、DashScope Python SDK を使ってリアルタイムの文字起こし結果を受信します。

サポートされているモデル、機能、および完全なサンプルコードの概要については、「リアルタイム音声認識」をご参照ください。

前提条件

作業を開始する前に、以下の項目が準備済みであることを確認してください。

重要

Alibaba Cloud Model Studio は、中国 (北京) リージョンおよびシンガポールリージョン向けにワークスペース専用ドメインをリリースしました。この新しい専用ドメインは、推論リクエストに対して優れたパフォーマンスと高い安定性を提供します。新しいドメインへの移行を推奨します。

  • 中国 (北京): dashscope.aliyuncs.com から {WorkspaceId}.cn-beijing.maas.aliyuncs.com

  • シンガポール: dashscope-intl.aliyuncs.com から {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

{WorkspaceId} は、実際の ワークスペース ID に置き換えてください。既存のドメインは引き続き完全に機能します。

リクエストパラメーター

OmniRealtimeConversation コンストラクター

以下のパラメーターを使用して OmniRealtimeConversation インスタンスを作成します。

サンプルコードを表示

from dashscope.audio.qwen_omni import OmniRealtimeConversation, OmniRealtimeCallback

class MyCallback(OmniRealtimeCallback):
    """リアルタイム認識用コールバック"""
    def __init__(self, conversation):
        self.conversation = conversation
        self.handlers = {
            'session.created': self._handle_session_created,
            'conversation.item.input_audio_transcription.completed': self._handle_final_text,
            'conversation.item.input_audio_transcription.text': self._handle_stash_text,
            'input_audio_buffer.speech_started': lambda r: print('======Speech Start======'),
            'input_audio_buffer.speech_stopped': lambda r: print('======Speech Stop======')
        }

    def on_open(self):
        print('Connection opened')

    def on_close(self, code, msg):
        print(f'Connection closed, code: {code}, msg: {msg}')

    def on_event(self, response):
        try:
            handler = self.handlers.get(response['type'])
            if handler:
                handler(response)
        except Exception as e:
            print(f'[Error] {e}')

    def _handle_session_created(self, response):
        print(f"Start session: {response['session']['id']}")

    def _handle_final_text(self, response):
        print(f"Final recognized text: {response['transcript']}")

    def _handle_stash_text(self, response):
        print(f"Got stash result: {response['stash']}")

conversation = OmniRealtimeConversation(
        model='qwen3-asr-flash-realtime',
        # 以下の URL は中国本土向けです。中国本土以外のリージョンでは、
        # wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/realtime を使用してください。
        url='wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/realtime',
        callback=MyCallback(conversation=None)  # 一時的に None を渡し、後で注入します。
    )
# コールバックに自身を注入します。
conversation.callback.conversation = conversation
パラメーター 必須 説明
model str はい モデル を指定します。
callback OmniRealtimeCallback はい サーバー側イベントを処理するコールバックオブジェクトです。
url str はい WebSocket エンドポイントです。
中国 (北京): wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/realtime
シンガポール: wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/realtime{WorkspaceId} は、実際の ワークスペース ID に置き換えてください。




























































































セッション構成

接続後、update_session を呼び出してセッションパラメーターを構成します。

サンプルコードを表示

from dashscope.audio.qwen_omni import TranscriptionParams, MultiModality

transcription_params = TranscriptionParams(
    language='zh',
    sample_rate=16000,
    input_audio_format="pcm"
)

conversation.update_session(
    output_modalities=[MultiModality.TEXT],
    enable_turn_detection=True,
    turn_detection_type="server_vad",
    turn_detection_threshold=0.0,
    turn_detection_silence_duration_ms=400,
    enable_input_audio_transcription=True,
    transcription_params=transcription_params
)
パラメーター 必須 説明
output_modalities List[MultiModality] はい 出力モダリティです。固定値:[MultiModality.TEXT]
enable_turn_detection bool いいえ サーバー側の音声アクティビティ検出 (VAD) を有効にします。デフォルト:TrueFalse の場合、認識をトリガーするために commit() を手動で呼び出す必要があります。
turn_detection_type str いいえ サーバー側 VAD のタイプです。固定値:server_vad
turn_detection_threshold float いいえ VAD の感度しきい値です。デフォルト:0.2。推奨値:0.0。有効範囲:[-1, 1]
値が低いほど感度が高くなり(バックグラウンドノイズでもトリガーされる可能性あり)、値が高いほどノイズ環境での誤トリガーが少なくなります。































turn_detection_silence_duration_ms int いいえ 文の終了を示すサイレンス持続時間 (ミリ秒) です。デフォルト:800。推奨値:400。有効範囲:[200, 6000]
値が小さい (例:300 ms) ほど応答が速くなりますが、自然なポーズが分割される可能性があります。値が大きい (例:1200 ms) ほど長文のポーズを適切に処理できますが、レイテンシが高くなります。































transcription_params TranscriptionParams いいえ 音声認識の構成です。「TranscriptionParams」をご参照ください。

TranscriptionParams

TranscriptionParams コンストラクターを使用して音声認識設定を構成します。

サンプルコードを表示

transcription_params = TranscriptionParams(
    language='zh',
    sample_rate=16000,
    input_audio_format="pcm"
)
パラメーター 必須 説明
language str いいえ 音声のソース言語です。サポートされる値:
zh (中国語:普通話、四川語、閩南語、呉語)、yue (広東語)、en (英語)、ja (日本語)、ko (韓国語)、de (ドイツ語)、fr (フランス語)、es (スペイン語)、pt (ポルトガル語)、it (イタリア語)、ru (ロシア語)、ar (アラビア語)、hi (ヒンディー語)、id (インドネシア語)、th (タイ語)、tr (トルコ語)、uk (ウクライナ語)、vi (ベトナム語)、cs (チェコ語)、da (デンマーク語)、fi (フィンランド語)、fil (フィリピン語)、is (アイスランド語)、ms (マレー語)、no (ノルウェー語)、pl (ポーランド語)、sv (スウェーデン語)































sample_rate int いいえ 音声のサンプリングレート (Hz) です。デフォルト:16000。サポートされる値:1600080008000 を使用すると、サーバーが認識前に 16,000 Hz にアップサンプリングするため、わずかなレイテンシが発生する可能性があります。電話録音など 8 kHz ソース音声の場合のみ、8000 を使用してください。
input_audio_format str いいえ 音声フォーマットです。デフォルト:pcm。サポートされる値:pcmopus
corpus_text str いいえ コンテキストバイアシング用の背景テキスト、エンティティ語彙、またはその他のリファレンス情報。最大:10,000 トークン。詳細については、「コンテキストバイアシング」をご参照ください。

主要インターフェイス

OmniRealtimeConversation クラス

from dashscope.audio.qwen_omni import OmniRealtimeConversation
メソッド サーバー応答イベント 説明
connect() session.createdsession.updated サーバーへの WebSocket 接続を開きます。
update_session(...) session.updated connect() 後に呼び出してセッションを構成します。省略した場合はデフォルト値が適用されます。パラメーターの詳細については、「セッション構成」をご参照ください。
append_audio(audio_b64: str) なし Base64 エンコードされた音声チャンクをサーバーの入力バッファーに送信します。enable_turn_detection=True の場合、サーバーが音声境界を検出し自動的にコミットします。enable_turn_detection=False の場合、クライアントがコミットタイミングを制御します (1 イベントあたり最大 15 MiB)。チャンクサイズを小さくすると VAD の応答性が向上します。
commit() input_audio_buffer.committed バッファリングされた音声を認識のためにコミットします。バッファーが空の場合、エラーを返します。enable_turn_detection=True の場合は無効になります。
end_session(timeout: int = 20) session.finished サーバーが最終認識を完了した後にセッションを終了します。VAD モード (デフォルト) の場合、すべての音声送信後に呼び出します。マニュアルモード の場合、commit() 後に呼び出します。非同期バリアント:end_session_async()
close() なし タスクを終了し、接続を閉じます。
get_session_id() なし 現在のセッション ID を返します。
get_last_response_id() なし 最新の応答 ID を返します。

OmniRealtimeCallback インターフェイス

OmniRealtimeCallback をサブクラス化し、そのメソッドを実装してサーバーイベントを処理します。

from dashscope.audio.qwen_omni import OmniRealtimeCallback
メソッド パラメーター 説明
on_open() なし WebSocket 接続が確立されたときに呼び出されます。
on_event(message: dict) messageサーバーイベント サーバーイベントを受信したときに呼び出されます。
on_close(close_status_code, close_msg) close_status_code: 状態コード;close_msg: ログメッセージ WebSocket 接続が閉じられたときに呼び出されます。