خرید بک لینک

ساخت هوش مصنوعی سخنگو با پایتون – از تشخیص صدا تا پاسخ صوتی

هوش مصنوعی سخنگو با پایتون باید چند سیستم مجزا شامل مدل «تبدیل گفتار به متن» (Speech-To-Text)، «مدل زبانی بزرگ» (Large Language Model | LLM) و مدل «تبدیل متن به گفتار» (Text-To-Speech) را در قالب «پایپ‌لاین زنده» (Streaming Pipeline) به یکدیگر متصل کند. برای ساخت هوش مصنوعی سخنگو با پایتون در این مطلب از فریم‌ورک «LiveKit» نیز استفاده خواهیم کرد. این فریم‌ورک، زیرساخت اصلی و لایه‌ای را برای انتقال صوت به صورت «بلادرنگ» (Real-Time)، فراهم می‌کند. هوش مصنوعی سخنگو سیستمی است به صورت صوتی با کاربر صحبت می‌کند. یعنی ابتدا عبارتی را به شکل صوتی بیان می‌کنیم. سیستم با کمک می‌کروفون صدا را دریافت می‌کند، معنی عبارت را درک کرده و پاسخ خود را به شکل صوت برمی‌گرداند.

ساخت هوش مصنوعی سخنگو با پایتون – از تشخیص صدا تا پاسخ صوتیساخت هوش مصنوعی سخنگو با پایتون – از تشخیص صدا تا پاسخ صوتی

در این مطلب از مجله فرادرس، مراحل ساخت هوش مصنوعی سخنگو با پایتون را از ابتدا تا به انتها بررسی کرده‌ایم. اول از همه چند موضوع اصلی را بررسی می‌کنیم. سپس تمام مراحل را یک به یک همراه با کدهای مرتبط توضیح خواهیم داد. در پایان هم روش راه‌اندازی این سیستم را همراه با کل کدها به صورت منظم و منسجم ارائه داده‌ایم.

مراحل ساخت هوش مصنوعی سخنگو با پایتون چیست؟

در این مطلب، مراحل زیر را یک به یک بررسی می‌کنیم.

در پایان، هوش مصنوعی سخنگویی در اختیار خواهیم داشت که به صحبت‌های کاربران گوش می‌دهد، سوال‌های آن‌ها را درک می‌کند و به صورت بلادرنگ با صدایی طبیعی پاسخ می‌دهد. هدف از این مطلب ساخت عامل صوتی است که با استفاده از تکنولوژی‌های تبدیل گفتار به متن، مدل زبانی بزرگ و تبدیل متن به گفتار در زمان واقعی به سوال‌ها پاسخ بدهد. برای اجرای این پروژه لازم است آشنایی در حد مقدماتی با پایتون داشته باشید. اما نیازی به داشتن تجربه قبلی در «پردازش صوت» (Audio Processing) یا «WebRTC» ندارید.

مواردی که یاد می‌گیرید

در فهرست زیر به شکل خلاصه مواردی را نوشته‌ایم که بعد از مطالعه این مطلب خواهید آموخت.

پایپ‌لاین STT-LLM-TTS چیست؟

بیشتر عامل‌های صوتی از پایپ‌لاین «STT-LLM-TTS» استفاده می‌کنند. این پایپ‌لاین از سه بخش‌ اصلی تشکیل شده است.

دیاگرامی از نحوه کار پایپ‌لاین STT-LLM-TTS

این روش ماژولار، انعطاف‌پذیری بسیار بالایی در اختیار برنامه نویسان قرار می‌دهد. با این تکنیک، می‌توانید مسئول اجرای هر بخش را تغییر دهید. هر قسمت را به صورت جداگانه و دقیق تنظیم کرده و خطاهای هر مرحله را به شکل مستقل بررسی و اشکال‌زدایی کنید.

پایپ‌لاین STT-LLM-TTS در منابع مختلف با نام‌های گوناگونی شناخته می‌شود. ممکن است آن را با عنوان‌های زیر نیز ببینید.

همه این نام‌ها به یک معماری اصلی اشاره دارند:

