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

Envoyez votre script chronométré avec un enregistrement vidéo ou audio, et générez une voix alignée sur sa chronologie. Choisissez des voix IA dans la bibliothèque ou un clone vocal, dans plus de 135 langues et options régionales, puis téléchargez la voix off, la vidéo et les sous-titres depuis le même projet.
Du script à la voix off
Voix IA et clones vocaux
REST + Kit de développement Python (SDK)
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 fait pour la vidéo

Transformez un script écrit en voix off adaptée à l'image : la bonne voix pour chaque intervenant, le minutage de vos segments, l'audio de fond, les sous-titres et la traduction dans un seul projet. Ajoutez la synchronisation labiale en option, facturée séparément.

Votre script, prononcé

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 préréglages de voix IA avec un genre défini. Listez-les pour un projet avec l'endpoint des voix et attribuez-en une à chaque intervenant par son identifiant.

Voix personnalisées et clones vocaux

Utilisez un clone vocal personnalisé enregistré comme voix de marque cohérente, ou conservez la voix d'un intervenant à l'écran avec le clonage vocal instantané, dans les langues prises en charge.

Synchronisé avec l'image

Chaque segment possède un temps de début et de fin, de sorte que chaque ligne parlée tombe 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, afin qu'un dialogue ou une distribution de voix de personnages reste clair et cohérent.

Plus de 135 langues et options régionales

Écrivez le script dans une langue et donnez-lui une voix dans une autre : Rask le traduit, et des voix IA sont disponibles pour chaque zone cible.

Piste audio vocale uniquement

Sur les abonnements éligibles, téléchargez l'audio parlé sous forme de piste WAV sans fond sonore, prête pour votre propre montage, ou le mix complet et la vidéo finale.

Modifier une ligne, régénérer une ligne

Modifiez le texte d'un segment ou la voix d'un intervenant et régénérez. Personne n'a besoin de réenregistrer quoi que ce soit, et seuls les segments modifiés sont facturés.

Évoluez sans limites

Pas de limites de débit, pas de quota de concurrence, pas de bridage par clé. Donnez une voix à du contenu long et à des catalogues vidéo complets en parallèle.
Voir en action

Écoutez une même image doublée en cinq langues

Le même extrait doublé en anglais, français, allemand, portugais et espagnol, parfaitement synchronisé avec l'image, tout en conservant l'audio de fond 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 audio pour votre script. Utilisez l'endpoint /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 correspondant à votre voix off, à l'aide d'un fichier ou d'une URL média prise en charge. Sa timeline sert de référence temporelle pour votre script.

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

Envoyez votre script

Créez une transcription à partir de segments de texte avec des repères temporels et des locuteurs, 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 locuteur, 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. L'audio est généré pour l'ensemble du projet et fourni sous forme de fichiers ; cette API est donc idéale pour des vidéos publiées plutôt que pour des conversations en direct.
Conçu pour vous

Vous avez besoin d'une voix qui ne figure pas dans notre bibliothèque ? Contactez notre équipe

Une voix de marque, une langue absente du catalogue, un volume plus élevé ou votre propre méthode de livraison : lorsqu'une intégration de voix off nécessite des fonctionnalités hors catalogue, 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 synthèse vocale pour les vidéos ?

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, solutions SaaS d'hébergement vidéo et de flux de travail, plateformes d'adoption numérique, live shopping. Permettez aux utilisateurs de saisir ou de télécharger un script pour obtenir la voix off de 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, chiffres à l'appui.
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. Les onglets Node, PHP et cURL montrent des exemples HTTP simples utilisant 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, arrêtez-vous 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, 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.
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 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

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
Ce que c'est
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
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 ligne ou une voix, et régénérez uniquement cette partie

Votre script est organisé en segments. Modifiez le texte d'une ligne ou la voix d'un interlocuteur, puis régénérez. Seuls les segments modifiés sont facturés, avec un minimum d'une minute par exécution.

Édition au niveau des segments

Édition au niveau des segments
Chaque projet présente son script sous forme de segments avec des repères temporels, des interlocuteurs et du texte, ce qui permet de corriger facilement une partie.
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
Lorsque Rask traduit votre script dans d'autres langues, un glossaire veille à ce que les noms de marque et les termes techniques restent identiques dans toutes les versions, ou soient conservés dans leur 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. 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 la vidéo associée à votre voix off dans n'importe quel format pris en charge, ou envoyez une URL. Les scripts sont reçus sous forme de segments de texte via l'API ou sous forme de 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 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 configuration 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é

Une sécurité de niveau entreprise pour vos scripts et vos voix

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

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 à une infrastructure de voix off créée par vos soins

Une API de synthèse vocale en streaming convertit du texte en données audio pour une utilisation en direct. La voix off pour une vidéo publiée nécessite également un minutage, une voix par interlocuteur, un mixage, des sous-titres et souvent une 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 interlocuteur ou personnage
Correspondance des voix par projet
Identifiants de voix gérés par requête
Une voix de marque cohérente
Clones de voix personnalisés
Un fournisseur de clonage distinct
Le même script dans d'autres langues
Traduction au sein du même projet
Une API de traduction associée à un nouveau minutage
Musique de fond et effets
Mixés 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
Format WAV sur les abonnements éligibles
Segments audio que vous assemblez vous-même
Modifier une seule ligne
Régénérer les segments modifiés
Resynthétiser et remixer le fichier
Limites de taux
Aucun
Quelles que soient les conditions imposées par votre fournisseur
Agents vocaux en direct avec diffusion en continu
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 envoyer mon script ?

Quelles sont les voix disponibles ?

Puis-je utiliser une voix personnalisée ?

Quelles langues sont prises en charge ?

Prenez-vous en charge les balises SSML ou les prononciations personnalisées ?

Puis-je contrôler l'émotion et l'expressivité ?

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

La tarification est-elle basée sur les caractères ?

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

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.