Ruka hadi maudhui makuu
Mafunzo ya AI

Jinsi ya kujenga avatar ya kidijitali ya AI kwenye kompyuta yako

Unataka kujenga kwenye kompyuta yako mwenyewe avatar ya kidijitali ya AI inayoweza kusikia, kuzungumza, kusawazisha midomo na kuwasiliana nawe, bila kutumia zana zozote za AI au kutumia pesa nyingi kwa

Jinsi ya kujenga avatar ya kidijitali ya AI kwenye kompyuta yako

Unataka kusanidi kwenye kompyuta yako mtu wa kidijitali wa AI anayeweza kusikia, kuzungumza, kusogeza midomo na kuwasiliana nawe, bila kutumia zana yoyote ya AI au kulipa ada ghali za usajili. Kwa kuunganisha utambuzi wa sauti, modeli kubwa ya ndani, usanisi wa sauti na usawazishaji wa midomo, unaweza kupata mfumo wa mwingiliano wa wakati halisi unaoendesha kwenye kompyuta yako.

Makala haya yanaanza na maandalizi ya maunzi na kukuongoza kukamilisha usakinishaji wote katika mazingira ya Windows + WSL2. Matokeo ya mwisho ni: ukurasa wa wavuti unaonyesha mtu wa kidijitali aliyebinafsishwa; tunazungumza na mtu huyo wa AI kupitia maikrofoni, naye hujibu kwa sauti uliyoiunda kwa kloni.

I. Mtiririko wa kazi wa mfumo mzima

Mpangilio huu haukamilishwi na modeli moja pekee, bali unatumia vipengele kadhaa:

llama.cpp huendesha modeli ya lugha ya ndani; faster-whisper hubadilisha sauti ya mtumiaji kuwa maandishi; Qwen3-TTS hutengeneza sauti ya jibu kulingana na sauti ya marejeo; LiveTalking na Wav2Lip hubadilisha sauti hiyo kuwa mienendo ya mdomo inayolingana nayo.

II. Mahitaji ya maunzi na makadirio ya kumbukumbu ya video

Usanidi wa chini:

  • Kadi ya picha ya NVIDIA: 8GB VRAM

  • Kumbukumbu: 16GB

  • Nafasi ya diski inayopatikana: angalau 60GB

  • Mfumo: Windows 10/11, ukiunga mkono WSL2

Usanidi unaopendekezwa:

  • Kadi ya picha ya NVIDIA: 16GB VRAM au zaidi

  • Kumbukumbu: 32GB au zaidi

  • Inapendekezwa kutumia SSD kuhifadhi modeli na faili za WSL

Kwa mfano wa modeli ya Qwen3 14B iliyopunguzwa ukubwa, VRAM itagawanywa takribani hivi:

  • Kipengele|Matumizi ya VRAM ya marejeo

  • Qwen3-14B Q4_K_M|takribani 9GB

  • faster-whisper large-v3|takribani 3GB

  • Qwen3-TTS 1.7B|takribani 4GB

  • Wav2Lip 256|takribani 1.3GB

  • Jumla|takribani 17GB

Kadi ya picha yenye 24GB VRAM itaendesha mchanganyiko huu kwa urahisi zaidi. Kwa 16GB VRAM, unaweza kutumia modeli ya 8B na kupunguza urefu wa muktadha; kwa takribani 8GB, inapendekezwa kuanza na modeli ya 4B na modeli ya kati ya utambuzi wa sauti.

III. Kusanidi mtandao na kumbukumbu ya WSL2

1.  Kwanza, unda faili ya .wslconfig katika saraka ya mtumiaji wa Windows:

C:\Users\jina_lako_la_mtumiaji\.wslconfig

2. Weka maudhui yafuatayo:

[wsl2]
memory=32GB
networkingMode=mirrored

[experimental]
hostAddressLoopback=true

memory inaweza kubadilishwa kulingana na kumbukumbu halisi; kwa kawaida, kutenga nusu hadi robo tatu ya kumbukumbu ya kimwili kunatosha. hostAddressLoopback=true ni muhimu hasa kwa mawasiliano ya WebRTC kati ya Windows ya ndani na WSL. Ikiwa haipo, muunganisho wa WebRTC baadaye utashindwa daima, huku ujumbe wa hitilafu usionyeshe sababu; kivinjari kitaonyesha hitilafu ya uchanganuzi wa JSON, na orodha ya wagombea wa ICE itakuwa tupu.

3. Baada ya kubadilisha, tekeleza katika PowerShell:

wsl --shutdown

Usanidi utaanza kufanya kazi baada ya kuingia tena kwenye WSL.

IV. Kuanzisha modeli kubwa ya lugha ya ndani kwenye Windows

1. Kuandaa llama.cpp

