مرکزی مواد پر جائیں
اے آئی ٹیوٹوریلز

صفر سے AI لائیو اسٹریم روم بنائیں: ڈیجیٹل انسان، تبصروں کی ترتیب اور OBS اسٹریمنگ کا عملی تجربہ

یہ مضمون آپ کو AI لائیو اسٹریم روم انسٹال کرنے، Vidu، کردار، وارڈروب اور آواز ترتیب دینے، تبصروں کی فلٹرنگ اور ترتیب شامل کرنے، اور OBS یا اندرونی طریقے سے لائیو ویڈیو آؤٹ پٹ کرنے کا طریقہ سکھائے گا۔

صفر سے AI لائیو اسٹریم روم بنائیں: ڈیجیٹل انسان، تبصروں کی ترتیب اور OBS اسٹریمنگ

پروجیکٹ کا تعارف

AI ریئل ٹائم لائیو روم ایک اوپن سورس پروجیکٹ ہے جو AI ڈیجیٹل انسان کو خودکار طور پر لائیو اسٹریم کرنے کی سہولت دیتا ہے۔ ناظرین کی جانب سے تبصرہ بھیجنے کے بعد، نظام پہلے مواد کو فلٹر کرتا ہے، پھر موجودہ آواز اور حرکت کی حالت کے مطابق اسے قطار میں شامل کرتا ہے، تاکہ ایک جملہ مکمل ہونے سے پہلے اگلی ہدایت داخل نہ ہو۔

یہ پروجیکٹ تصویر، آواز اور جوابات تیار کرنے کے لیے Vidu S2 ریئل ٹائم ڈیجیٹل انسان استعمال کرتا ہے۔ یہ پروجیکٹ تبصروں کی فلٹرنگ اور ترتیب، کردار کا پروفائل، الماری، لائیو روم اوورلے، مقامی ورک بینچ، اور OBS کو آؤٹ پٹ یا براہِ راست اسٹریمنگ کی ذمہ داری سنبھالتا ہے۔

کوڈ MIT لائسنس کے تحت ہے۔ ریپوزٹری میں مصنف کے اپنے کردار کی شکل، شخصیت، آواز یا مواد کا ذخیرہ شامل نہیں ہے، اس لیے تعیناتی کے بعد آپ کو اپنے کردار کے اثاثے تیار کرنے ہوں گے اور مواد کے حقوق اور قانونی تقاضوں کی ذمہ داری خود اٹھانی ہوگی۔

خصوصیات اور حدود

فی الحال دستیاب صلاحیتیں

  • حسبِ ضرورت شخصیت کے مطابق چیٹ جوابات دینا اور ابتدائی جملہ ترتیب دینا۔
  • پہلے سے تیار الماری سے مکمل لباس تبدیل کرنا؛ ایک بار لباس تبدیل کرنے میں تقریباً 6 سیکنڈ لگتے ہیں۔
  • کلیدی الفاظ کے ذریعے دل بنانا، ہاتھ ہلانا، آنکھ جھپکانا جیسی چھوٹی حرکات شروع کرنا۔
  • ناظرین کے نہ بولنے پر کردار کے موضوعات کے ذخیرے سے خودکار طور پر گفتگو شروع کرنا، تاکہ ایک موضوع مکمل ہونے سے پہلے تکرار نہ ہو۔
  • غیر شائستہ اور ٹریفک منتقل کرنے والے تبصروں کو خودکار طور پر فلٹر کرنا؛ تحائف قطار میں آگے نہیں آئیں گے۔
  • Vidu کے دوران منقطع ہونے کے بعد خودکار طور پر دوبارہ لائیو شروع کرنے کا اختیاری آپشن۔

