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

Alibaba Cloud Model Studio:音声クローニング Python SDK リファレンス

最終更新日:Oct 21, 2026

Qwen-Audio-TTS/Qwen-Audio-Realtime/CosyVoice の音声クローニングは、DashScope Python SDK を使用してアクセスできます。

サービスエンドポイント

SDK はデフォルトで 中国 (北京) リージョン のエンドポイントを使用します。別のリージョンに切り替えるには、クライアントを初期化する前に dashscope.base_http_api_url を設定します。

注記

  • API キーはリージョンごとに異なります。対象リージョンに対応する API キーを使用してください。
  • リージョン設定はグローバルに適用され、すべての DashScope SDK API コールに影響します。

シンガポール

https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

{WorkspaceId} を実際の ワークスペース ID に置き換えてください。

中国 (北京)

https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1

{WorkspaceId} を実際の ワークスペース ID に置き換えてください。

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

  • 中国 (北京): dashscope.aliyuncs.com から {WorkspaceId}.cn-beijing.maas.aliyuncs.com へ
  • シンガポール: dashscope-intl.aliyuncs.com から {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com へ

VoiceEnrollmentService クラス

パッケージパス: dashscope.audio.tts_v2.VoiceEnrollmentService

目的::Qwen-Audio-TTS、Qwen-Audio-Realtime、CosyVoice のクローン音色のライフサイクル (作成、照会、更新、削除) を管理します。

コンストラクター

VoiceEnrollmentService()

create_voice() — 音声の作成

メソッドシグネチャ:
def create_voice(self, target_model: str, prefix: str, url: str,
                 language_hints: List[str] = None,
                 max_prompt_audio_length: float = None,
                 **kwargs) -> str
パラメーター:
パラメータータイプ必須説明

target_model

str

はい

音色を使用する対象モデル。後続のリクエストでその音色を使用するモデルと一致する必要があります。一致しない場合、リクエストは失敗します。

prefix

str

はい

音声名のプレフィックス。英数字のみ使用できます。最大長は 10 文字です。生成される音声名は、 {target_model}-{prefix}-{unique_id} という形式になります。

url

str

はい

音声クローニングに使用する参照音声。公開アクセス可能な URL または data:audio/wav;base64,... 形式の Base64 Data URI を指定できます。

language_hints

List[str]

いいえ

モデルがサンプル音声の言語を識別し、音声特徴をより正確に抽出してクローニングの品質を向上させるのに役立ちます。指定した言語が実際の音声の言語と一致しない場合 (たとえば、音声が中国語なのに en を設定した場合)、システムはこの値を無視し、言語を自動的に検出します。

このパラメーターは配列で、要素数は 1 である必要があります。

注記対象モデル:qwen-audio-3.1-tts-plus、qwen-audio-3.1-tts-flash、qwen-audio-3.0-tts-plus、qwen-audio-3.0-tts-flash、qwen-audio-3.1-realtime-plus、qwen-audio-3.0-realtime-plus、qwen-audio-3.0-realtime-flash、cosyvoice-v3.5-plus、cosyvoice-v3.5-flash、cosyvoice-v3-plus、cosyvoice-v3-flash。

クリックしてモデル別の対応言語を表示

  • qwen-audio-3.1-tts-plus、qwen-audio-3.1-tts-flash、qwen-audio-3.0-tts-plus、qwen-audio-3.0-tts-flash、qwen-audio-3.1-realtime-plus、qwen-audio-3.0-realtime-plus、qwen-audio-3.0-realtime-flash:

    • zh:中国語
    • en:英語
    • fr:フランス語
    • de:ドイツ語
    • ja:日本語
    • ko:韓国語
    • ru:ロシア語
    • pt:ポルトガル語
    • th:タイ語
    • id:インドネシア語
    • vi:ベトナム語
    • it:イタリア語
    • es:スペイン語
    • ms:マレーシア語
    • fil:フィリピン語
    • ar:アラビア語
  • cosyvoice-v3-plus:

    • zh:中国語
    • en:英語
    • fr:フランス語
    • de:ドイツ語
    • ja:日本語
    • ko:韓国語
    • ru:ロシア語
  • cosyvoice-v3.5-plus、cosyvoice-v3.5-flash、cosyvoice-v3-flash:

    • zh:中国語
    • en:英語
    • fr:フランス語
    • de:ドイツ語
    • ja:日本語
    • ko:韓国語
    • ru:ロシア語
    • pt:ポルトガル語
    • th:タイ語
    • id:インドネシア語
    • vi:ベトナム語

デフォルト: ["zh"]。

max_prompt_audio_length

float

いいえ

前処理後の参照音声の最大長 (秒単位)。有効な値: [3.0, 30.0]。

デフォルト: 10.0。

注記対象モデル:qwen-audio-3.1-tts-plus、qwen-audio-3.1-tts-flash、qwen-audio-3.0-tts-plus、qwen-audio-3.0-tts-flash、qwen-audio-3.1-realtime-plus、qwen-audio-3.0-realtime-plus、qwen-audio-3.0-realtime-flash、cosyvoice-v3.5-plus、cosyvoice-v3.5-flash、cosyvoice-v3-flash。

enable_preprocess

bool

いいえ

音声の前処理 (ノイズリダクション、音質向上、音量正規化) を有効にするかどうか。バックグラウンドノイズのある録音の場合は有効にします。静かな環境での録音の場合は、元の音声特徴を保持するために無効にします。

デフォルト: false。

注記対象モデル:qwen-audio-3.1-tts-plus、qwen-audio-3.1-tts-flash、qwen-audio-3.0-tts-plus、qwen-audio-3.0-tts-flash、qwen-audio-3.1-realtime-plus、qwen-audio-3.0-realtime-plus、qwen-audio-3.0-realtime-flash、cosyvoice-v3.5-plus、cosyvoice-v3.5-flash、cosyvoice-v3-flash。

enable_volume_normalization

bool

いいえ

音声クローニングに使用されるサンプル音声の音量を正規化するかどうかを指定します。このパラメーターはキーワード引数として直接渡します。デフォルト値: False。このパラメーターを True に設定した場合、作成された音声で合成されるオーディオの音量は、このパラメーターを無効にした場合と異なる可能性があります。

戻り値: str — 音声 ID (voice_id)。

list_voices() — 音声のリスト表示

メソッドシグネチャ:
def list_voices(self, prefix: str = None, page_index: int = 0, page_size: int = 10) -> list
パラメーター:
パラメータータイプ必須説明

prefix

str

いいえ

音声名のプレフィックスでフィルタリングします。

page_index

int

いいえ

ページインデックス。デフォルト: 0。

page_size

int

いいえ

ページサイズ。デフォルト: 10。

戻り値: list — 音声のリスト。

query_voice() — 音声詳細の照会

メソッドシグネチャ:
def query_voice(self, voice_id: str) -> dict
パラメーター:
パラメータータイプ必須説明

voice_id

str

はい

照会対象の音声 ID。

戻り値: dict — 音声の詳細。

update_voice() — 音声の更新

メソッドシグネチャ:
def update_voice(self, voice_id: str, url: str) -> None
パラメーター:
パラメータータイプ必須説明

voice_id

str

はい

更新対象の音声 ID。

url

str

はい

新しい参照音声。公開アクセス可能な URL または data:audio/wav;base64,... 形式の Base64 Data URI を指定できます。

delete_voice() — 音声の削除

メソッドシグネチャ:
def delete_voice(self, voice_id: str) -> None
パラメーター:
パラメータータイプ必須説明

voice_id

str

はい

削除対象の音声 ID。

コード例

以下の例では、VoiceEnrollmentService クラスを使用して一般的な音声クローニング操作を行う方法を示します。

音声の作成

import dashscope
from dashscope.audio.tts_v2 import VoiceEnrollmentService
# シンガポールリージョンのエンドポイントを使用する例です。"{WorkspaceId}" を実際のワークスペース ID に置き換えてください。
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"

TARGET_MODEL = 'qwen-audio-3.0-tts-flash'
voice_prefix = 'myvoice'
url = 'https://your-audio-file-url'
service = VoiceEnrollmentService()

# 頻繁な呼び出しは避けてください。呼び出しごとに新しい音声が作成され、クォータ制限に達するとそれ以上の作成はできなくなります。
voice_id = service.create_voice(
    target_model=TARGET_MODEL,
    prefix=voice_prefix,
    url=url,
    max_prompt_audio_length=10,
    # enable_preprocess=False,
    # enable_volume_normalization=True
)

print(f"リクエスト ID: {service.get_last_request_id()}")
print(f"音声 ID: {voice_id}")

ローカルの WAV ファイルを使用する場合は、上記の url への代入を以下のコードに置き換えてから create_voice を呼び出します。音声の更新時も、Data URI を update_voice の url パラメーターに指定します。sample.wav をローカル音声ファイルのパスに置き換えてください。

import base64
from pathlib import Path

url = "data:audio/wav;base64," + base64.b64encode(
    Path("sample.wav").read_bytes()
).decode("ascii")

音声のリスト表示

import dashscope
from dashscope.audio.tts_v2 import VoiceEnrollmentService
# シンガポールリージョンのエンドポイントを使用する例です。"{WorkspaceId}" を実際のワークスペース ID に置き換えてください。
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"

service = VoiceEnrollmentService()

# プレフィックスでフィルタリングします。None を指定すると、すべての音声がリストされます。
voices = service.list_voices(prefix='myvoice', page_index=0, page_size=10)

print(f"リクエスト ID: {service.get_last_request_id()}")
print(f"見つかった音声: {voices}")

特定音声の照会

import dashscope
from dashscope.audio.tts_v2 import VoiceEnrollmentService
# シンガポールリージョンのエンドポイントを使用する例です。"{WorkspaceId}" を実際のワークスペース ID に置き換えてください。
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"

service = VoiceEnrollmentService()
voice_id = 'qwen-audio-3.0-tts-flash-myvoice-xxxxxxxx'

voice_details = service.query_voice(voice_id=voice_id)

print(f"リクエスト ID: {service.get_last_request_id()}")
print(f"音声の詳細: {voice_details}")

音声の更新

import dashscope
from dashscope.audio.tts_v2 import VoiceEnrollmentService
# シンガポールリージョンのエンドポイントを使用する例です。"{WorkspaceId}" を実際のワークスペース ID に置き換えてください。
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"

service = VoiceEnrollmentService()
service.update_voice(
    voice_id='qwen-audio-3.0-tts-flash-myvoice-xxxxxxxx',
    url='https://your-new-audio-file-url'
)
print(f"更新が送信されました。リクエスト ID: {service.get_last_request_id()}")

音声の削除

import dashscope
from dashscope.audio.tts_v2 import VoiceEnrollmentService
# シンガポールリージョンのエンドポイントを使用する例です。"{WorkspaceId}" を実際のワークスペース ID に置き換えてください。
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"

service = VoiceEnrollmentService()
service.delete_voice(voice_id='qwen-audio-3.0-tts-flash-myvoice-xxxxxxxx')
print(f"削除が送信されました。リクエスト ID: {service.get_last_request_id()}")