SoX ابزاری برای ویرایش فایلهای صوتی است که روی گنو/لینوکس، مک و ویندوز در دسترس است. روی اندروید هم میتوانید در محیط termux از آن استفاده کنید.
در این پست نخست با استفاده از SoX نویز یک فایل صوتی را کاهش میدهیم و سپس یک اسکریپت برای کاهش نویز فایلهای صوتی و تصویری، با استفاده از Sox و FFmpeg را بررسی میکنیم.
کاهش نویز با استفاده از SoX
اگر یک فایل صدا به نام audio.wav داشته باشیم که در ابتدای آن بخش کوچکی سکوت یا درستتر بنویسم «صدای محیط» ضبط شده باشد، میتوانیم آن بخش را با استفاده از SoX جدا کنیم:
در اینجا SoX فایل audio.wav را به عنوان ورودی دریافت و تا ثانیه 0.9 آن را جدا کرده و با نام noise.wave ذخیره میکند.
اکنون با استفاده از این بخش یک فایل از ویژگیهای نویز محیط به نام noise.prof میسازیم:
در پایان کاهش نویز را بر اساس پروفایل ساخته شده انجام میدهیم. برای تنظیم اندازه کاهش نویز از یک ضریب استفاده می شود که بر اساس این منبع عددی بین 0.2 تا 0.3 بهترین خروجیها را خواهد داشت:
اسکریپتی برای کاهش نویز فایلهای صوتی و تصویری با FFmpeg و SoX
این اسکریپت دو مسیر، -نخست فایل ورودی و سپس فایل خروجی- را میگیرد ($1 و $2). در صورتی که فایل ورودی تصویری باشد با استفاده از FFmpeg صدای آن را جدا میکند. سپس مشابه آنچه که در بخش پیش دیدیم نویز فایل صوتی را کاهش میدهد و در پایان اگر ورودی فایل تصویری باشد دوباره با استفاده از FFmpeg صدا و تصویر را به هم میچسباند.