前提条件
DashScope Python SDK のバージョンは 2.0.1 以降である必要があります。
開始方法
リクエストパラメータ
以下のリクエストパラメーターは client.audio.realtime の connect メソッドで設定します。
パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
model | str | はい | モデル名 (「サポートされているモデル」をご参照ください)。 |
ws_url | str | いいえ | セッションエンドポイントです。省略した場合、Client の構築パラメーター |
update_session メソッドで設定します(具名パラメーターは直接渡され、その他のパラメーターは session.update イベントの session オブジェクトに透過されます)。
パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
voice | str | はい | 音声合成に使用する音声です。詳細については、「Qwen-TTS ボイスリスト」をご参照ください。 |
language_type | str | いいえ | 合成オーディオの言語です。デフォルト値は
|
mode | str | いいえ | インタラクションパターンです。有効な値は以下のとおりです。
|
response_format | str | いいえ | モデルからのオーディオ出力フォーマットです。 サポートされるフォーマット:
|
sample_rate | int | いいえ | モデルからのオーディオ出力のサンプルレート (Hz) です。 サポートされるサンプルレート:
|
speech_rate | float | いいえ | オーディオの話速です。1.0 が通常速度です。1.0 未満は低速、1.0 より大きい値は高速になります。 デフォルト値:1.0 有効範囲:[0.5, 2.0] |
volume | int | いいえ | オーディオのボリュームです。 有効範囲:[0, 100] |
pitch_rate | float | いいえ | 合成オーディオのピッチです。 デフォルト値:1.0 有効範囲:[0.5, 2.0] |
bit_rate | int | いいえ | ビットレート (kbps) です。ビットレートが高いほどオーディオ品質が向上し、ファイルサイズも大きくなります。このパラメーターは、オーディオフォーマット ( デフォルト値:128 有効範囲:[6, 510] |
主要なインターフェイス
セッション(RealtimeSession)
リアルタイム音声合成セッションは client.audio.realtime.connect(model=...) で作成されます。with コンテキストに入ると自動的に接続が確立されます(セッションの connect() メソッドを手動で呼び出すこともできます)。
| メソッドシグネチャ | サーバー応答イベント(events() で反復配信) | 説明 |
|---|---|---|
session.createdSession createdsession.updated Session configuration updated | サーバーとの接続を作成します。with コンテキストに入ると自動的に呼び出されます。 | |
session.updatedSession configuration updated | デフォルトのセッション構成を更新します。パラメーターの詳細については、「Request parameters」をご参照ください。接続後、サーバーはデフォルトの入力構成と出力構成を返します。接続直後にこのメソッドを呼び出し、これらのデフォルト設定を更新します。サーバーは session.update イベントを受信した時点でパラメーターを検証します。検証に失敗した場合はエラーを返し、成功した場合はセッション構成を更新します。 | |
| None | 生のイベントを送信します。テキスト入力は input_text_buffer 系列のイベントで行います:テキストチャンクをクラウド入力テキストバッファー({"type": "input_text_buffer.append", "text": ...})に追加します。バッファーは、書き込んで後でコミットできる一時ストレージです。
| |
input_text_buffer.clearedClear text received by the server | {"type": "input_text_buffer.clear"} イベントを送信し、現在のクラウドバッファー内のテキストを削除します。 | |
input_text_buffer.committedSubmit text and trigger speech synthesisresponse.output_item.added New output content addedresponse.content_part.added New content added to assistant messageresponse.audio.delta Incremental audio generated by the modelresponse.audio.done Audio generation completedresponse.content_part.done Streaming of audio content for assistant message completedresponse.output_item.done Streaming of entire output item for assistant message completedresponse.done Synthesis response completed | クラウドバッファー内のテキストをすべてコミットし、直ちに音声合成します。バッファーが空の場合はエラーを返します。
| |
session.finishedSession completed | session.finish イベントを送信してタスクを終了します。その後も session.finished イベントまで events() を消費し続けてください。 | |
| None | 接続を閉じます。with コンテキストの退出時に自動的に呼び出されます。 | |
| None | 現在のタスクの session_id を取得します。 | |
| None | 直近の response の response_id を取得します。 | |
| None | 最初の音声パケットの遅延を取得します。 |
イベント反復(events())
サーバーは、イベントを通じてサーバー応答イベントとデータをクライアントに返します。受信スレッドでセッションの events() を反復処理してサーバーイベントを処理します。session.finished イベントの後に反復が終了します。error イベントは DashScopeError 例外としてスローされるため、try/except で捕捉できます。
| メソッド | パラメーター | 戻り値 | 説明 |
|---|---|---|---|
event:サーバー応答イベント(dict)。 | 反復子 | API 呼び出しへの応答とモデルが生成したテキスト、オーディオが含まれます。session.finished イベントの後に反復が終了します。詳細については、「Server events」をご参照ください。 | |
event:サーバー応答イベント(dict)。 | イベントまたは None | サーバーイベントを 1 件読み取ります。正常に閉じられた後は None を返します。 |