اہم حدود

  • پس منظر تبدیل کرنا، کھانا پینا اور اشیا پکڑنا بطورِ ڈیفالٹ فعال نہیں، کیونکہ ریئل ٹائم دوبارہ تصویر بنانے سے کردار کے لباس میں بگاڑ آ سکتا ہے۔
  • یہ پروجیکٹ فی الحال گانے، موسیقی چلانے، کھڑے ہونے، پورے جسم کی حرکات، بڑے پیمانے پر رقص یا مصنوعات فروخت کرنے کے لیے موزوں نہیں ہے۔
  • یہ مختلف لائیو سیشنز کے درمیان پرانے ناظرین کو یاد نہیں رکھتا۔
  • Douyin تبصروں کو حاصل کرنے کی سہولت اندرونی طور پر شامل نہیں؛ پلیٹ فارم کا سرکاری اوپن API استعمال کریں، لائیو روم کا ویب صفحہ حاصل نہ کریں۔

پس منظر اور اشیا کی خصوصیات بطورِ ڈیفالٹ بند ہیں۔ اگر صرف نجی طور پر جانچ کر رہے ہوں تو config.json میں {"safety":{"live_visual_edits":true}} ترتیب دیں۔ عوامی لائیو کے لیے اسے فعال کرنے کی سفارش نہیں کی جاتی۔

رن ٹائم ماحول تیار کریں

شروع کرنے سے پہلے درج ذیل ماحول اور اکاؤنٹس تیار کریں:

  • macOS یا Linux۔
  • Python 3.11 یا اس کے بعد کا ورژن؛ مصنف Python 3.13 استعمال کرتا ہے۔
  • libx264 اور aac کے ساتھ ffmpeg۔
  • Vidu اوپن پلیٹ فارم API Key، جس کی کلید vda_ سے شروع ہوتی ہو، اور اکاؤنٹ میں دستیاب کریڈٹس ہوں۔
  • اختیاری Evolink API Key، جو کردار کی تصاویر، کپڑے، اشیا اور پس منظر بنانے کے لیے استعمال ہوتی ہے، اور آواز کلون کرتے وقت آڈیو اپ لوڈ کرنے کے لیے بھی استعمال کی جا سکتی ہے۔
  • اختیاری OBS 30 یا اس کے بعد کا ورژن، کیمرہ، اوورلے اور اسٹریمنگ کے لیے۔
  • اختیاری YouTube اسٹریمنگ کلید؛ صرف داخلی اسٹریمنگ استعمال کرتے وقت درکار ہے۔

Vidu ریئل ٹائم ڈیجیٹل انسان سے دورانیے کے حساب سے فیس لیتا ہے۔ README میں دی گئی سرکاری قیمت 1.5 کریڈٹ فی سیکنڈ ہے، 1 کریڈٹ 0.03125 یوآن کے برابر ہے، اور ایک گھنٹے کے لیے تقریباً 169 یوآن درکار ہوتے ہیں۔ پہلے خالی رن موڈ اور مقامی نقلی سروس کے ذریعے عمل کی تصدیق کرنے کی سفارش کی جاتی ہے۔

کلیدیں محفوظ طریقے سے رکھیں

کلیدیں صرف مقامی فائلوں میں محفوظ ہونی چاہییں، جہاں سے سرور انہیں پڑھے؛ انہیں براؤزر کو نہیں بھیجا جائے گا۔ پہلے ڈیفالٹ ڈائریکٹری بنائیں:

mkdir -p ~/.deepsea/vidu ~/.deepsea/evolink && chmod 700 ~/.deepsea/vidu ~/.deepsea/evolink

macOS میں کلپ بورڈ سے Vidu Key کو ڈیفالٹ راستے پر محفوظ کیا جا سکتا ہے:

pbpaste > ~/.deepsea/vidu/api.key && chmod 600 ~/.deepsea/vidu/api.key

Evolink Key کو ~/.deepsea/evolink/api.key میں رکھیں۔ اگر YouTube داخلی اسٹریمنگ استعمال کریں تو اسٹریمنگ کلید ~/.deepsea/youtube/stream.key میں رکھیں؛ OBS WebSocket پاس ورڈ ~/.deepsea/obs/ws.password میں رکھیں۔ ڈیفالٹ راستے config.json میں تبدیل بھی کیے جا سکتے ہیں۔

پروجیکٹ انسٹال کریں

GitHub سے ریپوزٹری کلون کر کے پروجیکٹ ڈائریکٹری میں جائیں:

git clone https://github.com/garycaogan/ai-live-avatar.git
cd ai-live-avatar

Python ورچوئل ماحول بنائیں اور انحصارات انسٹال کریں:

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

اسٹیج صفحہ Alibaba Cloud RTC ویب SDK پر منحصر ہے۔ پروجیکٹ اس SDK کو دوبارہ تقسیم نہیں کرتا، بلکہ سرکاری CDN سے اسکرپٹ کے ذریعے ڈاؤن لوڈ اور تصدیق کرتا ہے:

./tools/fetch_vendor.sh

آخر میں نمونہ کنفیگریشن فائل کاپی کریں:

cp config.example.json config.json

ورک بینچ شروع کریں

سروس چلائیں:

.venv/bin/python server.py

سروس بطورِ ڈیفالٹ صرف مقامی مشین پر سن رہی ہوتی ہے۔ شروع ہونے کے بعد براؤزر میں http://127.0.0.1:28900/workbench کھول کر ورک بینچ میں داخل ہوں۔

اگر فی الحال Vidu کریڈٹس خرچ نہیں کرنا چاہتے تو لائیو روم کے صفحے پر خالی رن کے ساتھ لائیو شروع کریں استعمال کریں۔ یہ موڈ Vidu کو کال نہیں کرتا، صرف تبصرہ فلٹرنگ، قطار اور اوورلے دکھاتا ہے۔ پروجیکٹ میں tests/dev_mock_stack.py بھی موجود ہے، جو مقامی نقلی Vidu سے جڑ کر پورے کنٹرول عمل کی جانچ میں مدد دیتا ہے۔

اپنا ڈیجیٹل انسان کردار بنائیں

1. کردار کی تصویر تیار کریں

اثاثہ صفحے پر کردار کی تصویر اپ لوڈ کریں، یا Evolink سے بنائیں۔ بنیادی تصویر کردار کے چہرے، لباس، کمرے اور مستقل تاثرات کو متاثر کرتی ہے۔ README میں ایک فرد کی قریبی تصویر، میز پر دونوں ہاتھ، اور قدرتی تاثرات والی تصویر استعمال کرنے کی سفارش کی گئی ہے۔

افقی ساخت کو Douyin جیسے عمودی لائیو صفحے کے اوپری حصے میں موجود چھوٹے فریم میں رکھا جائے گا اور 1.2:1 تناسب سے کاٹا جائے گا، اس لیے بنیادی تصویر کی ساخت پہلے سے اسی کے مطابق ہونی چاہیے۔

2. کردار کا پروفائل بنائیں

کردار کے صفحے پر نیا کردار بنائیں، بنیادی تصویر کے طور پر کردار کی تصویر منتخب کریں، پھر نام، شخصیت اور ابتدائی جملہ درج کریں۔ شخصیت میں بولنے کے انداز کو نمایاں کریں؛ مکمل مثال کے جملے نہ لکھیں، ورنہ ماڈل انہیں براہِ راست دہرا سکتا ہے۔

3. الماری شامل کریں

الماری کے صفحے پر چند لباس شامل کریں۔ ہر لباس مکمل تصویر ہونا چاہیے، اور کمرہ، روشنی اور ساخت بنیادی تصویر سے حتی الامکان یکساں ہونی چاہیے، ورنہ لباس تبدیل کرتے وقت تصویر میں واضح چھلانگ آ سکتی ہے۔

4. آواز ترتیب دیں

آواز کے صفحے پر سسٹم کی آواز منتخب کریں، یا کلوننگ کے لیے 10 سے 20 سیکنڈ کی صاف انسانی آواز اپ لوڈ کریں۔ Vidu آواز کلون کرنے کی فیس لیتا ہے؛ مواد اپ لوڈ کرنے سے پہلے تصدیق کریں کہ آپ کے پاس متعلقہ آواز کے استعمال کی اجازت ہے۔

