15 مهر 1404
این ویدئو به تفصیل پروژهای چالشبرانگیز اما ارزشمند را برای شبیهسازی صداها با استفاده از نرمافزار هوش مصنوعی محلی و متنباز شرح میدهد، که جایگزینی کاملاً رایگان برای راهحلهای گرانقیمت مبتنی بر ابر ارائه میکند. این ویدئو یک روش جامع برای آموزش شبکههای عصبی را تشریح میکند، که آمادهسازی دادهها، آموزش مدل، و ادغام آن در یک دستیار صوتی هوش مصنوعی محلی را پوشش میدهد.

مأموریت پروژه، شبیهسازی صداها با استفاده از نرمافزار محلی، متنباز و رایگان است، با پرهیز از راهحلهای گرانقیمت ابری مانند Eleven Labs، و ادغام صدای سفارشی در یک دستیار صوتی هوش مصنوعی محلی مانند Terry، که جایگزین Alexa میشود.
صداهای شبیهسازی شده نمیتوانند بدون اجازه صریح برای اهداف تجاری، تولید محتوا، یا توزیع استفاده شوند. این یک مشاوره حقوقی نیست، و توصیه میشود که همه چیز را محلی نگه دارید و در صورت وجود هرگونه شک و تردید با یک وکیل مشورت کنید.
یک کامپیوتر (Mac، Linux، یا Windows) مورد نیاز است، که GPU آموزش مدل هوش مصنوعی را در مقایسه با CPU به طور قابل توجهی سرعت میبخشد. نمایشها شامل استفاده از WSL بر روی لپتاپ با Nvidia 3080، یک سرور هوش مصنوعی با دو 4090، و یک نمونه GPU-powered AWS EC2 است. نرمافزار اصلی مورد استفاده Hyper TTS است که صداها را به فرمت استاندارد مدل ONNX آموزش میدهد و آنها را برای استفاده در هر دستیار صوتی یا برنامه Text-to-Speech قابل حمل میکند.
دادههای صوتی با کیفیت بالا و پاک برای شبیهسازی صدای هوش مصنوعی ضروری است. برای شبیهسازی صدای خود، Piper Recording Studio برای ضبط آسان عبارات توسط خودتان توصیه میشود. برای شبیهسازی صدای دیگران، مانند ویدئوهای YouTube، فایلهای صوتی باید دانلود شوند، با اطمینان از اینکه صدای منبع بدون موسیقی پسزمینه یا وقفه است. دسترسی به فایلهای صوتی از پیش پردازش شده برای راحتی فراهم شده است.
این فرآیند شامل نصب WSL (Windows Subsystem for Linux) و Ubuntu، سپس شبیهسازی مخزن Piper Recording Studio است. یک محیط مجازی پایتون برای مدیریت وابستگیها ایجاد و فعال میشود، و سپس بستههای پایتون مورد نیاز نصب میگردند. سپس Piper Recording Studio به عنوان یک رابط وب در localhost:8000 اجرا میشود، که به کاربران امکان میدهد عبارات را مستقیماً در سیستم ضبط کنند، با ضبطهای بیشتر منجر به دقت بالاتر میشود.
دادههای صوتی خام نیاز به پاکسازی برای حذف موسیقی، سکوت و تقسیم شدن به بخشهای کوتاهتر دارند. Audacity، یک ویرایشگر صوتی متنباز، برای حذف دستی موسیقی از فایلهای صوتی دانلود شده از YouTube استفاده میشود. سپس FFMPEG با یک اسکریپت برای حذف خودکار سکوت استفاده میشود. این فایلهای صوتی طولانیتر متعاقباً با استفاده از یک اسکریپت bash به چندین فایل کوتاهتر، که ایدهآل است هر کدام بیشتر از ۱۵ ثانیه نباشند، تقسیم میشوند.
پس از پاکسازی و تقسیم فایلهای صوتی، Whisper، یک ابزار رونویسی محلی، برای رونویسی تمامی فایلهای صوتی به متن استفاده میشود. یک اسکریپت پایتون هر فایل را پردازش کرده، آن را رونویسی میکند و یک فایل metadata.csv تولید میکند که نام هر فایل صوتی را با رونویسی آن جفت میکند، فرمتی که Piper برای آموزش نیاز دارد.
مدیر دسترسیهای ممتاز و Secrets Manager (KSM) شرکت Keeper به مشکل حیاتی امنیت سایبریِ کدنویسی سختِ اسرار (گذرواژهها، کلیدهای API) توسط توسعهدهندگان در نرمافزار میپردازد. KSM یک پلتفرم امن، ابری و با دانش صفر برای مدیریت اعتبارات مستقیماً از ترمینال ارائه میدهد، که با پلتفرمهایی مانند Ansible، AWS و Docker ادغام میشود و راهحلی قدرتمند برای محافظت از اطلاعات حساس فراهم میکند.
یک دایرکتوری جدید برای آموزش ایجاد شده و مخزن Piper در آن شبیهسازی میشود. یک محیط مجازی پایتون برای مدیریت نسخههای خاص کتابخانهها راهاندازی و فعال میشود. توجه ویژهای به نصب نسخههای دقیق PIP (23.3.1)، NumPy (1.24.4) و Torch Metrics برای جلوگیری از خطاهای سازگاری شده است. برای GPUهای Nvidia 4090، یک اصلاح خاص شامل تغییر فایل الزامات و نصب یک نسخه خاص PyTorch برای رفع باگ Cuda 11.7 مورد نیاز است.
ماژول پایتون `Piper train pre-process` برای آمادهسازی دادههای پاکسازی شده و رونویسی شده برای آموزش اجرا میشود. این مرحله دایرکتوری wave و فایل metadata.csv را دریافت کرده، آنها را پردازش میکند، و یک دایرکتوری جدید حاوی همه آنچه Piper برای آموزش مدل صوتی نیاز دارد، تولید میکند. این فرآیند از چندین کارگر CPU استفاده میکند و عبارات را برای بهینهسازی دادهها برای فاز آموزش پردازش مینماید.
آموزش با دانلود یک مدل چکپوینت از پیش آموزشدیده (به عنوان مثال، انگلیسی، آمریکا، کیفیت متوسط 'ic') به عنوان نقطه شروع برای fine-tuning آغاز میشود، که زمان آموزش را به طور قابل توجهی کاهش میدهد. پارامترهای آموزش مانند دایرکتوری مجموعه داده، استفاده از GPU، اندازه دسته (قابل تنظیم بر اساس VRAM) و حداکثر تعداد epochها پیکربندی میشوند. پیشرفت آموزش را میتوان با استفاده از چکپوینتها نظارت و متوقف/از سر گرفته شود، که انعطافپذیری را تضمین میکند.
پس از اتمام آموزش (که با 'final epoch reached' نشان داده میشود)، چکپوینت نهایی با استفاده از دستور `Piper train export onnx` به فرمت جهانی ONNX خروجی گرفته میشود. فایل `config.json` از دایرکتوری آموزش نیز باید در کنار فایل مدل ONNX کپی شود. تلاشهای اولیه در تولید صدا نشان میدهد که کیفیت صدا به شدت به پاکیزگی، کمیت و تنوع کلیپهای صوتی آموزش، و همچنین تعداد epochهای آموزش بستگی دارد.
مدل ONNX خروجی گرفته شده و فایل JSON پیکربندی مربوطه از طریق یک Samba share در سرور Home Assistant بارگذاری میشوند. این فایلها در یک پوشه 'Piper' قرار میگیرند، که ممکن است برای اطمینان از شناسایی توسط افزونه Piper نیاز به تغییر نام داشته باشند. پس از رفرش افزونه Piper و دستگاه Wyoming، صدای سفارشی جدید میتواند به عنوان یک گزینه Text-to-Speech در تنظیمات دستیار صوتی Home Assistant انتخاب شود، که امکان ادغام با عوامل مکالمه هوش مصنوعی مانند Terry را فراهم میکند.
دستیار صوتی ادغام شده، پیکربندی شده با صدای شبیهسازی شده و یک پرامپت شخصیت خاص (به عنوان مثال، 'sinister man' برای Mike)، توانایی خود را در پاسخ به سوالات با صدای سفارشی جدید نشان میدهد. عملکرد به قدرت پردازش سرور Home Assistant بستگی دارد، با سرورهای AI اختصاصی مانند Terry که زمان پاسخ بسیار سریعتری را ارائه میدهند.
به همین دلیل است که انجام این کار به صورت محلی و متنباز محبوب است، زیرا قدرت بیشتری فراهم کرده و حریم خصوصی را تضمین میکند.
| دسته | مورد | توضیح |
|---|---|---|
| فناوری اصلی | Piper TTS | موتور متنباز و محلی Text-to-Speech برای شبیهسازی و تولید صدا. |
| ابزار آمادهسازی داده | Piper Recording Studio | ابزار تحت وب برای ضبط آسان و آمادهسازی مجموعه دادههای صوتی سفارشی. |
| ابزارهای پردازش صدا | Audacity, FFMPEG | برای پاکسازی دادههای صوتی (حذف موسیقی، سکوت) و تقسیم فایلهای طولانی به کلیپهای کوتاه (حداکثر ۱۵ ثانیه) استفاده میشود. |
| ابزار رونویسی | Whisper | مدل هوش مصنوعی محلی برای رونویسی دقیق فایلهای صوتی به متن، و تولید فراداده برای آموزش. |
| فرمت خروجی کلیدی | ONNX | فرمت جهانی برای مدلهای TTS آموزشدیده، که امکان انتقالپذیری در پلتفرمهای مختلف را فراهم میکند. |
| استراتژی آموزش | Fine-tuning | استفاده از یک مدل پایه از پیش آموزشدیده به عنوان نقطه شروع برای کاهش قابل توجه زمان و تلاش آموزش. |
| رفع وابستگیهای حیاتی | نسخههای خاص کتابخانه | نسخههای دقیق PIP (23.3.1)، NumPy (1.24.4) و Torch Metrics برای جلوگیری از خطاهای سازگاری در طول راهاندازی Piper مورد نیاز است. |
| رفع مشکل خاص GPU | NVIDIA 4090 / Cuda 11.7 | با تغییر الزامات Piper و نسخه PyTorch، یک باگ برای پشتیبانی از GPUهای 4090 حل شد. |
| عوامل تعیینکننده کیفیت | کیفیت، کمیت و تنوع دادهها | کلیپهای صوتی بینقص، کافی و متنوع برای نتایج شبیهسازی صدای با کیفیت بالا حیاتی هستند. |
| راهحل حامی | Keeper Secrets Manager | مدیریت امن، ابری و بدون دانش صفر از اسرار توسعهدهنده (کلیدهای API، رمز عبور) را مستقیماً از ترمینال فراهم میکند. |
