API lokalizacji wideo dla każdego rynku

Zamień jeden film źródłowy w zlokalizowaną wersję dla każdego rynku: odpowiedni język regionalny, spójne określenia marki, głosy prelegentów, napisy i opcjonalna synchronizacja ruchu warg. Jedno API obsługuje cały proces lokalizacji, a Twój zespół sprawdza tekst przed publikacją.
Ponad 135 języków i opcji regionalnych
Słowniczki i weryfikacja
REST + Python SDK
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}'
Używane przez zespoły na całym świecie
Możliwości

Co obejmuje API lokalizacji wideo

Lokalizacja to coś więcej niż tylko przetłumaczona ścieżka dźwiękowa. API łączy opcje języków regionalnych, kontrolę terminologii, głosy, napisy i weryfikację w jeden proces dla każdego rynku. Dodaj opcjonalną synchronizację warg, rozliczaną osobno.

Ponad 135 języków i opcji regionalnych

Lokalizuj dla konkretnego regionu: es-mx lub es-es, pt-br lub pt-pt, fr-ca lub fr-fr. Każdy projekt wymaga jednego języka docelowego, a język źródłowy wykrywany jest automatycznie.

Kontrola terminologii

Słowniczki dbają o to, aby nazwy i określenia marki były takie same w każdej zlokalizowanej wersji. Jeden słownik obejmuje wszystkie warianty regionalne danego języka, a każdy projekt zapisuje użytą wersję słownika.

Twoje zatwierdzone tłumaczenie

Skorzystaj z tłumaczenia automatycznego lub wgraj plik SRT z tłumaczeniem zatwierdzonym przez Twój zespół, a Rask doda do niego odpowiedni głos.

Synchronizacja warg dla materiałów wideo

Dopasuj ruch ust do zlokalizowanej mowy w przypadku nagrań z udziałem ludzi. Opcja dodatkowo płatna dla każdego pełnego wideo.

Zachowane tło dźwiękowe

Muzyka, dźwięki otoczenia i efekty z oryginalnego nagrania pozostają w miksie pod zlokalizowaną mową, dzięki czemu każdy rynek słyszy tę samą produkcję.

Napisy

Każda zlokalizowana wersja zawiera napisy w formatach SRT i VTT w języku docelowym, zsynchronizowane z mową.

Głosy prelegentów na różnych rynkach

W wywiadach i dialogach funkcja Instant Voice Clone zachowuje głos każdego mówcy w obsługiwanych językach, a zapisany Custom Voice Clone nadaje stałemu prezenterowi spójny głos. Presety głosów AI uzupełniają resztę.

Weryfikacja przed publikacją

Osoby weryfikujące czytają tekst źródłowy i przetłumaczony obok siebie, poprawiają to, co nie pasuje do rynku, i dublują ponownie tylko zmienione fragmenty.

Skaluj bez ograniczeń

Brak limitów zapytań i ograniczeń współbieżności. Generuj setki zlokalizowanych wersji równocześnie podczas premiery na wielu rynkach.
Zobacz jak to działa

Jedno wideo źródłowe, zlokalizowane na cztery rynki

Ten sam klip zlokalizowany na język francuski, niemiecki, portugalski i hiszpański: przetłumaczona mowa w sklonowanych głosach prelegentów, z nienaruszonym oryginalnym dźwiękiem w tle.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
Przepływ pracy

Trzy kroki w procesie lokalizacji wideo

Ustaw zasady raz, a potem automatycznie tłumacz według nich każde nowe wideo. Tworzenie projektu rozpoczyna tłumaczenie; użyj punktu końcowego /generate po wprowadzeniu poprawek.
1

Ustaw swoje zasady tłumaczenia

Utwórz słownik dla każdej pary językowej, zapisz własne głosy dla stałych prowadzących i wybierz odpowiedni region dla każdego rynku, na którym publikujesz.

POST /v2/glossaries
2

Utwórz wersję dla każdego rynku

Prześlij oryginalne wideo raz, a następnie utwórz projekt dla każdego rynku docelowego, korzystając ze swojego słownika lub zatwierdzonego tłumaczenia zaimportowanego z pliku SRT.

POST /v2/projects
3

Sprawdź i opublikuj

