API tłumaczenia wideo dla ponad 135 języków

Prześlij jeden materiał wideo i otrzymaj go w każdym potrzebnym języku. REST API tłumaczenia wideo transkrybuje mowę, tłumaczy ją i dubbinguje, a następnie zwraca przetłumaczony film, pliki napisów oraz przetłumaczony tekst do weryfikacji.
Ponad 135 języków docelowych
Napisy w formatach .srt i .vtt
REST + Python SDK
one upload, every language
OAuth 2.0
# 1. exchange client credentials for a token (valid 1 hour)
curl -X POST https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -d "grant_type=client_credentials"

# 2. upload the video once - YouTube, Drive, S3, Vimeo or direct URL
curl -X POST https://api.rask.ai/api/library/v1/media/link \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"link": "https://youtu.be/...", "name": "Q3 launch"}'

# 3. one project per target language - they run in parallel
for lang in es-mx de-de ja-jp pt-br; do
  curl -X POST https://api.rask.ai/v2/projects \
    -H "Authorization: Bearer $TOKEN" \
    -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"$lang\"}"
done
GET /v2/projects/{project_id}
polling, 10s
# Poll each project until merging_done, then collect the files.
while :; do
  curl -s https://api.rask.ai/v2/projects/$ID \
    -H "Authorization: Bearer $TOKEN" \
    | jq '{status, translated_video, translation_srt_path}'
  sleep 10
done
Używane przez zespoły na całym świecie
Możliwości

Co potrafi API tłumaczenia wideo w ramach jednego projektu

Automatycznie transkrybuj, tłumacz i dubbuj swoje filmy za pomocą jednego API. Sprawdzaj przetłumaczony tekst, dbaj o spójność terminologii dzięki słownikom i pobieraj format wyjściowy wymagany przez każdą platformę. Dodaj opcjonalną synchronizację ust, płatną osobno.

Tłumaczenie na ponad 135 języków

Wyślij wideo i język docelowy, aby przetłumaczyć materiał na dowolny obsługiwany język. Język źródłowy jest wykrywany automatycznie.

Wykrywanie mówców i osobne głosy dla każdego z nich

Osoby mówiące są rozdzielane automatycznie, a każda z nich otrzymuje głos w języku docelowym, dzięki czemu wywiady i panele są łatwe w odbiorze. Możesz zmienić dowolne przypisanie lub podać liczbę osób, jeśli ją znasz.

Oryginalne głosy lub głosy AI

Użyj oryginalnego głosu każdego mówcy za pomocą funkcji klonowania głosu lub wykorzystaj zapisany własny klon głosu, aby zapewnić spójność głosu prezentera w różnych filmaniach. Obie opcje są dostępne w obsługiwanych językach docelowych, a resztę uzupełniają gotowe profile głosowe AI.

Synchronizacja ruchu warg

Włącz synchronizację ust, aby dopasować ruch warg do przetłumaczonej mowy – to opcjonalne zadanie dla każdego ukończonego projektu, płatne osobno. Wykrywanie twarzy odbywa się w pierwszej kolejności, dzięki czemu funkcja zostanie zastosowana tylko tam, gdzie przyniesie efekt.

Zachowane tło dźwiękowe

Muzyka, dźwięki otoczenia i efekty są oddzielane od mowy i miksowane ponownie pod nowym głosem lektora, dzięki czemu widzowie słyszą oryginalną produkcję w innym języku.

Napisy w formatach .srt i .vtt

Do każdego przetłumaczonego filmu dołączony jest plik z napisami w obu formatach, w języku docelowym i zsynchronizowany z przetłumaczoną mową.

Kontrola terminologii za pomocą słowników

Nazwy marek, nazwy produktów i terminy techniczne są tłumaczone w ten sam sposób w każdym filmie i każdym języku lub celowo pozostają w języku oryginalnym.

Przetłumaczony tekst, który możesz edytować

Pobierz transkrypcję z tekstem źródłowym i przetłumaczonym obok siebie, popraw linię lub znacznik czasu, a następnie wygeneruj ponownie. Edytorzy poprawiają tekst, a nikt nie musi ponownie nagrywać dźwięku.

Skaluj bez ograniczeń

Żadnych limitów zapytań, żadnych kwot współbieżności, żadnego ograniczania liczby zapytań na klucz. Wyślij cały swój katalog i tłumacz duże ilości materiałów na wiele języków równocześnie.
Zobacz jak to działa

Co zwraca API tłumaczenia wideo

