Asosiy kontentga o‘tish
AI qo‘llanmalari

Noldan AI real vaqtli jonli efir xonasini yaratish: raqamli inson, chat xabarlari boshqaruvi va OBS orqali uzatish amaliyoti

Ushbu maqolada AI real vaqtli jonli efir xonasini o‘rnatish, Vidu, qahramon, garderob va ovozni sozlash, chat xabarlarini filtrlash va boshqarishni ulash hamda OBS yoki ichki usul orqali efir tasvirini uzatishni o‘rganasiz.

AI real vaqtli jonli efir xonasini yaratish: raqamli inson va OBS orqali uzatish

Loyiha haqida

AI real vaqtdagi jonli efir xonasi — AI raqamli insoni mustaqil ravishda jonli efir olib boradigan ochiq kodli loyiha. Tomoshabin izoh yuborganda, tizim avval mazmunni filtrlaydi, so‘ng joriy ovoz va harakat holatiga ko‘ra navbatga qo‘yadi. Shu tariqa bir jumla tugamasidan keyingi buyruq aralashib ketishining oldi olinadi.

Loyiha tasvir, ovoz va javoblarni yaratish uchun Vidu S2 real vaqtdagi raqamli insonidan foydalanadi. Ushbu loyiha esa izohlarni filtrlash va rejalashtirish, personaj profili, kiyimlar shkafi, jonli efir qatlami, mahalliy ish stoli hamda OBS ga chiqarish yoki to‘g‘ridan-to‘g‘ri translatsiya qilishni ta’minlaydi.

Kod MIT litsenziyasi ostida tarqatiladi. Repozitoriy muallifning shaxsiy personaj qiyofasi, obrazi, ovoz tembri va materiallar kutubxonasini o‘z ichiga olmaydi. Shu sababli o‘rnatishdan keyin o‘z personaj aktivlaringizni tayyorlashingiz hamda kontent mualliflik huquqi va muvofiqligi uchun o‘zingiz javob berishingiz kerak.

Imkoniyatlar va cheklovlar

Hozir qo‘llab-quvvatlanadigan imkoniyatlar

  • Maxsus personaj tavsifiga asoslangan suhbat javoblarini yaratish va kirish so‘zini sozlash.
  • Oldindan tayyorlangan kiyimlar shkafidan to‘liq kiyim to‘plamiga o‘tish; bir marta kiyim almashtirish taxminan 6 soniya oladi.
  • Kalit so‘zlar orqali yurakcha ko‘rsatish, qo‘l silkitish, ko‘z qisish kabi mayda harakatlarni ishga tushirish.
  • Tomoshabinlar gapirmaganda personaj mavzular havzasidan avtomatik ravishda suhbatni boshlash va bir mavzu tugashidan oldin takrorlanishning oldini olish.
  • Odobsiz va trafik yo‘naltiruvchi izohlarni avtomatik filtrlash; sovg‘alar navbatni chetlab o‘tmaydi.
  • Vidu efirni kutilmaganda uzgandan keyin avtomatik qayta boshlashni ixtiyoriy yoqish.

E’tibor berilishi kerak bo‘lgan cheklovlar

  • Fon almashtirish, ovqatlanish-ichish va rekvizit olish sukut bo‘yicha yoqilmagan, chunki real vaqtda qayta chizish personaj kiyimining buzilishiga olib kelishi mumkin.
  • Loyiha hozircha qo‘shiq aytish, musiqa qo‘yish, tik turish, to‘liq tana harakatlari, katta amplitudali raqs yoki mahsulot sotish uchun mos emas.
  • Turli jonli efir seanslari orasida eski tomoshabinlarni eslab qolmaydi.
  • Douyin izohlarini yig‘ish funksiyasi ichiga o‘rnatilmagan. Platformaning rasmiy ochiq API interfeysidan foydalaning, jonli efir xonasi veb-sahifasini yig‘mang.

Fon va rekvizit funksiyalari sukut bo‘yicha o‘chirilgan. Faqat shaxsiy sinov uchun config.json faylida {"safety":{"live_visual_edits":true}} ni o‘rnatishingiz mumkin. Ommaviy jonli efirda uni yoqish tavsiya etilmaydi.

Ishlash muhitini tayyorlash

Boshlashdan oldin quyidagi muhit va hisoblarni tayyorlang:

  • macOS yoki Linux.
  • Python 3.11 yoki undan yuqori versiyasi; muallif Python 3.13 dan foydalangan.
  • libx264 va aac bilan jihozlangan ffmpeg.
  • Vidu ochiq platformasi API Key, kalit vda_ bilan boshlanadi va hisobda foydalanish mumkin bo‘lgan kreditlar mavjud bo‘lishi kerak.
  • Qiyofa rasmlari, kiyimlar, rekvizitlar va fonlarni yaratish, shuningdek ovoz klonlashda audio yuklash uchun ixtiyoriy Evolink API Key.
  • Kamera, qatlam va translatsiya uchun ixtiyoriy OBS 30 yoki undan yuqori versiyasi.
  • Ixtiyoriy YouTube translatsiya kaliti; u faqat ichki translatsiyadan foydalanilganda kerak bo‘ladi.

