API de clonage vocal pour les vidéos traduites

Conservez la voix de chaque intervenant lorsque vos vidéos parlent d'autres langues. L'API clone automatiquement chaque voix de la vidéo source, ou utilise un clone vocal personnalisé créé au préalable, et renvoie la vidéo doublée avec les voix clonées, les pistes audio et les sous-titres.
Clone vocal instantané
Clones vocaux personnalisés
REST + SDK Python
clone, assign, re-dub
OAuth 2.0
# 1. create the dub - each speaker gets an Instant Voice Clone by default
curl -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"video_id": "b8f7835d-e8c9-4ff4-8e34-5c336d818319", "dst_lang": "es-mx"}'

# 2. list the voices available in this project
curl https://api.rask.ai/v2/projects/$ID/voices \
  -H "Authorization: Bearer $TOKEN"
#  "label": "Voice Clone", "gender": "auto"         instant clone
#  "label": "Maria Lopez", "sample_src": "https://..."  your custom clone

# 3. assign your custom clone - include every speaker in the map
curl -X PATCH https://api.rask.ai/v2/projects/$ID \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"voice": {"SPEAKER_00": "<custom_voice_id>", "SPEAKER_01": "<voice_id>"}}'
GET /v2/projects/{project_id}
polling, 10s
# 4. re-dub with the new voices, then poll until merging_done
curl -X POST https://api.rask.ai/v2/projects/$ID/generate \
  -H "Authorization: Bearer $TOKEN"
while :; do
  curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" | jq .status
  sleep 10
done
Utilisé par des équipes du monde entier
Fonctionnalités

Tout ce que l'API de clonage vocal peut faire

Clonez chaque intervenant de la vidéo source, ou utilisez un clone vocal personnalisé créé au préalable, pour chaque version traduite et dans plusieurs langues. Choisissez des préréglages de voix par IA pour les langues qui ne prennent pas en charge le clonage vocal. Ajoutez la synchronisation labiale en option, facturée séparément.

Clone vocal instantané

Chaque intervenant obtient un clone de sa propre voix à partir de la vidéo source, sans aucun échantillon audio à enregistrer. Il est attribué par défaut dans les langues cibles prises en charge.

Clones vocaux personnalisés

Créez une voix réutilisable dans l'application Rask à partir d'échantillons audio propres, ou enregistrez la voix d'un intervenant depuis un projet existant dans votre bibliothèque de clones vocaux. Avec le consentement de l'intervenant, réutilisez cette voix dans vos projets d'API dans les langues cibles prises en charge.

Une voix par intervenant

Les intervenants sont séparés automatiquement et chacun conserve sa propre voix clonée, ce qui rend les interviews, les tables rondes et les podcasts faciles à suivre.

Synchronisation labiale

Ajustez les mouvements de la bouche pour qu'ils correspondent à la voix clonée en option sur n'importe quel projet terminé, facturé séparément. La détection des visages s'exécute en premier, vous l'appliquez donc uniquement là où cela fonctionnera.

Audio de fond préservé

La musique, l'ambiance de la pièce et les effets sonores sont séparés de la voix et mixés à nouveau sous la voix clonée, de sorte que le résultat conserve l'ambiance de la production d'origine.

Préréglages de voix par IA

Pour les langues sans clonage vocal, ou lorsqu'une voix de synthèse convient mieux, choisissez un préréglage de voix par IA avec un genre défini pour n'importe quel intervenant.

Identité vocale d'une langue à l'autre

Le clone parle espagnol, français ou japonais avec la voix de l'intervenant d'origine, de sorte que le présentateur garde sa vraie voix pour son public international.

Remplacer une voix, redoubler un intervenant

Attribuez une voix différente à un intervenant et relancez la génération. Seuls les segments modifiés sont facturés, personne n'a besoin de réenregistrer quoi que ce soit.

Évoluez sans limites

Pas de limites de débit, pas de quota de concurrence, pas de bridage par clé. Doublez l'intégralité de votre catalogue avec des voix clonées en parallèle, quel que soit le volume.
Voir en action

