
اپنے کمپیوٹر پر ایسا AI ڈیجیٹل انسان بنانا چاہتے ہیں جو سن سکے، بول سکے، ہونٹوں کی حرکت کے ساتھ آپ سے گفتگو کر سکے، اور اس کے لیے کوئی AI ٹول یا مہنگی سبسکرپشن فیس بھی نہ دینی پڑے؟ آواز کی شناخت، مقامی بڑے ماڈل، آواز کی ترکیب اور ہونٹوں کی ہم زمانی کو جوڑ کر اپنے کمپیوٹر پر چلنے والا حقیقی وقت کا باہمی تعاملی نظام بنایا جا سکتا ہے۔
یہ مضمون ہارڈویئر کی تیاری سے شروع ہوتا ہے اور Windows + WSL2 ماحول میں مکمل تنصیب کا طریقہ بتاتا ہے۔ حتمی نتیجہ یہ ہوگا: ویب صفحے پر اپنی مرضی کا ڈیجیٹل انسان دکھائی دے گا، ہم مائیکروفون کے ذریعے AI ڈیجیٹل انسان سے بات کریں گے، اور AI ڈیجیٹل انسان آپ کی کلون کی گئی آواز میں جواب دے گا۔
一、پورے نظام کا طریقۂ کار
یہ حل کسی ایک ماڈل سے مکمل نہیں ہوتا، بلکہ متعدد اجزا نصب کیے جاتے ہیں:

