2015년 8월 18일 화요일

USB Audio

자비스를 만들려면 마이크와 스피커가 있어야 합니다.
그런데 라즈베리 파이에는 이어폰 단자만 있을 뿐 마이크가 없습니다.

이 때문에 많은 사람들이 USB 오디오 를 구입해서 사용하고 있죠.
저도 저렴한 가격에 하나를 구입해서 아래 처럼 세팅 했습니다.

[쇼핑몰에서 구입한 만원짜리 USB Audio ]
마이크는 스탠드 마이크를 사용하고 스피커는 PC 용 스피커를 잠시 파이에게 빌려 줬습니다.
USB 를 꽂으면 바로 동작 하지만 프로그래밍을 하려면 설정이 필요 합니다.

일단 제대로 잡혔는지 확인해 보면 CM108 Audio controller 로 확인 됩니다.
pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0000:0538
Bus 001 Device 005: ID 1241:1603 Belkin Keyboard
Bus 001 Device 006: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller
Bus 001 Device 007: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter
좀 더 자세하게 확인 하려면 aplay 를 사용해서 list up 해 볼 수 있습니다.
pi@raspberrypi ~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
아무 설정을 하지 않고 음악을 재생하면 HDMI TV 에서 소리가 나거나 기본 이어폰 잭에서 소리가 나게 됩니다. 전 raspbian 을 사용하는데 기본 설정이 ALSA 로 되어 있기 때문에 .asoundrc  파일을 만들어 줘서 기본 소리 입/출력을 USB Audio 로 설정 했습니다.

~/.asoundrc
pcm.usb
{
    type hw
    card Device
}
pcm.internal
{
    type hw
    card ALSA
}
pcm.!default
{
    type asym
    playback.pcm
    {
        type plug
        slave.pcm "usb"
    }
    capture.pcm
    {
        type plug
        slave.pcm "usb"
    }
}
ctl.!default
{
    type asym
    playback.pcm
    {
        type plug
        slave.pcm "usb"
    }
    capture.pcm
    {
        type plug
        slave.pcm "usb"
    }
}
그리고 마이크를 활성화 시키기 위해 아래 명령어를 실행 합니다.
$ amixer -c 0 sset Mic Capture cap

참고로 HDMI TV 로 소리가 나가는 것을 Audio Jack 으로 기본값을 바꾸고 싶을 때는 raspi-config 를 통해 아래 처럼 할 수 있습니다.

pi@raspberrypi ~ $ sudo raspi-config



하지만 USB Audio 와는 무관하기 때문에 전 필요 없었습니다.

이렇게 해서 자비스의 귀와 입을 마련 했습니다.

[기능은 갖췄지만 어지러운 선들 때문에 모양새가 좋지 않음]




댓글 없음: