Skip to main content
Dublar o projeto

Dublar o projeto

Gere as vozes e misture a saída de um projeto existente a partir de um SRT traduzido que você fornece. A VoiceCheap não traduz nada neste endpoint: sem motor de tradução, sem reformulação SmartSync e sem glossário. Cada cue é falado literalmente no segmento correspondente da transcrição do projeto e depois misturado com o fundo original, as legendas e a sincronização labial opcional, exatamente como uma tradução normal. Use-o quando a tradução é produzida em outro lugar (um tradutor humano, suas próprias ferramentas, um fluxo de automação) e você precisa da VoiceCheap apenas para gerar as vozes. A execução é assíncrona: consulte Obter status da tradução ou ouça os Webhooks.

Pré-requisitos

  • O projeto precisa existir e a transcrição precisa estar concluída: crie-o com Criar projeto (somente transcrição) ou Iniciar Tradução e aguarde transcriptionStatus: "success".
  • O seu SRT precisa cobrir a transcrição do projeto: cada segmento precisa de pelo menos um cue, e cada cue precisa cair sobre um segmento. Exporte a transcrição com Exportar transcrição do projeto e traduza-a cue a cue para manter os timecodes.
  • A solicitação é cobrada como uma tradução da mesma mídia, com a mesma verificação de créditos. Os modos de sincronização labial acrescentam os créditos extras habituais.

Limite de Simultaneidade

A criação de projetos, a tradução e a dublagem verificam o limite de traduções ativas da sua conta (no máximo 10, possivelmente menos). Apenas traduções ou dublagens em andamento ocupam vagas; projetos apenas de transcrição não ocupam. Ao atingir o limite, a API retorna CONCURRENT_TRANSLATION_LIMIT_REACHED (HTTP 429). O limite aplicado aparece em details.limit. Uma segunda execução para o mesmo projeto e idioma de destino também é recusada enquanto outra estiver em andamento (TRANSLATION_ALREADY_IN_PROGRESS, HTTP 409).

Solicitação

Este endpoint aceita um corpo JSON (Content-Type: application/json). Opções booleanas e numéricas são enviadas como valores JSON, não como strings.

Cabeçalhos

string
obrigatório
Sua chave de API VoiceCheap. Obtenha uma em app.voicecheap.ai/page-api.

Parâmetros de caminho

string
obrigatório
O identificador do projeto retornado por Criar projeto ou Iniciar Tradução.

Parâmetros do corpo

string
obrigatório
O idioma de translatedSrt, em minúsculas, da mesma lista de Iniciar Tradução. Se o projeto ainda não tiver um trabalho para este idioma, um é criado e o idioma é adicionado ao projeto.
string
obrigatório
O conteúdo SRT final no idioma de destino (número do cue, linha de tempo, texto). Máximo de 1.000.000 de caracteres. Os cues são associados aos segmentos da transcrição pelos timestamps: um cue que começa dentro de 50 ms do início de um segmento é atribuído a esse segmento; caso contrário, ao segmento com o qual mais se sobrepõe. Vários cues no mesmo segmento são unidos com um espaço. O tempo, o locutor e a ordem de cada segmento falado vêm sempre da transcrição do projeto; seus timecodes servem apenas para o emparelhamento.
string
Um endpoint https que passa a receber os eventos de webhook deste projeto, substituindo o endpoint configurado na conta.Padrão: O endpoint já armazenado no projeto e, em seguida, o endpoint de webhook da conta.
boolean
Manter o áudio de fundo original (música, ambiente) sob as vozes geradas.Padrão: true
boolean
Manter o locutor original baixo, por baixo da voz gerada.Padrão: false
number
Volume da voz original de 1 a 70 quando keepOriginalVoice está ativado.Padrão: 30
string
Estratégia de voz: cloning (clonar as vozes dos falantes do projeto) ou custom (usar uma voz do catálogo ou sua voz personalizada salva).Padrão: cloning
string
Obrigatório quando voiceMode é custom. Use um ID de dubbing_voices_list: uma voz do catálogo ou uma voz personalizada salva pela conta autenticada. A cobrança da equipe não concede acesso às vozes salvas de outros membros.
string
Modo de isolamento de voz quando keepBackgroundMusic está ativado: studio ou realistic.Padrão: studio
boolean
Gravar legendas no vídeo de saída. Exige um projeto de vídeo.Padrão: false
string
Texto das legendas quando subtitles está ativado: translated (o seu SRT) ou original (a transcrição de origem).Padrão: translated
string
Executar a sincronização labial quando a dublagem estiver pronta: standard, pro ou studio. As regras de plano, duração e créditos são as mesmas de Iniciar Tradução. Exige um projeto de vídeo.Padrão: omita o campo para ignorar a sincronização labial.
boolean
Ativar a detecção do locutor ativo para a execução de sincronização labial solicitada.Padrão: false
object
Ajuste fino da clonagem de voz, como objeto JSON com stability e similarity entre 0 e 1. Somente com voiceMode: "cloning". Veja Iniciar Tradução para a orientação de cada valor.
array
Intervalos do tempo de origem que permanecem no idioma original, como [{ "startTime": 10.2, "endTime": 12.8 }]. Exige um projeto de vídeo e keepBackgroundMusic: true, não pode ser combinado com keepOriginalVoice e não pode sobrepor segmentos da transcrição.