تا به اینجای مطلب هم با مراحل ساخت هوش مصنوعی سخنگو با پایتون به شکل کلی آشنا شده‌اید، هم درک مناسبی از پایپ‌لاین STT-LLM-TTS و عملکرد بخش‌های مهم آن بدست آورده‌اید. در ادامه بعد از بررسی مدل‌های مختلف قابل استفاده در پایپ‌لاین STT-LLM-TTS، روش ساخت هوش مصنوعی سخنگو را مرحله به مرحله بررسی می‌کنیم. در صورت تمایل به مطالعه مطالبی مانند این مورد، پیشنهاد می‌کنیم که حتما اپلیکیشن مجله فرادرس را بر روی دستگاه‌های همراه خود نصب کنید.

برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.

مقایسه مدل‌ها برای ساخت هوش مصنوعی سخنگو با پایتون

انتخاب درست ارائه‌دهنده‌ مناسب برای سرویس‌های مختلف، تاثر مستقیمی بر میزان تاخیر، کیفیت و هزینه دارد. با کمک سرویس LiveKit انجام این فرایند ساده‌تر شده است. زیرا این سرویس اجازه می‌دهد با استفاده از کلید API به همه ارائه‌دهنده‌های اصلی دسترسی داشته باشیم. در نتیجه دیگر نیازی به مدیریت چند حساب کاربری یا اطلاعات احراز هویت در سیستم‌های مختلف نداریم.

البته خودمان هم می‌توانیم به صورت مستقیم سیستم‌های مربوط به تبدیل متن به گفتار و بالعکس را پیاده‌سازی کنیم. برای مثال به منظور یادگیری عملیات TTS می‌توانید فیلم آموزش رایگان تبدیل متن به گفتار در پایتون Python با کتابخانه pyttsx3 + گواهینامه را در فرادرس مشاهده کنید. به منظور کمک به مخاطبان مجله، لینک دسترسی مستقیم به این فیلم را در پایین نیز قرار داده‌ایم.

در ادامه برای هر کدام از قسمت‌های معماری STT-LLM-TTS، چند مدل مختلف را معرفی و بررسی می‌کنیم.

معماری‌های مناسب برای عملیات STT

در جدول پایین، چند مورد از مدل‌ها را برای اجرای عملیات STT مقایسه کرده‌ایم.

معماری‌های مناسب برای عملیات LLM

در جدول پایین، چند مورد LLM را برای اجرای عملیات «بررسی پیام کاربر و تولید پاسخ مرتبط» مقایسه کرده‌ایم.

معماری‌های مناسب برای عملیات TTS

در جدول پایین، چند مورد از مدل‌ها را برای اجرای عملیات TTS مقایسه کرده‌ایم.

کار با هوش مصنوعی در پایتون را توسط فرادرس بیاموزید

از زبان‌های برنامه نویسی مختلفی می‌توانیم برای طراحی و ساخت مدل‌های هوش مصنوعی و استفاده از آن‌ها کمک بگیریم. در میان همه گزینه‌ها پایتون به عنوان مشهور‌ترین و قوی‌ترین مورد برای فعالیت در این حوزه شناخته می‌‌شود. به طور خاص برای اینکه تمام پروژه‌های این حوزه را می‌توان با کمک پایتون پیاده‌سازی کرد. وجود کتابخانه‌های قدرتمند به پایتون کمک می‌کند از پس اجرای هر پروژه‌ای در هوش مصنوعی بر بیاید. بنابراین توسعه‌دهندگان پایتون با کسب مهارت در این زمینه می‌توانند فرصت‌های شغلی، تحصیلی و حتی مهاجرتی خوبی بدست بیاورند.

فرادرس، مجموعه‌ای از فیلم‌های آموزشی را درباره هوش مصنوعی، تولید و منتشر کرده است. در این مجموعه فیلم‌ها از مطالب پایه و ابتدایی تا تکنولوژی‌های پیشرفته و تخصصی هوش مصنوعی آموزش داده می‌شوند. از تحلیل داده، علم داده، بینایی ماشین، شبکه‌های عصبی، یادگیری ماشین و غیره می‌توان به عنوان چند مورد از آموزش‌های موجود در این مجموعه، اشاره کرد. با بررسی این فیلم‌ها مهارت‌های اولیه و کاربردی بسیار خوبی در حوزه هوش مصنوعی بدست می‌آورید.

در فهرست پایین، چند مورد از فیلم‌های این مجموعه آموزشی را معرفی کرده‌ایم. در صورت تمایل به مشاهده سایر فیلم‌های این مجموعه بر روی تصویر بالا کلیک کنید.

