API de transcription vocale pour les fichiers audio et vidéo

Téléchargez un fichier audio ou vidéo préenregistré pour obtenir une transcription segment par segment, avec l'identification des locuteurs et des horodatages, dans 75 langues sources grâce à la détection automatique. Le même projet permet de traduire le contenu dans plus de 135 langues et variantes régionales, avec sous-titres et voix off.
Identification des locuteurs
75 langues sources
REST + SDK Python
upload, transcribe, read
OAuth 2.0
# 1. upload an audio or video file by link
curl -X POST https://api.rask.ai/api/library/v1/media/link \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"link": "https://example.com/interview.mp3", "name": "interview"}'

# 2. create the project - speech recognition starts automatically
#    src_lang is optional: leave it out and the language is detected
curl -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{\"video_id\": \"$MEDIA_ID\", \"dst_lang\": \"es-mx\"}"
GET /v2/projects/{project_id}/transcription
segments
# Read the transcript: one object per segment
curl -s https://api.rask.ai/v2/projects/$ID/transcription -H "Authorization: Bearer $TOKEN" \
  | jq '.segments[] | {speaker, start, end, text: .src.text}'
Utilisé par des équipes du monde entier
Fonctionnalités

Tout ce que renvoie l'API de transcription vocale

La reconnaissance vocale constitue la première étape de tout projet Rask. La transcription est organisée en segments dotés de l'identification des locuteurs et d'horodatages, prêts à être modifiés, traduits, sous-titrés et doublés au sein du même projet.

Transcrire des fichiers audio et vidéo

Téléchargez un fichier audio ou vidéo, ou partagez un lien : l'API convertit la parole en texte écrit, segment par segment.

Identification des locuteurs

Les différents locuteurs sont détectés automatiquement, et chaque segment se voit attribuer un identifiant tel que SPEAKER_00. Indiquez le nombre de locuteurs si vous le connaissez, ou corrigez l'étiquette par la suite.

Des horodatages pour chaque segment

Chaque segment dispose d'un temps de début et de fin au format HH:MM:SS,mmm, idéal pour les sous-titres, la recherche et la navigation au sein d'un enregistrement.

75 langues sources

Prise en charge multilingue dans 75 langues sources. Laissez le champ de la langue source vide pour une détection automatique, ou définissez-la à l'aide d'un code à deux lettres.

Traduction dans le même segment

Chaque segment contient le texte source et sa traduction dans l'une des 135+ options linguistiques et régionales, garantissant un alignement parfait ligne par ligne entre la transcription et la traduction.

Sous-titres au format .srt et .vtt

Chaque projet terminé inclut des fichiers de sous-titres dans la langue cible, synchronisés avec les segments de la transcription. Plus besoin de prestataire tiers pour les sous-titres.

Termes spécialisés dans la traduction

Un glossaire assure la cohérence des noms de produits, des noms propres et du vocabulaire spécialisé lors de la traduction de la transcription, ou dans la langue d'origine si vous le souhaitez.

Modifier la transcription via l'API

Corrigez un mot, ajustez un horodatage, réattribuez un locuteur, ajoutez ou supprimez un segment. Les réviseurs corrigent la transcription finale au lieu de tout recommencer.

Évoluez sans limites

Aucune limite de débit, aucun quota de concurrence, aucune restriction par clé. Lancez des transcriptions par lot en parallèle sur l'ensemble de votre bibliothèque audio et vidéo.
Voir en action

Regardez une transcription se décliner en cinq langues

Le même extrait transcrit, traduit et doublé en anglais, français, allemand, portugais et espagnol, tout en préservant l'ambiance sonore d'origine.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
Flux de travail

Trois requêtes pour passer du fichier audio à la transcription

La création du projet lance la reconnaissance vocale, suivie de la traduction et de la voix off en une seule étape. Utilisez le point de terminaison /generate après avoir modifié la transcription.
1

Importer un fichier audio ou vidéo

Envoyez un fichier audio ou vidéo sous forme de données de formulaire multipart, ou publiez un lien provenant de YouTube, Google Drive, S3, Vimeo ou toute URL directe. Vous obtenez un identifiant de média et les métadonnées du fichier avant de dépenser quoi que ce soit.

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. Ajoutez la langue source ou le nombre d'intervenants si vous les connaissez. La reconnaissance commence immédiatement.

POST /v2/projects
3

Lire la transcription

Lisez la transcription dès que ses segments sont disponibles, pendant que le traitement du média traduit se poursuit. Téléchargez les fichiers de sous-titres et de médias une fois le projet terminé.

GET /v2/projects/{id}/transcription
La reconnaissance s'effectue sur des fichiers complets et préenregistrés plutôt que sur de l'audio en direct. Le temps de traitement varie en fonction de la durée du fichier, du nombre d'intervenants et de la langue cible.
Conçu pour vous

Vous avez besoin d'une langue ou d'un format qui ne figure pas dans la liste ? Contactez notre équipe

Une langue source absente de la liste, un format de transcription attendu par votre plateforme, un débit supérieur ou votre propre méthode de diffusion : notre équipe étudie les besoins de votre intégration et les options disponibles.

Langues et voix

Vous avez besoin d'une langue qui ne figure pas dans le catalogue public ? Parlez-nous de vos besoins et des options disponibles avec 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 conversion de la parole en texte 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, hébergement vidéo et SaaS de flux de travail, plateformes d'adoption numérique, shopping en direct. Intégrez des transcriptions, des sous-titres et des versions traduites de vidéos enregistrées en tant que fonctionnalité de votre produit.

Agences de localisation et de production

Utilisez la transcription avec les noms des intervenants comme premier brouillon pour vos réviseurs, corrigez les segments via l'API, et livrez des sous-titres, des traductions et des versions doublées à partir du même projet.

Production vidéo continue en interne

Vente au détail et commerce électronique internationaux, franchises mondiales, éditeurs de médias, universités d'entreprise. Retranscrivez des formations, des webinaires et des entretiens enregistrés, puis publiez des sous-titres et des versions linguistiques pour chaque marché.
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 conversion de la parole en texte

Un exemple complet dans chaque langue : importez un fichier audio ou vidéo, créez le projet, patientez, puis lisez les segments de transcription avec les intervenants et les horodatages.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

async def main():
    client = clients.RaskSDKClient(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)

    media = await client.create_media_link(data=schemas.MediaCreateLink(link="https://example.com/interview.mp3"))
    while media.status is enums.MediaStatus.PROCESSING:
        await asyncio.sleep(5)
        media = await client.get_media(media_id=media.id)

    # src_lang omitted: the source language is detected automatically
    job = await client.create_project(data=schemas.ProjectCreate(video_id=media.id, dst_lang="es-mx"))
    while job.status is not enums.ProjectStatus.MERGING_DONE:
        await asyncio.sleep(10)
        job = await client.get_project(project_id=job.id)

    transcript = await client.get_project_transcription(project_id=job.id)
    for seg in transcript.segments:
        print(seg.start, seg.end, seg.speaker, seg.src.text)

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

with open("interview.mp3", "rb") as f:
    media = requests.post(f"{API}/api/library/v1/media", headers=h,
                          params={"kind": "audio"}, files={"data": f}).json()
while media["status"] == "processing":
    time.sleep(5)
    media = requests.get(f"{API}/api/library/v1/media/{media['id']}", headers=h).json()

pid = requests.post(f"{API}/v2/projects", headers=h, json={
    "video_id": media["id"], "dst_lang": "es-mx", "num_speakers": 2}).json()["id"]
while requests.get(f"{API}/v2/projects/{pid}", headers=h).json()["status"] != "merging_done":
    time.sleep(10)

# write the source transcript as an .srt file
segments = requests.get(f"{API}/v2/projects/{pid}/transcription", headers=h).json()["segments"]
with open("interview_en.srt", "w") as out:
    for i, s in enumerate(segments, 1):
        out.write(f"{i}\n{s['start']} --> {s['end']}\n{s['speaker']}: {s['src']['text']}\n\n")
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());

