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 chaque voix à partir de la vidéo source automatiquement, ou utilise un clone de voix 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 de voix instantané
Clones de voix personnalisés
REST + Kit de développement Python (SDK)
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 fait l'API de clonage de voix

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

Clone de voix 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 de voix 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 clonage de voix. 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 permet de suivre facilement les interviews, les panels et les podcasts.

Synchronisation labiale

Adaptez le mouvement de la bouche à la voix clonée en tant que tâche optionnelle sur tout projet terminé, facturée séparément. La détection des visages s'exécute en premier, afin que vous ne l'appliquiez que là où cela fonctionnera.

Audio d'arrière-plan préservé

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

Préréglages de voix IA

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

Identité vocale à travers les langues

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

Remplacer une voix, redoubler un intervenant

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

Évoluez sans limites

Aucune limite de débit, aucun quota de concurrence, aucun bridage par clé. Doublez votre catalogue complet avec des voix clonées en parallèle, à n'importe quel volume.
Voir en action

Écoutez un intervenant en cinq langues

Les voix originales 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 de la vidéo source aux voix clonées

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

Téléchargez votre vidéo

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

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

Créer le projet

Transmettez l'identifiant du média en tant que video_id ainsi qu'une langue cible. Chaque intervenant détecté reçoit un clone de voix instantané dans les langues prises en charge, et le doublage commence immédiatement.

POST /v2/projects
3

Attribuer des voix et refaire le doblaje

Répertoriez les voix du projet, attribuez un clone personnalisé ou un préréglage à 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

Vous avez besoin d'une voix qui ne figure pas dans le catalogue ? Contactez notre équipe

Clonage de voix pour une langue non encore prise en charge, bibliothèque de voix personnalisées plus vaste, méthode de livraison propre : lorsqu'un projet vocal nécessite quelque chose hors du catalogue public, notre équipe examine 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 clonage vocal ?

Plateformes intégrant de la vidéo

Plateformes LMS et de formation des clients, plateformes de créateurs et de vidéos ainsi que leurs applications mobiles, 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. Permettez aux créateurs et aux formateurs de conserver leur propre voix dans les langues de clonage vocal prises en charge. Utilisez des préréglages de voix IA pour les autres langues cibles et faites du doublage multilingue une fonctionnalité de votre plateforme.

Agences de localisation et de production

Fournissez des voix hors champ personnalisées avec la voix du présentateur d'origine pour chaque vidéo client. Conservez un clone de voix personnalisé pour chaque présentateur récurrent, avec son accord enregistré, et réutilisez-le dans chaque projet via l'API sans demander à quiconque de réenregistrer.

Production vidéo continue en interne

Vente au détail et e-commerce internationaux, 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 préréglages de voix IA pour les autres versions de marché des vidéos de formation, des mises à jour de produits et des messages internes.
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 clonage de voix

Un exemple complet dans chaque langue : authentification, téléchargement, doublage avec des clones de voix instantanés, attribution d'un clone personnalisé à un intervenant, redoublage et téléchargement.
# 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. Les onglets Node, PHP et cURL montrent des exemples HTTP simples utilisant les mêmes points de terminaison.
Progression

Comment un projet de clonage de voix rend compte de sa progression

Un projet progresse à travers une machine à états documentée lors du premier doublage et à nouveau après chaque redoublage, afin que vos utilisateurs voient une réelle progression à chaque modification de voix. Vous n'avez besoin d'intervenir que sur trois groupes.

Succès, arrêtez-vous 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 pour votre projet.

En cours, continuez à vérifier

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
Ainsi que la correspondance _done états. Ceux-ci correspondent parfaitement à une interface de progression par étapes.

Échec, arrêt et rapport

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 assez précis pour être montré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 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

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 au format SRT et VTT. Sur les abonnements éligibles, vous pouvez également télécharger la piste de voix clonée seule au format WAV, ou mixée avec l'audio de fond d'origine.
Champ
Format
Ce que c'est
translated_video
MP4
La vidéo doublée, prête à être publiée
voiceover
WAV
Parole traduite dans la voix clonée 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
original_video
MP4
Votre fichier source tel qu'il a été stocké, à titre de référence
Contrôle

Modifiez une voix, puis redoublez uniquement cet intervenant

Les clones instantanés conviennent à la plupart des intervenants. Lorsqu'une voix nécessite un choix différent, attribuez un clone personnalisé ou un préréglage à cet intervenant et régénérez. Seuls les segments modifiés sont facturés.

Édition au niveau des segments

Édition au niveau des segments
Chaque projet expose sa transcription sous forme de segments avec des étiquettes d'intervenant, de sorte que déplacer une ligne vers un autre intervenant ou modifier une voix ne nécessite qu'une seule requête.
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, les noms de produits et les termes techniques soient traduits de la même manière dans toutes les langues, peu importe la voix qui les prononce.

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 et quatre formats audio, ou envoyez une URL. La parole dans le fichier sert de référence pour le clone de voix instantané, un audio 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

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 avec des voix clonées est facturé à la minute.
Sécurité et conformité

Données vocales que votre équipe juridique peut approuver

Brask Inc. détient la certification SOC 2 Type II, fonctionne conformément au 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 assurer la sécurité des données, votre audio n'est jamais utilisé pour entraîner des modèles généraux.

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

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 de la vidéo source
Clonage de voix instantané, par défaut
Recueillir et télécharger 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 intermédiaire
Détection des locuteurs et une voix par locuteur
Inclus
Un fournisseur de diarisation ainsi que votre propre logique d'attribution des voix
Musique de fond et effets préservés
Inclus
Une étape de séparation des sources que vous créez et ajustez
Langues sans clonage de voix
Préréglages de voix IA
Un autre fournisseur de synthèse vocale
Synchronisation labiale
Optionnel, facturé séparément
Un fournisseur distinct
Changer la voix d'un locuteur
Doubler à nouveau ce locuteur, facturation basée sur les segments modifiés
Réexécuter le pipeline pour l'ensemble du fichier
Limites de taux
Aucun
Selon les exigences de votre fournisseur le plus strict
Une voix ou une langue hors catalogue
À discuter avec notre équipe
Dépend de chaque fournisseur
FAQ

API de clonage de voix : questions fréquentes

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

Existe-t-il une API pour le clonage de voix ?

Comment fonctionne le clonage de voix avec l'API ?

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

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

De quel type d'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 synthèse vocale (text-to-speech) ?

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 à 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.