Pakua llama.cpp inayofaa kwa Windows na uitoe kwenye saraka maalum, kwa mfano:

E:\llama.cpp

Anwani ya kupakua toleo thabiti: https://pan.quark.cn/s/0073852e4042

2. Kuchagua modeli kulingana na VRAM

  • Kiwango cha VRAM|Modeli inayopendekezwa|Anwani ya kupakua

  • Zaidi ya 16GB|Qwen3-14B-Instruct Q4_K_M|https://pan.quark.cn/s/f48c2144ac71

  • 8–16GB|Qwen3-8B GGUF Q4_K_M|https://pan.quark.cn/s/78b8643f1be3

  • Chini ya 8GB|Qwen3-4B GGUF|https://pan.quark.cn/s/fd588898ccbf

Weka faili ya .gguf uliyopakua kwenye:

E:\llama.cpp\models

3. Kuanzisha huduma ya uelekezaji

Tekeleza katika Amri Prompt ya Windows:

cd /d E:\llama.cpp
llama-server -m E:\llama.cpp\models\Qwen3-14B-Instruct-Q4_K_M.gguf ^
  -np 1 -c 8192 -fa on --temp 1.0 --top-p 0.95 ^
  --host 0.0.0.0 --port 8090

Kazi za baadhi ya vigezo:

  • host 0.0.0.0: huruhusu WSL kufikia huduma ya modeli iliyo upande wa Windows;

  • c 8192: huweka urefu wa muktadha, unaotosha kwa mazungumzo mafupi;

  • temp 1.0: hufanya majibu yasiwe ya kimfumo kupita kiasi;

  • port 8090: huweka lango la huduma.

Dirisha hili la amri linapaswa kuendelea kufanya kazi. Ikiwa utaonyeshwa kuwa lango linatumika lakini ukaguzi wa kawaida hauonyeshi mchakato, unaweza kuangalia kama Hyper-V imelihifadhi lango hilo:

netsh interface ipv4 show excludedportrange protocol=tcp

Ukigundua mgongano, njia rahisi zaidi ni kubadilisha kwa pamoja lango la huduma ya modeli na lango lililo kwenye hati ya kuiita.

V. Kutengeneza picha ya msingi na video ya mtu wa kidijitali

1. Kwanza, tengeneza picha ya mtu wa kidijitali unayoipenda

Picha ya mtu wa kidijitali haipaswi kulenga tu “uzuri”; inapaswa pia kuacha nafasi kwa mpangilio wa ukurasa wa wavuti na utengenezaji wa mienendo ya midomo. Muundo unaotegemeka ni:

  • Tumia uwiano wa 16:9;

  • Mtu awe katika theluthi ya upande wa kulia;

  • Acha nafasi kubwa yenye rangi nyeusi upande wa kushoto kwa ajili ya mpira wa mwanga wa mwingiliano na manukuu;

  • Midomo ifungwe kwa kawaida bila kuonyesha meno;

  • Mikono isifunike mdomo, kidevu au mipaka ya uso;

  • Tumia mwanga wa pembeni wenye giza kiasi ili kupunguza hali isiyo ya kawaida inayosababishwa na ukungu mdogo katika eneo la mdomo.

Unaweza kutumia wazo la kidokezo lifuatalo na kubadilisha mtu, mavazi na mandhari:

Picha ya upande ya mwanamke mtu mzima mwenye mwonekano wa sinema na mwanga hafifu, ameketi upande wa kulia wa fremu, mwanga laini wa kuonyesha mipaka ya mwili,
nafasi kubwa yenye giza upande wa kushoto, mwonekano wa asili, midomo imefungwa, kamera isiyosogea,
muundo halisi wa ngozi, mpangilio wa mlalo wa 16:9.

Katika vidokezo hasi unaweza kuongeza: mdomo wazi, meno yanaonekana, mtu katikati, mandhari angavu yenye vurugu, mkono unafunika mdomo, maandishi, watermark, ngozi ya plastiki, mtindo wa katuni.

2. Kutumia ComfyUI + Wan2.2 kutengeneza video ya sekunde 5 ya mtu wa kidijitali

Pakua na usakinishe ComfyUI, kisha baada ya kuifungua chagua mtiririko wa kazi wa Wan2.2 wa kubadilisha picha kuwa video, na utumie picha ya msingi kama fremu ya kwanza. Kwa matumizi ya kwanza, inapendekezwa kutumia vigezo vifuatavyo vya tahadhari:

  • Kigezo|Thamani inayopendekezwa

  • Azimio|Kulingana na uwiano wa picha ya msingi; mfano wa mafunzo ya awali ni 704 × 896

  • Muda|Sekunde 5

  • Kasi ya fremu|25 fps

  • Prompt Enhance|Zima

Anwani ya kupakua ComfyUI: https://pan.quark.cn/s/bb9d21f1e724

Kidokezo kieleze vitendo pekee, bila kurudia kueleza mwonekano wa mtu. Kwa mfano:

Mtu abaki katika nafasi yake, apumue kwa kiasi kidogo tu, apepeshe macho polepole mara moja, asogeze kichwa kwa mwendo mdogo sana wa asili kisha arudi katika mkao wa mwanzo,
midomo ibaki imefungwa muda wote, kamera isiyosogea bila kusogeza karibu, mbali au pembeni.

Hamisha faili na ulipe jina: idle.mp4

Kwa kuwa mienendo halisi ya mdomo wakati wa kuzungumza itatengenezwa kwa wakati halisi na Wav2Lip, hakuna haja ya kutengeneza video nyingi za ziada za “kuzungumza” au “kusikiliza”.

Hapa kuna makosa kadhaa ya kawaida:

  • Usiwasha uboreshaji wa kidokezo; zima prompt_enhance , vinginevyo modeli inaweza kubuni upya mtu au mandhari;

  • Uwiano wa matokeo lazima ulingane na uwiano wa picha ya kuingiza. Ikiwa unatumia picha ya msingi ya mlalo ya 16:9, badilisha hadi ukubwa wa mlalo unaoungwa mkono na mtiririko wa kazi ili kuepuka kunyoosha au kukata mtu;

  • Kidokezo kiandike vitendo pekee; kurudia mwonekano wa mtu kunaweza kusababisha mtu kuhama;

  • Video ya sekunde 5 inatosha kwa mzunguko wa kusubiri; kurefusha video bila sababu kunaweza kusababisha marudio au mabadiliko ya umbo.

VI. Kurekodi sauti ya marejeo (kloni ya sauti)

Qwen3-TTS huiga rangi ya sauti na hali ya kuzungumza kulingana na sauti ya marejeo. Inapendekezwa kurekodi sauti ya sekunde 5–15, kwa masharti yafuatayo:

  • Mtu mmoja tu azungumze;

  • Mazingira yawe tulivu, bila muziki au mwangwi unaoonekana;

  • Kasi ya kuzungumza iwe ya asili, na hisia zilingane na mtindo unaotaka kuunda kwa kloni;

  • Hifadhi pia manukuu sahihi kabisa ya kila neno.

Baada ya kurekodi, hamisha faili ( katika muundo wa wav au mp3), liweke kwenye folda ya AI iliyo kwenye eneo-kazi, na ulipe jina: ref.wav. Andika kwa usahihi kila neno lililosemwa katika rekodi, kwa sababu litawekwa kwenye usanidi baadaye. Kumbuka kuwa hisia pia zitaigwa, hivyo wakati wa kurekodi unaweza kutumia toni unayoitaka.

Kwa sauti ya marejeo, pakua “kifurushi cha usakinishaji wa mbofyo mmoja”. Hati hizi hutumika kusakinisha mazingira ya mazungumzo ya sauti, kuanzisha huduma mbalimbali na kushughulikia usawazishaji wa sauti na picha. Kwa kuwa hati zinaweza kubadilishwa kulingana na matoleo ya mradi, ni vyema kukagua haraka anwani za kupakua, milango na majina ya modeli kabla ya kuzitumia. Faili zinajumuisha:

  • Faili|Kazi

  • install-voice.sh|Usakinishaji wa mbofyo mmoja wa sehemu ya mazungumzo ya sauti

  • start-voice.sh|Kuanzisha / kusimamisha / kuona kumbukumbu za huduma ya sauti

  • start-livetalking.sh|Kuanzisha / kusimamisha huduma ya mienendo ya midomo

  • avatar-sync.js|Usambazaji wa sauti + safu ya mandharinyuma ya mtu wa kidijitali

  • wav2lip256.pth|Uzito wa modeli ya mienendo ya midomo

  • wav2lip256_avatar1.tar.gz|Mtu wa mfano rasmi (kwa kuthibitisha mnyororo wa huduma)

Anwani ya kupakua kifurushi cha usakinishaji wa mbofyo mmoja: https://pan.quark.cn/s/d4fc5bfc88eb

VII. Kupanga faili

Mwisho, weka faili ya video ya sekunde 5 ya mtu wa kidijitali idle.mp4 pamoja na faili ya sauti ref.wav` kwenye folda ya AI iliyo kwenye eneo-kazi. Muundo wa mwisho wa saraka:

C:\Users\jina_lako_la_mtumiaji\Desktop\AI\
├── install-voice.sh
├── start-voice.sh
├── start-livetalking.sh
├── avatar-sync.js
├── wav2lip256.pth
├── wav2lip256_avatar1.tar.gz
├── idle.mp4
└── ref.wav

VIII. Kusakinisha WSL2 (Ubuntu 24.04 na usaidizi wa GPU)

Fungua PowerShell kama msimamizi:

wsl --update
wsl --install -d Ubuntu-24.04

Baada ya usakinishaji kukamilika, anzisha upya kompyuta ili .wslconfig ya hatua ya kwanza ianze kufanya kazi. Baada ya kuwasha upya, fungua terminali ya Ubuntu, weka jina la mtumiaji na nenosiri, kisha thibitisha upitishaji wa kadi ya picha:

nvidia-smi

Ukiona jina la kadi ya picha na maelezo ya kiendeshi, upitishaji wa GPU unafanya kazi kwa usahihi.

Usisakinishe tena kiendeshi cha kadi ya picha ndani ya WSL. Kiendeshi husakinishwa kwenye Windows pekee, huku WSL ikitumia CUDA iliyopitishwa na mfumo mwenyeji; kukisakinisha tena ndani ya WSL kutafuta libcuda.so, na hivyo kufanya GPU isitumikike.

IX. Kunakili kifurushi cha usakinishaji kwenye WSL

Katika terminali ya Ubuntu, badilisha njia ili itumie jina lako la mtumiaji la Windows:

#Nakili (badilisha njia itumie jina lako la mtumiaji):
mkdir -p ~/setup
cp -r "/mnt/c/Users/jina_lako_la_mtumiaji/Desktop/AI/." ~/setup/
cd ~/setup
ls -la

#Badilisha mwisho wa mistari:
sudo apt update
sudo apt install -y dos2unix
dos2unix *.sh

#Ongeza ruhusa ya utekelezaji:
chmod +x *.sh
  • Kwa nini ubadilishe mwisho wa mistari: Faili za maandishi za Windows kwa kawaida hutumia mistari mipya ya CRLF; bila kubadilisha, unaweza kupata makosa kama bash^M au bad interpreter, na watu wengi hukwama hapa.

  • Kuendesha faili nyingi za Python moja kwa moja ndani ya /mnt/c kwa kawaida huwa polepole zaidi, na pia kunaweza kusababisha matatizo ya ruhusa. Kuzinakili kwenye saraka kuu ya Linux huwa thabiti zaidi.

Kumi, kusakinisha na kujaribu moduli ya mazungumzo ya sauti

1. Tekeleza hati ya usakinishaji

cd ~/setup
./install-voice.sh

Mchakato wa usakinishaji utaunda mazingira ya Python na kuandaa utambuzi wa shughuli za sauti, faster-whisper, Qwen3-TTS na vipengele vya mbele. Kulingana na kasi ya mtandao na diski kuu, huenda ukahitaji dakika kadhaa hadi zaidi ya kumi.

2. Sawazisha muundo wa sauti ya marejeo

ffmpeg -i ~/setup/ref.wav -ac 1 -ar 16000 -c:a pcm_s16le ~/s2s/ref.wav

#Thibitisha muundo: lazima iwe pcm_s16le / 16000 / mkondo 1 wa sauti:
ffprobe -v error \
  -show_entries stream=sample_rate,channels,codec_name \
  -show_entries format=duration \
  -of default=nw=1 ~/s2s/ref.wav

Matokeo ya ukaguzi yanapaswa kukidhi:

  • Kodeki: pcm_s16le

  • Kiwango cha sampuli: 16000

  • Mkondo: mono

3. Weka unukuzi wa neno kwa neno wa sauti ya marejeo

Badilisha maandishi yaliyo hapa chini yawe maudhui halisi yaliyosemwa kwenye rekodi:

sed -i 's|^REF_TEXT=.*|REF_TEXT="Weka hapa unukuzi unaolingana kabisa na rekodi"|' ~/setup/start-voice.sh
grep -n "^REF_TEXT=" ~/setup/start-voice.sh

Maneno yaliyokosekana, makosa ya tahajia au tofauti kubwa za alama za uakifishaji katika unukuzi zitapunguza ubora wa kunakili sauti.

4. Kuanzisha kwa mara ya kwanza

cd ~/setup
./start-voice.sh

Kisha fungua kwenye kivinjari cha Windows:

http://localhost:7860/

Ruhusu kivinjari kutumia maikrofoni, kisha ubofye kitufe cha mwingiliano kwenye ukurasa ili kujaribu. Mara ya kwanza inashauriwa uingie kwenye mipangilio, uweke NOISE GATE upande wa kushoto kabisa au uizime moja kwa moja; vinginevyo hata mazungumzo ya kawaida yanaweza kuchukuliwa kuwa kelele ya chinichini na kuchujwa.

Kumi na moja, kusakinisha LiveTalking (usawazishaji wa midomo) na Wav2Lip

Fungua terminali nyingine ya Ubuntu, ingia kwenye WSL, kisha tekeleza amri zifuatazo kwa mpangilio:

mkdir -p ~/livetalking
cd ~/livetalking
git clone https://github.com/lipku/LiveTalking.git
cd LiveTalking

uv venv --python 3.10 .venv-lt
source .venv-lt/bin/activate

uv pip install torch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 \
  --index-url https://download.pytorch.org/whl/cu124

uv pip install -r requirements.txt
sudo apt install -y ffmpeg libgl1 libglib2.0-0

Kama mfumo bado hauna uv, fuata kwanza maelekezo rasmi ya usakinishaji wa uv, kisha tekeleza tena amri zilizo hapo juu.

Weka modeli ya usawazishaji wa midomo na avatar chaguomsingi:

cd ~/livetalking/LiveTalking

# Kumbuka kubadilisha jina kuwa: wav2lip.pth
cp ~/setup/wav2lip256.pth models/wav2lip.pth

# Avatar ya mfano rasmi
tar -xzf ~/setup/wav2lip256_avatar1.tar.gz -C data/avatars/

# Thibitisha
ls -lh models/ && ls data/avatars/

Kumbuka: Ingawa faili chanzo linaitwa wav2lip256.pth, baada ya kunakili lazima liitwe wav2lip.pth, kwa sababu mradi hutafuta uzani kwa kutumia jina hilo kwa chaguomsingi.

Jaribu kwanza avatar ya mfano rasmi:

cd ~/livetalking/LiveTalking
source .venv-lt/bin/activate

python app.py --transport webrtc --model wav2lip \
  --avatar_id wav2lip256_avatar1 \
  --stun 'stun:stun.l.google.com:19302'

Fungua kwenye kivinjari:

http://localhost:8010/index.html

Baada ya kuunganisha kwa mafanikio, tuma maandishi ya Kichina. Ikiwa sauti, harakati za mtu na miondoko ya midomo inayolingana vinaonekana kwa wakati mmoja, basi hatua hii imekamilika kwa mafanikio.

inferfps na finalfps kwenye kumbukumbu za terminali zinaweza kutumika kuangalia utendaji wa wakati halisi. Kwa kawaida, inatarajiwa zote zifikie karibu 25 au zaidi; ikiwa inferfps iko chini kwa kiasi kikubwa, unahitaji kupunguza mzigo wa modeli au kubadilisha hadi usanidi mwepesi zaidi.

Mafunzo mengi mtandaoni hupendekeza MuseTalk. Ingawa ubora wa picha ni bora zaidi, mahitaji ya picha ya avatar ya AI katika tukio hili si makubwa. Wav2Lip hutumia takriban 1.3GB tu ya VRAM; kwa picha zenye mwanga hafifu, uso wa pembeni au mtu anayechukua sehemu ndogo ya fremu, tunaweza kupata matokeo yanayokubalika kwa gharama ndogo. MuseTalk, kwa upande mwingine, hutumia 12G ya VRAM. Pia, uwekaji wa ndani kabisa hauhitaji stun, lakini usitumie mfuatano tupu; vinginevyo WebRTC inaweza kushindwa kuanza kwa sababu ya muundo usio sahihi wa anwani ya STUN.

Kumi na mbili, kubadilisha video kuwa avatar yako mwenyewe

Fungua wakati LiveTalking inaendelea:

http://localhost:8010/avatar.html

Wasilisha kazi ya uundaji kwa njia ifuatayo:

  • Algoriti: Wav2Lip

  • Kitambulisho cha avatar: wav2lip256_myavatar (hifadhi kiambishi awali cha wav2lip256_)

  • Faili la video: idle.mp4 lililoundwa hapo awali

Subiri hali ibadilike kuwa COMPLETED, kisha anzisha avatar yako:

cd ~/setup
AVATAR_ID=wav2lip256_myavatar ./start-livetalking.sh

Ikiwa ungependa ianze hivyo kwa chaguomsingi baadaye, badilisha Avatar ID kwenye hati:

sed -i 's/wav2lip256_lingdu/wav2lip256_myavatar/' ~/setup/start-livetalking.sh

Ikiwa baada ya kuundwa kuna mpasuko unaoonekana wazi karibu na mdomo, kagua kwanza kama video ya kusubiri ina mikono, nywele au kola zinazofunika mdomo na kidevu mara kwa mara, badala ya kukimbilia kubadilisha modeli.

Kumi na tatu, kuanzisha mfumo mzima kwa mpangilio sahihi

Huduma zote zinahitaji madirisha matatu ya terminali.

Dirisha la kwanza: modeli kubwa ya ndani ya Windows

cd /d E:\llama.cpp
llama-server -m E:\llama.cpp\models\Qwen3-14B-Instruct-Q4_K_M.gguf ^
  -np 1 -c 8192 -fa on --temp 1.0 --top-p 0.95 ^
  --host 0.0.0.0 --port 8090

 Dirisha la pili: huduma ya usawazishaji wa midomo ya WSL

cd ~/setup
./start-livetalking.sh

Dirisha la tatu: huduma ya sauti ya WSL

cd ~/setup
./start-voice.sh

Mwishowe fungua http://localhost:7860/; ikihitajika, bonyeza Ctrl + F5 ili kulazimisha kusasisha. Bofya kwanza ukurasa ili avatar iunganishe, kisha bofya kitufe cha mwingiliano wa sauti kuanza kuzungumza.

Unapozima huduma, tekeleza:

./start-voice.sh stop
./start-livetalking.sh stop

Dirisha la llama.cpp upande wa Windows linaweza kusimamishwa moja kwa moja kwa kubonyeza  Ctrl + C.

Kumi na nne, kuweka haiba ya asili yenye ucheleweshaji mdogo

Kwenye Settings → INSTRUCTIONS ya ukurasa wa wavuti, weka haiba ya msaidizi. Usikusanye tu vivumishi kama “mpole, mchangamfu na mwenye kuelewa wengine”; ni bora pia kutoa mifano kadhaa ya mazungumzo mafupi ili modeli ijifunze mdundo wa majibu.

Unaweza kutumia masharti kama haya:

Wewe ni mwenzi pepe wa asili na mwenye urafiki. Zungumza kwa mtindo wa kawaida; jibu kwa sentensi mbili au tatu pekee kila mara.
Usitumie Markdown, orodha, nambari, emoji wala maelezo ya vitendo vya jukwaani.
Usirudie swali la mtumiaji; jibu moja kwa moja. Ukikosa uhakika kuhusu taarifa, sema hivyo kwa uaminifu.

Mfano:
Mtumiaji: Leo nimechoka kidogo.
Msaidizi: Basi usijilazimishe kufanya kazi kwa kiwango cha juu kwanza. Kunywa maji kidogo, pumzika kwa dakika kumi, kisha tutaendelea taratibu.

Majibu mafupi yanafanana zaidi na mazungumzo halisi, na pia hupunguza kwa kiasi kikubwa muda wa kusubiri sauti kamili itengenezwe. Kuzima Markdown na emoji kunazuia TTS kusoma alama au vitambulisho vya muundo. /no_think hutumika kuzima matokeo marefu ya kufikiri yasiyohitajika, hivyo kupunguza zaidi ucheleweshaji wa sentensi ya kwanza.

Kumi na tano, kupunguza kuingiliana na kukatiza kwa makosa

Kitu kigumu zaidi kurekebisha katika mfumo wa sauti wa wakati halisi mara nyingi si modeli, bali ni “wakati wa kuamua kuwa mtumiaji amemaliza kuzungumza”. Katika mazungumzo ya Kichina mara nyingi kuna mapumziko katikati; uamuzi wa ukimya ukiwa mfupi sana husababisha mfumo kuingilia mara kwa mara.

Unaweza kujaribu vigezo vifuatavyo kwenye ~/setup/start-voice.sh:

MIN_SILENCE_MS=1200 
VAD_THRESH=0.6
MIN_SPEECH_MS=500
SPEECH_PAD_MS=300

Maana ya vigezo:

  • MIN_SILENCE_MS: muda wa ukimya kabla ya kuamua kuwa sentensi imekwisha; anza na 1200ms, kisha punguza hadi 900ms ikiwa mwitikio unaonekana kuwa wa polepole;

  • VAD_THRESH: kizingiti cha shughuli ya sauti; katika mazingira yenye kelele unaweza kuongeza hadi 0.7;

  • MIN_SPEECH_MS: huchuja sauti fupi mno;

  • SPEECH_PAD_MS: huhifadhi akiba kidogo kabla na baada ya sauti ili kupunguza kukatwa kwa maneno.

Angalia kumbukumbu:

tail -f ~/s2s/logs/s2s.log | grep -E "soft-ended|discard"

Ikiwa tabia ya kumbukumbu haibadiliki kabisa baada ya kubadilisha vigezo, kwa kawaida si kwamba vigezo havifanyi kazi, bali huduma haikuwashwa upya ipasavyo.

Kumi na sita, jinsi ya kupunguza mzigo wakati VRAM haitoshi

Kwa kuanzia na chaguo zenye faida kubwa zaidi, jaribu kwa mpangilio:

  • Badilisha Qwen3-14B kuwa Qwen3-8B; unaweza kuokoa takriban 3GB;

  • Badilisha kuwa Qwen3-4B; unaweza kuokoa takriban 6GB;

  • Badilisha modeli ya utambuzi wa sauti kuwa `medium`; unaweza kuokoa takriban 1.5GB;

  • Punguza muktadha wa llama.cpp kutoka `-c 8192` hadi `-c 4096`; unaweza kuokoa takriban 1GB zaidi;

  • Hifadhi Wav2Lip; usibadilishe hadi modeli nzito zaidi ya usawazishaji wa midomo wakati VRAM ni finyu.

Katika kila mzunguko wa mazungumzo ya sauti kwa kawaida kuna sentensi mbili au tatu tu. Tofauti ya “hisia ya kusikiliza” kati ya 14B na 8B huenda isiwe kubwa kuliko tofauti ya matumizi inayosababishwa na muda wa kusubiri. VRAM inapokuwa finyu, tanguliza uthabiti na ucheleweshaji mdogo.

Kumi na saba, mwongozo wa haraka wa matatizo ya kawaida

  • Dalili|Sababu na njia ya kushughulikia

  • bad interpreter au kuonekana kwa ^M|Scripti ina mistari ya Windows, endesha `dos2unix *.sh

  • WebRTC haiunganishi kabisa|Angalia `hostAddressLoopback=true` katika `.wslconfig`, kisha endesha `wsl --shutdown`

  • Ukurasa wa wavuti unaonyesha hitilafu ya kuchanganua JSON|Mara nyingi backend imerudisha hitilafu ya 500; angalia hitilafu halisi kwenye terminal ya uanzishaji

  • malformed/uri:invalid scheme|Anwani ya STUN ni tupu au ina muundo usio sahihi; pitisha anwani halali ya `stun:`

  • Ukurasa unafunguka lakini hakuna majibu unapozungumza|Zima au punguza NOISE GATE, na uthibitishe kuwa kivinjari kimeruhusiwa kutumia maikrofoni

  • Avatar wa kidijitali huingilia mazungumzo mara kwa mara|Ongeza `MIN_SILENCE_MS`, inapendekezwa kuanza na 1200ms

  • Jibu haliendani na swali|Kwanza shughulikia kugawanywa vibaya kwa sentensi, na uthibitishe kuwa michakato ya unukuzi wa wakati halisi inayokinzana haijawashwa kwa wakati mmoja

  • Sauti hutofautiana sana kila mara|Angalia ikiwa unatumia modeli ya TTS Base, na hakiki sauti ya marejeo pamoja na manukuu ya kila neno

  • Sauti inaonekana kubadilishwa toni|Angalia mipangilio ya kiwango cha sampuli katika `avatar-sync.js`; kwa kawaida inapaswa kuendana na sauti ya 16000Hz

  • Kufunga porti kumeshindikana lakini hakuna mchakato unaopatikana|Angalia masafa ya porti zilizohifadhiwa na Hyper-V, kisha badilisha hadi porti ambayo haijahifadhiwa

  • GPU imejaa lakini hakuna maendeleo kwa muda mrefu|Huenda kumbukumbu ya video imerudishwa kwenye kumbukumbu ya mfumo; punguza ukubwa wa modeli, au angalia mkakati wa kurudisha kumbukumbu kwenye mfumo wa CUDA katika NVIDIA Control Panel

  • Hakuna maikrofoni unapotumia IP ya mtandao wa ndani|Kwa kawaida kivinjari huhitaji localhost au HTTPS ili kuruhusu ufikiaji wa maikrofoni

  • Huduma inashindwa baada ya kompyuta kuamka kutoka usingizini|Endesha `wsl --shutdown`, kisha uwashe tena huduma tatu

  • Kuanzisha tena kunaonyesha kuwa porti inatumika|Kwanza endesha amri mbili za `stop`, thibitisha kuwa michakato ya zamani imekwisha, kisha uanze tena