Ten sam klip, przetłumaczony w procesie opisanym na tej stronie. Oryginalni mówcy w źródle, przetłumaczona mowa po francusku, niemiecku, portugalsku i hiszpańsku, z zachowaniem oryginalnego audio w tle.
Flaga EN
En
Flaga FR
Pt
Flaga Niemiec
De
Flaga PT
Pt
Flaga ES
Es
Przepływ pracy

Trzy kroki od przesłania do przetłumaczonego wideo

Utworzenie projektu rozpoczyna tłumaczenie. Skorzystaj z endpointu /generate później, aby ponownie zdubbingować projekt po jego edycji.
1

Prześlij wideo

Wyślij plik jako dane formularza wieloczęściowego lub opublikuj link z YouTube, Google Drive, S3, Vimeo lub dowolnego bezpośredniego adresu pobierania. Otrzymasz identyfikator pliku i metadane techniczne, zanim cokolwiek wydasz.

POST /api/library/v1/media/link
2

Utwórz jeden projekt na język

Przekaż identyfikator pliku jako video_id oraz język docelowy. Utwórz jeden projekt dla każdego potrzebnego języka z tego samego przesłania, używając własnej transkrypcji lub słownika, jeśli go masz.

POST /v2/projects
3

Przypisz głosy i wykonaj ponowny dubbing

Sprawdzaj status, aż zmieni się na merging_done, a następnie pobierz przetłumaczone wideo oraz pliki z napisami dla tego języka.

GET /v2/projects/{project_id}
Czas przetwarzania zależy od projektu. W przypadku tłumaczenia wsadowego utwórz jeden projekt na język docelowy z tego samego przesłanego pliku, śledź każdy z nich przez API i pobierz pliki po zakończeniu.
Stworzone z myślą o Tobie

Potrzebujesz czegoś spoza katalogu? Porozmawiaj z naszym zespołem.

Nowe języki, niestandardowe głosy, własna metoda dostarczania, wyższa wydajność: gdy integracja tłumaczenia wideo wymaga czegoś spoza publicznego katalogu, nasz zespół analizuje Twoje wymagania i dostępne opcje.

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 tłumaczenia wideo

Platformy zawierające materiały wideo

Platformy LMS i edukacji klientów, platformy dla twórców i wideo, narzędzia do webinarów i wydarzeń wirtualnych, hosting wideo i SaaS dla przepływów pracy, cyfrowe platformy adaptacyjne, zakupy na żywo oraz narzędzia wideo AI, które pomagają użytkownikom tworzyć wideo lub generować wideo z tekstu. Twoi użytkownicy już przesyłają treści wideo do Twojego produktu. Dzięki API tłumaczą wideo w tym samym miejscu na wiele języków, a tłumaczenie wideo staje się jedną z płatnych funkcji.

Agencje lokalizacji i produkcyjne

Połącz tłumaczenie wideo z używanym już procesem dostarczania i zachowaj etap weryfikacji przez człowieka. Lingwiści sprawdzają przetłumaczony tekst segment po segmencie, dzięki czemu Twój zespół udostępnia materiały w większej liczbie języków przy użyciu tych samych zasobów ludzkich.

Wewnętrzna, ciągła produkcja wideo

Międzynarodowy handel detaliczny i e-commerce, globalne franczyzy, wydawcy mediów, uniwersytety korporacyjne. Wbuduj tłumaczenie w swój proces publikacji, aby filmy szkoleniowe i treści produktów docierały do każdego rynku w różnych wersjach językowych, i generuj wersję językową ponownie za każdym razem, gdy zmienia się wideo źródłowe.
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 tłumaczenia wideo

Jeden kompletny przykład w każdym języku: uwierzytelnianie, jednorazowe przesłanie, utworzenie projektu dla każdego języka docelowego, oczekiwanie, pobranie przetłumaczonego wideo oraz plików z napisami.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

TARGETS = ["es-mx", "de-de", "ja-jp", "pt-br"]

async def translate(client, video_id, lang):
    job = await client.create_project(
        data=schemas.ProjectCreate(video_id=video_id, dst_lang=lang))
    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)

    video = await client.create_media_link(
        data=schemas.MediaCreateLink(link="https://youtu.be/..."))
    while video.status is not enums.MediaStatus.READY:
        await asyncio.sleep(5)
        video = await client.get_media(media_id=video.id)

    jobs = await asyncio.gather(*(translate(client, video.id, l) for l in TARGETS))
    for j in jobs:
        print(j.dst_lang, j.translated_video, j.translation_srt_path)

