البداية السريعة
ثلاث خطوات وتسمع أول رد سعودي من خبير.
1.أنشئ مفتاحًا
من لوحة التحكم ← الواجهة البرمجية. المفتاح يظهر مرة واحدة فقط.
2.ارسل طلبك الأول
نقطة توليد الصوت ترجّع WAV بترميز base64 جاهز للتشغيل.
3.راقب استهلاكك
كل رد يحمل credits_used، ونقطة الرصيد تعطيك المتبقي لحظيًا.
export KHABEER_KEY="5abear_sk_..."
curl -X POST https://speak-saudi-ai.lovable.app/api/public/v1/tts \
-H "Authorization: Bearer $KHABEER_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"هلا والله، حياك الله في متجرنا","voice":"noura"}' \
| jq -r .audio | base64 -d > reply.wavالمصادقة
كل طلب يحمل مفتاحك في ترويسة Authorization. نخزّن بصمة المفتاح فقط (SHA-256) — لو ضاع، ألغه وأنشئ غيره فورًا.
- نادِ الواجهة من خادمك، لا تضع المفتاح في كود المتصفح أو التطبيق.
- استخدم مفتاحًا مستقلًا لكل نظام حتى تلغيه وحده عند الحاجة.
- المفاتيح مربوطة بحسابك، والاستهلاك يُخصم من رصيد الحساب نفسه.
Authorization: Bearer 5abear_sk_xxxxxxxxxxxxxxxx
Content-Type: application/json{
"error": {
"code": "unauthorized",
"message": "مفتاح غير صالح أو ملغى."
}
}/v1/ttsتوليد صوت سعودي
نص عربي ← صوت سعودي طبيعي بصيغة WAV 24kHz، مع اختيار الصوت واللهجة والسرعة.
المعاملات
textstringمطلوبالنص المطلوب نطقه (١–٤٠٠٠ حرف).
voicestringاختياريمعرّف الصوت: noura، sara، dana، fahad، abdullah، khalid. الافتراضي "noura".
accentstringاختياريملف اللهجة: aam (عام)، najdi، hijazi، sharqawi.
speednumberاختياريسرعة الإلقاء بين 0.7 و 1.6.
format"json" | "wav"اختياريjson يرجّع base64، وwav يرجّع بايتات الصوت مباشرة.
استخدم format: "wav" إذا كنت تبثّ الصوت مباشرة للعميل — يوفّر خطوة فك الترميز.
curl -X POST https://speak-saudi-ai.lovable.app/api/public/v1/tts \
-H "Authorization: Bearer $KHABEER_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "طلبك جاهز، يوصلك خلال نص ساعة",
"voice": "fahad",
"accent": "najdi",
"speed": 1.05,
"format": "wav"
}' --output reply.wav/v1/sttتفريغ الكلام السعودي
ملف صوت ← نص عربي. يقبل multipart أو JSON بترميز base64، والحد ٢٥ ميجابايت.
المعاملات
filebinaryمطلوبملف الصوت عند استخدام multipart/form-data.
audiostringاختياريبديل: الصوت بترميز base64 داخل JSON.
mime_typestringاختيارينوع الصوت مع audio، الافتراضي "audio/wav".
hintsstring[]اختياريكلمات سعودية ترفع الدقة: أسماء أحياء، أصناف، علامات تجارية.
curl -X POST https://speak-saudi-ai.lovable.app/api/public/v1/stt \
-H "Authorization: Bearer $KHABEER_KEY" \
-F "file=@call.wav" \
-F "hints=البيك,العليا,هنقرستيشن"/v1/chatمحادثة مع مساعدك
رسالة نصية ← رد سعودي بالنص والصوت، بمعرفة نشاطك وقاموس نطقك وكشف طلب التحويل للموظف.
المعاملات
agent_iduuidمطلوبمعرّف المساعد من لوحة التحكم.
messagestringمطلوبرسالة العميل (١–٢٠٠٠ حرف).
historymessage[]اختياريآخر ٣٠ رسالة بصيغة { role, content } لحفظ السياق.
audiobooleanاختياريتوليد صوت للرد، الافتراضي true.
handoff: true معناها العميل يطلب موظفًا بشريًا — حوّل المكالمة عندك مباشرة.
curl -X POST https://speak-saudi-ai.lovable.app/api/public/v1/chat \
-H "Authorization: Bearer $KHABEER_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "0f2c1f8e-...",
"message": "وش أوقات الدوام عندكم؟",
"history": [{"role":"user","content":"السلام عليكم"}],
"audio": true
}'/v1/voicesقائمة الأصوات واللهجات
الأصوات السعودية المتاحة وملفات اللهجة (عام، نجدي، حجازي، شرقاوي).
ما يحتاج أي معاملات — فقط ترويسة المفتاح.
curl https://speak-saudi-ai.lovable.app/api/public/v1/voices \
-H "Authorization: Bearer $KHABEER_KEY"الأصوات المتاحة
nouraنورةسعودي عامهلا والله، حياك الله. كيف أقدر أخدمك؟saraسارةحجازيأهلين فيك! وش حاب تطلب اليوم؟danaدانةسعودي عامتمام، أكدنا لك الحجز. يعطيك العافية.fahadفهدنجديأبشر، خلني أتأكد لك من طلبك.abdullahعبداللهشرقاويما عليك، أنا معك خطوة بخطوة.khalidخالدحجازيطلبك بيكون عندك إن شاء الله خلال نص ساعة.mutlaqمطلقبدويهلا وغلا، حيّاك الله يا طويل العمر.moudiموضيبدويحيّاك الله يا ولدي، قل وش تبي وأنا بخدمتك./v1/usageالرصيد والاستهلاك
رصيد الباقة والرصيد المشترى وآخر ٢٠ عملية استهلاك على حسابك.
ما يحتاج أي معاملات — فقط ترويسة المفتاح.
curl https://speak-saudi-ai.lovable.app/api/public/v1/usage \
-H "Authorization: Bearer $KHABEER_KEY"/v1/listenالتفريغ المباشر (WebSocket)
افتح قناة WebSocket وأرسل صوت PCM 16-bit مباشرة، وتستقبل نتائج مبدئية أثناء الكلام ونتيجة نهائية عند سكوت المتحدث — مع توقيت الكلمات ودرجة الثقة. الخصم لكل ثانية صوت، وإذا خلص الرصيد يُغلق الاتصال برسالة واضحة.
المعاملات
tokenqueryمطلوبمفتاح الواجهة (بدل ترويسة Authorization لأن المتصفح ما يرسل ترويسات مع WebSocket).
sample_ratequeryاختياريتردد العينة المرسل. الافتراضي 16000.
accentqueryاختياريملف اللهجة: aam | najdi | hijazi | sharqawi.
hintsqueryاختياريكلمات مساعدة مفصولة بفاصلة (أسماء منتجات، مدن، مصطلحات).
interimqueryاختياريfalse يوقف النتائج المبدئية ويرسل النهائية فقط.
endpoint_msqueryاختياريمدة السكوت التي تنهي الجملة بالمللي ثانية. الافتراضي 700.
أكواد الإغلاق: 4001 مفتاح غير صالح · 4002 صيغة صوت غير مدعومة · 4003 خلص الرصيد · 4029 تجاوزت حد التزامن · 4500 خطأ داخلي.
# WebSocket — استخدم أي عميل ws
websocat "wss://speak-saudi-ai.lovable.app/api/public/v1/listen?token=$KHABEER_KEY&sample_rate=16000&accent=najdi"/v1/tts-streamالنطق المباشر (Streaming)
نفس محرك النطق لكن عينات PCM توصلك فور توليدها عبر SSE. شغّل كل audio_delta عند وصوله ولا تنتظر حدث chunk أو done.
المعاملات
textstringمطلوبالنص المطلوب نطقه (حتى ٨٠٠٠ حرف).
voicestringاختياريمعرّف الصوت أو صوت مستنسخ clone_xxx. الافتراضي noura.
accentstringاختياريملف اللهجة.
speednumberاختياريمن 0.7 إلى 1.6.
curl -N https://speak-saudi-ai.lovable.app/api/public/v1/tts-stream \
-H "Authorization: Bearer $KHABEER_KEY" \
-H "content-type: application/json" \
-d '{"text":"هلا والله، معك خبير.","voice":"noura"}'/v1/analyzeتحليل المحادثة
أرسل مقطعًا صوتيًا أو نصًا، واطلب ما تحتاجه: فصل المتحدثين، نبرة العميل، الكلمات المفتاحية، ملخص، محضر اجتماع بقرارات ومهام، أو ترجمة.
المعاملات
audio | audio_url | file | textmixedمطلوبالمصدر: ملف multipart، أو base64، أو رابط، أو نص جاهز.
featuresstring[]اختياريdiarization · sentiment · keywords · summary · minutes · translation. الافتراضي summary.
target_languagestringاختياريلغة الترجمة عند طلب translation (مثال: en).
curl https://speak-saudi-ai.lovable.app/api/public/v1/analyze \
-H "Authorization: Bearer $KHABEER_KEY" \
-F file=@call.wav \
-F "features=diarization,sentiment,summary"/v1/transcribe-asyncتفريغ الملفات الطويلة
للتسجيلات الطويلة (اجتماع أو مكالمة كاملة حتى ١٠٠ ميجابايت): ترسل الملف وترجع لك مهمة فورًا، وتتابعها بالاستعلام أو نخبرك عبر callback موقّع.
المعاملات
file | audio | audio_urlmixedمطلوبالتسجيل المراد تفريغه.
featuresstring[]اختيارينفس ميزات /analyze تُنفَّذ على التفريغ مباشرة.
hintsstring[]اختياريكلمات مساعدة لرفع الدقة.
callback_urlstringاختيارينرسل النتيجة إليه مع توقيع X-Khabeer-Signature.
curl https://speak-saudi-ai.lovable.app/api/public/v1/transcribe-async \
-H "Authorization: Bearer $KHABEER_KEY" \
-F file=@meeting.wav \
-F "features=summary,minutes" \
-F "callback_url=https://your-app.com/hooks/khabeer"/v1/denoiseتنقية الصوت
ينقّي التسجيل من ضجيج الخلفية وهسهسة الخط ويوازن مستوى الصوت، فترتفع دقة التفريغ في تسجيلات مراكز الاتصال. مهمة غير متزامنة ترجع رابط تحميل صالح لمدة ساعة.
المعاملات
file | audio | audio_urlmixedمطلوبالصوت المراد تنقيته (WAV 16-bit).
callback_urlstringاختياريإشعار عند الانتهاء.
curl https://speak-saudi-ai.lovable.app/api/public/v1/denoise \
-H "Authorization: Bearer $KHABEER_KEY" \
-F file=@noisy.wav/v1/tashkilالتشكيل
يضيف التشكيل للنص العربي قبل نطقه، فتضبط الأسماء والكلمات المتشابهة وينطقها الصوت صح من أول مرة.
المعاملات
textstringمطلوبالنص العربي (حتى ٤٠٠٠ حرف).
curl https://speak-saudi-ai.lovable.app/api/public/v1/tashkil \
-H "Authorization: Bearer $KHABEER_KEY" \
-H "content-type: application/json" \
-d '{"text":"مرحبا بك في خبير"}'/v1/jobs/{id}متابعة المهام
كل مهمة طويلة (تفريغ أو تنقية) لها حالة ونسبة تقدم ونتيجة. استعلم عن مهمة واحدة أو اسرد آخر المهام، أو استقبل النتيجة على callback_url موقّعًا بـ HMAC.
المعاملات
idpathمطلوبمعرّف المهمة.
statusqueryاختياريللسرد: queued | running | completed | failed.
limitqueryاختياريعدد المهام في السرد (حتى ١٠٠).
توقيع الـ callback: نرسل ترويسة X-Khabeer-Signature = HMAC-SHA256 لجسم الطلب بمفتاحك. تحقق منها قبل قبول النتيجة.
curl https://speak-saudi-ai.lovable.app/api/public/v1/jobs/62574e1d-... \
-H "Authorization: Bearer $KHABEER_KEY"
curl "https://speak-saudi-ai.lovable.app/api/public/v1/jobs?status=completed&limit=10" \
-H "Authorization: Bearer $KHABEER_KEY"/v1/voice-clonesاستنساخ الصوت
ارفع عيّنة صوت سعودي (١٠ ثوانٍ فأكثر) ونبني منها صوتًا خاصًا لعلامتك. بعدها استخدم المعرّف clone_xxx في أي نداء نطق تمامًا مثل الأصوات الجاهزة.
المعاملات
file | audio | audio_urlmixedمطلوبعيّنة الصوت.
namestringمطلوباسم الصوت داخل حسابك.
accentstringاختيارياللهجة الأقرب للعيّنة.
المعاينة: GET /v1/voice-preview?voice=noura&accent=najdi يرجع مقطعًا قصيرًا مجانيًا لعرض الصوت داخل لوحتك.
curl https://speak-saudi-ai.lovable.app/api/public/v1/voice-clones \
-H "Authorization: Bearer $KHABEER_KEY" \
-F file=@sample.wav -F "name=صوت العلامة" -F "accent=najdi"/v1/modelsالنماذج المتاحة
قائمة المحركات المتاحة لحسابك: التفريغ، النطق، المحادثة، وتنقية الصوت — مع اللهجات المدعومة والمزايا وتكلفة كل واحد.
ما يحتاج أي معاملات — فقط ترويسة المفتاح.
curl https://speak-saudi-ai.lovable.app/api/public/v1/models -H "Authorization: Bearer $KHABEER_KEY"مكتبات الربط
مكتبة JavaScript جاهزة تغطي كل النقاط بما فيها التفريغ المباشر والنطق المتدفق، ونماذج بايثون للمنصات الصوتية. لا تحتاج تثبيت — استوردها من الرابط مباشرة.
import { Khabeer } from "https://speak-saudi-ai.lovable.app/sdk/khabeer.js";
const kb = new Khabeer({ apiKey: process.env.KHABEER_API_KEY });
const { audio } = await kb.tts({ text: "هلا والله", voice: "noura" });
const { text } = await kb.stt({ audio: recordingBlob });
const { models } = await kb.models();الربط مع LiveKit Agents
شغّل خبير كمحرك تفريغ (STT) ومحرك نطق (TTS) داخل وكيل LiveKit الصوتي. نزّل ملف الإضافة، حطه جنب وكيلك، وحدد مفتاحك — وبيصير الوكيل يسمع ويتكلم سعودي.
pip install "livekit-agents[openai]" aiohttp
curl -O https://speak-saudi-ai.lovable.app/livekit/khabeer_livekit.py
export KHABEER_API_KEY=kb_live_xxxfrom livekit.agents import Agent, AgentSession, JobContext, WorkerOptions, cli
from livekit.plugins import openai
from khabeer_livekit import KhabeerSTT, KhabeerTTS
async def entrypoint(ctx: JobContext):
await ctx.connect()
session = AgentSession(
# Saudi speech recognition
stt=KhabeerSTT(hints=["الرياض", "جدة", "شاورما"]),
llm=openai.LLM(model="gpt-4o-mini"),
# Saudi voice: noura | sara | dana | fahad | abdullah | khaled
tts=KhabeerTTS(voice="noura", accent="najdi", speed=1.05),
)
await session.start(
room=ctx.room,
agent=Agent(instructions="تكلم سعودي طبيعي وباختصار."),
)
await session.generate_reply(instructions="سلّم على العميل ورحّب فيه.")
if __name__ == "__main__":
cli.run_app(WorkerOptions(entrypoint_fnc=entrypoint))KhabeerSTT
يمرّر صوت الغرفة على /v1/stt ويرجّع نصًا سعوديًا. الخيارات: hints، api_key، base_url.
KhabeerTTS
ينطق رد الوكيل بصوت سعودي عبر /v1/tts. الخيارات: voice، accent، speed.
الكريدت
كل نداء ينخصم من رصيد مؤسستك نفسه، وتشوفه في صفحة الفوترة أو عبر /v1/usage.
الربط مع Pipecat
خدمتان جاهزتان داخل خط أنابيب Pipecat: KhabeerSTTService للسمع و KhabeerTTSService للنطق بالبث المباشر، فيتكلم وكيلك سعودي مع مقاطعة طبيعية.
pip install pipecat-ai aiohttp
curl -O https://speak-saudi-ai.lovable.app/integrations/khabeer_pipecat.py
export KHABEER_API_KEY=5abear_sk_xxxfrom pipecat.pipeline.pipeline import Pipeline
from khabeer_pipecat import KhabeerSTTService, KhabeerTTSService
pipeline = Pipeline([
transport.input(),
KhabeerSTTService(accent="najdi", hints=["الرياض", "شاورما"]),
llm,
KhabeerTTSService(voice="noura", accent="najdi", speed=1.05),
transport.output(),
])الربط مع Vapi و Ultravox
Vapi يسمح بصوت ومفرّغ مخصصين عبر رابط تستضيفه أنت. جسر جاهز بـ FastAPI يوصّل خبير بالاثنين، ونفس الملف يخدم Ultravox أو أي منصة تطلب TTS/STT عبر HTTP.
pip install fastapi uvicorn httpx
curl -O https://speak-saudi-ai.lovable.app/integrations/khabeer_vapi_server.py
export KHABEER_API_KEY=5abear_sk_xxx VAPI_SECRET=shared-secret
uvicorn khabeer_vapi_server:app --host 0.0.0.0 --port 8000{
"voice": {
"provider": "custom-voice",
"server": { "url": "https://your-host/vapi/voice",
"secret": "shared-secret" }
},
"transcriber": {
"provider": "custom-transcriber",
"server": { "url": "https://your-host/vapi/transcriber",
"secret": "shared-secret" }
}
}# Ultravox / أي منصة أخرى
POST https://your-host/ultravox/tts -> audio/wav
POST https://your-host/ultravox/stt -> { "text": "..." }الأخطاء
كل خطأ يرجع بنفس الشكل: رمز رقمي ثابت تبني عليه منطقك، ومعرّف نصي، ورسالة عربية جاهزة للعرض على المستخدم.
40001
HTTP 400 · invalid_requestحقول ناقصة أو خارج الحدود المسموحة.
40101
HTTP 401 · unauthorizedمفتاح ناقص أو ملغى — تحقق من الترويسة.
40201
HTTP 402 · insufficient_creditsخلص الرصيد — رقِّ الباقة أو اشترِ رصيدًا.
40301
HTTP 403 · forbidden_scopeالمفتاح ما يملك صلاحية هذه النقطة.
40401
HTTP 404 · not_foundالمورد مو تابع لحسابك.
41301
HTTP 413 · payload_too_largeحجم الملف تجاوز ١٠٠ ميجابايت.
42901
HTTP 429 · concurrency_limitتجاوزت عدد الطلبات المتزامنة لباقتك.
42902
HTTP 429 · rate_limitedضغط عالي — أعد المحاولة بعد قليل.
50001
HTTP 500 · server_errorخطأ داخلي عندنا — أعد المحاولة.
50201
HTTP 502 · upstream_errorمحرك الصوت غير متاح مؤقتًا.
{
"error": {
"code": 40201,
"slug": "insufficient_credits",
"message": "خلص رصيد الكريدت.",
"status": 402
}
}الحدود والصلاحيات
كل مفتاح تحدد له صلاحيات وسقف شهري، وكل باقة لها عدد طلبات متزامنة. تجاوز التزامن يرجع 42901 بدل ما يعلّق الطلب.
صلاحيات المفتاح
ttsتوليد الصوت والتشكيلsttالتفريغ والتفريغ المباشرchatمحادثة المساعدjobsالمهام الطويلة والتنقيةvoicesالأصوات والاستنساخreadالنماذج والرصيد والاستهلاك
الطلبات المتزامنة لكل باقة
- تجريبي3
- احترافي6
- أعمال15
- نمو30
- مؤسسات60
تحتاج أكثر؟ باقة المؤسسات ترفع الحد حسب اتفاقك.
curl "https://speak-saudi-ai.lovable.app/api/public/v1/usage?breakdown=endpoint&days=30" \
-H "Authorization: Bearer $KHABEER_KEY"
curl "https://speak-saudi-ai.lovable.app/api/public/v1/usage?breakdown=day&days=30&format=csv" \
-H "Authorization: Bearer $KHABEER_KEY" -o usage.csvاستهلاك الكريدت
كل رد من الواجهة يحمل credits_used حتى تراقب الاستهلاك لحظيًا.
توليد صوت
١
كريدت لكل حرف
تفريغ كلام
١٬٠٠٠
كريدت للدقيقة
دور محادثة
٥٬٠٠٠
كريدت لكل رد
جاهز تبدأ؟
أنشئ مفتاحك الآن وابدأ تخلي أنظمتك تتكلم سعودي — نفس الصوت اللي يسمعه عميلك في المكالمة.