API de synchronisation labiale pour vidéos doublées

Ajustez les mouvements de la bouche à la voix doublée dans plus de 135 langues et variantes régionales. Doublez votre vidéo via l'API, synchronisez les lèvres sur le résultat et téléchargez une vidéo où la personne à l'écran prononce les nouveaux mots. Une vérification du visage est effectuée en premier. La synchronisation labiale est facturée séparément du doublage pour chaque génération de vidéo complète, y compris après des modifications.
Minute de prévisualisation gratuite
Plusieurs visages à l'écran
REST + SDK Python
check, preview, sync
OAuth 2.0
# 1. on a dubbed project: confirm the video has a face (runs once, usually automatically)
curl https://api.rask.ai/v2/projects/$ID/lipsync \
  -H "Authorization: Bearer $TOKEN"
#  "check_face_task_status": "done", "video_has_face": true

# 2. preview one free minute of lip-sync
curl -X PUT https://api.rask.ai/v2/projects/$ID/lipsync \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"is_multiple_speakers": true, "is_free_lipsync": true}'

# 3. lip-sync the full video - billed separately from dubbing
curl -X PUT https://api.rask.ai/v2/projects/$ID/lipsync \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"is_multiple_speakers": true, "is_free_lipsync": false}'
GET /v2/projects/{project_id}/lipsync
polling, 15s
# Poll until lipsync_task_status is done, then download lipsync_result_path
while :; do
  curl -s https://api.rask.ai/v2/projects/$ID/lipsync -H "Authorization: Bearer $TOKEN" \
    | jq '{lipsync_task_status, lipsync_task_progress, tasks_in_lipsync_queue}'
  sleep 15
done
Utilisé par des équipes du monde entier
Fonctionnalités

Tout ce que fait l'API de synchronisation labiale

Ajoutez la synchronisation labiale à vos vidéos doublées. Vérifiez la présence d'un visage visible, profitez de la minute de prévisualisation gratuite de votre compte si elle est disponible et suivez la progression via l'API. La synchronisation labiale d'une vidéo complète est facturée séparément du doublage à chaque génération.

Synchronisation labiale sur vidéo traduite

Ajustez les mouvements de la bouche à la voix doublée d'une vidéo traduite par votre projet, parmi le catalogue de plus de 135 langues et variantes régionales prises en charge.

Vérification automatique des visages

Avant la synchronisation labiale, une tâche de vérification confirme la présence d'au moins un visage dans la vidéo. Elle s'exécute une fois par projet, généralement seule, pour que vous connaissiez le résultat avant d'utiliser vos minutes.

Plusieurs visages à l'écran

Définissez is_multiple_speakers sur true pour les interviews, les tables rondes et les dialogues à plusieurs voix. S'il n'y a qu'un seul visage à l'écran à la fois, définissez-le sur false pour accélérer le traitement.

Une minute de prévisualisation gratuite

Chaque compte bénéficie d'une minute de synchronisation labiale gratuite. Utilisez-la avec is_free_lipsync sur vos propres images et vérifiez le résultat avant de synchroniser la vidéo complète.

Facturation séparée pour chaque génération

Chaque génération de synchronisation labiale pour une vidéo complète est facturée séparément du doublage. Après avoir modifié le script ou les voix, redoublez le projet et générez une nouvelle version synchronisée avec une facturation distincte.

Position dans la file d'attente et progression

Le point de terminaison des informations de synchronisation labiale indique le nombre de tâches qui précèdent la vôtre ainsi que la progression de 0 à 100, pour que vos utilisateurs voient l'avancement en temps réel.

Des voix adaptées au visage

La synchronisation labiale s'applique à la voix utilisée par le projet pour chaque intervenant : sa voix clonée ou une voix générée par l'IA.

Modifier, redoubler, resynchroniser

Modifiez le texte, le minutage ou les voix, redoublez le projet, puis relancez la synchronisation labiale sur la nouvelle version. Il n'est pas nécessaire de refaire la vérification des visages.

Évoluez sans limites

Pas de limites de débit, pas de quota de concurrence, pas de restrictions par clé. Envoyez des tâches de synchronisation labiale pour l'ensemble de votre catalogue, et la position dans la file d'attente vous indique l'état de chacune.
Voir en action

De la voix doublée à la synchronisation labiale

