نویز میکروفون

از ویکی فارسی اوبونتو
پرش به: ناوبری، جستجو
نکته: این صفحه نیازمند بازنویسی است

میکروفون به خوبی در ویندوز کار می کند اما در لینوکس بدون این که سر و صدایی در محیط باشد میکروفون نویز ضبط می کند.

یکی از دلایلی که باعث این مشکل می شود این است که ویندوز به شما اجازه نمی دهد بیشتر از ۶۰٪ توان میکروفون و اسپیکر هایتان استفاده کنید, اما لینوکس محدودیتی برای این کار ندارد. برای کم کردن نویز، حساسیت میکروفون را بین ۲۵٪ تا حداکثر ۶۰٪ از توان میکروفون تنظیم کنید.


اشتباه تنظیم شدن فرکانس های ضبط صدا

دلیل بعدی تنظیم اشتباه فرکانس های کارت صداست. برای مثال ممکن است میکروفون شما حداکثر توان ضبط 44Khs را داشته باشد اما در لینوکس از فرکانس 48khs استفاده شود.

شناسایی کارت های صدا و دستگاه های ورودی

برای حل این مشکل ابتدا با استفاده از دستور زیر دستگاه های ورودی صدا را پیدا کنید:

 $ arecorde --list-devices 

به احتمال زیاد خروجی شبیه به این دریافت خواهید کرد:

**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC270 Analog [ALC270 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

با استفاده از اطلاعات device number و card number می توانیم بفهمیم که میکروفون ما چگونه نام گذاری می شود.

در هنگام کار با تنظیمات صدا، دستگاه های ورودی صدای شما به صورت hw:cn,dn شناخته می شود. cn همان شماره ی کارت صدا، و dn شماره ی دستگاه ضبط کننده ی صداست. برای مثال میکروفون من در مثال بالا به صورت hw:0,0 شناخته می شود.

پیدا کردن توانایی کارت صدا و میکروفون

در مرحله بعدی باید توانایی میکروفون و کارت صدای خود را متوجه بشوید، با استفاده از دستور زیر( هنگام اجرای دستور نباید از میکروفون استفاده کنید):

 $ arecord -f dat -r 60000 -D hw:0,0 -d 5 test.wav 

به جای hw:0,0 نام میکروفون خود را که در بالا توضیح دادم بنویسید. خروجی چیزی شبیه به این خواهد بود:

Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 60000 Hz, Stereo
Warning: rate is not accurate (requested = 60000Hz, got = 48000Hz)
         please, try the plug plugin 

مقداری که جلوی got نوشته شده است حداکثر توان میکروفون و کارت صدای شما را نشان می دهد. برای مثال حداکثر توان کارت صدای من 48khs است.

مشاهده ی حداکثر مقدار تنظیم شده برای دستگاه توسط لینوکس

تنظیمات مربوط به ضبط صدا که در هنگام بوت انجام خواهد شد در فایل daemon.conf نگهداری می شود که در مسیر etc/pulse/ قرار دارد با استفاده از grep می توانیم فقط تنظیمات مربوط به کارت صدا را مشاهده کنیم:

 $ grep "default-sample-rate" /etc/pulse/daemon.conf 
 ; default-sample-rate = 48000 

همانطور که مشاهده می کنید مقدار تنظیم شده با توان کارت صدای من برابر است پس نیاز نیست آن را تغییر دهم. اما ممکن است برای شما این مقدار بیشتر یا کمتر از توان کارت صدای‌تان باشد. برای جایگذین کردن اندازه توان واقعی کارت صدا با مقدار تنظیم شده از می توانیم از ادیتور sed استفاده کنیم.

با دستور زیر (در دستور زیر به حای rs توان واقعی کارت صدا و به جای dfs مقدار تنظیم شده توسط لینوکس را بنویسید):

 $ sudo sed 's/; default-sample-rate = dfs/default-sample-rate = rs/g' -i /etc/pulse/daemon.conf 


در نهایت با دستور زیر تنظیمات ذخیره شده را فعال کنید:

 $ pulseaudio -k && pulseaudio --start