> ## Documentation Index
> Fetch the complete documentation index at: https://veniceai-mintlify-de47a659.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# تحويل الكلام إلى نص

> فرِّغ ملفات الصوت إلى نص بنماذج تحويل الكلام إلى نص في Venice عبر /audio/transcriptions، مع اختيار صيغ الاستجابة والطوابع الزمنية للمقاطع.

يقوم تحويل الكلام إلى نص بتفريغ الصوت المنطوق إلى نص مكتوب. أرسل ملف صوت إلى `/audio/transcriptions`، واختر نموذج تفريغ، وحدّد صيغة الاستجابة التي تريدها.

هل تتعامل مع تسجيل لمحادثة؟ ينطلق دليل [محاضر الاجتماعات باستخدام تحويل الكلام إلى نص](/guides/media/meeting-notes) من ملف صوتي وصولًا إلى قرارات وبنود عمل تستشهد بالثانية التي اتُّفق عليها فيها، بما في ذلك النماذج التي تُرجع توقيتات المقاطع وكيفية التعامل مع تفريغ لا يذكر أبدًا من يتحدث.

## الاستخدام الأساسي

<CodeGroup>
  ```python Python theme={null}
  import os

  import requests

  with open("meeting.mp3", "rb") as audio:
      response = requests.post(
          "https://api.venice.ai/api/v1/audio/transcriptions",
          headers={"Authorization": f"Bearer {os.environ['VENICE_API_KEY']}"},
          files={"file": audio},
          data={
              "model": "nvidia/parakeet-tdt-0.6b-v3",
              "response_format": "json",
          },
      )

  response.raise_for_status()
  print(response.json()["text"])
  ```

  ```javascript Node.js theme={null}
  import { createReadStream } from "node:fs";
  import FormData from "form-data";

  const form = new FormData();
  form.append("file", createReadStream("meeting.mp3"));
  form.append("model", "nvidia/parakeet-tdt-0.6b-v3");
  form.append("response_format", "json");

  const response = await fetch("https://api.venice.ai/api/v1/audio/transcriptions", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.VENICE_API_KEY}`,
      ...form.getHeaders(),
    },
    body: form,
  });

  if (!response.ok) {
    throw new Error(await response.text());
  }

  const transcript = await response.json();
  console.log(transcript.text);
  ```

  ```bash cURL theme={null}
  curl https://api.venice.ai/api/v1/audio/transcriptions \
    -H "Authorization: Bearer $VENICE_API_KEY" \
    --form file=@meeting.mp3 \
    --form model=nvidia/parakeet-tdt-0.6b-v3 \
    --form response_format=json
  ```
</CodeGroup>

## المدخلات المدعومة

صيغ الصوت المدعومة هي `wav` و`wave` و`flac` و`m4a` و`aac` و`mp4` و`mp3` و`ogg` و`oga` و`webm`. يُقبل الملف عندما يكون نوع MIME الخاص به أو امتداده ضمن تلك القائمة، ويجب أيضًا أن تجتاز البايتات المرفوعة فحص البايتات السحرية (magic-byte) — إعادة تسمية ملف بامتداد مدعوم لن تُمرّره. راجع صفحة [نماذج تحويل الكلام إلى نص](/models/speech-to-text) لمعرفة دعم النماذج الحالي والأسعار.

## صيغ الاستجابة

| الصيغة | استخدمها عندما                                                                  |
| ------ | ------------------------------------------------------------------------------- |
| `json` | تريد استجابة مهيكلة: `text`، بالإضافة إلى `duration` و`timestamps` عند توفرهما. |
| `text` | تريد نصًا خالصًا دون الحاجة إلى تحليل JSON.                                     |

<Note>
  هاتان هما القيمتان الوحيدتان اللتان يقبلهما `response_format`. لا يوجد خيار `srt` أو `vtt` أو `verbose_json` — طلب أحدها يعيد `400`. لبناء ترجمات، استخدم `timestamps: true` مع `response_format: json` وقم بعرض بيانات التوقيت بنفسك.
</Note>

## الطوابع الزمنية

مرّر `timestamps=true` للحصول على بيانات التوقيت مع التفريغ. الدعم خاص بكل نموذج، وتختلف درجة التفصيل:

| النموذج                       | درجة التفصيل |
| ----------------------------- | ------------ |
| `elevenlabs/scribe-v2`        | `word`       |
| `stt-xai-v1`                  | `word`       |
| `openai/whisper-large-v3`     | `segment`    |
| `fal-ai/wizper`               | `segment`    |
| `nvidia/parakeet-tdt-0.6b-v3` | لا شيء       |

<Warning>
  النموذج الافتراضي، `nvidia/parakeet-tdt-0.6b-v3`، يقبل `timestamps=true` ثم يتجاهله — تحصل على استجابة تحتوي على `text` فقط، دون خطأ ودون تحذير. اختر نموذجًا من الجدول أعلاه إذا كنت بحاجة إلى التوقيتات، وتحقق من وجود المفتاح `timestamps` قبل قراءته.
</Warning>

```bash theme={null}
curl https://api.venice.ai/api/v1/audio/transcriptions \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  --form file=@meeting.mp3 \
  --form model=elevenlabs/scribe-v2 \
  --form timestamps=true \
  --form response_format=json
```

```json theme={null}
{
  "text": "The quick brown fox jumps over the lazy dog.",
  "duration": 4.099,
  "timestamps": {
    "word": [
      { "word": "The", "start": 0.0, "end": 0.14 },
      { "word": "quick", "start": 0.14, "end": 0.42 }
    ]
  }
}
```

تعيد النماذج ذات التفصيل على مستوى المقاطع مصفوفة `segment` بدلًا من ذلك، حيث يكون كل إدخال على شكل `{ "text": "...", "start": 0.0, "end": 3.2 }`. جميع الأزمنة بالثواني.

<Note>
  لا يقوم أي نموذج نسخ في Venice بتمييز المتحدثين (speaker diarization)، لذا لا يوجد حقل `speaker` في أي استجابة. التفريغ هو تدفق نصي واحد — لا يمكن نسب الكلام إلى متحدث إلا عندما يُذكر اسم بصوت مسموع.
</Note>

## نصائح الإنتاج

* حافظ على وضوح الصوت وتجنّب تداخل المتحدثين عند الإمكان.
* قسّم التسجيلات الطويلة جدًا إلى أجزاء أصغر إذا كان سير عملك يتطلب زمن استجابة أقل أو محاولات إعادة أسهل.
* خزّن مسار الصوت الأصلي، ومعرّف النموذج، وصيغة الاستجابة مع كل تفريغ لأغراض التدقيق.

## موارد ذات صلة

* [واجهة برمجة تطبيقات تفريغ الصوت](/api-reference/endpoint/audio/transcriptions)
* [نماذج تحويل الكلام إلى نص](/models/speech-to-text)
* [دليل تحويل النص إلى كلام](/guides/media/text-to-speech)