Le même clip doublé en français, allemand, portugais et espagnol. Sur un projet de doublage comme celui-ci, la synchronisation labiale ajuste la position des lèvres à la nouvelle voix.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
Flux de travail

Trois étapes pour passer d'une vidéo doublée à une vidéo synchronisée

La synchronisation labiale s'applique à un projet déjà doublé. Utilisez le point de terminaison /generate pour relancer le doublage après des modifications, puis synchronisez à nouveau les lèvres.
1

Doubler la vidéo

Téléchargez la vidéo source ou envoyez une URL publique, créez un projet avec une langue cible et patientez jusqu'à l'étape merging_done. La synchronisation labiale nécessite la vidéo traduite de ce projet.

POST /v2/projects
2

Vérifier le visage

La tâche de vérification du visage confirme qu'au moins un visage est présent dans la vidéo. Elle démarre généralement automatiquement. Si ce n'est pas le cas, lancez-la vous-même une fois pour le projet.

PUT /v2/projects/{id}/check_face
3

Lancer la synchronisation labiale et télécharger

Lancez la tâche de synchronisation labiale, suivez sa progression (lipsync_task_progress) de 0 à 100, puis téléchargez la vidéo depuis lipsync_result_path.

PUT /v2/projects/{id}/lipsync
Le temps de traitement dépend de la durée de la vidéo et de la file d'attente. Le point de terminaison d'informations sur la synchronisation indique le nombre de tâches qui vous précèdent.
Conçu pour vous

Besoin d'une synchronisation labiale pour un cas particulier ? Contactez notre équipe

Débit accru, priorité de traitement, méthode de livraison personnalisée : lorsqu'une intégration de synchronisation labiale nécessite des fonctionnalités spécifiques hors catalogue, notre équipe étudie vos besoins et les options disponibles.

Langues et voix

Vous avez besoin d'une langue ou d'une voix absente du catalogue public ? Parlez de vos besoins et des options disponibles à notre équipe.

Livraison et intégration

Webhooks, envoi direct dans votre propre file d'attente, livraison sur votre espace S3, points de terminaison personnalisés. Dites-nous comment alimenter votre système.

Volume et débit

La taille des lots, le nombre de langues cibles par action et la priorité de traitement font l'objet de conditions contractuelles, et non de limites figées dans le produit.

Sécurité et hébergement

La gestion des données, l'authentification unique (SSO et SAML), les règles de conservation et l'aide aux audits de sécurité sont prises en charge lors de l'intégration des grandes entreprises.
Cas d'utilisation

Qui utilise une API de synchronisation labiale ?

Plateformes intégrant de la vidéo

Plateformes LMS et de formation client, plateformes de création et de vidéo, outils de webinaires et d'événements virtuels, SaaS d'hébergement vidéo et de flux de travail, plateformes d'adoption numérique, shopping en direct. Ajoutez le doublage synchronisé aux vidéos hébergées par vos utilisateurs et créateurs pour que les présentateurs traduits aient l'air naturels à l'écran, faisant de la synchronisation labiale une fonctionnalité clé de votre produit.

Agences de localisation et de production

Proposez la synchronisation labiale comme option supplémentaire au doublage. Utilisez la minute d'essai gratuite de votre compte, si disponible, pour évaluer le résultat. Intégrez la génération de synchronisation labiale pour toute la vidéo ainsi que les éventuelles générations ultérieures dans votre devis client.

Production vidéo continue en interne

Vente au détail et commerce électronique internationaux, franchises mondiales, éditeurs de médias, universités d'entreprise. Pour les vidéos marketing, de formation et institutionnelles où un visage occupe l'écran, la synchronisation labiale permet d'aligner la voix traduite sur le locuteur dans tous les marchés.
Témoignages clients

De véritables équipes, des résultats mesurables

Découvrez comment les entreprises localisent leurs vidéos avec Rask, en chiffres.
flèche
flèche
Code

Exemples de code pour l'API de synchronisation labiale

Un exemple complet dans chaque langage, sur un projet déjà doublé : vérification du visage, lancement de la synchronisation labiale, suivi de la progression et téléchargement du résultat.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