ان میں llama.cpp مقامی زبان کا ماڈل چلاتا ہے؛ faster-whisper صارف کی آواز کو متن میں تبدیل کرتا ہے؛ Qwen3-TTS حوالہ جاتی آڈیو کی بنیاد پر جواب کی آواز تیار کرتا ہے؛ جبکہ LiveTalking اور Wav2Lip آواز کو اس سے مطابقت رکھنے والی ہونٹوں کی حرکات میں تبدیل کرتے ہیں۔
二、ہارڈویئر کی ضروریات اور ویڈیو میموری کا تخمینہ
کم از کم ترتیب:
NVIDIA گرافکس کارڈ: 8GB ویڈیو میموری
میموری: 16GB
دستیاب ڈسک: کم از کم 60GB
نظام: Windows 10/11، WSL2 کی معاونت کے ساتھ
تجویز کردہ ترتیب:
NVIDIA گرافکس کارڈ: 16GB یا زیادہ ویڈیو میموری
میموری: 32GB یا زیادہ
ماڈلز اور WSL فائلوں کے لیے SSD استعمال کرنے کی تجویز ہے
Qwen3 14B کوانٹائزڈ ماڈل کی مثال میں ویڈیو میموری تقریباً یوں تقسیم ہوگی:
جزو|متوقع ویڈیو میموری استعمال
Qwen3-14B Q4_K_M|تقریباً 9GB
faster-whisper large-v3|تقریباً 3GB
Qwen3-TTS 1.7B|تقریباً 4GB
Wav2Lip 256|تقریباً 1.3GB
کل|تقریباً 17GB
24GB ویڈیو میموری والا گرافکس کارڈ اس مجموعے کو زیادہ آسانی سے چلا سکے گا۔ 16GB ویڈیو میموری کی صورت میں 8B ماڈل استعمال کر کے سیاق و سباق کی لمبائی کم کی جا سکتی ہے؛ تقریباً 8GB کے لیے 4B ماڈل اور درمیانے درجے کے اسپیچ ریکگنیشن ماڈل سے آغاز کرنے کی تجویز ہے۔
三、WSL2 کے نیٹ ورک اور میموری کو ترتیب دینا
1. سب سے پہلے Windows صارف ڈائریکٹری میں .wslconfig فائل بنائیں:
C:\Users\آپ کا صارف نام\.wslconfig2. درج ذیل مواد شامل کریں:
[wsl2]
memory=32GB
networkingMode=mirrored
[experimental]
hostAddressLoopback=truememory کو اپنی حقیقی میموری کے مطابق تبدیل کیا جا سکتا ہے؛ عموماً فزیکل میموری کا نصف سے تین چوتھائی حصہ مختص کرنا کافی ہوتا ہے۔ hostAddressLoopback=true مقامی Windows اور WSL کے درمیان WebRTC مواصلت کے لیے خاص طور پر اہم ہے۔ اس کے بغیر بعد میں ہونے والا WebRTC کنکشن ہمیشہ ناکام ہوگا، مگر خرابی کی وجہ واضح نہیں ہوگی؛ براؤزر JSON پارسنگ کی خرابی دکھائے گا اور ICE امیدواروں کی فہرست خالی ہوگی۔
3. تبدیلی کے بعد PowerShell میں یہ کمانڈ چلائیں:
wsl --shutdownWSL میں دوبارہ داخل ہونے کے بعد ترتیب مؤثر ہوگی۔
四、Windows پر مقامی بڑے ماڈل کو شروع کرنا
1. llama.cpp تیار کریں
Windows کے لیے موزوں llama.cpp ڈاؤن لوڈ کریں اور اسے کسی مستقل ڈائریکٹری میں نکالیں، مثلاً:
E:\llama.cppمستحکم ورژن ڈاؤن لوڈ لنک: https://pan.quark.cn/s/0073852e4042
2. ویڈیو میموری کے مطابق ماڈل منتخب کریں
ویڈیو میموری کی حد|تجویز کردہ ماڈل|ڈاؤن لوڈ لنک
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
8GB سے کم|Qwen3-4B GGUF|https://pan.quark.cn/s/fd588898ccbf
ڈاؤن لوڈ کی گئی .gguf فائل یہاں رکھیں:
E:\llama.cpp\models3. استدلال کی سروس شروع کریں
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چند پیرامیٹرز کا کام:
host 0.0.0.0: WSL کو Windows پر موجود ماڈل سروس تک رسائی دیتا ہے؛
c 8192: سیاق و سباق کی لمبائی مقرر کرتا ہے، مختصر گفتگو کے لیے کافی ہے؛
temp 1.0: جواب کو کم جامد بناتا ہے؛
port 8090: سروس کا پورٹ مقرر کرتا ہے۔
اس کمانڈ ونڈو کو مسلسل چلتا رہنا چاہیے۔ اگر پورٹ استعمال میں ہونے کا پیغام آئے، مگر عام جانچ میں کوئی پراسیس نظر نہ آئے، تو دیکھیں کہ Hyper-V نے یہ پورٹ محفوظ تو نہیں کر رکھا:
netsh interface ipv4 show excludedportrange protocol=tcpٹکراؤ ملنے پر سب سے آسان طریقہ یہ ہے کہ ماڈل سروس اور اسے کال کرنے والی اسکرپٹ، دونوں میں پورٹ تبدیل کر دیں۔
五、ڈیجیٹل انسان کی بنیادی تصویر اور ویڈیو بنانا
1. پہلے اپنی پسند کی ڈیجیٹل انسان کی تصویر ڈیزائن کریں
ڈیجیٹل انسان کی تصویر میں صرف خوب صورتی کافی نہیں؛ بعد کے ویب لے آؤٹ اور ہونٹوں کی حرکت پیدا کرنے کے لیے بھی جگہ درکار ہوگی۔ نسبتاً قابلِ اعتماد ساخت یہ ہے:
تصویر کا تناسب 16:9 ہو؛
کردار دائیں جانب ایک تہائی حصے میں ہو؛
بائیں جانب کافی تاریک خالی جگہ ہو تاکہ باہمی تعامل کا روشن گولا اور سب ٹائٹلز رکھے جا سکیں؛
ہونٹ قدرتی طور پر بند ہوں اور دانت نظر نہ آئیں؛
ہاتھ منہ، ٹھوڑی اور چہرے کے خدوخال کو نہ ڈھانپے؛
قدرے مدھم سائیڈ لائٹ استعمال کریں تاکہ ہونٹوں کے حصے کی معمولی دھندلاہٹ کم نمایاں ہو۔
ذیل کے پرامپٹ کے خیال کو بنیاد بنا کر کردار، لباس اور منظر اپنی مرضی سے بدل سکتے ہیں:
سینمایی کم روشنی والا پہلو سے لیا گیا پورٹریٹ، ایک بالغ عورت تصویر کے دائیں جانب بیٹھی ہے، نرم کناروں والی روشنی،
بائیں جانب وسیع گہری خالی جگہ، قدرتی تاثر، بند ہونٹ، کیمرہ ساکن،
حقیقی جلد کی ساخت، 16:9 افقی ساخت۔منفی پرامپٹ میں شامل کیا جا سکتا ہے: کھلا منہ، نظر آتے دانت، کردار کا درمیان میں ہونا، روشن بےترتیب پس منظر، ہاتھ سے منہ ڈھکا ہوا، متن، واٹرمارک، پلاسٹک جیسی جلد، کارٹون طرز۔
2. ComfyUI + Wan2.2 سے 5 سیکنڈ کی ڈیجیٹل انسان ویڈیو بنائیں
ComfyUI ڈاؤن لوڈ اور نصب کریں، اسے کھولنے کے بعد Wan2.2 کا امیج ٹو ویڈیو ورک فلو منتخب کریں اور بنیادی تصویر کو پہلے فریم کے طور پر استعمال کریں۔ پہلی بار درج ذیل محتاط پیرامیٹرز کی تجویز ہے:
پیرامیٹر|تجویز کردہ قدر
ریزولوشن|بنیادی تصویر کے تناسب کے مطابق؛ اصل ٹیوٹوریل کی مثال 704 × 896 ہے
دورانیہ|5 سیکنڈ
فریم ریٹ|25 fps
Prompt Enhance|بند
ComfyUI ڈاؤن لوڈ لنک: https://pan.quark.cn/s/bb9d21f1e724
پرامپٹ میں صرف حرکت بیان کریں، کردار کی شکل دوبارہ بیان نہ کریں۔ مثال:
کردار اپنی جگہ قائم رہے، صرف ہلکی سانس لے، ایک بار آہستہ پلک جھپکائے، سر میں نہایت معمولی قدرتی حرکت کے بعد ابتدائی حالت میں واپس آئے،
ہونٹ مسلسل بند رہیں، کیمرہ ساکن ہو، زوم یا کیمرہ حرکت نہ ہو۔فائل برآمد کر کے اس کا نام رکھیں: idle.mp4
چونکہ حقیقی بولنے کے دوران ہونٹوں کی حرکت Wav2Lip حقیقی وقت میں پیدا کرے گا، اس لیے “بول رہا ہے”، “سن رہا ہے” وغیرہ کی متعدد ویڈیوز الگ سے بنانے کی ضرورت نہیں۔

