NeMo
آموزش‌های پیشرفته هوش مصنوعیپردازش گفتار

NeMo ؛ ساخت مدل سفارشی تشخیص گفتار 

0

NVIDIA NeMo یکی از جعبه‌ابزارهای هوش مصنوعی مکالمه‌ای  است؛ این جعبه‌ابزار نوعی شتاب‌دهنده است که به محققان و کارورزان کمک می‌کند روی معماری‌های شبکه‌های عصبی پیچیده پژوهش و آزمایش انجام دهند. پردازش گفتار  (که مسائل بازشناسی  و سنتز  گفتار را در برمی‌گیرد) و پردازش زبان طبیعی  (NLP) از قابلیت‌های چشمگیر این سامانه هستند. NVIDIA به صورت کامل از GPU پشتیبانی می‌کند؛ این چارچوب مبتنی بر چارچوب یادگیری عمیق کتابخانه‌ی PyTorch است.

در این نوتبوک سعی داریم یک سیستم بازشناسی خودکار گفتار  (ASR) بسازیم. ما برای این مطلب آموزشی از دیتاست LibriSpeech استفاده می‌کنیم.

راه‌اندازی

ما در این طرح آزمایشی از نرم‌افزار Ubuntu 16.04 Anaconda 4.7.11 NeMo استفاده می‌کنیم (https://github.com/NVIDIA/NeMo Kaladi — https://github.com/kaldi-asr/kaldi)؛ برای اجرای کد می‌توانید دستورالعمل‌های قسمت readme نرم‌افزار را دنبال کنید. قبل از هرچیز اطمینان حاصل کنید GPU از PyTorch پشتیبانی می‌کند. از نظر سخت‌افزاری به حداقل ۶ گیگ حافظه‌ی RAM روی GPU نیاز داریم.

داده‌ها

LibriSpeech یک دیتاست متن‌باز تشخیص گفتار است. برای دریافت داده ها به این لینک مراجعه کنید. در این مطلب آموزشی از دیتاست dev-clean استفاده می‌کنیم. با توجه به این‌که از یک GPU با سطح بسیار کوچک  استفاده می‌کنیم، برای تسهیل فرآیند آموزش داده‌ها را از پوشه‌ی http://www.openslr.org/resources/12/dev-clean.tar.gz انتخاب کردیم.

فایل‌های گفتار به فرمت .flac  ذخیره می‌شوند و برای کار با NeMo باید به فرمت ‘.wav’ تبدیل شوند. آموزش NeMo به یک فایل ‘manifest’  نیاز دارد. فایل ‘manifest’ شامل مسیر دستیابی  به ‘.wav’ (گفتارهای ضبط‌شده)، طول گفتار  و متن  هرکدام از گفتارها می‌شود.

به منظور تسهیل کار، روشی ایجاد کردیم که می‌تواند فرمت ‘.flac’  را به ‘.wav’ تبدیل کند.

تولید فایل آموزشی

آموزش مدل

در قسمت‌های آینده در مورد FFT (تبدیلات فوریه سریع)، طیف نگار و مدل‌های زبان توضیح خواهیم داد. یک برنامه‌ی کمکی برای خلاصه کردن فرآیند وجود دارد. از مدل QuartzNet15x5 به عنوان مدل پایه استفاده می‌کنیم. نتایج بازشناسی گفتار بر اساس نرخ خطای کلمه (WER) مورد ارزیابی قرار می‌گیرند؛ برنامه‌ی کمکی مذکور نیز از یک محاسبه‌گر WER استفاده می‌کند.
توجه داشته باشید که تعداد دورهای آموزش باید بر همین اساس سازگار شوند تا بتوانیم مدل خوبی بسازیم.

مدل ذخیره‌شده را می‌توان در فرمت ‘.nemo’ ذخیره کرد.

گام‌های بعدی

در این مطلب آموزشی مدلی بسیار ساده ساختیم که شاید اصلاً عملکرد خوبی نداشته باشد. اما می‌توانیم با استفاده از این آموخته‌ها و افزایش تعداد دورهای آموزشی (من این طرح را با ۱۰۰۰ دور آزمایشی اجرا کردم و رونوشت‌ها به نظر خوب می‌رسیدند) قادر باشیم یک دیتاست بزرگتر، شاید حتی کل دیتاست LibriSpeech dev-clean را بسازیم.
درصورت تمایل به یادگیری بیشتر می‌توانید تنظیمات مدل را در فایل ‘quartznet_13x5.yaml’ مشاهده کنید.
برای مشاهده‌ی کدها به این لینک مراجعه کنید.

ظهور هوش تصمیم گیری: تصمیم‌گیری بهینه شده با هوش مصنوعی

مقاله قبلی

خلاهای قانونی؛ اصلی‌ترین چالش هوش مصنوعی

مقاله بعدی

شما همچنین ممکن است دوست داشته باشید

نظرات

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *