API de reconnaissance vocale pour fichiers audio et vidéo

Téléchargez un fichier audio ou vidéo préenregistré et obtenez une transcription avec des étiquettes d'intervenant et des horodatages pour chaque segment, dans 75 langues sources avec détection automatique de la langue. Le même projet le traduit ensuite dans plus de 135 langues et options régionales, avec des sous-titres et un doublage audio.
Diarisation des intervenants
75 langues sources
REST + Kit de développement Python (SDK)
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

La reconnaissance vocale est la première étape de chaque projet Rask. La transcription se présente sous forme de segments avec des étiquettes d'intervenant et des 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 préenregistré, ou partagez un lien, et l'API convertit la parole en texte écrit, segment par segment.

Diarisation des intervenants

Les différents intervenants sont détectés automatiquement et chaque segment comporte une étiquette d'intervenant telle que SPEAKER_00. Indiquez le nombre d'intervenants si vous le connaissez, ou corrigez une étiquette ultérieurement.

Horodatages pour chaque segment

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

75 langues sources

Prise en charge multilingue dans 75 langues sources. Laissez 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 langues et options régionales, afin que la transcription et la traduction restent alignées ligne par ligne.

Sous-titres au format .srt et .vtt

Chaque projet terminé comprend des fichiers de sous-titres dans la langue cible, synchronisés avec les segments de transcription. Plus besoin d'un second fournisseur pour les sous-titres.

Termes spécialisés dans la traduction

Un glossaire permet de conserver la cohérence des noms de produits, des noms propres et du vocabulaire spécifique au domaine lors de la traduction de la transcription, ou de la laisser intentionnellement dans la langue d'origine.

Modifier la transcription via l'API

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

Évoluez sans limites

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

Découvrez une transcription traduite en cinq versions linguistiques

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

Trois requêtes 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

Télécharger 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 de toute URL directe. Vous obtenez un identifiant de média et les métadonnées du fichier avant de dépenser le moindre crédit.

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 démarre 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 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 plus élevé ou votre propre méthode de livraison : notre équipe examine 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-en à notre équipe pour lui faire part de vos besoins et découvrir les options disponibles.

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 reconnaissance vocale pour les vidéos ?

Plateformes intégrant de la vidéo

Plateformes de formation et LMS, 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. Ajoutez 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 étiquettes d'intervenants comme premier brouillon pour vos relecteurs, corrigez les segments via l'API et fournissez 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 e-commerce internationaux, franchises mondiales, éditeurs de médias, universités d'entreprise. Transcrivez des formations enregistrées, des webinaires et des interviews, 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, chiffres à l'appui.
flèche
flèche
Code

Exemples de code d'API de synthèse vocale

Un exemple complet dans chaque langue : téléchargez un fichier audio ou vidéo, créez le projet, patientez, puis lisez les segments de transcription avec les intervenants et les repères temporels.
# 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. Les onglets Node, PHP et cURL montrent des exemples HTTP simples utilisant 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 d'afficher la progression réelle sur de longs enregistrements. Vous n'avez à intervenir que sur trois groupes.

Succès, arrêtez-vous ici

merging_done
Les fichiers de médias finaux et de sous-titres sont prêts. La transcription peut être lue plus tôt, dès que ses segments sont disponibles.

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

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

Lisez la transcription sous forme de segments JSON à partir du point de terminaison de transcription. Le projet terminé expose également des fichiers de sous-titres au format SRT et VTT dans la langue cible, la vidéo traduite et, pour les abonnements éligibles, la voix traduite sous forme de piste WAV séparée.
Champ
Format
Ce que c'est
segments
JSON
Transcription : texte source, traduction, étiquette d'intervenant, heure de début et de fin pour chaque segment
voiceover
WAV
Voix traduite uniquement, sans fond sonore, sur les abonnements éligibles
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, synchronisés avec les segments
translation_vtt_path
.vtt
Mêmes sous-titres au format WebVTT, pour les lecteurs web
translated_video
MP4
La vidéo traduite avec voix off
Contrôle

Corriger le segment de transcription par segment

La reconnaissance vocale vous offre un premier brouillon. Corrigez un mot, un repère temporel ou une étiquette 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 des segments

Édition au niveau des segments
Chaque projet expose sa transcription sous forme de segments adressables, de sorte qu'une correction de la transcription finale équivaut à une simple requête de mise à jour.
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
Une fois la transcription traduite, un glossaire permet de conserver les noms de marque, les noms propres et les termes techniques identiques dans toutes les versions, ou intentionnellement dans la langue d'origine.

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

Transcrivez des fichiers audio tels que 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 facturé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 disposition des canaux. Validez un fichier et estimez le coût à l'avance, car les projets sont facturés à la minute audio ou vidéo.
Sécurité et conformité

Sécurité de niveau professionnel pour les données audio et vocales

Brask Inc détient la certification SOC 2 Type II, opère conformément au RGPD et publie l'état de ses contrôles en direct dans son Centre de confiance, garantissant que les enregistrements et les transcriptions sont traités selon des contrôles audités.

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 par rapport à une API de synthèse vocale associée à votre propre pipeline

Une API de synthèse vocale transforme l'audio en texte. Lorsque ce texte doit devenir des sous-titres, des traductions et des versions doublées, le reste relève du travail de pipeline. 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 des étiquettes d'intervenants
Inclus
Inclus dans la plupart des API de synthèse vocale
Repères temporels
Par segment
Par mot dans de nombreuses API de synthèse vocale
Traduction de la transcription
Même projet, plus de 135 langues et options régionales
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 minutage
Audio et vidéo doublés
Inclus
Un fournisseur de synthèse vocale et votre propre mixage
Correction d'un segment
Une seule requête de modification, puis régénération
Modifier et resynchroniser vos propres copies
Limites de taux
Aucun
Quelles que soient les conditions imposées par votre fournisseur
Transcription en temps réel de contenus audio en direct
Utilisez une API de transcription en flux continu
Conçu pour cela
Une simple transcription, au prix le plus bas
Une API de transcription dédiée coûte moins cher
Tarifié par heure audio
FAQ

API de transcription : questions fréquentes

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

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

Quelles langues peut-il transcrire ?

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

Prend-il en charge la diarisation des locuteurs ?

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

Prend-il 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 importer 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 à 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.