API de localização de vídeos para todos os mercados

Transforme um vídeo original numa versão localizada para cada mercado: o idioma regional adequado, terminologia de marca consistente, as vozes dos locutores, legendas e sincronização labial opcional. Uma única API gere o fluxo de trabalho de localização e a sua equipa revê o guião antes de qualquer conteúdo ser publicado.
Mais de 135 opções de idiomas e regiões
Glossários e revisão
REST + SDK Python
one source, two Spanish markets
OAuth 2.0
# 1. one Spanish glossary - it applies to every Spanish regional variant
curl -X POST https://api.rask.ai/v2/glossaries \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"name": "Brand terms", "src_lang": "en", "dst_lang": "es",
       "entries": {"Rask Studio": "Rask Studio", "onboarding": "incorporación"}}'

# 2. a localized version per market, both with the same glossary
for lang in es-mx es-es; do
  curl -X POST https://api.rask.ai/v2/projects \
    -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"$lang\", \"glossary_id\": \"$GLOSSARY_ID\"}"
done
GET /v2/projects/{project_id}/transcription
review
# Review: source and translated text, segment by segment
curl -s https://api.rask.ai/v2/projects/$ID/transcription \
  -H "Authorization: Bearer $TOKEN" \
  | jq '.segments[] | {speaker, src: .src.text, dst: .dst.text}'
Utilizado por equipas globais
Funcionalidades

O que abrange a API de localização de vídeos

A localização é mais do que uma faixa de áudio traduzida. A API reúne opções de idiomas regionais, controlo terminológico, vozes, legendas e revisão num único fluxo de trabalho por mercado. Adicione a sincronização labial opcional, faturada separadamente.

Mais de 135 opções de idiomas e regiões

Localizar para uma região específica: es-mx ou es-es, pt-br ou pt-pt, fr-ca ou fr-fr. Cada projeto tem uma configuração regional de destino, e o idioma de origem é detetado automaticamente.

Controlo terminológico

Os glossários garantem que os nomes e termos das marcas sejam os mesmos em todas as versões localizadas. Um único glossário abrange todas as variantes regionais de uma língua, e cada projeto regista a versão do glossário que utilizou.

A sua tradução aprovada

Comece com uma tradução automática ou carregue uma tradução já aprovada pelos seus revisores num ficheiro SRT e deixe que o Rask a narre.

Sincronização labial para imagens filmadas perante a câmara

Sincronizar os movimentos labiais com a fala gravada, em que uma pessoa real fala perante a câmara. Opcional; cada geração de um vídeo completo é faturada separadamente.

Áudio de fundo preservado

A música, o som ambiente e os efeitos do áudio original permanecem na mistura por baixo da voz localizada, para que todos os mercados ouçam a mesma produção.

Legendas e legendas para surdos

Cada versão localizada inclui legendas nos formatos SRT e VTT, no idioma de destino e sincronizadas com a narração localizada.

Vozes de oradores em diversos mercados

Em entrevistas e diálogos, o Instant Voice Clone mantém a voz de cada orador nos idiomas suportados, e um Custom Voice Clone guardado proporciona a um apresentador recorrente uma voz consistente. As predefinições de voz com IA tratam do resto.

Revisar antes de publicar

Os revisores leem o texto original e o texto traduzido lado a lado, corrigem o que não se adequa ao mercado e voltam a dublar apenas os segmentos alterados.

Cresça sem limites

Sem limites de taxa, sem quota de simultaneidade, sem restrições por chave. Gere centenas de versões localizadas em paralelo quando um lançamento for disponibilizado em todos os mercados.
Veja como funciona

Um vídeo original, adaptado para quatro mercados

O mesmo vídeo localizado para francês, alemão, português e espanhol: diálogos traduzidos com as vozes clonadas dos locutores, mantendo intacto o áudio de fundo original.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
Fluxo de trabalho

Três etapas do fluxo de trabalho de localização de vídeos

Defina as regras uma vez e, em seguida, utilize-as para localizar todos os novos vídeos. A criação de um projeto dá início ao processo de localização; utilize o ponto de extremidade /generate após as edições de revisão.
1

Defina as suas regras de localização

Crie um glossário para cada par de idiomas, guarde vozes personalizadas para apresentadores recorrentes e escolha a configuração regional para cada mercado em que publicar.

