Utangulizi wa mradi
Chumba cha mtiririko wa moja kwa moja cha AI ni mradi wa chanzo huria unaowezesha binadamu wa kidijitali wa AI kufanya matangazo ya moja kwa moja kwa kujitegemea. Mtazamaji anapotuma maoni, mfumo huyachuja kwanza, kisha huyapanga kulingana na hali ya sasa ya sauti na vitendo, ili kuzuia amri inayofuata kuingizwa kabla sentensi ya awali haijakamilika.
Mradi hutumia binadamu wa kidijitali wa wakati halisi wa Vidu S2 kutengeneza picha, sauti na majibu. Mradi huu hushughulikia uchujaji na upangaji wa maoni, wasifu wa mhusika, kabati la nguo, tabaka za chumba cha matangazo ya moja kwa moja, jukwaa la kazi la ndani, pamoja na kutoa picha kwa OBS au kutangaza moja kwa moja.
Msimbo umetolewa chini ya leseni ya MIT. Hazina hii haijumuishi picha ya mhusika wa mwandishi, utu wa mhusika, sauti au maktaba ya nyenzo. Kwa hiyo, baada ya kuusakinisha, unahitaji kuandaa nyenzo zako za mhusika na kuchukua mwenyewe jukumu la hakimiliki na uzingatiaji wa kanuni za maudhui.
Vipengele na vikwazo
Uwezo unaotumika sasa
- Kujibu mazungumzo kulingana na utu maalum wa mhusika na kusanidi salamu za mwanzo.
- Kubadilisha seti nzima ya mavazi kutoka kwenye kabati lililoandaliwa mapema; kila ubadilishaji huchukua takribani sekunde 6.
- Kuchochea vitendo vidogo kama kutengeneza ishara ya moyo, kupunga mkono na kupepesa macho kupitia maneno muhimu.
- Watazamaji wasipotoa maoni, kuanzisha mazungumzo kiotomatiki kutoka kwenye mkusanyiko wa mada za mhusika bila kurudia kabla ya mada moja kumalizika.
- Kuchuja kiotomatiki maoni machafu na ya kuelekeza trafiki; zawadi hazitangulii foleni.
- Kuwasha kwa hiari uanzishaji upya wa matangazo baada ya Vidu kukata muunganisho katikati.
Vikwazo vya kuzingatia
- Kubadilisha mandharinyuma, kula, kunywa na kushika vifaa kumezimwa kwa chaguo-msingi, kwa sababu kuchora upya kwa wakati halisi kunaweza kuharibu umbo la mavazi ya mhusika.
- Kwa sasa mradi haufai kwa kuimba, kucheza muziki, kusimama, vitendo vya mwili mzima, kucheza kwa nguvu au kuuza bidhaa moja kwa moja.
- Hautakumbuka watazamaji wa zamani kati ya vipindi tofauti vya matangazo.
- Maoni ya Douyin hayana kipengele cha kunasa kilichojengwa ndani. Tumia kiolesura rasmi cha jukwaa, na usinase ukurasa wa wavuti wa chumba cha matangazo.
Vipengele vya kubadilisha mandharinyuma na vifaa vimezimwa kwa chaguo-msingi. Kwa majaribio ya faragha pekee, unaweza kuweka {"safety":{"live_visual_edits":true}} katika config.json. Haipendekezwi kuiwasha wakati wa matangazo ya umma.
Kuandaa mazingira ya kuendesha
Andaa mazingira na akaunti zifuatazo kabla ya kuanza:
- macOS au Linux.
- Python 3.11 au toleo jipya zaidi; mwandishi anatumia Python 3.13.
- ffmpeg yenye
libx264naaac. - API Key ya jukwaa la wazi la Vidu, ambayo huanza na
vda_, na uhakikishe akaunti ina salio la pointi linalopatikana. - API Key ya hiari ya Evolink, kwa ajili ya kutengeneza picha za wahusika, nguo, vifaa na mandharinyuma, na pia kupakia sauti wakati wa kuunda nakala ya sauti.
- OBS 30 au toleo jipya zaidi kwa hiari, kwa kamera, tabaka na matangazo.
- Msimbo wa hiari wa kutangaza wa YouTube; unahitajika tu unapotumia utangazaji uliojengwa ndani.
Binadamu wa kidijitali wa wakati halisi wa Vidu hutoza kulingana na muda. Bei rasmi iliyoonyeshwa kwenye README ni pointi 1.5 kwa sekunde, ambapo pointi 1 ni yuan 0.03125, hivyo saa moja hugharimu takribani yuan 169. Inashauriwa kuthibitisha mchakato kwanza kwa hali ya kuendesha bila utekelezaji na huduma ya kuiga ya ndani.
Kuhifadhi funguo kwa usalama
Funguo zinapaswa kuhifadhiwa kwenye faili za kompyuta hii pekee na kusomwa na seva; hazitatumwa kwenye kivinjari. Unda kwanza saraka za chaguo-msingi:
mkdir -p ~/.deepsea/vidu ~/.deepsea/evolink && chmod 700 ~/.deepsea/vidu ~/.deepsea/evolinkKwenye macOS, unaweza kuhifadhi Vidu Key kutoka kwenye ubao wa kunakili katika njia ya chaguo-msingi:
pbpaste > ~/.deepsea/vidu/api.key && chmod 600 ~/.deepsea/vidu/api.keyEvolink Key iweke katika ~/.deepsea/evolink/api.key. Ukitumia utangazaji wa YouTube uliojengwa ndani, weka msimbo wa kutangaza katika ~/.deepsea/youtube/stream.key; nenosiri la OBS WebSocket liweke katika ~/.deepsea/obs/ws.password. Njia za chaguo-msingi pia zinaweza kubadilishwa katika config.json.
Kusakinisha mradi
Clone hazina kutoka GitHub kisha ingia kwenye saraka ya mradi:
git clone https://github.com/garycaogan/ai-live-avatar.git
cd ai-live-avatarUnda mazingira pepe ya Python na usakinishe utegemezi:
python3 -m venv .venv
.venv/bin/pip install -r requirements.txtUkurasa wa jukwaa hutegemea SDK ya wavuti ya Alibaba Cloud RTC. Mradi hausambazi tena SDK hiyo, bali huipakua kutoka CDN rasmi na kuithibitisha kupitia hati:
./tools/fetch_vendor.shMwisho, nakili faili la mfano la usanidi:
cp config.example.json config.jsonKuwasha jukwaa la kazi
Endesha seva:
.venv/bin/python server.pyKwa chaguo-msingi seva husikiliza kwenye kompyuta hii pekee. Baada ya kuanza, fungua http://127.0.0.1:28900/workbench kwenye kivinjari ili kuingia kwenye jukwaa la kazi.
Ikiwa hutaki kutumia pointi za Vidu kwa sasa, tumia kuanzisha matangazo bila utekelezaji kwenye ukurasa wa chumba cha matangazo. Hali hii haitaita Vidu, bali itaonyesha tu uchujaji wa maoni, upangaji wa foleni na tabaka. Mradi pia hutoa tests/dev_mock_stack.py, ambayo huunganishwa na Vidu ya ndani ya kuiga ili kukusaidia kujaribu kikamilifu mtiririko wa udhibiti.
Kuunda mhusika wako wa kidijitali
1. Kuandaa picha ya mhusika
Pakia picha ya mhusika kwenye ukurasa wa nyenzo, au tumia Evolink kuitengeneza. Picha ya msingi huathiri sura, mavazi, chumba na mwonekano wa kudumu wa mhusika. README inapendekeza picha ya mtu mmoja iliyo karibu, mikono yote miwili ikiwa juu ya meza na uso wa kawaida.
Mchoro wa mlalo utawekwa kwenye kisanduku kidogo kilicho juu ya ukurasa wa matangazo ya wima unaofanana na Douyin, na utapunguzwa kwa uwiano wa 1.2:1. Kwa hiyo, ni bora kurekebisha mapema muundo wa picha ya msingi.
2. Kuunda wasifu wa mhusika
Unda mhusika mpya kwenye ukurasa wa wahusika, chagua picha ya mhusika kama picha ya msingi, kisha jaza jina, utu na salamu ya mwanzo. Utu unapaswa kueleza hasa mtindo wa kuzungumza; usiandike sentensi kamili za mfano, vinginevyo modeli inaweza kuzisoma moja kwa moja.
3. Kuongeza kabati la nguo
Ongeza seti kadhaa za mavazi kwenye ukurasa wa kabati. Kila vazi linapaswa kuwa picha kamili, na chumba, mwanga na muundo vifanane kadiri iwezekanavyo na picha ya msingi; vinginevyo, mabadiliko makubwa ya picha yanaweza kutokea wakati wa kubadilisha mavazi.
4. Kusanidi sauti
Chagua sauti ya mfumo kwenye ukurasa wa sauti, au pakia sekunde 10 hadi 20 za sauti safi ya binadamu ili kuunda nakala yake. Uundaji wa nakala ya sauti wa Vidu ni wa kulipia; kabla ya kupakia nyenzo, hakikisha una idhini husika ya kutumia sauti hiyo.
5. Kusanidi vitendo
Kwenye ukurasa wa vitendo unaweza kubadilisha vitendo vinavyohusishwa na maneno muhimu ya maoni. Katika mipangilio ya mhusika unaweza pia kuhariri vitendo vidogo vya kusubiri, ili picha ionekane ya asili zaidi wakati hakuna maoni mapya.
Wasifu wa mhusika huhifadhiwa katika assets/avatars/profiles.json, na utu huhifadhiwa katika personas/. Faili hizi zimetengwa na .gitignore na hazitatumwa kwenye hazina.
Kuelewa mchakato wa kushughulikia maoni
Ukurasa wa chumba cha matangazo kwenye jukwaa la kazi unaauni kutuma maoni ya kuiga kwa mkono. Maoni halisi yanaweza kutumwa kupitia kiolesura kifuatacho:
curl -s -X POST http://127.0.0.1:28900/api/danmaku \
-H 'Content-Type: application/json' \
-d '{"user":"观众A","text":"换件衣服","gift":0}'Baada ya maoni kuingia kwenye mfumo, hukaguliwa kwanza dhidi ya maneno ya kuchuja katika moderation.json, kisha live/router.py huyatambua kulingana na kanuni kama mazungumzo, kubadilisha mavazi, kifaa, mandharinyuma, kitendo au kurejesha hali. Mchakato huu wa utambuzi hautumii modeli kubwa, hivyo hauongezi ucheleweshaji wala gharama za ziada.
Kwa chaguo-msingi, maombi ya vifaa na mandharinyuma hushughulikiwa kama mazungumzo ya kawaida. Utambuzi wa maoni hufanya kazi vizuri zaidi kwa maelezo mafupi na yaliyo wazi, kama kuuliza jambo dogo kuhusu kilicho karibu na mtangazaji, kutumia jina la vazi lililo kwenye kabati, au kuomba kitendo kimoja kwa wakati mmoja.
Yafuatayo kwa kawaida huathiri matokeo: sentensi moja kuwa na kazi nyingi, kuuliza habari au hali ya hewa ya wakati halisi, na kuomba kuimba au kucheza muziki. Inashauriwa kugawanya maombi magumu kuwa maoni kadhaa rahisi.
Kuunganisha OBS
Kwenye ukurasa wa utangazaji wa jukwaa la kazi, badilisha njia ya kutoa kuwa OBS, kisha ongeza chanzo cha kivinjari kwenye OBS. Chagua anwani ifuatayo kulingana na mahitaji:
- Kuonyesha binadamu wa kidijitali pekee:
http://127.0.0.1:28900/stage?obs=1&role=obs&layer=avatar - Kuonyesha tabaka la uwazi pekee:
http://127.0.0.1:28900/stage?overlay=1 - Kuonyesha binadamu wa kidijitali na tabaka:
http://127.0.0.1:28900/stage?obs=1&role=obs&layer=all
Kwa picha kamili, inashauriwa kuweka upana 1080 na urefu 1920. Chanzo cha kivinjari kinapaswa kuchagua “Dhibiti sauti kupitia OBS”. Kwa kuwa seva husikiliza kwenye kompyuta hii pekee, OBS lazima iendeshe kwenye kompyuta hiyo hiyo na huduma ya mradi.
Ukitaka kuunda kiotomatiki mandhari ya OBS, unaweza kutumia tools/obs_control.py. Kitambulisho cha “Picha inayozalishwa na AI kwa wakati halisi” kitabaki kwenye tabaka; hili ni hitaji la jukwaa kwa matangazo ya binadamu wa kidijitali wa AI na linapaswa kubaki.
Kusanidi picha ya matangazo ya Douyin
Vyumba vya matangazo vya binadamu wa kidijitali vya Douyin kwa kawaida hutumia picha ya mlalo. Kwenye simu, picha huwekwa katika eneo la juu na maoni huonyeshwa chini. Unaweza kuendesha amri ifuatayo kuunda mandhari ya “Chumba cha matangazo cha Douyin”:
.venv/bin/python tools/obs_control.py setup douyin --camera FaceTimeAmri hii itaweka turubai ya OBS kuwa 1296×1080, yaani uwiano wa 1.2:1, na kusanidi binadamu wa kidijitali, kadi ya maelezo, manukuu na kamera ya mtu halisi. Baada ya --camera, jaza sehemu ya jina la kamera; ukiiacha, kamera halisi ya kwanza iliyopatikana itatumika.
Mara ya kwanza inapotekelezwa, macOS inaweza kuomba OBS ruhusa ya kutumia kamera. Iruhusu kisha endesha tena ili upunguzaji wa kamera utumike ipasavyo. Mandhari ya mlalo na wima zinaweza kubadilishwa wakati wowote; zinatumia tabaka moja la binadamu wa kidijitali na hazitumii nafasi ya ziada ya kujiunga.
Kuna njia mbili za kuunganisha Douyin Live Companion: washa kamera pepe ya OBS, kisha uchague OBS Virtual Camera katika Live Companion; au ongeza nyenzo ya dirisha katika Live Companion na unase dirisha la onyesho la OBS. Kamera pepe hutuma picha pekee, si sauti, kwa hiyo lazima pia uthibitishe kuwa Live Companion inaweza kunasa sauti ya kompyuta kutoka kwenye mandhari ya “Chumba cha matangazo cha Douyin”.
Ikiwa akaunti ina ruhusa ya kutangaza kupitia mtoa huduma wa tatu, unaweza pia kujaza moja kwa moja anwani ya utangazaji iliyotolewa na jukwaa kwenye OBS. Maoni ya Douyin hayataingia kwenye mradi kiotomatiki; unahitaji kuomba ruhusa kupitia kiolesura cha matangazo cha jukwaa la wazi la Douyin, kisha utume data kwenye /api/danmaku.
Ku编辑 kadi ya maelezo ya chumba cha matangazo
Kadi za maelezo zilizo kwenye pembe za juu kushoto na kulia za ukurasa wa jukwaa hutumika kuonyesha kile ambacho matangazo haya yanaweza na hayawezi kufanya kwa sasa, pamoja na jinsi ya kutuma maoni yenye ufanisi zaidi. Maudhui yanatoka kwenye assets/stage_panel.json; faili hilo lisipokuwepo, assets/stage_panel.example.json litatumika.
Baada ya kunakili faili la mfano, unaweza kulibadilisha liwe na maudhui yako. Ukurasa wa jukwaa utajisasisha kiotomatiki ndani ya dakika moja, na tabaka la utangazaji lililojengwa ndani litatumia maudhui mapya mara moja. outfit_hint inaweza kuweka vidokezo tofauti vya kubadilisha mavazi kwa wahusika tofauti.
Kuwasha uanzishaji upya wa kiotomatiki
Vidu inaweza kukata muunganisho mara kwa mara wakati wa matangazo. Urejeshaji wa kiotomatiki ukiwashwa, mradi utasubiri sekunde 3 kisha uanzishe matangazo tena, na utajaribu mara 6 kwa saa moja. Hata hivyo, kukatika kunakosababishwa na pointi pungufu au ukaguzi wa maudhui hakutaanzishwa upya kiotomatiki.
Washa kupitia API:
curl -s -X POST http://127.0.0.1:28900/api/settings \
-H 'Content-Type: application/json' \
-d '{"auto_recover":true}'Unaweza pia kuweka katika config.json:
{"schedule":{"auto_recover":true}}Kabla ya matangazo ya muda mrefu, inashauriwa kuthibitisha salio la akaunti, nyenzo za mhusika na hali ya mtandao, kisha kuthibitisha mchakato wa urejeshaji kwa hali ya kuendesha bila utekelezaji au huduma ya kuiga ya ndani.
Majaribio na muundo wa mradi
Majaribio ya mradi hutumia Vidu ya ndani ya kuiga na hayatumii gharama. Unaweza kuendesha:
python -m unittest tests.test_logic tests.test_workbench tests.test_e2eMatumizi ya saraka na faili kuu ni kama yafuatayo:
server.py: Sehemu ya kuingilia huduma na usanidi chaguo-msingi.live/: Uratibu wa matangazo ya moja kwa moja, API ya wakati halisi ya Vidu, utambuzi wa maoni, kabati la mavazi, uundaji wa nyenzo, utiririshaji uliojengewa ndani na API za benchi la kazi.static/: Benchi la kazi, ukurasa wa jukwaa na dashibodi ya zamani.WORKBENCH_API.md: API zote zinazotumiwa na benchi la kazi.tests/: Msimbo wa majaribio na huduma za kuiga za ndani.
Hitimisho
Mradi huu unaunganisha binadamu wa kidijitali wa Vidu wa wakati halisi, kanuni za maoni, rasilimali za wahusika na matokeo ya matangazo ya moja kwa moja kuwa mtiririko mmoja wa kazi wa ndani. Inapendekezwa uanze kwa kutumia hali ya majaribio bila kutuma ili kuzoea uchujaji, kupanga foleni, kabati la mavazi na tabaka, kisha usanidi mwonekano, sauti na mandhari zako za OBS, na mwishowe uunganishe jukwaa halisi.
Unaporusha matangazo hadharani, zima uhariri wa mandharinyuma na vifaa vya wakati halisi vinavyoweza kusababisha picha kupotoshwa, tumia API rasmi ya mwingiliano ya jukwaa, na uache alama ya maudhui yaliyotengenezwa na AI. Pia, hakikisha mapema kuwa una ruhusa za kutumia sauti za watu halisi, mwonekano wa wahusika, muziki na nyenzo nyingine.
