| SOX_NG(1) | Sound eXchange_ng | SOX_NG(1) |
نام (NAME)
sox_ng - ابزار Sound eXchange_ng، چاقوی سوئیسی دیگری برای پردازش صوت
خلاصه دستور (SYNOPSIS)
sox_ng [global-options] [format-options] infile1 [[format-options] infile2] ... [format-options] outfile [effect [effect-options]] ... play_ng [global-options] [format-options] infile1 [[format-options] infile2] ... [format-options] [effect [effect-options]] ... rec_ng [global-options] [format-options] outfile [effect [effect-options]] ...
توضیحات (DESCRIPTION)
مقدمه (Introduction)
برنامه SoX فایلهای صوتی را در بیشتر قالبهای رایج خوانده و مینویسد و میتواند بهصورت اختیاری جلوههایی را روی آنها اعمال کند. این ابزار میتواند چندین منبع ورودی را ترکیب کند، صوت تولید نماید (سنتز کند) و در بسیاری از سیستمها، بهعنوان یک پخشکننده صوتی چندمنظوره یا یک ضبطکننده صوتی چندترکه عمل کند. همچنین میتواند ورودی را به چندین فایل خروجی تقسیم نماید.
تمامی قابلیتهای SoX تنها با استفاده از دستور sox_ng در دسترس هستند. برای سادهتر کردن پخش و ضبط صدا، اگر SoX بهصورت play_ng فراخوانی شود، فایل خروجی بهطور خودکار روی دستگاه صوتی پیشفرض تنظیم میشود؛ و اگر بهصورت rec_ng فراخوانی گردد، دستگاه صوتی پیشفرض بهعنوان منبع ورودی استفاده میشود. علاوه بر این، دستور soxi_ng روشی آسان برای دریافت اطلاعات سرآیند فایل صوتی فراهم میکند.
هسته اصلی SoX کتابخانهای به نام libsox_ng است. علاقهمندان به توسعه SoX یا استفاده از آن در سایر برنامهها باید به صفحه راهنمای libsox_ng مراجعه کنند.
برنامه SoX یک ابزار پردازش صوت خط فرمانی است که بهویژه برای ویرایشهای سریع و ساده و پردازش دستهای مناسب است. اگر به یک ویرایشگر صوتی گرافیکی و تعاملی نیاز دارید، از audacity(1) استفاده کنید.
| * | * | * |
زنجیره کلی پردازش SoX را میتوان بهصورت زیر خلاصه کرد:
| Input(s) → Combiner → Effects → Output(s) |
در خط فرمان SoX، جایگاه Output(s) (خروجیها) و Effects (جلوهها) نسبت به جریان منطقی نشاندادهشده در بالا جابهجا شده است؛ و در حالی که گزینههای مربوط به فایلها قبل از نام فایلهای متناظرشان قرار میگیرند، این موضوع برای جلوهها برعکس است. برای نشان دادن نحوه کارکرد این ابزار در عمل، در اینجا گزیدهای از مثالهای نحوه استفاده از SoX آورده شده است. دستور سادهٔ
sox_ng recital.au recital.wav
یک فایل
صوتی در
قالب Sun AU را به
یک فایل Microsoft WAV
تبدیل
میکند، در
حالی که
sox_ng recital.au -b 16 recital.wav channels 1 rate 16k fade 3 norm
همان تبدیل
قالب را
انجام
میدهد،
اما همچنین
چهار جلوه
(کاهش به یک
کانال،
تغییر نرخ
نمونهبرداری،
محو تدریجی
به داخل و
نرمالسازی)
را نیز
اعمال کرده
و نتیجه را
با عمق بیتی
۱۶ ذخیره
مینماید.
sox_ng -r 16k -e signed -b 8 -c 1 voice-memo.raw voice-memo.wav
صوت «خام»
(یا همان
«بدون
سرآیند») را
به یک قالب
فایل
خودتوصیفگر
تبدیل
میکند،
sox_ng slow.aiff fixed.aiff speed 1.027
سرعت صوت را
تنظیم
میکند،
sox_ng short.wav long.wav longer.wav
دو فایل
صوتی را به
یکدیگر
متصل
میکند و
sox_ng -m music.mp3 voice.wav mixed.flac
دو فایل
صوتی را با
یکدیگر
ترکیب (میکس)
میکند.
play_ng "The Moonbeams/Greatest/*.ogg" bass +3
مجموعهای
از
فایلهای
صوتی را با
اعمال جلوه
تقویت صدای
بم (bass boost) پخش
میکند،
play_ng -n -c1 synth sin %-12 sin %-9 sin %-5 sin %-2 fade h 0.1 1 0.1
یک آکورد
سنتزشدهٔ
«لا مینور
هفتم» (“A minor seventh”)
را با صدای
ارگ بادی
پخش
میکند،
rec_ng -c 2 radio.aiff trim 0 30:00
نیم ساعت
صوت استریو
را ضبط
میکند و
play_ng -q take1.aiff & rec -M take1.aiff take1-dub.aiff
(در صورت
استفاده از
شل POSIX و
پشتیبانی
سختافزار)
یک ترک جدید
را در یک ضبط
چندترکه
ضبط میکند.
در نهایت،
rec_ng -r 44100 -b 16 -e signed-integer -p \ silence 1 0.50 0.1% 1 10:00 0.1% | \ sox_ng -p song.ogg silence 1 0.50 0.1% 1 2.0 0.1% : \ newfile : restartجریانی از صدا مانند یک صفحه گرامافون (LP) یا کاست را ضبط کرده و در جاهایی که دو ثانیه سکوت وجود دارد، آن را به چند فایل صوتی تقسیم میکند. همچنین، ضبط را تا زمانی که صدایی تشخیص ندهد آغاز نمیکند و پس از مواجهه با ده دقیقه سکوت، متوقف میشود.
آنچه در بالا آمد صرفاً یک نمای کلی از قابلیتهای SoX است. توضیحات دقیق درباره نحوه استفاده از تمام پارامترها، قالبهای فایل و جلوههای SoX را میتوانید در ادامه این راهنما، در soxformat_ng(7) و در soxi_ng(1) بیابید..SS انواع قالب پرونده (File Format Types) دستور SoX میتواند با پروندههای صوتی «خودتوصیفگر» (self-describing) و «خام» (raw) کار کند. قالبهای «خودتوصیفگر» (مانند WAV، FLAC و MP3) دارای یک سرآیند هستند که مشخصات سیگنال و ویژگیهای کدگذاری دادههای صوتی پس از خود را بهطور کامل توصیف میکند. قالبهای «خام» یا «بدون سرآیند» فاقد این اطلاعات هستند، بنابراین ویژگیهای صوتی آنها باید در خط فرمان SoX توصیف شود، بهجز موارد معدودی که میتوان آنها را از پسوند نام پرونده استنباط کرد؛ مانند .gsm که همیشه -c1 -r8000 -e gsm است، و قالبهای خام نامگذاریشده مانند .f32، .s16 و .ul که نوع کدگذاری را مشخص میکنند اما نرخ نمونهبرداری یا تعداد کانالها را نشان نمیدهند.
چهار ویژگی زیر برای توصیف قالب دادههای صوتی به کار میروند:
- نرخ نمونهبرداری (sample rate)
- نرخ نمونهبرداری بر حسب نمونه در ثانیه («هرتز» یا «Hz»). تلفنهای دیجیتال بهطور سنتی از نرخ نمونهبرداری 8000Hz (۸ کیلوهرتز) استفاده میکنند، اگرچه 16 و حتی 32kHz در حال رایجتر شدن هستند. لوحهای فشرده صوتی (CD) از 44100Hz (44.1kHz)، نوارهای صوتی دیجیتال (DAT) و بسیاری از سیستمهای رایانهای از 48kHz و سیستمهای صوتی حرفهای اغلب از 96kHz استفاده میکنند.
- اندازه نمونه (sample size)
- تعداد بیتهای استفادهشده برای ذخیره هر نمونه. امروزه 16-bit بهطور معمول استفاده میشود؛ 8-bit در روزهای نخستین صدای رایانهای محبوب بود و 24-bit در حوزههای صوتی حرفهای به کار میرود.
- کدگذاری دادهها (data encoding)
- شیوهای که هر نمونه صوتی با آن بازنمایی (یا «کدگذاری») میشود. برخی کدگذاریها دارای انواعی با ترتیب بایتها یا ترتیب بیتهای متفاوت هستند؛ برخی دادههای صوتی را فشرده میکنند تا نسبت به قالبهای فشردهنشده، فضای دیسک یا پهنای باند انتقال کمتری مصرف کند. انواع کدگذاریهای پرکاربرد شامل ممیز شناور (floating point)، μ-law، ADPCM، PCM عدد صحیح علامتدار (signed-integer PCM)، MP3 و FLAC هستند.
- کانالها (channels)
- تعداد کانالهای صوتی موجود در پرونده. یک کانال («مونو») و دو کانال («استریو») بهطور گسترده استفاده میشوند و صدای «فراگیر» (surround sound) معمولاً شامل شش کانال یا بیشتر است.
اصطلاح «نرخ بیت» (bit rate) معیاری از میزان فضای ذخیرهسازی اشغالشده توسط یک سیگنال صوتی کدگذاریشده در واحد زمان است. این مقدار میتواند به تمام موارد فوق بستگی داشته باشد و معمولاً بهصورت تعداد کیلوبیت بر ثانیه (kbps) نشان داده میشود. یک سیگنال تلفنی A-law نرخ بیتی معادل 64 kbps دارد، موسیقی استریوی کدگذاریشده با MP3 معمولاً نرخ بیتی بین 128-196 kbps دارد و موسیقی استریوی کدگذاریشده با FLAC معمولاً دارای نرخ بیت 550-760 kbps است.
بیشتر قالبهای خودتوصیفگر همچنین اجازه میدهند «یادداشتها» (comments) یا متنهای توصیفی در پرونده جاسازی شوند که میتوان از آنها برای توصیف صدا به شکلی خاص استفاده کرد؛ مانند عنوان، پدیدآورنده و غیره برای موسیقی.
یکی از کاربردهای مهم یادداشتهای پروندههای صوتی، انتقال اطلاعات «Replay Gain» است. SoX میتواند Replay Gain را بهطور خودکار برای قالبهایی که حاوی یادداشت هستند اعمال کند، اما خودش آن را تولید نمیکند. بهطور پیشفرض، SoX یادداشتها را از نخستین پرونده ورودی به پروندههای خروجی که از یادداشت پشتیبانی میکنند رونوشت میکند؛ بنابراین ممکن است پروندههای خروجی حاوی اطلاعات Replay Gain نادرست باشند. هنگام تبدیل پروندههای ورودی با فعال بودن --replay-gain، این مشکل را میتوان با حذف تمام یادداشتها با استفاده از --comment ""، یا حذف تنها یادداشت REPLAYGAIN به شیوه زیر رفع کرد:
soxi_ng -a in.au | grep -v REPLAYGAIN > comments sox_ng --replay-gain=track in.au --comment-file comments out.au
تشخیص و تعیین قالب پرونده (Determining and setting the File Format)
دستور SoX از چندین سازوکار برای تشخیص یا تعیین قالب یک پرونده صوتی استفاده میکند. بسته به شرایط، ویژگیهای مجزا ممکن است با استفاده از سازوکارهای متفاوتی تشخیص داده شده یا تنظیم شوند.
برای تشخیص قالب یک پرونده ورودی، SoX به ترتیب اولویت و بر اساس آنچه ارائهشده یا موجود است، از موارد زیر استفاده میکند:
- 1.
- گزینههای قالب در خط فرمان،
- 2.
- محتویات سرآیند پرونده،
- 3.
- پسوند نام پرونده.
برای تعیین قالب پرونده خروجی، SoX به ترتیب اولویت و بر اساس آنچه ارائهشده یا موجود است، از موارد زیر استفاده میکند:
- 1.
- گزینههای قالب در خط فرمان،
- 2.
- پسوند نام پرونده،
- 3.
- ویژگیهای قالب پرونده ورودی یا نزدیکترین حالتی که توسط نوع پرونده خروجی پشتیبانی میشود.
برای تمام پروندهها، در صورتی که نوع پرونده قابل تشخیص نباشد، SoX با یک خطا خارج میشود. برای رفع مشکل، ممکن است نیاز به افزودن یا تغییر گزینههای قالب در خط فرمان باشد..SS پخش و ضبط صدا دستورهای play_ng و rec_ng برای آسان کردن پخش و ضبط اولیه به سادگی اجرای دستور زیر ارائه شدهاند:
play_ng existing-file.wav
و
rec_ng new-file.wav
این دو
دستور از
نظر
عملکردی
معادل
دستورهای
زیر هستند:
sox_ng existing-file.wav -d
و
sox_ng -d new-file.wav
گزینهها و
جلوههای
بیشتر
(همانطور
که در ادامه
توضیح داده
شده است)
میتوانند
به هر دو شکل
این
دستورها
افزوده
شوند.
| * | * | * |
هنگام پخش فایلی با نرخ نمونهبرداری که توسط دستگاه خروجی صدا پشتیبانی نمیشود، SoX بهطور خودکار جلوهٔ rate را برای انجام تبدیل نرخ نمونهبرداریِ لازم فراخوانی میکند. برای سازگاری با سختافزارهای قدیمی، سطح کیفیت پیشفرض rate روی «low» تنظیم شده است. این مقدار را میتوان با مشخص کردن صریح جلوهٔ rate با یک سطح کیفیت متفاوت تغییر داد، برای نمونه:
play_ng ... rate -m
یا با
استفاده از
گزینهٔ --play-rate-arg
(در ادامه را
ببینید).
| * | * | * |
در برخی سیستمها، SoX امکان تنظیم حجم صدای پخش را در زمان استفاده از play_ng فراهم میکند. در صورت پشتیبانی، این کار با فشردن کلیدهای «v» و «V» در حین پخش انجام میشود. اگر یک جلوهٔ softvol در زنجیره وجود داشته باشد، این کلیدها به جای میکسر سختافزاری، آن را تنظیم خواهند کرد.
برای کمک به تنظیم سطح ضبط مناسب، SoX شامل یک نشانگر سطح اوج (peak level meter) است که میتوان آن را (پیش از انجام ضبط اصلی) به صورت زیر فراخوانی کرد:
rec_ng -n
سطح ضبط
باید طوری
تنظیم شود
(با استفاده
از برنامهٔ
میکسر
ارائهشده
توسط
سیستم، نه SoX)
که نشانگر
حداکثر
گاهبهگاه
به انتهای
مقیاس برسد
و هرگز «در
محدودهٔ
قرمز»
نباشد (یک
علامت تعجب
نمایش داده
میشود).
گزینهٔ -S
(--show-progress) را در
ادامه
ببینید.
دقت
بسیاری از قالبهای فایلی که صدا را فشرده میکنند، بخشی از اطلاعات سیگنال صوتی را دور میریزند. تبدیل به چنین قالبی و بازگرداندن مجدد آن، نسخهای دقیق از صدای اصلی تولید نخواهد کرد. این مورد برای بسیاری از قالبهای مورد استفاده در تلفن (مانند A-law و GSM) که در آنها پهنای باند پایین سیگنال مهمتر از وفاداری بالای صوتی است، و برای قالبهای مورد استفاده در پخشکنندههای قابلحمل موسیقی (مانند MP3 و Ogg Vorbis) که در آنها وفاداری کافی حتی با نسبتهای فشردهسازی بالای لازم برای کاربردی کردن پخشکنندههای قابلحمل حفظ میشود، صدق میکند.
قالبهایی که اطلاعات سیگنال صوتی را دور میریزند «اتلافی» (lossy) نامیده میشوند. قالبهایی که این کار را نمیکنند «بدوناتلاف» (lossless) هستند. اصطلاح «کیفیت» به عنوان معیاری برای اندازهگیری میزان نزدیکی بازتولید سیگنال صوتی نسبت به نسخهٔ اصلی هنگام استفاده از یک قالب اتلافی به کار میرود.
تبدیل فایل صوتی با SoX تا جای ممکن بدوناتلاف است؛ یعنی زمانی که از فشردهسازی اتلافی استفاده نشود، نرخ نمونهبرداری یا تعداد کانالها کاهش نیابد، و تعداد بیتهای استفادهشده در قالب مقصد کمتر از قالب مبدأ نباشد. برای نمونه، تبدیل از قالب 8-bit PCM به قالب 16-bit PCM بدوناتلاف است، اما تبدیل از قالب 8-bit PCM به A-law (۸ بیتی) بدوناتلاف نیست.
پیش از انجام هرگونه پردازش صوتی، SoX تمام فایلهای صوتی را به یک قالب درونیِ غیرفشردهٔ ۳۲ بیتی تبدیل میکند. این بدان معناست که دستکاری فایلی که در یک قالب اتلافی ذخیره شده، میتواند موجب اتلاف بیشتر وفاداری صوتی شود. برای نمونه با:
sox_ng long.mp3 short.mp3 trim 10
ابتدا SoX فایل
MP3 ورودی را از
حالت فشرده
خارج
میکند،
سپس جلوهٔ trim
را اعمال
نموده و در
نهایت فایل MP3
خروجی را با
فشردهسازی
مجدد صدا
تولید
میکند، که
میتواند
موجب کاهش
بیشتر
وفاداری
صوتی نسبت
به آنچه در
زمان ایجاد
فایل ورودی
رخ داده بود
شود.
بنابراین،
اگر خروجی
نهاییِ
مورد نظر
صدای
فشردهشده
به صورت
اتلافی
است،
بهترین کار
این است که
تمام
پردازشهای
صوتی با
استفاده از
قالبهای
فایل
بدوناتلاف
انجام شوند
و تنها در
مرحلهٔ
نهایی به
قالب
اتلافی
تبدیل
گردند.
بهطور
کلی، اعمال
چندین جلوه
با یک بار
فراخوانی SoX،
نتایج
دقیقتری
نسبت به
استفاده از
چندین
فراخوانی
مجزای SoX
تولید
خواهد کرد..SS
"دیترینگ
(Dithering)" دیترینگ
روشی است که
برای به
حداکثر
رساندن
محدوده
دینامیکی
صوتی که در
یک عمق بیت
مشخص ذخیره
شده است، به
کار میرود.
هرگونه
اعوجاج
ناشی از
کوانتیزهسازی
با افزودن
مقدار کمی
نویز سفید
به سیگنال،
ناهمبسته (decorrelate)
میشود. در
بیشتر
موارد، SoX
میتواند
تشخیص دهد
که آیا
پردازش
انتخابشده
به دیتر
نیاز دارد
یا خیر، و در
صورت لزوم،
آن را حین
قالببندی
خروجی
اضافه
خواهد کرد.
بهطور پیشفرض، SoX زمانی که عمق بیت خروجی کمتر از ۲۴ باشد و هر یک از موارد زیر برقرار باشد، بهطور خودکار دیتر TPDF را اضافه میکند:
- کاهش عمق بیت صراحتاً با استفاده از یک گزینه خط فرمان مشخص شده باشد
- قالب فایل خروجی فقط از عمقهای بیت پایینتر از قالب فایل ورودی پشتیبانی کند
- یک جلوه، عمق بیت مؤثر را درون زنجیره پردازش داخلی افزایش داده باشد
برای نمونه، تنظیم بلندی صدا با vol 0.25 برای ذخیره نتایج خود بدون افت کیفیت به دو بیت اضافی نیاز دارد (چرا که 0.25 در مبنای ده برابر با 0.01 در مبنای دو است)، بنابراین، اگر عمق بیت فایل ورودی ۱۶ باشد، نمایش داخلی SoX پس از پردازش این تغییر بلندی صدا، از ۱۸ بیت استفاده خواهد کرد. به منظور ذخیره خروجی با همان عمق بیت ورودی، از دیترینگ برای حذف بیتهای اضافی استفاده میشود.
از گزینه -V برای مشاهده پردازشهایی که SoX بهطور خودکار اضافه کرده است استفاده کنید. گزینه -D (--no-dither) را میتوان برای لغو دیترینگ خودکار مشخص کرد. برای بهکارگیری دستی دیترینگ (مثلاً برای انتخاب منحنی شکلدهی به نویز) از جلوه dither استفاده کنید.
کلیپینگ (Clipping)
کلیپینگ نوعی اعوجاج است که وقتی سطح سیگنال صوتی (یا «بلندی صدا») از محدوده نمایش انتخابی فراتر میرود، رخ میدهد. در بیشتر موارد، کلیپینگ نامطلوب است و بنابراین باید با تنظیم سطح قبل از نقطهای از زنجیره پردازش که در آن رخ میدهد، تصحیح شود.
در SoX، کلیپینگ میتواند هنگام استفاده از جلوههای vol یا gain برای افزایش بلندی صدا رخ دهد. کلیپینگ همچنین میتواند با بسیاری از جلوههای دیگر، هنگام تبدیل یک قالب به قالب دیگر و حتی صرفاً هنگام پخش صدا رخ دهد.
پخش یک فایل صوتی اغلب شامل بازنمونهبرداری (resampling) و پردازش توسط قطعات آنالوگ است و این امر میتواند آفست DC یا تقویت سیگنال ایجاد کند که در صورت نزدیک بودن اولیه سطح سیگنال صوتی به نقطه کلیپینگ، همگی میتوانند باعث اعوجاج شوند.
به این دلایل، مرسوم است اطمینان حاصل شود که سطح سیگنال یک فایل صوتی مقداری «حاشیه امن» (headroom) داشته باشد، یعنی از یک سطح معین زیر حداکثر سطح ممکنِ نمایشِ دادهشده فراتر نرود. برخی از سازمانهای استاندارد تا 9dB حاشیه امن را توصیه میکنند، اما در بیشتر موارد، 3dB (≈ ۷۰٪ خطی) کافی است. توجه داشته باشید که به نظر میرسد این نکته هوشمندانه در تولید موسیقی امروزی به فراموشی سپرده شده است؛ در واقع، امروزه بسیاری از CDها، MP3ها و غیره در سطوح بالاتر از 0dBFS مستر میشوند و صدای نهایی بهصورت کلیپشده تحویل داده میشود.
جلوههای stat و stats در SoX میتوانند به تعیین سطح سیگنال یک فایل صوتی کمک کنند. از جلوه gain یا vol میتوان برای جلوگیری از کلیپینگ استفاده کرد، برای مثال:
sox_ng dull.wav bright.wav gain -6 treble +6
تضمین
میکند که
تقویت
فرکانسهای
بالا (treble) دچار
کلیپینگ
نشود.
اگر در هر نقطهای حین پردازش کلیپینگ رخ دهد، SoX یک پیام هشدار مبنی بر آن نمایش میدهد.
گزینه سراسری -G (--guard) و جلوههای gain و norm را ببینید..SS "ترکیب فایلهای ورودی (Input File Combining)" ترکیبکننده ورودی SoX میتواند با گزینه عمومی --combine برای ترکیب چندین فایل با استفاده از یکی از روشهای زیر پیکربندی شود: concatenate، sequence، mix، mix-power، merge و multiply، با حالتهای کوتاه -m برای --combine mix، -M برای merge و -T برای multiply.
مقدار پیشفرض برای play_ng برابر sequence، و برای sox_ng برابر concatenate است.
برای روشهایی غیر از sequence، چندین فایل ورودی باید نرخ نمونهبرداری یکسانی داشته باشند. در صورت لزوم، میتوان از فراخوانیهای جداگانه SoX برای انجام تنظیمات نرخ نمونهبرداری پیش از ترکیب آنها استفاده کرد؛ و در روش concatenate، فایلهای ورودی باید تعداد کانالهای یکسانی نیز داشته باشند.
روش ترکیب sequence از این نظر شبیه به concatenate است که صدای هر فایل ورودی بهصورت پیاپی به فایل خروجی فرستاده میشود، اما در اینجا ممکن است فایل خروجی در زمان انتقال بین فایلهای ورودی بسته شده و دوباره باز شود. این رفتار ممکن است دقیقاً همان چیزی باشد که هنگام ارسال انواع مختلف صدا به یک دستگاه خروجی مورد نیاز است، اما بهطور کلی زمانی که خروجی یک فایل معمولی باشد مفید نیست.
در روشهای ترکیب mix یا mix-power، نیازی نیست تعداد کانالهای هر فایل ورودی یکسان باشد، اما اگر یکسان نباشند SoX هشداری صادر میکند و برخی از کانالها در فایل خروجی شامل صدای همه فایلهای ورودی نخواهند بود. یک فایل صوتی میکسشده را نمیتوان بدون دسترسی به فایلهای ورودی اصلی از حالت میکس خارج کرد.
اگر روش ترکیب merge انتخاب شود، نیازی نیست تعداد کانالهای هر فایل ورودی یکسان باشد و یک فایل صوتی ادغامشده شامل همه کانالها از تمام فایلهای ورودی خواهد بود و جداسازی آنها با استفاده از چندین بار فراخوانی SoX با جلوهٔ remix امکانپذیر است. برای مثال، دو فایل مونو میتوانند برای تشکیل یک فایل استریو ادغام شوند و فایلهای مونوی اول و دوم به کانالهای چپ و راست فایل استریو تبدیل خواهند شد.
روش ترکیب multiply مقادیر نمونههای کانالهای متناظر را که بهعنوان اعدادی در بازه -1 تا +1 در نظر گرفته میشوند در یکدیگر ضرب میکند. اگر تعداد کانالها در فایلهای ورودی یکسان نباشد، کانالهای مفقود شامل سکوت خواهند بود.
هنگام ترکیب فایلهای ورودی، SoX هر جلوهٔ مشخصشده را (از جمله، برای مثال، جلوهٔ تنظیم بلندی صدای vol ) پس از ترکیب شدن صدا اعمال میکند. با این حال، اغلب مفید است که بتوان بلندی صدای ورودیها را پیش از انجام ترکیب بهطور مجزا تنظیم (یعنی «تراز») کرد. برای تمام روشهای ترکیب، تنظیمات بلندی صدای فایل ورودی میتواند بهصورت دستی با استفاده از گزینهٔ -v انجام شود، که میتواند برای یک یا چند فایل ورودی مشخص گردد. اگر این گزینه تنها برای برخی از فایلهای ورودی مشخص شود، سایر فایلها هیچ تنظیم بلندی صدایی دریافت نخواهند کرد. در برخی شرایط، ممکن است تنظیمات خودکار بلندی صدا اعمال شود. گزینه عمومی -V میتواند برای نمایش تنظیمات بلندی صدای فایل ورودی که بهصورت دستی یا خودکار انتخاب شدهاند استفاده شود.
هنگام میکس فایلهای ورودی باید نکات ویژهای را در نظر گرفت:
برخلاف سایر روشها، ترکیب به روش mix در صورت عدم انجام همترازی میتواند باعث بریدگی (clipping) در ترکیبکننده شود. در این حالت، اگر تنظیمات دستی بلندی صدا مشخص نشده باشد، SoX تلاش میکند تا با تنظیم خودکار بلندی صدا (دامنه) هر سیگنال ورودی با ضریب ¹/n (که در آن n تعداد فایلهای ورودی است)، از عدم وقوع بریدگی اطمینان حاصل کند. اگر این کار منجر به صدایی بیش از حد آهسته یا نامتعادل شود، میتوان بلندی صدای فایلهای ورودی را بهصورت دستی با -v تنظیم کرد. استفاده از جلوهٔ norm روی صدای میکسشده جایگزین دیگری است.
اگر صدای میکسشده در برخی نقاط به اندازه کافی بلند اما در نقاط دیگر بیش از حد آهسته به نظر میرسد، فشردهسازی محدوده پویایی (dynamic range compression) میتواند برای اصلاح آن به کار رود - به جلوهٔ compand مراجعه کنید.
با روش ترکیب mix-power، بلندی صدای میکسشده تقریباً برابر با بلندی صدای یکی از سیگنالهای ورودی است. این کار با همترازی با ضریب ¹/√n به جای ¹/n به دست میآید. توجه داشته باشید که این ضریب همترازی عدم وقوع بریدگی را تضمین نمیکند، اما تعداد بریدگیها معمولاً کم خواهد بود و اعوجاج حاصل نیز معمولاً نامحسوس است..SS "فایلهای خروجی (Output Files)" رفتار پیشفرض SoX این است که یک یا چند فایل ورودی را دریافت کرده و آنها را در یک تکفایل خروجی بنویسد.
این رفتار را میتوان با قرار دادن شبهجلوهٔ newfile در فهرست جلوهها تغییر داد تا SoX وارد حالت چند خروجی شود.
در حالت چند خروجی، زمانی که جلوههای پیش از newfile مشخص کنند که کارشان تمام شده است، یک فایل جدید ایجاد میشود. سپس زنجیرهٔ جلوههای فهرستشده پس از newfile آغاز بهکار کرده و خروجی آن در فایل جدید ذخیره میشود.
در حالت چند خروجی، یک شمارهٔ یکتا بهطور خودکار به تمام نامهای فایل پیوست میشود و اگر نام فایل دارای پسوند باشد، این شماره قبل از پسوند درج میگردد. این رفتار را میتوان با قرار دادن %n در نام فایل در جایی که شماره باید جایگزین شود سفارشیسازی کرد. میتوان یک عدد اختیاری پس از % قرار داد تا حداقل عرض شماره همراه با صفرهای پیشین مشخص شود. مقدار پیشفرض %n دو رقم است، یا در صورتی که هیچ %n مشخص نشده باشد، سه رقم پیش از پسوند نام فایل خواهد بود.
حالت چند خروجی چندان کاربردی ندارد مگر اینکه جلوهای که زنجیرهٔ جلوهها را متوقف میکند پیش از newfile مشخص شده باشد. اگر پیش از توقف زنجیرهٔ جلوهها به پایان فایل برسد، هیچ فایل جدیدی ایجاد نمیشود زیرا خالی خواهد بود.
مثال زیر نمونهای از تقسیم ۶۰ ثانیه اول یک فایل ورودی به دو فایل ۳۰ ثانیهای و نادیده گرفتن ادامه آن است:
sox_ng song.wav ringtone%1n.wav trim 0 30 : newfile : trim 0 30
توقف SoX (Stopping SoX)
معمولاً SoX پس از خواندن تمام دادههای صوتی از فایلهای ورودی، پردازش خود را به پایان رسانده و بهطور خودکار خارج میشود.
همچنین میتوان با ارسال یک سیگنال وقفه، معمولاً از طریق فشردن کلید وقفهٔ صفحهکلید که معمولاً Ctrl-C است، آن را زودتر متوقف کرد. این کار هنگام استفاده از SoX برای ضبط صدا لازم است.
هنگامی که SoX در حال پخش چندین فایل است، عملکرد Ctrl-C کمی متفاوت است: یک بار فشردن آن به فایل بعدی میرود؛ دو بار فشردن سریع و پشتسرهم آن باعث خروج SoX میشود. با این حال، هنگام پخش چندین فایل که با ffmpeg رمزگشایی میشوند، این کار تمام خواندنهای معلق فایل را متوقف کرده و منجر به شنیده شدن حدود یک ثانیه از هر کدام میشود - یعنی آنچه هر فرآیند پیشتر در لوله (pipe) خود نوشته بود.
راه دیگر برای توقف زودهنگام پردازش، استفاده از جلوهای است که دارای بازه زمانی یا تعداد نمونه باشد؛ جلوهٔ trim نمونهای از این دست است. به محض اینکه تمام زنجیرههای جلوه متوقف شوند، SoX نیز متوقف میشود.
نامهای فایل (FILENAMES)
نامهای فایل میتوانند نامهای ساده فایل، مسیرهای نسبی یا مطلق، URLها (تنها برای فایلهای ورودی) یا نامهای فایل ویژه باشند. پشتیبانی از URL نیازمند نصب بودن یکی از برنامههای wget، wget2 یا curl است.
دادن نام فایلی به عنوان ورودی یا خروجی SoX که همنام یکی از جلوههای SoX باشد کار نخواهد کرد، زیرا SoX آن را به عنوان یک مشخصه جلوه در نظر میگیرد. میتوانید این مشکل را با فراخوانی فایل به صورت ./chorus در Unix یا .\chorus در MS/DOS دور بزنید، اما این مورد معمولاً مشکلی ایجاد نمیکند چرا که اکثر نامهای فایلهای صوتی پسوند دارند که پس از یک نقطه میآید، در حالی که نامهای جلوهها فاقد آن هستند.
استفاده از یک نام فایل یکسان به عنوان ورودی و خروجی به احتمال زیاد آنطور که انتظار میرود عمل نخواهد کرد، زیرا احتمال دارد فایل پیش از خوانده شدن کامل آن کوتاه و خالی (truncate) شود.
نامهای فایل ویژه (Special Filenames)
نامهای فایل زیر را میتوان در شرایط خاصی بهجای یک نام فایل معمولی به کار برد:
- -
- میتوان با استفاده از نام فایل ویژه `-' از SoX در عملیات خط لولهای (pipeline) ساده استفاده کرد؛ این نام فایل در صورتی که به عنوان فایل ورودی استفاده شود، باعث میشود SoX دادههای صوتی را از «ورودی استاندارد» (stdin) بخواند و اگر به عنوان نام فایل خروجی استفاده شود، موجب ارسال دادههای صوتی توسط SoX به «خروجی استاندارد» (stdout) میگردد. هنگام استفاده از این گزینه برای فایل خروجی، و گاهی هنگام استفاده از آن برای فایل ورودی، نوع فایل (به -t در زیر مراجعه کنید) نیز باید مشخص شود.
- "|program [options] ..."
- یک نویسه
ابتدایی
«پایپ»
مشخص
میکند که
خروجی
استاندارد
(stdout) دستور
دادهشده
باید به
عنوان یک
فایل ورودی
استفاده
شود. بر
خلاف نام
فایل ویژه
-، میتوان
از این روش
برای چندین
ورودی در یک
دستور SoX
استفاده
کرد. برای
مثال، اگر
برنامهٔ
genw یک
سیگنال
صوتی مونو WAV
را در خروجی
استاندارد
خود تولید
کند، دستور
زیر یک فایل
استریو از
دو سیگنال
تولیدشده
میسازد:
sox_ng -M "|genw --imd -" "|genw --thd -" out.wavبرای دادههای صوتی بدون سربرگ (خام یا raw) و برخی قالبهای دیگر، باید -t پیش از دستور ورودی آورده شود. - "wildcard-filename"
- مشخص
میکند که
اگر wildcard-filename
شامل
نویسههای
*، ? یا
دامنههای
نویسهای
مانند [A-Z]
باشد،
تطبیق الگو
(globbing) باید
توسط SoX
انجام شود
نه توسط
پوسته. این
قابلیت
اجازه
میدهد تا
یک مجموعه
واحد از
گزینههای
فایل بر روی
گروهی از
فایلها
اعمال شود.
برای مثال،
اگر
دایرکتوری
فعلی شامل
سه فایل
file1.vox،
file2.vox و
file3.vox باشد،
دستور
play_ng --rate 6k *.voxتوسط پوسته (در اغلب محیطها) به این شکل باز میشود:play_ng --rate 6k file1.vox file2.vox file3.voxکه تنها با فایل `vox' نخست طوری رفتار میکند که گویی نرخ نمونهبرداری آن 6k است. با دستورplay_ng --rate 6k "*.vox"گزینهٔ نرخ نمونهبرداری مشخصشده به تمام فایلها اعمال میگردد.اگر نمیخواهید SoX نامهای فایل را منطبق کند (glob نکند)، میتوانید از گزینهٔ --no-glob پیش از هر نام فایلی که نباید تطبیق یابد استفاده کنید؛ این گزینه در صورتی لازم است که بخواهید فایلهایی را پردازش کنید که نام آنها حاوی نویسههای عمومی (wildcard) است.
- -p, --sox-pipe
- میتواند
بهجای یک
نام فایل
خروجی
استفاده
شود تا مشخص
کند خروجی
آن به عنوان
ورودی
دستوری
دیگر از SoX
استفاده
خواهد شد.
برای مثال،
در دستور:
play_ng "|sox_ng -n -p synth 2" "|sox_ng -n -p synth 2 tremolo 10"دستور play_ng تصور میکند در حال پخش دو فایل پیاپی است که از پایپها میآیند، اما در واقع هر دو از اجراهای دیگر SoX سرچشمه میگیرند که هر کدام جلوههای متفاوتی دارند.گزینهٔ -p در واقع یک نام مستعار برای `-t sox -' است.
- -d, --default-device
- میتواند بهجای نام فایل ورودی یا خروجی استفاده شود تا مشخص کند باید از دستگاه صوتی پیشفرض (چنانچه در SoX تعبیه شده باشد) استفاده شود. این مشابه فراخوانی rec_ng یا play_ng همانگونه که در بالا توصیف شد میباشد.
- -n, --null
- میتواند
بهجای یک
نام فایل
ورودی یا
خروجی
استفاده
شود تا مشخص
کند که باید
از یک «فایل
تهی» (null file)
استفاده
شود. در
اینجا
«فایل تهی»
به سازوکار
اختصاصی SoX
اشاره دارد
و ارتباطی
با
سازوکارهای
نامگذاریشده
در
سیستمعامل
ندارد.
استفاده از یک فایل تهی به عنوان ورودی معادل استفاده از یک فایل صوتی معمولی حاوی سکوت بیپایان است و به همین دلیل عموماً مفید نیست مگر اینکه به همراه جلوهای به کار رود که بازهٔ زمانی محدودی مشخص میکند، مانند trim یا synth.
استفاده از یک فایل تهی به عنوان خروجی به معنای دور ریختن صوت است و عمدتاً برای جلوههایی کاربرد دارد که بهجای تغییر دادن صوت، اطلاعاتی دربارهٔ آن تولید میکنند، مانند noiseprof، stat و spectrogram.
نرخ نمونهبرداری مرتبط با یک فایل تهی بهطور پیشفرض 48kHz است، اما مانند یک فایل معمولی، میتوان آن را با استفاده از گزینههای قالببندی مانند -r لغو و بازنویسی کرد (به زیر مراجعه کنید)..SS انواع فایل و دستگاه صوتی پشتیبانیشده (Supported File and Audio Device Types) برای مشاهده فهرست و شرح قالبهای فایل و درایورهای دستگاههای صوتی پشتیبانیشده، soxformat_ng(7) را ببینید.
گزینهها (OPTIONS)
گزینههای سراسری (Global Options)
این گزینهها را میتوان در هر نقطهای از خط فرمان، پیش از نام نخستین جلوه (effect) مشخص کرد.
متغیر محیطی SOX_OPTS میتواند برای تعیین مقادیر پیشفرض جایگزین برای گزینههای سراسری SoX به کار رود. بخش محیط (ENVIRONMENT) (در زیر) را ببینید.
- -A freq
- فرکانس نت A4 را بهجای 440Hz بر روی freq تنظیم میکند.
- --buffer bytes، --input-buffer bytes
- اندازه
بافرهای
مورد
استفاده
برای
پردازش صدا
را بر حسب
بایت تعیین
میکند
(پیشفرض 8192).
گزینه --buffer بر
پردازش
ورودی،
جلوهها و
خروجی
اعمال
میشود؛
--input-buffer تنها بر
پردازش
ورودی
اعمال شده و
در صورتی که
هر دو مشخص
شده باشند،
اولویت
داشته و بر
--buffer حاکم
میشود.
مقادیر بزرگ برای --buffer ممکن است باعث شود SoX در پاسخ به درخواستهای توقف یا پرش به فایل ورودی بعدی کند شود.
- --clobber
- پیش از رونویسی فایلی موجود که همنام با فایل خروجی است، سؤالی نمیپرسد. این رفتار پیشفرض است؛ برای تغییر آن، از --no-clobber استفاده کنید.
- --combine concatenate|merge|mix|mix-power|multiply|sequence
- روش ترکیب فایلهای ورودی را انتخاب میکند. برای شرح آنها، بخش ترکیب فایل ورودی (Input File Combining) را در بالا ببینید.
- -D، --no-dither
- دیتر (dither) خودکار را غیرفعال میکند - بخش دیترینگ (Dithering) در بالا را ببینید. این گزینه ممکن است برای اطمینان از اینکه SoX در اجراهای متوالی خروجی کاملاً یکسانی تولید میکند، یا زمانی که فایلی با قصد انجام پردازش از ۱۶ به ۲۴ بیت تبدیل شده اما در نهایت هیچ پردازشی روی آن انجام نگرفته و فایل اصلی ۱۶ بیتی از دست رفته است مفید باشد؛ که در این حالت هنگام تبدیل مجدد فایل به ۱۶ بیت نیازی به dither نیست. برای آگاهی از چگونگی تعیین عمق بیتی (bit-depth) واقعی صدای درون یک فایل، جلوه stats را ببینید.
- --effects-file filename
- یک فایل را برای دریافت تمامی جلوهها و آرگومانهای آنها میخواند. فایل بهگونهای تجزیه میشود که گویی مقادیر در خط فرمان مشخص شدهاند. میتوان بهجای نشانگر ویژه : از یک خط جدید برای جداسازی زنجیرههای جلوه استفاده کرد. برای راحتی کار، چنین نشانگرهایی در پایان فایل معمولاً نادیده گرفته میشوند؛ اگر میخواهید آخرین زنجیره جلوه خالی باشد، از یک : صریح و منفرد در آخرین خط فایل استفاده کنید. این گزینه باعث نادیده گرفتن تمامی جلوههای مشخصشده در خط فرمان میشود.
- -G، --guard
- بهطور
خودکار
جلوه gain را
برای
محافظت در
برابر برش
سیگنال (clipping)
فراخوانی
میکند.
برای نمونه:
sox_ng -G in.au -b 16 out.au rate 44100 dither -sکوتاهنوشتی است برای:sox_ng in.au -b 16 out.au gain -h rate 44100 gain -rh dither -sگزینههای -V، --norm و جلوه gain را ببینید. - -h، --help
- شماره نسخه و اطلاعات نحوه استفاده SoX را نمایش میدهد.
- --help-effect name
- اطلاعات نحوه استفاده از جلوه مشخصشده را نشان میدهد. از نام all میتوان برای نمایش اطلاعات تمامی جلوههای موجود استفاده کرد.
- --help-format name
- اطلاعات مربوط به قالب فایل مشخصشده را نمایش میدهد. از نام all میتوان برای نمایش اطلاعات تمامی قالبهای پشتیبانیشده استفاده کرد.
- --i، --info
- اگر بهعنوان نخستین پارامتر به sox_ng داده شود، رفتاری مانند soxi_ng خواهد داشت.
- --interactive
- امکان مهار SoX را با فشردن کلیدهای صفحهکلید فعال میکند؛ بدین صورت:
- v و V
- کاهش و افزایش حجم صدای اصلی (master volume)، یا حجم صدای softvol در صورتی که در زنجیره جلوهها قرار داشته باشد.
- < و >
- ۳۰ ثانیه پیمایش به عقب و جلو در فایل صوتی.
- n
- پرش به شیار (track) بعدی.
- q یا Esc
- خروج.
- R
- راهاندازی مجدد زنجیره جلوهها (مشابه :).
تمامی موارد فوق را میتوان بهوسیله گزینه --keymap تغییر داد.
حالت تعاملی هنگام پخش بهطور پیشفرض فعال و در سایر موارد غیرفعال است. برای غیرفعال کردن آن هنگام پخش، ورودی استاندارد (stdin) را از جایی غیر از ترمینال هدایت کنید، مانند play ... < file
- -k|--keymap key:effect.field[+|−|*|/|=]value
- فشردن کلید
مشخصشده،
پارامتر یک
جلوه را
تغییر
میدهد؛ با
افزودن یا
کاستن value
برای
تغییرات
خطی، ضرب یا
تقسیم در value
برای مهار
لگاریتمی،
یا تنظیم
مستقیم
پارامتر
روی آن
مقدار. برای
نمونه:
play_ng -V -k D:dolbyb.gain+2 -k d:dolbyb.gain-2 in.wav dolbybبه شما امکان میدهد حاصل حذف Dolby B را بشنوید و میزان Threshold Gain را در گامهای 2dB برای یافتن بهترین تنظیم تغییر دهید.گزینه --keymap حالت --interactive را روشن میکند و گزینه -V موجب میشود مقدار جدید با هر بار تغییر نمایش داده شود.
هنگامی که یک جلوه را بیش از یکبار در زنجیره دارید، میتوانید با ساختاری مانند effect2.field مهار را تنها به دومین رخداد از effect در زنجیره جلوهها محدود کنید؛ و برای جلوههای دارای چند مرحله، مانند echo.delay، مرحله را میتوان با عبارتی شبیه effect.field1 مشخص کرد.
مدخلهای راهنمای اختصاصی هر جلوه تعیین میکنند که کدام پارامترها به این روش قابل تنظیم هستند؛ گزینه --help-effect به شما میگوید کدامیک از پارامترهای یک جلوه قابلیت نگاشت کلید دارند، و دستور
sox_ng --help-effect all | grep Keymapفهرستی کامل ارائه میدهد؛ توجه داشته باشید که پارامترهای دارای خط تیره مانند gain-out، نگاشت کلیدی بهصورت gain_out دارند. - -m|-M
- بهترتیب معادل --combine mix و --combine merge هستند.
- --magic
- اگر SoX همراه با کتابخانه اختیاری «libmagic» ساخته شده باشد، این گزینه استفاده از آن را برای کمک به تشخیص نوع فایل صوتی فعال میکند.
- --multi-threaded|--single-threaded
- بهطور
پیشفرض، SoX
بهصورت
«تکرشتهای»
(single threaded) کار
میکند؛
اما در صورت
مشخص شدن
گزینه --multi-threaded،
SoX
کانالهای
صوتی را
برای بیشتر
جلوههای
چندکاناله
بهصورت
موازی روی
پردازندههای
چندهستهای
و دارای hyperthreading
پردازش
میکند.
برای بهرهمندی بیشتر از پردازش چندرشتهای ممکن است اندازه بافری بزرگتر از مقدار پیشفرض لازم باشد (مثلاً 131072؛ --buffer را در بالا ببینید)، و مقداردهی متغیر محیطی OMP_WAIT_POLICY=PASSIVE پیش از اجرای SoX، از اشکالی در OpenMP که میتواند در صورت اجرای همزمان چند نمونه از SoX آن را بهشدت کند سازد، جلوگیری میکند.
- --no-clobber
- پیش از
رونویسی یک
فایل موجود
همنام با
نام
مشخصشده
برای فایل
خروجی،
تأییدیه
میخواهد.
رونویسی ناخواسته یک فایل بسیار آسانتر از آن چیزی است که تصور میکنید؛ برای نمونه، اگر تصادفاً وارد کنید:
sox_ng file1 file2 effect1 effect2 ...در حالی که مقصود اصلی شما این بوده است:play_ng file1 file2 effect1 effect2 ...آنگاه بدون این گزینه، file2 بازنویسی و پاک خواهد شد. از این رو، استفاده از این گزینه پیشنهاد میشود و میتوان آن را در متغیر محیطی SOX_OPTS تنظیم کرد (بخش محیط (ENVIRONMENT) را در زیر ببینید)..TP --norm[=dB-level] بهطور خودکار جلوهٔ gain را برای محافظت در برابر بریدهشدگی (clipping) و نرمالسازی صدا فراخوانی میکند. برای نمونه:sox_ng --norm in.au -b 16 out.au rate 44100 dither -sکوتاهنوشتی است برای:sox_ng in.au -b 16 out.au gain -h rate 44100 gain -nh dither -sبهصورت اختیاری، صدا میتواند روی یک سطح مشخص، معمولاً کمتر از 0 dBFS نرمالسازی شود:sox_ng --norm=-3 in.au out.auگزینههای -V، -G و جلوهٔ gain را ببینید. - --play-rate-arg arg
- گزینهٔ کیفیتی را انتخاب میکند که در هنگام پخش صدا و فراخوانی خودکار جلوهٔ rate استفاده شود. این گزینه معمولاً از طریق متغیر محیطی SOX_OPTS تنظیم میشود (بخش محیط (ENVIRONMENT) در ادامه را ببینید) و مقدار پیشفرض آن هنگام پخش، -l (کیفیت پایین اما سریع) است. برای گزینههای جایگزین دیگر، جلوهٔ rate را ببینید.
- --plot gnuplot|octave|off
- اگر روی off
تنظیم نشده
باشد (حالت
پیشفرض در
صورت مشخص
نشدن --plot)، در
حالتی اجرا
میشود که
میتواند
به همراه
برنامهٔ gnuplot
یا برنامهٔ
GNU Octave برای کمک
به انتخاب و
پیکربندی
بسیاری از
جلوههای
مبتنی بر
تابع تبدیل
(transfer function)
استفاده
شود. برای
نخستین
جلوهٔ
دادهشده
که از
برنامهٔ
رسم
انتخابی
پشتیبانی
میکند، SoX
دستوراتی
را برای رسم
تابع تبدیل
جلوه در
خروجی
مینویسد و
بدون
پردازش
واقعی صدا
متوقف
میشود.
برای نمونه:
sox_ng --plot octave input-file -n highpass 1320 > highpass.plt octave highpass.plt
- -q, --no-show-progress
- اجرا در حالت بیصدا (quiet) در شرایطی که SoX در حالت عادی اینگونه عمل نمیکرد. این گزینه برعکس گزینهٔ -S است. برای فرونشانی پیامهای خطا و هشدار، گزینهٔ -V در ادامه را ببینید.
- -R
- اجرا در حالت «تکرارپذیر» (repeatable). هنگامی که این گزینه داده شود، SoX در صورت پشتیبانی قالب از توضیحات، یک برچسب زمان را در فایل خروجی میگنجاند و مولدهای اعداد شبهتصادفی را، همانگونه که توسط dither استفاده میشود، با آن عدد مقداردهی اولیه (seed) میکند؛ این کار تضمین میکند که فراخوانیهای پیاپی SoX با ورودیها و پارامترهای یکسان، خروجی یکسانی تولید کنند.
- --replay-gain track|album|off
- مشخص میکند که آیا تنظیم replay gain روی فایلهای ورودی اعمال شود یا خیر. مقدار پیشفرض off برای sox_ng و rec_ng، مقدار album برای play_ng هنگامی که (دستکم) دو فایل ورودی نخست دارای برچسبهای یکسان نام هنرمند و آلبوم باشند، و در غیر این صورت track برای play_ng است.
- -S, --show-progress
- نمایش
اطلاعات
قالب/سرایند
فایل
ورودی،
پیشرفت
پردازش
بهصورت
درصدی از
فایل(های)
ورودی،
زمان
سپریشده،
زمان
باقیمانده
(در صورت
مشخص بودن،
داخل قلاب)
و تعداد
نمونههای
نوشتهشده
در فایل
خروجی.
همچنین یک
سنجشگر
سطح اوج (peak level meter)
و نشانهای
از رخ دادن
یا ندادن
بریدهشدگی
(clipping) نمایش
داده
میشود.
سنجشگر
سطح اوج تا
دو کانال را
نشان
میدهد و
برای صدای
دیجیتال
بهصورت
زیر
کالیبره
شده است:
dB FSD نمایش dB FSD نمایش -25 - -11 ==== -23 = -9 ====- -21 =- -7 ===== -19 == -5 =====- -17 ==- -3 ====== -15 === -1 =====! -13 ===- اگر مقدار headroom کمتر از 6dB باشد، مقدار اوج نگهداشتهشدهٔ سهثانیهایِ آن بر حسب دسیبل در سمت راست سنجشگر نمایش داده میشود.
این گزینه هنگام استفاده از SoX برای پخش یا ضبط صدا بهطور پیشفرض فعال است اما میتوان آن را با -q غیرفعال کرد.
- -T
- معادل --combine multiply است.
- --temp directory
- مشخص میکند که هرگونه فایل موقت باید در دایرکتوری دادهشده ایجاد شود. این گزینه در صورت وجود مشکلات دسترسی یا کمبود فضای خالی در مکان پیشفرض میتواند مفید باشد. در این حالت، استفاده از «--temp .» (برای استفاده از دایرکتوری جاری) اغلب راهحل مناسبی است.
- --version
- شمارهٔ نسخهٔ SoX را نمایش میدهد و خارج میشود.
- -V[level]
- تنظیم سطح
پرگویی (verbosity).
این گزینه
بهویژه
برای دیدن
چگونگی
فراخوانی
جلوههای
خودکار
توسط SoX مفید
است.
برنامهٔ SoX پیامها را بر اساس سطوح پرگویی زیر روی کنسول (stderr) نمایش میدهد:
- 0
- هیچ پیامی نمایش داده نمیشود؛ برای تعیین اینکه آیا خطایی رخ داده است از وضعیت خروج استفاده کنید.
- 1
- تنها پیامهای خطا نمایش داده میشوند. این پیامها در صورتی تولید میشوند که SoX نتواند دستورات درخواستی را به پایان برساند.
- 2
- پیامهای هشدار نیز نمایش داده میشوند. این پیامها در صورتی تولید میشوند که SoX بتواند دستورات درخواستی را کامل کند اما نه دقیقاً بر اساس پارامترهای درخواستشده، یا اگر بریدهشدگی (clipping) رخ دهد. این مقدار پیشفرض است.
- 3
- شرح مراحل پردازش SoX نیز نمایش داده میشود تا دقیقاً ببینید SoX چگونه صدای شما را پردازش میکند.
- ۴ تا ۶
- پیامهایی برای کمک به اشکالزدایی SoX نیز نمایش داده میشوند.
- هر بار تکرار گزینهٔ -V سطح پرگویی را ۱ واحد افزایش میدهد. بهطور جایگزین، میتوان سطح پرگویی را با مشخص کردن مستقیم یک عدد مطلق بلافاصله پس از -V تعیین کرد، برای نمونه -V0 پیامها را بهطور کامل غیرفعال میکند. این گزینهها برای نخستین نام فایل ورودی که پس از آنها در خط فرمان میآید اعمال میشوند.
- --ignore-length
- نادیده گرفتن طول صوت مشخصشده در سرآیند (header) فایل صوتی. در صورت مشخص شدن این گزینه، SoX خواندن صوت را تا رسیدن به انتهای فایل ورودی ادامه میدهد.
- -v, --volume factor
- این گزینه
که برای
استفاده
هنگام
ترکیب
چندین فایل
ورودی در
نظر گرفته
شده است،
حجم صدای
فایلی را که
پس از آن در
خط فرمان
میآید با
ضریب factor
تنظیم
میکند. این
کار امکان
«متعادلسازی»
آن را نسبت
به سایر
فایلهای
ورودی
فراهم
میسازد.
این یک
تنظیم خطی
(دامنه یا amplitude)
است،
بنابراین
عددی کمتر
از ۱ حجم
صدا را کاهش
داده و عددی
بزرگتر از ۱
آن را
افزایش
میدهد. در
صورت وارد
کردن یک عدد
منفی،
علاوه بر
تنظیم حجم
صدا،
سیگنال
صوتی معکوس
نیز خواهد
شد.
جلوههای صوتی norm، vol و gain، بخش Input File Balancing در بالا و بخش Special Filenames درباره wildcard-filenames را ببینید.
گزینههای قالب فایل ورودی و خروجی (Input & Output File Format Options)
این گزینهها برای فایل ورودی یا خروجیای اعمال میشوند که نام آن بلافاصله پس از این گزینهها در خط فرمان قرار میگیرد، و عمدتاً هنگام کار با قالبهای فاقد سرآیند (headerless) یا هنگام تعیین قالبی برای فایل خروجی که با فایل ورودی متفاوت است، به کار میروند.
- -b bits, --bits bits
- تعیین
تعداد
بیتها
(معروف به
عمق بیت یا
bit-depth یا طول
کلمه) در هر
نمونه
کدگذاریشده.
این گزینه
برای
کدگذاریهای
پیچیده
مانند MP3 یا GSM
کاربرد
ندارد و
برای
کدگذاریهایی
با تعداد
بیت ثابت
مانند A-law، μ-law
و ADPCM نیز
نیازی به آن
نیست.
برای یک فایل ورودی، رایجترین کاربرد این گزینه آگاه کردن SoX از تعداد بیتها در هر نمونه در یک فایل صوتی خام (`raw` یا `headerless`) است. به عنوان مثال:
sox_ng -r 16k -e signed -b 8 input.raw output.wavیک فایل خام (`raw`) خاص را به یک فایل خودتوصیف `WAV` تبدیل میکند.برای یک فایل خروجی، از این گزینه میتوان برای تنظیم اندازه کدگذاری خروجی استفاده کرد. بهطور پیشفرض، در صورتی که نوع فایل خروجی پشتیبانی کند، اندازه کدگذاری خروجی برابر با اندازه کدگذاری ورودی تنظیم میشود. برای مثال:
sox_ng input.cdda -b 24 output.wavصوت دیجیتال خام CD (نوع ۱۶ بیتی، signed-integer) را به یک فایل `WAV` بیست و چهار بیتی (signed-integer) تبدیل میکند. - -c CHANNELS, --channels CHANNELS
- تعداد
کانالهای
صوتی را در
فایل صوتی
تنظیم
میکند. این
مقدار
میتواند
هر عددی
بزرگتر از
صفر باشد.
برای یک فایل ورودی، رایجترین کاربرد این گزینه، اطلاع دادن تعداد کانالها در یک فایل صوتی خام (`raw` یا بدون سرآیند) به SoX است. گهگاه ممکن است استفاده از این گزینه با یک فایل دارای سرآیند برای بازنویسی و لغو مقدار (احتمالاً نادرست) موجود در سرآیند مفید باشد، هرچند این قابلیت تنها در انواع خاصی از فایلها پشتیبانی میشود. برای مثال:
sox_ng -r 48k -e float -b 32 -c 2 input.raw output.wavیک فایل `raw` را به یک فایل خودتوصیف `WAV` تبدیل میکند.play_ng -c 1 music.wavصرفنظر از آنچه در سرآیند فایل ذکر شده، دادههای فایل را متعلق به یک تککانال تفسیر میکند و اگر فایل در واقع دارای دو کانال باشد، با نصف سرعت پخش خواهد شد.برای یک فایل خروجی، این گزینه روشی کوتاه برای تعیین این است که جلوه صوتی channels باید بهمنظور تغییر دادن تعداد کانالهای سیگنال صوتی به مقدار دادهشده (در صورت لزوم) فراخوانی شود. برای نمونه، دو دستور زیر معادل یکدیگرند:
sox_ng input.wav -c 1 output.wav bass -b 24 sox_ng input.wav output.wav bass -b 24 channels 1
اگرچه شکل دوم انعطافپذیرتر است، زیرا امکان چینش دلخواه جلوههای صوتی را فراهم میکند. - -e ENCODING, --encoding ENCODING
- تعیین نوع کدگذاری صوتی؛ این گزینه گاهی برای انواع فایلی که از بیش از یک طرح کدگذاری پشتیبانی میکنند (مانند raw، WAV یا AU) لازم است، اما برای MP3 یا FLAC نیازی به آن نیست. انواع کدگذاری موجود عبارتند از:
- signed-integer
- دادههای PCM ذخیرهشده بهصورت اعداد صحیح علامتدار (متمم دو یا «two's complement»). معمولاً با اندازه کدگذاری ۱۶ یا ۲۴ بیتی استفاده میشود. مقدار ۰ نشاندهنده کمینه توان سیگنال است.
- unsigned-integer
- دادههای PCM ذخیرهشده بهصورت اعداد صحیح بدون علامت. معمولاً با اندازه کدگذاری ۸ بیتی استفاده میشود. مقدار ۰ نشاندهنده بیشینه توان سیگنال است.
- floating-point
- دادههای PCM ذخیرهشده بهصورت اعداد ممیز شناور («حقیقی») با دقت یگانه (۳۲ بیتی) یا دقت دوگانه (۶۴ بیتی) استاندارد IEEE 753. مقدار ۰ نشاندهنده کمینه توان سیگنال است.
- a-law
- استاندارد بینالمللی تلفن برای کدگذاری لگاریتمی به ۸ بیت در هر نمونه. این کدگذاری دارای دقتی تقریباً معادل با PCM سیزده بیتی است و گاهی با ترتیب بیت معکوس کدگذاری میشود (گزینه -X را ببینید).
- u-law/mu-law
- استاندارد تلفن آمریکای شمالی برای کدگذاری لگاریتمی به ۸ بیت در هر نمونه، معروف به μ-law، دقتی تقریباً معادل با PCM چهارده بیتی دارد و گاهی با ترتیب بیت معکوس کدگذاری میشود (گزینه -X را ببینید).
- oki-adpcm
- کدگذاری ۴ بیتی ADPCM متعلق به OKI (معروف به VOX، Dialogic یا Intel) دارای دقتی تقریباً معادل PCM دوازده بیتی است. ADPCM نوعی فشردهسازی صوتی است که مصالحه خوبی میان کیفیت صوت و سرعت کدگذاری/رمزگشایی ایجاد میکند.
- ima-adpcm
- کدگذاری ۴ بیتی ADPCM متعلق به IMA (معروف به DVI) دارای دقتی تقریباً معادل PCM سیزده بیتی است.
- ms-adpcm
- کدگذاری ۴ بیتی ADPCM متعلق به Microsoft دارای دقتی تقریباً معادل PCM چهارده بیتی است.
- gsm-full-rate
- در حال حاضر GSM برای اکثریت تماسهای تلفنی بیسیم دیجیتال جهان به کار میرود. این استاندارد از چندین قالب صوتی با نرخهای بیت متفاوت و کیفیت گفتار مرتبط استفاده میکند. SoX از قالب صوتی اصلی ۱۳ کیلوبیتبرثانیه «Full Rate» متعلق به GSM پشتیبانی میکند.
- نامهای
کدگذاری را
در صورتی که
ابهامی
ایجاد
نکنند
میتوان
بهصورت
مخفف نوشت؛
به عنوان
مثال unsigned-integer
میتواند
بهصورت un
مشخص شود،
اما نه u (به
دلیل ایجاد
ابهام با u-law).
برای یک فایل ورودی، رایجترین کاربرد این گزینه اطلاع دادن نوع کدگذاری یک فایل صوتی خام (`raw` یا فاقد سرآیند) به SoX است (مثالهای -b و -c در بالا را ببینید).
برای یک فایل خروجی، از این گزینه میتوان (احتمالاً همراه با -b) برای تعیین کدگذاری خروجی استفاده کرد. برای مثال:
sox_ng input.cdda -e float output1.wav sox_ng input.cdda -b 64 -e float output2.wav
صوت دیجیتال خام CD (نوع ۱۶ بیتی signed integer) را به ترتیب به فایلهای `WAV` ممیز شناور با دقت یگانه و دقت دوگانه تبدیل میکند.در صورت مشخص نشدن این گزینه، کدگذاری خروجی همانند کدگذاری ورودی خواهد بود، به شرطی که نوع فایل خروجی از آن پشتیبانی کند.
- --no-glob
- مشخص
میکند که
تطبیق
الگوهای
عام یا
گلوبینگ (`globbing`)
روی نام
فایل بعدی
نباید توسط
SoX انجام شود.
برای
نمونه، اگر
دایرکتوری
جاری حاوی
دو فایل
«five-seconds.wav» و «five*.wav»
باشد،
آنگاه
play_ng --no-glob "five*.wav"میتواند تنها برای پخش همان تکفایل «five*.wav» به کار رود. - -r, --rate rate[k]
- نرخ
نمونهبرداری
(sample rate) فایل را
بر حسب هرتز
(یا در صورت
همراه بودن
با k، بر
حسب
کیلوهرتز)
مشخص
میکند.
برای یک فایل ورودی، رایجترین کاربرد این گزینه اطلاع دادن نرخ نمونهبرداری یک فایل صوتی خام (`raw` یا فاقد سرآیند) به SoX است (مثالهای -b و -c در بالا را ببینید). گهگاه ممکن است استفاده از این گزینه با یک فایل دارای سرآیند برای بازنویسی و لغو مقدار موجود در سرآیند مفید باشد، هرچند این قابلیت تنها با انواع خاصی از فایلها پشتیبانی میشود. برای مثال، اگر صدایی با نرخ نمونهبرداری 48k از منبعی ضبط شده باشد که کمی بیش از حد آهسته پخش میشده است، مثلاً 1.5%،
sox_ng -r 48720 input.wav output.wavسرعت را تنها با تغییر سرآیند فایل اصلاح میکند (البته برای راهحل معمولترِ این مسئله، جلوه صوتی speed را ببینید).برای یک فایل خروجی، این گزینه روشی کوتاه برای تعیین این است که جلوه صوتی rate باید بهمنظور تغییر نرخ نمونهبرداری سیگنال صوتی به مقدار دادهشده (در صورت لزوم) فراخوانی شود. برای نمونه، دو دستور زیر معادل یکدیگرند:
sox_ng input.wav -r 48k output.wav bass -b 24 sox_ng input.wav output.wav bass -b 24 rate 48k
اگرچه شکل دوم انعطافپذیرتر است زیرا اجازه میدهد گزینههای rate مشخص شوند و جلوههای صوتی به ترتیب دلخواه قرار گیرند..TP -t, --type FILE-TYPE نوع یک فایل صوتی را مشخص میکند. این گزینه هم برای فایلهای ورودی و هم خروجی معمولاً برای اعلام نوع یک فایل صوتی «بدون سرآیند» به SoX استفاده میشود، در شرایطی که نوع واقعی یا موردنظر را نتوان از پسوند نام فایل تشخیص داد. برای نمونه:another-command | sox_ng -t mp3 - output.wav sox_ng input.wav -t raw output.bin
همچنین میتوان از آن برای بازنویسی نوع ضمنیِ حاصل از پسوند نام فایل ورودی استفاده کرد، اما در صورت بازنویسی با نوعی که دارای سرآیند است، اگر چنین سرآیندی واقعاً وجود نداشته باشد، SoX با یک پیام خطا خارج میشود.همچنین شبهنوعهای فایلی وجود دارند که به SoX اعلام میکنند از یک ماژول قالب مشخص استفاده کند که میتواند بیش از یک نوع فایل صوتی را پشتیبانی نماید، مانند -t sndfile و -t ffmpeg، یا زمانی که یک نوع فایل میتواند توسط چندین ماژول قالب مختلف پردازش شود، مانند فایلهای WAV حاوی دادههای کدگذاریشده با MP3.
علاوه بر این، نوع فایل میتواند برای انتخاب یک درایور دستگاه صوتی خاص جهت ضبط و پخش به کار رود.
برای فهرستی از انواع فایلهای پشتیبانیشده، soxformat_ng(7) را ببینید.
-L, --endian little
-B, --endian big
-x, --endian swap
- این
گزینهها
مشخص
میکنند که
آیا ترتیب
بایت
دادههای
صوتی
بهترتیب
«little endian»، «big endian»
یا برعکس
سیستم
میزبان SoX
باشد. ترتیب
بایت (Endianness)
تنها برای
دادههایی
اعمال
میشود که
بهصورت
ممیز شناور
یا اعداد
صحیح
علامتدار
یا
بدونعلامت
۱۶ بیت یا
بیشتر
کدگذاری
شده باشند.
اغلب لازم
است یکی از
این
گزینهها
برای
فایلهای
بدون
سرآیند
تعیین شود و
گاهی اوقات
برای
فایلهای
خودتوصیفگر
(self-describing) نیز
ضروری است.
یک گزینه
تنظیم
ترتیب بایت
دادهشده
ممکن است
برای فایل
ورودیای
که سرآیند
آن حاوی یک
شناسه مشخص
از ترتیب
بایت است،
یا برای
فایل
خروجیای
که در واقع
یک دستگاه
صوتی است
نادیده
گرفته شود.
نکته: برخلاف سایر مشخصههای قالب، ترتیب دادهها (ترتیب بایت، نیبل و بیت) فایل ورودی بهطور خودکار برای فایل خروجی استفاده نمیشود. برای نمونه، هنگامی که دستور زیر روی یک سیستم little-endian اجرا شود:
sox_ng -B audio.s16 trimmed.s16 trim 2فایل trimmed.s16 بهصورت little-endian ایجاد خواهد شد؛sox_ng -B audio.s16 -B trimmed.s16 trim 2برای حفظ حالت big-endian در فایل خروجی، باید از دستور بالا استفاده شود.از گزینه -V میتوان برای بررسی ترتیبهای انتخابشده استفاده کرد.
- -N, --reverse-nibbles
- مشخص
میکند که
ترتیب
نیبلهای
نمونهها
(یعنی ۲
نیمه یک
بایت) باید
معکوس شود،
که گاهی در
قالبهای
مبتنی بر ADPCM
کاربرد
دارد.
نکته بخش -x در بالا را ببینید.
- -X, --reverse-bits
- مشخص
میکند که
ترتیب
بیتهای
نمونهها
باید معکوس
شود، که
گاهی برای
چند قالب
(عمدتاً
بدون
سرآیند)
مفید است.
نکته بخش -x در بالا را ببینید.
گزینههای قالب فایل خروجی (Output File Format Options)
این گزینهها فقط برای فایلهای خروجی اعمال میشوند و در خط فرمان تنها میتوانند پیش از نام فایل خروجی قرار گیرند.
- --add-comment TEXT
- افزودن یک یادداشت به سرآیند فایل خروجی (در صورت امکان).
- --comment TEXT
- مشخص کردن
متن
یادداشت
برای ذخیره
در سرآیند
فایل خروجی
(در صورت
امکان).
اگر این گزینه (یا --comment-file) داده نشود، SoX یادداشت پیشفرضی بهصورت `Processed by SoX' ارائه میدهد. برای تعیین اینکه هیچ یادداشتی در فایل خروجی ذخیره نشود، از --comment "" استفاده کنید.
- --comment-file FILENAME
- مشخص کردن یک فایل حاوی متن یادداشت برای ذخیره در سرآیند فایل خروجی (در صورت امکان).
- -C, --compression FACTOR
- تنظیم ضریب فشردهسازی برای قالبهای فایل خروجی با فشردهسازی متغیر. اگر این گزینه داده نشود، ضریب فشردهسازی پیشفرض اعمال خواهد شد. ضریب فشردهسازی برای قالبهای مختلف فایل فشرده، بهطور متفاوتی تفسیر میشود؛ برای جزئیات بیشتر، شرح قالبهای فایلی را که از این گزینه استفاده میکنند در soxformat_ng(7) ببینید..SH "جلوهها (EFFECTS)" علاوه بر تبدیل، پخش و ضبط فایلهای صوتی، SoX میتواند برای فراخوانی چندین جلوه صوتی نیز به کار رود. با مشخص کردن چندین جلوه یکی پس از دیگری در انتهای خط فرمان SoX، میتوان آنها را اعمال کرده و یک «زنجیره جلوهها» (effects chain) تشکیل داد. برای دیدن فهرستی از جلوههای پشتیبانیشده، soxeffect_ng(7) را ببینید.
محیط (ENVIRONMENT)
SoX به متغیرهای محیط زیر واکنش نشان میدهد. برای تنظیم آنها در Unix با بیشتر پوستهها، برای نمونه استفاده کنید از:
AUDIODRIVER=oss export AUDIODRIVER play_ng ...با csh یونیکس:
setenv AUDIODRIVER oss
یا در Microsoft Windows:
set AUDIODRIVER=waveaudio
رابط
گرافیکی MS-Windows:
از طریق Control Panel : System :
Advanced : Environment Variables
رابط گرافیکی Mac OS X: به سند Technical Q&A QA1067 شرکت Apple مراجعه کنید.
- AUDIODRIVER
- در برخی
سامانهها،
SoX ممکن است
بیش از یک
نوع
راهانداز
صوتی داشته
باشد،
مانند ALSA و OSS
یا SUNAU و AO، و
همچنین
میتوانند
بیش از یک
دستگاه
صوتی (معروف
به «کارت
صدا») داشته
باشند. اگر
بیش از یک
راهانداز
صوتی درون SoX
ساخته شده
باشد و
راهانداز
پیشفرضی
که توسط SoX
هنگام ضبط
یا پخش
انتخاب
میشود،
گزینهٔ مد
نظر نباشد،
میتوان از
متغیر محیط
AUDIODRIVER برای
لغو
پیشفرض
استفاده
کرد. برای
نمونه، در
سامانههای
Unix:
AUDIODRIVER=oss export AUDIODRIVER play_ng ...
اگر این متغیر تنظیم نشده باشد، SoX به ترتیب اولویت تلاش میکند از coreaudio، pulseaudio، alsa، waveaudio، sndio، oss، sunau و ao استفاده کند. برای جزئیات بیشتر درباره این موارد، مدخلهای مربوط به آنها را در soxformat_ng(7) ببینید. - AUDIODEV
- دستگاه
صوتی
پیشفرض را
لغو
میکند،
برای نمونه:
AUDIODEV=/dev/dsp2 export AUDIODEV play_ng ... sox_ng ... -t oss
یاAUDIODEV=hw:soundwave,1,2 export AUDIODEV play_ng ... sox_ng ... -t alsa
اگر AUDIODEV تنظیم نشده باشد و راهانداز صوتی oss باشد، SoX به متغیر محیط استاندارد OSS_AUDIODEV نیز پاسخ میدهد. - LADSPA_PATH
- فهرستی از دایرکتوریها که با دونقطه از یکدیگر جدا شدهاند تا برای افزونههای LADSPA در آنها جستجو شود. مقدار پیشفرض به نحوهٔ ساخت SoX بستگی دارد، اما در Unix مقدار پیشفرض /usr/lib/ladspa، و در MacOS/X مقدار آن /Library/Audio/Plug-Ins/LADSPA است. ویندوز «مکان معمولی» برای افزونههای LADSPA ندارد، اما Ardour آنها را در C:\Program Files\Ardour6\lib\ardour6\ladspa یا مسیری مشابه قرار میدهد.
- LD_LIBRARY_PATH
- هنگام جستجو برای کتابخانههای پویایی که بیشتر جلوهها و گردانندههای قالب ممکن است در آنها ذخیره شده باشند (با توجه به نحوهٔ ساخت SoX شما)، پیش از مراجعه به مکان پیشفرض، در این فهرست از دایرکتوریهای جداشده با دونقطه جستجو خواهد شد.
- MIXERDEV
- هنگام پخش یک فایل، از دستگاه میکسر مشخصشده برای کلیدهای کنترل حجم صدای 'v' و 'V' استفاده میکند.
- SOX_OPTS
- مقادیر
پیشفرض
جایگزینی
برای
گزینههای
عمومی SoX
فراهم
میکند.
برای نمونه:
SOX_OPTS="--buffer 20000 --play-rate-arg -hs --temp /mnt/temp" export SOX_OPTS
توجه داشته باشید که تنظیم SOX_OPTS میتواند تغییرات ناخواستهای در رفتار اسکریپتها یا برنامههای دیگری که SoX را فراخوانی میکنند ایجاد کند. شاید بهترین کاربرد SOX_OPTS برای مواردی باشد که محیط اجرای SoX را بازتاب میدهند، و فعالسازی گزینههایی مانند --no-clobber به صورت پیشفرض ممکن است با یک نام مستعار پوسته (alias) بهتر انجام شود؛ چرا که این کار بر عملکرد SoX در اسکریپتها یا هنگام استفاده توسط برنامههای دیگر تأثیری نخواهد گذاشت.یک راه برای اطمینان از اینکه اسکریپتها و برنامهها تحت تأثیر SOX_OPTS قرار نمیگیرند، پاک کردن SOX_OPTS در ابتدای اسکریپت است، اما این کار مزیت همراه داشتن مقادیر پیشفرض سراسری سامانه توسط SOX_OPTS را از بین میبرد.
- TEMP و TMP
- در ویندوز،
تابع tmpfile()
معیوب است -
این تابع
فایل را به
جای یک
دایرکتوری
موقت معتبر
در
دایرکتوری
ریشهٔ
درایو جاری
ایجاد
میکند -
اما اگر TEMP
یا TMP تنظیم
شده باشند،
فایلها در
دایرکتوری
مشخصشده،
و در غیر
این صورت در
دایرکتوری
جاری ایجاد
میشوند.
برای اجبار
به استفاده
از tmpfile()، از --temp
استفاده
کنید.
به عنوان راه جایگزین، و در Unix، از --temp استفاده کنید (بخش گزینههای عمومی در بالا را ببینید)..SH "وضعیت خروج (EXIT STATUS)" SoX در صورتی که خطایی رخ ندهد با 0، در صورت وجود مشکل در پارامترهای خط فرمان با 1، یا در صورت وقوع خطا حین پردازش صوتی با 2 خارج میشود.
گزارش باگها (BUGS)
لطفاً هرگونه باگ یافتشده در این نسخه از SoX را به فهرست پستی <sox-ng@groups.io> گزارش دهید.
ارجاع (CITATION)
برای ارجاع به SoX در نشریات و مقالات لطفاً از این مرجع استفاده کنید:
Lance Norskog, Chris Bagwell et al. (2015). SoX: Sound eXchange, the Swiss Army knife of audio manipulation. URL http://sox.sourceforge.netیک مدخل BibTeX برای کاربران SoX عبارت است از:
@manual{SoX2015, title = "SoX: Sound eXchange, the Swiss Army knife of audio manipulation", author = "Norskog, Lance and Bagwell, Chris and others", edition = "14.4.2", year = 2015, url = "http://sox.sourceforge.net", }
همچنین ببینید (SEE ALSO)
soxi_ng(1), soxeffect_ng(7), soxformat_ng(7),
libsox_ng(3), audacity(1), ecasound(1),
ffmpeg(1), gnuplot(1), octave(1),
sndfile-convert(1).
وبسایت sox_ng
در https://codeberg.org/sox_ng/sox_ng
مثالهای
اسکریپتنویسی
SoX در مسیر
scripts/ در کد
منبع SoX.
مجوز (LICENSE)
این برنامه یک نرمافزار آزاد است؛ شما میتوانید آن را تحت شرایط نسخه ۲ از «اجازهنامه عمومی همگانی گنو» (GNU General Public License) که توسط بنیاد نرمافزارهای آزاد منتشر شده است، بازتوزیع کرده و/یا تغییر دهید.
این برنامه به این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به GNU General Public License مراجعه کنید.
نویسندگان (AUTHORS)
Lance Norskog، Chris Bagwell و افراد بسیار دیگری که نام آنها در فایل AUTHORS همراه با کد منبع توزیع شده است.
| December 5, 2024 | SoX |