API de synthèse vocale pour voix off de vidéos

Envoyez votre script minuté avec un enregistrement vidéo ou audio, et générez une voix parfaitement synchronisée sur la timeline. Choisissez des voix de l'IA dans notre bibliothèque ou utilisez un clone vocal parmi plus de 135 langues et variantes régionales. Téléchargez ensuite la voix off, la vidéo et les sous-titres depuis le même projet.
De script à voix off
Voix par IA et clones vocaux
REST + SDK Python
script in, voiceover out
OAuth 2.0
# 1. send your script as timed segments - one speaker per line
curl -X POST https://api.rask.ai/v2/transcriptions \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"segments": [
    {"speaker": "SPEAKER_00", "start": "00:00:00,500", "end": "00:00:04,800",
     "src": {"text": "Welcome to the new dashboard.", "lang": "en"},
     "dst": {"text": "Bienvenido al nuevo panel.", "lang": "es-mx"}}
  ]}'

# 2. voice the script over your video
curl -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"es-mx\", \"transcript_id\": \"$TRANSCRIPT_ID\"}"
GET /v2/projects/{project_id}
voiceover links
# When status is merging_done, read the voiceover links
curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" \
  | jq '{status, voiceover, translated_audio, translated_video}'
Utilisé par des équipes du monde entier
Fonctionnalités

Tout ce que l'API de synthèse vocale peut faire pour vos vidéos

Transformez un script écrit en voix off adaptée à l'image : la bonne voix pour chaque intervenant, un minutage basé sur vos segments, un son d'arrière-plan, des sous-titres et une traduction, le tout dans un seul projet. Ajoutez une synchronisation labiale en option, facturée séparément.

Votre texte, mis en voix

Créez une transcription à partir de vos propres segments de texte ou d'un fichier SRT, et l'API génère la voix correspondant exactement à ce script dans la langue cible.

Bibliothèque de voix

Chaque zone géographique cible dispose de voix de l'IA prédéfinies avec un genre spécifique. Affichez-les pour un projet via le point de terminaison des voix et attribuez-en une à chaque intervenant grâce à son identifiant.

Voix personnalisées et clones vocaux

Utilisez un clone vocal personnalisé enregistré pour garantir une voix de marque cohérente, ou conservez la voix de l'intervenant à l'écran grâce au clonage vocal instantané, dans les langues prises en charge.

Synchronisé avec l'image

Chaque segment possède un moment de début et de fin, ce qui garantit que chaque ligne parlée se place exactement là où elle doit être dans la vidéo.

Voix de personnages et dialogues

Attribuez un intervenant à chaque ligne et une voix à chaque intervenant, pour que les dialogues ou les différentes voix de personnages restent clairs et cohérents.

Plus de 135 options de langues et de régions

Rédigez le script dans une langue et donnez-lui vie dans une autre : Rask s'occupe de la traduction, et des voix de l'IA sont disponibles pour chaque région cible.

Piste audio vocale uniquement

Sur les forfaits éligibles, téléchargez la piste vocale au format WAV sans les sons d'arrière-plan, prête à être montée, ou récupérez le mixage complet et la vidéo finale.

Modifiez une ligne, régénérez une ligne

Modifiez le texte d'un segment ou la voix d'un intervenant et relancez la génération. Plus besoin de tout réenregistrer, et seuls les segments modifiés sont facturés.

Évoluez sans limites

Aucune limite de débit, aucun quota de concurrence, aucun bridage par clé. Créez des voix off pour des contenus longs et des catalogues vidéo complets en parallèle.
Voir en action

Écoutez une même vidéo parlée en cinq langues

Le même clip doublé en anglais, français, allemand, portugais et espagnol, parfaitement synchronisé avec l'image, en conservant le son d'arrière-plan d'origine.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
Flux de travail

Trois étapes du script à la voix off

La création du projet lance la génération vocale de votre script. Utilisez le point de terminaison /generate après avoir modifié le texte ou les voix.
1

Téléchargez une vidéo ou un fichier audio

Téléchargez la vidéo ou l'enregistrement audio associé à votre voix off, via un fichier ou une URL multimédia compatible. Sa chronologie fournit le rythme de votre script.

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

Envoyez votre script

Créez une transcription à partir de segments de texte avec des horodatages et des interlocuteurs, ou à partir d'un fichier SRT, puis créez le projet avec son transcript_id et une langue cible.

POST /v2/transcriptions
3

Choisissez les voix et téléchargez

Affichez la liste des voix, attribuez une voix prédéfinie ou un clone à chaque interlocuteur, régénérez si nécessaire, puis téléchargez la voix off, la vidéo et les fichiers de sous-titres.

GET /v2/projects/{id}/voices
Le temps de traitement varie selon le projet. La voix est générée pour l'ensemble du projet et fournie sous forme de fichiers, ce qui rend cette API idéale pour les vidéos publiées plutôt que pour les conversations en direct.
Conçu pour vous

