Ana Brainiall

تحدث بالصوت (STT → LLM → TTS pipeline)

avancado · 12 min · Por Ana Brainiall

تشريح المحادثة الصوتية

المحادثة الصوتية مع الذكاء الاصطناعي هي سلسلة من 3 APIs:

`
[تتكلم] → الميكروفون → STT (Whisper) → نص

LLM (Claude/GPT)

[تسمع] ← السماعة ← TTS (pf_dora) ← نص
`

كل خطوة تضيف تأخيرًا. لكي تبدو التجربة طبيعية (كمحادثة بشرية)، يجب أن يبقى الإجمالي أقل من 1.5 ثانية. في عام 2026، هذا قابل للتحقيق لكنه يتطلب هندسة دقيقة.

diagrama de fluxo com 3 blocos coloridos — STT (azul), LLM (roxo), TTS (verde) —

التأخير الواقعي في 2026

قياسات من محادثة حقيقية على Brainiall:

إجمالي first-token-to-speech: 1150-2150ms. مقبول إذا بدأ النموذج "بالكلام" مبكرًا (streaming).

Streaming هو كل شيء

بدون streaming، تنتظر كل خطوة انتهاء السابقة: 600ms + 900ms + 500ms = 2000ms كحد أدنى.

مع streaming:
- يمكن لـ STT البدء بالنسخ بينما لا تزال تتكلم (VAD — Voice Activity Detection)
- يبدأ LLM بتوليد الرموز قبل انتهاء STT (مع بعض التنبؤ بالنية)
- يبدأ TTS بنطق الكلمات الأولى بينما لا يزال LLM يولّد الأخيرة

ينخفض التأخير الفعلي إلى 400-700ms. يبدو طبيعيًا تمامًا.

VAD: متى تتوقف عن الاستماع

المشكلة الأكثر دقة: اكتشاف أنك توقفت عن الكلام. إذا توقفت مبكرًا جدًا، تُقطع جملتك. وإذا توقفت متأخرًا، يُضاف 500ms من التأخير.

التقنيات المستخدمة:
- صمت مطلق لمدة 600ms: بسيط لكنه لا يتعامل مع توقفات التفكير الطبيعية
- Silero VAD: نموذج عصبي يكتشف نهاية الجملة بدقة ~95% في أقل من 50ms
- Confidence من STT: يُعيد Whisper قيمة الثقة؛ إذا انخفضت، فالكلام انتهى على الأرجح
- Interruption detection: إذا عاد المستخدم للكلام → يُلغى TTS الجاري ويبدأ الدورة من جديد

تستخدم Brainiall Silero VAD مع عتبة صمت ديناميكية (تتكيف مع بيئة الصوت).

اختيار النموذج: التأخير مقابل الجودة

في وضع الصوت، عادةً ما يستحق التضحية ببعض جودة LLM مقابل السرعة:

للمحادثات التي تُقدّم الجودة على السرعة (مثل: مدرّس لغات تفصيلي)، انتقل إلى Claude Sonnet 4.6 أو GPT-5 الكامل.

حالات الاستخدام التي يُتقنها وضع الصوت

الأخطاء الشائعة

diagrama de armadilhas — 4 situações comuns com ícones + solução; barulho (heads

التطبيق الأساسي في المتصفح

للتجربة السريعة:

`javascript
// 1. الالتقاط
const stream = await navigator.mediaDevices.getUserMedia({audio: true});
const mediaRecorder = new MediaRecorder(stream);

// 2. إرسال مقاطع كل 500ms
mediaRecorder.ondataavailable = async (e) => {
const formData = new FormData();
formData.append('file', e.data);
const r = await fetch('/api/transcribe', {method:'POST', body: formData});
const {text} = await r.json();
// 3. إرسال النص إلى LLM واستقبال الرد
// 4. إرسال الرد إلى /api/tts وتشغيل النتيجة
};
mediaRecorder.start(500);
`

توفر Brainiall هذا جاهزًا في الدردشة: انقر على أيقونة الميكروفون واضغط مع الاستمرار.

جرّبه الآن

في دردشة Brainiall، انقر على أيقونة الميكروفون واضغط مع الاستمرار. تحدث، ثم أفلت، واستقبل الرد نصًا وصوتًا. خطة Pro بـ $5.99 تشمل الصوت الكامل؛ وخطة Business تُتيح أصواتًا مميزة مع أولوية في التأخير.

أعجبك المحتوى؟

افتح 17 دورة Pro + 40+ نموذج AI في الدردشة + إنشاء فيديو وموسيقى والاستوديو الكامل.

اشترك في Pro · $5.99/شهر

ألغِ في أي وقت · بدون التزام