API de synchronisation labiale pour les vidéos doublées

Synchronisez les mouvements de la bouche avec la parole doublée dans plus de 135 options de langues et de régions. Dubbez votre vidéo via l'API, effectuez la synchronisation labial sur le résultat et téléchargez une vidéo où l'intervenant à l'écran prononce les nouveaux mots. Une vérification du visage est effectuée au préalable. La synchronisation labial est facturée séparément du doublage pour chaque génération de vidéo complète, y compris la régénération après modification.
Minute d'aperçu gratuite
Plusieurs visages à l'écran
REST + Kit de développement Python (SDK)
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 labial

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

Synchronisation labial sur vidéo traduite

Synchronisez les mouvements de la bouche avec la parole doublée dans une vidéo traduite par votre projet, parmi le catalogue pris en charge de plus de 135 options de langues et de régions.

Vérification automatique du visage

Avant la synchronisation labial, une tâche de vérification du visage confirme que la vidéo comporte au moins un visage. Elle s'exécute une fois par projet, généralement seule, afin que vous puissiez connaître le résultat avant de dépenser des minutes.

Plusieurs visages à l'écran

Définissez is_multiple_speakers sur true pour les interviews, les panels et les dialogues à plusieurs intervenants. Lorsqu'un seul visage est à l'écran à la fois, définissez-le sur false pour accélérer le traitement.

Une minute d'aperçu gratuite

Chaque compte bénéficie d'une minute de synchronisation labial gratuite. Exécutez-la avec is_free_lipsync sur vos propres séquences et examinez 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 labial de vidéo complète est facturée séparément du doublage. Après des modifications de script ou de voix, redubbez le projet et générez une nouvelle version synchronisée avec de nouveaux frais de synchronisation labial.

Position dans la file d'attente et progression

Le point de terminaison des informations de synchronisation labial renvoie le nombre de tâches précédant la vôtre et la progression de 0 à 100, afin que vos utilisateurs voient une progression réelle.

Des voix qui correspondent au visage

La synchronisation labial fonctionne en plus de la voix utilisée par le projet pour un intervenant : sa voix clonée ou un préréglage de voix AI.

Modifier, redubber, resynchroniser

Modifiez le texte, le minutage ou les voix, redubbez le projet, puis relancez la synchronisation labial sur la nouvelle version. La vérification du visage n'a pas besoin d'être exécutée à nouveau.

Évoluez sans limites

Aucune limite de débit, aucun quota de concurrence, aucun bridage par clé. Envoyez des tâches de synchronisation labial pour l'ensemble de votre catalogue, et la position dans la file d'attente vous indique où en est chacune d'elles.
Voir en action

De la parole doublée à la synchronisation des mouvements des lèvres

Le même extrait 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 refaire le doublage après des modifications, puis synchronisez à nouveau les lèvres.
1

Doubler la vidéo

Téléchargez la vidéo d'origine ou envoyez une URL publique, créez un projet avec une langue cible et attendez que la fusion soit terminée. 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'il y a au moins un visage dans la vidéo. Elle démarre généralement automatiquement. Si elle n'a pas démarré, 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 la progression de 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 varie selon la longueur de la vidéo et la file d'attente de synchronisation. Le point de terminaison d'informations indique combien de tâches se trouvent devant la vôtre.
Conçu pour vous

Vous avez besoin d'une synchronisation labiale pour un cas particulier ? Contactez notre équipe

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

Langues et voix

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

Diffusion et intégration

Webhooks, envoi vers votre propre file d'attente, livraison directe sur votre S3, endpoints personnalisés. Dites-nous comment votre système souhaite être alimenté.

Volume et débit

La taille des lots, les langues cibles par action et la priorité de traitement sont des conditions contractuelles, et non des limites de produit fixes.

Sécurité et hébergement

La résidence des données, le SSO et SAML, les règles de conservation et le support pour l'examen de la sécurité sont pris 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 des clients, 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 avec synchronisation labiale aux vidéos de vos utilisateurs et créateurs pour que les présentateurs traduits aient l'air naturels à l'écran, faisant de la synchronisation une fonctionnalité clé de votre produit.

Agences de localisation et de production

Proposez la synchronisation labiale comme option distincte en plus du doublage. Utilisez la minute d'essai gratuite de votre compte, si elle est disponible, pour évaluer le résultat. Intégrez la génération complète de la synchronisation labiale et toutes les générations ultérieures dans votre devis client.

Production vidéo continue en interne

Commerce de détail et e-commerce international, franchises mondiales, éditeurs de médias, universités d'entreprise. Pour les vidéos marketing, de formation et de direction où un visage apparaît à l'écran, la synchronisation labiale permet d'aligner la parole traduite sur l'intervenant sur chaque marché.
Témoignages clients

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

