Como funciona o Scribe v2 Realtime

Como o Scribe v2 Realtime permite transcrição de baixa latência para tradução ao vivo e aplicativos de voz

Scribe v2 Realtime

O Scribe v2 Realtime é um modelo de Speech to Text extremamente rápido, ideal para transcrições ao vivo. A combinação de velocidade e qualidade permite usos que antes não eram possíveis.

Por exemplo, conseguimos criar este tradutor de idiomas em tempo real usando o Scribe v2 Realtime e a API do Chrome Translator.

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

Se você quiser o tutorial passo a passo deste demo, você encontra aqui. Este guia vai focar em explicar de forma geral o Scribe v2 Realtime e como ele funciona.

O Modelo

A ElevenLabs oferece dois modelos para transcrever áudio: Scribe v2 e 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.

O Scribe v2 é uma ótima opção para transcrições que podem ser feitas de forma assíncrona, enquanto o Scribe v2 Realtime é usado quando você precisa da transcrição ao vivo.

Para um aplicativo de tradução de idiomas ao vivo, o Scribe v2 Realtime é a escolha ideal.

A API

Para usar este modelo, você precisa utilizar a API de Speech to Text. São dois passos para começar:

  1. Iniciar uma instância do Scribe
  2. Conectar à API

Dependendo de onde você está chamando essa API, a inicialização será diferente. Se for do lado do servidor, basta usar a chave da API para iniciar e depois conectar ao Scribe v2 Realtime.

Mas, expor uma chave de API no cliente é um grande risco de segurança. Por isso, se você for transmitir do lado do cliente, precisa inicializar com um token de uso único.

Esse token precisa ser gerado no servidor para proteger a chave da API.

Como estamos criando um aplicativo em React, vamos usar o token. Esse token é passado na fase de conexão, então criar uma instância do Scribe fica bem simples.

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

Conectando ao Scribe v2 Realtime

Depois de inicializar corretamente, você pode se conectar ao Scribe v2 Realtime. No projeto de tradução em React, usamos transmissão do lado do cliente, então precisamos de um token de uso único gerado pelo backend. Esse token precisa ser gerado e passado toda vez que conectamos à 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};


Estratégia de Commit

Ao usar o Scribe v2 Realtime, existem dois tipos de transcrição: parcial e confirmada.

As transcrições parciais são as "transcrições ao vivo". Elas acontecem via websocket e são retornadas enquanto você fala. Então, se você disser "O gato está ...", essas palavras vão aparecer em tempo real.

O outro tipo é a transcrição confirmada. As transcrições funcionam em segmentos. Quando e como você decide confirmar as transcrições define como o texto será segmentado. Para isso, é preciso definir uma estratégia de commit.

Existem duas opções de estratégia de commit. A primeira é manual, onde você tem controle total para decidir quando as transcrições serão confirmadas. O ideal é fazer isso em momentos de silêncio ou em pontos lógicos, como a troca de falante.

A outra opção é deixar o Scribe v2 Realtime identificar automaticamente os melhores segmentos usando Voice Activity Detection (VAD). Assim, o sistema detecta automaticamente fala e silêncio. Quando atinge um limite de silêncio, o motor de transcrição confirma o segmento automaticamente.

Por que você precisa de uma estratégia de commit?

Enquanto você fala, o Scribe v2 Realtime transcreve cada palavra. Se você disser "Eu grito..." pode ser reconhecido como "Eu grito..." ou "Sorvete...". Mas, com o contexto completo do segmento "Eu grito toda vez que vejo uma aranha no banheiro", a transcrição fica mais precisa.

Assim, as transcrições parciais podem ser exibidas em tempo real, e as transcrições confirmadas trazem uma versão mais precisa do histórico da conversa.

Exibindo as Transcrições

Depois de se conectar ao Scribe v2 Realtime, a transcrição já está acontecendo. Você pode acessar as transcrições usando as propriedades partialTranscript e 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>

O partialTranscript é a transcrição em tempo real do segmento atual. O committedTranscript é o histórico da conversa, uma lista dos segmentos que foram confirmados enquanto você estava conectado ao Scribe v2 Realtime.

Traduza com IA

É só isso que você precisa para obter transcrições em tempo real das suas conversas. Agora, você pode personalizar o app com uma interface bonita ou até adicionar recursos como tradução de idiomas ao vivo.

Para criar o tradutor de idiomas em tempo real do demo, basta passar as transcrições para a API do Chrome AI Translator e exibir o resultado em tempo real.

Comece a criar

Obrigado por ler! Cadastre-se na ElevenLabs e comece a criar seus aplicativos!

Explore artigos da equipe ElevenLabs

ElevenLabs

Crie com o áudio IA da mais alta qualidade