Przeczytaj przetłumaczony tekst obok oryginału, edytuj fragmenty wskazane przez recenzentów, nagraj zmienione części ponownie i pobierz przetłumaczone wideo oraz napisy.

GET /v2/projects/{id}/transcription
Czas przetwarzania zależy od projektu. Ponowne nagrywanie po recenzji jest rozliczane na podstawie łącznego czasu trwania zmienionych fragmentów, przy czym minimalny czas rozliczeniowy to jedna minuta.
Stworzone z myślą o Tobie

Lokalizacja na dużą skalę? Zaplanuj proces współpracy z naszym zespołem

Stała liczba materiałów, kilku recenzentów, własny system CMS lub LMS: nasz zespół pomoże Ci zaprojektować proces tłumaczenia, skonfigurować terminologię i etapy recenzji oraz dodać kontrolę jakości przez człowieka tam, gdzie Twój zespół nie może sprawdzić każdego wideo.

Języki i głosy

Potrzebujesz języka lub głosu spoza publicznego katalogu? Porozmawiaj z naszym zespołem o swoich wymaganiach i dostępnych opcjach.

Dostarczanie i integracja

Webhooki, przesyłanie do własnej kolejki, dostarczanie bezpośrednio do S3, niestandardowe endpointy. Powiedz nam, jak Twój system oczekuje danych.

Wolumen i przepustowość

Rozmiary partii, liczba języków docelowych na akcję i priorytet przetwarzania to warunki umowy, a nie sztywne limity produktu.

Bezpieczeństwo i hosting

Kwestie związane z przechowywaniem danych, logowaniem SSO i SAML, zasadami ich zachowania oraz wsparciem przy audycie bezpieczeństwa są omawiane podczas wdrażania planu dla firm.
Przykłady zastosowań

Kto korzysta z API do tłumaczenia wideo

Platformy zawierające materiały wideo

Platformy LMS i edukacji klientów, platformy wideo dla twórców, narzędzia do webinarów i wydarzeń wirtualnych, hosting wideo i oprogramowanie do zarządzania treścią, platformy wdrażania cyfrowego oraz zakupy na żywo. Oferuj zlokalizowane wersje z opcjami językowymi wewnątrz swojego produktu, aby Twoi użytkownicy mogli dotrzeć do globalnej publiczności i nowych rynków bez opuszczania Twojej platformy.

Agencje lokalizacji i produkcyjne

Wykonaj tłumaczenie dla wielu klientów, korzystając ze słownika dla każdej marki i etapu recenzji dla każdego projektu. Przynieś tłumaczenia zatwierdzone przez swoich lingwistów w plikach SRT i dostarcz zdubbingowane wideo, napisy oraz opcjonalną synchronizację warg w ramach jednego procesu.

Wewnętrzna, ciągła produkcja wideo

Międzynarodowy handel detaliczny i e-commerce, globalne franczyzy, wydawcy mediów, uniwersytety korporacyjne. Tłumacz wideo marketingowe, reklamy, e-learning i materiały produktowe dla każdego regionu, zachowując spójną terminologię marki, i twórz zaktualizowane wersje, gdy zmieni się oryginalne wideo.
Historie klientów

Prawdziwe zespoły, wymierne wyniki

Jak firmy lokalizują wideo z Rask, wyrażone w liczbach.
strzałka
strzałka
Kod

Przykłady kodu API do tłumaczenia wideo

Jeden kompletny przykład w każdym języku: utwórz słownik, przetłumacz jedno wideo źródłowe na dwa rynki hiszpańskojęzyczne i odczytaj przetłumaczony tekst do weryfikacji.
# 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
Python to oficjalny pakiet SDK. Zakładki Node, PHP i cURL przedstawiają proste przykłady żądań HTTP dla tych samych punktów końcowych.
Postęp

Jak każda zlokalizowana wersja raportuje postępy

Każda wersja rynkowa to projekt z własnym, udokumentowanym statusem, dzięki czemu możesz śledzić całą publikację na wielu rynkach w jednym widoku. Musisz zareagować tylko w przypadku trzech grup.

Sukces, zatrzymaj się tutaj

merging_done
Tłumaczenie zostało zakończone. Pobierz projekt ponownie, aby uzyskać linki do pobrania przygotowane dla Twojego projektu.