POST /v2/glossaries
2

Criar uma versão por mercado

Carregue o vídeo original uma vez e, em seguida, crie um projeto para cada localização de destino com o seu glossário ou com uma tradução aprovada importada do SRT.

POST /v2/projects
3

Revisar e publicar

Leia o texto traduzido lado a lado, edite o que os revisores assinalarem, regravem os segmentos alterados e descarreguem o vídeo localizado e as legendas.

GET /v2/projects/{id}/transcription
O tempo de processamento varia consoante o projeto. A regravação após a revisão é faturada com base na duração total dos segmentos alterados, com um mínimo de um minuto por sessão.
Criado a pensar em si

Precisa de localizar um grande volume de texto? Planeie o fluxo de trabalho com a nossa equipa

Volume recorrente, vários revisores, o seu próprio CMS ou LMS: a nossa equipa pode ajudar a conceber o fluxo de trabalho de localização, configurar a terminologia e as etapas de revisão, e adicionar controlo de qualidade humano nos casos em que a sua equipa não consiga rever todos os vídeos.

Idiomas e vozes

Precisa de um idioma ou voz fora do catálogo público? Fale com a nossa equipa sobre os seus requisitos e as opções disponíveis.

Entrega e integração

Webhooks, envio direto para a sua própria fila, entrega direta no seu S3, pontos de extremidade personalizados. Diga-nos como é que o seu sistema prefere receber os dados.

Volume e capacidade

Os tamanhos dos lotes, os idiomas de destino por ação e a prioridade de processamento são termos contratuais e não limites fixos do produto.

Segurança e alojamento

A residência de dados, o SSO e SAML, as regras de retenção e o suporte a auditorias de segurança são tratados como parte da integração empresarial.
Casos de utilização

Quem utiliza uma API de localização de vídeo

Plataformas com vídeo integrado

LMS e plataformas de formação de clientes, plataformas para criadores e de vídeo, ferramentas para webinars e eventos virtuais, serviços SaaS de alojamento de vídeo e fluxos de trabalho, plataformas de adoção digital, compras em direto. Ofereça versões localizadas com opções de idiomas regionais no seu produto, para que os seus utilizadores possam alcançar um público global e um novo mercado sem saírem da sua plataforma.

Agências de localização e produção

Realize a localização para vários clientes com um glossário por marca e uma etapa de revisão por projeto. Receba as traduções aprovadas pelos seus linguistas em ficheiros SRT e entregue vídeos dublados, legendas e sincronização labial opcional a partir de um único fluxo de trabalho de localização de vídeo.

Produção de vídeo interna e contínua

Retalho internacional e comércio eletrónico, franquias globais, editoras de meios de comunicação social, universidades empresariais. Localizar vídeos de marketing, anúncios em vídeo, formação em linha e conteúdos de vídeo sobre produtos para cada região, mantendo a consistência dos termos da marca, e criar uma versão atualizada sempre que o vídeo original for alterado.
Histórias de clientes

Equipas reais, resultados mensuráveis

Como as empresas localizam vídeos com a Rask, através dos seus próprios números.
seta
seta
Código

Exemplos de código da API de localização de vídeos

Um exemplo completo em cada idioma: criar um glossário, localizar um vídeo original para dois mercados espanhóis e ler o texto traduzido para revisão.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

MARKETS = ["es-mx", "es-es"]

async def localize(client, video_id, locale, glossary_id):
    job = await client.create_project(data=schemas.ProjectCreate(
        video_id=video_id, dst_lang=locale, glossary_id=glossary_id))
    while job.status is not enums.ProjectStatus.MERGING_DONE:
        await asyncio.sleep(10)
        job = await client.get_project(project_id=job.id)
    return job

async def main():
    client = clients.RaskSDKClient(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)

    glossary = await client.create_glossary(data=schemas.GlossaryCreate(
        name="Brand terms", src_lang="en", dst_lang="es",
        entries={"Rask Studio": "Rask Studio", "onboarding": "incorporación"}))

    jobs = await asyncio.gather(*(localize(client, VIDEO_ID, m, glossary.id) for m in MARKETS))

    for job in jobs:   # review before publishing
        script = await client.get_project_transcription(project_id=job.id)
        for seg in script.segments[:3]:
            print(job.dst_lang, seg.speaker, seg.src.text, "->", seg.dst.text)

