اگر این مطلب را میخوانید، احتمالاً تجربه کافی گفتگو با ChatGPT یا پلتفرمهای مشابه را داشتهاید. نقش متن و دستورات متنی در بسیاری از جنبههای کاری و شخصی ما غیرقابل انکار است.
در ماههای اخیر، این پلتفرمهای هوش مصنوعی مولد (LLMها) اکنون صدایی پیدا کردهاند. کاربران میتوانند علاوه بر متن، با صدا نیز با آنها تعامل داشته باشند.
این سؤال مطرح میشود: چه API و رابطی برای این صدای جدید LLMها استفاده خواهد شد؟ در ادامه، سه جایگزین احتمالی را بررسی میکنیم که دو مورد از آنها هماکنون در حال استفاده هستند: WebSocket، WebRTC و WebTransport.
ابتدا ببینیم هر کدام چه کاربردی دارند.
چه کسی از چه رابطی استفاده میکند؟
سرویسهای تبدیل گفتار به متن (Speech-to-Text) سنتی معمولاً از WebSocket به عنوان رابط خود استفاده میکردند. همین باعث شد WebSocket به انتخاب طبیعی APIهای LLM برای صدای کاربران تبدیل شود. برای مثال، OpenAI Realtime API خود را معرفی کرده و Google Gemini یک رابط WebSocket ارائه کرده است.
این ارائهدهندگان همچنین گاهی از رابط HTTPS برای آپلود و دانلود فایلهای صوتی استفاده میکنند، اما این نوع رابطها بیشتر برای پردازشهای غیرهمزمان و آفلاین مناسباند، نه در زمان واقعی یا نزدیک به واقعی.
وقتی OpenAI Realtime API خود با رابط WebSocket ارائه داد، سایر فروشندگان برای افزودن پشتیبانی WebRTC وارد عمل شدند — بهویژه فروشندگان Programmable Voice و Programmable Video مانند Twilio، Daily و LiveKit.
OpenAI در دسامبر ۲۰۲۴ نسخه بتای رابط WebRTC خود را معرفی کرد.
ویژگیهای رابط WebSocket
رابط WebSocket در حال حاضر محبوبترین گزینه برای APIهای مبتنی بر صدا است.
در این حالت، دستگاه با باز کردن اتصال WebSocket به سرور LLM متصل میشود و اتصال تا پایان جلسه باز باقی میماند. این یک اتصال دوطرفه است که امکان ارسال داده از هر طرف را فراهم میکند.
این رابط معمولاً نوبتی (turn-based) است: دستگاه ابتدا درخواست خود را به صورت متن یا صدا ارسال میکند. سرور LLM پس از پردازش، پاسخ را تولید و آن را به صوت تبدیل میکند و از طریق WebSocket به کاربر ارسال میشود.
مزیت WebSocket این است که قابل اعتماد است — داده ارسال شده تضمین میشود به مقصد برسد. اما این اطمینان باعث افزایش تأخیر میشود، زیرا برای از دست نرفتن بستهها، WebSocket که عمدتاً روی TCP اجرا میشود، بستهها را دوباره ارسال میکند.
اگر LLM پاسخ را سریعتر از زمان پخش تولید کند، ممکن است تمام محتوای ۲۰ ثانیهای در WebSocket ارسال شود، اما پخش آن هنوز زمان ببرد. این برای حالتهای آفلاین یا نوبتی عالی است، اما برای تعامل زنده کمتر مناسب است.
چرا OpenAI رابط WebRTC ارائه کرد؟
افزودن صدا به LLM امکان تعامل طبیعی انسان با هوش مصنوعی را فراهم میکند. این یعنی رابط LLM باید روی دستگاه کاربر بهینه برای تعامل زنده باشد.
WebSocket محدودیتهایی دارد:
-
مشکلات شبکه: کاربران ممکن است از شبکههای ضعیف با پهنای باند کم و از دست دادن بستهها استفاده کنند که باعث افزایش تأخیر میشود.
-
محدودیت جغرافیایی: بیشتر رابطهای WebSocket از مکان مشخصی ارائه میشوند. فاصله زیاد باعث افزایش تأخیر میشود.
-
پخش صوتی: مدیریت پخش صوت روی سمت کاربر است و در صورت قطع پاسخ یا قطع اینترنت، کنترل سخت خواهد بود.
WebRTC برای کاهش تأخیر و افزایش تعامل طراحی شده است:
-
کمترین تأخیر با اولویت استفاده از UDP.
-
بستههای از دست رفته فقط در صورتی دوباره ارسال میشوند که تأخیر اضافه نکند.
-
سرور همواره از وضعیت پخش روی دستگاه کاربر مطلع است.
-
زیرساخت WebRTC معمولاً جهانی است تا نزدیکترین سرور به کاربر استفاده شود و مسیر بین سرورها کنترل شده باشد.
WebRTC در همه مرورگرهای مدرن پشتیبانی میشود و انتخاب طبیعی برای تعامل صوتی با LLMها است.
آیا WebTransport گزینه خواهد بود؟
WebRTC پیچیدگیهای خاص خود را دارد، مانند پشتیبانی از ارتباط peer-to-peer بین مرورگرها که برای تعامل با ماشین لازم نیست.
WebTransport یک استاندارد جدید مرورگری است که نیاز به اجزای کمتر دارد و تمرکز آن روی ارتباط کاربر با سرور است. این رابط میتواند قابل اعتماد یا غیرقابل اعتماد باشد و آیندهای شامل Media Over QUIC (MoQ) نیز دارد.
به صورت نظری، WebTransport میتواند مناسبترین گزینه برای افزودن صدا به LLMها باشد، اما هنوز برای تولید آماده نیست.
مقایسه ویژگیها: WebSocket، WebRTC، WebTransport
| فناوری | تأخیر | قابلیت اطمینان | آپلینک (کاربر به بات) | دانلود (بات به کاربر) | بهترین استفاده | دسترسپذیری |
|---|---|---|---|---|---|---|
| WebSocket | بالا در شبکههای ضعیف | قابل اعتماد (TCP) | بلادرنگ | دستهای | کاربر در محیط کنترلشده | همه جا |
| WebRTC | پایین | غیرقابل اعتماد (اما سریع) | بلادرنگ | بلادرنگ | کاربر روی شبکه غیرمدیریتشده | همه جا |
| WebTransport | پایین | بستگی به پیادهسازی | بلادرنگ | بلادرنگ | کاربر روی شبکه غیرمدیریتشده | هنوز در Safari پشتیبانی نمیشود، بتا در مرورگرهای دیگر |
نتیجهگیری
اگر قصد دارید صدا را به LLM اضافه کنید، WebRTC احتمالاً بهترین گزینه در حال حاضر است. برای اطلاعات بیشتر در مورد تفاوتهای متن و صدا در LLMها، بررسی منابع OpenAI و APIهای صوتی توصیه میشود.
