Comment fonctionne Scribe v2 Realtime

Comment Scribe v2 Realtime permet une transcription à faible latence pour la traduction en direct et les applications vocales

Scribe v2 Realtime

Scribe v2 Realtime est un modèle Speech to Text extrêmement rapide, utilisable pour des transcriptions en direct. Sa rapidité et sa qualité ouvrent la voie à des usages qui n’étaient pas possibles auparavant.

Par exemple, nous avons pu créer ce traducteur de langues en temps réel grâce à Scribe v2 Realtime et à l’API Chrome Translator.

Live transcription on the left and committed transcripts on the right in a list

Si vous voulez le tutoriel pas à pas pour cette démo, vous le trouverez ici. Ce guide va plutôt vous aider à comprendre Scribe v2 Realtime et son fonctionnement.

Le modèle

ElevenLabs propose deux modèles pour transcrire l’audio : Scribe v2 et Scribe v2 Realtime.

Optimized For
Scribe v2
Accuracy
Scribe v2 Realtime
Ultra low latency
Use Case
Scribe v2
Batch transcription, subtitling, and captioning at scale.
Scribe v2 Realtime
Voice agents, meeting notetakers, and other live applications.

Scribe v2 est idéal pour la transcription asynchrone, tandis que Scribe v2 Realtime s’utilise quand la transcription doit se faire en direct.

Pour une application de traduction de langue en direct, Scribe v2 Realtime est le choix évident.

L’API

Pour utiliser ce modèle, il faut passer par l’API Speech to Text. Voici les deux étapes à suivre pour commencer :

  1. Initialiser une instance Scribe
  2. Se connecter à l’API

Selon l’endroit d’où vous appelez cette API, l’initialisation sera différente. Si vous l’utilisez côté serveur, vous pouvez l’initialiser directement avec la clé API puis utiliser cette instance pour vous connecter à Scribe v2 Realtime.

Mais, exposer une clé API côté client représente un risque de sécurité important. Donc, si vous faites du streaming côté client, il faut initialiser avec un jeton à usage unique.

Ce jeton doit être généré côté serveur pour protéger la clé API.

Comme nous créons une application React, nous allons utiliser la méthode du jeton. Ce jeton est transmis lors de la connexion, ce qui rend la création d’une instance Scribe très simple.

1import { useScribe } from "@elevenlabs/react";
2
3function MyComponent() {
4 const scribe = useScribe({
5 modelId: "scribe_v2_realtime",
6 });
7
8 //...
9}

Connexion à Scribe v2 Realtime

Une fois l’initialisation faite, vous pouvez vous connecter à Scribe v2 Realtime. Pour le projet de traduction de langue avec React, nous avons utilisé le streaming côté client, donc il fallait un jeton à usage unique généré par le backend. Ce jeton doit être généré et transmis à chaque connexion à l’API.

1const handleStart = async () => {
2 const token = await fetchTokenFromServer();
3
4 await scribe.connect({
5 token,
6 microphone: {
7 echoCancellation: true,
8 noiseSuppression: true,
9 },
10 });
11};


Stratégie de validation

Avec Scribe v2 Realtime, il existe deux types de transcriptions : partielle et validée.

Les transcriptions partielles sont les « transcriptions en direct ». Elles arrivent via websocket et s’affichent au fur et à mesure que vous parlez. Par exemple, si vous dites « Le chat est ... », ces mots s’affichent en temps réel.

L’autre type de transcription est la transcription validée. Les transcriptions fonctionnent par segments. Le moment et la façon dont vous validez vos transcriptions déterminent la segmentation. Pour cela, il faut définir une stratégie de validation.

Il existe deux options pour la validation. La première est manuelle, ce qui vous laisse le contrôle total pour décider quand valider les transcriptions. Le mieux est de le faire pendant les silences ou à des moments logiques, comme lors d’un changement d’interlocuteur.

L’autre option est de laisser Scribe v2 Realtime déterminer automatiquement les segments grâce à la détection d’activité vocale (VAD). Cette méthode détecte automatiquement les moments de parole et de silence. Quand un seuil de silence est atteint, le moteur valide automatiquement le segment de transcription.

Pourquoi a-t-on besoin d’une stratégie de validation ?

Pendant que vous parlez, Scribe v2 Realtime transcrit chaque mot. Par exemple, si vous dites « Je crie... », cela peut être compris comme « Je crie... » ou « Je crée... ». Mais avec le contexte complet du segment « Je crie à chaque fois que je vois une araignée dans la salle de bain », la transcription est plus précise.

Les transcriptions partielles peuvent donc s’afficher en temps réel, tandis que les transcriptions validées offrent une version plus fidèle de l’historique de la conversation.

Afficher les transcriptions

Une fois connecté à Scribe v2 Realtime, la transcription démarre. Vous pouvez accéder aux transcriptions via les propriétés partialTranscript et committedTranscripts.

1<div>
2 <button onClick={handleStart} disabled={scribe.isConnected}>
3 Start Recording
4 </button>
5 <button onClick={scribe.disconnect} disabled={!scribe.isConnected}>
6 Stop
7 </button>
8
9 {scribe.partialTranscript && <p>Live: {scribe.partialTranscript}</p>}
10
11 <div>
12 {scribe.committedTranscripts.map((t) => (
13 <p key={t.id}>{t.text}</p>
14 ))}
15 </div>
16</div>

Le partialTranscript correspond à la transcription en temps réel du segment en cours. Le committedTranscript est l’historique de la conversation, c’est-à-dire la liste des segments validés pendant la connexion à Scribe v2 Realtime.

Traduire avec l’IA

C’est tout ce qu’il faut pour obtenir des transcriptions en temps réel de vos conversations. Vous pouvez maintenant améliorer l’application avec une belle interface ou ajouter des fonctionnalités comme la traduction de langue en direct.

Pour créer le traducteur de langues en temps réel de la démo, il suffit de transmettre les transcriptions à l’ API Chrome AI Translator et d’afficher le résultat en temps réel.

Commencer à créer

Merci de votre lecture ! Inscrivez-vous sur ElevenLabs et commencez à créer vos applications !

Découvrez les articles de l'équipe ElevenLabs

ElevenLabs

Créez avec l'audio AI de la plus haute qualité.

Se lancer gratuitement

Vous avez déjà un compte ? Se connecter