asyncio.run(main())
github.com/braskai/rask-sdk
Python 3.8+, async
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}"}

video = requests.post(f"{API}/api/library/v1/media/link", headers=h,
                      json={"link": "https://youtu.be/..."}).json()
while video["status"] != "ready":
    time.sleep(5)
    video = requests.get(f"{API}/api/library/v1/media/{video['id']}", headers=h).json()

ids = [requests.post(f"{API}/v2/projects", headers=h,
                     json={"video_id": video["id"], "dst_lang": lang}).json()["id"]
       for lang in ["es-mx", "de-de", "ja-jp", "pt-br"]]

for pid in ids:
    while (p := requests.get(f"{API}/v2/projects/{pid}", headers=h).json())["status"] != "merging_done":
        time.sleep(10)
    print(p["dst_lang"], p["translated_video"], p["translation_vtt_path"])
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 get = (path) => fetch(API + path, { headers: h }).then((r) => r.json());
const post = (path, body) => fetch(API + path, { method: 'POST', headers: h, body: JSON.stringify(body) }).then((r) => r.json());

let video = await post('/api/library/v1/media/link', { link: 'https://youtu.be/...' });
while (video.status !== 'ready') { await sleep(5000); video = await get(`/api/library/v1/media/${video.id}`); }

const results = await Promise.all(['es-mx', 'de-de', 'ja-jp', 'pt-br'].map(async (dst_lang) => {
  let p = await post('/v2/projects', { video_id: video.id, dst_lang });
  while (p.status !== 'merging_done') { await sleep(10000); p = await get(`/v2/projects/${p.id}`); }
  return p;
}));

results.forEach((p) => console.log(p.dst_lang, p.translated_video, p.translation_srt_path));
fetch, Node 18+
plain HTTP
<?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']];

$video = $json($http->post('/api/library/v1/media/link',
    ['headers' => $h, 'json' => ['link' => 'https://youtu.be/...']]));
while ($video['status'] !== 'ready') {
    sleep(5);
    $video = $json($http->get("/api/library/v1/media/{$video['id']}", ['headers' => $h]));
}

foreach (['es-mx', 'de-de', 'ja-jp', 'pt-br'] as $lang) {
    $p = $json($http->post('/v2/projects', ['headers' => $h,
        'json' => ['video_id' => $video['id'], 'dst_lang' => $lang]]));
    while ($p['status'] !== 'merging_done') {
        sleep(10);
        $p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
    }
    echo $lang, ' ', $p['translation_srt_path'], PHP_EOL;
}
POST /v2/projects
OAuth 2.0 client credentials
<?php
use GuzzleHttp\Client;

$http = new Client(['base_uri' => 'https://api.rask.ai']);

$auth = json_decode((new Client)->post(
    'https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
    ['auth' => [$clientId, $clientSecret],
     'form_params' => ['grant_type' => 'client_credentials']]
)->getBody(), true);

$h = ['Authorization' => 'Bearer ' . $auth['access_token']];

$media = json_decode($http->post('/api/library/v1/media/link',
    ['headers' => $h, 'json' => ['link' => 'https://youtu.be/...']])->getBody(), true);

$project = json_decode($http->post('/v2/projects',
    ['headers' => $h, 'json' => ['video_id' => $media['id'], 'dst_lang' => 'es-mx']])->getBody(), true);

while ($project['status'] !== 'merging_done') {
    sleep(10);
    $project = json_decode($http->get("/v2/projects/{$project['id']}",
        ['headers' => $h])->getBody(), true);
}
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 zgłaszany jest postęp tłumaczenia

Każdy projekt przechodzi przez udokumentowany schemat stanów, dzięki czemu użytkownicy mogą śledzić proces za pomocą rzeczywistego paska postępu dla każdej wersji językowej. Musisz zareagować tylko w przypadku trzech grup.

Sukces, zatrzymaj się tutaj

merging_done
Tłumaczenie zostało zakończone. Pobierz projekt jeszcze raz, aby uzyskać linki do pobrania dostępne 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.

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 and forbidden_link are specific enough to show directly to your own user. Every error also returns a machine-readable slug for error handling.
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

Przetłumaczone wideo, dźwięk i napisy

Pobierz przetłumaczone wideo oraz napisy w formatach SRT i VTT dla każdego języka docelowego. W ramach odpowiednich planów możesz również pobrać sam przetłumaczony głos lub zmiksowany z oryginalnym dźwiękiem w tle.
Pole
Format
Co to jest
translated_video
MP4
Zdubbingowane wideo, gotowe do publikacji
voiceover
WAV
Tylko przetłumaczona mowa, bez tła, 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

