> 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.

# Transkriptbearbeitung

> **Note**
>
> **Anleitung** · Setzt voraus, dass Sie die Anleitung für
> [clientseitiges](/docs/de/eleven-api/guides/how-to/speech-to-text/realtime/client-side-streaming) oder
> [serverseitiges Streaming](/docs/de/eleven-api/guides/how-to/speech-to-text/realtime/server-side-streaming) abgeschlossen haben.

## Übersicht

> **Warning**
>
> Die Transkriptbearbeitung ist eine experimentelle Funktion und verursacht einen Aufschlag von 30 % auf die Grundkosten der Transkription.
> Pro übermitteltem Transkript werden mindestens 10 Sekunden Audio abgerechnet. Detaillierte Preisinformationen finden Sie auf der [API-Preisseite](https://elevenlabs.io/pricing?price.section=speech_to_text\&price.sections=speech_to_text,speech_to_text#pricing-table).

Die Echtzeit-Transkription kann auf jedes übermittelte Transkript eine Bearbeitungsanweisung in natürlicher Sprache anwenden, etwa um gesprochene Daten in einem festen Format zu schreiben oder Abkürzungen und Akronyme auszuschreiben. Die Anweisung wird beim Öffnen der Verbindung einmal übergeben. Auf jedes übermittelte Transkript folgt ein separates `edited_transcript`-Ereignis mit dem bearbeiteten Text.

Partielle Transkripte werden nie bearbeitet. Auch das `committed_transcript`-Ereignis bleibt unverändert, sodass bestehende Integrationen weiterhin funktionieren, wenn Sie die Funktion aktivieren.

> **Warning**
>
> Die Transkriptbearbeitung kann nicht mit `entity_detection` kombiniert werden. Verbindungen, die beides festlegen,
> werden mit einem `invalid_request`-Fehler abgelehnt.

## Transkriptbearbeitung aktivieren

Übergeben Sie die Anweisung beim Verbinden mit der Option `transcriptEdit` (dem Abfrageparameter `transcript_edit` der WebSocket-API). Die Anweisung kann bis zu 2.000 Zeichen lang sein. Hinweise zum Formulieren von Anweisungen finden Sie in der [Anleitung zur Batch-Transkriptbearbeitung](/docs/de/eleven-api/guides/how-to/speech-to-text/batch/transcript-editing#writing-instructions).

In allen SDKs treffen die bearbeiteten Transkripte über das Ereignis `RealtimeEvents.EDITED_TRANSCRIPT` ein.

### Clientseitig

Verwenden Sie `@elevenlabs/client` im Browser mit einem Einmal-Token, das Ihr Server ausstellt, wie in der [Anleitung zum clientseitigen Streaming](/docs/de/eleven-api/guides/how-to/speech-to-text/realtime/client-side-streaming) beschrieben.

```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);
});
```

### Serverseitig

Verwenden Sie das offizielle SDK auf Ihrem Server, wie in der [Anleitung zum serverseitigen Streaming](/docs/de/eleven-api/guides/how-to/speech-to-text/realtime/server-side-streaming#configure-the-sdk) beschrieben. Nur die Option und der Event-Handler unterscheiden sich von dieser Anleitung; das Senden von Audio und Schließen der Verbindung funktioniert genauso.

```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.
```

## Bearbeitete Transkripte empfangen

Nach der Aktivierung folgt auf jedes übermittelte Transkript ein `edited_transcript`-Ereignis, das den übermittelten Text und seine bearbeitete Version enthält:

```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"
}
```

Beachten Sie folgendes Verhalten:

* Bearbeitungen werden pro übermitteltem Segment angewendet. Das `edited_transcript`-Ereignis wird kurz nach dem entsprechenden `committed_transcript`-Ereignis ausgelöst, da die Bearbeitung asynchron erfolgt. Es kann nach dem nächsten partiellen Transkript eintreffen, und Bearbeitungen aufeinanderfolgender Segmente können in falscher Reihenfolge eintreffen. Verwenden Sie das Feld `text`, um eine Bearbeitung ihrem übermittelten Transkript zuzuordnen.
* Wenn an einem Segment keine Bearbeitungen vorgenommen wurden, ist `edited_text` identisch mit `text`.
* Wenn für ein Segment keine Bearbeitung erstellt werden kann, wird dafür kein `edited_transcript`-Ereignis gesendet. Das `committed_transcript`-Ereignis bleibt unbeeinflusst.
* Zeitstempel auf Wortebene in `committed_transcript_with_timestamps` beschreiben den ursprünglichen übermittelten Text, nicht den bearbeiteten Text.

## Nächste Schritte

#### [Batch-Transkriptbearbeitung](/docs/de/eleven-api/guides/how-to/speech-to-text/batch/transcript-editing)

Hinweise zum Formulieren von Anweisungen und zum Batch-Antwortformat.

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

Vollständige Liste der Ereignisse und Fehlertypen der Echtzeit-STT-API.