
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\.wslconfig2. Weka maudhui yafuatayo:
[wsl2]
memory=32GB
networkingMode=mirrored
[experimental]
hostAddressLoopback=truememory 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 --shutdownUsanidi 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.cppAnwani 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\models3. 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 8090Kazi 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=tcpUkigundua 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.wavVIII. Kusakinisha WSL2 (Ubuntu 24.04 na usaidizi wa GPU)
Fungua PowerShell kama msimamizi:
wsl --update
wsl --install -d Ubuntu-24.04Baada 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-smiUkiona 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 *.shKwa 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.shMchakato 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.wavMatokeo 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.shManeno 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.shKisha 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-0Kama 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.htmlBaada 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.htmlWasilisha 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.shIkiwa ungependa ianze hivyo kwa chaguomsingi baadaye, badilisha Avatar ID kwenye hati:
sed -i 's/wav2lip256_lingdu/wav2lip256_myavatar/' ~/setup/start-livetalking.shIkiwa 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 8090Dirisha la pili: huduma ya usawazishaji wa midomo ya WSL
cd ~/setup
./start-livetalking.shDirisha la tatu: huduma ya sauti ya WSL
cd ~/setup
./start-voice.shMwishowe 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 stopDirisha 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=300Maana 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:7860Hata 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.