در بخش بعد مراحل ساخت هوش مصنوعی سخنگو با پایتون را با راه‌اندازی فایل محیط کار ادامه می‌دهیم.

راه‌اندازی محیط توسعه

اکنون زمان آماده‌سازی محیط توسعه است. قبل از اجرای هر پروژه‌ای ابتدا باید محیط توسعه آن را به شکل درست و مناسب فراهم کنیم. به منظور انجام بهترین روش برای این کار به غیر از نصب پایتون و استفاده از محیط برنامه نویسی مناسب پایتون، این است که از محیط مجازی هم استفاده کنیم. مراحل اولیه اجرای تمام پروژه‌های پایتون به همدیگر شباهت دارند.

در ادامه با فرض انجام درست مراحل اولیه، بقیه کارها را به صورت جداگانه بررسی می‌کنیم.

نصب عامل‌های LiveKit

همین‌طور که اشاره کردیم برای طراحی این پروژه خاص باید از ابزارهای مناسب استفاده کنیم. یکی از این ابزارها «عامل‌های LiveKit» یا «LiveKit Agents» هستند. با کمک کدهای زیر می‌توانید این موارد را در کامپیوتر نصب کنید.

نکته ۱: توجه کنید که دستور uv  ابزار مدرنی برای مدیریت پروژه‌های پایتون است. تقریبا شبیه ترکیب «pip» و «venv» است. اگر با زدن این دستور در خط فرمان به خطایی برخوردید که به دلیل نصب نبودن uv  اعلام شد، با کمک کد زیر می‌توانید این دستور را در ویندوز نصب کنید.

نکته ۲: هنگام استفاده از رابط LiveKit، نیازی به نصب بسته‌های افزونه جداگانه برای STT، مدل زبانی بزرگ یا TTS ندارید. LiveKit این درخواست‌ها را به صورت خودکار مدیریت و هدایت می‌کند. تنها به «Silero» برای «تشخیص فعالیت صوتی» (Voice Activity Detector | VAD) و «Turn-Detector» برای مدل چندزبانه تشخیص نوبت مکالمه نیاز خواهید داشت.

دریافت کلیدهای API

در صورت استفاده از رابط LiveKit، فقط لازم است در وب‌سایت رسمی این ابزار (+)، حساب کاربری باز کنید. بعد از وارد شدن به داشبورد حساب خود در صفحه اصلی داشبورد باید بر روی گزینه «API keys» کلیک کنید.

دریافت کلید API از کنسول LiveKit

در صفحه باز شده، کلید API همراه با نام مالک و تاریخ ساخت این کلید نمایش داده شده‌‌اند. در ادامه این کلید را لغو کرده و کلید جدیدی خواهیم ساخت.

نمایش اولین کلید ساخته شده توسط خود سرویس LiveKit

رابط LiveKit دسترسی به مدل‌های STT، مدل زبانی بزرگ و TTS را از طریق کلید API یکسان فراهم می‌کند. بنابراین، نیازی به ساخت حساب‌های جداگانه در سرویس‌هایی مانند «Deepgram» و «OpenAI» یا «Cartesia» نخواهید داشت. این ابزار به صورت خودکار، مدیریت اطلاعات احراز هویت و فرایند پرداخت مربوط به همه ارائه‌دهنده‌ها را برعهده می‌گیرد.

متغیرهای محیطی

در مرحله بعد باید متغیر‌های محیطی پروژه را تنظیم کنیم. برای انجام این کار ابتدا فایلی در داخل محیط توسعه پروژه با نام .env.local می‌سازیم. در داخل این فایل، متغیر‌های محیطی باید با الگوی زیر ثبت شوند.

قبل از هر کاری باید مقادیر مناسب این متغیر‌ها را پیدا کنیم. برای رسیدن به این هدف، مسیر زیر را دنبال کنید.

داشبورد حساب کاربری LiveKit برای ساخت کلید API جدیدنوشتن توضیح اولیه و ساده‌ای درباره خود کلید APIتمام متغیر‌های محیطی برای استفاده از LiveKit

ساخت هوش مصنوعی سخنگو با پایتون

از این بخش به بعد می‌خواهیم توسعه پروژه خود را با کدنویسی به پیش‌ ببریم. روش‌های مختلفی برای ساخت هوش مصنوعی سخنگو با پایتون وجود دارد. ما در این مطلب تلاش کردیم که روشی ساده و کاربردی را آموزش بدهیم. اما اگر حس می‌کنید که در آموزش‌های ویدئویی بهتر یاد می‌گیرید پیشنهاد می‌کنیم فیلم آموزش پروژه محور پایتون درباره ساخت دستیار صوتی از طراحی توابع تا اجرای برنامه + گواهینامه را در فرادرس مشاهده کنید. در این فیلم از روش و تکنولوژی‌های دیگری کمک گرفته شده است و به درک بهتر و عمیق‌تر مطلب کمک می‌کند. به منظور دسترسی بهتر به فیلم مورد نظر، لینک دسترسی مستقیم آن را در پایین قرار داده‌ایم.

در ادامه کار، ابتدا در پوشه پروژه اصلی پروژه، فایل جدیدی با نام «agent.py» ایجاد می‌کنیم. در مراحل بعدی این فایل را به صورت مرحله‌به‌مرحله تکمیل خواهیم کرد. همچنین، در بخش «پیاده‌سازی کامل» در انتهای آموزش، نسخه نهایی فایل را قرار داده‌ایم.

مرحله اول، تعریف و مقداردهی هوش مصنوعی سخنگو

کار خود را با تعریف هوش مصنوعی سخنگو و مقداردهی اولیه به آن شروع می‌کنیم. برای انجام این کار کد زیر را به فایل «agent.py»‌ اضافه کنید.

مهم‌ترین نکات مربوط به کدهای بالا را در فهرست پایین نوشته‌ایم.

مراحل اصلی ساخت هوش مصنوعی سخنگو با پایتون

این روش، کنترل دقیق‌تری در اختیار برنامه نویس قرار می‌دهد. در ضمن با انجام این کار برنامه هم در محیط توسعه و هم در محیط عملیاتی، رفتار درست و پایدارتری خواهد داشت.

مرحله دوم، تنظیم فایل تبدیل گفتار به متن

اکنون تابع my_agent  را در فایل «agent.py»‌ به‌روزرسانی می‌کنیم تا از Deepgram برای تبدیل گفتار به متن استفاده کند.

در کدهای بالا دو نکته مهم وجود دارد.

مرحله سوم، پیکربندی مدل زبانی بزرگ

دستورالعمل‌های عامل صوتی داخل کلاس Agent  قرار می‌گیرند. ابتدا کلاس Assistant  را با System Prompt  به‌روزرسانی کرده و سپس مقدار llm  را به AgentSession  اضافه می‌کنیم.

در فهرست پایین، چند نکته مهم برای نوشتن پرامپت‌های صوتی را توضیح داده‌ایم.

مرحله چهارم، تنظیم دستورات تبدیل متن به گفتار

در این مرحله باید مقدار tts  را در تابع my_agent  به AgentSession  اضافه کنیم.

رشته TTS از قالب provider/Model:voice-id  استفاده می‌کند. توجه کنید که سرویس Cartesia از صداهای متنوع و زیادی پشتیبانی می‌کند. بنابراین می‌توانید تمام این گزینه‌ها را بررسی کرده و «شناسه» (UUID) صدای مورد نظرتان را در این رشته جایگزین کنید.

هشدار: در این بخش می‌توانید بدون مشخص کردن «شناسه صوتی» (Voice UUID) هم روند کار را ادامه دهید. اما در این صورت Cartesia از صدای پیش‌فرض خود استفاده می‌کند. این موضوع می‌تواند باعث بروز نتایج ناهماهنگ در جلسات یا مناطق مختلف شود. زیرا ممکن است صدای پیش‌فرض بدون اطلاع و به صورت ناگهانی تغییر کند. بنابراین برای سیستم‌های عملیاتی، بهتر است که همیشه «Voice UUID» را مشخص کنید تا صدای هوش مصنوعی سخنگو ثابت و یکسان باقی بماند.

روش تبدیل متن به گفتار در زمان ساخت هوش مصنوعی سخنگو با پایتون

مرحله پنجم، افزودن VAD و تشخیص نوبت مکالمه

اکنون تنظیمات مربوط به VAD، یعنی «تشخیص فعالیت صوتی» و تشخیص نوبت مکالمه را به AgentSession  اضافه می‌کنیم. به این منظور کد vad=silero.VAD.load()  را در زمان ساخته شدن شی سشن به آن ارسال می‌کنیم.

AgentSession  این موارد را مدیریت می‌کند.

مرحله ششم، اجرای عامل صوتی

پس از تنظیم AgentSession، اکنون می‌خواهیم عامل صوتی را اجرا کنیم. در این بخش از پیامی برای خوش‌آمدگویی اولیه استفاده کرده‌ایم.

نکات مهم کد بالا را در پایین نوشته‌ایم.

دو تابع مهم در زمان اجرای عامل صوتی

کدهای کامل ساخت هوش مصنوعی سخنگو با پایتون

در ادامه، فایل کامل «agent.py»‌ را مشاهده می‌کنید. در این فایل تمام بخش‌های کد در جای درست مربوط به خود نوشته شده‌اند.

نکته: توجه کنید که بعضی از کدهای نوشته شده در بخش‌های قبلی حالت آموزشی داشته و با هدف کمک به درک بهتر موضوع به فایل «agent.py»‌ اضافه شده‌ بودند. در نسخه بالا تمام کدهای زائد را حذف کرده و نسخه درست آن‌ها را نوشته‌ایم.

نکته ۲: در کدهای بالا کلاس Assistant  را تعریف کرده‌ایم. این کلاس از شی Agent  ارث‌بری می‌کند. خود این شی جزو ماژول‌های از پیش‌آماده شده در فریم‌ورک LiveKit است. با اینکه فریم‌ورک‌ها به این شکل بسیار از مسائل کدنویسی را ساده‌تر می‌کنند. اما برای استفاده درست از آن‌ها لازم است با مسائلی مانند وراثت در پایتون آشنا باشید. در صورت نیاز به کمک بیشتر در این ضمینه، پیشنهاد می‌کنیم که مطلب مربوط به آن را در مجله فرادرس مطالعه کنید.

دانلود کردن فایل‌های مدل

حالا که فایل «agent.py»‌ ساخته شده است، برای تکمیل کردن مراحل ساخت هوش مصنوعی سخنگو با پایتون، باید فایل‌های مدل موردنیاز برای VAD و تشخیص نوبت مکالمه را دانلود کنیم. عامل هوش مصنوعی برای صحبت با کاربر به این فایل‌ها نیاز دارد. دستور زیر را در خط فرمان نوشته و دکمه Enter را فشار بدهید.

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

چگونه یک عامل صوتی را به صورت محلی تست کنیم؟

تا اینجای مطلب، تقریبا تمام کدهای مهم عامل یا همان هوش مصنوعی سخنگوی خود را نوشته‌ایم. حالا زمان بررسی عملکرد سیستم است.

تست محلی

ابتدا باید هوش مصنوعی سخنگو را در «حالت کنسول» (Console Mode) اجرا کنیم. بنابراین لازم است ابتدا بررسی کنیم که آیا این هوش مصنوعی به درستی کار می‌کند یا نه. دستور زیر را در خط فرمان نوشته و دکمه Enter را فشار بدهید.

حالت کنسول به کاربران اجازه می‌دهد به شکل مستقیم و صوتی در ترمینال با هوش مصنوعی سخنگو تعامل داشته باشند. یعنی در کنسول پایتون می‌توانید پیام تایپ کنید یا با میکروفون صحبت کنید. این روش برای تست تنظیمات «مدل زبانی بزرگ» (LLM) و «System Prompt» بسیار مناسب است. زیرا در این تکنیک نیازی به استقرار یا باز کردن مرورگر ندارید.

بعد از اجرای دستور بالا پیشنهاد می‌کنیم هر دو حالت زیر را امتحان کنید.

نصب وابستگی‌ها در صورت بروز خطا

در صورتی که بعد از اجرای دستور بالا به خطا برخورد کردید، شاید لازم باشد بعضی از پکیج‌ها را به صورت دستی نصب کنید. دستور لازم برای نصب این پکیج‌ها را در پایین نوشته‌ایم.

تمام دستورات بالا را به شکل جداگانه یک به یک در خط فرمان بنویسید و با زدن دکمه Enter وابستگی‌های مورد نیاز را نصب کنید.

ربات کوچک هوش مصنوعی که بر روی لپتاپی با لوگوی پایتون سخنوری می‌کند.

تست با LiveKit Agent Console

«Agent Console» رابط کاربری تحت وبی است که برای تست و اشکال‌زدایی عامل صوتی در محیط توسعه استفاده می‌شود. در این روش، نیازی به «استقرار» (Deploy) پروژه ندارید. در این تکنیک، عامل هوش مصنوعی به صورت محلی روی سیستم اجرا می‌شود. سپس Console از طریق فضای ابری LiveKit به آن متصل خواهد شد.

مرحله ۱: اجرای هوش مصنوعی سخنگو به صورت محلی

ابتدا مطمئن شوید که هوش مصنوعی سخنگو در «حالت توسعه» (Dev Mode) در حال اجرا است. به منظور اجرای هوش مصنوعی سخنگو در این حالت، کافی است که کد زیر را در خط فرمان نوشته و دکمه Enter را فشار دهید.

پس از اجرا باید در خروجی ترمینال عبارت «registered worker» را مشاهده کنید. این یعنی هوش مصنوعی سخنگوی محلی با موفقیت به فضای ابری LiveKit متصل شده و آماده دریافت درخواست‌ها است.

اجرای هوش مصنوعی سخنگو به صورت محلی

مرحله ۲: باز کردن Console تحت وب

وارد بخش Agent Console در داشبورد پروژه خود شوید. لینک (+)

باز کردن Console تحت وب

مرحله ۳: بررسی تنظیمات جلسه

پنل تنظیمات با عنوان «Console Configuration» را باز کرده و تنظیمات اضافی مربوط به «سشن» (Session) را بررسی کنید. در این بخش باید نام هوش مصنوعی سخنگو (my-agent) از قبل انتخاب شده باشد.

پنل تنظیمات LiveKit با عنوان «Console Configuration»

تنظیمات مهم این بخش را در فهرست زیر نوشته‌ایم.

تنظیمات مشخص شده در نوار کنار

مرحله ۴: اتصال و تست

مراحل این بخش را به ترتیب در پایین نوشته‌ا‌یم.

باید در کمتر از ۱ ثانیه پاسخ صوتی دریافت کنید. پس از اتصال، فضای ابری LiveKit درخواست‌ها را به هوش مصنوعی سخنگوی محلی هدایت می‌کند. همزمان با اجرای این عملیات می‌توانید فعالیت پردازشی هوش مصنوعی سخنگو را در ترمینال خود مشاهده کنید.

نکته: با توجه به سرعت اینترنت ممکن است زمان پاسخ‌گویی در کشور ایران چیزی در حد ۳ تا ۵ ثانیه باشد.

مرحله ۵: پایش مکالمه

در این مرحله، Console اطلاعات مهمی از وضعیت مکالمه را نمایش می‌دهد.

در این قسمت چند مورد از رایج‌ترین مشکلات اجرای پروژه را بررسی کرده و برای هر کدام، راه‌حلی را ارائه داده‌ایم.

چطور با هوش مصنوعی برنامه نویسی کنیم؟

هوش مصنوعی به عنوان مفهومی جدید و مدرن، روزبه‌روز گسترده‌تر می‌شود. از این تکنولوژی جدید، می‌توان به عنوان مشاور و معلم هم استفاده کرد. کار با ابزارهای هوشمند با هدف دستیابی به راه‌حل‌های جدید، به جذب بهتر پروژه‌های بازار کار کمک می‌کند. بنابراین افراد می‌توانند فرصت‌های شغلی بهتری پیدا کنند. از این رو، فرادرس تصمیم گرفت تا مجموعه آموزشی را برای کمک به یادگیری برنامه نویسی با هوش مصنوعی تولید و منتشر کند. کاربران مختلف با کمک فیلم‌های این مجموعه آموزشی می‌توانند برنامه نویسی را یاد بگیرند. می‌توان گفت استفاده از هوش مصنوعی به عنوان معلم مجازی یکی از کاربردهای مهم این ابزار است.

در پایین، چند مورد از فیلم‌های این مجموعه آموزشی را معرفی کرده‌ایم.

برای بررسی سایر فیلم‌ها بر روی تصویر زیر کلیک کنید.

در بخش بعد روش اندازه‌گیری تاخیر پاسخ توسط هوش مصنوعی سخنگوی پایتون را می‌آموزیم.

اندازه‌گیری تاخیر

عامل‌های صوتی خوب باید در کمتر از ۱ ثانیه پاسخ دهند. هر پیام یا «ChatMessage» در تاریخچه مکالمه شامل معیاری برای نمایش مقدار تاخیر برای همان «نوبت» (Turn) است.

«کل تاخیر» (Total Latency) به صورت مستقیم با مقدار e2e_latency  در دسترس است. همچنین می‌توان آن را به صورت تقریبی از جمع بخش‌های مختلف end_of_turn_delay + llm_node_ttft  + tts_node_ttfb به دست آورد.

نکته: در صورت نیاز به بررسی بهتر و بیشتر به فضای ابری LiveKit مراجعه کنید. در این فضا داشبورد «Agent Observability» اطلاعات کاملی درباره جزئیات تاخیر ارائه می‌دهد. این بخش، همراه با پخش همگام‌سازی شده صدا نمایش داده می‌شود. با کلیک روی هر بخش از تایم‌لاین، می‌توانید زمان‌بندی دقیق مراحل مختلف را مشاهده و بررسی کنید.

حداقل تاخیر قابل قبول

در فهرست پایین حداقل تاخیر قابل قبول برای بخش‌‌های مختلف پایپ‌لاین را در زمان ساخت هوش مصنوعی سخنگو با پایتون نوشته‌ایم.

نکته: به زمان بین دریافت سوال و تولید اولین کلمه «TTFT» می‌گویند.

نکته ۲: TTFA معنای زمان مورد نیاز توسط سیستم برای تولید اولین صدا است.

عیب‌یابی مشکلات رایج

در این قسمت از مطلب مربوط به ساخت هوش مصنوعی سخنگو با پایتون روش عیب‌یابی رایج‌ترین مشکلات مربوط به این ابزار را بررسی می‌کنیم. البته ممکن است که مشکلات دیگری هم وجود داشته باشند. اما توقع داریم با رعایت دقیق کدها و مراحل نوشته شده در این مطلب با کمترین مشکل بتوانید هوش مصنوعی سخنگوی خود را راه‌اندازی کنید.

چند مورد از رایج‌ترین مشکلات مربوط به هوش مصنوعی سخنگو

کار نکردن کلی سیستم

اگر هیچ پاسخی از سیستم ارسال نمی‌شد، به نکات زیر، توجه کنید.

از کار افتادن سیستم فعال

اگر سیستم در وسط دادن پاسخ‌های صوتی به صورت ناگهانی متوقف شده یا قطع و وصل شود، بهتر است به نکات زیر توجه کنید.

تاخیر خیلی زیاد

اگر مدت زمان مورد نیاز سیستم برای پاسخ داده خیلی (برای مثال ۳ ثانیه) طول کشید به نکات زیر توجه کنید. البته با توجه به سرعت اینترنت احتمال تاخیر وجود دارد.

عدم درک درست پیام کاربر

اگر در سیستم STT، دقت مورد انتظار وجود نداشت، به نکات زیر توجه کنید.

عدم پاسخ گویی سیستم فعال

اگر با خطاهای «Timeout» در LLM روبه‌رو شدید، به نکات زیر توجه کنید.

استقرار در محیط تولید یا Production

در این مرحله، می‌دانیم که هوش مصنوعی سخنگو در محیط محلی به درستی کار می‌کند و آماده است. اما می‌خواهیم آن را در محیط عملیاتی اجرا کنیم.

استقرار هوش مصنوعی سخنگو بر روی فضای ابری

فضای ابری LiveKit به عنوان محل مناسبی برای استقرار هوش مصنوعی سخنگو است. این سرویس مسئولیت مدیریت «زیرساخت» (Infrastructure)، «مقیاس‌پذیری» (Scaling) و «قابلیت مشاهده» (Observability) بودن هوش مصنوعی ساخته شده است. در نتیجه، برنامه نویسان راحت‌تر می‌توانند تمرکز خود را روی توسعه بگذارند.

استقرار هوش مصنوعی سخنگو بر روی فضای ابری