PROJECT_ID = "..."   # a project with status merging_done

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

    info = await client.get_lipsync_info(project_id=PROJECT_ID)
    if info.check_face_task_status is not enums.LipsyncStatus.DONE:
        await client.run_check_face_task(project_id=PROJECT_ID)
        while (info := await client.get_lipsync_info(project_id=PROJECT_ID)).check_face_task_status is not enums.LipsyncStatus.DONE:
            await asyncio.sleep(10)
    if not info.video_has_face:
        raise SystemExit("No face found - lip-sync is not available for this video")

    await client.run_lipsync_task(project_id=PROJECT_ID,
        data=schemas.LipsyncTaskData(is_multiple_speakers=True, is_free_lipsync=False))

    while (info := await client.get_lipsync_info(project_id=PROJECT_ID)).lipsync_task_status is not enums.LipsyncStatus.DONE:
        print(info.lipsync_task_progress, info.tasks_in_lipsync_queue)
        await asyncio.sleep(15)

    print(info.lipsync_result_path)

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"
URL  = f"https://api.rask.ai/v2/projects/{PROJECT_ID}"   # a dubbed project

token = requests.post(AUTH, auth=(CLIENT_ID, CLIENT_SECRET),
                      data={"grant_type": "client_credentials"}).json()["access_token"]
h = {"Authorization": f"Bearer {token}"}

info = requests.get(f"{URL}/lipsync", headers=h).json()
if info["check_face_task_status"] != "done":
    requests.put(f"{URL}/check_face", headers=h)
    while (info := requests.get(f"{URL}/lipsync", headers=h).json())["check_face_task_status"] != "done":
        time.sleep(10)
assert info["video_has_face"], "No face found"

requests.put(f"{URL}/lipsync", headers=h,
             json={"is_multiple_speakers": True, "is_free_lipsync": False})

while (info := requests.get(f"{URL}/lipsync", headers=h).json())["lipsync_task_status"] not in ("done", "failed"):
    time.sleep(15)

print(info["lipsync_task_status"], info["lipsync_result_path"])
requests + polling
no SDK required
// no dependencies, Node 18+ global fetch - PROJECT_ID is a dubbed project
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 url = `https://api.rask.ai/v2/projects/${PROJECT_ID}`;
const info = () => fetch(`${url}/lipsync`, { headers: h }).then((r) => r.json());

let i = await info();
if (i.check_face_task_status !== 'done') {
  await fetch(`${url}/check_face`, { method: 'PUT', headers: h });
  while ((i = await info()).check_face_task_status !== 'done') await sleep(10000);
}
if (!i.video_has_face) throw new Error('No face found');

await fetch(`${url}/lipsync`, {
  method: 'PUT', headers: h,
  body: JSON.stringify({ is_multiple_speakers: true, is_free_lipsync: false }),
});

while (!['done', 'failed'].includes((i = await info()).lipsync_task_status)) {
  console.log(i.lipsync_task_progress, i.tasks_in_lipsync_queue);
  await sleep(15000);
}
console.log(i.lipsync_result_path);
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. face check on the dubbed project - start it only if it has not run yet
curl -s https://api.rask.ai/v2/projects/$ID/lipsync -H "Authorization: Bearer $TOKEN" \
  | jq '{check_face_task_status, video_has_face}'
curl -s -X PUT https://api.rask.ai/v2/projects/$ID/check_face -H "Authorization: Bearer $TOKEN"

# 3. run lip-sync (set is_free_lipsync to true for the free preview minute)
curl -s -X PUT https://api.rask.ai/v2/projects/$ID/lipsync \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"is_multiple_speakers": true, "is_free_lipsync": false}'

# 4. follow progress, then download the result
curl -s https://api.rask.ai/v2/projects/$ID/lipsync -H "Authorization: Bearer $TOKEN" \
  | jq '{lipsync_task_status, lipsync_task_progress, lipsync_result_path}'
PUT /v2/projects/{id}/lipsync
OAuth 2.0 client credentials
<?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']];
$info = fn() => $json($http->get("/v2/projects/$projectId/lipsync", ['headers' => $h]));

$i = $info();
if ($i['check_face_task_status'] !== 'done') {
    $http->put("/v2/projects/$projectId/check_face", ['headers' => $h]);
    while (($i = $info())['check_face_task_status'] !== 'done') sleep(10);
}
if (!$i['video_has_face']) exit('No face found');

$http->put("/v2/projects/$projectId/lipsync", ['headers' => $h,
    'json' => ['is_multiple_speakers' => true, 'is_free_lipsync' => false]]);

