Skip to main content

音声クローニング HTTP API:Qwen-Omni と LiveTranslate

Qwen-Omni の音声の作成、一覧取得、削除、および LiveTranslate の事前作成音声の作成と削除に使用する HTTP パラメーター、レスポンス、例です。

このリファレンスは Qwen-Omni、Qwen-Omni-Realtime、および Qwen-LiveTranslate-Realtime の事前作成音声を対象とします。
対象モデル提供する操作
Qwen-Omni, Qwen-Omni-Realtime音声の作成、一覧取得、削除
Qwen-LiveTranslate-Realtime事前作成音声の作成と削除
まず API キーを取得し、環境変数を設定します。リクエスト例は DASHSCOPE_API_KEY を読み取ります。複数の API で同じ音声を管理する場合は、同じアカウントを使用します。

サービスエンドポイント

Qwen-Omni、Qwen-Omni-Realtime

  • 中国(北京)
  • シンガポール
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/customization
{WorkspaceId} を実際のワークスペース ID に置き換えます。Alibaba Cloud Model Studio コンソールの Workspace Details ページで確認できます。北京とシンガポールでは API キーが異なります。
Alibaba Cloud Model Studio は、中国 (北京) およびシンガポールの各リージョン向けにワークスペース固有ドメインをリリースしました。これらの新しい専用ドメインにより、推論リクエストのパフォーマンスと安定性が向上します。以下の新しいドメインへの移行を推奨します:
  • 中国(北京)リージョン:dashscope.aliyuncs.com から {WorkspaceId}.cn-beijing.maas.aliyuncs.com に移行します。
  • シンガポールリージョン:dashscope-intl.aliyuncs.com から {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com に移行します。
既存のドメインも引き続きすべて利用できます。

Qwen-LiveTranslate-Realtime

中国(北京)リージョン: POST https://dashscope.aliyuncs.com/api/v1/services/audio/tts/customization

リクエストヘッダー

パラメータータイプ必須説明
Authorizationstringはい認証トークン。フォーマットは Bearer <your_api_key> です。<your_api_key> を実際の API キーに置き換えます。
Content-Typestringはいapplication/json に設定します。

音声の要件と料金

Qwen-Omni, Qwen-Omni-Realtime: 入力音声は WAV(16 ビット)、MP3、M4A に対応します。長さは 10~20 秒を推奨し、最大 60 秒、ファイルサイズは 10 MB 未満、サンプリングレートは 24 kHz 以上、モノラルのみです。3 秒以上の連続した明瞭な発話を含め、無音の間隔は 2 秒以下にしてください。録音全体で背景音楽、ノイズ、他の人の声を避けてください。通常の発話音声を使用し、楽曲や歌唱をアップロードしないでください。対応する言語と方言は下記の language パラメーター、録音の推奨事項は音声要件をご覧ください。 クローニング手順、完全な例、料金は、音声クローニングユーザーガイドをご覧ください。 Qwen-LiveTranslate-Realtime: qwen3.8-livetranslate-flash-realtime と qwen3.5-livetranslate-flash-realtime に対応します。このセクションは音声の事前作成を説明します。翻訳中の入力音声からのリアルタイム抽出は、音声設定をご覧ください。事前作成には別途料金がかかり、モデル呼び出しは引き続きトークン使用量で課金されます。詳細は、課金情報をご覧ください。参照音声には公開アクセス可能な URL を使用する必要があります。

リクエスト本文

model string — 必須qwen-voice-enrollment に設定します。input object — 必須

プロパティ

action string — 必須操作:
  • create: 音声を作成します。
  • list: 音声の一覧を取得します(Qwen-Omni と Qwen-Omni-Realtime のみ)。
  • delete: 音声を削除します。
target_model string — 作成時に必須音声を使用する対象モデルです。後続の合成または会話の呼び出しで使用するモデルと一致する必要があります。一致しない場合、呼び出しは失敗します。Qwen-Omni、Qwen-Omni-Realtime:対象の Omni モデル:
  • qwen3.8-omni-flash-realtime
  • qwen3.5-omni-plus-realtime
  • qwen3.5-omni-flash-realtime
  • qwen3.5-omni-plus
  • qwen3.5-omni-flash
Qwen-LiveTranslate-Realtime:後続のセッションで使用するリアルタイム翻訳モデルです。audio object — 作成時に必須参照音声のオブジェクトです。
data string — 必須Qwen-Omni, Qwen-Omni-Realtime: クローニングに使用する音声。録音は録音ガイドに従い、音声要件を満たす必要があります。Qwen-Omni と Qwen-Omni-Realtime では、次の 2 つの方法で音声データを送信できます。
  1. データ URL 形式:data:<mediatype>;base64,<data>
    • <mediatype>:MIME タイプ
      • WAV:audio/wav
      • MP3:audio/mpeg
      • M4A:audio/mp4
    • <data>:音声の Base64 エンコード文字列 Base64 エンコードではファイルサイズが増えます。エンコード後に 10 MB 未満となるよう、元のファイルを小さくしてください。
    • 例:data:audio/wav;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4LjI5LjEwMAAAAAAAAAAAAAAA//PAxABQ/BXRbMPe4IQAhl9
  2. 音声 URL(音声を OSS にアップロードすることを推奨)
    • ファイルサイズは 10 MB 以下にしてください。
    • URL は、認証不要で公開アクセスできる必要があります。
import base64, pathlib

# input.mp3 is the local audio file for voice cloning. Replace with your own file path. Make sure the file meets the audio requirements.
file_path = pathlib.Path("input.mp3")
base64_str = base64.b64encode(file_path.read_bytes()).decode()
data_uri = f"data:audio/mpeg;base64,{base64_str}"
Qwen-LiveTranslate-Realtime: 参照音声の公開 URL。
preferred_name string — 作成時に必須Qwen-Omni、Qwen-Omni-Realtime:識別しやすい音声名を指定します。数字、英大文字、英小文字、アンダースコアのみ使用でき、最大 16 文字です。
このキーワードはクローン音声名に含まれます。たとえば「guanyu」の場合、最終的な音声名は「qwen-omni-vc-guanyu-voice-20250812105009984-838b」となります。
Qwen-LiveTranslate-Realtime: 音声名に含まれる識別子。text string — 作成時は任意対象:Qwen-Omni、Qwen-Omni-Realtime。audio オブジェクトの data フィールド内の音声内容に一致するテキスト。指定すると、サーバーが音声とテキストの一致を検証します。不一致が大きい場合は Audio.PreprocessError を返します。language string — 作成時は任意対象:Qwen-Omni、Qwen-Omni-Realtime。audio オブジェクトの data 音声に対応する言語。対応言語:zh(中国語)、en(英語)、de(ドイツ語)、it(イタリア語)、pt(ポルトガル語)、es(スペイン語)、ja(日本語)、ko(韓国語)、fr(フランス語)、ru(ロシア語)、th(タイ語)、id(インドネシア語)、ar(アラビア語)、cs(チェコ語)、da(デンマーク語)、nl(オランダ語)、fi(フィンランド語)、he(ヘブライ語)、hi(ヒンディー語)、is(アイスランド語)、ms(マレー語)、no(ノルウェー語)、fa(ペルシャ語)、pl(ポーランド語)、sv(スウェーデン語)、tl(タガログ語)、tr(トルコ語)、ur(ウルドゥー語)、vi(ベトナム語)。中国語の方言:Dongbei(東北官話)、Shannxi(陝西方言)、Sichuan(四川方言)、Henan(河南方言)、Changsha(長沙方言)、Tianjin(天津方言)、Hangzhou(杭州方言)、Liaoning(遼寧方言)、Shenyang(瀋陽方言)、Anshan(鞍山方言)。このパラメーターを使用する場合、指定言語はクローニングに使用する実際の音声の言語と一致する必要があります。page_index integer — 一覧取得時は任意ページインデックスです。デフォルト:0。値の範囲:[0, 1000000]。page_size integer — 一覧取得時は任意1 ページあたりの件数です。デフォルト:10。値の範囲:[0, 1000000]。voice string — 削除時に必須削除する音声の ID。Qwen-Omni または Qwen-Omni-Realtime で音声を削除すると、対応する音声クォータが解放されます。
parameters object — 作成時に条件付きで必須対象:Qwen-Omni、Qwen-Omni-Realtime。設定パラメーターです。qwen3.8-omni シリーズのモデルでは、このオブジェクトを使用して voice_clone_mode を指定する必要があります。
voice_clone_mode string — 条件付きで必須音声クローニングモード。qwen3.8-omni シリーズの使用時は必須です。未指定の場合、qwen3.5-omni の talker system instruct モードがデフォルトとなり、従来のサービスとの互換性を保ちます。有効な値:
  • normal:通常モード
  • dialect:方言モード
  • crosslingual:言語間モード
skip_audio_process boolean — 任意デフォルト値:false。音声の前処理をスキップするかどうかを指定します。

リクエストの例

  • 作成
  • 一覧取得
  • 削除
  • qwen3.8-omni-flash-realtime
  • qwen3.8-livetranslate-flash-realtime
cURL の例は音声 URL を使用します。https://xxx.wav を実際のアドレスに置き換えます。Python と Java の例はローカル音声ファイルを読み取ります。input.mp3 を実際のファイルパスに置き換えます。
cURL
# If the environment variable is not set, replace $DASHSCOPE_API_KEY below with your API key.
# ======= Important =======
# The following is the Singapore region URL. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
# API keys differ between regions. Get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
# === Remove these comments before running ===

curl --location --request POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/tts/customization' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "qwen-voice-enrollment",
    "parameters": {"voice_clone_mode": "normal"},
    "input": {
        "action": "create",
        "target_model": "qwen3.8-omni-flash-realtime",
        "preferred_name": "guanyu",
        "audio": {"data": "https://xxx.wav"}
    }
}'