یہاں چند عام غلط فہمیاں ہیں:
پرامپٹ میں اضافہ فعال نہ کریں، prompt_enhance بند رکھیں، ورنہ ماڈل کردار یا منظر کو دوبارہ ڈیزائن کر سکتا ہے؛
آؤٹ پٹ کا تناسب ان پٹ تصویر کے تناسب کے مطابق ہونا چاہیے۔ اگر 16:9 افقی بنیادی تصویر استعمال کی جائے تو ورک فلو کے تعاون یافتہ افقی سائز پر تبدیل کریں، تاکہ کردار کھنچے یا کٹے نہیں؛
پرامپٹ میں صرف حرکت لکھیں، ظاہری شکل کو بار بار بیان کرنے سے کردار کے غیر ضروری طور پر بدلنے کا امکان بڑھ جاتا ہے؛
5 سیکنڈ کی ویڈیو انتظار کے دوران لوپ کے لیے کافی ہے، ویڈیو کو بلاوجہ طویل کرنے سے تکرار یا شکل بگڑنے کا امکان زیادہ ہوتا ہے۔
六、حوالہ جاتی آواز ریکارڈ کریں (آواز کی کلوننگ)
Qwen3-TTS حوالہ جاتی آڈیو کی بنیاد پر آواز کے لہجے اور بولنے کی کیفیت کی نقل کرے گا۔ 5–15 سیکنڈ کی آواز ریکارڈ کرنے کی تجویز ہے، شرائط یہ ہیں:
صرف ایک شخص بول رہا ہو؛
ماحول پرسکون ہو، موسیقی اور نمایاں بازگشت نہ ہو؛
بولنے کی رفتار قدرتی ہو، اور جذبات اس انداز کے مطابق ہوں جس کی کلوننگ مطلوب ہے؛
لفظ بہ لفظ درست متن بھی محفوظ کریں۔
ریکارڈنگ کے بعد فائل برآمد کریں ( wav یا mp3 فارمیٹ)، اسے ڈیسک ٹاپ کے AI فولڈر میں رکھیں اور نام دیں: ref.wav۔ ریکارڈنگ میں کہے گئے اصل الفاظ لفظ بہ لفظ لکھ لیں، بعد میں انہیں ترتیب میں شامل کرنا ہوگا۔ یاد رہے کہ جذبات بھی کلون کیے جائیں گے، اس لیے ریکارڈنگ کے وقت اپنی مطلوبہ آواز اور لہجہ استعمال کریں۔
حوالہ جاتی آڈیو کے لیے “ایک کلک تنصیب پیکیج” ڈاؤن لوڈ کریں۔ یہ اسکرپٹس صوتی گفتگو کا ماحول نصب کرنے، مختلف سروسز شروع کرنے اور آواز و تصویر کی ہم زمانی سنبھالنے کے لیے ہیں۔ چونکہ اسکرپٹس منصوبے کے ورژن کے ساتھ تبدیل ہو سکتی ہیں، اس لیے استعمال سے پہلے ان میں موجود ڈاؤن لوڈ لنکس، پورٹس اور ماڈل نام مختصراً جانچ لینا بہتر ہے۔ فائلیں شامل ہیں:
فائل|استعمال
install-voice.sh|صوتی گفتگو کے حصے کی ایک کلک تنصیب
start-voice.sh|صوتی سروس شروع / بند / لاگ
start-livetalking.sh|ہونٹوں کی سروس شروع / بند
avatar-sync.js|آڈیو فارورڈنگ + ڈیجیٹل انسان کی پس منظر پرت
wav2lip256.pth|ہونٹوں کے ماڈل کے وزن
wav2lip256_avatar1.tar.gz|سرکاری نمونہ کردار، سلسلے کی جانچ کے لیے
ایک کلک تنصیب پیکیج کا ڈاؤن لوڈ لنک: https://pan.quark.cn/s/d4fc5bfc88eb
七、فائلیں منظم کریں
آخر میں 5 سیکنڈ کی ڈیجیٹل انسان ویڈیو فائل idle.mp4، اور آڈیو فائل ref.wav`کو ڈیسک ٹاپ کے AI فولڈر میں ایک ساتھ رکھیں۔ حتمی ڈائریکٹری ساخت:
C:\Users\آپ کا صارف نام\Desktop\AI\
├── install-voice.sh
├── start-voice.sh
├── start-livetalking.sh
├── avatar-sync.js
├── wav2lip256.pth
├── wav2lip256_avatar1.tar.gz
├── idle.mp4
└── ref.wav八、WSL2 نصب کریں (Ubuntu 24.04 اور GPU معاونت)
PowerShell کو ایڈمنسٹریٹر کی حیثیت سے کھولیں:
wsl --update
wsl --install -d Ubuntu-24.04تنصیب مکمل ہونے کے بعد کمپیوٹر دوبارہ شروع کریں تاکہ پہلے مرحلے کی .wslconfig ترتیب مؤثر ہو۔ دوبارہ شروع کرنے کے بعد Ubuntu ٹرمینل کھولیں، صارف نام اور پاس ورڈ مقرر کریں، اور گرافکس کارڈ کی براہِ راست رسائی کی جانچ کریں:
nvidia-smiاگر گرافکس کارڈ کا ماڈل اور ڈرائیور کی معلومات نظر آئیں تو GPU پاس تھرو درست ہے۔
WSL کے اندر گرافکس ڈرائیور دوبارہ نصب نہ کریں۔ گرافکس ڈرائیور صرف Windows میں نصب کیا جاتا ہے، جبکہ WSL میزبان کی فراہم کردہ CUDA پاس تھرو استعمال کرتا ہے؛ WSL کے اندر دوبارہ گرافکس ڈرائیور نصب کرنے سے libcuda.so اووررائٹ ہو سکتی ہے، جس کے نتیجے میں GPU ناقابلِ استعمال ہو جائے گا۔
九、تنصیب پیکیج کو WSL میں کاپی کریں
Ubuntu ٹرمینل میں اپنا Windows صارف نام درج کریں:
#کاپی کریں (راستہ اپنے صارف نام کے مطابق تبدیل کریں):
mkdir -p ~/setup
cp -r "/mnt/c/Users/آپ کا صارف نام/Desktop/AI/." ~/setup/
cd ~/setup
ls -la
#لائن کے اختتام کی تبدیلی:
sudo apt update
sudo apt install -y dos2unix
dos2unix *.sh
#عمل درآمد کی اجازت دیں:
chmod +x *.shآخر میں لائن بریک تبدیل کرنے کی ضرورت کیوں ہے: Windows کی ٹیکسٹ فائلوں میں عموماً CRLF لائن بریک استعمال ہوتی ہے۔ تبدیل نہ کرنے پر bash^M یا bad interpreter جیسی غلطیاں آ سکتی ہیں، اور بہت سے لوگ یہیں پھنس جاتے ہیں۔
بڑی تعداد میں Python فائلیں براہِ راست /mnt/c میں چلانا عموماً سست ہوتا ہے اور اجازت سے متعلق مسائل بھی پیش آ سکتے ہیں۔ انہیں Linux کی ہوم ڈائریکٹری میں کاپی کرنے سے نظام زیادہ مستحکم رہتا ہے۔
دس، وائس ڈائیلاگ ماڈیول انسٹال اور ٹیسٹ کریں
1. انسٹالیشن اسکرپٹ چلائیں
cd ~/setup
./install-voice.shانسٹالیشن کے دوران Python ماحول بنایا جائے گا اور وائس ایکٹیویٹی ڈیٹیکشن، faster-whisper، Qwen3-TTS اور فرنٹ اینڈ اجزا تیار کیے جائیں گے۔ نیٹ ورک اور ہارڈ ڈسک کی رفتار کے مطابق اس میں دس سے بیس منٹ لگ سکتے ہیں۔
2. حوالہ آڈیو کا فارمیٹ یکساں کریں
ffmpeg -i ~/setup/ref.wav -ac 1 -ar 16000 -c:a pcm_s16le ~/s2s/ref.wav
#فارمیٹ کی تصدیق: pcm_s16le / 16000 / 1 چینل ہونا ضروری ہے:
ffprobe -v error \
-show_entries stream=sample_rate,channels,codec_name \
-show_entries format=duration \
-of default=nw=1 ~/s2s/ref.wavنتیجہ درج ذیل شرائط پوری کرے:
کوڈیک: pcm_s16le
سیمپلنگ ریٹ: 16000
چینل: مونو
3. حوالہ آڈیو کا لفظ بہ لفظ متن لکھیں
نیچے دیے گئے متن کو ریکارڈنگ میں حقیقتاً بولے گئے متن سے تبدیل کریں:
sed -i 's|^REF_TEXT=.*|REF_TEXT="یہاں ریکارڈنگ سے مکمل طور پر مطابقت رکھنے والا لفظ بہ لفظ متن لکھیں"|' ~/setup/start-voice.sh
grep -n "^REF_TEXT=" ~/setup/start-voice.shاگر لفظ بہ لفظ متن میں الفاظ رہ جائیں، غلط لکھے جائیں یا رموزِ اوقاف میں بہت زیادہ فرق ہو تو کلوننگ کا معیار کم ہو جائے گا۔
4. پہلی بار شروع کریں
cd ~/setup
./start-voice.shپھر Windows کے براؤزر میں کھولیں:
http://localhost:7860/براؤزر کو مائیکروفون استعمال کرنے کی اجازت دیں اور ٹیسٹ کے لیے صفحے پر موجود تعاملی بٹن پر کلک کریں۔ پہلی بار Settings میں جا کر NOISE GATE کو بالکل بائیں طرف کر دیں یا اسے بند کر دیں، ورنہ عام گفتگو بھی پسِ منظر کے شور کے طور پر فلٹر ہو سکتی ہے۔

گیارہ، LiveTalking (لبوں کی ہم آہنگی) اور Wav2Lip انسٹال کریں
ایک نیا Ubuntu ٹرمینل کھولیں، WSL میں جائیں اور درج ذیل کمانڈز بالترتیب چلائیں:
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اگر سسٹم میں uv موجود نہیں ہے تو پہلے uv کی سرکاری انسٹالیشن ہدایات کے مطابق اسے انسٹال کریں، پھر اوپر دی گئی کمانڈز دوبارہ چلائیں۔
لبوں کی حرکت کا ماڈل اور ڈیفالٹ ڈیجیٹل انسان رکھیں:
cd ~/livetalking/LiveTalking
# نام تبدیل کر کے یہ رکھنا ضروری ہے: wav2lip.pth
cp ~/setup/wav2lip256.pth models/wav2lip.pth
# سرکاری نمونہ کردار
tar -xzf ~/setup/wav2lip256_avatar1.tar.gz -C data/avatars/
# تصدیق
ls -lh models/ && ls data/avatars/توجہ دیں: ماخذ فائل کا نام اگرچہ wav2lip256.pth ہے، لیکن کاپی کرنے کے بعد اس کا نام wav2lip.pth ہونا ضروری ہے، کیونکہ پروجیکٹ وزن تلاش کرنے کے لیے ڈیفالٹ طور پر اسی فائل نام کو استعمال کرتا ہے۔
پہلے سرکاری نمونہ ڈیجیٹل انسان کو ٹیسٹ کریں:
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'براؤزر میں کھولیں:
http://localhost:8010/index.htmlکنکشن کامیاب ہونے کے بعد چینی متن کا ایک حصہ بھیجیں۔ جب آواز، کردار کی حرکت اور مطابقت رکھنے والی لبوں کی حرکت بیک وقت ظاہر ہو، تب ہی یہ مرحلہ مکمل طور پر کامیاب سمجھا جائے گا۔
ٹرمینل لاگ میں inferfps اور finalfps کو ریئل ٹائم کارکردگی دیکھنے کے لیے استعمال کیا جا سکتا ہے۔ عموماً دونوں کا 25 یا اس سے زیادہ ہونا بہتر ہے۔ اگر inferfps واضح طور پر کم ہو تو ماڈل کا بوجھ کم کرنا یا ہلکی کنفیگریشن استعمال کرنا ضروری ہوگا۔
آن لائن ٹیوٹوریلز میں اکثر MuseTalk کی تجویز دی جاتی ہے۔ اگرچہ اس کی تصویر کا معیار بہتر ہے، لیکن اس AI ڈیجیٹل انسان کے لیے تصویر کا معیار بہت زیادہ اہم نہیں۔ Wav2Lip صرف تقریباً 1.3GB میموری استعمال کرتا ہے، اس لیے کم روشنی، پہلو سے نظر آنے والے چہرے اور نسبتاً چھوٹے کردار والے مناظر میں کم لاگت پر قابلِ قبول نتیجہ حاصل کیا جا سکتا ہے، جبکہ MuseTalk 12G میموری استعمال کرتا ہے۔ اسی طرح مکمل مقامی تنصیب میں stun کی ضرورت نہیں ہوتی، لیکن خالی سٹرنگ نہ بھیجیں، ورنہ STUN ایڈریس کے غلط فارمیٹ کی وجہ سے WebRTC شروع ہونے میں ناکام ہو سکتا ہے۔
بارہ، ویڈیو کو اپنے ڈیجیٹل انسان کے کردار میں تبدیل کریں
LiveTalking چلتے ہوئے کھولیں:
http://localhost:8010/avatar.htmlجنریشن ٹاسک درج ذیل طریقے سے جمع کریں:
الگورتھم: Wav2Lip
Avatar ID: wav2lip256_myavatar (wav2lip256_ سابقہ برقرار رکھیں)
ویڈیو فائل: پہلے تیار کی گئی idle.mp4
اسٹیٹس COMPLETED ہونے کا انتظار کریں، پھر اپنا ڈیجیٹل انسان شروع کریں:
cd ~/setup
AVATAR_ID=wav2lip256_myavatar ./start-livetalking.shاگر آئندہ اسے ڈیفالٹ کے طور پر شروع کرنا ہو تو اسکرپٹ میں Avatar ID تبدیل کریں:
sed -i 's/wav2lip256_lingdu/wav2lip256_myavatar/' ~/setup/start-livetalking.shاگر جنریشن کے بعد منہ کے قریب واضح پھٹاؤ نظر آئے تو فوراً ماڈل تبدیل کرنے کے بجائے پہلے یہ جانچیں کہ آیا待机 ویڈیو میں ہاتھ، بال یا کالر بار بار منہ اور ٹھوڑی کو ڈھانپ تو نہیں رہے۔
تیرہ، مکمل سسٹم کو درست ترتیب سے شروع کریں
پورے سروس سیٹ کے لیے تین ٹرمینل ونڈوز درکار ہیں۔

پہلی ونڈو: 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دوسری ونڈو: WSL لبوں کی حرکت کی سروس
cd ~/setup
./start-livetalking.shتیسری ونڈو: WSL وائس سروس
cd ~/setup
./start-voice.shآخر میں http://localhost:7860/ کھولیں، اور ضرورت ہو تو Ctrl + F5 دبا کر زبردستی ریفریش کریں۔ پہلے صفحے پر کلک کر کے ڈیجیٹل انسان کا کنکشن قائم کریں، پھر وائس انٹرایکشن بٹن پر کلک کر کے گفتگو شروع کریں۔
سروس بند کرنے کے لیے چلائیں:
./start-voice.sh stop
./start-livetalking.sh stopWindows کی llama.cpp ونڈو میں براہِ راست Ctrl + C دبا کر اسے روکا جا سکتا ہے۔
چودہ، قدرتی اور کم تاخیر والی شخصیت ترتیب دیں
ویب صفحے کے Settings → INSTRUCTIONS میں شخصیت کی ہدایات لکھیں۔ صرف “نرم مزاج، پرجوش، دوسروں کو سمجھنے والا” جیسے صفاتی الفاظ نہ لکھیں۔ بہتر ہے کہ مختصر مکالموں کی چند مثالیں بھی فراہم کی جائیں تاکہ ماڈل جواب دینے کی رفتار اور انداز سیکھ سکے۔
مثلاً یہ پابندیاں استعمال کی جا سکتی ہیں:
آپ ایک قدرتی اور دوستانہ ورچوئل ساتھی ہیں۔ گفتگو بول چال کے انداز میں کریں، ہر بار صرف دو سے تین جملوں میں جواب دیں۔
Markdown، فہرست، نمبرنگ، ایموجی اور اسٹیج ایکشن کی وضاحت استعمال نہ کریں۔
صارف کے سوال کو دہرانے کے بجائے براہِ راست جواب دیں۔ غیر یقینی معلومات کی صورت میں صاف طور پر بتائیں۔
مثال:
صارف: آج کچھ تھکا ہوا ہوں۔
اسسٹنٹ: پھر خود کو پوری رفتار سے کام کرنے پر مجبور نہ کریں۔ کچھ پانی پی لیں اور دس منٹ آرام کریں، پھر ہم آہستہ آہستہ اسے نمٹائیں گے۔مختصر جواب حقیقی گفتگو سے زیادہ مشابہ ہوتے ہیں اور مکمل آواز تیار ہونے کے انتظار کا وقت بھی واضح طور پر کم کرتے ہیں۔ Markdown اور ایموجی بند کرنے کا مقصد یہ ہے کہ TTS علامات یا فارمیٹنگ کے نشانات کو پڑھ نہ دے۔ /no_think غیر ضروری طویل استدلالی آؤٹ پٹ بند کرنے کے لیے استعمال ہوتا ہے، جس سے پہلے جملے کی تاخیر مزید کم ہو جاتی ہے۔
پندرہ، گفتگو میں مداخلت اور غلط وقفہ ڈالنے کو کم کریں
ریئل ٹائم وائس سسٹم میں عموماً سب سے مشکل چیز ماڈل نہیں بلکہ یہ طے کرنا ہے کہ صارف نے کب بات مکمل کی۔ چینی گفتگو کے دوران درمیان میں اکثر وقفے آتے ہیں، اور اگر خاموشی کی مدت بہت کم رکھی جائے تو سسٹم بار بار صارف کی بات کاٹ سکتا ہے۔
~/setup/start-voice.sh میں درج ذیل پیرامیٹرز آزما سکتے ہیں:
MIN_SILENCE_MS=1200
VAD_THRESH=0.6
MIN_SPEECH_MS=500
SPEECH_PAD_MS=300پیرامیٹرز کے معنی:
MIN_SILENCE_MS: کتنی دیر خاموشی کے بعد جملہ ختم سمجھا جائے؛ پہلے 1200ms استعمال کریں، ردِعمل سست لگے تو اسے 900ms تک کم کریں؛
VAD_THRESH: وائس ایکٹیویٹی کی حد؛ شور والے ماحول میں اسے 0.7 تک بڑھایا جا سکتا ہے؛
MIN_SPEECH_MS: بہت مختصر آوازوں کو فلٹر کرتا ہے؛
SPEECH_PAD_MS: آواز سے پہلے اور بعد میں تھوڑا بفر برقرار رکھتا ہے، جس سے الفاظ نگلنے کا امکان کم ہوتا ہے۔
لاگ دیکھیں:
tail -f ~/s2s/logs/s2s.log | grep -E "soft-ended|discard"اگر پیرامیٹرز تبدیل کرنے کے بعد لاگ کا رویہ بالکل نہ بدلے تو عموماً مسئلہ پیرامیٹرز کا غیر مؤثر ہونا نہیں بلکہ سروس کا حقیقتاً دوبارہ شروع نہ ہونا ہوتا ہے۔
سولہ، میموری کم پڑنے پر بوجھ کیسے کم کریں
فائدے کی زیادہ سے کم ترتیب میں یہ اقدامات آزمائیں:
Qwen3-14B کو Qwen3-8B سے تبدیل کریں، تقریباً 3GB بچ سکتے ہیں؛
Qwen3-4B استعمال کریں، تقریباً 6GB بچ سکتے ہیں؛
وائس ریکگنیشن ماڈل کو `medium` کر دیں، تقریباً 1.5GB بچ سکتے ہیں؛
llama.cpp کا کانٹیکسٹ `-c 8192` سے کم کر کے `-c 4096` کریں، مزید تقریباً 1GB بچ سکتا ہے؛
Wav2Lip برقرار رکھیں، میموری کم ہونے پر زیادہ بھاری لبوں کی حرکت والے ماڈل پر منتقل نہ ہوں۔
وائس چیٹ کے ہر دور میں عموماً صرف دو یا تین جملے ہوتے ہیں۔ 14B اور 8B کے “سننے کے تجربے” میں فرق ضروری نہیں کہ انتظار کے وقت سے پیدا ہونے والے تجربے کے فرق سے زیادہ ہو۔ میموری کم ہو تو پہلے استحکام اور کم تاخیر کو ترجیح دیں۔
سترہ، عام خرابیوں کا فوری جائزہ
علامت|وجہ اور حل
bad interpreter یا ^M ظاہر ہو|اسکرپٹ میں Windows لائن بریک ہے، `dos2unix *.sh` چلائیں
WebRTC مسلسل کنیکٹ نہیں ہو رہا|`.wslconfig` میں `hostAddressLoopback=true` چیک کریں، پھر `wsl --shutdown` چلائیں
ویب صفحہ JSON پارسنگ کی ناکامی بتاتا ہے|اکثر بیک اینڈ نے 500 خرابی واپس کی ہوتی ہے، اسٹارٹ اپ ٹرمینل میں اصل خرابی دیکھیں
malformed/uri:invalid scheme|STUN ایڈریس خالی یا غلط فارمیٹ میں ہے، مؤثر `stun:` ایڈریس فراہم کریں
ویب صفحہ کھل جاتا ہے لیکن بولنے پر کوئی ردِعمل نہیں|NOISE GATE کو بند یا کم کریں، اور تصدیق کریں کہ براؤزر کو مائیکروفون کی اجازت حاصل ہے
ڈیجیٹل انسان بار بار بات کاٹتا ہے|`MIN_SILENCE_MS` بڑھائیں، 1200ms سے شروع کرنے کی تجویز ہے
جواب سوال سے مطابقت نہیں رکھتا|پہلے غلط جملہ بندی درست کریں، اور تصدیق کریں کہ ایک دوسرے سے متصادم ریئل ٹائم ٹرانسکرپشن کے عمل بیک وقت فعال نہیں ہیں
ہر بار آواز میں بہت فرق ہوتا ہے|چیک کریں کہ TTS Base ماڈل استعمال ہو رہا ہے، اور حوالہ آڈیو اور لفظ بہ لفظ متن کی تصدیق کریں
آواز بدلی ہوئی محسوس ہوتی ہے|`avatar-sync.js` کی سیمپلنگ ریٹ کی ترتیب چیک کریں، جو عموماً 16000Hz آڈیو کے مطابق ہونی چاہیے
پورٹ بائنڈنگ ناکام ہو جاتی ہے لیکن کوئی پراسیس نہیں ملتا|Hyper-V کے محفوظ پورٹ رینج کو دیکھیں، اور ایسا پورٹ استعمال کریں جو محفوظ نہ ہو
GPU مکمل استعمال ہو رہا ہے لیکن طویل وقت تک کوئی پیش رفت نہیں|ممکن ہے ویڈیو میموری سسٹم میموری میں واپس منتقل ہو رہی ہو؛ ماڈل کم کریں، یا NVIDIA کنٹرول پینل میں CUDA سسٹم میموری فال بیک پالیسی چیک کریں
لوکل نیٹ ورک IP استعمال کرنے پر مائیکروفون دستیاب نہیں|براؤزر عموماً مائیکروفون تک رسائی کے لیے localhost یا HTTPS کا تقاضا کرتا ہے
کمپیوٹر کے سلیپ سے بیدار ہونے کے بعد سروس ناکام ہو جاتی ہے|`wsl --shutdown` چلانے کے بعد تینوں سروسز دوبارہ شروع کریں
دوبارہ شروع کرتے وقت پورٹ کے زیرِ استعمال ہونے کا پیغام آتا ہے|پہلے دونوں `stop` کمانڈز چلائیں، پرانے پراسیس کے ختم ہونے کی تصدیق کریں، پھر دوبارہ شروع کریں
اٹھارہ، اختیاری: ایک کلک سے اسٹارٹ ہونے والی اسکرپٹ بنائیں
تصدیق کرنے کے بعد کہ تینوں سروسز آزادانہ طور پر مستحکم چل سکتی ہیں، Windows میں start-ai-avatar.bat بنائیں:
@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/انتظار کا وقت اپنے کمپیوٹر کے مطابق ایڈجسٹ کریں۔ پہلی تعیناتی میں بیچ اسکرپٹ پر براہِ راست انحصار نہ کریں، ورنہ کسی مرحلے کے ناکام ہونے پر یہ معلوم کرنا مشکل ہوگا کہ کون سی سروس میں مسئلہ ہے۔
انیس، موبائل رسائی اور بیرونی نیٹ ورک پر کھولنے کے سکیورٹی مسائل
براؤزر کا مائیکروفون حساس اجازت کے زمرے میں آتا ہے۔ عام لوکل نیٹ ورک IP سے ویب صفحہ کھولنے پر براؤزر اس وجہ سے اجازت دینے سے انکار کر سکتا ہے کہ صفحہ محفوظ سیاق و سباق میں نہیں ہے۔ تکنیکی طور پر Cloudflare Tunnel جیسے ٹولز استعمال کرکے مقامی صفحے کو HTTPS ایڈریس پر میپ کیا جا سکتا ہے، مثلاً:
cloudflared tunnel --url http://localhost:7860لیکن اس کا مطلب یہ بھی ہے کہ مقامی سروس تک انٹرنیٹ سے رسائی ممکن ہو سکتی ہے۔ بغیر شناختی تصدیق والے عارضی ایڈریس کو عوامی طور پر شیئر نہ کریں، اور نجی آواز، گفتگو کے ریکارڈ اور کیمرہ مواد والی سروس کو براہِ راست انٹرنیٹ پر ہرگز ظاہر نہ کریں۔ دور سے استعمال کی ضرورت ہو تو کم از کم رسائی کا کنٹرول شامل کریں، اور استعمال کے بعد ٹنل فوراً بند کر دیں۔
بیس، کیسے جانچیں کہ تعیناتی واقعی کامیاب ہے
صرف اس بنیاد پر کام مکمل نہ سمجھیں کہ “ویب صفحہ کھل جاتا ہے”۔ منظوری کے لیے درج ذیل ترتیب تجویز کی جاتی ہے:
1. llama.cpp کا 8090 پورٹ چینی جواب درست طور پر تیار کر سکے؛
2. صوتی ویب صفحہ مائیکروفون ان پٹ پہچان سکے اور مصنوعی آواز واپس دے؛
3. LiveTalking کا نمونہ کردار آواز پیدا کرے اور مطابقت رکھنے والی لب سنک بنائے؛
4. حسبِ ضرورت待機 ویڈیو کامیابی سے Avatar میں تبدیل ہو سکے؛
5. تینوں سروسز کو جوڑنے کے بعد پہلے جملے کا انتظار تقریباً 1–2 سیکنڈ ہو، اور مسلسل گفتگو میں بار بار بات نہ کاٹی جائے؛
6. طویل دورانیے تک چلنے کے دوران ویڈیو میموری مسلسل نہ بڑھے، اور سروس کو دوبارہ شروع کرنے اور روکنے کی کمانڈز مؤثر ہوں۔
ایک جواب کی تاخیر عموماً کئی حصوں کے جمع ہونے سے بنتی ہے: آواز کی شناخت، زبان کے ماڈل کا پہلا token، آواز کی ترکیب، لب سنک کی پیش گوئی، اور مکمل آواز کے بفر ہونے کا انتظار۔ تجربہ بہتر بنانے کے لیے پہلے لاگز سے معلوم کریں کہ کون سا مرحلہ سب سے سست ہے، تمام ماڈلز کو اندھا دھند تبدیل نہ کریں۔
اختتامیہ:
اس حل کی اصل دلچسپ بات صرف یہ نہیں کہ “ایک تصویر کو بولنے کے قابل بنایا جائے”، بلکہ یہ ہے کہ کئی مقامی AI ماڈیولز کو جوڑ کر مکمل ریئل ٹائم انٹرایکٹو سلسلہ بنایا گیا ہے۔ اسے ورچوئل ساتھی، نمائش گاہ کے رہنما، ڈیسک ٹاپ صوتی معاون، لائیو اسٹریمنگ کے ڈیجیٹل انسان یا کردار کے پروٹوٹائپ میں بھی تبدیل کیا جا سکتا ہے۔
پہلی تعیناتی کے وقت سب سے مستحکم حکمتِ عملی مرحلہ وار تصدیق ہے: پہلے زبان کا ماڈل چلائیں، پھر آواز آزمائیں، اس کے بعد لب سنک چیک کریں، اور آخر میں حسبِ ضرورت کردار شامل کریں۔ جب ہر مرحلے کے لیے کامیابی کا واضح معیار موجود ہو تو پیچیدہ نظام کو بھی ایسے چھوٹے مسائل میں تقسیم کیا جا سکتا ہے جن کی وجہ معلوم کرنا اور جنہیں دوبارہ پیدا کرنا آسان ہو۔
آخر میں ایک بار پھر یاد دہانی: ڈیجیٹل کردار اور آواز دونوں ذاتی حقوق سے متعلق ہو سکتے ہیں۔ عوامی نمائش یا تجارتی استعمال سے پہلے مواد کے حقوق رکھنے والے سے اجازت ضرور حاصل کریں، اور واضح طور پر بتائیں کہ اسے AI نظام میں کسی کردار کے ساتھ تعاملی گفتگو کے لیے استعمال کیا جا رہا ہے۔