Kumi na nane, hiari: tengeneza scripti ya kuanzisha kwa kubofya mara moja

Baada ya kuthibitisha kuwa huduma zote tatu zinaweza kufanya kazi kwa kujitegemea na kwa uthabiti, unaweza kuunda start-ai-avatar.bat mpya katika Windows:

@echo off
start "llama-server" cmd /k "cd /d E:\llama.cpp && llama-server -m E:\llama.cpp\models\Qwen3-14B-Instruct-Q4_K_M.gguf -np 1 -c 8192 -fa on --temp 1.0 --host 0.0.0.0 --port 8090"
timeout /t 25

start "livetalking" wsl -d Ubuntu-24.04 -- bash -lc "cd ~/setup && ./start-livetalking.sh"
timeout /t 30

start "voice" wsl -d Ubuntu-24.04 -- bash -lc "cd ~/setup && ./start-voice.sh"
timeout /t 10

start http://localhost:7860/

Muda wa kusubiri unapaswa kurekebishwa kulingana na kompyuta yako. Wakati wa kusakinisha kwa mara ya kwanza, usitegemee moja kwa moja scripti ya batch; vinginevyo, hatua ikishindikana itakuwa vigumu kujua ni huduma ipi iliyosababisha tatizo.

Kumi na tisa, masuala ya usalama ya kufikia kupitia simu na kufungua mtandao wa nje

