あらゆる市場に対応した動画ローカライズAPI

1つのソース動画を、各市場向けにローカライズされたバージョンに変換します。適切な地域言語、一貫性のあるブランド用語、話者の声、字幕、およびオプションとしてリップシンクに対応しています。1つのAPIでローカライズワークフローを実行し、公開前には必ずチームがスクリプトを確認します。
135以上の言語および地域オプション
用語集と復習
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}'
世界中のチームで利用されています
主な機能

動画ローカライズAPIの対応範囲

ローカライズとは、単に音声トラックを翻訳するだけではありません。このAPIにより、各市場ごとに、地域ごとの言語オプション、用語管理、ナレーション、字幕、レビューを1つのワークフローに統合できます。オプションでリップシンクも追加可能ですが、別途課金されます。

135以上の言語および地域オプション

特定の地域向けにローカライズします:es-mx または es-es、pt-br または pt-pt、fr-ca または fr-fr。各プロジェクトには 1 つのターゲットロケールが指定され、ソース言語は自動的に検出されます。

用語管理

用語集を使用することで、すべてのローカライズ版においてブランド名やブランド用語を統一することができます。1つの用語集で、ある言語のすべての地域別バリエーションを網羅しており、各プロジェクトでは、使用した用語集のバージョンを記録します。

承認済みの翻訳

自動翻訳から始めるか、レビュー担当者がすでに承認済みの翻訳をSRTファイルとして読み込み、Raskに音声を生成させることができます。

カメラ撮影時のリップシンク

カメラの前で実在の人物が話すローカライズされた音声に合わせて、口の動きを同期させます。オプション機能であり、フル動画の生成ごとに別途課金されます。

背景音をそのまま保持

オリジナル音声の音楽、環境音、効果音は、ローカライズされたセリフの下にミックスされたまま残るため、どの市場でも同じ作品が聴けるようになっています。

字幕とキャプション

各ローカライズ版には、対象言語で、ローカライズされた音声に合わせてタイミングが調整されたSRTおよびVTT形式の字幕が付属しています。

各市場におけるスピーカーの声

インタビューや対話において、「インスタント・ボイス・クローン」は、対応言語ごとに各話者の声を維持し、保存された「カスタム・ボイス・クローン」により、繰り返し登場するプレゼンターに一貫した声を提供します。それ以外の場合は、AI音声プリセットが対応します。

公開前に確認する

校正担当者は、原文と翻訳文を並べて確認し、市場に合わない部分を修正した上で、変更された部分のみを再吹き替えします。

制限なしのスケール

レート制限、同時接続数制限、キーごとのスロットリングはありません。すべての市場にリリースを行う際、数百ものローカライズ版を並行して生成できます。
実際の動作を見る

1本のソース映像を、4つの市場向けにローカライズ

同じクリップをフランス語、ドイツ語、ポルトガル語、スペイン語にローカライズしたもの:話者の声をクローン化した音声で翻訳されたセリフが流れ、元の背景音はそのまま残されています。
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
ワークフロー

動画ローカライゼーションのワークフローにおける3つのステップ

ルールを一度設定すれば、その後、新しい動画はすべてそのルールに基づいてローカライズされます。プロジェクトを作成するとローカライズが開始されます。レビューによる編集が完了したら、/generateエンドポイントを使用してください。
1

ローカライゼーションのルールを設定する

各言語ペアごとに用語集を作成し、頻繁に登場するナレーターのカスタム音声を保存し、配信先の各市場ごとに地域設定を選択してください。

POST /v2/glossaries
2

市場ごとにバージョンを作成する

ソース動画を一度アップロードした後、用語集を使用するか、SRTからインポートした承認済みの翻訳を使用して、対象の各ロケールごとにプロジェクトを作成してください。

POST /v2/projects
3

確認して公開する

翻訳されたテキストを原文と並べて確認し、校正者が指摘した箇所を修正し、変更した部分を再吹き替えし、ローカライズされた動画と字幕をダウンロードします。

GET /v2/projects/{id}/transcription
処理時間はプロジェクトによって異なります。確認後の再吹き替えについては、変更されたセグメントの合計時間に基づいて課金され、1回の処理につき最低1分が課金対象となります。
あなたに合わせて構築

大量ローカライズをお考えですか?当社のチームとワークフローを計画しましょう

定期的な動画制作、複数のレビュー担当者、自社独自のCMSやLMS:当社のチームは、ローカライゼーションのワークフローの設計、用語やレビュー段階の設定、そして貴社のチームがすべての動画をレビューできない場合に人的QAを追加するお手伝いをいたします。

言語と音声

公開カタログにない言語や音声が必要ですか?ご要望や利用可能なオプションについて、チームにお気軽にご相談ください。

配信と連携

Webhooks、独自のキューへのプッシュ、S3への直接配信、カスタムエンドポイント。パイプラインにどのようにデータを送りたいかお知らせください。