5. حرکات ترتیب دیں

حرکات کے صفحے پر تبصرے کے کلیدی الفاظ سے متعلق حرکات تبدیل کی جا سکتی ہیں۔ کردار کی ترتیبات میں انتظار کے دوران ہونے والی چھوٹی حرکات بھی تبدیل کی جا سکتی ہیں، تاکہ نئے تبصرے نہ آنے پر تصویر زیادہ قدرتی لگے۔

کردار کا پروفائل assets/avatars/profiles.json میں محفوظ ہوگا، جبکہ شخصیت personas/ میں محفوظ ہوگی۔ یہ فائلیں پہلے ہی .gitignore میں شامل ہیں اور ریپوزٹری میں جمع نہیں ہوں گی۔

تبصروں کے عمل کو سمجھیں

ورک بینچ کا لائیو روم صفحہ نقلی تبصرے دستی طور پر بھیجنے کی سہولت دیتا ہے۔ حقیقی تبصرے درج ذیل API کے ذریعے جمع کیے جا سکتے ہیں:

curl -s -X POST http://127.0.0.1:28900/api/danmaku \
  -H 'Content-Type: application/json' \
  -d '{"user":"ناظر A","text":"لباس تبدیل کریں","gift":0}'

تبصرہ نظام میں داخل ہونے کے بعد پہلے moderation.json میں موجود فلٹر الفاظ سے جانچا جاتا ہے، پھر live/router.py قواعد کے مطابق اسے چیٹ، لباس تبدیلی، شے، پس منظر، حرکت یا بحالی کے طور پر شناخت کرتا ہے۔ اس شناخت کے عمل میں بڑے ماڈل کو کال نہیں کیا جاتا، اس لیے اضافی تاخیر یا فیس نہیں بڑھتی۔

بطورِ ڈیفالٹ، اشیا اور پس منظر کی درخواستوں کو عام چیٹ سمجھا جائے گا۔ تبصرے کی شناخت سادہ اور واضح اظہار کے لیے زیادہ موزوں ہے، مثلاً میزبان کے پاس موجود چھوٹی چیزوں کے بارے میں پوچھنا، الماری میں موجود لباس کے نام سے لباس تبدیل کرنا، یا ایک بار میں صرف ایک حرکت کی درخواست کرنا۔

درج ذیل چیزیں عموماً نتائج کو متاثر کرتی ہیں: ایک جملے میں متعدد کام شامل کرنا، تازہ خبروں یا موسم کے بارے میں پوچھنا، گانے یا موسیقی چلانے کا مطالبہ کرنا۔ پیچیدہ مطالبات کو کئی سادہ تبصروں میں تقسیم کرنے کی سفارش کی جاتی ہے۔

OBS سے منسلک کریں

ورک بینچ کے اسٹریمنگ صفحے پر آؤٹ پٹ کا طریقہ OBS پر تبدیل کریں، پھر OBS میں براؤزر سورس شامل کریں۔ ضرورت کے مطابق درج ذیل پتے منتخب کریں:

  • صرف ڈیجیٹل انسان دکھائیں: http://127.0.0.1:28900/stage?obs=1&role=obs&layer=avatar
  • صرف شفاف اوورلے دکھائیں: http://127.0.0.1:28900/stage?overlay=1
  • ڈیجیٹل انسان اور اوورلے دکھائیں: http://127.0.0.1:28900/stage?obs=1&role=obs&layer=all

مکمل تصویر کے لیے چوڑائی 1080 اور اونچائی 1920 رکھنے کی سفارش کی جاتی ہے۔ براؤزر سورس میں “OBS کے ذریعے آڈیو کنٹرول کریں” منتخب کریں۔ چونکہ سروس صرف مقامی مشین پر سن رہی ہوتی ہے، اس لیے OBS اور پروجیکٹ سروس کا ایک ہی کمپیوٹر پر چلنا ضروری ہے۔

