> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Transcriptbewerking

> **Note**
>
> **Stapsgewijze handleiding** · Hierbij wordt ervan uitgegaan dat je de handleiding voor
> [client-side](/docs/nl/eleven-api/guides/how-to/speech-to-text/realtime/client-side-streaming) of
> [server-side streaming](/docs/nl/eleven-api/guides/how-to/speech-to-text/realtime/server-side-streaming) hebt gevolgd.

## Overzicht

> **Warning**
>
> Transcriptbewerking is een experimentele functie en voegt een toeslag van 30% toe aan de basiskosten voor transcriptie.
> Er worden minimaal 10 seconden audio per vastgelegd transcript gefactureerd. Bekijk de [API-prijspagina ](https://elevenlabs.io/pricing?price.section=speech_to_text\&price.sections=speech_to_text,speech_to_text#pricing-table)
> voor gedetailleerde prijsinformatie.

Realtime transcriptie kan op elk vastgelegd transcript een bewerkingsinstructie in natuurlijke taal toepassen, bijvoorbeeld om uitgesproken datums in een vaste notatie te schrijven of afkortingen en acroniemen uit te schrijven. De instructie wordt eenmaal doorgegeven wanneer de verbinding wordt geopend. Elk vastgelegd transcript wordt gevolgd door een afzonderlijke `edited_transcript`-event met de bewerkte tekst.

Gedeeltelijke transcripten worden nooit bewerkt. Ook de `committed_transcript`-event verandert niet, zodat bestaande integraties blijven werken wanneer je de functie inschakelt.

> **Warning**
>
> Transcriptbewerking kan niet worden gecombineerd met `entity_detection`. Verbindingen waarin beide zijn ingesteld,
> worden afgewezen met een `invalid_request`-fout.

## Transcriptbewerking inschakelen

Geef de instructie mee met de optie `transcriptEdit` bij het verbinden (de queryparameter `transcript_edit` van de WebSocket API). De instructie mag maximaal 2000 tekens lang zijn. Bekijk de [handleiding voor batchgewijze transcriptbewerking](/docs/nl/eleven-api/guides/how-to/speech-to-text/batch/transcript-editing#writing-instructions) voor richtlijnen voor het schrijven van instructies.

In alle SDK's komen de bewerkte transcripten binnen via de event `RealtimeEvents.EDITED_TRANSCRIPT`.

### Client-side

Gebruik `@elevenlabs/client` in de browser met een token voor eenmalig gebruik dat door je server is uitgegeven, zoals beschreven in de [handleiding voor client-side streaming](/docs/nl/eleven-api/guides/how-to/speech-to-text/realtime/client-side-streaming).

```typescript
import { Scribe, RealtimeEvents } from "@elevenlabs/client";

// Fetch a single-use token from your server first
const response = await fetch("/scribe-token", yourAuthHeaders);
const { token } = await response.json();

const connection = Scribe.connect({
  token,
  modelId: "scribe_v2_realtime",
  transcriptEdit: "Write all dates in ISO 8601 format (YYYY-MM-DD)",
  microphone: {
    echoCancellation: true,
    noiseSuppression: true,
  },
});

connection.on(RealtimeEvents.COMMITTED_TRANSCRIPT, (data) => {
  console.log("Committed:", data.text);
});

connection.on(RealtimeEvents.EDITED_TRANSCRIPT, (data) => {
  console.log("Edited:", data.edited_text);
});
```

### Server-side

Gebruik de officiële SDK op je server, zoals beschreven in de [handleiding voor server-side streaming](/docs/nl/eleven-api/guides/how-to/speech-to-text/realtime/server-side-streaming#configure-the-sdk). Alleen de optie en de event handler verschillen van die handleiding; het versturen van audio en het sluiten van de verbinding werken op dezelfde manier.

```python
import asyncio
import os
from dotenv import load_dotenv
from elevenlabs import AudioFormat, ElevenLabs, RealtimeAudioOptions, RealtimeEvents

load_dotenv()

async def main():
    elevenlabs = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"))

    connection = await elevenlabs.speech_to_text.realtime.connect(RealtimeAudioOptions(
        model_id="scribe_v2_realtime",
        audio_format=AudioFormat.PCM_16000,
        sample_rate=16000,
        transcript_edit="Write all dates in ISO 8601 format (YYYY-MM-DD)",
    ))

    def on_committed_transcript(data):
        print(f"Committed: {data.get('text', '')}")

    def on_edited_transcript(data):
        print(f"Edited: {data.get('edited_text', '')}")

    connection.on(RealtimeEvents.COMMITTED_TRANSCRIPT, on_committed_transcript)
    connection.on(RealtimeEvents.EDITED_TRANSCRIPT, on_edited_transcript)

    # Send audio chunks as shown in the server-side streaming guide, then close.
    await connection.close()

if __name__ == "__main__":
    asyncio.run(main())
```

```typescript
import { ElevenLabsClient, RealtimeEvents, AudioFormat } from "@elevenlabs/elevenlabs-js";
import "dotenv/config";

const elevenlabs = new ElevenLabsClient();

const connection = await elevenlabs.speechToText.realtime.connect({
  modelId: "scribe_v2_realtime",
  audioFormat: AudioFormat.PCM_16000,
  sampleRate: 16000,
  transcriptEdit: "Write all dates in ISO 8601 format (YYYY-MM-DD)",
});

connection.on(RealtimeEvents.COMMITTED_TRANSCRIPT, (data) => {
  console.log("Committed:", data.text);
});

connection.on(RealtimeEvents.EDITED_TRANSCRIPT, (data) => {
  console.log("Edited:", data.edited_text);
});

// Send audio chunks as shown in the server-side streaming guide, then close.
```

## Bewerkte transcripten ontvangen

Wanneer deze functie is ingeschakeld, wordt elk vastgelegd transcript gevolgd door een `edited_transcript`-event met de vastgelegde tekst en de bewerkte versie:

```json
{
  "message_type": "edited_transcript",
  "text": "our next meeting is on the twelfth of July twenty twenty-six",
  "edited_text": "our next meeting is on 2026-07-12"
}
```

Let op het volgende gedrag:

* Bewerkingen worden per vastgelegd segment toegepast. De event `edited_transcript` wordt kort na de bijbehorende event `committed_transcript` verzonden, omdat de bewerking asynchroon wordt uitgevoerd. De event kan na het volgende gedeeltelijke transcript binnenkomen en bewerkingen voor opeenvolgende segmenten kunnen in een andere volgorde binnenkomen. Gebruik het veld `text` om een bewerking aan het vastgelegde transcript te koppelen.
* Als er geen bewerkingen voor een segment zijn uitgevoerd, is `edited_text` identiek aan `text`.
* Als er geen bewerking voor een segment kan worden gemaakt, wordt hiervoor geen event `edited_transcript` verzonden. De event `committed_transcript` wordt niet beïnvloed.
* Timestamps op woordniveau in `committed_transcript_with_timestamps` beschrijven de oorspronkelijke vastgelegde tekst, niet de bewerkte tekst.

## Volgende stappen

#### [Batchgewijze transcriptbewerking](/docs/nl/eleven-api/guides/how-to/speech-to-text/batch/transcript-editing)

Richtlijnen voor het schrijven van instructies en de response-indeling voor batches.

#### [Eventreferentie](/docs/nl/eleven-api/guides/how-to/speech-to-text/realtime/event-reference)

Volledige lijst met events en fouttypen van de realtime STT API.