while (!in_array(($i = $info())['lipsync_task_status'], ['done', 'failed'])) sleep(15);
echo $i['lipsync_result_path'];
Guzzle 7
plain HTTP
Python est le kit de développement officiel (SDK). Les onglets Node, PHP et cURL proposent des exemples HTTP simples ciblant les mêmes points de terminaison.
Progression

Comment une tâche de synchronisation labiale communique sa progression

Le point de terminaison d'informations sur la synchronisation labiale indique la vérification du visage, l'état de la tâche, la position dans la file d'attente et la progression de 0 à 100. Vous n'avez besoin d'intervenir que sur trois groupes.

Succès, s'arrêter ici

lipsync_task_status: done
lipsync_task_progress: 100
La synchronisation labiale est terminée. Le lien de téléchargement se trouve dans lipsync_result_path.

En cours, continuer d'interroger

check_face_task_status: started
lipsync_task_status: started
lipsync_task_progress: 0-99
tasks_in_lipsync_queue
Tant que la progression est nulle, la tâche est en file d'attente : tasks_in_lipsync_queue indique le nombre de tâches en attente.

Échec, s'arrêter et signaler

lipsync_task_status: failed
check_face_task_status: failed
video_has_face: false
Une vidéo sans visage visible ne peut pas être synchronisée. En cas d'échec d'une tâche, contactez le support en fournissant votre project_id.
Lip-sync task, as GET /lipsync reports it
GET /v2/projects/{project_id}/lipsync
check face     check_face_task_status  done     video_has_face  true
queued         lipsync_task_status     started  tasks_in_lipsync_queue  2
processing     lipsync_task_progress   0 → 50 → 100
complete       lipsync_task_status     done
               lipsync_result_path     https://...

Ou passez entièrement le système d'interrogation

Indiquez-nous un point de terminaison de webhook et chaque changement d'état arrive sous forme de requête POST, permettant à votre file d'attente de réagir instantanément. La livraison par webhook fait partie de l'offre entreprise.
Lire la documentation
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Résultat

Vidéo synchronisée labialement, doublage et sous-titres

Téléchargez la vidéo générée à partir de lipsync_result_path. Le projet conserve la vidéo doublée sans synchronisation labiale et les sous-titres traduits au format SRT et VTT, ainsi que la voix traduite sous forme de pistes audio séparées sur les forfaits éligibles.
Champ
Format
Description
lipsync_result_path
MP4
La vidéo synchronisée labialement, prête à être publiée
voiceover
WAV
Voix traduite uniquement, pour votre propre mixage
translated_audio
WAV
Voix traduite mixée avec l'audio d'arrière-plan d'origine
translation_srt_path
.srt
Sous-titres dans la langue cible
translation_vtt_path
.vtt
Sous-titres identiques au format WebVTT, pour les lecteurs web
translated_video
MP4
La vidéo doublée sans synchronisation labiale, pour comparaison
Contrôle

Modifiez le doublage, puis générez une version mise à jour avec synchronisation labiale

Après avoir modifié le texte, le minutage ou les voix, redoublez les segments modifiés et générez la synchronisation labiale pour la vidéo mise à jour. Le redoublage et chaque nouvelle génération de synchronisation labiale pour toute la vidéo sont facturés séparément.

Édition au niveau du segment

Édition au niveau du segment
Modifiez des segments de transcription individuels et redoublez les lignes modifiées. Pour mettre à jour les mouvements des lèvres, générez une nouvelle synchronisation labiale pour toute la vidéo ; cela est facturé séparément.
Récupérer la transcription et ses segments
Modifiez le texte source et nous le traduisons à nouveau
Modifiez directement le texte traduit pour conserver vos propres mots
Ajuster les repères temporels, ajouter des segments, supprimer des segments
Réattribuer la voix associée à un locuteur

Glossaires pour la terminologie

Glossaires pour la terminologie
Ajoutez un glossaire pour que les noms de marque et les termes techniques soient prononcés de la même manière dans chaque doublage, et que la synchronisation labiale suive ces mêmes formulations.

Un glossaire couvre une paire de langues et s'applique à toutes les variantes régionales de cette langue cible, ce qui signifie qu'un seul glossaire en espagnol sert es-mx et es-es de même. Les enregistrements du projet glossary_version, de sorte que les modifications ultérieures ne modifient jamais le travail terminé sans que vous le sachiez.
Entrée

Formats de fichiers pris en charge