ボリュームとスループット

バッチサイズ、アクションあたりのターゲット言語、処理の優先順位はすべて契約条件であり、固定された製品の制限ではありません。

セキュリティとホスティング

データレジデンシー、SSOおよびSAML、保持ルール、セキュリティレビューのサポートは、エンタープライズ向けオンボーディングの一環として対応いたします。
ユースケース

動画ローカライズAPIを利用するのはどのような人ですか

動画機能を備えたプラットフォーム

LMSや顧客教育プラットフォーム、クリエイター向け・動画プラットフォーム、ウェビナーやバーチャルイベントツール、動画ホスティングおよびワークフローSaaS、デジタル導入支援プラットフォーム、ライブショッピング。製品内に地域ごとの言語オプションを備えたローカライズ版を提供することで、ユーザーはプラットフォームを離れることなく、世界中のオーディエンスや新たな市場にリーチできるようになります。

ローカライズおよび制作エージェンシー

ブランドごとに用語集を用意し、プロジェクトごとにレビュー工程を設けて、複数のクライアント向けのローカライズ作業を実施します。翻訳者が承認した翻訳データをSRTファイルとして取り込み、1つの動画ローカライズワークフローから、吹き替え動画、字幕、およびオプションのリップシンクを納品します。

自社での継続的な動画制作

国際的な小売・Eコマース、グローバルフランチャイズ、メディア出版社、企業内大学。マーケティング動画、動画広告、eラーニング、製品紹介動画などのコンテンツを、各地域に合わせてローカライズし、ブランド用語の一貫性を保ちつつ、ソース動画が変更された際には更新版を作成します。
導入事例

本物のチーム、目に見える成果

Raskを活用して動画をローカライズしている企業の導入実績を数値でご紹介します。
矢印
矢印
コード

動画ローカライズAPIのコード例

各言語につき1つの完全な事例:用語集を作成し、1本のソース動画を2つのスペイン語圏市場向けにローカライズし、翻訳されたテキストを読み、校正を行う。
# 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が公式SDKです。Node、PHP、cURLのタブは、同じエンドポイントに対するシンプルなHTTPの例を示しています。
進捗

各ローカライズ版における進捗状況の報告方法

各市場版は、それぞれ個別のステータスが記録されたプロジェクトとなっているため、1つの画面で市場をまたいだリリース全体を追跡することができます。対応が必要なグループは3つだけです。

成功、ここで完了

merging_done
ローカライズが完了しました。プロジェクトをもう一度取得して、そのプロジェクト用のダウンロードリンクを取得してください。

進行中、ポーリングを継続

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
一致する項目 _done 各市場バージョンにつき、1つのシーケンスを指定します。

失敗、停止、報告

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words および forbidden_link は、自社のユーザーにそのまま見せても分かりやすい内容になっています。
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

または、ポーリングを完全にスキップする

Webhookのエンドポイントを指定すると、すべてのステータス変更がPOSTリクエストとして送信されるため、変更が発生した瞬間にキューが反応します。Webhookによる配信は、エンタープライズ向けの導入支援に含まれています。
ドキュメントを読む
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
出力

各市場向けにローカライズされた動画、音声、字幕

各市場向けバージョンでは、ローカライズされた動画と、SRTおよびVTT形式の字幕が提供されます。対象となるプランでは、独自の編集や配布用に、ローカライズされた音声を単独で、あるいはオリジナルの音声とミックスした状態でダウンロードすることも可能です。
項目
形式
説明
translated_video
MP4
公開準備が整ったローカライズ版動画
voiceover
WAV
ご自身のミックス用に、ローカライズされた音声のみ
translated_audio
WAV
翻訳された音声と元の背景音をミックスした音声
translation_srt_path
.srt
翻訳言語の字幕
translation_vtt_path
.vtt
WEBプレーヤー用のWebVTT形式の字幕
original_video
MP4
参照用に保存された元のファイル
コントロール

すべての市場において、ブランド用語や表現を統一してください

ローカライゼーションの品質は、レビュープロセスによって確保されます。レビュー担当者は各セグメントを確認し、市場に合わない表現を修正し、そのセグメントのみを再吹き替えします。用語集にはその判断内容が反映され、次の動画にも引き継がれることで、市場を問わずブランドの一貫性が保たれます。

セグメント単位の編集

セグメント単位の編集
各プロジェクトでは、トランスクリプトが原文と翻訳文を含むセグメントとして公開されるため、レビューアによる修正は1つのパッチリクエストとなります。
文字起こしとそのセグメントを取得する
元のテキストを修正すると、自動で再翻訳されます
翻訳されたテキストを直接修正して、お好みの表現に調整できます
再生時間の調整、セグメントの追加・削除
話者に割り当てられた音声を変更する

用語集による専門用語の管理