Besoin d'une voix absente de la bibliothèque ? Contactez notre équipe

Une voix de marque, une langue hors catalogue, un débit plus élevé ou votre propre mode de diffusion : lorsqu'une intégration de voix off nécessite des éléments non présents dans le catalogue public, notre équipe examine 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 synthèse vocale pour la vidéo ?

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 et de flux de travail vidéo, plateformes d'adoption numérique, shopping en direct. Permettez aux utilisateurs de saisir ou d'importer un script et d'obtenir une voix off pour leurs vidéos en plusieurs langues, sans quitter votre produit.

Agences de localisation et de production

Validez les scripts audio des vidéos des clients, qu’ils soient lus par des voix générées par IA ou par la voix personnalisée d’un client, puis fournissez le fichier WAV contenant uniquement la voix pour que vous puissiez réaliser votre propre mixage. Modifiez une réplique après révision et régénérez uniquement ce segment.

Production vidéo continue en interne

Commerce de détail et commerce en ligne à l'international, franchises mondiales, éditeurs de médias, centres de formation d'entreprise. Réaliser des voix off pour des vidéos de formation, de présentation de produits et de marketing à partir d'un script écrit, et mettre à jour le texte en cas de modification du produit.
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 synthèse vocale

Un exemple complet dans chaque langue : envoyer un script sous forme de segments chronométrés, créer le projet, choisir une voix dans la bibliothèque, régénérer et télécharger la voix off.
# 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)

    script = await client.create_transcription(data=schemas.TranscriptionCreate(segments=[
        schemas.SegmentCreate(speaker="SPEAKER_00", start="00:00:00,500", end="00:00:04,800",
            src=schemas.SegmentTextCreatePatch(text="Welcome to the new dashboard.", lang="en"),
            dst=schemas.SegmentTextCreatePatch(text="Bienvenido al nuevo panel.", lang="es-mx")),
    ]))

    job = await wait(client, await client.create_project(data=schemas.ProjectCreate(
        video_id=VIDEO_ID, dst_lang="es-mx", transcript_id=script.id)))

    # pick a female AI voice preset from the library for SPEAKER_00
    voices = await client.get_project_voices(project_id=job.id)
    preset = next(v for v in voices if v.gender == "female")
    await client.patch_project(project_id=job.id, data=schemas.ProjectPatch(voice={**job.voice, "SPEAKER_00": preset.id}))

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

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

script = requests.post(f"{API}/v2/transcriptions", headers=h, json={"segments": [
        {"speaker": "SPEAKER_00", "start": "00:00:00,500", "end": "00:00:04,800",
         "src": {"text": "Welcome to the new dashboard.", "lang": "en"},
         "dst": {"text": "Bienvenido al nuevo panel.", "lang": "es-mx"}},
    ]}).json()

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

voices = requests.get(f"{API}/v2/projects/{pid}/voices", headers=h).json()
preset = next(v for v in voices if v["gender"] == "female")
requests.patch(f"{API}/v2/projects/{pid}", headers=h,
               json={"voice": {**project["voice"], "SPEAKER_00": preset["id"]}})
requests.post(f"{API}/v2/projects/{pid}/generate", headers=h)
print(wait(pid)["voiceover"])
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; };

const script = await call('POST', '/v2/transcriptions', { segments: [
  { speaker: 'SPEAKER_00', start: '00:00:00,500', end: '00:00:04,800',
    src: { text: 'Welcome to the new dashboard.', lang: 'en' },
    dst: { text: 'Bienvenido al nuevo panel.', lang: 'es-mx' } },
] });

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

const voices = await call('GET', `/v2/projects/${id}/voices`);
const preset = voices.find((v) => v.gender === 'female');
await call('PATCH', `/v2/projects/${id}`, { voice: { ...project.voice, SPEAKER_00: preset.id } });
await call('POST', `/v2/projects/${id}/generate`);
console.log((await wait(id)).voiceover);
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. your script as an SRT file in the target language
TRANSCRIPT_ID=$(curl -s -X POST "https://api.rask.ai/v2/transcriptions/srt?dst_lang=es-mx" \
  -H "Authorization: Bearer $TOKEN" -F "dst=@script_es-mx.srt" | jq -r .id)

# 3. voice it over the video
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\", \"transcript_id\": \"$TRANSCRIPT_ID\"}" | jq -r .id)

# 4. when status is merging_done, read the voiceover links
curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" \
  | jq '{status, voiceover, translated_video}'
POST /v2/transcriptions/srt
script from an SRT file
<?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']];

$script = $json($http->post('/v2/transcriptions', ['headers' => $h, 'json' => ['segments' => [[
    'speaker' => 'SPEAKER_00', 'start' => '00:00:00,500', 'end' => '00:00:04,800',
    'src' => ['text' => 'Welcome to the new dashboard.', 'lang' => 'en'],
    'dst' => ['text' => 'Bienvenido al nuevo panel.', 'lang' => 'es-mx'],
]]]]));

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