Écoutez un intervenant en cinq langues

Les voix d'origine en anglais, puis les voix clonées en français, allemand, portugais et espagnol. Chaque intervenant conserve sa propre voix et l'audio de fond reste intact.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
Flux de travail

Trois étapes entre la vidéo source et les voix clonées

La création du projet lance le doublage avec des clones vocaux instantanés. Utilisez le point de terminaison /generate après avoir changé de voix ou modifié le script.
1

Téléchargez votre vidéo

Envoyez un fichier sous forme de données de formulaire multipartite, ou publiez un lien depuis YouTube, Google Drive, S3, Vimeo ou toute autre URL directe. La voix de cette vidéo sert d'échantillon pour chaque clonage de voix instantané.

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

Créer le projet

Transmettez l'ID du média en tant que video_id ainsi qu'une langue cible. Chaque intervenant détecté bénéficie d'un clonage de voix instantané dans les langues prises en charge, et le doublage commence immédiatement.

POST /v2/projects
3

Attribuer des voix et redoubler

Affichez la liste des voix du projet, attribuez un clone personnalisé ou une voix prédéfinie à n'importe quel intervenant, puis appelez /generate et téléchargez les fichiers une fois le doublage terminé.

PATCH /v2/projects/{project_id}
Le temps de traitement varie selon le projet. Lorsque vous modifiez la voix d'un intervenant, seuls les segments de cet intervenant sont redoublés et facturés.
Conçu pour vous

Besoin d'une voix hors catalogue ? Contactez notre équipe

Clonage de voix pour une langue non prise en charge, bibliothèque de voix personnalisées plus vaste, méthode de livraison spécifique : lorsqu'un projet vocal nécessite des fonctionnalités 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 clonage de voix

Plateformes intégrant de la vidéo

Plateformes LMS et de formation client, plateformes de création et de vidéo avec leurs applications mobiles, outils de webinaires et d'événements virtuels, solutions SaaS d'hébergement vidéo et de flux de travail, plateformes d'adoption numérique, live shopping. Permettez aux créateurs et aux formateurs de conserver leur propre voix dans toutes les langues de clonage prises en charge. Utilisez des voix prédéfinies par l'IA pour d'autres langues cibles et intégrez le doublage multilingue à votre plateforme.

Agences de localisation et de production

Proposez des doublages personnalisés avec la voix du présentateur d'origine pour chaque vidéo client. Conservez un clone vocal personnalisé pour chaque présentateur récurrent, avec son accord, et réutilisez-le dans tous vos projets via l'API sans lui demander de réenregistrer.

Production vidéo continue en interne

Commerce de détail international et e-commerce, franchises mondiales, éditeurs de médias, universités d'entreprise. Formateurs, dirigeants et experts produits enregistrent une seule fois, puis utilisent leur voix clonée pour les langues cibles prises en charge et des voix prédéfinies par l'IA pour les autres versions linguistiques de leurs vidéos de formation, mises à jour produits et messages internes.
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 clonage de voix

Un exemple complet par langage : s'authentifier, importer, doubler avec les clones vocaux instantanés, attribuer un clone personnalisé à un intervenant, redoubler et télécharger.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

async def wait(client, job):
    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)

    # first dub: every speaker gets an Instant Voice Clone
    job = await wait(client, await client.create_project(
        data=schemas.ProjectCreate(video_id=video.id, dst_lang="es-mx")))

    # assign a custom clone to SPEAKER_00, keep the other speakers as they are
    voices = await client.get_project_voices(project_id=job.id)
    custom = next(v for v in voices if v.label == "Maria Lopez")
    voice_map = {**job.voice, "SPEAKER_00": custom.id}
    await client.patch_project(project_id=job.id, data=schemas.ProjectPatch(voice=voice_map))

    job = await wait(client, await client.generate_project(project_id=job.id))
    print(job.translated_video, job.voiceover)

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}"}

