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

# Redigering av transkript

> **Note**
>
> **Guide** · Förutsätter att du har slutfört guiden för
> [klientsides-](/docs/sv/eleven-api/guides/how-to/speech-to-text/realtime/client-side-streaming) eller
> [serversides- streaming](/docs/sv/eleven-api/guides/how-to/speech-to-text/realtime/server-side-streaming).

## Översikt

> **Warning**
>
> Transkriptredigering är en experimentell funktion och innebär ett tillägg på 30 % till grundkostnaden för transkribering,
> som debiteras för minst 10 sekunders ljud per bekräftat transkript. Se [API-prissidan](https://elevenlabs.io/pricing?price.section=speech_to_text\&price.sections=speech_to_text,speech_to_text#pricing-table)
> för detaljerad prisinformation.

Realtidstranskribering kan tillämpa en redigeringsinstruktion på naturligt språk på varje bekräftat transkript, till exempel för att skriva talade datum i ett fast format eller för att skriva ut förkortningar och akronymer. Instruktionen skickas en gång när anslutningen öppnas, och varje bekräftat transkript följs av en separat `edited_transcript`-händelse med den redigerade texten.

Delvisa transkript redigeras aldrig. Händelsen `committed_transcript` ändras inte heller, så befintliga integrationer fortsätter att fungera när du aktiverar funktionen.

> **Warning**
>
> Transkriptredigering kan inte kombineras med `entity_detection`. Anslutningar som anger båda
> avvisas med felet `invalid_request`.

## Aktivera transkriptredigering

Skicka instruktionen med alternativet `transcriptEdit` vid anslutning (frågeparametern `transcript_edit` i WebSocket API:t). Instruktionen får vara högst 2 000 tecken lång. Se [guiden för redigering av batchtranskript](/docs/sv/eleven-api/guides/how-to/speech-to-text/batch/transcript-editing#writing-instructions) för råd om hur du skriver instruktioner.

I alla SDK:er kommer de redigerade transkripten via händelsen `RealtimeEvents.EDITED_TRANSCRIPT`.

### Klientsidan

Använd `@elevenlabs/client` i webbläsaren med en engångstoken som utfärdats av din server, enligt beskrivningen i [guiden för klientbaserad streaming](/docs/sv/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);
});
```

### Serversidan

Använd det officiella SDK:t på din server, enligt beskrivningen i [guiden för serversidesstreaming](/docs/sv/eleven-api/guides/how-to/speech-to-text/realtime/server-side-streaming#configure-the-sdk). Endast alternativet och händelsehanteraren skiljer sig från den guiden; att skicka ljud och stänga anslutningen fungerar på samma sätt.

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

## Ta emot redigerade transkript

När funktionen är aktiverad följs varje bekräftat transkript av en `edited_transcript`-händelse som innehåller den bekräftade texten och dess redigerade version:

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

Att tänka på:

* Redigeringar tillämpas per bekräftat segment. Händelsen `edited_transcript` skickas kort efter motsvarande `committed_transcript`-händelse, eftersom redigeringen sker asynkront. Den kan komma efter nästa delvisa transkript, och redigeringar för efterföljande segment kan komma i fel ordning. Använd fältet `text` för att matcha en redigering med dess bekräftade transkript.
* Om inga redigeringar gjordes i ett segment är `edited_text` identisk med `text`.
* Om en redigering inte kan skapas för ett segment skickas ingen `edited_transcript`-händelse för det. Händelsen `committed_transcript` påverkas inte.
* Tidsstämplar på ordnivå i `committed_transcript_with_timestamps` beskriver den ursprungliga bekräftade texten, inte den redigerade texten.

## Nästa steg

#### [Redigering av batchtranskript](/docs/sv/eleven-api/guides/how-to/speech-to-text/batch/transcript-editing)

Råd om hur du skriver instruktioner och batchformatet för svar.

#### [Händelsereferens](/docs/sv/eleven-api/guides/how-to/speech-to-text/realtime/event-reference)

Fullständig lista över händelser och feltyper från STT API:t för realtid.