O SDK usa o endpoint da região China (Beijing) por padrão. Para mudar para outra região, modifique Constants.baseHttpApiUrl antes da inicialização.
Singapore
China (Beijing)
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1Substitua {WorkspaceId} pelo seu workspace ID real.
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1Substitua {WorkspaceId} pelo seu workspace ID real.
Mudar para a região Singapore:
Copy
import com.alibaba.dashscope.utils.Constants;// Set at the beginning of your codeConstants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
Note :
As chaves de API variam conforme a região. Use a chave correspondente à região de destino.
A configuração de região é global e afeta todas as chamadas de API do DashScope SDK.
O Alibaba Cloud Model Studio lançou domínios específicos por workspace para as regiões China (Beijing) e Singapore. Os novos domínios dedicados oferecem desempenho superior e maior estabilidade para solicitações de inferência. Recomendamos migrar para os novos domínios:
China (Beijing): de dashscope.aliyuncs.com para {WorkspaceId}.cn-beijing.maas.aliyuncs.com
Singapore: de dashscope-intl.aliyuncs.com para {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
Substitua {WorkspaceId} pelo seu Workspace ID real. Os domínios existentes permanecem totalmente funcionais.
Pacote: com.alibaba.dashscope.audio.ttsv2.enrollment.VoiceEnrollmentServiceFinalidade: Gerencia o ciclo de vida das vozes clonadas Qwen-Audio-TTS/CosyVoice (criação, listagem, recuperação, atualização e exclusão).
Modelo de text-to-speech (TTS) que aciona a voz clonada. Deve corresponder ao modelo especificado na chamada da API TTS; caso contrário, a síntese falhará.
prefix
String
Yes
Prefixo para o nome da voz. Permite apenas caracteres alfanuméricos, com comprimento máximo de 10 caracteres. O nome final da voz segue este formato: {target_model}-{prefix}-{unique_id}.
url
String
Yes
URL do arquivo de áudio para clonagem de voz. A URL deve ser acessível publicamente.
Pacote: com.alibaba.dashscope.audio.ttsv2.enrollment.VoiceEnrollmentParamCrie objetos de parâmetro usando o padrão builder.
Method
Type
Description
model(String)
String
Modelo de clonagem de voz. O valor deve ser "voice-enrollment".
languageHints(List<String>)
List<String>
Aplica-se apenas à clonagem de voz Qwen-Audio-TTS/CosyVoice (quando o modelo é voice-enrollment). Compatível somente com qwen-audio-3.0-tts-plus,qwen-audio-3.0-tts-flash, cosyvoice-v3.5-plus, v3.5-flash, v3-plus e v3-flash.
Ajuda o modelo a identificar o idioma do áudio de amostra para extrair características vocais com mais precisão e melhorar a qualidade da clonagem. Se o idioma especificado não corresponder ao idioma real do áudio (por exemplo, definir en quando o áudio está em chinês), o sistema ignora esse valor e detecta o idioma automaticamente.
Este parâmetro é um array, mas a versão atual processa apenas o primeiro elemento.
Aplica-se apenas à clonagem de voz Qwen-Audio-TTS/CosyVoice (quando o modelo é voice-enrollment). Compatível somente com qwen-audio-3.0-tts-plus,qwen-audio-3.0-tts-flash, cosyvoice-v3.5-plus, v3.5-flash e v3-flash.
Duração máxima (em segundos) do áudio de referência após o pré-processamento. Valores válidos: [3,0, 30,0].
Padrão: 10,0.
parameter(String, Object)
Object
Define parâmetros personalizados, como parameter("language_hints", Arrays.asList("en")), parameter("max_prompt_audio_length", 10.0f), parameter("enable_preprocess", false) e parameter("enable_volume_normalization", "false").
Aplica-se apenas à clonagem de voz Qwen-Audio-TTS/CosyVoice (quando o modelo é voice-enrollment). Compatível somente com qwen-audio-3.0-tts-plus,qwen-audio-3.0-tts-flash, cosyvoice-v3.5-plus, v3.5-flash e v3-flash.
Indica se o pré-processamento de áudio deve ser ativado (redução de ruído, aprimoramento de áudio e normalização de volume). Ative esta opção para gravações com ruído de fundo. Desative-a para gravações em ambientes silenciosos e preservar as características originais da voz.
Padrão: false.
enable_volume_normalization
String
No
Define se o volume do áudio de amostra usado na clonagem de voz será normalizado. Os valores válidos são "true" e "false". Quando ativado, o áudio sintetizado com a voz criada pode ter volume diferente daquele sintetizado com uma voz criada com este parâmetro desativado. Padrão: "false".
Este exemplo requer a biblioteca de terceiros com.google.gson.Gson.
Copy
import com.alibaba.dashscope.audio.ttsv2.enrollment.Voice;import com.alibaba.dashscope.audio.ttsv2.enrollment.VoiceEnrollmentService;import com.alibaba.dashscope.exception.InputRequiredException;import com.alibaba.dashscope.exception.NoApiKeyException;import com.alibaba.dashscope.utils.Constants;import com.google.gson.Gson;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class Main { public static String apiKey = System.getenv("DASHSCOPE_API_KEY"); // Replace with your API key if not using an environment variable private static String prefix = "myvoice"; // Replace with your actual value private static final Logger logger = LoggerFactory.getLogger(Main.class); public static void main(String[] args) throws NoApiKeyException, InputRequiredException { // The following uses the Singapore region. Replace {WorkspaceId} with your actual workspace ID. For other regions, modify the URL accordingly. Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"; VoiceEnrollmentService service = new VoiceEnrollmentService(apiKey); // List voices Voice[] voices = service.listVoice(prefix, 0, 10); logger.info("List successful. Request ID: {}", service.getLastRequestId()); logger.info("Voices Details: {}", new Gson().toJson(voices)); }}
Este exemplo requer a biblioteca de terceiros com.google.gson.Gson.
Copy
import com.alibaba.dashscope.audio.ttsv2.enrollment.Voice;import com.alibaba.dashscope.audio.ttsv2.enrollment.VoiceEnrollmentService;import com.alibaba.dashscope.exception.InputRequiredException;import com.alibaba.dashscope.exception.NoApiKeyException;import com.alibaba.dashscope.utils.Constants;import com.google.gson.Gson;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class Main { public static String apiKey = System.getenv("DASHSCOPE_API_KEY"); // Replace with your API key if not using an environment variable private static String voiceId = "qwen-audio-3.0-tts-flash-myvoice-xxx"; // Replace with your actual value private static final Logger logger = LoggerFactory.getLogger(Main.class); public static void main(String[] args) throws NoApiKeyException, InputRequiredException { // The following uses the Singapore region. Replace {WorkspaceId} with your actual workspace ID. For other regions, modify the URL accordingly. Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"; VoiceEnrollmentService service = new VoiceEnrollmentService(apiKey); Voice voice = service.queryVoice(voiceId); logger.info("Query successful. Request ID: {}", service.getLastRequestId()); logger.info("Voice Details: {}", new Gson().toJson(voice)); }}
import com.alibaba.dashscope.audio.ttsv2.enrollment.VoiceEnrollmentService;import com.alibaba.dashscope.exception.InputRequiredException;import com.alibaba.dashscope.exception.NoApiKeyException;import com.alibaba.dashscope.utils.Constants;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class Main { public static String apiKey = System.getenv("DASHSCOPE_API_KEY"); // Replace with your API key if not using an environment variable private static String fileUrl = "https://your-audio-file-url"; // Replace with your actual value private static String voiceId = "qwen-audio-3.0-tts-flash-myvoice-xxx"; // Replace with your actual value private static final Logger logger = LoggerFactory.getLogger(Main.class); public static void main(String[] args) throws NoApiKeyException, InputRequiredException { // The following uses the Singapore region. Replace {WorkspaceId} with your actual workspace ID. For other regions, modify the URL accordingly. Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"; VoiceEnrollmentService service = new VoiceEnrollmentService(apiKey); // Update the voice service.updateVoice(voiceId, fileUrl); logger.info("Update submitted. Request ID: {}", service.getLastRequestId()); }}
import com.alibaba.dashscope.audio.ttsv2.enrollment.VoiceEnrollmentService;import com.alibaba.dashscope.exception.InputRequiredException;import com.alibaba.dashscope.exception.NoApiKeyException;import com.alibaba.dashscope.utils.Constants;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class Main { public static String apiKey = System.getenv("DASHSCOPE_API_KEY"); // Replace with your API key if not using an environment variable private static String voiceId = "qwen-audio-3.0-tts-flash-myvoice-xxx"; // Replace with your actual value private static final Logger logger = LoggerFactory.getLogger(Main.class); public static void main(String[] args) throws NoApiKeyException, InputRequiredException { // The following uses the Singapore region. Replace {WorkspaceId} with your actual workspace ID. For other regions, modify the URL accordingly. Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"; VoiceEnrollmentService service = new VoiceEnrollmentService(apiKey); // Delete the voice service.deleteVoice(voiceId); logger.info("Deletion submitted. Request ID: {}", service.getLastRequestId()); }}