تشخیص خودکار گفتار معمولاً با سیگنال صوتی شناخته می‌شود، اما در بسیاری از موقعیت‌های واقعی — محیط پرنویز صنعتی، مکالمه از پشت شیشه، یا کمک به افراد ناشنوا — تنها سرنخ موجود، حرکت لب گوینده است. مسئله لب‌خوانی خودکار (Automatic Lip Reading) و مسئله نزدیک به آن، تشخیص فونم (Phoneme Recognition)، دقیقاً همین شکاف را پر می‌کنند: استخراج واحدهای زبانی گفتار از روی سیگنال صوتی، تصویر، یا ترکیب هر دو. این مقاله پایپ‌لاین کامل پیاده‌سازی این مسئله با طبقه‌بند SVM در MATLAB — همراه با توابع و ابزارهای واقعی مورد استفاده — را از پیش‌پردازش داده تا ارزیابی نهایی مرور می‌کند.

فونم و واج‌نما (Viseme) چیست؟

فونم کوچک‌ترین واحد صوتی متمایزکننده معنا در یک زبان است — مثلاً تفاوت صدای «پ» و «ب» در فارسی یک تمایز فونمی است. در تحلیل بصری گفتار، مفهوم مشابه اما بصری آن واج‌نما یا Viseme نام دارد: شکل ظاهری دهان هنگام تلفظ یک فونم یا گروهی از فونم‌های مشابه. نکته مهم این‌جاست که رابطه فونم به Viseme یک‌به‌یک نیست — چند فونم مختلف (مثلاً «پ»، «ب»، «م») می‌توانند از نظر بصری تقریباً یکسان به‌نظر برسند، چون تفاوتشان در محل تولید صدا (لب‌ها در برابر تارهای صوتی) نه شکل ظاهری دهان است. همین موضوع، لب‌خوانی بصری را ذاتاً دشوارتر از تشخیص گفتار صوتی می‌کند.

در زبان فارسی، پژوهش و دیتاست عمومی برای این مسئله به‌مراتب محدودتر از زبان انگلیسی است؛ اغلب مقالات و دیتاست‌های استاندارد این حوزه (مانند آنچه در ادامه معرفی می‌شود) بر پایه زبان انگلیسی ساخته شده‌اند، و پیاده‌سازی روی داده فارسی معمولاً نیازمند جمع‌آوری یا برچسب‌گذاری دیتاست اختصاصی است.

پایپ‌لاین تشخیص فونم از روی سیگنال صوتی

۱. پیش‌پردازش سیگنال

سیگنال خام گفتار ابتدا با پردازش سیگنال دیجیتال آماده‌سازی می‌شود: حذف نویز زمینه با فیلترهای پایین‌گذر یا میان‌گذر، نرمال‌سازی دامنه، و تقسیم سیگنال پیوسته به فریم‌های کوتاه معمولاً ۲۰ تا ۳۰ میلی‌ثانیه‌ای با هم‌پوشانی (Framing با Overlap) — چون گفتار در بازه‌های زمانی کوتاه تقریباً ایستا (Quasi-Stationary) در نظر گرفته می‌شود.

۲. استخراج ویژگی با MFCC

پرکاربردترین ویژگی صوتی در این حوزه، ضرایب کپسترال فرکانس ملی (MFCC) است. این ویژگی با شبیه‌سازی نحوه درک فرکانس توسط گوش انسان (مقیاس ملی)، اطلاعات طیفی هر فریم را در قالب بردار کوتاهی از ضرایب (معمولاً ۱۲ تا ۱۳ ضریب به‌همراه انرژی فریم) خلاصه می‌کند. اغلب مشتق مرتبه اول و دوم این ضرایب (Delta و Delta-Delta) نیز برای در نظر گرفتن پویایی زمانی گفتار به بردار ویژگی اضافه می‌شود.

۳. طبقه‌بندی با SVM

