Design de voz
Criar vozes personalizadas de descrições de texto para uso com CosyVoice Modelos.
Depois de criar uma voz, use o nome de voz retornado com [CosyVoice TTS] (/developer-guides/speech/tts) ou [Realtime streaming TTS] (/developer-guides/speech/realtime-streaming).
O target_model Em design de voz deve combinar com model em síntese. Modelos desiguais causam falhas.
Como funciona
- Escreva uma descrição de voz.
voice_prompt) e texto de pré-visualização (preview_text). - Envie um pedido de criação de voz com seu
target_model. - A API devolve um nome de voz e áudio de visualização codificados pela Base64. Descodificar a string Base64 para obter o arquivo de áudio (formato WAV).
- Ouça a prévia. Se satisfeito, use o nome da voz para síntese. Caso contrário, crie uma nova voz.
-Começo rápido.
Pré-requisitos
- [Pegue uma chave API] (/api-reference/preparation/api-key) e definir o
DASHSCOPE_API_KEYVariável ambiente.
Ponto final
Todas as operações de design de voz usam um único ponto final:
POST https://maas.qwencloudapi.com/api/v1/services/audio/tts/customization
CosyVoice Design de voz
O exemplo a seguir mostra como criar um CosyVoice voz de uma descrição de texto e usá-la para a síntese de fala.
CosyVoice O Voice Design está disponível apenas na região de Pequim (série v3.5 e série v3).
Passo 1: Crie uma voz a partir de uma descrição
Ligue para a API com dois parâmetros: voice_prompt para a descrição da voz, e preview_text para o texto lido em voz alta no áudio da prévia.
curl -X POST 'https://maas.qwencloudapi.com/api/v1/services/audio/tts/customization' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "voice-enrollment",
"input": {
"action": "create_voice",
"target_model": "cosyvoice-v3.5-plus",
"voice_prompt": "A composed middle-aged male announcer with a deep, rich and magnetic voice, a steady speaking speed and clear articulation, is suitable for news broadcasting or documentary commentary.",
"preview_text": "Dear listeners, hello everyone. Welcome to the evening news.",
"prefix": "announcer"
},
"parameters": {
"sample_rate": 24000,
"response_format": "wav"
}
}'
Esquema: discurso sintético com a voz projetada
No seguinte pedido, use o voice_id O valor retornado no passo anterior.
# coding=utf-8
import dashscope
from dashscope.audio.tts_v2 import *
import os
# Get an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# If you have not configured the environment variable, replace the following line with your API key: dashscope.api_key = "sk-xxx"
dashscope.api_key = os.environ.get('DASHSCOPE_API_KEY')
dashscope.base_websocket_api_url='wss://maas.qwencloudapi.com/api-ws/v1/inference'
# Use the same model for voice design and speech synthesis
model = "cosyvoice-v3.5-plus"
# Replace the voice parameter with the custom voice generated by voice design
voice = "voice_id"
# Instantiate SpeechSynthesizer, passing the model, voice, and other request parameters in the constructor
synthesizer = SpeechSynthesizer(model=model, voice=voice)
# Send text for synthesis and get binary audio
audio = synthesizer.call("What is the weather like today?")
# Establishing the WebSocket connection is required when sending text for the first time, so the first-package latency includes the connection setup time
print('[Metric] requestId: {}, first-package latency: {} ms'.format(
synthesizer.get_last_request_id(),
synthesizer.get_first_package_delay()))
# Save the audio to a local file
with open('output.mp3', 'wb') as f:
f.write(audio)
Para a síntese em tempo real com vozes personalizadas, veja [Transmissão em tempo real TTS] (/developer-guides/speech/realtime-streaming). Para parâmetros completos da API e mais operações (lista, consulta, delete), veja a referência Voice design API.
Modelos apoiados.
O design de voz usa um modelo de design e um modelo de síntese de alvos.
CosyVoice:
- ** Modelo de design de voz**:
voice-enrollment - ** Modelos de síntese de ovos**:
cosyvoice-v3.5-plus(Somente Pequim)cosyvoice-v3.5-flash(Somente Pequim)cosyvoice-v3-plus(Somente Pequim)cosyvoice-v3-flash(Somente Pequim). Use vozes projetadas com [CosyVoice TTS] (/developer-guides/speech/tts).
Para IDs de modelos e versões de instantâneos, veja [Modelos de texto para fala] (/developer-guides/speech/tts-models).
Linguagens apoiadas
| Código | Linguagem |
|---|---|
zh |
Chinês. |
en |
Inglês |
de |
Alemão |
it |
Italiano |
pt |
Português |
es |
Espanhol |
ja |
Japonês |
ko |
Coreano |
fr |
Francês |
ru |
Russo |
voice_prompt Só suporta chinês e inglês. O language O parâmetro deve ser igual ao preview_text - Linguagem.
Escrevam descrições de voz eficazes.
Uma descrição de voz (voice_prompt) diz ao modelo o que a voz gerar. Combine sexo, idade, tom e usar o caso para definir uma voz distinta.
Restrições
- Comprimento máximo: 500 caracteres.
- Línguas: chinês e inglês apenas.
Dimensões da descrição
| Dimensão | Exemplos |
|---|---|
| Sexo | Homem, mulher, neutro |
| Idade | Criança (5--12), adolescente (13-18), jovem adulto (19-35), de meia-idade (36-55), idoso (55+) |
| Pitch | Alto, médio, baixo, alto, baixo, baixo |
| Pace. | Rápido, médio, lento, acelerado, lento, lento |
| Emoção | Alegre, calmo, gentil, sério, animado, composto, calmante |
| Características | Magnético, crocante, rouco, suave, doce, rico, poderoso |
| Use o caso. | Notícias, publicidade, audiolivro, animação, assistente de voz, narração de documentários |
Dicas
- Use qualidades concretas como "deep", "crisp" ou "fast-paced". Evite termos vagos como "bom" ou "normal".
- "Voz feminina" é muito ampla.
- Foque-se em características físicas e perceptivas. Escreva "alto e energético" em vez de "minha voz favorita".
-
- Descreva as qualidades de voz diretamente. A imitação de celebridades não é apoiada e envolve riscos de direitos autorais.
- Cada palavra deve servir a um propósito. Evite sinônimos e intensificadores sem sentido.
Exemplos
Boa descrição:
- "Uma voz feminina jovem e animada com um ritmo rápido e inflexão para cima, adequada para apresentações de produtos de moda."
- "Uma voz calma, de meia-idade, masculina, com um ritmo lento e tom magnético profundo, adequado para notícias ou narração documental."
- "A voz de uma criança bonita, por volta dos 8 anos, com um tom um pouco infantil, adequado para vozes de personagens de animação."
Descrições ineficazes:
| Descrição | Questão | Melhorar |
|---|---|---|
| "Uma voz agradável" | Muito vago. | "Uma voz feminina jovem com uma linha vocal clara e tom suave." |
| Uma voz como uma certa celebridade | Imitação de celebridades não suportada | "Uma voz masculina madura e magnética com um ritmo calmo." |
| "Uma voz muito, muito, muito boa, feminina" | Repetente. | "Voz feminina, 20-24 anos, com um tom leve e doce qualidade." |
Cota e faturamento
Quota de voz e limpeza automática.
Todos os limites de voz QwenCloud Conta tem um limite de 1.000 vozes personalizadas para CosyVoice.
Se uma voz não é usada em nenhum pedido de síntese de fala por um ano, o sistema automaticamente a apaga.
Regras de faturamento
Os preços listados abaixo são os preços de lista. Para promoções atuais e preços com desconto, visite o [Modelo Marketplace] (https://www.qwencloud.com/models).
- **CosyVoiceDesign de voz é grátis.
Códigos de erro.
Se uma ligação falhar, veja [Mensagens de erro] (/api-reference/preparation/error-messages).
Erros comuns de design de voz:
| Estado HTTP | Código de erro | Causa | Resolução |
|---|---|---|---|
| 400 | Pedido ruim. Voz não encontrada. | A voz especificada não existe (em operações de voz ou síntese) | Verifique o nome da voz com Listar vozesor Perguntar uma voz. Se a voz não existe, crie uma nova voz com Crie uma voz. |
Próximos passos
- Voz design API referência (CosyVoice) -- CosyVoice Parâmetros de API de design de voz e formato de resposta
- [Transmissão em tempo real TTS] (/developer-guides/speech/realtime-streamingUse vozes personalizadas para síntese em tempo real.
- [Pegue uma chave API] (/api-reference/preparation/api-key-- Configurar autenticação