Téléchargez l'un des sept formats vidéo ou envoyez une URL publique. Les fichiers audio seuls ne comportent pas de visage à l'écran, la synchronisation labiale ne s'applique donc qu'aux formats vidéo.

Vidéo

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

Audio

4 formats
.mp3
.wav
.flac
.m4a

Métadonnées avant de dépenser

Le point de terminaison média renvoie la durée, la taille du fichier, le codec vidéo, la fréquence d'images, la résolution, le codec audio, la fréquence d'échantillonnage et la disposition des canaux. Validez un fichier et estimez le coût à l'avance, car le doublage et la synchronisation labiale sont tous deux facturés à la minute de vidéo.
Sécurité et conformité

Visages et voix, traités en toute sécurité

Brask Inc détient la certification SOC 2 Type II, respecte le RGPD et publie l'état de ses contrôles en direct dans son Centre de confiance. Les vidéos contenant des visages et des voix sont traitées dans un environnement IA sécurisé.

Certifications

SOC 2 Type II
RGPD
Membre de CAI et C2PA

Cryptage

TLS 1.2 en transit
AES-256 au repos
Clés gérées SSE-S3
Rotation des clés au moins tous les 12 mois

Votre contenu

Environnement IA fermé
Jamais utilisé pour entraîner des modèles généraux
Exportation complète, sans exclusivité

Accès

SSO et SAML
Contrôle d'accès par rôle
Identifiants client OAuth 2.0

Entreprise

Options de résidence des données
SLA personnalisés
Gestionnaire de compte dédié

Droits sur les voix

Voix synthétiques avec droits d'utilisation
Clonage vocal basé sur le consentement
Contrôles de sécurité de l'IA, intervention humaine
Comparaison

L'API Rask par rapport à un pipeline de synchronisation labiale créé par vos soins

Une API de synchronisation labiale autonome nécessite une piste audio finale dans la langue cible. Rask produit la piste doublée et synchronise les lèvres en un seul projet. Voici le même résultat, obtenu de deux manières différentes.
Ce dont vous avez besoin
Rask API
Assemblé à partir de pièces
Une piste audio traduite à synchroniser
Créé par le même projet
Fournisseurs de transcription, de traduction et de voix en premier
Vérification du visage avant de payer
Automatique, une fois par projet
Votre propre étape de détection des visages
Plusieurs visages à l'écran
is_multiple_speakers: true
Suivi visage par visage que vous créez et ajustez
Aperçu avant le traitement complet
Une minute gratuite par compte
Payer pour chaque test
Re-synchroniser après modification du script
Une nouvelle génération de synchronisation labiale pour toute la vidéo, facturée séparément
Payer à nouveau pour l'ensemble du fichier
Musique de fond et effets
Conservés avec la nouvelle voix
Une étape de séparation des sources que vous créez
Sous-titres au format .srt et .vtt
Inclus
Généré à partir de vos propres données de minutage
Visibilité de la file d'attente
Position dans la file d'attente et progression de 0 à 100
Tout ce que votre fournisseur prend en charge
Limites de débit
Aucun
Toutes les restrictions les plus strictes de votre fournisseur
Facturation
Par génération de synchronisation labiale pour toute la vidéo
Par exécution et par fournisseur
FAQ

API de synchronisation labiale : questions fréquentes

Vous ne trouvez pas ce que vous cherchez ? Contactez le service commercial.

Existe-t-il une API de synchronisation labiale ?

Puis-je synchroniser les mouvements des lèvres d'une vidéo sans la doubler au préalable ?

Puis-je synchroniser ma propre piste audio ?

L'API génère-t-elle des avatars parlants à partir d'une image ou d'une consigne ?

De quoi une vidéo a-t-elle besoin pour la synchronisation labiale ?

Comment la synchronisation labiale est-elle facturée ?

Existe-t-il un aperçu gratuit de la synchronisation labiale ?

La synchronisation labiale fonctionne-t-elle avec plusieurs interlocuteurs ?

Comment suivre la progression de la synchronisation labiale ?

Combien de temps prend la synchronisation labiale ?

Que se passe-t-il après la modification du doublage ?

Que faire en cas d'échec de la synchronisation labiale ?

Comment obtenir un accès à l'API et une clé API ?

Commencez le doublage en un après-midi

Faites votre première requête dès aujourd'hui et contactez-nous si vous avez besoin de tarifs dégressifs pour de grands volumes ou d'une langue rare.