إنتقل إلى المحتوى الرئيسي

API التحقق من هوية المتحدث

قارن مقطعًا صوتيًا مرجعيًا بآخر مرشح للحصول على حكم حول تطابق المتحدث ودرجة التشابه وبيانات الصوت الوصفية للملفين.

عنوان URL الأساسي​

https://api.genderrecognition.com

نقطة النهاية​

POST /v1/speaker-verification/api

ترويسات الطلب​

apiKey: YOUR_API_KEY
Content-Type: multipart/form-data

محتوى الطلب​

الحقلالنوعمطلوبالوصف
referencefileنعمصوت المتحدث المعروف الذي ستتم المقارنة به.
candidatefileنعمالصوت المراد مقارنته بالصوت المرجعي.

مثال​

curl -X POST "https://api.genderrecognition.com/v1/speaker-verification/api" \
-H "apiKey: YOUR_API_KEY" \
-F "file=@audio.wav"

الاستجابة​

{
"success": true,
"same_speaker": true,
"similarity": 87,
"threshold": 70,
"reference_audio": {
"duration": 4.8,
"sample_rate": 16000
},
"candidate_audio": {
"duration": 5.1,
"sample_rate": 16000
},
"remainingRequests": 119
}

حقول الاستجابة​

الحقلالنوعالوصف
successbooleanتكون true عند معالجة المقطعين بنجاح.
same_speakerbooleanتكون true عندما تبلغ similarity قيمة threshold أو تتجاوزها، أي عند الحكم بأن المقطعين للمتحدث نفسه.
similarityintegerمدى تطابق الصوتين من 0 إلى 100؛ وكلما ارتفعت القيمة زاد التشابه.
thresholdintegerحد التشابه لتحديد same_speaker من 0 إلى 100. تُعد similarity مطابقة إذا بلغت هذا الحد أو تجاوزته.
reference_audio.durationnumberمدة المقطع المرجعي بعد فك ترميزه للمقارنة، بالثواني.
reference_audio.sample_ratenumberمعدل أخذ عينات المقطع المرجعي بعد فك الترميز وقبل المقارنة، بوحدة Hz.
candidate_audio.durationnumberمدة المقطع المرشح بعد فك ترميزه للمقارنة، بالثواني.
candidate_audio.sample_ratenumberمعدل أخذ عينات المقطع المرشح بعد فك الترميز وقبل المقارنة، بوحدة Hz.
remainingRequestsintegerعدد طلبات API المتبقية بعد خصم هذا الطلب الناجح.

similarity وthreshold نسبتان مئويتان صحيحتان وليستا درجتين خامًا.

حالات الخطأ​

مفتاح API مفقود​

{ "error": "API key is required" }

مفتاح API غير صالح​

{ "error": "Invalid API key" }

الملف مفقود​

{ "error": "Both reference and candidate files are required" }

الملف كبير جدًا​

{ "error": "File too large" }

حقل نموذج غير متوقع​

يُعاد هذا الخطأ عند رفع الملف باستخدام اسم حقل غير reference أو candidate (مثل استخدام file أو إرسال ملف إضافي):

{ "error": "Unexpected field" }

نوع الملف غير صالح​

{
"error": "Invalid file type. Allowed formats: WAV, MP3, FLAC, MP4, OGG, AIFF"
}

تعذر تحويل الصوت​

يُعاد هذا الخطأ إذا كان امتداد الملف مدعومًا لكن تعذر على ffmpeg تحويله (مثل ملف تالف أو غير قابل للقراءة):

{ "error": "Audio conversion failed: <details>" }

تم تجاوز الحصة​

{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "You have exceeded your free tier limit of 50 requests.",
"detailedMessage": "Insufficient remaining requests. Required: 1, Available: 0",
"details": {
"limit": 50,
"used": 50,
"reset_date": "2026-07-01T00:00:00.000Z"
},
"suggested_action": "Please upgrade to a premium plan to continue using the API."
}
}

فشلت المعالجة​

{ "error": "Speaker verification failed" }

ملاحظات​

  • يقبل الخادم تنسيقات صوتية شائعة عديدة مثل WAV وMP3 وM4A وFLAC وOGG وWebM وAAC وOpus وWMA وAMR و3GP وAIFF وAU، ويحوّل الملفات غير WAV قبل التحليل.
  • استخدم الحقلين reference وcandidate للملفين، ويجب ألا يتجاوز حجم كل منهما 10 MB.
  • تتم معالجة الصوت المرجعي والمرشح كلٌّ على حدة، لذا قد تختلف المدة ومعدل أخذ العينات والتنسيق.
  • لا يُخصم الطلب إلا بعد اكتمال التحقق بنجاح.