Vidu real vaqtdagi raqamli insoni davomiylik bo‘yicha haq oladi. README da berilgan rasmiy narx — soniyasiga 1.5 kredit, 1 kredit 0.03125 yuan, bir soat taxminan 169 yuan turadi. Avval bo‘sh ishga tushirish rejimi va mahalliy taqlid xizmati yordamida jarayonni tekshirish tavsiya etiladi.

Kalitlarni xavfsiz saqlash

Kalitlar faqat mahalliy kompyuterdagi fayllarda saqlanishi va server tomonidan o‘qilishi kerak; ular brauzerga yuborilmaydi. Avval standart kataloglarni yarating:

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

macOS da buferdagi Vidu Key ni standart yo‘lga saqlashingiz mumkin:

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

Evolink Key ~/.deepsea/evolink/api.key fayliga joylanadi. YouTube ichki translatsiyasidan foydalansangiz, translatsiya kalitini ~/.deepsea/youtube/stream.key fayliga, OBS WebSocket parolini esa ~/.deepsea/obs/ws.password fayliga joylang. Standart yo‘llarni config.json da o‘zgartirish mumkin.

Loyihani o‘rnatish

GitHub dan repozitoriyni klonlang va loyiha katalogiga kiring:

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

Python virtual muhitini yarating va bog‘liqliklarni o‘rnating:

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

Sahna sahifasi Alibaba Cloud RTC veb SDK siga tayanadi. Loyiha ushbu SDK ni qayta tarqatmaydi, balki skript orqali rasmiy CDN dan yuklab, tekshiradi:

./tools/fetch_vendor.sh

Oxirida namuna konfiguratsiya faylidan nusxa oling:

cp config.example.json config.json

Ish stolini ishga tushirish

Xizmatni ishga tushiring:

.venv/bin/python server.py

Xizmat sukut bo‘yicha faqat mahalliy kompyuterda tinglaydi. Ishga tushgach, brauzerda http://127.0.0.1:28900/workbench manzilini ochib, ish stoliga kiring.

Vidu kreditlarini sarflashni hozircha istamasangiz, jonli efir xonasida bo‘sh ishga tushirish rejimidan foydalaning. Bu rejim Vidu ga murojaat qilmaydi, faqat izohlarni filtrlash, navbatga qo‘yish va qatlamni namoyish etadi. Loyiha shuningdek tests/dev_mock_stack.py faylini taqdim etadi; u mahalliy taqlid qilingan Vidu ga ulanib, boshqaruv jarayonini to‘liq sinashga yordam beradi.

O‘z raqamli inson personajingizni yaratish

1. Qiyofa rasmini tayyorlash

Materiallar sahifasiga qiyofa rasmini yuklang yoki Evolink yordamida yarating. Asosiy rasm personajning yuzi, kiyimi, xonasi va doimiy ifodasiga ta’sir qiladi. README bir kishilik yaqin kadr, ikki qo‘l stol ustida va tabiiy ifodali rasmdan foydalanishni tavsiya qiladi.

Gorizontal kompozitsiya Douyin vertikal jonli efir sahifasining yuqori qismidagi kichik ramkaga joylanadi va 1.2:1 nisbatda kesiladi. Shu sababli asosiy rasm kompozitsiyasini oldindan moslashtirish ma’qul.

2. Personaj profilini yaratish

Personaj sahifasida yangi personaj yarating, asosiy rasm sifatida qiyofa rasmini tanlang, so‘ng ism, personaj tavsifi va kirish so‘zini kiriting. Personaj tavsifida asosan gapirish uslubini tasvirlang; to‘liq namunaviy jumlalarni yozmang, aks holda model ularni to‘g‘ridan-to‘g‘ri takrorlashi mumkin.

3. Kiyimlar shkafini qo‘shish

Kiyimlar sahifasida bir nechta kiyim to‘plamini qo‘shing. Har bir kiyim to‘liq fotosurat bo‘lishi, xona, yorug‘lik va kompozitsiya esa asosiy rasmga imkon qadar mos kelishi kerak. Aks holda kiyim almashtirish paytida tasvirda sezilarli sakrashlar paydo bo‘lishi mumkin.

4. Ovoz sozlamalari

Ovoz sahifasida tizim ovozini tanlang yoki 10–20 soniyalik toza inson ovozini yuklab, klonlang. Vidu ovoz klonlashi pullik; materialni yuklashdan oldin tegishli ovozdan foydalanish huquqiga ega ekaningizni tasdiqlang.