بردارهای ویژگی هر فریم به طبقه‌بند SVM داده می‌شوند تا برچسب فونمی مربوطه پیش‌بینی شود. از آنجا که SVM ذاتاً یک طبقه‌بند دودویی است، برای مسئله چندکلاسه فونم (که می‌تواند ده‌ها کلاس داشته باشد) از راهبردهایی مانند One-vs-All یا One-vs-One استفاده می‌شود.

پایپ‌لاین لب‌خوانی بصری (Visual Speech Recognition)

۱. تشخیص و ردیابی ناحیه دهان

ابتدا باید ناحیه دهان در هر فریم ویدیو با تکنیک‌های پردازش تصویر یا بینایی ماشین شناسایی شود — معمولاً با تشخیص نقاط کلیدی چهره (Facial Landmark Detection) و برش ناحیه اطراف دهان، سپس ردیابی این ناحیه در فریم‌های بعدی برای حفظ پیوستگی زمانی. جزئیات کامل روش‌های تشخیص نقاط کلیدی در صفحه تشخیص و شناسایی چهره آمده است.

۲. استخراج ویژگی بصری

دو رویکرد اصلی برای استخراج ویژگی از دنباله تصاویر دهان وجود دارد: ویژگی‌های مبتنی بر شکل (Shape-based) که مختصات لب‌ها را دنبال می‌کنند، و ویژگی‌های مبتنی بر بافت (Appearance-based) مانند DCT یا LBP-TOP (Local Binary Pattern در سه بعد) که هم بافت مکانی و هم تغییرات زمانی حرکت لب را در نظر می‌گیرند — رویکرد دوم معمولاً دقت بالاتری برای لب‌خوانی خالص ارائه می‌دهد.

۳. طبقه‌بندی و مدل‌سازی زمانی

چون لب‌خوانی ذاتاً یک مسئله دنباله‌ای زمانی است (نه یک فریم مستقل)، معمولاً یا ویژگی‌های چند فریم متوالی در یک پنجره زمانی به SVM داده می‌شود، یا از مدل‌های دنباله‌ای مانند مدل مارکوف پنهان (HMM) برای مدل‌سازی توالی Viseme‌ها استفاده می‌شود که با SVM ترکیب می‌گردد (رویکرد Hybrid HMM-SVM).

پیاده‌سازی در MATLAB: کدام توابع و ابزارها؟

MATLAB برای هر مرحله این پایپ‌لاین، Toolbox و توابع آماده‌ای دارد که فاصله بین تئوری مقاله و کد اجرایی را کوتاه می‌کند:

  • Audio Toolbox — تابع mfcc() برای استخراج مستقیم ضرایب MFCC از سیگنال صوتی، بدون نیاز به پیاده‌سازی دستی تبدیل فوریه و فیلتربانک ملی
  • Signal Processing Toolbox — طراحی فیلترهای پیش‌پردازش با designfilt() و تحلیل طیفی سیگنال خام گفتار
  • Computer Vision Toolbox — تابع vision.CascadeObjectDetector برای تشخیص اولیه ناحیه دهان، و ابزارهای ردیابی برای حفظ موقعیت آن در فریم‌های متوالی
  • Image Processing Toolbox — استخراج ویژگی بافتی با extractLBPFeatures() که مستقیماً قابل تعمیم به نسخه سه‌بعدی (LBP-TOP) برای دنباله ویدیویی است
  • Statistics and Machine Learning Toolbox — آموزش طبقه‌بند SVM با fitcsvm() برای حالت دودویی یا fitcecoc() برای مسئله چندکلاسه فونم/Viseme، به‌همراه گزینه تنظیم خودکار هایپرپارامتر با OptimizeHyperparameters

ترکیب این ابزارها امکان می‌دهد کل پایپ‌لاین — از فایل صوتی یا ویدیویی خام تا خروجی طبقه‌بندی‌شده — در محیط یکپارچه MATLAB و بدون وابستگی به کتابخانه‌های خارجی پیاده‌سازی شود.

