الصوت وتحويل الكلام إلى نص
الصوت وتحويل الكلام إلى نص
تستضيف Navvo محرّك تحويل الكلام إلى نص خاصاً بها — ارفع مقطعاً صوتياً قصيراً واستلم النص، بالإنجليزية أو العربية. هذه هي النقطة نفسها خلف البحث الصوتي في خريطة Navvo ومحادثات Atlas دون استخدام اليدين؛ ازوجها مع POST /ai/atlas لبناء مساعد صوتي كامل.
model يقرأ دائماً "navvo-ai". المحرّكات التحتية تفاصيل تنفيذ لدى Navvo وقد تتغير دون إشعار.POST /ai/transcribe
تحويل كلام إلى نص عبر رفع صوت multipart. أرسل المقطع كجزء الملف في الطلب؛ تُقبل صيغ الصوت webm وogg وmp4/m4a (يعمل blob من MediaRecorder في المتصفح كما هو).
معاملات الاستعلام
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 }
| الحقل | النوع | ملاحظات |
|---|---|---|
text | string | النص المُفرَّغ (سلسلة فارغة عندما لا يُتعرَّف على شيء) |
language | string | null | اللغة المكتشفة/المستخدمة، عند توفرها |
unavailable | boolean | تكون 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 تلقائياً.
| الحقل | النوع | ملاحظات |
|---|---|---|
payload | object | مطلوب — مغلّف استجابة التوجيه الخام الذي حصلت عليه من /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 لكل منعطف في استجابة توجيه أو جلسة ملاحة.
المستخدمون والمزامنة
الحسابات والملفات الشخصية والأماكن المحفوظة والسجل ومشاركة الموقع الحي — واجهة البيانات الشخصية لبناء تطبيق مستهلك بتسجيل دخول على Navvo.
الملاحة
مستوى التحكّم في الملاحة اللحظية منعطفاً بمنعطف — جلسات مُدارة، وتقدّم وخروج عن المسار محسوبان من الخادم، وزمن وصول متوقّع حيّ، واكتشاف الوصول، وسجل أحداث، ونص إرشاد منطوق.