5. Harakatlarni sozlash

Harakatlar sahifasida izoh kalit so‘zlariga mos harakatlarni o‘zgartirish mumkin. Personaj sozlamalarida yangi izoh bo‘lmaganda tasvirni tabiiyroq qilish uchun kutish holatidagi mayda harakatlarni ham tahrirlash mumkin.

Personaj ma’lumotlari assets/avatars/profiles.json faylida, personaj tavsiflari esa personas/ katalogida saqlanadi. Bu fayllar .gitignore tomonidan chiqarib tashlangan va repozitoriyga yuborilmaydi.

Izohlarni qayta ishlash jarayonini tushunish

Ish stolidagi jonli efir xonasi sahifasi simulyatsiya qilingan izohlarni qo‘lda yuborishni qo‘llab-quvvatlaydi. Haqiqiy izohlarni esa quyidagi API orqali yuborish mumkin:

curl -s -X POST http://127.0.0.1:28900/api/danmaku \
  -H 'Content-Type: application/json' \
  -d '{"user":"TomoshabinA","text":"Kiyimni almashtir","gift":0}'

Izoh tizimga kirgach, avval moderation.json dagi filtrlash so‘zlari tekshiriladi. Keyin live/router.py qoidalar asosida uni suhbat, kiyim almashtirish, rekvizit, fon, harakat yoki tiklash sifatida taniydi. Bu aniqlash jarayoni katta til modeliga murojaat qilmaydi, shu sababli qo‘shimcha kechikish va xarajat yuzaga kelmaydi.

Sukut bo‘yicha rekvizit va fon so‘rovlari oddiy suhbat sifatida qayta ishlanadi. Izohlarni aniqlash sodda va aniq ifodalar uchun mosroq: masalan, boshlovchi yonidagi mayda narsalar haqida so‘rash, kiyimlar shkafidagi kiyim nomi orqali kiyim almashtirish yoki bir martada faqat bitta harakatni so‘rash.

Quyidagi mazmun odatda natijaga salbiy ta’sir qiladi: bitta jumlada bir nechta vazifa bo‘lishi, real vaqtdagi yangiliklar yoki ob-havo haqida so‘rash, qo‘shiq aytish yoki musiqa qo‘yishni talab qilish. Murakkab talablarni bir nechta sodda izohga bo‘lish tavsiya etiladi.

OBS ga ulash

Ish stolidagi translatsiya sahifasida chiqarish usulini OBS ga o‘zgartiring, so‘ng OBS da brauzer manbasini qo‘shing. Zaruratga qarab quyidagi manzillardan birini tanlang:

  • Faqat raqamli insonni ko‘rsatish: http://127.0.0.1:28900/stage?obs=1&role=obs&layer=avatar
  • Faqat shaffof qatlamni ko‘rsatish: http://127.0.0.1:28900/stage?overlay=1
  • Raqamli inson va qatlamni ko‘rsatish: http://127.0.0.1:28900/stage?obs=1&role=obs&layer=all

To‘liq tasvir uchun eni 1080, bo‘yi 1920 bo‘lishi tavsiya etiladi. Brauzer manbasida “Audio boshqaruvi OBS orqali” bandini belgilang. Xizmat faqat mahalliy kompyuterda tinglagani sababli OBS loyiha xizmati bilan bir kompyuterda ishlashi kerak.

OBS sahnasini avtomatik yaratish uchun tools/obs_control.py dan foydalanishingiz mumkin. Qatlamda “AI tomonidan real vaqtda yaratilgan tasvir” belgisi doimiy ko‘rsatiladi. Bu platformaning AI raqamli insoni jonli efiri uchun talabi bo‘lib, uni saqlab qolish kerak.

Douyin jonli efir tasvirini sozlash

Douyindagi odatiy raqamli inson jonli efiri gorizontal tasvirdan foydalanadi: telefonda tasvir yuqori qismga joylanadi, izohlar esa pastda ko‘rsatiladi. “Douyin jonli efir xonasi” sahnasini yaratish uchun quyidagi buyruqni ishga tushiring:

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

Bu buyruq OBS kanvasini 1296×1080, ya’ni 1.2:1 nisbatga o‘rnatadi hamda raqamli inson, ma’lumot kartasi, subtitr va haqiqiy kamera tasvirini sozlaydi. --camera dan keyin kamera nomining bir qismini kiriting; uni tashlab ketsangiz, topilgan birinchi haqiqiy kamera ishlatiladi.

Birinchi ishga tushirishda macOS OBS ga kameradan foydalanish ruxsatini so‘rashi mumkin. Ruxsat bergach, kamerani kesish to‘g‘ri qo‘llanishi uchun buyruqni yana bir marta ishga tushiring. Gorizontal va vertikal sahnalar o‘rtasida istalgan vaqtda almashish mumkin; ikkalasi ham bir xil raqamli inson qatlamidan foydalanadi va qo‘shimcha ulanish joyini egallamaydi.