Découvrez comment les entreprises localisent leurs vidéos avec Rask, chiffres à l'appui.
flèche
flèche
Code

Exemples de code pour l'API de synchronisation labiale

Un exemple complet dans chaque langue, sur un projet déjà doublé : vérifier le visage, lancer la synchronisation labiale, suivre la progression et télécharger le 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. Les onglets Node, PHP et cURL montrent des exemples HTTP simples utilisant les mêmes points de terminaison.
Progression

Comment une tâche de synchronisation labiale indique sa progression

Le point de terminaison d'informations sur la synchronisation 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'agir que sur trois groupes.

Succès, arrêtez-vous 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, continuez à vérifier

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 dans la file d'attente : tasks_in_lipsync_queue indique le nombre de tâches en attente.

Échec, arrêt et rapport

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 de la tâche, contactez le support en indiquant 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 ignorez complètement le sondage

Indiquez-nous un point de terminaison webhook et chaque changement d'état est envoyé sous forme de POST, permettant à votre file d'attente de réagir instantanément à chaque modification. L'envoi de webhooks fait partie de l'intégration pour les entreprises.
Lire la documentation
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Sortie

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 labial 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
Ce que c'est
lipsync_result_path
MP4
La vidéo avec synchronisation labial, prête à être publiée
voiceover
WAV
Discours traduit uniquement, pour votre propre mixage
translated_audio
WAV
Discours traduit mixé avec l'audio d'arrière-plan d'origine
translation_srt_path
.srt
Sous-titres dans la langue cible
translation_vtt_path
.vtt
Mêmes sous-titres au format WebVTT, pour les lecteurs web
translated_video
MP4
La vidéo doublée sans synchronisation labial, pour comparaison
Contrôle

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

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

Édition au niveau des segments

Édition au niveau des segments
Modifiez les segments de transcription individuels et redoublez les lignes modifiées. Pour mettre à jour les mouvements des lèvres, générez une nouvelle synchronisation labial pour toute la vidéo ; ceci est facturé séparément.
Récupérer la transcription et ses segments
Modifier le texte source pour lancer une nouvelle traduction
Modifier directement le texte traduit pour conserver vos propres formulations
Ajuster les repères temporels, ajouter ou supprimer des segments
Réassigner 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 labial suive cette même formulation.

Un glossaire couvre une paire de langues et s'applique à toutes les variantes régionales de cette langue cible. Ainsi, un seul glossaire en espagnol sert es-mx et es-es de la même manière. L'historique du projet glossary_version, de sorte que les modifications ultérieures ne modifient jamais discrètement le travail déjà terminé.
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 contiennent pas de visage à l'écran, la synchronisation labial s'applique donc uniquement 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

L'endpoint 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 labial sont chacun facturés à la minute de durée 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 et opère sous le régime du RGPD, et publie le statut de contrôle en direct dans son Centre de confiance. Les vidéos contenant des visages et des voix sont traitées dans un environnement IA fermé.

Certifications

SOC 2 Type II
GDPR
Membre 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 d'IA fermé
Jamais utilisé pour entraîner des modèles généraux
Exportation complète, sans dépendance vis-à-vis d'un fournisseur

Accès

SSO et SAML
Contrôle d'accès basé sur les rôles
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 de voix basé sur le consentement
Contrôles de sécurité de l'IA, intervention humaine
Comparaison

API Rask par rapport à un pipeline de synchronisation labial que vous créez vous-même

Une API de synchronisation labial 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, assemblé de deux manières.
Ce dont vous avez besoin
Rask API
Assemblé à partir de pièces
Une piste audio traduite à synchroniser
Créé par le même projet
D'abord les fournisseurs de transcription, de traduction et de voix
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 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é avec la nouvelle voix
Une étape de séparation des sources à développer par vos soins
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
Ce que votre fournisseur prend en charge
Limites de taux
Aucun
Selon les exigences de votre fournisseur le plus strict
Facturation
Par génération de synchronisation labiale pour toute la vidéo
Par exécution, 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 lèvres d'une vidéo sans la doubler au préalable ?

Puis-je synchroniser les lèvres sur 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 est facturée la synchronisation labiale ?

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

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

Comment suivre la progression de la synchronisation labial ?

Combien de temps prend la synchronisation labial ?

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

Que faire si la synchronisation labial échoue ?

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

Commencez à doubler en un après-midi

Faites votre première demande dès aujourd'hui et contactez-nous si vous avez besoin de tarifs de gros ou d'une langue introuvable ailleurs.