Qwen リアルタイム音声合成モデルは、ストリーミングテキスト入力とオーディオ出力による低レイテンシーの音声合成を提供します。人間のような様々な音声を提供し、複数の言語や方言をサポートし、異なる言語で同じ音声を使用することができます。また、このモデルは自動的にトーンを調整し、複雑なテキストをスムーズに処理します。
音声合成 - Qwen と比較して、Qwen リアルタイム音声合成は次の特徴をサポートしています:
ストリーミングテキスト入力
大規模言語モデル (LLM) のストリーミング出力とシームレスに統合します。テキストが生成されると同時に音声が合成されるため、インタラクティブな音声アプリケーションのリアルタイム性能が向上します。
双方向通信
WebSocket プロトコルを使用して、ストリーミングテキスト入力とオーディオ出力を実現します。このメソッドは、複数の接続を確立するオーバーヘッドを回避し、レイテンシーを大幅に削減します。
サポートされるモデル
サポートされるモデルは Qwen3-TTS Realtime です。
Qwen3-TTS Realtime は 17 種類の 音声 を提供し、複数の言語や方言の合成をサポートし、出力オーディオのフォーマット、サンプルレート、話速、音量、ピッチ、ビットレートをカスタマイズできます。
Qwen-TTS Realtime は 7 種類の 音声 のみを提供し、中国語と英語のみをサポートし、出力オーディオのフォーマット、サンプルレート、話速、音量、ピッチ、ビットレートのカスタマイズはできません。
国際 (シンガポール)
モデル | バージョン | 単価 | サポートされる言語 | 無料クォータ (注) |
qwen3-tts-flash-realtime 現在の機能は qwen3-tts-flash-realtime-2025-09-18 と同等です | 安定 | 10,000 文字あたり $0.13 | 中国語 (標準語、北京語、上海語、四川語、南京語、陝西語、閩南語、天津語、広東語)、英語、スペイン語、ロシア語、イタリア語、フランス語、韓国語、日本語、ドイツ語、ポルトガル語 | 各モデル 2,000 文字 有効期間: Alibaba Cloud Model Studio のアクティベーション後 90 日間 |
qwen3-tts-flash-realtime-2025-09-18 | スナップショット |
Qwen3-TTS は入力文字数に基づいて課金されます。課金ルールは次のとおりです:
中国語 1 文字 = 2 文字
英字 1 文字、句読点 1 つ、またはスペース 1 つ = 1 文字
中国本土 (北京)
Qwen3-TTS Realtime
モデル | バージョン | 単価 | サポートされる言語 |
qwen3-tts-flash-realtime 現在の機能は qwen3-tts-flash-realtime-2025-09-18 と同等です | 安定 | 10,000 文字あたり $0.143353 | 中国語 (標準語、北京語、上海語、四川語、南京語、陝西語、閩南語、天津語、広東語)、英語、スペイン語、ロシア語、イタリア語、フランス語、韓国語、日本語、ドイツ語、ポルトガル語 |
qwen3-tts-flash-realtime-2025-09-18 | スナップショット |
Qwen3-TTS は入力文字数に基づいて課金されます。課金ルールは次のとおりです:
中国語 1 文字 = 2 文字
英字 1 文字、句読点 1 つ、またはスペース 1 つ = 1 文字
Qwen-TTS Realtime
モデル | バージョン | コンテキストウィンドウ | 最大入力 | 最大出力 | 入力コスト | 出力コスト | サポートされる言語 |
(トークン) | (1,000 トークンあたり) | ||||||
qwen-tts-realtime 現在の機能は qwen-tts-realtime-2025-07-15 と同等です | 安定 | 8,192 | 512 | 7,680 | $0.345 | $1.721 | 中国語、英語 |
qwen-tts-realtime-latest 現在の機能は qwen-tts-realtime-2025-07-15 と同等です | 最新 | 中国語、英語 | |||||
qwen-tts-realtime-2025-07-15 | スナップショット | 中国語、英語 | |||||
音声からトークンへの変換ルール: 1 秒の音声は 50 トークンに相当します。1 秒未満の音声は 50 トークンとしてカウントされます。
アクセス方法
Qwen リアルタイム音声合成 API は WebSocket プロトコルに基づいています。Java または Python を使用する場合、DashScope SDK を使用して WebSocket の詳細な処理を回避できます。また、任意の言語の WebSocket ライブラリを使用して接続することもできます:
エンドポイント URL
中国本土 (北京): wss://dashscope.aliyuncs.com/api-ws/v1/realtime
国際 (シンガポール): wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime
クエリパラメーター
クエリパラメーターは `model` です。アクセスしたいモデルの名前を指定する必要があります。詳細については、「サポートされるモデル」をご参照ください。
ヘッダー
認証には Bearer トークンを使用します: `Authorization: Bearer DASHSCOPE_API_KEY`
`DASHSCOPE_API_KEY` は Alibaba Cloud Model Studio から取得した API キーです。
次のコードを使用して、Qwen-TTS Realtime API との WebSocket 接続を確立できます。
使用開始
コードを実行する前に、API キーを取得して設定する必要があります。
Python のバージョンは 3.10 以降である必要があります。
次のステップに従って、Realtime API のリアルタイム音声合成機能をすばやくテストします。
ランタイム環境の準備
オペレーティングシステムに基づいて pyaudio をインストールできます。
macOS
brew install portaudio && pip install pyaudioDebian/Ubuntu
sudo apt-get install python3-pyaudio or pip install pyaudioCentOS
sudo yum install -y portaudio portaudio-devel && pip install pyaudioWindows
pip install pyaudioインストールが完了したら、pip を使用して WebSocket 関連の依存関係をインストールできます:
pip install websocket-client==1.8.0 websocketsクライアントの作成
ローカルに
tts_realtime_client.pyという名前の Python ファイルを作成し、次のコードをファイルにコピーできます:音声合成モードの選択
Realtime API は次の 2 つのモードをサポートしています:
server_commit モード
このモードでは、クライアントはテキストを送信するだけです。サーバーはテキストをどのようにセグメント化し、いつ合成するかをインテリジェントに決定します。このモードは、GPS ナビゲーションなど、合成のリズムを手動で制御する必要がない低レイテンシーのシナリオに適しています。
commit モード
このモードでは、クライアントはまずテキストをバッファーに追加し、次にサーバーをアクティブにトリガーして指定されたテキストを合成します。このモードは、ニュース放送など、文の区切りや間を詳細に制御する必要があるシナリオに適しています。
server_commit モード
tts_realtime_client.pyと同じディレクトリに、server_commit.pyという名前の別の Python ファイルを作成し、次のコードをファイルにコピーできます:server_commit.pyを実行すると、Realtime API によってリアルタイムで生成された音声を聞くことができます。commit モード
tts_realtime_client.pyと同じディレクトリに、commit.pyという名前の別の Python ファイルを作成し、次のコードをファイルにコピーできます:commit.pyを実行できます。合成するテキストを複数回入力できます。テキストを入力せずに Enter キーを押すと、スピーカーから Realtime API が返した音声が聞こえます。
インタラクションフロー
server_commit モード
session.update イベントの session.mode を "server_commit" に設定して、このモードを有効にできます。サーバーは、テキストのセグメンテーションと合成のタイミングをインテリジェントに処理します。
インタラクションフローは次のとおりです:
クライアントは
session.updateイベントを送信し、サーバーはsession.createdおよびsession.updatedイベントで応答します。クライアントは
input_text_buffer.appendイベントを送信して、サーバー側のバッファーにテキストを追加します。サーバーはテキストのセグメンテーションと合成のタイミングをインテリジェントに処理し、
response.created、response.output_item.added、response.content_part.added、およびresponse.audio.deltaイベントを返します。サーバーが応答を完了すると、
response.audio.done、response.content_part.done、response.output_item.done、およびresponse.doneイベントを返します。サーバーは
session.finishedイベントを送信してセッションを終了します。
ライフサイクル | クライアントイベント | サーバーイベント |
セッションの初期化 | session.update セッション構成 | session.created セッションが作成されました session.updated セッション構成が更新されました |
ユーザーのテキスト入力 | input_text_buffer.append サーバーにテキストを追加します input_text_buffer.commit サーバーにキャッシュされたテキストをすぐに合成します session.finish これ以上テキスト入力がないことをサーバーに通知します | input_text_buffer.committed サーバーが送信されたテキストを受信しました |
サーバーのオーディオ出力 | なし | response.created サーバーが応答の生成を開始します response.output_item.added 応答で新しい出力コンテンツが利用可能です response.content_part.added アシスタントメッセージに新しい出力コンテンツが追加されます response.audio.delta モデルから増分生成されたオーディオ response.content_part.done アシスタントメッセージのテキストまたはオーディオコンテンツのストリーミングが完了しました response.output_item.done アシスタントメッセージの出力アイテム全体のストリーミングが完了しました response.audio.done オーディオ生成が完了しました response.done 応答が完了しました |
commit モード
session.update イベントの session.mode を "commit" に設定して、このモードを有効にできます。このモードでは、クライアントは応答を取得するためにテキストバッファーをサーバーにアクティブに送信する必要があります。
インタラクションフローは次のとおりです:
クライアントは
session.updateイベントを送信し、サーバーはsession.createdおよびsession.updatedイベントで応答します。クライアントは
input_text_buffer.appendイベントを送信して、サーバー側のバッファーにテキストを追加します。クライアントは
input_text_buffer.commitイベントを送信してバッファーをサーバーにコミットし、session.finishイベントを送信して、それ以上のテキスト入力がないことを示します。サーバーは
response.createdイベントを送信し、応答の生成を開始します。サーバーは
response.output_item.added、response.content_part.added、およびresponse.audio.deltaイベントを送信します。サーバーが応答を終了すると、
response.audio.done、response.content_part.done、response.output_item.done、およびresponse.doneイベントを返します。サーバーは
session.finishedイベントを送信してセッションを終了します。
ライフサイクル | クライアントイベント | サーバーイベント |
セッションの初期化 | session.update セッション構成 | session.created セッションが作成されました session.updated セッション構成が更新されました |
ユーザーのテキスト入力 | input_text_buffer.append バッファーにテキストを追加します input_text_buffer.commit バッファーをサーバーにコミットします input_text_buffer.clear バッファーをクリアします | input_text_buffer.committed サーバーがコミットされたテキストを受信しました |
サーバーのオーディオ出力 | なし | response.created サーバーが応答の生成を開始します response.output_item.added 応答で新しい出力コンテンツが利用可能です response.content_part.added アシスタントメッセージに新しい出力コンテンツが追加されます response.audio.delta モデルから増分生成されたオーディオ response.content_part.done アシスタントメッセージのテキストまたはオーディオコンテンツのストリーミングが完了しました response.output_item.done アシスタントメッセージの出力アイテム全体のストリーミングが完了しました response.audio.done オーディオ生成が完了しました response.done 応答が完了しました |
API リファレンス
サポートされる音声
モデルによってサポートされる音声は異なります。モデルを使用する際、voice リクエストパラメーターを次の表の voice パラメーター 列の対応する値に設定できます:
Qwen3-TTS Realtime
名前 |
| 音声効果 | 説明 | サポートされる言語 |
Cherry | Cherry | 陽気で、フレンドリで、自然な若い女性の声。 | 中国語、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Ethan | Ethan | わずかに北方訛りのある標準中国語。明るく、温かく、エネルギッシュな声。 | 中国語、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Nofish | Nofish | そり舌音を使わないデザイナー。 | 中国語、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Jennifer | Jennifer | プレミアムで映画のようなアメリカ英語の女性の声。 | 中国語、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Ryan | Ryan | リアリズムと緊張感のある、リズミカルでドラマチックな声。 | 中国語、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Katerina | Katerina | 成熟したリズミカルな女性の声。 | 中国語、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Elias | Elias | 学術的な厳密さと明確なストーリーテリングで複雑なトピックを説明します。 | 中国語、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Shanghai-Jada | Jada | 上海出身の活発な女性。 | 中国語 (上海語)、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Beijing-Dylan | Dylan | 北京の胡同で育ったティーンエイジャー。 | 中国語 (北京語)、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Sichuan-Sunny | Sunny | 四川出身の甘い女性の声。 | 中国語 (四川語)、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Nanjing-Li | Li | 忍耐強いヨガの先生。 | 中国語 (南京語)、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Shaanxi-Marcus | Marcus | 陝西出身の誠実で深みのある声。 | 中国語 (陝西語)、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Man Nan-Roy | Roy | 閩南訛りのある、ユーモラスで活発な若い男性の声。 | 中国語 (閩南語)、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Tianjin-Peter | Peter | 天津漫才のツッコミ役の声。 | 中国語 (天津語)、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Cantonese-Rocky | Rocky | オンラインチャット用の機知に富んだユーモラスな男性の声。 | 中国語 (広東語)、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Cantonese-Kiki | Kiki | 香港出身の優しい親友。 | 中国語 (広東語)、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 | |
Sichuan-Eric | Eric | 四川省成都出身の型にはまらない洗練された男性の声。 | 中国語 (四川語)、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語、タイ語 |
Qwen-TTS Realtime
名前 |
| 音声効果 | 説明 | サポートされる言語 |
Cherry | Cherry | 明るく、フレンドリで、誠実な若い女性。 | 中国語、英語 | |
Serena | Serena | 親切な若い女性。 | 中国語、英語 | |
Ethan | Ethan | わずかに北方訛りのある標準中国語。明るく、温かく、エネルギッシュな声。 | 中国語、英語 | |
Chelsie | Chelsie | アニメ風のバーチャル彼女の声。 | 中国語、英語 |