Skip to main content

Qwen-Audio-TTS クライアントイベント

run-task

音声合成タスクを開始し、モデル、音声、サンプルレートなどのパラメーターを設定します。 送信タイミング:WebSocket 接続が確立された直後。 応答イベント:サーバーはタスク開始イベントを返します。後続のコマンドを送信する前に、このイベントを待つ必要があります。
header object(必須)

プロパティ

action string(必須)コマンドのタイプ。run-task に設定します。task_id string(必須)クライアントが生成した UUID フォーマットのタスク ID。この ID は後続のイベントを関連付け、continue-task および finish-task コマンドの task_id と一致する必要があります。streaming string(必須)duplex に設定します。
payload object(必須)

プロパティ

task_group string(必須)タスクグループ。audio に設定します。task string(必須)タスクタイプ。tts に設定します。function string(必須)機能タイプ。SpeechSynthesizer に設定します。model string(必須)モデル名。input object(必須)空のオブジェクト {} に設定します。continue-task コマンドを使用して、合成するテキストを送信します。parameters object(必須)音声合成のパラメーター。

プロパティ

text_type string(必須)PlainText に設定します。voice string(必須)音声合成に使用する音声。
  • システム音声:Qwen-Audio-TTS 音声リストをご参照ください。
  • クローン音声:音声クローニングによって作成されたカスタム音声です。
  • カスタム音声:音声デザインによって作成されたカスタム音声です。
format string(任意)音声エンコーディングフォーマット。有効な値:
  • pcm
  • wav
  • mp3 (デフォルト)
  • opus
sample_rate integer(任意)音声サンプルレート (単位:Hz)。有効な値:8000、16000、22050 (デフォルト)、24000、44100、48000。volume integer(任意)音量レベル。デフォルト値:50。有効な値の範囲:[0, 100]。rate float(任意)話速。デフォルト値:1.0。有効な値の範囲:[0.5, 2.0]。pitch float(任意)ピッチ。デフォルト値:1.0。有効な値の範囲:[0.5, 2.0]。bit_rate integer(任意)オーディオビットレート (kbps) です。 オーディオ形式が mp3 または opus の場合、bit_rate を使用してビットレートを調整します。デフォルト値:32。有効な値の範囲:[6, 510]。enable_ssml boolean(任意)SSML を有効にするかどうかを指定します。デフォルト値:false。true に設定した場合、continue-task コマンドは 1 回のみ使用できます。SSML の使用制限 (サポートされているモデル、音声、API) については、「制限事項」をご参照ください。word_timestamp_enabled boolean(任意)単語レベルのタイムスタンプを有効にするかどうかを指定します。デフォルト値:false。ストリーミング出力モードでのみ利用可能です。クローン音声に対応しています。対応するシステム音声については、Qwen-Audio-TTS 音声リストをご参照ください。seed integer(任意)合成出力のバリエーションを制御するためのランダムシード。モデルのバージョン、テキスト、音声、などのパラメーターが変更されない場合、同じシードを使用すると同一の結果が得られます。デフォルト値:0。有効な値の範囲:[0, 65535]。language_hints array[string](任意)
  • このパラメーターは配列ですが、現在のバージョンでは最初の要素のみが処理されます。値を 1 つだけ渡してください。
  • このパラメーターは、音声合成のターゲット言語を指定します。これは、音声クローニングで使用される音声サンプルの言語とは無関係です。クローニングタスクのソース言語を設定するには、音声クローニング API リファレンスをご参照ください。
音声合成のターゲット言語を指定して、出力品質を向上させます。数字の発音、略語の展開、記号の読み方、またはマイナー言語の合成が期待通りでない場合にこのパラメーターを使用します。例:
  • 予期しない数字の発音:「hello, this is 110」が期待される中国語の発音ではなく、「hello, this is one zero」と読み上げられます
  • 不正確な記号の発音:「@」が「at」ではなく中国語での読み方で読み上げられます
  • マイナー言語の合成品質が低く、不自然な結果になる
  • zh:中国語
  • en:英語
  • fr:フランス語
  • de:ドイツ語
  • ja:日本語
  • ko:韓国語
  • ru:ロシア語
  • pt:ポルトガル語
  • th:タイ語
  • id:インドネシア語
  • vi:ベトナム語
  • es:スペイン語
  • it:イタリア語
  • ms:マレーシア語
  • fil:フィリピン語
  • ar:アラビア語
  • other:その他の言語(qwen-audio-3.1-tts-flash でサポート) ブルガリア語、オランダ語、ハンガリー語、ルーマニア語、デンマーク語、クロアチア語、ギリシャ語、チェコ語、ノルウェー語、スウェーデン語、ヒンディー語、スロバキア語、フィンランド語、ウルドゥー語、セルビア語、スペイン語 (メキシコ)、リトアニア語、ラトビア語、トルコ語、ペルシア語、ヘブライ語、モンゴル語、スロベニア語、アゼルバイジャン語、ポーランド語、カタロニア語、クメール語、ポルトガル語 (ブラジル)、ラオ語、ジョージア語、アフリカーンス語、ネパール語、ベラルーシ語、マラヤーラム語、ルクセンブルク語、アルバニア語、タミル語、シンハラ語、テルグ語、エストニア語、セブアノ語、ボスニア語、ミャンマー語、アルメニア語、ラテン語、アイスランド語、マルタ語、スワヒリ語、カザフ語、セーシェル・クレオール語、ウクライナ語。
