2016년 2월 1일 월요일

Raspberry Pi에서 소리 입력 및 녹음하기

Raspberry Pi는 소리를 출력할 수 있지만, 아날로그 마이크를 연결해서 소리를 녹음할 수 없다. 그래서 ① 마이크가 내장된 USB 카메라를 사용하거나,  ② USB 사운드카드에 마이크를 연결한다. 내가 선택한 것은 ③ USB 동글 형태의, 사운드카드와 마이크 일체형(?)으로, "USB Microphone" 비슷한 이름이 붙은 물건이다. eBay에서 1.65 달러에 구입했다.

http://www.ebay.com/itm/231668535198?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

USB 마이크


구성 및 테스트

  1. USB 마이크를 Pi에 꽂은 후, Pi에 전원을 넣는다.

  2. USB 오디오 녹음장치를 찾아본다.

    $ arecord -l
    **** List of CAPTURE Hardware Devices ****
    card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
      Subdevices: 1/1
      Subdevice #0: subdevice #0

    위에서는 card 번호가 1, device 번호가 0이다.

  3. 녹음해본다. 앞에서 알아낸 번호를 -D hw: 인자에 써준다.

    $ arecord -D hw:1,0 -f S16_LE -d 5 -r 44100 test.wav
    Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono

    만약 장치(-D 옵션)를 올바로 지정하지 않으면 다음과 같은 오류가 발생한다.

    arecord: main:682: audio open error: No such file or directory

    비트율(-r 옵션)을 생략하거나 부적당한 값을 지정하면 경고가 발생할 수 있다. 'got = '에 표시된 값으로 바꿔서 다시 녹음해본다.

    Warning: rate is not accurate (requested = 8000Hz, got = 44100Hz)
                    please, try the plug plugin

  4. 녹음된 파일을 재생해본다.

    $ aplay test.wav
    Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono

  5. 음량을 조절하려면 alsamixer를 실행한다. 처음 보이는 화면은 재생 음량이고, 탭을 한 번 누르면 녹음 음량이 보인다. 이때, <F6> 키를 누르고 사운드카드를 선택한 다음, 위아래 화살표 키로 음량을 조절한다. 스페이스 바를 눌러 "CAPTURE"라는 빨간 글씨가 보이도록 해야한다. <esc> 키로 종료한다.
    설정 값을 저장해두하려면 sudo alsactl store를 실행한다.

alsamixer

Raspberry Pi에서 MP3 오디오 재생하는 방법은 공식 문서(번역)를 참조.

참고

댓글 3개:

  1. wav파일이 너무 많이 생깁니다 ctrl^c키로 멈추면 안되는 건가요?

    답글삭제
  2. 컨트롤 Z로 중지하셔야할것 같습니다

    답글삭제
  3. 작성자가 댓글을 삭제했습니다.

    답글삭제