نستخدم ملفات تعريف الارتباط. تُبقيك ملفات تعريف الارتباط وتخزين المتصفح مسجّلًا للدخول وتتذكر تفضيلاتك. وبإذنك نقيس أيضًا كيفية استخدام الموقع. يمكنك في أي وقت. راجع سياسة ملفات تعريف الارتباط.

التفريغ النصي (STT)

نقاط النهاية

التفريغ النصي (STT)

نقطة النهاية POST /audio/transcriptions تحوّل الصوت إلى نص بنماذج Whisper وGPT-4o Transcribe وDeepgram وVoxtral بصيغة OpenAI.

جرّبه في ساحة التجربة

حوّل الكلام إلى نص (STT) بنماذج Whisper وGPT-4o Transcribe وDeepgram وVoxtral وغيرها من نماذج التفريغ النصي. تتبع نقطة النهاية POST /audio/transcriptions في OpenAI، لذا يعمل client.audio.transcriptions.create(...) دون تغيير.

POST https://api14.com/api/v1/audio/transcriptions

الطلب

أرسل multipart/form-data مع ملف الصوت (وهذا ما تفعله OpenAI SDK)، أو جسم JSON.

الحقلالنوعمطلوبالوصف
filefileنعمملف صوتي: mp3 أو mp4 أو m4a أو wav أو webm أو ogg أو flac.
modelstringنعممعرّف نموذج تفريغ نصي، مثل openai/whisper-1.
languagestringلارمز ISO-639-1 (en وde)، يحسّن الدقة والسرعة.
promptstringلاتلميحات مفردات أو نص المقطع السابق.
response_formatstringلاjson (الافتراضي) وtext وsrt وvtt وverbose_json حيث يكون مدعومًا.
temperaturenumberلاحرارة أخذ العينات، من 0 إلى 1.

حد حجم جسم الطلب 25 ميغابايت افتراضيًا. الملفات الأكبر تُعيد 413 payload_too_large، فقسّم التسجيلات الطويلة إلى أجزاء.

Multipart مع cURL

curl https://api14.com/api/v1/audio/transcriptions \
  -H "Authorization: Bearer sk-api14-..." \
  -F model=openai/whisper-1 \
  -F file=@meeting.mp3 \
  -F language=en

جسم JSON

JSON مقبول أيضًا، مع الصوت بترميز base64 للنماذج التي تدعم ذلك:

{
  "model": "openai/whisper-1",
  "input_audio": { "data": "<base64>", "format": "mp3" },
  "language": "en"
}

مثال

import fs from "node:fs";
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.audio.transcriptions.create({
  model: "openai/whisper-1",
  file: fs.createReadStream("audio.mp3"),
});
console.log(result.text);

الاستجابة

{
  "text": "Thanks everyone for joining. Let's start with the roadmap.",
  "usage": { "type": "duration", "seconds": 42, "cost": 0.0042 }
}

مع response_format: "text" أو srt أو vtt يكون الجسم نصًا عاديًا بدل JSON.

الأسعار

يُحاسَب التفريغ النصي بسعر النموذج المعلن، ويظهر بصيغة "$ / minute" (أو لكل رمز للنماذج المسعّرة بالرموز). تُعاد الرسوم في usage.cost وتُخصم من رصيدك بالدولار.

الأخطاء

الحالةالرمزمتى يحدث
400invalid_bodyتعذّر تحليل جسم multipart.
400model_requiredالحقل model مفقود.
402insufficient_balanceرصيدك بالدولار يساوي 0.
404model_not_foundمعرّف نموذج غير معروف أو معطّل.
413payload_too_largeالملف يتجاوز حد حجم الجسم.

راجع الأخطاء.