asyncio.run(main())
github.com/braskai/rask-sdk
async, typed models
import time, requests

AUTH = "https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token"
API  = "https://api.rask.ai"
token = requests.post(AUTH, auth=(CLIENT_ID, CLIENT_SECRET),
                      data={"grant_type": "client_credentials"}).json()["access_token"]
h = {"Authorization": f"Bearer {token}"}

glossary = requests.post(f"{API}/v2/glossaries", headers=h, json={
    "name": "Brand terms", "src_lang": "en", "dst_lang": "es",
    "entries": {"Rask Studio": "Rask Studio", "onboarding": "incorporación"}}).json()

ids = [requests.post(f"{API}/v2/projects", headers=h, json={
          "video_id": VIDEO_ID, "dst_lang": locale, "glossary_id": glossary["id"]}).json()["id"]
       for locale in ["es-mx", "es-es"]]

for pid in ids:
    while requests.get(f"{API}/v2/projects/{pid}", headers=h).json()["status"] != "merging_done":
        time.sleep(10)
    script = requests.get(f"{API}/v2/projects/{pid}/transcription", headers=h).json()
    for seg in script["segments"][:3]:
        print(seg["src"]["text"], "->", seg["dst"]["text"])
requests + polling
no SDK required
// no dependencies, Node 18+ global fetch
const API = 'https://api.rask.ai';
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
const auth = await fetch('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token', {
  method: 'POST',
  headers: { Authorization: 'Basic ' + btoa(`${CLIENT_ID}:${CLIENT_SECRET}`) },
  body: new URLSearchParams({ grant_type: 'client_credentials' }),
}).then((r) => r.json());
const h = { Authorization: `Bearer ${auth.access_token}`, 'Content-Type': 'application/json' };
const call = (method, path, body) => fetch(API + path, { method, headers: h, body: body && JSON.stringify(body) }).then((r) => r.json());

const glossary = await call('POST', '/v2/glossaries', {
  name: 'Brand terms', src_lang: 'en', dst_lang: 'es',
  entries: { 'Rask Studio': 'Rask Studio', onboarding: 'incorporación' },
});