instruction string(任意)合成中の方言、感情、または声のキャラクターを制御するための指示を設定します。詳細な使用法については、「指示制御」をご参照ください。enable_aigc_tag boolean(任意)生成する音声に AIGC ウォーターマークを埋め込むかどうかを指定します。true に設定すると、サポートされている形式 (wav、mp3、opus) の音声ファイルにウォーターマークが埋め込まれます。デフォルト値:false。aigc_propagator string(任意)コンテンツ伝播者を識別する、AIGC 透かしの ContentPropagator フィールドを設定します。enable_aigc_tag が true の場合にのみ有効になります。デフォルト値:Alibaba Cloud UID。aigc_propagate_id string(任意)AIGC ウォーターマークに PropagateID フィールドを設定し、特定の伝播アクションを一意に識別します。enable_aigc_tag が true の場合にのみ有効になります。デフォルト値:現在の音声合成リクエストのリクエスト ID。hot_fix object(任意)合成前に適用する発音の修正とテキスト置換を設定します。パラメーター:
  • pronunciation:カスタムの発音。不正確なデフォルトの発音を修正するために、単語のピンイン注釈を指定します。
  • replace:テキスト置換。合成前に、指定した単語を対象のテキストに置き換えます。置換後のテキストが、実際の合成入力として使用されます。
例:
"hot_fix": {
  "pronunciation": [
    {"weather": "tian1 qi4"}
  ],
  "replace": [
    {"today": "gold day"}
  ]
}
{
    "header": {
        "action": "run-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "task_group": "audio",
        "task": "tts",
        "function": "SpeechSynthesizer",
        "model": "qwen-audio-3.0-tts-flash",
        "parameters": {
            "text_type": "PlainText",
            "voice": "longanlingxi",
            "format": "mp3",
            "sample_rate": 22050,
            "volume": 50,
            "rate": 1.0,
            "pitch": 1.0,
            "enable_ssml": false
        },
        "input": {}
    }
}

continue-task

合成するテキストを送信します。テキストは一度に、または複数のセグメントに分けて送信できます。 送信タイミング:サーバーからタスク開始イベントを受信した後。 制限事項:
  • メッセージあたり最大 20,000 文字
  • 累計で最大 200,000 文字
  • 送信間隔は 23 秒を超えてはなりません。超えた場合、接続はタイムアウトします。
header object(必須)

プロパティ

action string(必須)コマンドのタイプ。continue-task に設定します。task_id string(必須)UUID フォーマットのタスク ID。run-task で指定した task_id と一致する必要があります。streaming string(必須)duplex に設定します。
payload object(必須)

プロパティ

input object(必須)合成するテキストを含みます。text string(必須)合成するテキスト。メッセージあたり最大 20,000 文字、累計で最大 200,000 文字。
{
    "header": {
        "action": "continue-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "input": {
            "text": "Before my bed, moonlight shines bright, I suspect it's frost upon the ground."
        }
    }
}

finish-task

すべてのテキストが送信されたことをサーバーに通知し、タスクの完了を要求します。 送信タイミング:すべてのテキストを送信した直後。 応答イベント:サーバーはタスク完了イベントを返します。
header object(必須)

プロパティ

action string(必須)コマンドのタイプ。finish-task に設定します。task_id string(必須)UUID フォーマットのタスク ID。run-task で指定した task_id と一致する必要があります。streaming string(必須)duplex に設定します。
payload object(必須)

プロパティ

input object(必須)タスクを正常に完了させるには、{} に設定します。現在の合成ターンをキャンセルするには、directive を含めます。directive string(任意)タスクの終了方法を制御します。現在、cancel のみがサポートされています。cancel に設定すると、現在の合成ターンはキャンセルされ、サーバーはそれ以上オーディオを生成することなく、すぐに task-finished イベントを返します。キャンセル後は、再接続せずに新しいrun-task イベントを送信することで、同じ WebSocket 接続上で新しい合成タスクを開始できます。
{
    "header": {
        "action": "finish-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "input": {}
    }
}
タスクのキャンセル例:
{
    "header": {
        "action": "finish-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "input": {
            "directive": "cancel"
        }
    }
}