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

# ट्रांसक्रिप्ट संपादन

> **Note**
>
> **कैसे करें गाइड** · मानता है कि आपने
> [क्लाइंट-साइड](/docs/hi/eleven-api/guides/how-to/speech-to-text/realtime/client-side-streaming) या
> [सर्वर-साइड स्ट्रीमिंग](/docs/hi/eleven-api/guides/how-to/speech-to-text/realtime/server-side-streaming) गाइड पूरी कर ली है।

## खास जानकारी

> **Warning**
>
> ट्रांसक्रिप्ट एडिटिंग एक प्रायोगिक सुविधा है और हर कमिट किए गए ट्रांसक्रिप्ट के लिए कम-से-कम 10 सेकंड के ऑडियो पर बिल किए जाने वाले बेस ट्रांसक्रिप्शन
> खर्च में 30% प्रीमियम जोड़ती है। विस्तृत कीमतों की जानकारी के लिए [API प्राइसिंग पेज](https://elevenlabs.io/pricing?price.section=speech_to_text\&price.sections=speech_to_text,speech_to_text#pricing-table)
> देखें।

रियलटाइम ट्रांसक्रिप्शन हर कमिट किए गए ट्रांसक्रिप्ट पर प्राकृतिक भाषा में दिया गया एडिट निर्देश लागू कर सकता है। उदाहरण के लिए, बोले गए तारीखों को एक तय फ़ॉर्मैट में लिखने या संक्षिप्त रूपों और एक्रोनिम्स को विस्तृत करने के लिए। कनेक्शन खुलने पर निर्देश एक बार भेजा जाता है और हर कमिट किए गए ट्रांसक्रिप्ट के बाद एडिट किए गए टेक्स्ट के साथ अलग `edited_transcript` इवेंट आता है।

आंशिक ट्रांसक्रिप्ट कभी एडिट नहीं किए जाते। `committed_transcript` इवेंट भी नहीं बदलता, इसलिए सुविधा चालू करने पर मौजूदा इंटीग्रेशन काम करते रहेंगे।

> **Warning**
>
> ट्रांसक्रिप्ट एडिटिंग को `entity_detection` के साथ नहीं जोड़ा जा सकता। दोनों सेट करने वाले
> कनेक्शन `invalid_request` एरर के साथ अस्वीकार कर दिए जाते हैं।

## ट्रांसक्रिप्ट एडिटिंग चालू करना

कनेक्ट करते समय `transcriptEdit` विकल्प (WebSocket API का `transcript_edit` क्वेरी पैरामीटर) के साथ निर्देश दें। निर्देश 2000 वर्णों तक लंबा हो सकता है। निर्देश लिखने के बारे में मार्गदर्शन के लिए [बैच ट्रांसक्रिप्ट एडिटिंग गाइड](/docs/hi/eleven-api/guides/how-to/speech-to-text/batch/transcript-editing#writing-instructions) देखें।

सभी SDK में एडिट किए गए ट्रांसक्रिप्ट `RealtimeEvents.EDITED_TRANSCRIPT` इवेंट के ज़रिए आते हैं।

### क्लाइंट-साइड

ब्राउज़र में अपने सर्वर से जारी किए गए सिंगल-यूज़ टोकन के साथ `@elevenlabs/client` का इस्तेमाल करें, जैसा [क्लाइंट-साइड स्ट्रीमिंग गाइड](/docs/hi/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);
});
```

### सर्वर-साइड

अपने सर्वर पर आधिकारिक SDK का इस्तेमाल करें, जैसा [सर्वर-साइड स्ट्रीमिंग गाइड](/docs/hi/eleven-api/guides/how-to/speech-to-text/realtime/server-side-streaming#configure-the-sdk) में बताया गया है। उस गाइड से सिर्फ़ विकल्प और इवेंट हैंडलर अलग हैं; ऑडियो भेजना और कनेक्शन बंद करना उसी तरह काम करता है।

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

## एडिट किए गए ट्रांसक्रिप्ट पाना

चालू होने पर, हर कमिट किए गए ट्रांसक्रिप्ट के बाद कमिट किया गया टेक्स्ट और उसका एडिट किया गया वर्शन देने वाला `edited_transcript` इवेंट आता है:

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

ध्यान देने योग्य व्यवहार:

* एडिट हर कमिट किए गए सेगमेंट पर लागू होते हैं। एडिटिंग असिंक्रोनस रूप से चलती है, इसलिए संबंधित `committed_transcript` इवेंट के तुरंत बाद `edited_transcript` इवेंट भेजा जाता है। यह अगले आंशिक ट्रांसक्रिप्ट के बाद आ सकता है और लगातार सेगमेंट के एडिट क्रम से बाहर आ सकते हैं। किसी एडिट को उसके कमिट किए गए ट्रांसक्रिप्ट से मिलाने के लिए `text` फ़ील्ड का इस्तेमाल करें।
* अगर किसी सेगमेंट में कोई एडिट नहीं किया गया, तो `edited_text`, `text` के समान होगा।
* अगर किसी सेगमेंट के लिए एडिट नहीं बनाया जा सकता, तो उसके लिए कोई `edited_transcript` इवेंट नहीं भेजा जाता। `committed_transcript` इवेंट पर इसका असर नहीं पड़ता।
* `committed_transcript_with_timestamps` में शब्द-स्तर के टाइमस्टैम्प मूल कमिट किए गए टेक्स्ट का वर्णन करते हैं, एडिट किए गए टेक्स्ट का नहीं।

## अगले चरण

#### [बैच ट्रांसक्रिप्ट एडिटिंग](/docs/hi/eleven-api/guides/how-to/speech-to-text/batch/transcript-editing)

निर्देश लिखने के लिए मार्गदर्शन और बैच रिस्पॉन्स फ़ॉर्मैट।

#### [इवेंट रेफरेंस](/docs/hi/eleven-api/guides/how-to/speech-to-text/realtime/event-reference)

रियलटाइम STT API के इवेंट और एरर टाइप की पूरी सूची।