چرا SVM؟ و چگونه Kernel و پارامترها انتخاب می‌شوند؟

ماشین بردار پشتیبان (SVM) با یافتن مرز جداکننده بهینه بین کلاس‌های فونمی یا Viseme، در فضای ویژگی با ابعاد متوسط و حجم داده آموزشی محدود — وضعیتی که در اغلب پروژه‌های تحقیقاتی و دانشگاهی رایج است — عملکرد قابل‌اعتمادی نشان می‌دهد. انتخاب Kernel نقش تعیین‌کننده‌ای دارد: Kernel خطی برای داده‌های تقریباً قابل‌تفکیک خطی سریع و کارآمد است، اما در عمل Kernel گاوسی (RBF) به دلیل توانایی مدل‌سازی مرزهای غیرخطی بین فونم‌های صوتی یا بصری نزدیک به هم (مانند تمایز واج‌نمای «پ/ب/م») ترجیح داده می‌شود. تنظیم دقیق دو ابرپارامتر اصلی — C (جریمه خطای طبقه‌بندی) و γ (گاما) در Kernel RBF — معمولاً از طریق جست‌وجوی شبکه‌ای (Grid Search) همراه با اعتبارسنجی متقاطع (Cross-Validation) انجام می‌شود تا از Overfitting روی دیتاست کوچک جلوگیری شود.

دیتاست‌های مرجع رایج در پژوهش‌های این حوزه

دو دیتاست عمومی که در اغلب مقالات لب‌خوانی و تشخیص فونم بصری به‌عنوان مبنای مقایسه استفاده می‌شوند عبارت‌اند از GRID Corpus (شامل هزاران جمله ضبط‌شده از ۳۴ گوینده با جملات ساختاریافته، پرکاربرد برای آموزش و ارزیابی مدل‌های End-to-End) و AVLetters (دیتاست کوچک‌تر و کلاسیک‌تر، متمرکز بر تلفظ حروف الفبای انگلیسی، مناسب برای آزمایش روش‌های کلاسیک مانند SVM با حجم داده محدود). اگر پروژه شما مبتنی بر یک مقاله علمی خاص است، معمولاً همان مقاله یکی از این دو دیتاست (یا نسخه‌ای اختصاصی) را برای گزارش نتایج استفاده کرده است.

ارزیابی مدل و چالش‌های واقعی

دقت مدل معمولاً با معیارهایی مانند Accuracy، دقت و بازخوانی (Precision/Recall) در سطح فونم یا کلمه، و در پروژه‌های سطح جمله با نرخ خطای کلمه (Word Error Rate – WER) سنجیده می‌شود. سه چالش اصلی این حوزه عبارت‌اند از: ابهام بصری بین Viseme‌های مشابه (که سقف دقت لب‌خوانی خالص بصری را پایین‌تر از تشخیص گفتار صوتی نگه می‌دارد)، وابستگی به گوینده (مدلی که روی یک گوینده آموزش دیده، اغلب روی گوینده جدید افت دقت محسوسی دارد، مگر با دیتاست‌های چندگوینده)، و حساسیت به زاویه دوربین و نور در رویکرد بصری.

مقایسه رویکرد صوتی و بصری

معیاررویکرد صوتی (Phoneme)رویکرد بصری (Lip Reading)
سقف دقت معمولبالاتر (در شرایط کم‌نویز)پایین‌تر (به دلیل ابهام Viseme)
حساسیت به نویز محیطبالاپایین (مستقل از نویز صوتی)
وابستگی سخت‌افزاریمیکروفوندوربین با کیفیت و نور کافی
دیتاست مرجع رایجTIMIT و مشابهGRID Corpus، AVLetters

