یه وبسایت دیدم که اومده نگاه عمیق و بدون هایپ به ساخت ایجنتهای صوتی یا Voice AI انداخته:
https://voiceaiandvoiceagents.com/
این حوزه فقط چت کردن با صدا نیست، کلی جزئیات مهندسی داره که اگه ندونی، محصولت در حد یه پروژه دانشجویی باقی میمونه.
کاربرد اصلی این ایجنتها امروز توی بیزنسه: از گرفتن اطلاعات بیمار قبل از وقت دکتر گرفته تا پیگیری سرنخهای فروش و جواب دادن به تلفن کسبوکارهای کوچیک.
مهمترین چالش توی Voice AI، مسئلهی Latency هست. کاربر انسانی توی مکالمه انتظار پاسخ زیر یک ثانیه رو داره. یه مکث طولانی حس غیرطبیعی بودن به کل سیستم میده. هدف خوب برای latency کلی voice-to-voice حدود ۸۰۰ میلیثانیه است. این عدد فقط شامل زمان پاسخ مدل (TTFT) نیست؛ پردازش صدا، انکودینگ، شبکه و بافرهای سیستمعامل همگی تأثیرگذارن.
معماری استاندارد فعلی یه لوپ سهمرحلهایه:
- صدا با Speech-to-Text (STT) به متن تبدیل میشه.
- متن به عنوان ورودی به یه LLM داده میشه تا پاسخ تولید کنه.
- متن خروجی با Text-to-Speech (TTS) دوباره به صدا تبدیل میشه.
برای انتخاب LLM، مدلهایی مثل GPT-4o و Gemini 2.0 Flash به خاطر Time-to-first-token یا TTFT پایین (حدود ۴۰۰-۵۰۰ میلیثانیه) و قابلیت instruction following خوب، گزینههای اصلی هستن. مدلهای open-weights مثل Qwen 3 هم برای self-hosting گزینههای قابلتوجهی شدن.
مدلهای Speech-to-speech مثل API جدید OpenAI، آیندهی این حوزه محسوب میشن چون مراحل STT و TTS رو حذف میکنن و latency رو پایین میارن. توی متن میگه که این مدلها هنوز برای کارهای پروداکشن به بلوغ نرسیدن. چون ورودی و خروجی صوتی توکنهای خیلی بیشتری نسبت به متن مصرف میکنه، توی مکالمههای طولانی، context بزرگ میشه و خود این موضوع باعث افزایش latency میشه. فعلاً برای اکثر کارها، همون معماری چندمدلی قابلاعتمادتره.
در مورد Speech-to-text، سرویسهایی مثل Deepgram و faster-whispe به خاطر ترکیب خوبی از latency پایین و دقت بالا، انتخاب اکثر تیمها هستن. یه تکنیک کاربردی اینه که توی پرامپت به LLM بگی که ورودی حاصل از ترنسکرایبه و ممکنه خطا داشته باشه؛ اینطوری خود مدل میتونه خطاهای جزئی رو تصحیح کنه.
برای Text-to-speech، کیفیت صدا، latency، هزینه و پشتیبانی از timestamp های کلمهبهکلمه مهمه. سرویسهایی مثل Cartesia، ElevenLabs و Rime گزینههای خوبی هستن که هرکدوم روی یکی از این فاکتورها تمرکز بیشتری دارن.
دو تا چالش مهندسی دیگه هم هست که مختص Voice AI هست:
یکی Turn detection، یعنی تشخیص اینکه کاربر حرفش تموم شده یا نه. سادهترین راه استفاده از یه مدل کوچیک Voice Activity Detection یا VAD هست که سکوت طولانی رو به عنوان پایان صحبت در نظر میگیره (برای این روش بهترین مدل ten-vad هست ) روشهای پیشرفتهتر مثل semantic VAD از خود LLM یا مدلهای طبقهبندی دیگه استفاده میکنن تا با درک محتوا، پایان جمله رو بهتر تشخیص بدن.
دومی Interruption handling هست. کاربر باید بتونه وسط حرف ایجنت بپره. این یعنی کل پایپلاین شما باید cancellable باشه و بتونید پخش صدا سمت کلاینت رو فوراً متوقف کنید.
در نهایت، Function calling توی ایجنتهای صوتی خیلی استفاده میشه ولی خودش باعث افزایش latency میشه. چون برای هر فانکشن کال، حداقل دو بار inference لازمه: یک بار برای تشخیص نیاز به فانکشن و یک بار بعد از گرفتن نتیجهی اون. این تأخیر رو باید توی طراحی تجربه کاربری در نظر گرفت.
اگه روی ایجنت صوتی کار میکنید حتما این مقاله رو کامل بخونید.
🛠 Join @LLMEngineers Community
Post #218
1.83K
- 👍 6
- 🔥 2
- ❤ 1