Use sua própria transcrição

Crie um projeto de dublagem com sua própria transcrição e forneça suas próprias traduções.

Guia prático · Pressupõe que você já saiba criar projetos de dublagem, como mostrado no início rápido de Dublagem.

O fornecimento da sua própria transcrição e traduções está disponível apenas para espaços de trabalho Enterprise. Entre em contato com vendas para obter acesso.

Por padrão, a API de Dublagem transcreve sua mídia de origem e traduz automaticamente a transcrição para cada idioma de destino. Se você já tiver uma transcrição precisa — legendas, um roteiro ou texto traduzido profissionalmente — poderá fornecê-la. Este guia aborda o formato do arquivo de transcrição, como criar um projeto a partir de uma transcrição e como fornecer suas próprias traduções ao adicionar um idioma.

Formato do arquivo de transcrição

Uma transcrição é um arquivo JSON com um único array segments de nível superior. Cada segmento é uma fala: o texto falado, quando começa e termina e, opcionalmente, quem o fala.

transcript.json
{
"segments": [
{
"external_id": "line_0",
"speaker_id": "speaker_0",
"start_s": 0.0,
"end_s": 14.5,
"text": "With my soft and whispery American accent, I'm the ideal choice for creating ASMR content, meditation guides, or adding an intimate feel to your narrative projects."
}
]
}
CampoObrigatórioDescrição
textSimO texto falado durante o segmento.
start_sSimHorário de início do segmento, em segundos.
end_sSimHorário de término do segmento, em segundos.
speaker_idNãoIdentificador que agrupa segmentos falados pela mesma pessoa, para que cada pessoa seja dublada com uma voz consistente. Segmentos que o omitem compartilham um único falante padrão.
external_idNãoSeu próprio identificador para o segmento, com no máximo 128 caracteres e exclusivo na transcrição. Usado como chave das traduções e retornado em cada leitura da transcrição.
translationNãoTexto traduzido para o segmento, usado para inicializar o idioma de destino criado por target_language. Se algum segmento o incluir, todos deverão incluí-lo.

Regras dos segmentos

A transcrição é validada quando você cria o projeto:

  • Os segmentos devem estar ordenados por start_s.
  • Um segmento deve ter entre 0,1 e 25 segundos de duração, e end_s deve ser maior que start_s.
  • Segmentos com o mesmo speaker_id não podem se sobrepor, embora possam se tocar em um ponto final. Segmentos de falantes diferentes podem se sobrepor para representar falas simultâneas.
  • Uma transcrição pode conter no máximo 20.000 segmentos, e o arquivo pode ter no máximo 4 MiB.

Prefira segmentos mais curtos a mais longos: divida as frases sempre que houver uma pausa de um segundo ou mais. Os limites dos segmentos determinam como o áudio dublado é sincronizado com a origem, portanto uma transcrição com pausas precisas e naturais gera uma dublagem mais bem sincronizada.

Crie um projeto a partir da sua transcrição

Passe o arquivo de transcrição ao criar o projeto. source_language é obrigatório ao fornecer uma transcrição, pois a mídia de origem não é transcrita automaticamente. Os idiomas são especificados como tags BCP-47, por exemplo, es ou fr-CA. Consulte os idiomas e dialetos compatíveis para ver todos os valores aceitos.

import os
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs
load_dotenv()
elevenlabs = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"))
with open("transcript.json", "rb") as transcript:
project = elevenlabs.dubbing.project.create(
source_url="https://storage.googleapis.com/eleven-public-cdn/audio/marketing/nicole.mp3",
source_language="en",
transcript=transcript,
)
print(project.project_id)

O projeto ainda processa a mídia de origem antes de poder ser dublado. Portanto, consulte-o até que o status seja ready, como mostrado no início rápido. Seus segmentos são usados como estão; nenhuma transcrição automática é executada.

Forneça suas próprias traduções

Ao adicionar um idioma de destino, passe um mapa translations para usar suas próprias traduções em vez da tradução automática. O mapa usa como chave o external_id de cada segmento de origem ou o id interno do segmento caso você não tenha fornecido um, e deve abranger cada segmento de origem exatamente uma vez.

project_id = "proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"
language = elevenlabs.dubbing.project.language.create(
project_id,
target_language="fr",
translations={
"line_0": "Avec mon accent américain doux et murmuré, je suis le choix idéal pour créer du contenu ASMR, des guides de méditation, ou pour apporter une touche d'intimité à vos projets narratifs.",
},
)

Cada idioma de destino requer uma chamada de criação, então repita esta solicitação para cada idioma para o qual você deseja dublar. Um mapa translations pode conter no máximo 20.000 entradas, totalizando no máximo 4 MiB de texto.

Se os seus segmentos não tiverem external_id, leia a transcrição de origem para obter o id interno de cada segmento e use-os como chaves:

transcript = elevenlabs.dubbing.project.transcript.get(project_id)
for segment in transcript.segments:
print(segment.id, segment.text)

Inicialize traduções na criação do projeto

Para um único idioma de destino, você pode ignorar o mapa translations separado incluindo uma translation em cada segmento do arquivo de transcrição e passando target_language ao criar o projeto. O idioma de destino é criado na fila com suas traduções e começa a ser gerado assim que o projeto estiver pronto.

transcript.json
{
"segments": [
{
"external_id": "line_0",
"speaker_id": "speaker_0",
"start_s": 0.0,
"end_s": 14.5,
"text": "With my soft and whispery American accent, I'm the ideal choice for creating ASMR content, meditation guides, or adding an intimate feel to your narrative projects.",
"translation": "Avec mon accent américain doux et murmuré, je suis le choix idéal pour créer du contenu ASMR, des guides de méditation, ou pour apporter une touche d'intimité à vos projets narratifs."
}
]
}

Considerações sobre qualidade

A qualidade da dublagem depende da transcrição e das traduções usadas para criá-la. Os tempos dos segmentos e o texto são usados diretamente para definir o tempo e dar voz à performance dublada, portanto tempos ou textos imprecisos prejudicam o resultado. As traduções são geradas para caber no intervalo de tempo de cada segmento: uma tradução muito mais longa ou mais curta que a original afeta o ritmo da fala dublada. Por isso, busque traduções com duração falada semelhante.

Próximas etapas