レスポンス本文

request_id stringこのリクエストの一意の識別子。output object作成と一覧取得で返されます。削除ではこのフィールドは返されません。
voice string — 作成時に返却Qwen-Omni, Qwen-Omni-Realtime: 音声名。後続の Omni API 呼び出しの voice パラメーターで使用できます。Qwen-LiveTranslate-Realtime: 作成した音声 ID は、後続の翻訳セッションの voice パラメーターで使用します。target_model string — 作成時に返却Qwen-Omni, Qwen-Omni-Realtime: 音声を使用する omni モデル:
  • qwen3.8-omni-flash-realtime
  • qwen3.5-omni-plus-realtime
  • qwen3.5-omni-flash-realtime
  • qwen3.5-omni-plus
  • qwen3.5-omni-flash
後続の omni API 呼び出しで使用するモデルと一致する必要があります。一致しない場合、合成に失敗します。Qwen-LiveTranslate-Realtime: 音声作成時に指定した対象モデル。voice_list array[object] — 一覧取得時に返却見つかった音声の一覧。
voice string音声名。後続の Omni API 呼び出しの voice パラメーターで使用できます。target_model string音声を使用する omni モデル:
  • qwen3.8-omni-flash-realtime
  • qwen3.5-omni-plus-realtime
  • qwen3.5-omni-flash-realtime
  • qwen3.5-omni-plus
  • qwen3.5-omni-flash
後続の omni API 呼び出しで使用するモデルと一致する必要があります。一致しない場合、合成に失敗します。gmt_create string音声の作成日時。
usage object対象:Qwen-Omni、Qwen-Omni-Realtime。このリクエストの使用量情報。
count integerこのリクエストで実際に課金される「音声作成」の回数。このリクエストの料金は $count × 0.01 です。音声作成時は常に 1 です。一覧取得と削除は無料のため、常に 0 です。

レスポンスの例

  • 作成
  • 一覧取得
  • 削除
  • qwen3.8-omni-flash-realtime
  • qwen3.8-livetranslate-flash-realtime
  • レスポンス構造
{
    "output": {
        "voice": "yourVoice",
        "target_model": "qwen3.8-omni-flash-realtime"
    },
    "usage": {
        "count": 1
    },
    "request_id": "yourRequestId"
}

エラーメッセージ

エラーが発生した場合は、エラーコードを参照して対処してください。

モデル呼び出しでの音声の使用