مرکزی مواد پر جائیں
اے آئی ٹیوٹوریلز

مقامی طور پر AI ڈیجیٹل انسان کیسے بنائیں

اپنے کمپیوٹر پر ایسا AI ڈیجیٹل انسان بنانا چاہتے ہیں جو سن سکے، بول سکے، ہونٹ ہلا سکے اور آپ سے گفتگو کر سکے، اور اس کے لیے کوئی AI ٹول استعمال نہ کرنا پڑے یا مہنگے

مقامی طور پر AI ڈیجیٹل انسان کیسے بنائیں

اپنے کمپیوٹر پر ایسا 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\آپ کا صارف نام\.wslconfig

2. درج ذیل مواد شامل کریں:

[wsl2]
memory=32GB
networkingMode=mirrored

[experimental]
hostAddressLoopback=true

memory کو اپنی حقیقی میموری کے مطابق تبدیل کیا جا سکتا ہے؛ عموماً فزیکل میموری کا نصف سے تین چوتھائی حصہ مختص کرنا کافی ہوتا ہے۔ hostAddressLoopback=true مقامی Windows اور WSL کے درمیان WebRTC مواصلت کے لیے خاص طور پر اہم ہے۔ اس کے بغیر بعد میں ہونے والا WebRTC کنکشن ہمیشہ ناکام ہوگا، مگر خرابی کی وجہ واضح نہیں ہوگی؛ براؤزر JSON پارسنگ کی خرابی دکھائے گا اور ICE امیدواروں کی فہرست خالی ہوگی۔

3. تبدیلی کے بعد PowerShell میں یہ کمانڈ چلائیں:

wsl --shutdown

WSL میں دوبارہ داخل ہونے کے بعد ترتیب مؤثر ہوگی۔

四、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\models

3. استدلال کی سروس شروع کریں

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 stop

Windows کی 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 نظام میں کسی کردار کے ساتھ تعاملی گفتگو کے لیے استعمال کیا جا رہا ہے۔

#AI براؤزر#AI ویڈیو#AI پروگرامنگ#AI ڈیزائن#اے آئی آڈیو#اے آئی فنانس#بڑا ماڈل#مفت ذرائع#ڈیٹا تجزیہ#کارکردگی کے اوزار