تسلط بر شبیه‌سازی صدای هوش مصنوعی محلی و متن‌باز

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

image

خلاصه نکات کلیدی

  • انگیزه و هدف پروژه

    مأموریت پروژه، شبیه‌سازی صداها با استفاده از نرم‌افزار محلی، متن‌باز و رایگان است، با پرهیز از راه‌حل‌های گران‌قیمت ابری مانند 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، فایل‌های صوتی باید دانلود شوند، با اطمینان از اینکه صدای منبع بدون موسیقی پس‌زمینه یا وقفه است. دسترسی به فایل‌های صوتی از پیش پردازش شده برای راحتی فراهم شده است.

  • راه‌اندازی Piper Recording Studio

    این فرآیند شامل نصب WSL (Windows Subsystem for Linux) و Ubuntu، سپس شبیه‌سازی مخزن Piper Recording Studio است. یک محیط مجازی پایتون برای مدیریت وابستگی‌ها ایجاد و فعال می‌شود، و سپس بسته‌های پایتون مورد نیاز نصب می‌گردند. سپس Piper Recording Studio به عنوان یک رابط وب در localhost:8000 اجرا می‌شود، که به کاربران امکان می‌دهد عبارات را مستقیماً در سیستم ضبط کنند، با ضبط‌های بیشتر منجر به دقت بالاتر می‌شود.

  • پاکسازی و آماده‌سازی داده‌ها

    داده‌های صوتی خام نیاز به پاکسازی برای حذف موسیقی، سکوت و تقسیم شدن به بخش‌های کوتاه‌تر دارند. Audacity، یک ویرایشگر صوتی متن‌باز، برای حذف دستی موسیقی از فایل‌های صوتی دانلود شده از YouTube استفاده می‌شود. سپس FFMPEG با یک اسکریپت برای حذف خودکار سکوت استفاده می‌شود. این فایل‌های صوتی طولانی‌تر متعاقباً با استفاده از یک اسکریپت bash به چندین فایل کوتاه‌تر، که ایده‌آل است هر کدام بیشتر از ۱۵ ثانیه نباشند، تقسیم می‌شوند.

  • رونویسی صوتی با Whisper

    پس از پاکسازی و تقسیم فایل‌های صوتی، Whisper، یک ابزار رونویسی محلی، برای رونویسی تمامی فایل‌های صوتی به متن استفاده می‌شود. یک اسکریپت پایتون هر فایل را پردازش کرده، آن را رونویسی می‌کند و یک فایل metadata.csv تولید می‌کند که نام هر فایل صوتی را با رونویسی آن جفت می‌کند، فرمتی که Piper برای آموزش نیاز دارد.

  • مدیریت دسترسی‌های ممتاز (PAM) با Keeper

    مدیر دسترسی‌های ممتاز و Secrets Manager (KSM) شرکت Keeper به مشکل حیاتی امنیت سایبریِ کدنویسی سختِ اسرار (گذرواژه‌ها، کلیدهای API) توسط توسعه‌دهندگان در نرم‌افزار می‌پردازد. KSM یک پلتفرم امن، ابری و با دانش صفر برای مدیریت اعتبارات مستقیماً از ترمینال ارائه می‌دهد، که با پلتفرم‌هایی مانند Ansible، AWS و Docker ادغام می‌شود و راه‌حلی قدرتمند برای محافظت از اطلاعات حساس فراهم می‌کند.

  • راه‌اندازی محیط آموزش برای Piper TTS

    یک دایرکتوری جدید برای آموزش ایجاد شده و مخزن 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 استفاده می‌کند و عبارات را برای بهینه‌سازی داده‌ها برای فاز آموزش پردازش می‌نماید.

  • آموزش مدل صوتی (Fine-tuning)

    آموزش با دانلود یک مدل چک‌پوینت از پیش آموزش‌دیده (به عنوان مثال، انگلیسی، آمریکا، کیفیت متوسط 'ic') به عنوان نقطه شروع برای fine-tuning آغاز می‌شود، که زمان آموزش را به طور قابل توجهی کاهش می‌دهد. پارامترهای آموزش مانند دایرکتوری مجموعه داده، استفاده از GPU، اندازه دسته (قابل تنظیم بر اساس VRAM) و حداکثر تعداد epochها پیکربندی می‌شوند. پیشرفت آموزش را می‌توان با استفاده از چک‌پوینت‌ها نظارت و متوقف/از سر گرفته شود، که انعطاف‌پذیری را تضمین می‌کند.

  • ارزیابی و خروجی‌گیری از مدل آموزش‌دیده

    پس از اتمام آموزش (که با 'final epoch reached' نشان داده می‌شود)، چک‌پوینت نهایی با استفاده از دستور `Piper train export onnx` به فرمت جهانی ONNX خروجی گرفته می‌شود. فایل `config.json` از دایرکتوری آموزش نیز باید در کنار فایل مدل ONNX کپی شود. تلاش‌های اولیه در تولید صدا نشان می‌دهد که کیفیت صدا به شدت به پاکیزگی، کمیت و تنوع کلیپ‌های صوتی آموزش، و همچنین تعداد epochهای آموزش بستگی دارد.

  • ادغام صدای شبیه‌سازی شده در Home Assistant

    مدل 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 مورد نیاز است.
رفع مشکل خاص GPUNVIDIA 4090 / Cuda 11.7با تغییر الزامات Piper و نسخه PyTorch، یک باگ برای پشتیبانی از GPUهای 4090 حل شد.
عوامل تعیین‌کننده کیفیتکیفیت، کمیت و تنوع داده‌هاکلیپ‌های صوتی بی‌نقص، کافی و متنوع برای نتایج شبیه‌سازی صدای با کیفیت بالا حیاتی هستند.
راه‌حل حامیKeeper Secrets Managerمدیریت امن، ابری و بدون دانش صفر از اسرار توسعه‌دهنده (کلیدهای API، رمز عبور) را مستقیماً از ترمینال فراهم می‌کند.

تگ ها

هوش
شبیه‌سازی
آموزش
PiperTTS
Keeper
WhisperAI
اشتراک گذاری