Resposta

boolean
obrigatório
Sempre true para solicitações bem-sucedidas.
string
obrigatório
Uma confirmação legível.
string
obrigatório
O projeto que está sendo dublado.
string
obrigatório
O trabalho de tradução usado para targetLanguage. Corresponde a workId nos endpoints de status, detalhes e transcrição.
number
obrigatório
Estimativa aproximada de processamento em minutos: cinco minutos de processamento por minuto iniciado da mídia de origem.
Response

Acompanhar a execução

O projeto muda para o fluxo translation assim que a dublagem começa, então Obter status da tradução acompanha a nova execução: status passa de processing para success (com translatedVideoUrl e translatedAudioUrl) ou failed (com error). Os webhooks project.translation.completed e project.translation.failed são enviados com o mesmo targetLanguage. Em Obter Detalhes do Projeto, a versão traduzida informa settings.dubbingMode: "dub-only" e settings.smartSync: false. As falhas de alinhamento aparecem depois de o pedido POST ser aceite. O endpoint de status devolve status: "failed" com error.code e error.message; o webhook project.translation.failed inclui o mesmo código e mensagem. Em TRANSLATED_SRT_UNMATCHED_CUES, os números dos cues sem correspondência aparecem na mensagem; em TRANSLATED_SRT_MISSING_SEGMENTS, aparecem os índices dos segmentos sem cue. Estas respostas assíncronas não incluem um campo details estruturado. Corrija o SRT e chame novamente o endpoint: a versão com falha permanece no histórico e é criada uma nova.

Verificar o ritmo

Exporte a transcrição traduzida como JSON com Exportar transcrição do projeto. Cada segmento traz finalSpeedFactor, a razão entre a fala gerada e a janela do segmento. Encurte os cues que ficarem acima de cerca de 1.3 e execute a dublagem de novo com o SRT revisado.

Fluxo de exemplo

Uma automação típica (por exemplo um cenário do n8n ou do Make) encadeia os endpoints assim:
  1. POST /v1/projects com a mídia, targetLanguage e um originalLanguage explícito (somente transcrição).
  2. Consulte GET /v1/translate/{projectId}/status até transcriptionStatus ser success, ou espere o webhook project.created.
  3. POST /v1/projects/{projectId}/transcript com { "source": "original", "outputFormat": "srt" } e traduza os cues mantendo a numeração e os timecodes.
  4. POST /v1/projects/{projectId}/dub com o SRT traduzido.
  5. Consulte o endpoint de status até status ser success, ou espere project.translation.completed.
  6. Baixe translatedVideoUrl (ou lipSync.videoUrl quando a sincronização labial foi solicitada).
  7. DELETE /v1/translate/{projectId} quando as saídas estiverem armazenadas do seu lado.

Erros

Falhas de alinhamento detectadas durante a execução (TRANSLATED_SRT_UNMATCHED_CUES, TRANSLATED_SRT_MISSING_SEGMENTS) são devolvidas pelo endpoint de status e pelo webhook de falha, não por esta solicitação.