while ($p['status'] !== 'merging_done') {
    sleep(10);
    $p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
}
echo $p['voiceover'];
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 un projet d'enregistrement de voix off rend compte de l'avancement des travaux

La rédaction de discours s'organise sous forme de projet dont les étapes sont clairement documentées, ce qui vous permet de montrer des progrès concrets, même pour les contenus volumineux. Il vous suffit d'intervenir sur trois groupes.

Succès, s'arrêter ici

merging_done
L'enregistrement de la voix off est terminé. Récupérez à nouveau le projet pour obtenir les liens de téléchargement disponibles pour celui-ci.

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.
Voice options in a project, es-mx
GET /v2/projects/{project_id}/voices
{"label": "Renata",      "gender": "female", "sample_src": "https://..."}   AI voice preset
{"label": "Gerardo",     "gender": "male",   "sample_src": "https://..."}   AI voice preset
{"label": "Maria Lopez", "gender": "auto",   "sample_src": "https://..."}   custom voice clone
{"label": "Voice Clone", "gender": "auto",   "sample_src": null}            instant voice clone

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

Audio de voix off, vidéo et sous-titres

Téléchargez la vidéo avec la nouvelle voix off et les sous-titres aux formats SRT et VTT. Avec certains abonnements, vous pouvez également télécharger uniquement la piste audio au format WAV, ou mixée avec la bande-son d'origine.
Champ
Format
Description
translated_video
MP4
La vidéo avec la voix off générée, prête à être publiée
voiceover
WAV
Uniquement la voix synthétisée, sans fond sonore, à monter vous-même
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

Modifiez une ligne ou une voix, et régénérez uniquement cette partie

Votre script est enregistré sous forme de segments. Modifiez le texte d'une ligne ou la voix d'un interlocuteur, régénérez, et seuls les segments modifiés sont facturés, avec un minimum d'une minute par exécution.

Édition au niveau du segment

Édition au niveau du segment
Chaque projet présente son script sous forme de segments dotés d'horodatages, d'interlocuteurs et de texte, de sorte qu'une correction s'effectue en une seule requête de modification.
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
Lorsque Rask traduit votre script dans d'autres langues, un glossaire permet de conserver les noms de marque et les termes techniques identiques dans chaque version, ou dans la langue d'origine si vous le souhaitez.

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 la vidéo associée à votre voix off dans n'importe quel format pris en charge, ou envoyez une URL. Les scripts sont transmis sous forme de segments de texte via l'API ou en tant que fichiers SRT.

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 multimé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 la voix off est facturée à la minute de vidéo et non au nombre de caractères.
Sécurité et conformité

Sécurité de niveau professionnel pour les scripts et les voix

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 vocaux personnalisés sont créés avec le consentement de l'interlocuteur.

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

Rask API face à un système de voix off fait maison

Une API de synthèse vocale en streaming convertit du texte en flux audio pour une utilisation en direct. La voix off pour des vidéos publiées nécessite également le minutage, une voix par interlocuteur, le mixage, des sous-titres et souvent la traduction. Voici la même voix off, assemblée de deux manières différentes.
Ce dont vous avez besoin
Rask API
Assemblé à partir de pièces
Un script synchronisé avec la vidéo
Segments avec heures de début et de fin
Votre propre logique d'alignement
Une voix pour chaque intervenant ou personnage
Cartographie vocale par projet
Identifiants vocaux gérés par requête
Une voix de marque cohérente
Clones vocaux personnalisés
Un fournisseur de clonage distinct
Le même script dans d'autres langues
Traduction dans le même projet
Une API de traduction associée à une nouvelle synchronisation
Musique de fond et effets
Mixé sous la voix off
Votre propre étape de mixage
Sous-titres au format .srt et .vtt
Inclus
Généré à partir de vos propres données de minutage
Une piste audio contenant uniquement la voix
WAV sur les abonnements éligibles
Des segments audio que vous assemblez vous-même
Modifier une ligne
Régénérer les segments modifiés
Re-synthétiser et re-mixer le fichier
Limites de débit
Aucun
Ce que votre fournisseur impose
Agents vocaux en direct avec streaming
Utiliser une API de synthèse vocale en streaming
Conçu pour cela
FAQ

API de synthèse vocale : questions fréquentes

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

Rask dispose-t-il d'une API de synthèse vocale ?

Puis-je l'utiliser pour des agents vocaux ou des centres de contact ?

L'API prend-elle en charge la sortie audio en streaming ?

Comment puis-je envoyer mon scénario ?

Quelles voix sont disponibles ?

Puis-je utiliser une voix personnalisée ?

Quelles sont les langues prises en charge ?

Prend-il en charge les balises SSML ou les prononciations personnalisées ?

Puis-je maîtriser mes émotions et la manière dont je m'exprime ?

Ai-je besoin d'une vidéo pour générer de la parole ?

Le tarif est-il calculé au caractère ?

Existe-t-il une formule gratuite ou des crédits gratuits ?

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.