W toku, sprawdzaj dalej

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
Oraz pasujące _done stany, po jednej sekwencji dla każdej wersji rynkowej.

Błąd, zatrzymanie i raport

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words oraz forbidden_link są wystarczająco jasne, aby pokazać je bezpośrednio Twoim użytkownikom.
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

Lub całkowicie pomiń sprawdzanie

Wskaż nam punkt końcowy webhooka, a każda zmiana stanu pojawi się jako żądanie POST, dzięki czemu Twoja kolejka zareaguje na każdą zmianę w momencie jej wystąpienia. Dostarczanie przez webhook jest częścią wdrożenia dla klientów korporacyjnych.
Przeczytaj dokumentację
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Wynik

Zlokalizowane wideo, dźwięk i napisy dla każdego rynku

Każda wersja rynkowa zawiera zlokalizowane wideo oraz napisy w formatach SRT i VTT. W wybranych planach możesz również pobrać sam zlokalizowany głos lub zmiksowany z oryginalnym dźwiękiem do własnego montażu lub dystrybucji.
Pole
Format
Co to jest
translated_video
MP4
Zlokalizowane wideo, gotowe do publikacji
voiceover
WAV
Tylko zlokalizowana mowa, do własnego miksu
translated_audio
WAV
Przetłumaczona mowa zmiksowana z oryginalnym dźwiękiem w tle
translation_srt_path
.srt
Napisy w języku docelowym
translation_vtt_path
.vtt
Te same napisy w formacie WebVTT, do odtwarzaczy webowych
original_video
MP4
Twój plik źródłowy w takim stanie, w jakim został zapisany, do wglądu
Kontrola

Dbaj o to, aby terminologia i sformułowania marki były spójne na każdym rynku

Jakość tłumaczenia zależy od procesu weryfikacji. Osoby sprawdzające analizują każdy fragment, poprawiają słownictwo, które nie pasuje do danego rynku, i ponownie dublują tylko te wybrane elementy. Słowniczki przenoszą te decyzje do kolejnych materiałów wideo, co pomaga zachować spójność marki na różnych rynkach.

Edycja na poziomie segmentów

Edycja na poziomie segmentów
Każdy projekt udostępnia swoją transkrypcję podzieloną na fragmenty zawierające tekst oryginalny oraz przetłumaczony, dzięki czemu poprawka od osoby weryfikującej wymaga wprowadzenia tylko jednej zmiany.
Pobierz transkrypcję i jej segmenty
Zmień tekst źródłowy, a my przetłumaczymy go ponownie
Edytuj przetłumaczony tekst bezpośrednio, aby zachować własne słownictwo
Dopasowuj znaczniki czasu, dodawaj segmenty i usuwaj je
Zmień głos przypisany do dowolnego mówcy

Słowniczki terminologii

Słowniczki terminologii
Do każdego projektu można dołączyć słowniczek, aby nazwy marek i terminy związane z produktami były tłumaczone w ten sam sposób w każdej wersji językowej lub celowo pozostały w oryginalnym języku.

Jeden słowniczek obejmuje jedną parę językową i działa we wszystkich odmianach regionalnych tego języka docelowego, więc jeden hiszpański słowniczek obsłuży es-mx oraz es-es podobnie. Projekt rejestruje wersja_słownika, dzięki czemu późniejsze poprawki nigdy nie zmieniają ukończonej pracy w tle.
Dane wejściowe

Obsługiwane formaty plików

Możesz wgrać plik w jednym z siedmiu formatów wideo i czterech formatów audio albo podać adres URL. Materiały audio, takie jak podcasty, również mogą zostać przetłumaczone, natomiast synchronizacja ruchu warg działa w przypadku nagrań, na których widać twarz.

Wideo

7 formatów
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

Audio

4 formaty
.mp3
.wav
.flac
.m4a

Metadane przed wydaniem środków

Punkt końcowy dla mediów zwraca informacje o czasie trwania, rozmiarze pliku, kodeku wideo, liczbie klatek na sekundę, rozdzielczości, kodeku audio, częstotliwości próbkowania oraz układzie kanałów. Możesz wcześniej zweryfikować plik i oszacować koszt wersji dla każdego rynku, ponieważ opłaty za tłumaczenie naliczane są za minuty.
Bezpieczeństwo i zgodność z przepisami

