# 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# 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}'



Her dil çifti için bir sözlük oluşturun, düzenli sunucular için özel sesler kaydedin ve yayınladığınız her pazar için bölgesel yerel ayarı seçin.
Kaynak videoyu bir kez yükleyin, ardından sözlüğünüzle veya SRT'den içe aktarılan onaylanmış bir çeviriyle her hedef pazar için bir proje oluşturun.
Çevrilen metni yan yana okuyun, inceleyenlerin işaretlediklerini düzenleyin, değişen bölümleri yeniden seslendirin ve yerelleştirilmiş video ile altyazıları indirin.
# 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())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"])// 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));
}# 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\"}"<?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;
} 0s created
11s transcription_started
87s translation_started
99s voiceover_started
154s merging_started
165s merging_done

es-mx ve es-es benzer şekilde hizmet eder. Proje kayıtları glossary_version, böylece sonraki düzenlemeler tamamlanan çalışmaları asla habersiz değiştirmez.Bir video yerelleştirme API'si, kendi kodunuz içindeki otomasyon sayesinde tek bir kaynak videoyu diğer pazarlar için farklı versiyonlara dönüştürür: çevrilmiş ve seslendirilmiş konuşma, altyazılar, tutarlı terminoloji ve isteğe bağlı dudak senkronizasyonu. Rask ile her pazar versiyonu; tek bir REST API üzerinden oluşturduğunuz, incelediğiniz ve indirdiğiniz bir projedir.
Çeviri, kelimeleri değiştirir. Yerelleştirme ise aynı videoyu belirli bir pazar için hazırlar: bölgesel dil varyantı, tutarlı kalan marka terimleri, konuşmacıların sesleri, altyazılar ve yayınlamadan önce bir inceleme adımı. Rask API, tüm bunları tek bir iş akışında destekler.
Evet. Meksika için es-mx ve İspanya için es-es gibi her hedef bölge için bir proje oluşturun ve tutarlı marka terimleri için tek bir İspanyolca sözlük yeniden kullanın. Her pazar için ifadeyi gözden geçirin. Bölgesel bir aksan önemli olduğunda, o bölge için mevcut bir yapay zeka ses ön ayarını seçin; ses klonlama, temel dil modelini kullanır ve belirli bir bölgesel aksanı garanti etmez.
Her dil çifti için bir sözlük oluşturun ve projeyi oluştururken bunu ekleyin. Her proje, kullandığı sözlük versiyonunu kaydeder; bu nedenle daha sonra bir sözlüğü düzenlemek, tamamlanmış çalışmayı asla değiştirmez. Oluşturulduktan sonra bir projeye sözlük eklenemez.
Evet, SRT yüklemesini destekleyen planlarda. Projeyi oluştururken onaylanmış hedef dil SRT'nizi içe aktarın; ayrı bir kaynak dil SRT'si isteğe bağlıdır. Her iki dosyanız olduğunda da sağlayabilirsiniz. Rask, dublaj için onaylanmış çevirinizi kullanır.
Kültürel uygunluk insan muhakemesi gerektirir. API, yayınlamadan önce inceleyen kişilere referansları, deyimleri ve örnekleri pazar için uyarlamaları amacıyla her segmenti sunar ve ekibiniz her videoyu inceleyemediğinde Rask, iş akışına insan kalite kontrolü ekleyebilir.
Belgelenen API uç noktaları konuşmayı ve altyazıları yerelleştirir. Görüntüdeki başlıklar gibi resmin parçası olan metinler çekildiği gibi kalır. Ekrandaki metin yerelleştirme iş akışınızın bir parçasıysa ekibimizle görüşün.
Meksika ve Avrupa İspanyolcası, Brezilya ve Avrupa Portekizcesi ile Kanada Fransızcası dahil olmak üzere 135'ten fazla dil ve bölge seçeneğinden birden fazla dile yerelleştirme yapın. Her proje bir hedef bölge alır. Tam liste API belgelerinde yer almaktadır ve ekibimiz bunun dışındaki seçenekleri görüşebilir.
Evet, desteklenen ses klonlama dillerinde. Konuşmacının kimliğini korumak için Anında Ses Klonlama'yı veya tekrar eden bir sunucu için kaydedilmiş Özel Ses Klonu'nu kullanın. Klonlama temel dil modelini kullanır, bu nedenle bölgesel bir bölge seçmek o bölgenin aksanını garanti etmez. Bölgesel aksan öncelikli olduğunda mevcut bir yapay zeka ses ön ayarını seçin.
Dudak senkronizasyonu, gerçek bir kişinin kamerada konuştuğu görüntüler için isteğe bağlı bir adımdır. İncelemeden sonra yerelleştirilmiş versiyonda çalıştırın. Tam video dudak senkronizasyonu oluşturma işlemlerinin her biri, sonraki düzenlemelerden sonraki oluşturmalar dahil olmak üzere dublajdan ayrı olarak faturalandırılır.
API kullanımı, Rask uygulamasıyla aynı dakika havuzundan olacak şekilde, her pazar sürümü için video dakikası başına ücretlendirilir. Uygun standart planlarda ek dakikalar dakikası 3$'dır. Kurumsal fiyatlandırma anlaşmanıza göre belirlenir. İnceleme sonrası yeniden dublaj, her çalıştırma için en az bir dakika olmak üzere değişen segmentlerin toplam süresi üzerinden ücretlendirilir ve dudak senkronizasyonu ayrıca ücretlendirilir. Kart gerektirmeyen ücretsiz deneme sürümüyle Rask uygulamasında yerelleştirmeyi deneyin. API'yi değerlendirmek için ekibimizden bir demo randevusu alın.
Evet. Düzenli içerik hacimleri için ekibimiz; mevcut sürecinizi haritalandırmanıza, inceleme ve onay aşamalarını belirlemenize, terminoloji ve sesleri yapılandırmanıza, Rask'ı içerik yönetim sisteminize veya öğrenme yönetim sisteminize bağlamanıza ve gerektiğinde insan kalite kontrolü eklemenize yardımcı olabilir.
API erişimi, Creator Pro, Business ve Enterprise planlarında sunulmakta olup özellikler planınıza göre belirlenir. Uygulamada istemci kimliğinizi ve gizli anahtarınızı oluşturarak hemen kullanmaya başlayabilirsiniz. Kurumsal şartlar, hacim bazlı fiyatlandırma ve özel dil kapsamı ekibimiz aracılığıyla yürütülür.