for (const dst_lang of ['es-mx', 'es-es']) {
  let p = await call('POST', '/v2/projects', { video_id: VIDEO_ID, dst_lang, glossary_id: glossary.id });
  while (p.status !== 'merging_done') { await sleep(10000); p = await call('GET', `/v2/projects/${p.id}`); }
  const { segments } = await call('GET', `/v2/projects/${p.id}/transcription`);
  segments.slice(0, 3).forEach((s) => console.log(dst_lang, s.src.text, '->', s.dst.text));
}
fetch, Node 18+
plain HTTP
# 1. token (valid 1 hour - cache and reuse it)
TOKEN=$(curl -s -X POST https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" -d "grant_type=client_credentials" | jq -r .access_token)

# 2. import the translation your reviewers approved (source and translated .srt)
TRANSCRIPT_ID=$(curl -s -X POST "https://api.rask.ai/v2/transcriptions/srt?src_lang=en&dst_lang=es-mx" \
  -H "Authorization: Bearer $TOKEN" \
  -F "src=@source_en.srt" -F "dst=@approved_es-mx.srt" | jq -r .id)

# 3. create the localized version from it - Rask voices the approved script
curl -s -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"es-mx\", \"transcript_id\": \"$TRANSCRIPT_ID\"}"
POST /v2/transcriptions/srt
approved translation from SRT
<?php
use GuzzleHttp\Client;

$http = new Client(['base_uri' => 'https://api.rask.ai']);
$json = fn($r) => json_decode($r->getBody(), true);
$auth = $json((new Client)->post('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
    ['auth' => [$clientId, $clientSecret], 'form_params' => ['grant_type' => 'client_credentials']]));
$h = ['Authorization' => 'Bearer ' . $auth['access_token']];

$glossary = $json($http->post('/v2/glossaries', ['headers' => $h, 'json' => [
    'name' => 'Brand terms', 'src_lang' => 'en', 'dst_lang' => 'es',
    'entries' => ['Rask Studio' => 'Rask Studio', 'onboarding' => 'incorporación'],
]]));

foreach (['es-mx', 'es-es'] as $locale) {
    $p = $json($http->post('/v2/projects', ['headers' => $h, 'json' => [
        'video_id' => $videoId, 'dst_lang' => $locale, 'glossary_id' => $glossary['id']]]));
    while ($p['status'] !== 'merging_done') {
        sleep(10);
        $p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
    }
    $script = $json($http->get("/v2/projects/{$p['id']}/transcription", ['headers' => $h]));
    echo $locale, ': ', $script['segments'][0]['dst']['text'], PHP_EOL;
}
Guzzle 7
plain HTTP
O Python é o SDK oficial. Os separadores Node, PHP e cURL são exemplos simples de HTTP para os mesmos pontos de finalização.
Progresso

Como cada versão localizada apresenta o progresso

Cada versão de mercado é um projeto com o seu próprio estado documentado, pelo que é possível acompanhar todo o lançamento em todos os mercados numa única visualização. Basta agir em relação a três grupos.

Concluído com sucesso, parar por aqui

merging_done
A localização está concluída. Recarregue o projeto para obter os links de download disponíveis para o seu projeto.

Em progresso, continuar a verificar

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
Para além da correspondência _done estados, uma sequência por versão de mercado.

Falha, parar e reportar

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words e forbidden_link são suficientemente específicos para serem mostrados diretamente ao seu próprio utilizador.
Observed run, 3:47 source video, en → es-mx
GET /v2/projects/{project_id}
   0s  created
  11s  transcription_started
  87s  translation_started
  99s  voiceover_started
 154s  merging_started
 165s  merging_done

Ou ignore a consulta de estado por completo

Aponte-nos para um ponto final de webhook e cada transição de estado chega como um POST, para que a sua fila reaja a cada alteração no momento em que acontece. A entrega por webhook faz parte da integração empresarial.
Ler a documentação
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Saída

Vídeo, áudio e legendas localizados para cada mercado

Cada versão de mercado disponibiliza o vídeo localizado e as legendas nos formatos SRT e VTT. Nos planos elegíveis, também pode descarregar a voz localizada separadamente ou misturada com o áudio original, para a sua própria edição ou distribuição.
Campo
Formato
O que é
translated_video
MP4
O vídeo localizado, pronto para ser publicado
voiceover
WAV
Apenas voz localizada, para a tua própria mistura
translated_audio
WAV
Fala traduzida misturada com o áudio de fundo original
translation_srt_path
.srt
Legendas no idioma de destino
translation_vtt_path
.vtt
As mesmas legendas em formato WebVTT, para leitores web
original_video
MP4
O seu ficheiro de origem tal como foi guardado, para referência
Controlo

Manter a consistência dos termos e da linguagem da marca em todos os mercados

A qualidade da localização resulta de um processo de revisão. Os revisores verificam cada segmento, corrigem as formulações que não se adequam ao mercado e voltam a gravar apenas esses segmentos. Os glossários refletem as suas decisões no vídeo seguinte e garantem a consistência da marca em todos os mercados.

Edição ao nível de segmento

Edição ao nível de segmento
Cada projeto apresenta a sua transcrição sob a forma de segmentos com o texto original e o texto traduzido, pelo que cada correção feita por um revisor corresponde a um pedido de correção.
Obter a transcrição e os respetivos segmentos
Alterar o texto de origem para traduzirmos novamente
Alterar o texto traduzido diretamente para manter as suas próprias palavras
Ajustar os carateres temporais, adicionar segmentos, eliminar segmentos
Reatribuir a voz associada a qualquer orador

Glossários para terminologia

Glossários para terminologia
Anexe um glossário a cada projeto para que os nomes das marcas e os termos relativos aos produtos sejam traduzidos da mesma forma em todas as versões localizadas ou, se for o caso, permaneçam propositadamente na língua original.

Um glossário abrange um par de línguas e aplica-se a todas as variantes regionais dessa língua de destino, pelo que um único glossário de espanhol serve es-mx e es-es igualmente. O registo do projeto glossary_version, para que edições posteriores nunca alterem silenciosamente o trabalho concluído.
Entrada

Formatos de ficheiro suportados

Carregue qualquer um dos sete formatos de vídeo e dos quatro formatos de áudio, ou envie um URL. Os conteúdos apenas de áudio, como os podcasts, também podem ser localizados; a sincronização labial aplica-se a imagens em que apareça um rosto no ecrã.

Vídeo

7 formatos
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

Áudio

4 formatos
.mp3
.wav
.flac
.m4a

Metadados antes de gastar

O ponto de extremidade de multimédia devolve a duração, o tamanho do ficheiro, o codec de vídeo, a taxa de fotogramas, a resolução, o codec de áudio, a taxa de amostragem e a configuração dos canais. Verifique a validade de um ficheiro e calcule antecipadamente o custo de cada versão de mercado, uma vez que a localização é faturada por minuto.
Segurança e conformidade

Pronto para aquisição em todos os mercados

A Brask Inc. possui a certificação SOC 2 Tipo II, opera em conformidade com o RGPD e publica o estado atual dos controlos no seu Centro de Confiança. As opções de localização dos dados fazem parte do processo de integração das empresas.

Certificações

SOC 2 Type II
GDPR
Membro da CAI e C2PA

Encriptação

TLS 1.2 em trânsito
AES-256 em repouso
Chaves geridas SSE-S3
Rotação de chaves pelo menos a cada 12 meses

O seu conteúdo

Ambiente de IA fechado
Nunca utilizado para treinar modelos gerais
Exportação completa, sem dependência de fornecedor

Acesso

SSO e SAML
Controlo de acesso baseado em funções
Credenciais de cliente OAuth 2.0

Empresa

Opções de residência de dados
SLA personalizados
Gestor de conta dedicado

Direitos de voz

Vozes sintéticas com direitos de utilização
Clonagem de voz baseada no consentimento
Controlos de segurança de IA, humano no circuito
Comparação

API do Rask vs. um fluxo de trabalho de localização criado por si próprio

A localização de vídeo reúne tradução, gravação de voz, legendas, terminologia e revisão num único fluxo de trabalho de produção. Aqui está o mesmo fluxo de trabalho, organizado de duas formas diferentes.
O que precisa
Rask API
Montado a partir de peças
Opções de idiomas regionais
Mais de 135 opções de idiomas e regiões
Suporte a configurações regionais que varia consoante o fornecedor
Termos relacionados com a marca em todas as versões
Glossários com versões por par de línguas
Scripts de «procurar e substituir» que mantém
Traduções aprovadas pelos seus revisores
Importado como SRT e, posteriormente, dublado
Alinhamento manual com o vídeo
Vozes de oradores em diversos mercados
Clones de voz instantâneos e personalizados
Um fornecedor de voz distinto para cada idioma
Música de fundo e efeitos
Mantido sob o discurso localizado
Um passo de separação de fontes que cria
Legendas nos formatos .srt e .vtt
Incluído
Gerado a partir dos seus próprios dados de temporização
Sincronização labial para imagens filmadas perante a câmara
Opcional, cobrado por cada vídeo completo gerado
Um fornecedor separado
Corrigir uma linha após revisão
Re-dublar apenas os segmentos alterados
Re-renderizar a versão completa
Limites de taxa
Nenhum
O que o seu fornecedor mais restrito aplicar
Conceção de fluxos de trabalho e controlo de qualidade humano
À disposição da nossa equipa
Contratados e geridos separadamente
Perguntas frequentes

API de localização de vídeos: perguntas frequentes

Não consegue encontrar o que procura? Contacte o departamento de vendas.

O que é uma API de localização de vídeo?

Em que medida a localização de vídeos difere da tradução de vídeos?

Posso localizar um vídeo para várias regiões que falem a mesma língua?

Como posso manter a consistência dos nomes das marcas nas diferentes versões localizadas?

Posso utilizar traduções que já aprovámos?

A API lida com referências culturais?

A API traduz o texto que aparece no ecrã?

Que idiomas e regiões são suportados?

Posso manter a voz do locutor em todos os mercados?

Como é que a sincronização labial se enquadra num fluxo de trabalho de localização?

Quanto custa a localização de vídeos?

O Rask pode ajudar a conceber o nosso fluxo de trabalho de localização?

Como obtenho acesso à API e uma chave de API?

Comece a dobrar numa tarde

Faça o seu primeiro pedido hoje e fale connosco quando precisar de termos de volume ou de um idioma que mais ninguém tem.