اگر OBS منظر خودکار طور پر بنانا چاہتے ہیں تو tools/obs_control.py استعمال کریں۔ اوورلے میں “AI سے ریئل ٹائم تیار کردہ تصویر” کا نشان مستقل موجود رہے گا؛ یہ AI ڈیجیٹل انسان کی لائیو اسٹریمنگ کے لیے پلیٹ فارم کی شرط ہے اور اسے برقرار رکھنا چاہیے۔

Douyin لائیو تصویر ترتیب دیں

Douyin کے عام ڈیجیٹل انسان لائیو روم میں افقی تصویر استعمال ہوتی ہے؛ موبائل پر تصویر اوپری حصے میں اور تبصرے نچلے حصے میں دکھائے جاتے ہیں۔ “Douyin لائیو روم” منظر بنانے کے لیے درج ذیل کمانڈ چلائیں:

.venv/bin/python tools/obs_control.py setup douyin --camera FaceTime

یہ کمانڈ OBS کینوس کو 1296×1080، یعنی 1.2:1 تناسب، پر ترتیب دے گی اور ڈیجیٹل انسان، معلوماتی کارڈ، سب ٹائٹل اور حقیقی کیمرہ شامل کرے گی۔ --camera کے بعد کیمرے کے نام کا کوئی حصہ درج کریں؛ اگر اسے چھوڑ دیا جائے تو ملنے والا پہلا حقیقی کیمرہ استعمال ہوگا۔

پہلی بار چلانے پر macOS ممکن ہے OBS کو کیمرہ استعمال کرنے کی اجازت طلب کرے۔ اجازت دینے کے بعد کمانڈ دوبارہ چلائیں، تب کیمرے کی کٹائی درست طور پر لاگو ہوگی۔ افقی اور عمودی منظر کسی بھی وقت تبدیل کیے جا سکتے ہیں؛ دونوں ایک ہی ڈیجیٹل انسان کی تہہ استعمال کرتے ہیں اور اضافی اجلاس کی گنجائش نہیں لیتے۔

Douyin لائیو پارٹنر سے جڑنے کے دو طریقے ہیں: OBS ورچوئل کیمرہ فعال کریں، پھر لائیو پارٹنر میں OBS Virtual Camera منتخب کریں؛ یا لائیو پارٹنر میں ونڈو سورس شامل کر کے OBS پروجیکشن ونڈو حاصل کریں۔ ورچوئل کیمرہ صرف تصویر منتقل کرتا ہے، آواز نہیں، اس لیے یہ بھی یقینی بنائیں کہ لائیو پارٹنر “Douyin لائیو روم” منظر سے کمپیوٹر آڈیو حاصل کر سکتا ہے۔

اگر اکاؤنٹ کو تیسرے فریق کی اسٹریمنگ کی اجازت حاصل ہو تو OBS میں براہِ راست پلیٹ فارم کا فراہم کردہ اسٹریمنگ URL درج کیا جا سکتا ہے۔ Douyin تبصرے خودکار طور پر پروجیکٹ میں داخل نہیں ہوں گے؛ Douyin اوپن پلیٹ فارم کے لائیو خصوصیت API کے ذریعے اجازت حاصل کرنے کے بعد ڈیٹا /api/danmaku پر بھیجیں۔

لائیو روم کا معلوماتی کارڈ تبدیل کریں

اسٹیج صفحے کے اوپری بائیں اور دائیں جانب موجود معلوماتی کارڈ اس لائیو میں دستیاب اور عارضی طور پر غیر دستیاب چیزیں، نیز زیادہ مؤثر تبصرے بھیجنے کا طریقہ دکھاتے ہیں۔ مواد assets/stage_panel.json سے آتا ہے؛ اگر یہ فائل موجود نہ ہو تو assets/stage_panel.example.json استعمال ہوگی۔

