정보를 얻기 위해 실행하는 다른 명령

정보를 얻기 위해 실행하는 다른 명령

마이크 캡처와 관련하여 계속 발생하는 문제를 해결하려고 합니다. 마이크 입력에서 펑하는 소리가 눈에 띄게 들립니다. 어떤 프로그램을 사용하든 마이크를 사용할 때마다 나타납니다. 나는 거의 1년 동안 이 문제를 겪었고, 여러 번 고치려고 노력했습니다. 이는 하드웨어 문제가 아니며 마이크는 Windows 파티션에서 작동합니다(마이크를 사용하는 것은 Windows를 부팅해야 하는 몇 가지 이유 중 하나입니다).

마침내 답변을 찾을 수 있는지 확인하기 위해 게시물을 게시하기로 결정했습니다.

다양한 조사를 했고 주요 출처는Arch 위키의 다음 단계마이크 녹음의 정적 소음을 수정할 수 있습니다.

1단계: 시스템 사운드 카드 찾기

$ arecord -l

**** List of CAPTURE Hardware Devices ****
card 1: Generic [HD-Audio Generic], device 0: ALC1220 Analog [ALC1220 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 2: ALC1220 Alt Analog [ALC1220 Alt Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

2-4단계: 샘플링 속도 찾기 및 설정

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

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 

다음에 샘플 속도를 추가합니다 /etc/pulse/daemon.conf.

default-sample-rate = 48000

그런 다음 펄스 오디오를 다시 시작했습니다.pulseaudio -k && pulseaudio --start

5단계: 테스트 출력

(속도를 지정하지 않고) 실행했지만 arecord -f cd -d 10 test-mic.wav결과는 동일합니다. 저는 샘플 속도를 사용 하여 이러한 단계를 시도했습니다 44100. 38000불행하게도 마이크 터지는 소리는 항상 존재합니다.

또 다른 가능한 이유

$ pacmd list-sources | grep 'name:.*input'

    name: <alsa_input.pci-0000_0b_00.3.analog-stereo>

그래서 나는 그것을 다음에 추가했습니다 /etc/pulse/default.pa:

load-module module-remap-source source_name=record_mono master=alsa_input.pci-0000_0b_00.3.analog-stereo master_channel_map=front-left channel_map=mono
set-default-source record_mono

하지만 별 차이는 없습니다. 더 나쁘다고 말하고 싶으면 지금 해당 행을 주석 처리했습니다.

다른 대사 /etc/pulse/daemon.conf(과거 시도에서 나온 것 같아요)

flat-volumes = no
default-fragments = 3
default-fragment-size-msec = 5
avoid-resampling = yes
deferred-volume-safety-margin-usec = 1

정보를 얻기 위해 실행하는 다른 명령

산출systemctl --user status pulseaudio.service

관련이 없는 것 같은데 왜 활성화되지 않는지 모르겠습니다. 실행하면 pulseaudio -k && pulseaudio --start모든 소리가 끊기고 펄스오디오가 시작될 때까지 기다려야 합니다..

● pulseaudio.service - Sound Service
   Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

산출/sbin/lsmod | grep snd

snd_hda_codec_hdmi     49152  1
snd_hda_codec_realtek   102400  1
snd_hda_codec_generic    73728  1 snd_hda_codec_realtek
snd_hda_intel          40960  8
snd_hda_codec         126976  4 snd_hda_intel,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_core           81920  5 snd_hda_intel,snd_hda_codec,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hwdep              20480  1 snd_hda_codec
snd_pcm                98304  5 snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hda_codec_hdmi
snd_seq_midi           16384  0
snd_seq_midi_event     16384  1 snd_seq_midi
snd_rawmidi            32768  1 snd_seq_midi
snd_seq                65536  2 snd_seq_midi_event,snd_seq_midi
snd_seq_device         16384  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              32768  3 snd_seq,snd_pcm
snd                    81920  25 snd_hda_intel,snd_hwdep,snd_seq,snd_hda_codec,snd_timer,snd_rawmidi,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_seq_device,snd_hda_codec_realtek,snd_pcm
soundcore              16384  1 snd

귀하가 제공할 수 있는 도움에 진심으로 감사드립니다. 감사해요.

Linux Mint 19.1 Kernel 4.15.0-20-generic Motherboard: ASUS X470-PRO Microphone: Modmic

업데이트: 새 배포판으로 옮겼는데 답변이 작동하는지 더 이상 확인할 수 없습니다. 의견을 주신 모든 분들께 감사드립니다!

답변1

비슷한 문제를 해결하기 위해 이 Stackexchange 질문을 발견했습니다. 우리의 문제가 동일한 원인으로 인해 발생했다고 100% 확신할 수는 없지만 몇 가지 유사점을 발견했으며 이것이 도움이 되기를 바랍니다.

구체적으로는 마이크를 캡처하려고 하시는 모습을 보았고, 게시물에서도 저처럼 "arecord -f cd"와 "arecord -f dat"를 사용하고 있는 것을 보았습니다.

실제 오디오 커넥터 플러그(3.5mm 유형인 것 같습니다)를 보면 내 마이크가 모노 장치인지 확인할 수 있습니다. 내 플러그에는 고무 링으로 분리된 두 개의 도체가 있습니다. 하나는 차폐용이고 다른 하나는 신호용입니다. Google에서 "3.5mm 모노 플러그"를 검색했을 때 얻은 것과 비슷하지만 "3.5mm 스테레오 플러그"를 검색했을 때 얻은 것과는 다릅니다. .

그러나 arecord에 대한 매뉴얼 페이지를 읽어보면 "cd" 및 "dat" 형식이 모두 스테레오입니다.

          -f cd (16 bit little endian, 44100, stereo) [-f S16_LE -c2 -r44100]
          -f cdr (16 bit big endian, 44100, stereo) [-f S16_BE -c2 -f44100]
          -f dat (16 bit little endian, 48000, stereo) [-f S16_LE -c2 -r4800

그래서 저는 스테레오를 녹음할 때 평균적으로 높은 볼륨의 "노크" 또는 "클릭" 소음이 들리고, 모노(실제로 입력 내용)를 녹음할 때는 Won't라는 소리가 들립니다. 내 테스트 중 하나의 점수 보고서:

michael@sequoia:~$ arecord -f S16_LE -c2 -r44100 /tmp/r1.wav 
Recording WAVE '/tmp/r1.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
^CAborted by signal Interrupt...
michael@sequoia:~$ aplay /tmp/r1.wav 
Playing WAVE '/tmp/r1.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
michael@sequoia:~$ #heard tapping
michael@sequoia:~$ arecord -f S16_LE -c1 -r44100 /tmp/r1.wav 
Recording WAVE '/tmp/r1.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
^CAborted by signal Interrupt...
michael@sequoia:~$ aplay /tmp/r1.wav 
Playing WAVE '/tmp/r1.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
michael@sequoia:~$ #No tapping noise

또한 arecord 매뉴얼 페이지에서 채널 1이 기본 채널이므로 "-c1"이 필요하지 않다는 것을 발견했습니다.

   -c, --channels=#
          The number of channels.  The default is one channel.  Valid val‐
          ues are 1 through 32.

이게 도움이 되길 바란다.

관련 정보