المطورون
أضف الصوت العربي إلى منتجك
المحرك نفسه الذي يشغّل تطبيق فوكلا، عبر واجهة REST: تحويل النص إلى صوت بجميع اللهجات العربية، وتغيير الصوت، والموسيقى، ومتابعة حالة التوليد لحظة بلحظة.
مفاتيح الواجهة البرمجية جزء من خطة المؤسسات.
البدء السريع
أنشئ أول عملية توليد عربية في أربعة طلبات: اختر النموذج والصوت، وأنشئ عملية التوليد، وتابع تقدّمها، ثم نزّل النتيجة.
export VOCLA_API_KEY="vk_..." # Enterprise workspace → Settings → API keys
export VOCLA_API="https://api.vocla.ai"
# 1. Pick a model and a voice
curl -s "$VOCLA_API/v1/catalog"
curl -s "$VOCLA_API/v1/voices?lang=ar&dialect=ar-SA&limit=5" \
-H "Authorization: Bearer $VOCLA_API_KEY"
# 2. Create a text-to-speech generation (202 Accepted)
curl -s -X POST "$VOCLA_API/v1/generations/tts" \
-H "Authorization: Bearer $VOCLA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"productModelId": "MODEL_ID",
"voiceId": "VOICE_ID",
"text": "مرحباً بك في فوكلا، صوتك يصل أبعد.",
"locale": "ar-SA"
}'
# 3. Follow progress as server-sent events
curl -N "$VOCLA_API/v1/generations/GENERATION_ID/events" \
-H "Authorization: Bearer $VOCLA_API_KEY"
# 4. Fetch fresh download links (signed, short-lived)
curl -s "$VOCLA_API/v1/generations/GENERATION_ID" \
-H "Authorization: Bearer $VOCLA_API_KEY"كيف تعمل الواجهة البرمجية
المصادقة
ينشئ مسؤولو مساحات العمل في خطة المؤسسات مفاتيح الواجهة البرمجية من الإعدادات، وتُرسل في الترويسة Authorization: Bearer vk_… . لكل مفتاح صلاحيات محددة (generations:read وgenerations:write وvoices:read وuploads:write)، ويظهر مرة واحدة، ويمكن إلغاؤه في أي وقت.
طلبات آمنة التكرار
يحتاج كل طلب يستهلك رصيدًا إلى الترويسة Idempotency-Key. وإعادة الطلب بالمفتاح والمحتوى نفسيهما تُرجع عملية التوليد الأصلية دون خصم مرتين، أما إعادة استخدام المفتاح بمحتوى مختلف فتُرجع 409.
دورة حياة عملية التوليد
يُرجع إنشاء عملية التوليد الرمز 202 ويحجز الرصيد، ثم تنتقل العملية من queued إلى running ثم إلى succeeded أو failed أو cancelled. يُخصم الرصيد عند النجاح، ويُحرَّر عند الفشل أو الإلغاء.
الأحداث المرسلة من الخادم
تابع GET /v1/generations/{id}/events لتصلك أحداث queued وprogress وsucceeded وfailed وcancelled، ويحمل كل منها بيانات عملية التوليد. يُغلق البث بعد الحالة النهائية، وإعادة الاتصال تُرجع الحالة الحالية.
الأخطاء
تستخدم الأخطاء الصيغة application/problem+json مع رمز ثابت (مثل INSUFFICIENT_CREDITS أو VALIDATION_ERROR)، ورسالة مترجمة (أرسل Accept-Language: ar أو en)، ومعرّف traceId تذكره حين تتواصل معنا.
التنزيلات
تتضمن عمليات التوليد الناجحة روابط موقّعة بصيغتي MP3 وOGG (وWAV في الخطط التي تشملها). تنتهي صلاحية الروابط بعد نحو 15 دقيقة، فاطلب عملية التوليد مجددًا للحصول على روابط جديدة.
أهم نقاط الوصول
القائمة الكاملة، مع مخططات الطلبات والاستجابات، في مرجع الواجهة البرمجية.
| الطريقة | نقطة الوصول | الوظيفة | الصلاحية |
|---|---|---|---|
| GET | /v1/catalog | النماذج وفئات الأصوات وحدود الرفع | عامة |
| GET | /v1/voices | البحث في مكتبة الأصوات حسب اللغة واللهجة والجنس والعمر والفئة | voices:read |
| POST | /v1/generations/tts | تحويل النص إلى صوت باللهجات العربية | generations:write |
| POST | /v1/uploads | بدء رفع متعدد الأجزاء للصوت الذي تريد تحويله | uploads:write |
| POST | /v1/generations/voice-change | إعادة نطق تسجيل بصوت آخر | generations:write |
| POST | /v1/generations/music | توليد موسيقى انطلاقًا من وصف | generations:write |
| GET | /v1/generations/{id} | الحالة والرصيد وروابط التنزيل لعملية توليد | generations:read |
| GET | /v1/generations/{id}/events | التقدّم المباشر عبر الأحداث المرسلة من الخادم | generations:read |
| POST | /v1/generations/{id}/cancel | إلغاء عملية توليد في الانتظار أو قيد التنفيذ | generations:write |
أنواع توليد أخرى
# Voice changer: upload the source audio first (multipart upload, 8 MiB parts)
POST /v1/uploads {"filename","contentType","size"}
POST /v1/uploads/{id}/complete {"parts":[{"partNumber","etag"}]}
POST /v1/generations/voice-change {"productModelId","uploadId","voiceId"}
# Music from a prompt (lyrics only on vocal-capable routes)
POST /v1/generations/music {"productModelId","prompt","duration"}
# Estimate the credit cost without reserving credits
POST /v1/generations/quote {"type":"tts", ...same body as the generation}شكل بث الأحداث
id: 2026-09-19T12:00:01.000Z
event: progress
data: {"id":"0199…","type":"tts","status":"running","progress":50,"creditsReserved":120,"creditsCharged":0}
event: succeeded
data: {"id":"0199…","type":"tts","status":"succeeded","progress":100,"creditsCharged":120,"downloads":{"mp3":"https://…","ogg":"https://…"}}حدود معدّل الطلبات
تُطبَّق الحدود على دقيقة متحركة لكل مستخدم أو مفتاح وعنوان IP: 300 طلب للواجهة البرمجية و30 لنقاط المصادقة. تحمل كل استجابة الترويسات RateLimit-Limit وRateLimit-Remaining وRateLimit-Reset (بالثواني). وعند تجاوز الحد تصلك الاستجابة 429 RATE_LIMITED، فانتظر حتى إعادة الضبط قبل المحاولة مجددًا. ويمكن مناقشة حدود أعلى لأحمال المؤسسات.
إشعارات الويب (Webhooks)
غير متاحة بعدإشعارات الويب الصادرة لأحداث التوليد غير متاحة بعد. استخدم الأحداث المرسلة من الخادم أو استعلم دوريًا عبر GET /v1/generations/{id}. وإن كانت مهمة لتكاملك فأخبرنا، فذلك يساعدنا على ترتيب الأولويات.
مرجع الواجهة البرمجية الكامل
كل نقطة وصول ومعامل ومخطط استجابة، مولَّدة من مستند OpenAPI نفسه الذي بُنيت عليه الواجهة البرمجية.
https://api.vocla.ai/docsمستعد للتكامل؟
أخبرنا عن حالة استخدامك والحجم المتوقع، وسنجهّز لك مساحة عمل للمؤسسات مع وصول إلى الواجهة البرمجية.