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

# Edição de transcrição

> **Note**
>
> **Guia prático** · Pressupõe que você concluiu o guia de
> [streaming no cliente](/docs/pt/eleven-api/guides/how-to/speech-to-text/realtime/client-side-streaming) ou de
> [streaming no servidor](/docs/pt/eleven-api/guides/how-to/speech-to-text/realtime/server-side-streaming).

## Visão geral

> **Warning**
>
> A edição de transcrições é um recurso experimental e adiciona um acréscimo de 30% ao custo base da transcrição,
> cobrado para pelo menos 10 segundos de áudio por transcrição confirmada. Consulte a [página de preços da API](https://elevenlabs.io/pricing?price.section=speech_to_text\&price.sections=speech_to_text,speech_to_text#pricing-table)
> para ver informações detalhadas sobre preços.

A transcrição em tempo real pode aplicar uma instrução de edição em linguagem natural a cada transcrição confirmada, por exemplo, para escrever datas faladas em um formato fixo ou expandir abreviações e siglas. A instrução é enviada uma vez quando a conexão é aberta, e cada transcrição confirmada é seguida por um evento `edited_transcript` separado com o texto editado.

Transcrições parciais nunca são editadas. O evento `committed_transcript` também não é alterado, então as integrações existentes continuam funcionando quando você ativa o recurso.

> **Warning**
>
> A edição de transcrições não pode ser combinada com `entity_detection`. Conexões que definem ambos os recursos
> são rejeitadas com um erro `invalid_request`.

## Ativando a edição de transcrições

Envie a instrução com a opção `transcriptEdit` ao conectar (o parâmetro de consulta `transcript_edit` da API WebSocket). A instrução pode ter até 2.000 caracteres. Consulte o [guia de edição de transcrições em lote](/docs/pt/eleven-api/guides/how-to/speech-to-text/batch/transcript-editing#writing-instructions) para orientações sobre como escrever instruções.

Em todos os SDKs, as transcrições editadas chegam pelo evento `RealtimeEvents.EDITED_TRANSCRIPT`.

### No cliente

Use `@elevenlabs/client` no navegador com um token de uso único emitido pelo seu servidor, conforme descrito no [guia de streaming no cliente](/docs/pt/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);
});
```

### No servidor

Use o SDK oficial no seu servidor, conforme descrito no [guia de streaming no servidor](/docs/pt/eleven-api/guides/how-to/speech-to-text/realtime/server-side-streaming#configure-the-sdk). Apenas a opção e o manipulador de eventos diferem desse guia; o envio de áudio e o encerramento da conexão funcionam da mesma forma.

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

## Recebendo transcrições editadas

Quando ativada, cada transcrição confirmada é seguida por um evento `edited_transcript` que contém o texto confirmado e sua versão editada:

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

Comportamentos importantes:

* As edições são aplicadas por segmento confirmado. O evento `edited_transcript` é emitido pouco depois do evento `committed_transcript` correspondente, pois a edição é executada de forma assíncrona. Ele pode chegar após a próxima transcrição parcial, e as edições de segmentos consecutivos podem chegar fora de ordem. Use o campo `text` para associar uma edição à transcrição confirmada.
* Se nenhuma edição for feita em um segmento, `edited_text` será idêntico a `text`.
* Se não for possível produzir uma edição para um segmento, nenhum evento `edited_transcript` será enviado para ele. O evento `committed_transcript` não é afetado.
* Os carimbos de data e hora por palavra em `committed_transcript_with_timestamps` descrevem o texto confirmado original, não o texto editado.

## Próximas etapas

#### [Edição de transcrições em lote](/docs/pt/eleven-api/guides/how-to/speech-to-text/batch/transcript-editing)

Orientações para escrever instruções e o formato da resposta em lote.

#### [Referência de eventos](/docs/pt/eleven-api/guides/how-to/speech-to-text/realtime/event-reference)

Lista completa de eventos e tipos de erro da API de STT em tempo real.