نمونہ فائل کاپی کرنے کے بعد اسے اپنے مواد کے مطابق تبدیل کیا جا سکتا ہے۔ اسٹیج صفحہ ایک منٹ کے اندر خودکار طور پر تازہ ہو جائے گا، جبکہ داخلی اسٹریمنگ کا اوورلے نیا مواد فوراً استعمال کرے گا۔ outfit_hint کے ذریعے مختلف کرداروں کے لیے لباس تبدیل کرنے کی ہدایت مقرر کی جا سکتی ہے۔

خودکار طور پر دوبارہ لائیو شروع کریں

Vidu کبھی کبھار لائیو کے دوران منقطع ہو سکتا ہے۔ خودکار بحالی فعال ہونے پر پروجیکٹ 3 سیکنڈ انتظار کر کے دوبارہ لائیو شروع کرے گا، اور ایک گھنٹے میں زیادہ سے زیادہ 6 بار کوشش کرے گا۔ تاہم ناکافی کریڈٹس یا مواد کی جانچ کے باعث ہونے والا منقطع ہونا خودکار طور پر دوبارہ شروع نہیں ہوگا۔

API کے ذریعے فعال کریں:

curl -s -X POST http://127.0.0.1:28900/api/settings \
  -H 'Content-Type: application/json' \
  -d '{"auto_recover":true}'

config.json میں بھی ترتیب دی جا سکتی ہے:

{"schedule":{"auto_recover":true}}

طویل لائیو سے پہلے اکاؤنٹ کا بیلنس، کردار کے اثاثے اور نیٹ ورک کی حالت چیک کرنے، نیز خالی رن یا مقامی نقلی سروس سے بحالی کے عمل کی تصدیق کرنے کی سفارش کی جاتی ہے۔

جانچ اور پروجیکٹ کی ساخت

پروجیکٹ کی جانچ مقامی نقلی Vidu استعمال کرتی ہے اور کوئی فیس خرچ نہیں ہوتی۔ درج ذیل کمانڈ چلائی جا سکتی ہے:

python -m unittest tests.test_logic tests.test_workbench tests.test_e2e

اہم ڈائریکٹریوں اور فائلوں کے استعمال درج ذیل ہیں:

  • server.py:سروس کا داخلی نقطہ اور طے شدہ ترتیبات۔
  • live/:لائیو نشریات کی شیڈولنگ، Vidu ریئل ٹائم API، بیراج پیغامات کی شناخت، وارڈروب، مواد کی تخلیق، بلٹ اِن اسٹریمنگ اور ورک بینچ API۔
  • static/:ورک بینچ، اسٹیج صفحہ اور پرانا کنٹرول پینل۔
  • WORKBENCH_API.md:ورک بینچ کے ذریعے استعمال ہونے والے تمام API۔
  • tests/:ٹیسٹ کوڈ اور مقامی نقلی سروسز۔

اختتامیہ

یہ منصوبہ Vidu ریئل ٹائم ڈیجیٹل انسان، بیراج پیغامات کے قواعد، کردار کے اثاثوں اور لائیو آؤٹ پٹ کو ایک مقامی ورک فلو میں جوڑتا ہے۔ پہلے ڈرائی رن موڈ کے ذریعے فلٹرنگ، قطار، وارڈروب اور تہہ بندی سے واقف ہونے کی سفارش کی جاتی ہے، پھر اپنی شکل، آواز اور OBS منظر کو ترتیب دیں، اور آخر میں حقیقی پلیٹ فارم سے مربوط کریں۔

عوامی لائیو نشریات کے دوران ایسے ریئل ٹائم پس منظر اور پروپس کی تدوین بند کر دینی چاہیے جو تصویر کو بگاڑ سکتے ہیں، پلیٹ فارم کے سرکاری تعاملی API استعمال کرنے چاہییں، اور AI سے تیار کردہ مواد کا نشان برقرار رکھنا چاہیے۔ اس کے علاوہ، انسانی آواز، کردار کی شکل، موسیقی اور دیگر مواد کے لیے پیشگی اجازت کی تصدیق کر لینی چاہیے۔