Douyin jonli efir yordamchisiga ulanishning ikki usuli bor: OBS virtual kamerasini yoqib, jonli efir yordamchisida OBS Virtual Camera ni tanlash yoki jonli efir yordamchisiga oyna manbasini qo‘shib, OBS proyeksiya oynasini yozib olish. Virtual kamera faqat tasvirni uzatadi, ovozni emas. Shu sababli jonli efir yordamchisi “Douyin jonli efir xonasi” sahnasidagi kompyuter ovozini yozib olishi mumkinligini ham tekshiring.

Agar hisobda uchinchi tomon translatsiyasiga ruxsat bo‘lsa, OBS da platforma taqdim etgan translatsiya manzilini bevosita kiritish mumkin. Douyin izohlari loyihaga avtomatik kirmaydi; avval Douyin ochiq platformasining jonli efir funksiyasi API si orqali ruxsat olishingiz, so‘ng ma’lumotlarni /api/danmaku ga yuborishingiz kerak.

Jonli efir ma’lumot kartasini tahrirlash

Sahna sahifasining yuqori chap va o‘ng burchaklaridagi ma’lumot kartalari ushbu jonli efir nimalarni qila olishi, vaqtincha nimalarni qila olmasligi va samaraliroq izoh yuborish usulini ko‘rsatadi. Mazmun assets/stage_panel.json dan olinadi; agar bu fayl mavjud bo‘lmasa, assets/stage_panel.example.json ishlatiladi.

Namuna faylidan nusxa olgach, uni o‘z mazmuningizga moslab tahrirlashingiz mumkin. Sahna sahifasi bir daqiqa ichida avtomatik yangilanadi, ichki translatsiya qatlami esa yangi mazmundan darhol foydalanadi. outfit_hint orqali turli personajlar uchun kiyim almashtirish ko‘rsatmasini alohida sozlash mumkin.

Avtomatik qayta jonli efirni yoqish

Vidu ba’zan jonli efir vaqtida aloqani uzishi mumkin. Avtomatik tiklash yoqilganda, loyiha 3 soniya kutib, efirni qayta boshlaydi; bir soatda ko‘pi bilan 6 marta urinadi. Biroq kredit yetishmasligi yoki kontent tekshiruvi sababli uzilgan efir avtomatik qayta boshlanmaydi.

API orqali yoqing:

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

Shuningdek, config.json faylida quyidagicha sozlash mumkin:

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

Uzoq davom etadigan jonli efirdan oldin hisob balansini, personaj materiallarini va tarmoq holatini tekshirish, shuningdek tiklanish jarayonini bo‘sh ishga tushirish yoki mahalliy taqlid xizmati yordamida sinab ko‘rish tavsiya etiladi.

Sinovlar va loyiha tuzilmasi

Loyiha sinovlarida mahalliy taqlid qilingan Vidu ishlatiladi, shuning uchun xarajat yuzaga kelmaydi. Quyidagini ishga tushirish mumkin:

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

Asosiy katalog va fayllarning vazifalari quyidagicha:

  • server.py: xizmatga kirish nuqtasi va standart sozlamalar.
  • live/: jonli efirni rejalashtirish, Vidu real vaqt API'si, izohlarni aniqlash, garderob, material yaratish, o'rnatilgan oqim uzatish va ish stoli API'si.
  • static/: ish stoli, sahna sahifasi va eski boshqaruv konsoli.
  • WORKBENCH_API.md: ish stoli foydalanadigan barcha API'lar.
  • tests/: test kodi va mahalliy taqlid xizmatlari.

Xulosa

Bu loyiha Vidu real vaqt raqamli insoni, izohlar qoidalari, personaj aktivlari va jonli efir chiqishini yagona mahalliy ish jarayoniga birlashtiradi. Avval filtrlash, navbatga qo'yish, garderob va qatlamlarni sinab ko'rish uchun bo'sh ishga tushirish rejimidan foydalanish, so'ngra o'z tasviringiz, ovozingiz va OBS sahnalaringizni sozlash, oxirida esa haqiqiy platformaga ulanish tavsiya etiladi.

Ommaviy jonli efir vaqtida tasvirni buzib ko'rsatishi mumkin bo'lgan real vaqt fonlari va rekvizitlarini tahrirlashni o'chiring, platformaning rasmiy interaktiv API'sidan foydalaning va AI tomonidan yaratilganlik belgisini saqlang. Shuningdek, haqiqiy inson ovozi, personaj tasviri, musiqa va boshqa materiallar uchun foydalanish huquqi oldindan tasdiqlanishi kerak.