Gotowe do wdrożenia w każdym regionie

Brask Inc posiada certyfikat SOC 2 Type II, działa zgodnie z RODO (GDPR) i publikuje status systemów kontroli na żywo w swoim Centrum Zaufania. Opcje przechowywania danych są omawiane podczas wdrażania planów dla firm.

Certyfikaty

SOC 2 Type II
RODO
Członek CAI i C2PA

Szyfrowanie

TLS 1.2 w tranzycie
AES-256 w spoczynku
Klucze zarządzane SSE-S3
Rotacja kluczy co najmniej co 12 miesięcy

Twoje treści

Zamknięte środowisko AI
Nigdy nieużywane do trenowania ogólnych modeli
Pełny eksport, bez wiązania się z jedną platformą

Dostęp

SSO i SAML
Kontrola dostępu oparta na rolach
Poświadczenia klienta OAuth 2.0

Dla firm

Opcje lokalizacji danych
Niestandardowe umowy SLA
Dedykowany opiekun klienta

Prawa do głosu

Syntetyczne głosy z prawami do użytkowania
Klonowanie głosu oparte na zgodzie
Zasady bezpieczeństwa AI, człowiek w pętli
Porównanie

Rask API a proces tłumaczenia wideo stworzony samodzielnie

Lokalizacja wideo łączy tłumaczenie, głos, napisy, terminologię oraz weryfikację w jeden proces produkcyjny. Oto ten sam proces zestawiony na dwa sposoby.
Czego potrzebujesz
Rask API
Złożone z części
Opcje języków regionalnych
Ponad 135 języków i opcji regionalnych
Obsługa lokalizacji różniąca się w zależności od dostawcy
Terminy związane z marką w każdej wersji
Wersjonowane słowniczki dla każdej pary językowej
Skrypty wyszukiwania i zamiany utrzymywane we własnym zakresie
Tłumaczenia zatwierdzone przez osoby weryfikujące
Zaimportowane jako plik SRT, a następnie nagrane
Ręczne dopasowanie do materiału wideo
Głosy prelegentów na różnych rynkach
Błyskawiczne i niestandardowe klonowanie głosu
Odrębny dostawca głosu dla każdego języka
Muzyka w tle i efekty
Zachowane pod przetłumaczoną ścieżką dźwiękową
Samodzielnie przygotowany krok oddzielania źródeł
Napisy w formatach .srt i .vtt
W zestawie
Generowane na podstawie własnych danych czasowych
Synchronizacja warg dla materiałów wideo
Opcjonalnie, płatne za wygenerowanie całego wideo
Odrębny dostawca
Poprawianie linii tekstu po weryfikacji
Ponowne dubbingowanie tylko zmienionych fragmentów
Wygeneruj ponownie całą wersję
Limity zapytań
Brak
Wszystko, czego wymaga Twój najsurowszy dostawca
Projektowanie procesu pracy i weryfikacja przez człowieka
Dostępne z naszym zespołem
Zatrudniani i zarządzani oddzielnie
Najczęściej zadawane pytania

API lokalizacji wideo: najczęściej zadawane pytania

Nie możesz znaleźć tego, czego szukasz? Skontaktuj się z działem sprzedaży.

Czym jest API lokalizacji wideo?

Czym lokalizacja wideo różni się od tłumaczenia wideo?

Czy mogę zlokalizować jeden film dla kilku regionów posługujących się tym samym językiem?

Jak zachować spójność nazw marek w wersjach zlokalizowanych?

Czy mogę użyć tłumaczeń, które już zatwierdziliśmy?

Czy API uwzględnia odniesienia kulturowe?

Czy API tłumaczy tekst widoczny na ekranie?

Jakie języki i regiony są obsługiwane?

Czy mogę zachować głos prelegenta na każdym rynku?

Jak synchronizacja warg wpisuje się w proces lokalizacji?

Ile kosztuje lokalizacja wideo?

Czy Rask może pomóc w zaprojektowaniu naszego procesu lokalizacji?

Jak mogę uzyskać dostęp do API i klucz API?

Rozpocznij dubbingowanie w jedno popołudnie

Wyślij swoje pierwsze zapytanie już dziś i skontaktuj się z nami, gdy potrzebujesz warunków dla dużych wolumenów lub języka, którego nikt inny nie ma.