نسخ الكلام إلى نص (STT)
قم بتحميل ملفات صوتية مسجلة مسبقاً للحصول على نسخ نصي دقيق مع طوابع زمنية بشكل غير متزامن.
نظراً لأن الملفات الصوتية الكبيرة قد تستغرق عدة دقائق لمعالجتها، تستخدم واجهة برمجة التطبيقات هذه بنية متينة تعتمد على ’الإرسال والاستعلام’. تقوم أولاً بإرسال الملف لاستلام رقم الطلب (job_id)، ثم تقوم بالاستعلام عن حالة الطلب حتى يكتمل النسخ.
1. إرسال طلب معالجة صوت
POST
/api/v1/stt/submit/
| Parameter | إجراء مطلوب | النوع | الوصف |
|---|---|---|---|
| audio | مطلوب | ملف | ملف الصوت المراد تحويله إلى نص. يدعم mp3، wav، m4a، إلخ. الحد الأقصى 50 ميجابايت. |
| language | اختياري | نص (string) | القيمة الافتراضية هي ar-JO. |
| output_format | اختياري | نص (string) | يقبل json أو srt. القيمة الافتراضية هي json. |
2. التحقق من حالة الطلب
GET
/api/v1/stt/status/{job_id}/
مثال للتكامل البرمجي (بايثون)
import requests
import time
API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# 1. إرسال ملف الصوت
submit_url = "https://moknah.io/api/v1/stt/submit/"
files = {"audio": ("audio.mp3", open("long_audio.mp3", "rb"), "audio/mpeg")}
data = {"language": "ar-JO", "output_format": "json"}
print("جاري إرسال الملف الصوتي...")
response = requests.post(submit_url, headers=HEADERS, files=files, data=data)
job_id = response.json().get("job_id")
print(f"تم وضع الطلب في قائمة الانتظار! المعرف: {job_id}")
# 2. الاستعلام عن النتيجة
status_url = f"https://moknah.io/api/v1/stt/status/{job_id}/"
while True:
res = requests.get(status_url, headers=HEADERS)
result = res.json()
if result.get("status") in ["queued", "processing"]:
print("جاري المعالجة... التحقق مرة أخرى خلال 5 ثوانٍ.")
time.sleep(5)
elif result.get("status") == "completed":
print("\nTranscription Finished!")
print(result["result"]["subtitles"])
break
else:
print("\nJob Failed:", result)
break
دعم واجهة برمجة التطبيقات (API)
للأسئلة أو المشكلات المتعلقة بواجهة برمجة التطبيقات، اتصل بنا على api@moknah.io.