Maikrofoni ya kivinjari ni ruhusa nyeti. Unapofungua ukurasa kwa kutumia IP ya kawaida ya mtandao wa ndani, kivinjari kinaweza kukataa kutoa ruhusa kwa sababu ukurasa huo si muktadha salama. Kitaalam, unaweza kutumia zana kama Cloudflare Tunnel kupeleka ukurasa wa ndani kwenye anwani ya HTTPS, kwa mfano:

cloudflared tunnel --url http://localhost:7860

Hata hivyo, hii pia inamaanisha kuwa huduma ya ndani inaweza kufikiwa kupitia intaneti. Usisambaze hadharani anwani ya muda isiyo na uthibitishaji wa utambulisho, na usiweke wazi moja kwa moja huduma iliyo na sauti binafsi, rekodi za mazungumzo na nyenzo za video. Unapohitaji matumizi ya mbali, angalau ongeza udhibiti wa ufikiaji na uzime tunnel mara tu unapomaliza kuitumia.

Ishirini, jinsi ya kubaini kuwa usakinishaji umefaulu kwa kweli

Usichukulie “ukurasa wa wavuti unafunguka” kuwa kigezo cha kukamilika. Inapendekezwa kukagua kwa mpangilio ufuatao:

  • 1. Porti ya 8090 ya llama.cpp inaweza kuzalisha majibu ya Kichina kwa kawaida;

  • 2. Ukurasa wa sauti unaweza kutambua ingizo la maikrofoni na kurudisha sauti iliyosanifiwa;

  • 3. Mhusika wa mfano wa LiveTalking anaweza kutoa sauti na kutengeneza miondoko ya midomo inayolingana;

  • 4. Video maalum ya kusubiri inaweza kubadilishwa kuwa Avatar kwa mafanikio;

  • 5. Baada ya huduma tatu kuunganishwa, kusubiri sentensi ya kwanza ni takriban sekunde 1–2, na mazungumzo endelevu hayana uingiliaji wa mara kwa mara;

  • 6. Wakati wa kufanya kazi kwa muda mrefu, kumbukumbu ya video haiongezeki mfululizo, na amri za kuanzisha upya na kusimamisha huduma zinafanya kazi.