let media = await call('POST', '/api/library/v1/media/link', { link: 'https://example.com/webinar.mp4' });
while (media.status === 'processing') { await sleep(5000); media = await call('GET', `/api/library/v1/media/${media.id}`); }

let p = await call('POST', '/v2/projects', { video_id: media.id, src_lang: 'en', dst_lang: 'de-de' });
while (p.status !== 'merging_done') { await sleep(10000); p = await call('GET', `/v2/projects/${p.id}`); }

const { segments } = await call('GET', `/v2/projects/${p.id}/transcription`);
segments.forEach((s) => console.log(`[${s.start}] ${s.speaker}: ${s.src.text}`));
console.log(p.translation_vtt_path);   // German subtitles for your player
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. upload a local audio file
MEDIA_ID=$(curl -s -X POST "https://api.rask.ai/api/library/v1/media?kind=audio" \
  -H "Authorization: Bearer $TOKEN" -F "data=@podcast_episode.mp3" | jq -r .id)

# 3. create the project once the media status is ready
ID=$(curl -s -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{\"video_id\": \"$MEDIA_ID\", \"dst_lang\": \"fr-fr\"}" | jq -r .id)

# 4. when status is merging_done, read the transcript with speaker labels
curl -s https://api.rask.ai/v2/projects/$ID/transcription -H "Authorization: Bearer $TOKEN" \
  | jq -r '.segments[] | "\(.start) \(.speaker): \(.src.text)"'
local file upload
audio file, multipart
<?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']];

$media = $json($http->post('/api/library/v1/media/link', ['headers' => $h, 'json' => [
    'link' => 'https://example.com/interview.mp3']]));
while ($media['status'] === 'processing') {
    sleep(5);
    $media = $json($http->get("/api/library/v1/media/{$media['id']}", ['headers' => $h]));
}

$p = $json($http->post('/v2/projects', ['headers' => $h, 'json' => [
    'video_id' => $media['id'], 'dst_lang' => 'es-mx']]));
while ($p['status'] !== 'merging_done') {
    sleep(10);
    $p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
}

$t = $json($http->get("/v2/projects/{$p['id']}/transcription", ['headers' => $h]));
foreach ($t['segments'] as $s) {
    echo $s['start'], ' ', $s['speaker'], ': ', $s['src']['text'], PHP_EOL;
}
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 de transcription indique sa progression

La transcription est la première étape d'un projet doté de statuts documentés, ce qui vous permet de suivre la progression réelle sur les longs enregistrements. Vous n'avez à intervenir que sur trois groupes.

Succès, s'arrêter ici

merging_done
Les fichiers multimédias et de sous-titres finaux sont prêts. La transcription peut être lue plus tôt, dès que ses segments sont 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.
Two speakers
GET /v2/projects/{id}/transcription
{"segments": [
  {"speaker": "SPEAKER_00", "start": "00:00:00,320", "end": "00:00:07,316", "status": "done",
   "src": {"text": "Thanks for joining us. Let's start with the new release.", "lang": "en"},
   "dst": {"text": "Gracias por acompañarnos. Empecemos con la nueva versión.", "lang": "es-mx"}},
  {"speaker": "SPEAKER_01", "start": "00:00:07,640", "end": "00:00:11,900", "status": "done",
   "src": {"text": "Sure. The biggest change is the reporting view.", "lang": "en"},
   "dst": {"text": "Claro. El cambio más grande es la vista de reportes.", "lang": "es-mx"}}
]}

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

Segments de transcription, sous-titres et médias traduits

Lisez la transcription sous forme de segments JSON depuis le point de terminaison de transcription. Le projet terminé propose également des fichiers de sous-titres au format SRT et VTT dans la langue cible, la vidéo traduite et, sur les abonnements éligibles, la voix traduite sous forme de piste WAV séparée.
Champ
Format
Description
segments
JSON
Transcription : texte source, traduction, nom de l'intervenant, heure de début et de fin pour chaque segment
voiceover
WAV
Voix traduite uniquement, sans arrière-plan, sur les abonnements éligibles
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, synchronisés avec les segments
translation_vtt_path
.vtt
Sous-titres identiques au format WebVTT, pour les lecteurs web
translated_video
MP4
La vidéo traduite avec la voix off
Contrôle

Corriger la transcription segment par segment

La reconnaissance vocale génère une première version. Corrigez un mot, un repère temporel ou un nom d'intervenant en une seule requête par segment, puis régénérez la version traduite. La régénération est facturée sur les segments modifiés, avec un minimum d'une minute par exécution.

Édition au niveau du segment

Édition au niveau du segment
Chaque projet expose sa transcription sous forme de segments accessibles, ce qui permet de corriger la transcription finale avec une simple requête de mise à jour.
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
Une fois la transcription traduite, un glossaire veille à ce que les noms de marque, les noms propres et les termes techniques restent identiques dans toutes les versions, ou soient conservés 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

Transcrivez des fichiers audio comme des podcasts, des interviews et des appels enregistrés, ou des vidéos dans n'importe quel format pris en charge, ou envoyez une URL. Si vous envoyez un fichier non pris en charge, l'API le rejette avant qu'aucune minute ne soit décomptée.

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 les projets sont facturés à la minute d'audio ou de vidéo.
Sécurité et conformité

Une sécurité de niveau entreprise pour vos données audio et vocales

Rask Inc détient la certification SOC 2 Type II, respecte le RGPD et publie l'état de ses contrôles en direct sur son Centre de confiance. Vos enregistrements et transcriptions sont ainsi traités selon des procédures rigoureusement contrôlées.

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 à une API de transcription classique et votre propre infrastructure

Une API de transcription transforme l'audio en texte. Lorsque ce texte doit ensuite devenir des sous-titres, des traductions et des versions doublées, tout le reste demande du travail de développement. 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
Une transcription avec l'identification des interlocuteurs
Inclus
Inclus dans la plupart des API de transcription
Repères temporels
Par segment
Par mot dans de nombreuses API de transcription
Traduction de la transcription
Même projet, plus de 135 options de langues et de régions
Une API de traduction séparée
Sous-titres au format .srt et .vtt
Inclus, dans la langue cible
Créé à partir de vos propres données de synchronisation
Audio et vidéo doublés
Inclus
Un fournisseur de synthèse vocale et votre propre mixage
Correction d'un segment
Une requête de modification, puis régénération
Modifier et resynchroniser vos propres copies
Limites de débit
Aucun
Ce que votre fournisseur impose
Transcription en temps réel de l'audio en direct
Utiliser une API de transcription vocale en flux continu
Conçu pour cela
Une simple transcription au plus bas prix
Une API de transcription vocale dédiée coûte moins cher
Tarification par heure audio
FAQ

API de transcription vocale : questions fréquentes

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

Rask dispose-t-il d'une API de transcription vocale ?

Quelles langues peut-elle transcrire ?

Puis-je transcrire des fichiers audio sans vidéo ?

Prend-elle en charge la diarisation des locuteurs ?

L'API renvoie-t-elle des horodatages au niveau des mots ?

Prend-elle en charge la transcription en temps réel ?

Quel est le niveau de précision de la transcription ?

Puis-je ajouter du vocabulaire personnalisé ou des termes spécifiques à mon secteur ?

Puis-je obtenir la transcription sous forme de fichier SRT ?

Puis-je utiliser ma propre transcription ?

Comment la transcription est-elle facturée ?

Existe-t-il une offre gratuite ?

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.