def wait(pid):
    while (p := requests.get(f"{API}/v2/projects/{pid}", headers=h).json())["status"] != "merging_done":
        time.sleep(10)
    return p

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()

pid = requests.post(f"{API}/v2/projects", headers=h,
                    json={"video_id": video["id"], "dst_lang": "es-mx"}).json()["id"]
project = wait(pid)

voices = requests.get(f"{API}/v2/projects/{pid}/voices", headers=h).json()
custom = next(v for v in voices if v["label"] == "Maria Lopez")
voice_map = {**project["voice"], "SPEAKER_00": custom["id"]}   # every speaker stays in the map

requests.patch(f"{API}/v2/projects/{pid}", headers=h, json={"voice": voice_map})
requests.post(f"{API}/v2/projects/{pid}/generate", headers=h)
print(wait(pid)["translated_video"])
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 wait = async (id) => { let p; while ((p = await call('GET', `/v2/projects/${id}`)).status !== 'merging_done') await sleep(10000); return p; };

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

const { id } = await call('POST', '/v2/projects', { video_id: video.id, dst_lang: 'es-mx' });
const project = await wait(id);

const voices = await call('GET', `/v2/projects/${id}/voices`);
const custom = voices.find((v) => v.label === 'Maria Lopez');
await call('PATCH', `/v2/projects/${id}`, { voice: { ...project.voice, SPEAKER_00: custom.id } });
await call('POST', `/v2/projects/${id}/generate`);

console.log((await wait(id)).translated_video);
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. create the dub - Instant Voice Clones are assigned by default
ID=$(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\"}" | jq -r .id)

# 3. after merging_done: read the current voice map and the voice options
curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" | jq .voice
curl -s https://api.rask.ai/v2/projects/$ID/voices -H "Authorization: Bearer $TOKEN" | jq '.[] | {id, label, gender}'

# 4. assign voices for every speaker, then re-dub
curl -s -X PATCH https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" -d '{"voice": {"SPEAKER_00": "<custom_voice_id>", "SPEAKER_01": "<voice_id>"}}'
curl -s -X POST https://api.rask.ai/v2/projects/$ID/generate -H "Authorization: Bearer $TOKEN"
PATCH /v2/projects/{id}
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']];

$wait = function ($id) use ($http, $h, $json) {
    do { sleep(10); $p = $json($http->get("/v2/projects/$id", ['headers' => $h])); }
    while ($p['status'] !== 'merging_done');
    return $p;
};

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

$voices = $json($http->get("/v2/projects/$id/voices", ['headers' => $h]));
$custom = current(array_filter($voices, fn($v) => $v['label'] === 'Maria Lopez'));
$map = array_merge($project['voice'], ['SPEAKER_00' => $custom['id']]);

$http->patch("/v2/projects/$id", ['headers' => $h, 'json' => ['voice' => $map]]);
$http->post("/v2/projects/$id/generate", ['headers' => $h]);
echo $wait($id)['translated_video'];
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 le suivi d'un projet de clonage de voix est affiché

Un projet suit une progression structurée lors du premier doublage et après chaque redoublage, afin que vos utilisateurs voient les progrès réalisés à chaque changement de voix. Vous n'intervenez que sur trois étapes.

Succès, s'arrêter ici

merging_done
Le doublage est terminé. Récupérez le projet une fois de plus pour obtenir les liens de téléchargement disponibles.

En cours, continuer d'interroger

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
Ainsi que les _done états correspondants. Ceux-ci s'intègrent parfaitement dans une interface de progression par étapes.

Échec, s'arrêter et signaler

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words et forbidden_link sont suffisamment précis pour être affichés directement à vos propres utilisateurs.
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

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

Voix clonée, vidéo doublée et sous-titres

