iAct

Act on Ai

ساخت Voice Agent از صفر — یه دستیار صوتی که باهاش حرف می‌زنی


ساخت Voice Agent از صفر — یه دستیار صوتی که باهاش حرف می‌زنی

یه هوش مصنوعی که می‌تونی واقعاً باهاش حرف بزنی — صداتو می‌شنوه، می‌فهمه، کار انجام می‌ده و با صدا جوابتو می‌ده. توی این مقاله از صفر یه «ویس ایجنت» (Voice Agent) می‌سازیم، و آخرش روی اینترنت منتشرش می‌کنیم تا از هر جا بازش کنی. ولی قبل از کد، باید بفهمیم این ایجنت‌های صوتی پشتِ پرده واقعاً چطور کار می‌کنن — چون وقتی این رو بفهمی، خیلی تصمیم‌های بعدی برات روشن می‌شه.

ویس ایجنت چطور کار می‌کنه؟ (زنجیره‌ی سه‌مدلی)

ساده‌ترین و رایج‌ترین ویس ایجنت‌ها در واقع سه‌تا مدلِ جدا هستن که پشتِ سرِ هم کار می‌کنن:

۱. صدا → متن (Speech-to-Text): صدای تو می‌ره به یه مدلِ STT و تبدیل می‌شه به متن. این‌جا از gpt-4o-mini-transcribe استفاده کردیم. نکته‌ی مهم: این مدل هیچ هوشی نداره و یه LLM نیست؛ فقط یه مدلِ ماشین‌لرنینگه که کارش اینه صدا رو بنویسه. ارزون و سریعه.

۲. متن → متن (LLM): اون متن می‌ره به مغزِ ماجرا، یه مدلِ زبانی — این‌جا gpt-5.4-mini. این همونیه که می‌فهمه، تصمیم می‌گیره، و می‌تونه فانکشن کال کنه یا MCP بزنه و کار انجام بده (همون چیزی که توی «Agent چیست» گفتم). ورودی‌ش متنه، خروجی‌ش هم متن.

۳. متن → صدا (Text-to-Speech): جوابِ متنیِ مدل می‌ره به یه مدلِ TTS — این‌جا gpt-4o-mini-tts — و دوباره صدا می‌شه تا بشنویش. این هم باز یه LLM نیست؛ یه مدلیه که فقط متنو به گفتار تبدیل می‌کنه.

مشکلِ این روش: تأخیر. ببین چقدر مرحله داریم: باید صدات کامل ضبط شه، آپلود شه، تبدیل به متن شه، متن بره به LLM و جواب بیاد، و آخرش جواب دوباره تبدیل به صدا شه و پخش شه. هر کدوم از این‌ها چند صدم تا چند ثانیه وقت می‌بره. هرچقدر هم تمیز کد بزنی، این روش هیچ‌وقت به نرمیِ یه مکالمه‌ی واقعیِ آدم نمی‌رسه — همیشه یه مکثی هست.

مدل‌های Realtime — آینده‌ی ایجنت‌های صوتی

یه نسلِ جدیدِ مدل هست (مثلِ gpt-realtime-2 و Gemini Live) که ورودی و خروجی‌ش مستقیم صداست — دیگه لازم نیست سه‌تا مدلِ جدا بچینی. این‌ها از اول روی صدا آموزش دیدن: همون‌طور که توی ویدیوی «هوش مصنوعی چطور ساخته میشه» دیدیم متن رو توکنایز می‌کنیم، این‌جا صدا توکنایز می‌شه. نتیجه: تأخیرِ خیلی کم، مکالمه‌ی شبیهِ آدم، و حتی فانکشن کالینگِ هم‌زمان وسطِ حرف‌زدن. عیبش؟ تقریباً ۴ برابر گرون‌تره. واسه همینه که هنوز همه‌جا نمی‌بینیشون — ولی آینده همینه. (پیاده‌سازیِ Realtime رو توی قسمتِ بعدی انجام دادم.)

ساختش — این‌بار بدونِ AI Pass، فقط OpenAI

توی این ویدیو عمداً از AI Pass استفاده نکردم تا ببینیم بدونش هم می‌شه. پس مستقیم از مدل‌های OpenAI رفتم: gpt-4o-mini-transcribe برای صدا‌به‌متن، gpt-5.4-mini برای مغزِ ایجنت، و gpt-4o-mini-tts برای متن‌به‌صدا. یه API key از OpenAI گرفتم و شروع کردم.

کلِ اپ رو هم با همون ترفندِ ویدیوهای قبلی نوشتم که خیلی‌ها دوستش داشتن: AI Studio + MCP SuperAssistant + Desktop Commander. خلاصه‌ش اینه:

  • AI Studio: محیطِ رایگانِ گوگل برای کار با مدل‌های Gemini.
  • MCP SuperAssistant: یه اکستنشنِ کروم که مثلِ یه پل، چتِ AI Studio رو به سرورهای MCP وصل می‌کنه.
  • Desktop Commander: یه MCP که به مدل اجازه می‌ده روی سیستمت فایل بخونه/بنویسه و دستورِ ترمینال اجرا کنه.

وقتی این سه‌تا رو ترکیب کنی، عملاً Geminiِ رایگان رو تبدیل کردی به یه ایجنتی شبیهِ Claude Code که روی کامپیوترت کد می‌زنه. اول یه PRD نوشتم، بعد اپو با Next.js ساختم، و آخرش با Vercel منتشرش کردم. (Vercel یه سرویسه که اپتو روی کلاد بالا می‌ده و یه آدرسِ اینترنتی بهت می‌ده؛ Next.js رو هم خودِ Vercel ساخته، برای همین دیپلویش روی Vercel خیلی صافه.) این اولین‌بار بود که از Vercel استفاده می‌کردم و توی ویدیو با هم قدم‌به‌قدم رفتیم: ساختِ ریپوی گیت، اتصال به Vercel، ست‌کردنِ Env Variables (مثلِ همون API key که نباید توی کد لو بره)، و انتخابِ فریمورک.

صادقانه

با ابزارِ رایگان مسیر یه‌کم دست‌انداز داشت — وسطش چند جا گیر کرد و باید دستی ادامه می‌دادم، و ElevenLabs روی پلنِ رایگان برای صدا کار نکرد، برای همین TTS رو برگردوندم روی OpenAI. ولی آخرش یه ویس ایجنتِ کامل ساختیم که باهاش حرف می‌زنی و جواب می‌گیری، و آنلاینش کردیم. این گیرکردن‌ها هم بخشی از کارِ واقعیه و خواستم ببینیدش، نه فقط نسخه‌ی تروتمیزِ نهایی.

ویدئوی کاملش رو از پایین ببین.


دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *