چه چیزی معرفی شده است

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

راه‌حل پیشنهادی این است که هر جمله به‌محض تولید به مدل Kokoro-82M ارسال شود. این مدل با ۸۲ میلیون پارامتر، طبق ادعای AWS، روی یک نمونه GPU میان‌رده به نام ml.g5.xlarge در یک endpoint بلادرنگ SageMaker AI و داخل کانتینر سفارشی اجرا می‌شود. کانتینر دو مسیر دارد: یکی POST برای پاسخ استریم‌شده به یک ورودی کامل و دیگری WebSocket دوطرفه برای چندین پیام روی یک اتصال.

برای بررسی:Stream low-latency speech from AI agents using Kokoro TTS on Amazon SageMaker AI

جزئیات پیاده‌سازی

پست چند نکته عملی را برجسته می‌کند. SageMaker AI پیام‌های کلاینت را به‌صورت فریم باینری WebSocket تحویل می‌دهد؛ بنابراین هندلری که فقط receive_text() را صدا بزند با KeyError شکست می‌خورد، در حالی که endpoint همچنان InService نشان داده می‌شود. نشست باید بین پیام‌ها باز بماند و فقط با پیام صریح close بسته شود.

یک کلاس chunker متن ورودی را به جمله‌های کامل تقسیم می‌کند و flush() باقی‌مانده بدون نقطه را آزاد می‌کند. نویسندگان تأکید می‌کنند این سنتز همزمان نیست: هر هندلر حلقه‌ای ترتیبی است و فایده فقط شروع سنتز جمله اول در لحظه ظهور آن است.

برای بازگرداندن صدا به مرورگر، base64 داخل SSE حدود ۳۳ درصد حجم اضافه می‌کند و مرز رویدادهای SSE با فریم‌های MP3 لزوماً هم‌تراز نیست؛ در یک نمونه، چهار فریم در شش بسته رسیدند. جایگزین پیشنهادی، ترکیب صدای باینری و فریم‌های کنترلی JSON روی همان نشست دوطرفه است. اگر فرانت‌اند از قبل SSE دارد، خود پست base64 را انتخاب عملی می‌داند.

برای بررسی:Stream low-latency speech from AI agents using Kokoro TTS on Amazon SageMaker AI

نتایج اندازه‌گیری‌شده

طبق گزارش AWS، در آزمایشی روی همان متن ۲۶۷ نویسه‌ای چهارجمله‌ای با پنج تکرار روی endpoint زنده، ارسال فقط جمله اول به‌جای کل متن، میانگین زمان تا اولین بایت صدا را از ۳۲۹٫۳ به ۱۵۶٫۷ میلی‌ثانیه رساند؛ یعنی ۵۲٫۴ درصد بهبود نسبی در همان لایه TTS.

در آزمون کامل‌تر با مدل زبانی واقعی روی Amazon Bedrock، حالت bidi برای زمان تا اولین صدا ۲٫۴ برابر سریع‌تر از حالت batch روی کانتینر محلی و ۳٫۵ برابر سریع‌تر روی AgentCore runtime مستقر‌شده بود. مبنای مقایسه در هر دو مورد حالت batch با همان پرامپت، مدل و endpoint است. این اعداد گزارش خود AWS هستند و در متن منبع، آزمون مستقل ارائه نشده است.

برای بررسی:Stream low-latency speech from AI agents using Kokoro TTS on Amazon SageMaker AI

پیش‌نیازها و محدودیت‌ها

اجرای نمونه به حساب AWS با مجوزهای ساخت endpoint، AgentCore runtime، نقش‌های IAM و مخزن ECR، همراه با AWS CDK v2، Docker، پایتون ۳٫۱۲ یا بالاتر، uv و Boto3 با پشتیبانی از invoke_endpoint_with_bidirectional_stream نیاز دارد. کانتینر باید برچسب bidirectional-streaming=true را داشته باشد.

نمونه کانتینر نسخه قدیمی‌تر PyTorch با یک هشدار امنیتی شناخته‌شده (PYSEC-2026-2286، رفع‌شده در torch 2.10.0) را پین کرده و پیش از استفاده فراتر از اثبات مفهوم باید ارتقا یابد. مسیر بازگشت از AgentCore به کلاینت به‌دلیل نیاز به خروجی JSON از base64 استفاده می‌کند. پس از پایان کار، منابع باید پاک شوند؛ باکت S3 و مخزن ECR به‌صورت خودکار حذف نمی‌شوند و هزینه ذخیره‌سازی کوچکی دارند. منبع درباره دسترسی در ایران یا زبان‌های پشتیبانی‌شده توضیحی نداده است.

برای بررسی:Stream low-latency speech from AI agents using Kokoro TTS on Amazon SageMaker AI

پشت این نوشته

منابع و جزئیات

این خبر با کمک هوش مصنوعی نوشته شده و با بررسی خودکار منابع و متن منتشر شده است. تصویر، تصویرسازی مفهومی است.

این منابع را می‌توانی برای بررسی ادعاها و جزئیات بیشتر بخوانی. تاریخ کنار هر منبع، زمان بررسی آن برای این نوشته است.

  1. Stream low-latency speech from AI agents using Kokoro TTS on Amazon SageMaker AI
    aws.amazon.comبررسی:

نخستین انتشار:

روش تهیه و بازبینی نوشته‌ها