Sprawdź przetłumaczony tekst, a następnie wykonaj ponowny dubbing tylko tego, co uległo zmianie

Zacznij od automatycznego tłumaczenia lub przynieś własne zatwierdzone tłumaczenie w pliku SRT podczas tworzenia projektu. Sprawdź skrypt przed publikacją i wygeneruj ponownie tylko to, co się zmieniło. Ponowny dubbing przez API jest rozliczany na podstawie zmienionych segmentów.

Edycja na poziomie segmentów

Edycja na poziomie segmentów
Każdy projekt udostępnia swoją transkrypcję jako segmenty z tekstem źródłowym i przetłumaczonym obok siebie, dzięki czemu poprawka wymaga tylko jednego żądania patch.
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łącz słowniczek do projektu, aby nazwy marek, nazwy produktów i terminy techniczne tłumaczyły się w ten sam sposób w każdej wersji językowej lub celowo pozostały przetłumaczone.

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

Prześlij dowolny z siedmiu formatów wideo lub czterech formatów audio albo podaj adres URL. Pliki w nieobsługiwanych formatach są odrzucane przed pobraniem jakichkolwiek minut na tłumaczenie.

Wideo

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

Audio

4 formaty
.mp3
.wav
.flac
.m4a

Metadane przed wydaniem środków

Endpoint mediów zwraca czas trwania, rozmiar pliku, kodek wideo, liczbę klatek na sekundę, rozdzielczość, kodek audio, częstotliwość próbkowania i układ kanałów. Sprawdź plik i oszacuj koszty z góry, ponieważ tłumaczenie wideo jest rozliczane za minuty.
Bezpieczeństwo i zgodność z przepisami

Gotowe do weryfikacji bezpieczeństwa

Firma Brask Inc posiada certyfikat SOC 2 Type II, działa zgodnie z RODO i publikuje status zabezpieczeń na żywo w swoim Centrum Zaufania. Twoje treści wideo są przetwarzane w bezpiecznym środowisku AI.

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

API Rask a samodzielnie zbudowany system

Zwykłe API do tłumaczenia tekstu tłumaczy znaki. Tłumaczenie wideo wymaga również rozpoznawania mowy, dopasowywania czasu, głosów oraz miksowania. Oto te same możliwości w dwóch różnych wersjach.
Czego potrzebujesz
Rask API
Złożone z części
Transkrypcja, tłumaczenie, synteza, miksowanie
Jedno wywołanie
Od trzech do czterech dostawców i kod łączący ich systemy
Dopasowanie tłumaczenia do wideo
W zestawie
Twoja własna logika dopasowywania
Wykrywanie mówców i osobne głosy dla każdego z nich
W zestawie
Dostawca diaryzacji oraz własna logika przypisywania głosów
Muzyka w tle i efekty zachowane
W zestawie
Krok oddzielania ścieżek, który musisz sam zbudować i dostroić
Napisy w formatach .srt i .vtt
W zestawie
Generowane na podstawie własnych danych czasowych
Synchronizacja ruchu warg
Opcjonalnie, rozliczane osobno
Odrębny dostawca
Poprawianie jednej przetłumaczonej linijki
Przetłumacz ponownie ten fragment i zapłać tylko za niego
Uruchom proces ponownie i zapłać za plik
Spójność terminologii
Słowniki z wersjami
Wstępne i końcowe przetwarzanie pod Twoją kontrolą
Limity zapytań
Brak
Wszystko, czego wymaga Twój najsurowszy dostawca
Język spoza katalogu
Do ustalenia z naszym zespołem
Zależy od każdego dostawcy
Najczęściej zadawane pytania

API do tłumaczenia wideo: najczęściej zadawane pytania

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

Czy istnieje API do automatycznego tłumaczenia wideo?

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

Jak uwierzytelnić się w API do tłumaczenia wideo?

Czy API działa synchronicznie, czy asynchronicznie?

Jakie są limity zapytań?

Na ile języków mogę przetłumaczyć wideo?

Czy mogę przetłumaczyć jedno wideo na wiele języków jednocześnie?

Ile czasu zajmuje tłumaczenie wideo?

Jakie formaty plików są obsługiwane?

Czy oprócz przetłumaczonego wideo otrzymuję też napisy?

Czy mogę edytować przetłumaczony tekst przed publikacją?

Czy ChatGPT potrafi przetłumaczyć wideo?

Ile kosztuje tłumaczenie wideo?

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.