The SDK uses the China (Beijing) region endpoint by default. To switch to a different region, set dashscope.base_http_api_url before you initialize the client.
Singapore
China (Beijing)
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1Replace {WorkspaceId} with your actual workspace ID.
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1Replace {WorkspaceId} with your actual workspace ID.
Switch to the Singapore region:
Copy
import dashscope# Set at the beginning of your codedashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
Note :
API keys differ between regions. Use the API key that corresponds to the target region.
The region setting is global and affects all DashScope SDK API calls.
Alibaba Cloud Model Studio has released workspace-specific domains for the China (Beijing) and Singapore regions. The new dedicated domains deliver superior performance and higher stability for inference requests. We recommend migrating to the new domains:
China (Beijing): from dashscope.aliyuncs.com to {WorkspaceId}.cn-beijing.maas.aliyuncs.com
Singapore: from dashscope-intl.aliyuncs.com to {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
Replace {WorkspaceId} with your actual Workspace ID. The existing domains remain fully functional.
Package path: dashscope.audio.tts_v2.VoiceEnrollmentServicePurpose: Manage the lifecycle of Qwen-Audio-TTS/CosyVoice cloned voices, including creating, querying, updating, and deleting voices.
The text-to-speech (TTS) model that drives the cloned voice. It must match the model you specify when calling the TTS API; otherwise, synthesis fails.
prefix
str
Yes
A prefix for the voice name. Only alphanumeric characters are allowed, with a maximum length of 10 characters. The resulting voice name follows this format: {target_model}-{prefix}-{unique_id}.
url
str
Yes
The URL of the audio file for voice cloning. The URL must be publicly accessible.
language_hints
List[str]
No
Applies only to Qwen-Audio-TTS/CosyVoice voice cloning (when model is voice-enrollment). Supported only by qwen-audio-3.0-tts-plus,qwen-audio-3.0-tts-flash, cosyvoice-v3.5-plus, v3.5-flash, v3-plus, and v3-flash.
Helps the model identify the language of the sample audio to extract voice features more accurately and improve cloning quality. If the specified language doesn't match the actual audio language (for example, setting en when the audio is in Chinese), the system ignores this value and detects the language automatically.
This parameter is an array, but the current version processes only the first element.
Applies only to Qwen-Audio-TTS/CosyVoice voice cloning (when model is voice-enrollment). Supported only by qwen-audio-3.0-tts-plus,qwen-audio-3.0-tts-flash, cosyvoice-v3.5-plus, v3.5-flash, and v3-flash.
The maximum duration (in seconds) of the reference audio after preprocessing. Valid values: [3.0, 30.0].
Default: 10.0.
enable_preprocess
bool
No
Applies only to Qwen-Audio-TTS/CosyVoice voice cloning (when model is voice-enrollment). Supported only by qwen-audio-3.0-tts-plus,qwen-audio-3.0-tts-flash, cosyvoice-v3.5-plus, v3.5-flash, and v3-flash.
Whether to enable audio preprocessing (noise reduction, audio enhancement, and volume normalization). Enable this for recordings with background noise. Disable it for recordings in quiet environments to preserve the original voice characteristics.
Default: false.
enable_volume_normalization
bool
No
Specifies whether to normalize the volume of the sample audio used for voice cloning. Pass this parameter directly as a keyword argument. Default value: False. If you set this parameter to True, the volume of audio synthesized with the created voice may differ from that of audio synthesized with a voice created with this parameter disabled.
import dashscopefrom dashscope.audio.tts_v2 import VoiceEnrollmentService# The following uses the Singapore region endpoint. Replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.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()# Avoid frequent calls. Each call creates a new voice, and you can't create# more after reaching the quota limit.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"Request ID: {service.get_last_request_id()}")print(f"Voice ID: {voice_id}")
import dashscopefrom dashscope.audio.tts_v2 import VoiceEnrollmentService# The following uses the Singapore region endpoint. Replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"service = VoiceEnrollmentService()# Filter by prefix, or set to None to list all voicesvoices = service.list_voices(prefix='myvoice', page_index=0, page_size=10)print(f"Request ID: {service.get_last_request_id()}")print(f"Found voices: {voices}")
import dashscopefrom dashscope.audio.tts_v2 import VoiceEnrollmentService# The following uses the Singapore region endpoint. Replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.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"Request ID: {service.get_last_request_id()}")print(f"Voice Details: {voice_details}")
import dashscopefrom dashscope.audio.tts_v2 import VoiceEnrollmentService# The following uses the Singapore region endpoint. Replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.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"Update submitted. Request ID: {service.get_last_request_id()}")
import dashscopefrom dashscope.audio.tts_v2 import VoiceEnrollmentService# The following uses the Singapore region endpoint. Replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.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"Deletion submitted. Request ID: {service.get_last_request_id()}")