مقدمه
در این مطلب نشان داده میشود چگونه میتوان توضیحی از سلیقه موسیقایی کاربر را که از طریق پیام RCS ارسال شده است دریافت کرد، آن را به مدل Lyria در بستر Vertex AI منتقل نمود تا یک قطعه موسیقی تولید شود، و سپس نتیجه را بهصورت مستقیم و قابل پخش، در قالب یک کارت غنی RCS (RCS Rich Card) به تلفن همراه کاربر ارسال کرد.
پیشنیازها
-
یک عامل ثبتشده برای پیامرسانی تجاری RCS (RBM)
-
یک تلفن همراه مجهز به RCS برای تست
-
Node.js نسخه ۱۴ یا بالاتر
-
یک پروژه فعال در Google Cloud با Vertex AI فعالشده
-
اعتبارنامههای احراز هویت Google Cloud
زمینه و توضیح کلی
Lyria یک مدل مولد صوت است که روی Vertex AI میزبانی میشود. در این پروژه، با دریافت یک پرامپت متنی مانند
«warm lofi piano, vinyl crackle, 85 BPM»
مدل یک فایل ویدیویی MP4 تولید میکند که شامل یک تصویر ثابت بهعنوان کاور بوده و صدا بهصورت درونخطی (inline) روی تلفن همراه پخش میشود.
پس از آماده شدن فایل MP4، این خروجی در قالب یک کارت غنی RCS و با استفاده از پیام سفارشی ارسال میشود. انواع پیامهای پشتیبانیشده در RCS قابل بررسی هستند.
نصب وابستگیها
برای نصب وابستگیها، دستور npm install در ترمینال اجرا میشود. وابستگیهای مورد نیاز عبارتاند از:
-
dotenv
-
server SDK پیامرسانی
-
کتابخانه ارسال پیام
-
google-auth-library
-
node-fetch
-
ffmpeg-static
این موارد در فایل package.json فهرست شدهاند.
نکته: برای آشنایی بیشتر با هر وابستگی، میتوان توضیحات مربوط به آن را در مخزن NPM مطالعه کرد.
ایجاد فایل .env
برای اجرای پروژه، تعدادی متغیر محیطی مورد نیاز است. این متغیرها در یک فایل .env تعریف و مقداردهی میشوند:
نحوه عملکرد سیستم
شروع مکالمه توسط سرور انجام میشود، زیرا کاربران نمیتوانند بهصورت مستقل یک گفتوگوی RCS جدید آغاز کنند. با باز کردن آدرسی مانند:
سرور مراحل زیر را انجام میدهد:
-
تولید موسیقی با استفاده از Lyria
-
تبدیل خروجی صوتی به فرمت MP4
-
میزبانی فایل در مسیر
/output -
ارسال یک کارت غنی RCS اولیه به دستگاه مجهز به RCS
پس از آن، کاربر میتواند با ارسال پرامپتهای جدید پاسخ دهد. وبهوک ورودی هر پیام را دریافت میکند، آن را به Lyria ارسال مینماید، خروجی را به MP4 تبدیل میکند و در قالب یک کارت غنی جدید شامل عنوان و توضیح قطعه بازمیگرداند.
پیادهسازی کامل جاوااسکریپت در فایل index.js قرار دارد.
اجرای سرور
اطمینان حاصل میشود که:
-
ngrok در حال اجرا است
-
وبهوکها بهدرستی پیکربندی شدهاند
-
متغیرهای محیطی مقداردهی شدهاند
سپس سرور با دستور زیر اجرا میشود:
پس از آن، آدرس تست در مرورگر باز میشود، برای مثال:
در این مرحله، اولین کارت غنی RCS به دستگاه ارسال میشود. سپس کاربر میتواند مستقیماً در همان گفتوگو عبارتی مانند
«lofi piano with rain»
را ارسال کند و یک کارت غنی جدید با قطعه موسیقی تازه تولیدشده دریافت نماید.
ارسال صوت بهصورت فایل
در این پروژه از کارتهای غنی RCS استفاده شده است، زیرا امکان پخش مستقیم فایل صوتی روی تلفن همراه را فراهم میکنند.
در صورتی که نیازی به کارت غنی نباشد، میتوان فایل صوتی تولیدشده را بهصورت پیوست فایل (File Attachment) نیز ارسال کرد. این روش در یک آموزش جداگانه درباره ارسال فایل با RCS توضیح داده شده است.
جمعبندی
در این مطلب نشان داده شد که چگونه میتوان از مکالمات RCS برای دریافت درخواست تولید موسیقی استفاده کرد، با کمک مدل Lyria محتوای صوتی تولید نمود و نتیجه را بهصورت مستقیم و قابل پخش برای کاربر ارسال کرد. این رویکرد امکان تعامل خلاقانه و بلادرنگ با مدلهای مولد صوت را در بستر پیامرسانی فراهم میکند.