با استفاده از فضای ابری LiveKit می‌توانید عامل هوش مصنوی سخنگو را به شکل مستقیم از مخزن خود و تنها با یک دستور، مستقر کنید. برای این کار ابتدا لازم است، ابزار خط فرمان LiveKit یعنی lk  را نصب کنیم. با توجه به سیستم عامل خود، دستور مناسب را انتخاب کرده و در خط فرمان اجرا کنید.

بعد از آن می‌توانیم با کمک دستور زیر و به راحتی هوش مصنوعی سخنگوی خود را راه‌اندازی کنیم.

گفتار به گفتار، جایگزین جدید در حال ظهور

رویکرد جدیدتری برای ساخت هوش مصنوعی سخنگو وجود دارد. در این روش، مرحله میانی (تبدیل صوت به متن و برعکس) به طور کامل حذف می‌شود. «مدل‌های گفتار به گفتار» (Speech-To-Speech Models)، مانند «RealTime API» از شرکت «OpenAI» و «Gemini Live» از گوگل، صدا را مستقیما دریافت کرده و خروجی صوتی تولید می‌کنند.

در فهرست پایین، مزایای استفاده از مدل‌های جدید گفتار به گفتار را نوشته‌ایم.

در پایین هم محدودیت‌هایی را نوشته‌ایم که این مدل‌ها دارند.

در حال حاضر، برای ساخت عامل‌های صوتی واقعی در محیط‌های عملیاتی، پایپ‌لاین آبشاری همچنان کاربردی‌ترین انتخاب است. این روش بارها آزمایش شده، امکان بررسی دقیق مراحل را فراهم می‌کند و کنترل جزئی‌تری در اختیار توسعه‌دهندگان قرار می‌دهد. با این حال، فناوری گفتار به گفتار با سرعت زیادی در حال پیشرفت است. فریم‌ورک «LiveKit Agents» از هر دو رویکرد پشتیبانی می‌کند.

چرا بلادرنگ بودن اهمیت دارد؟

الگوی سنتی درخواست و پاسخ HTTP در هر مرحله منجر به کندی سرعت سیستم می‌شود.

هر رفت‌وبرگشت معمولا حدود ۱۰۰ تا ۳۰۰ میلی‌ثانیه تاخیر ایجاد می‌کند.

WebRTC این روند را تغییر می‌دهد. در این روش، به‌جای استفاده از الگوی درخواست و پاسخ، اتصال‌هایی دائمی برقرار می‌شوند که داده را به صورت هم‌زمان در هر دو جهت جریان می‌دهند. در حالی که صدا وارد سیستم می‌شود، پاسخ نیز در همان زمان در حال بازگشت است. نتیجه این کار، کاهش تاخیر کلی از چند ثانیه به چند صد میلی‌ثانیه است.

نمای کلی معماری مدل‌های گفتار به گفتار به شکل زیر است.

نمای کلی معماری مدل‌های گفتار به گفتار

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

جمع‌بندی

در این مطلب از مجله فرادرس، روش ساخت هوش مصنوعی سخنگو با پایتون را با کمک پلتفرم ‌LiveKit یاد گرفتیم. ابتدا محیط پروژه را با ابزارهایی مانند uv  آماده کردیم و سپس کتابخانه‌های موردنیاز برای «تبدیل گفتار به متن» (STT)، «مدل زبانی» (LLM) و «تبدیل متن به گفتار» (TTS) را نصب کردیم. بعد از آن، متغیرهای محیطی و کلیدهای API را برای اتصال پروژه به سرویس LiveKit Cloud تنظیم کردیم. در ادامه، عامل صوتی ساده‌ای با پایتون ساختیم. این هوش مصنوعی سخنگو می‌تواند صدای کاربر را دریافت کرده، آن را پردازش کند و پاسخ صوتی مناسب تولید کند.

همچنین با ابزار Agent Console روش تست و اشکال‌زدایی هوش مصنوعی سخنگو بررسی را هم بررسی کردیم. سپس مشکلات رایج مانند تاخیر زیاد، قطع شدن صدا و خطاهای STT یا LLM را توضیح داده و برای هر کدام چند راه حل پیشنهاد دادیم. در پایان نیز مفهوم Latency و اهمیت پاسخ‌دهی سریع در سیستم‌های صوتی بررسی شده‌اند.

مصطفی رشیدی

برچسب: نویسنده: خنجی تاريخ: چهارشنبه 17 تير 1405 ساعت: 4:08

صفحه بندی

خبرنامه