در عمل، بسیاری از سیستم‌های پیشرفته این دو رویکرد را در قالب مدل چندحسی (Audio-Visual) ترکیب می‌کنند تا نقاط ضعف هرکدام با اطلاعات مکمل دیگری جبران شود.

SVM در برابر یادگیری عمیق برای این مسئله

SVM انتخاب مناسبی برای دیتاست‌های کوچک تا متوسط با ویژگی‌های دستی (Hand-crafted) از پیش استخراج‌شده است — سریع، قابل‌تفسیر و بدون نیاز به منابع محاسباتی سنگین. اما در دیتاست‌های بزرگ‌تر، رویکردهای End-to-End مبتنی بر یادگیری عمیق — معمولاً ترکیب شبکه عصبی کانولوشن (CNN) برای استخراج خودکار ویژگی از هر فریم و یک لایه بازگشتی (LSTM یا GRU) برای مدل‌سازی توالی زمانی — دقت بالاتری ارائه می‌دهند، چون نیازی به مهندسی ویژگی دستی ندارند. انتخاب بین این دو رویکرد به حجم دیتاست در دسترس و منابع محاسباتی پروژه شما بستگی دارد — برای اغلب پروژه‌های دانشگاهی و مقاله‌محور با دیتاست محدود، SVM همچنان انتخابی عملی و رایج در ادبیات علمی است.

کاربردهای عملی

  • سیستم‌های کمک‌شنوایی و ابزارهای ارتباطی برای افراد ناشنوا و کم‌شنوا
  • احراز هویت بیومتریک چندحسی (ترکیب صدا و حرکت لب) برای امنیت بالاتر و مقاومت در برابر جعل
  • بهبود دقت تشخیص گفتار در محیط‌های صنعتی پرنویز که میکروفون به‌تنهایی کافی نیست
  • تحلیل ویدیوهای بدون صدا یا با کیفیت صوتی پایین (مانند فیلم‌های نظارتی قدیمی)
  • رابط‌های کاربری کنترل‌شده با دهان برای کاربردهای دسترسی‌پذیری (Accessibility)

پرسش‌های پرتکرار

آیا SVM هنوز برای لب‌خوانی استفاده می‌شود یا کاملاً جای خود را به یادگیری عمیق داده؟

در پروژه‌های صنعتی و محصولات تجاری، رویکردهای یادگیری عمیق End-to-End غالب شده‌اند؛ اما در پژوهش‌های دانشگاهی و مقالات با دیتاست محدود، SVM همچنان به دلیل سادگی، سرعت و تفسیرپذیری بالا رایج و قابل‌دفاع است.

برای شروع یک پروژه لب‌خوانی، به چه حجم داده نیاز است؟

برای یک مدل SVM قابل‌قبول روی چند کلاس محدود Viseme، معمولاً چند صد تا چند هزار نمونه برچسب‌خورده کافی است؛ برای مدل‌های یادگیری عمیق End-to-End، حجم داده موردنیاز به‌مراتب بیشتر است.

آیا می‌توان این پروژه را روی داده فارسی پیاده‌سازی کرد؟

بله، اما چون دیتاست عمومی آماده برای فونم‌ها و Viseme‌های فارسی محدود است، معمولاً نیاز به جمع‌آوری یا برچسب‌گذاری داده اختصاصی وجود دارد که در فاز اول پروژه برنامه‌ریزی می‌شود.

پیاده‌سازی پروژه شما با متلب

اگر روی پروژه یا مقاله‌ای در زمینه تشخیص فونم، لب‌خوانی، یا طبقه‌بندی گفتار صوتی/بصری کار می‌کنید، تیم متلبی می‌تواند کل پایپ‌لاین — از پیش‌پردازش سیگنال یا تصویر، استخراج ویژگی (MFCC، LBP-TOP)، تا آموزش و ارزیابی دقیق طبقه‌بند SVM یا مدل یادگیری عمیق — را مطابق دقیق مقاله مرجع شما پیاده‌سازی کند.