Navvo
مرجع الواجهة البرمجية

الصوت وتحويل الكلام إلى نص

حوّل الصوت المنطوق إلى نص (بالإنجليزية والعربية) واستدعِ مساعدات Navvo الذكية المباشرة لفهم الاستعلامات وتسميات المسارات.

الصوت وتحويل الكلام إلى نص

تستضيف Navvo محرّك تحويل الكلام إلى نص خاصاً بها — ارفع مقطعاً صوتياً قصيراً واستلم النص، بالإنجليزية أو العربية. هذه هي النقطة نفسها خلف البحث الصوتي في خريطة Navvo ومحادثات Atlas دون استخدام اليدين؛ ازوجها مع POST /ai/atlas لبناء مساعد صوتي كامل.

كل استجابات الذكاء الاصطناعي محايدة تجاه النموذج: حقل model يقرأ دائماً "navvo-ai". المحرّكات التحتية تفاصيل تنفيذ لدى Navvo وقد تتغير دون إشعار.

POST /ai/transcribe

تحويل كلام إلى نص عبر رفع صوت multipart. أرسل المقطع كجزء الملف في الطلب؛ تُقبل صيغ الصوت webm وogg وmp4/m4a (يعمل blob من MediaRecorder في المتصفح كما هو).

معاملات الاستعلام

language
string
لغة التفريغ: رمز من حرفين (en، ar، … — غير حسّاس لحالة الأحرف، ويُمرَّر بأحرف صغيرة) أو auto (الافتراضي). وأي قيمة أخرى — بما في ذلك auto أو الفارغة أو غير الصالحة — تُقصَر إلى الاكتشاف التلقائي؛ ولا يُعيد language غير الصالح أبداً 400 (قصر غير كاسر).
يجب أن يكون الجسم بصيغة multipart/form-data مع الصوت كجزء الملف. الجسم غير المتعدد الأجزاء (مثل application/json) يُعيد الآن 400 { "message": "Expected multipart/form-data", "error": "Bad Request", "statusCode": 400 } نظيفًا.
curl -s -X POST "https://navvo.io/api/v1/ai/transcribe?language=auto" \
  -H "x-api-key: $NAVVO_API_KEY" \
  -F "[email protected];type=audio/webm"

الاستجابة

{ "text": "أقرب صيدلية مفتوحة الآن", "language": "ar", "unavailable": false }
الحقلالنوعملاحظات
textstringالنص المُفرَّغ (سلسلة فارغة عندما لا يُتعرَّف على شيء)
languagestring | nullاللغة المكتشفة/المستخدمة، عند توفرها
unavailablebooleanتكون true عندما يتعذّر الوصول لمحرّك الكلام أو يكون المقطع فارغاً — تحقّق منها دائماً قبل استخدام text

أبقِ المقاطع قصيرة (عبارة بحث منطوقة، أمر)؛ تنتهي مهلة الطلبات بعد ~20 ثانية من المعالجة. الرفع دون جزء ملف يعيد 400.

البحث الصوتي في ثلاث خطوات: سجّل عبر MediaRecorder بصيغة (audio/webm)، ثم POST /ai/transcribe، ثم مرّر text إلى GET /search أو POST /ai/atlas للحصول على إجراء خريطة مُهيكل.

مساعدات الذكاء الاصطناعي المباشرة

مساعدان صغيران بعقد حتمي يستخدمهما تطبيق خرائط Navvo نفسه. يعيد كلاهما مغلّف الذكاء الاصطناعي المحايد القياسي — { model: "navvo-ai", unavailable, purpose, content } — حيث content هو نص ردّ النموذج.

هذه مساعدات مدعومة بنماذج لغوية، لا نقاط نهاية للمعالجة بالجملة — POST /ai/search-understanding وPOST /ai/route-labels وPOST /ai/constraints كلٌّ منها محدود بـ 30 طلبًا/دقيقة لكل IP للعميل (فوق الحد العام). تجاوزه يُعيد 429 ThrottlerException. خزِّن النتائج مؤقتًا وطبِّق إزالة الارتداد (debounce).

POST /ai/search-understanding

يحوّل استعلام أماكن نصياً حراً إلى خطة استعلام مُهيكلة (مرشّحات، تلميحات تصنيف، لغة، إلحاح) لتجربة بحث أذكى.

curl -s -X POST "https://navvo.io/api/v1/ai/search-understanding" \
  -H "x-api-key: $NAVVO_API_KEY" -H "content-type: application/json" \
  -d '{ "query": "quiet cafe with wifi near Abdoun open now" }'

→ { "model": "navvo-ai", "unavailable": false, "purpose": "search_understanding", "content": "{ \"filters\": [\"wifi\"], \"categoryHints\": [\"cafe\"], \"locale\": \"en\", \"urgency\": \"now\" }" }

content هو سلسلة نصية بصيغة JSON صارمة — حلّلها من جهة العميل، وارجع إلى البحث العادي عندما تكون unavailable بقيمة true.

POST /ai/route-labels

يلخّص استجابة توجيه خام إلى تسمية قصيرة + نصيحة بلغة بشرية — الكتلة نفسها التي تُرفقها POST /routing/route تلقائياً.

الحقلالنوعملاحظات
payloadobjectمطلوب — مغلّف استجابة التوجيه الخام الذي حصلت عليه من /routing/route أو /routing/plan

→ { "model": "navvo-ai", "unavailable": false, "purpose": "route_labels", "content": "…", "parsed": { "label": "Fast city route", "tip": "Light traffic, mostly highways" } }

parsed هو الاستخلاص المُهيكل بأفضل جهد — يكون null عندما يتعذّر تحليل ردّ النموذج. فضّل parsed وعامل content كنص خام احتياطي. ويحمل المغلّف دائمًا unavailable — بما في ذلك الحالة المتدهورة «لا رحلة قابلة للاستخدام في الحمولة»، التي تُعيد الآن { "model": "navvo-ai", "unavailable": false, "purpose": "route_labels", "content": "", "parsed": null }.


الإرشاد المنطوق (الملاحة)

للحصول على صوت منعطفاً بمنعطف، تحوّل نقطة النهاية POST /navigation/speak تعليمة منعطف إلى مُخرَج جاهز للنطق — سلسلة مُطبَّعة إضافةً إلى SSML جاهزة للاستخدام باللغة الصحيحة ومعدّل نطق هادئ (وaudioUrl عند تهيئة مزوّد تحويل نص إلى كلام من جهة الخادم؛ وإلا يُركّب العملاء الصوت على الجهاز لنطق عربي/إنجليزي متّسق بزمن استجابة معدوم). أما نص التعليمة المنطوق نفسه فيأتي من حقول verbalAlert / verbalPre / verbalPost لكل منعطف في استجابة توجيه أو جلسة ملاحة.

Copyright © 2026