Kuchelewa kwa jibu moja kwa kawaida hutokana na vipande kadhaa vinavyoongezeka: utambuzi wa sauti, tokeni ya kwanza ya modeli ya lugha, usanisi wa sauti, uelekezaji wa miondoko ya midomo, pamoja na akiba ya kusubiri sauti kamili. Ili kuboresha matumizi, kwanza tumia kumbukumbu za mfumo kubaini ni sehemu ipi iliyo polepole zaidi, badala ya kubadilisha modeli zote bila mpango.

Hitimisho:

Kinachovutia kwa kweli katika suluhisho hili si “kuifanya picha izungumze” pekee, bali ni kuunganisha moduli kadhaa za AI za ndani kuwa mnyororo kamili wa mwingiliano wa wakati halisi. Linaweza kuwa rafiki pepe, au kubadilishwa kuwa mwongozaji wa maonyesho, msaidizi wa sauti wa eneo-kazi, avatar wa kidijitali wa matangazo ya moja kwa moja au mfano wa awali wa mhusika.

Wakati wa kusakinisha kwa mara ya kwanza, mkakati thabiti zaidi ni kuthibitisha kila sehemu hatua kwa hatua: kwanza endesha modeli ya lugha, kisha jaribu sauti, fuata kwa kukagua miondoko ya midomo, na mwishowe badilisha hadi mhusika maalum. Maadamu kila hatua ina kigezo wazi cha mafanikio, hata mfumo changamano unaweza kugawanywa kuwa mkusanyiko wa matatizo madogo yanayoweza kutambuliwa na kurudiwa.

Hatimaye, kumbuka tena: sura na sauti za avatar wa kidijitali zinaweza kuhusisha haki za kibinafsi. Kabla ya kuzitumia katika maonyesho ya umma au matumizi ya kibiashara, hakikisha umepata idhini kutoka kwa wamiliki wa haki za nyenzo, na uwajulishe wazi kuwa zinatumika katika mfumo wa AI kwa mazungumzo ya mwingiliano na mhusika.

#Chanzo huria#Fedha za AI#Kivinjari cha AI#Muundo mkubwa#Muundo wa AI#Sauti ya AI#Uchanganuzi wa data#Upangaji wa AI#Video ya AI#Zana za ufanisi