Maak kennis met Eleven v4Maak kennis met Eleven v4, ons meest expressieve model tot nu toe.

Naar content

Hoe Scribe v2 Realtime werkt

Geschreven door
Tadas Petra
Gepubliceerd
Laatst bijgewerkt

LuisterenLuister naar dit artikel

Scribe v2 Realtime is een uiterst snel Speech to Text-model dat je kunt gebruiken voor live transcripties. De combinatie van snelheid en kwaliteit maakt toepassingen mogelijk die voorheen niet mogelijk waren.

We konden bijvoorbeeld deze realtime taalvertaler bouwen met Scribe v2 Realtime en de Chrome Translator API.

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

Als je de stapsgewijze tutorial voor deze demo wilt, vind je die hier. Deze handleiding richt zich op een algemeen begrip van Scribe v2 Realtime en hoe het werkt.

Het model

ElevenLabs biedt twee modellen voor het transcriberen van audio: Scribe v2 en 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 is een uitstekende keuze voor transcripties die asynchroon kunnen plaatsvinden, terwijl je Scribe v2 Realtime gebruikt wanneer de transcriptie live moet plaatsvinden.

Voor een live taalvertaalapplicatie is Scribe v2 Realtime de voor de hand liggende keuze.

De API

Om dit model te gebruiken, heb je de Speech to Text API nodig. Om aan de slag te gaan, voer je twee stappen uit:

  1. Een Scribe-instantie initialiseren
  2. Verbinding maken met de API

Afhankelijk van waar je deze API aanroept, moet je deze anders initialiseren. Als je deze server-side aanroept, kun je hem rechtstreeks met de API-sleutel initialiseren en die instantie vervolgens gebruiken om verbinding te maken met Scribe v2 Realtime.

Maar het blootstellen van een API-sleutel aan de client vormt een groot beveiligingsrisico. Als je dus client-side streamt, moet je initialiseren met een token voor eenmalig gebruik.

Dit token moet server-side worden gegenereerd om de API-sleutel te beschermen.

Omdat we een React-applicatie bouwen, gebruiken we de tokenaanpak. Dit token wordt tijdens de verbindingsfase doorgegeven, waardoor het maken van een Scribe-instantie eenvoudig wordt.

import { useScribe } from "@elevenlabs/react";

function MyComponent() {
  const scribe = useScribe({
    modelId: "scribe_v2_realtime",
  });
  
  //...
}

Verbinding maken met Scribe v2 Realtime

Zodra je alles correct hebt geïnitialiseerd, kun je verbinding maken met Scribe v2 Realtime. Voor het React-project voor taalvertaling gebruikten we client-side streaming en hadden we daarom een token voor eenmalig gebruik van de backend nodig. Dit token moet elke keer dat we verbinding maken met de API worden gegenereerd en doorgegeven.

const handleStart = async () => {
  const token = await fetchTokenFromServer();

  await scribe.connect({
    token,
    microphone: {
	  echoCancellation: true,
	  noiseSuppression: true,
    },
  });
};


Commitstrategie

Wanneer je met Scribe v2 Realtime werkt, zijn er twee soorten transcripties: gedeeltelijke en vastgelegde.

De gedeeltelijke transcripties zijn de "live transcripties". Deze transcriptie verloopt via een websocket en wordt naar je teruggestuurd terwijl je spreekt. Dus als je "The cat is ..." zegt, zie je die woorden realtime binnenstromen.

Het andere type transcriptie is een vastgelegde transcriptie. Transcripties werken in segmenten. Wanneer en hoe je ervoor kiest je transcripties vast te leggen, bepaalt hoe je transcript wordt ingedeeld in segmenten. Hiervoor moet je een commitstrategie definiëren.

Er zijn twee opties voor commitstrategieën. De eerste optie is handmatig, waarmee je volledige controle hebt over wanneer de transcripties worden vastgelegd. Het is het beste om dit te doen tijdens stiltes of op andere logische momenten, zoals aan het einde van een spreekbeurt.

De andere optie is om Scribe v2 Realtime zelf kwaliteitssegmenten te laten bepalen met behulp van Voice Activity Detection (VAD). Deze aanpak detecteert automatisch spraak- en stiltesegmenten. Wanneer een stiltedrempel is bereikt, legt de transcriptie-engine het transcriptsegment automatisch vast.

Waarom heb je eigenlijk een commitstrategie nodig?

Terwijl je spreekt, transcribeert Scribe v2 Realtime elk woord. Dus als je "I scream..." zegt, kan dit worden herkend als "Ice cream...". Maar wanneer je de volledige context hebt van het segment "I scream every time I see a spider in the bathroom," is de uitvoer nauwkeuriger.

Je kunt de gedeeltelijke transcripties dus realtime weergeven, terwijl de vastgelegde transcripties een nauwkeurigere transcriptie van de gesprekshistorie kunnen zijn.

Transcripties weergeven

Zodra je verbonden bent met Scribe v2 Realtime, vindt de transcriptie plaats. Je krijgt toegang tot de transcripties via de eigenschappen partialTranscript en committedTranscripts.

<div>
  <button onClick={handleStart} disabled={scribe.isConnected}>
	Start Recording
  </button>
  <button onClick={scribe.disconnect} disabled={!scribe.isConnected}>
	Stop
  </button>

  {scribe.partialTranscript && <p>Live: {scribe.partialTranscript}</p>}

  <div>
	{scribe.committedTranscripts.map((t) => (
	  <p key={t.id}>{t.text}</p>
	))}
  </div>
</div>

partialTranscript is het realtime transcript van het huidige segment dat wordt getranscribeerd. committedTranscript is de gesprekshistorie en bestaat uit een lijst met segmenten die zijn vastgelegd terwijl je verbonden was met Scribe v2 Realtime.

Vertalen met AI

Dat is alles wat je hoeft te doen om realtime transcripties van je gesprekken te krijgen. Nu kun je deze app voorzien van een mooie UI of zelfs meer functies toevoegen, zoals live taalvertaling.

Om de realtime taalvertaler uit de demo te maken, geef je de transcripties door aan de Chrome AI Translator API en geef je de uitvoer realtime weer.

Begin met bouwen

Bedankt voor het lezen! Meld je aan bij ElevenLabs en begin met het bouwen van je applicaties!

Geschreven door

Tadas Petra is Developer Relations Engineer en helpt ontwikkelaars bouwen met de productreeks van ElevenLabs. Hij is ook de oprichter van Hungrimind, een onderwijsplatform voor ontwikkelaars. Eerder was hij Lead Developer Advocate bij Agora en docent bij Zero To Mastery.

Vergelijkbare artikelen

Creëer met AI-audio van de hoogste kwaliteit