用語集による専門用語の管理
各プロジェクトに用語集を添付し、ブランド名や製品用語が、すべてのローカライズ版で同じように翻訳されるか、あるいは意図的に原語のままになるようにしてください。

1つの用語集は1つの言語ペアをカバーし、その言語のすべての地域バリエーションに適用されるため、たとえば1つのスペイン語用用語集で es-mx および es-es 同様に機能します。プロジェクトには glossary_versionが記録されるため、後から編集を行っても、完了した作業が勝手に変更されることはありません。
入力

対応ファイル形式

7種類の動画形式と4種類の音声形式のいずれかをアップロードするか、URLを送信してください。ポッドキャストなどの音声のみのコンテンツもローカライズ可能です。リップシンクは、画面に顔が映っている映像に適用されます。

動画

7つの形式
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

音声

4つの形式
.mp3
.wav
.flac
.m4a

利用前に詳細情報を確認

メディアエンドポイントは、再生時間、ファイルサイズ、ビデオコーデック、フレームレート、解像度、オーディオコーデック、サンプリングレート、およびチャンネル構成を返します。ローカライズは分単位で課金されるため、ファイルを検証し、各市場向けバージョンのコストを事前に見積もっておく必要があります。
セキュリティとコンプライアンス

あらゆる市場で調達準備が整っています

Brask Inc.はSOC 2 Type IIの認証を取得しており、GDPRに準拠して事業を展開しています。また、Trust Centerにてリアルタイムのコントロール状況を公開しています。データの保存場所に関するオプションは、エンタープライズ向けオンボーディングの一環として提供されています。

認定資格

SOC 2 Type II
GDPR
CAIおよびC2PAのメンバー

暗号化

TLS 1.2(転送中)
AES-256(保存時)
SSE-S3管理キー
少なくとも12か月ごとのキーローテーション

あなたのコンテンツ

クローズドAI環境
一般モデルのトレーニングには不使用
完全なエクスポート、ベンダーのロックインなし

アクセス

SSOおよびSAML
ロールベースのアクセス制御
OAuth 2.0クライアント認証情報

エンタープライズ

データ保管場所の選択肢
カスタムSLA
専任のアカウントマネージャー

音声の権利

利用権付きの合成音声
同意に基づく音声クローン
AIの安全管理、人間の確認プロセス
比較

Rask API 対 自分で構築するローカライズワークフロー

動画のローカライズでは、翻訳、音声、字幕、用語管理、および校正を1つの制作ワークフローに統合します。ここでは、同じワークフローを2つの方法で構成した例をご紹介します。
必要な機能
Rask API
部品を組み合わせた場合
地域ごとの言語設定
135以上の言語および地域オプション
ベンダーごとに異なるロケール対応
各バージョンに含まれるブランド用語
言語ペアごとのバージョン管理された用語集
管理している検索・置換スクリプト
レビュー担当者が承認した翻訳
SRT形式でインポートした後、音声を吹き替えた
動画への手動位置合わせ
各市場におけるスピーカーの声
即座に作成できるカスタム音声クローン
言語ごとに異なる音声プロバイダー
BGMと効果音
その地域特有の話し方の下に隠されていた
構築する音源分離のステップ
.srt および .vtt 形式の字幕
含まれる
ご自身のタイミングデータから生成
カメラ撮影時のリップシンク
オプション。動画1本ごとの生成ごとに課金されます。
別のベンダー
レビュー後の行の修正
変更された部分のみを再吹き替えする
バージョン全体を再レンダリングする
利用制限
なし
最も厳しい基準を持つベンダーの条件
ワークフローの設計と人間による品質保証
弊社チームにて対応可能です
個別に採用・管理される
よくあるご質問

動画ローカライズAPI:よくある質問

お探しのものが見つかりませんか?営業部までお問い合わせください。

ビデオローカライゼーションAPIとは何ですか?

動画のローカライズと動画の翻訳は、どのように異なるのでしょうか?

1つの動画を、同じ言語の複数の地域向けにローカライズすることは可能ですか?

各ローカライズ版間でブランド名を統一するにはどうすればよいですか?

すでに承認済みの翻訳を使ってもいいですか?

このAPIは文化的な言及に対応していますか?

このAPIは画面上のテキストを翻訳しますか?

どの言語と地域に対応していますか?

すべての市場で、スピーカーの声をそのまま維持することはできますか?

リップシンクはローカライゼーションのワークフローにおいてどのような位置づけにあるのでしょうか?

動画のローカライズにはどれくらいの費用がかかりますか?

ラスクさんは、当社のローカライズワークフローの設計を手伝ってくれるでしょうか?

APIの利用権とAPIキーを取得するにはどうすればよいですか?

半日で吹き替えを始めましょう

今すぐ最初のリクエストを作成し、大量利用の契約や他の誰も対応していない言語が必要な場合は、ぜひお気軽にご相談ください。