Model APIs
Whisper-1
أرسل ملفًا صوتيًا للتفريغ أو الترجمة إلى الإنجليزية، وتابع مهمته، ثم نزّل النص أو JSON أو الترجمة النصية.
يحوّل Whisper-1 الكلام المسجّل إلى نص. استخدم /v1/audio/transcriptions للحفاظ على اللغة المنطوقة، أو /v1/audio/translations لإنتاج نص بالإنجليزية. يقبل كلاهما multipart/form-data مع ملف مرفوع. يعيد SeedRouter معرّف مهمة أولًا؛ نزّل النتيجة المختارة بعد اكتمالها. وهذا يختلف عن استجابة OpenAI SDK المتزامنة.
Playground والأسعار المباشرة · أول درس للتفريغ الصوتي · OpenAPI · Markdown
أرسل تسجيلًا
احتفظ بمفتاح API على الخادم. دع عميل HTTP ينشئ فاصل multipart؛ لا تضبط يدويًا ترويسة Content-Type: multipart/form-data وحدها دون فاصل.
curl https://api.seedrouter.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-F model=whisper-1 \
-F [email protected] \
-F language=en \
-F response_format=verbose_json \
-F 'timestamp_granularities[]=word' \
-F 'timestamp_granularities[]=segment'تؤكد الاستجابة إنشاء مهمة، ولا تحتوي على التفريغ النهائي:
{
"id": "task_example",
"model": "whisper-1",
"status": "processing",
"created_at": 1792376116
}احفظ قيمة id الفعلية المعادة. أرسل مرة واحدة. لا يثبت انقطاع الاتصال إن كان الطلب قد قُبل؛ راجع سجل المهام قبل إنشاء طلب آخر.
اقرأ النتيجة
curl "https://api.seedrouter.ai/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $SEEDROUTER_API_KEY"تابع الاستعلام ما دامت status هي processing. تتضمن المهمة المكتملة output.url وoutput.format؛ وتتضمن المهمة الفاشلة error.code وerror.message. انتهاء مهلة الاستعلام ليس حالة نهائية للمهمة. لا يستطيع قراءتها إلا مالكها. توضح الأمثلة التالية بنية الاستجابة:
{
"id": "task_example",
"model": "whisper-1",
"status": "completed",
"output": {
"format": "verbose_json",
"url": "https://static.seedrouter.ai/media/tasks/task_example/0.json"
}
}نزّل output.url بطلب GET منفصل. اقرأ ملف JSON بصيغة JSON والصيغ الأخرى كنص. لا تتضمن استجابات المهام العامة أسعارًا أو تفاصيل الحساب.
معاملات التفريغ الصوتي
الحقلان file وmodel مطلوبان. تشكّل الحقول التسعة أدناه واجهة الطلب المشتركة، وتشمل file وmodel وstream الذي يُتجاهل صراحةً. ما زال توافق chunking_strategy غير محسوم كما هو موضح أدناه.
| الحقل | النوع | الافتراضي | العقد |
|---|---|---|---|
file | رفع ثنائي | مطلوب | ملف صوتي واحد غير فارغ، وليس رابط URL أو سلسلة اسم ملف. راجع حدود الملفات. |
model | سلسلة نصية | مطلوب | القيمة whisper-1 حرفيًا. |
language | سلسلة نصية | اكتشاف تلقائي | تلميح للغة المدخلات مثل en. لا تُفرض قائمة سماح محلية للغات. احذفه للاكتشاف التلقائي. |
prompt | سلسلة نصية | محذوف | سياق أو تهجئة أو استكمال بلغة الصوت. لا يُفترض حد للأحرف؛ ينظر Whisper في آخر 224 توكنًا بحسب محلّل توكناته. هذا ليس موجّه تعليمات عامًا. |
response_format | سلسلة نصية | json | json أو text أو srt أو verbose_json أو vtt. |
temperature | رقم | 0 | النطاق 0–1 شاملًا الحدين. يتيح الصفر تعديل النموذج التلقائي لدرجة الحرارة؛ ولا يَعِد بنص حتمي. |
timestamp_granularities[] | سلسلة نصية متكررة | طوابع المقاطع الزمنية عند انطباقها | word أو segment أو كلاهما. يتطلب response_format=verbose_json. تُقبل أيضًا كتابة الحقل المتكرر دون الأقواس timestamp_granularities. |
chunking_strategy | auto أو كائن VAD أو null | محذوف | حقل من مخطط الصوت المشترك لم يُحسم انطباقه على Whisper. اتركه محذوفًا لاستخدام المسار المتحقق منه. لم يجتز auto الصريح التحقق الفعلي من التوافق. |
stream | قيمة منطقية أو null | false | يتجاهله Whisper-1. لا يُنتج SSE أو نصًا مفرّغًا جزئيًا. |
يتضمن كائن VAD الحقل المطلوب type: "server_vad"، والعدد الصحيح الاختياري prefix_padding_ms (الافتراضي الموثّق 300)، والعدد الصحيح الاختياري silence_duration_ms (الافتراضي الموثّق 200)، والرقم الاختياري threshold من 0 إلى 1 (الافتراضي الموثّق 0.5). لا يُفرض نطاق أعداد صحيحة غير موثّق. تبقى الاستراتيجية المحذوفة محذوفة؛ ولا تجعل افتراضيات الكائن هذه auto القيمة الافتراضية للطلب.
للتوافق مع SDK، يمكن ترميز كائن VAD في جزء JSON واحد من multipart أو بالحقول chunking_strategy[type] وchunking_strategy[prefix_padding_ms] وchunking_strategy[silence_duration_ms] وchunking_strategy[threshold]. لا تخلط الترميزين. قبول أشكال الحقول هذه لا يثبت أن VAD يعمل مع هذا النموذج.
تُترك الحقول النصية الاختيارية محذوفة، ولا تستخدم سلسلة multipart الحرفية null. تُستبعد الحقول المجهولة وغير المنطبقة على النموذج. وعلى وجه الخصوص، ليست diarized_json وضوابط مراجع المتحدثين وlogprobs وأحداث الوقت الحقيقي من ميزات Whisper-1. تكرار الحقول المفردة غير صالح.
حدود الملفات
الصيغ الصوتية الموثّقة هي FLAC وMP3 وMP4 وMPEG وMPGA وM4A وOGG وWAV وWebM. سقف الرفع الحالي 26,214,400 بايت (25 MiB). تحدد الأسئلة الشائعة لـ OpenAI Audio API حدًا أقصى لحجم الطلب قدره 25 MiB لرفع ملفات Whisper-1 القديم؛ أبقِ الملفات دون السقف لترك مساحة لحقول multipart. يجب أن تحتوي الملفات على صوت قابل للقراءة بمدة موجبة قابلة للقياس. الامتداد وحده لا يثبت صلاحية الصوت.
لا يوجد سقف محلي إضافي مدته ساعة، أو اشتراط لمعدل عينات ثابت، أو قيد يحصر الصوت في قناة أحادية. قد يظل حجم الملف يستلزم تقسيم التسجيلات الطويلة. راجع الحدود بين الأجزاء لتجنّب حذف الكلام أو تكراره.
الترجمة إلى الإنجليزية
curl https://api.seedrouter.ai/v1/audio/translations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-F model=whisper-1 \
-F [email protected] \
-F response_format=text \
-F temperature=0للترجمة خمسة حقول: file وmodel وprompt وresponse_format وtemperature، بالأنواع والحدود نفسها المذكورة أعلاه. يجب أن يكون موجّهها الاختياري بالإنجليزية. لا توجد لغة هدف قابلة للاختيار. يستبعد هذا المسار language وضوابط الطوابع الزمنية والتقسيم وغيرها من الحقول الخاصة بالتفريغ فقط. لا يثبت نجاح اختبار ترجمة بمدخل إنجليزي الدقة لكل لغات المصدر.
حقول الملف المنزّل
| الصيغة | المحتوى |
|---|---|
json | كائن يتضمن text. وقد يتضمن التفريغ أيضًا usage: {type: "duration", seconds: number}. |
text | نص مفرّغ عادي. |
srt | مقاطع ترجمة نصية مرقّمة بأكواد SRT الزمنية. |
vtt | ترجمة نصية بصيغة WebVTT. |
verbose_json | text وlanguage وduration بالثواني؛ وsegments اختياري، وللتفريغ words وusage للمدة. |
لكل كلمة word وstart وend. ولكل مقطع id وseek وstart وend وtext وtokens وtemperature وavg_logprob وcompression_ratio وno_speech_prob. يُقاس start وend بالثواني. لا تحدّد المقاطع المتحدثين. قد يظهر الثابت الخاص بالتفريغ task: "transcribe". تحذف ملفات الترجمة words وusage الخاصين بالتفريغ. لا تُعاد كتابة قياسات الصوت والنص المفرّغ لمحاكاة إجابة متوقعة.
الفوترة
تستخدم العمليتان مدة المدخلات المقاسة. لكل تسجيل، تساوي وحدات قياس الصوت round(ceil(seconds) × 1000 / 60). اضرب هذه الوحدات بسعر الوحدة المباشر؛ ولا تقيس هذه الوحدات النص المفرّغ. مثلًا، تعطي 15 ثانية 250 وحدة، بينما تعطي 15.1 ثانية 267 وحدة. تقرأ الصفحة وPlayground السعر المباشر نفسه. لا تُحتسب رسوم على الطلبات الفاشلة.
حالة التحقق
جرى التحقق في 19 أكتوبر 2026. أكملت الاختبارات المحلية من البداية إلى النهاية صيغ التفريغ الخمس وترجمة بصيغة verbose_json، بما في ذلك تنزيل النتائج بصلاحية المالك والخصم الدقيق من الحساب. نجح طلب تفريغ يجمع طوابع الكلمات والمقاطع الزمنية. واجتازت ملفات FLAC وOGG وM4A وMP4 وWAV ذات المدد الكسرية أو الأقل من ثانية اختبارات فعلية مستقلة للتوافق.
رُفض chunking_strategy=auto الصريح. ولم تنجح ثلاث حالات إرسال شملت WebM، وMPEG مع VAD، وMPGA مع stream=true. لا تثبت هذه الإخفاقات أيًا من إعداداتها المجتمعة سبّب الرفض. تبقى تلك الصيغ والخيارات غير متحقق منها؛ ولا تستبدل الخدمة خفيةً استراتيجية طُلبت صراحةً. استخدم اختبار الترجمة مدخلًا إنجليزيًا، لذا لم تُقَس جودة الترجمة بين اللغات. لا تعتبر قبول المخطط دليلًا على اجتياز كل تركيبة اختبارًا فعليًا.
الأخطاء والاسترداد
تُرفض تركيبات الملفات والمعاملات غير الصالحة قبل إنشاء المهمة. تتضمن أخطاء API قيمة code رقمية وmessage مقروءة؛ راجع رموز الأخطاء. بعد القبول، تحقّق من الحالة النهائية للمهمة. عند عدم تأكد الإرسال، ابحث عن المهمة القائمة قبل الإرسال مجددًا. لا تُحتسب رسوم على المهمة الفاشلة.
مصادر العقد
- مرجع OpenAI للتفريغ الصوتي
- مرجع OpenAI للترجمة
- دليل OpenAI لتحويل الكلام إلى نص
- دليل OpenAI لموجّهات Whisper
أعلنت OpenAI أن موعد إيقاف Whisper على واجهتها الخاصة هو 26 فبراير 2027. لا يحدد هذا الإعلان موعد إيقاف لهذه الخدمة. راجع إشعار OpenAI بالإيقاف.
