Cómo funciona Scribe v2 Realtime

Cómo Scribe v2 Realtime permite transcripción de voz a texto en tiempo real y baja latencia para traducción en directo y aplicaciones de voz

Scribe v2 Realtime

Scribe v2 Realtime es un modelo de Voz a Texto extremadamente rápido, ideal para transcripciones en directo. Su combinación de velocidad y calidad permite casos de uso que antes no eran posibles.

Por ejemplo, hemos creado este traductor de idiomas en tiempo real usando Scribe v2 Realtime y la API de Chrome Translator.

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

Si quieres el tutorial paso a paso de esta demo, lo tienes aquí. En esta guía nos centraremos en entender cómo funciona Scribe v2 Realtime y sus conceptos clave.

El modelo

En ElevenLabs ofrecemos dos modelos para transcribir audio: Scribe v2 y 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 es una buena opción para transcripciones que pueden hacerse de forma asíncrona, mientras que Scribe v2 Realtime se usa cuando necesitas la transcripción en directo.

Para una aplicación de traducción de idiomas en tiempo real, Scribe v2 Realtime es la mejor opción.

La API

Para usar este modelo, necesitas la API de Voz a Texto. Hay dos pasos que debes seguir para empezar:

  1. Inicializa una instancia de Scribe
  2. Conéctate a la API

Según desde dónde llames a la API, tendrás que inicializarla de forma diferente. Si lo haces desde el servidor, puedes inicializar directamente con la clave de API y luego usar esa instancia para conectar con Scribe v2 Realtime.

Pero, exponer una clave de API al cliente es un gran riesgo de seguridad. Así que, si haces streaming desde el cliente, tendrás que inicializar con un token de un solo uso.

Este token debe generarse en el servidor para proteger la clave de API.

Como estamos creando una aplicación en React, usaremos el método del token. Este token se pasa durante la conexión, así que crear una instancia de Scribe es muy sencillo.

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

Conectando con Scribe v2 Realtime

Una vez inicializado correctamente, puedes conectar con Scribe v2 Realtime. Para el proyecto de traducción en React, usamos streaming desde el cliente, por lo que necesitamos un token de un solo uso generado en el backend. Este token debe generarse y pasarse cada vez que conectamos con la 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};


Estrategia de commit

Al trabajar con Scribe v2 Realtime, hay dos tipos de transcripciones: parciales y confirmadas.

Las transcripciones parciales son las "transcripciones en directo". Esta transcripción llega por websocket y la recibes mientras hablas. Por ejemplo, si dices "El gato está ...", verás esas palabras aparecer en tiempo real.

El otro tipo es la transcripción confirmada. Las transcripciones funcionan por segmentos. Cuándo y cómo decides confirmar tus transcripciones define cómo se segmenta el texto. Para esto, necesitas definir una estrategia de commit.

Hay dos opciones para la estrategia de commit. La primera es manual, que te da control total para decidir cuándo se confirman las transcripciones. Lo más recomendable es hacerlo durante silencios o en puntos lógicos, como los turnos de palabra.

La otra opción es dejar que Scribe v2 Realtime detecte automáticamente los segmentos de calidad usando Voice Activity Detection (VAD). Este método detecta automáticamente los tramos de voz y silencio. Cuando se alcanza un umbral de silencio, el motor de transcripción confirma el segmento de forma automática.

¿Por qué necesitas una estrategia de commit?

Mientras hablas, Scribe v2 Realtime transcribe cada palabra. Si dices "I scream..." puede interpretarse como "Ice cream...". Pero cuando tienes el contexto completo del segmento "I scream every time I see a spider in the bathroom", la transcripción es mucho más precisa.

Así que puedes mostrar las transcripciones parciales en tiempo real, y las confirmadas serán una transcripción más precisa del historial de la conversación.

Mostrar transcripciones

Una vez conectado a Scribe v2 Realtime, la transcripción ya está en marcha. Puedes acceder a las transcripciones usando las propiedades partialTranscript y 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>

partialTranscript es la transcripción en tiempo real del segmento actual que se está transcribiendo. committedTranscript es el historial de la conversación, y es una lista de segmentos que se han confirmado mientras estabas conectado a Scribe v2 Realtime.

Traduce con IA

Eso es todo lo que necesitas para obtener transcripciones en tiempo real de tus conversaciones. Ahora puedes mejorar la app con una buena interfaz o añadir funciones como traducción de idiomas en directo.

Para crear el traductor de idiomas en tiempo real de la demo, solo tienes que pasar las transcripciones a la API de Chrome AI Translator y mostrar el resultado en tiempo real.

Empieza a crear

¡Gracias por leernos! Regístrate en ElevenLabs y empieza a crear tus aplicaciones!

Descubre artículos del equipo de ElevenLabs

ElevenLabs

Crea con audio con IA de la más alta calidad

Empieza gratis

¿Ya tienes una cuenta? Inicia sesión