Téléchargez la vidéo doublée avec les voix clonées et les sous-titres traduits aux formats SRT et VTT. Sur les abonnements éligibles, vous pouvez également télécharger la piste vocale clonée seule au format WAV, ou mixée avec l'audio de fond d'origine.
Champ
Format
Description
translated_video
MP4
La vidéo doublée, prête à être publiée
voiceover
WAV
Voix traduite uniquement avec le clone vocal, 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
original_video
MP4
Votre fichier source tel qu'il a été enregistré, à titre de référence
Contrôle

Changez de voix, puis redoublez uniquement cet intervenant

Les clones instantanés conviennent à la plupart des intervenants. Si une voix nécessite un choix différent, attribuez un clone personnalisé ou une voix prédéfinie à cet intervenant et relancez la génération. Seuls les segments modifiés sont facturés.

Édition au niveau du segment

Édition au niveau du segment
Chaque projet présente sa transcription sous forme de segments avec des étiquettes d'intervenants. Ainsi, déplacer une ligne vers un autre intervenant ou changer de voix se fait en une seule requête.
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, les noms de produits et les termes techniques soient traduits de la même manière dans toutes les langues, quelle que soit la voix qui les prononce.

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

Importez l'un des sept formats vidéo et quatre formats audio pris en charge, ou envoyez une URL. L'audio du fichier sert de référence pour le clonage vocal instantané. Un son clair garantit donc les meilleurs résultats.

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'interface dédiée aux médias 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 son coût à l'avance, car le doublage avec des voix clonées est facturé à la minute.
Sécurité et conformité

Des données vocales que votre service juridique peut valider

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 clones de voix personnalisés sont créés avec le consentement du locuteur et, pour garantir la sécurité des données, vos fichiers audio ne sont jamais utilisés pour entraîner des modèles généraux.

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 face à un pipeline vocal créé par vos soins

Une API de clonage de texte par synthèse vocale vocalise le texte que vous envoyez. Les voix clonées dans une vidéo traduite nécessitent également une transcription, une traduction, une séparation des locuteurs, un minutage et un mixage. 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
Cloner chaque locuteur à partir de la vidéo source
Clonage vocal instantané par défaut
Collecter et importer des échantillons pour chaque locuteur
Voix personnalisées réutilisables
Clones de voix personnalisés par voice_id
Une bibliothèque vocale que vous créez et gérez
Transcription, traduction, synthèse, mixage
Une seule API
Trois à quatre fournisseurs et le code pour les relier
Détection des locuteurs et une voix par locuteur
Inclus
Un fournisseur de diarisation et votre propre logique d'attribution des voix
Musique de fond et effets sonores conservés
Inclus
Une étape de séparation des pistes à concevoir et à régler vous-même
Langues sans clonage vocal
Préréglages de voix par IA
Un autre fournisseur de synthèse vocale
Synchronisation labiale
En option, facturé séparément
Un fournisseur distinct
Modifier la voix d'un locuteur
Doubler à nouveau ce locuteur, facturation basée sur les segments modifiés
Relancer le pipeline pour l'ensemble du fichier
Limites de débit
Aucun
Toutes les restrictions les plus strictes de votre fournisseur
Une voix ou une langue hors catalogue
À discuter avec notre équipe
Dépend de chaque fournisseur
FAQ

API de clonage vocal : questions fréquentes

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

Existe-t-il une API pour le clonage vocal ?

Comment fonctionne le clonage de voix avec l'API ?

Quelle est la différence entre le clonage vocal instantané et le clone de voix personnalisé ?

Puis-je créer un clone de voix personnalisé via l'API ?

De quel fichier audio ai-je besoin pour un clone de voix personnalisé ?

Quelles langues prennent en charge le clonage de voix ?

Puis-je utiliser l'API de clonage de voix comme outil de synthèse vocale ?

Comment modifier la voix d'un interlocuteur après le doublage ?

Combien de voix personnalisées puis-je enregistrer ?

Un consentement est-il requis pour cloner une voix ?

La voix clonée conserve-t-elle l'émotion et l'accent de l'interlocuteur ?

Puis-je utiliser des voix clonées à des fins commerciales ?

Combien coûte le clonage de voix ?

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.