Raspberry Pi3 Model B와 ReSpeaker2-Mics Pi HAT에서 구글 어시스턴트 SDK 활용

소개


2017년 10월 구글은 일본어에 대응하는 스마트 스피커 "Google Home"Google Home Mini"를 발매했고, 2017년 3월에는 잡지"The MagPi"제57호의 부록으로 배포돼 큰 화제를 모았다AIY Projects voice kit.구글 어시스턴트를 사용할 수 있는 하드웨어 설비가 끊임없이 증가하고 있다.
이 자리에서 라즈베리파이와 ReSpeaker 2-Mics Pi HAT를 조합해 구글 Assistant SDK를 사용하는 방법을 소개할 예정이다.ReSpeaker2-Mics Pi HAT는 Seeed Studio가 개발한 Raspberry Pi용 확장판으로 가격이 9.90달러까지 낮지만 마이크 2개와 스피커 출력, 이어폰 출력, Grove 연결기 2개, 버튼 1개와 RGB LED 3개가 장착되어 있다.ReSpeaker2-Mics Pi HAT는 확장성이 뛰어나고 컴팩트한 스마트 스피커를 제공합니다.

준비


필요한 물건


  • Raspberry Pi 3 Model B: 1개
  • 마이크로 USB 카드: 1개
  • 마이크로 USB 케이블: 1개
  • USB 전원 어댑터: 1개

  • ReSpeaker 2-Mics Pi HAT: 1개(Mouser의713-107100001
  • 스피커(8Ω, 1W): 1개예제
  • JST PH 커넥터 케이블: 1개예제
  • 설치하다


  • 공식 사이트 Raspbian 이미지 파일 다운로드(예: RASPBIAN STRETCH WITH DESKTOP September 2017)

  • 다운로드Etcher 압축 해제
  • Etcher를 시작하고 화면 오른쪽에 있는 톱니바퀴 아이콘을 클릭하여 "Auto-unmount on success" 선택을 취소합니다.
  • 화면 오른쪽에 있는 Back 을 클릭하여 이 화면으로 돌아가 다운로드한 이미지 파일과 SD 카드 리더기Flash! 클릭追加 이미지 쓰기
  • 쓰기 및 검증이 완료될 때까지 10분 정도 대기
  • 웹 브라우저에서 액세스https://mascii.github.io/wpa-supplicant-conf-tool/, 액세스할 Wi-Fi 액세스 포인트에 대한 정보를 입력하고 wpa_supplicant.conf作成 버튼을 눌러 ssh.txt作成arp -an | grep b8:27:eb
  • 다운로드한 두 파일을 쓰기 완료된 마이크로 SD 카드의 최상위층(/boot/)으로 복사하여 마이크로 SD 카드를 마운트 해제하고 꺼내기
  • 꺼낸 마이크로 SD 카드를 Raspberry Pi 보드에 꽂고 마이크로 USB 단자에 전원을 연결하고 시작
  • 터미널에 입력ssh [email protected]하여 Raspberry Pi에서 IP 주소를 찾습니다(예: 192.168.1.123)
  • 터미널에서 입력pi, 사용자raspberry에게 초기 설정된 비밀번호SSH is enabled and the default password for the 'pi' user has not been changed. This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.를 입력하고 로그인
  • passwd(SSH를 사용합니다. "pi"사용자의 기본 암호를 변경하지 않았습니다. 보안 위험입니다. 새 암호를 설정하려면 "pi"사용자로 로그인하고 "passwd"를 입력하십시오.)따라서 경고 입력sudo apt-get update 명령에 따라 암호를 초기값에서 기타
  • 로 변경합니다.
  • sudo apt-get upgrade 계속 실행sudo raspi-config 최신 버전으로 업데이트
  • Raspberry Pi Software Configuration Tool 시작4 Localisation Options, 선택I2 Change Timezone > Asia > Tokyo > exit, 키를 눌러 도구를 종료
  • ReSpeaker2-Mics Pi HAT 설정


    우선, ReSpeaker2-Mics Pi HAT의 코딩기 칩'WM8960'을 사용할 수 있도록 코어를 재구성하고 다시 시작합니다.
    $ git clone https://github.com/respeaker/seeed-voicecard.git
    $ cd seeed-voicecard
    $ sudo ./install.sh 2mic
    $ sudo reboot
    
    재부팅 후 aplay -larecord -l 재생 및 녹음이 각각 추가되었는지 확인합니다.
    재생에 해당하는 하드웨어 장치 목록 내보내기
    $ 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: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    
    출력과 녹음에 대응하는 하드웨어 장치의 목록
    $ arecord -l
    **** List of CAPTURE Hardware Devices ****
    card 1: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    
    확인 후 seeed2micvoicec 에서 seeed2micvoicec 를 실행하여 /home/pi/ 을 기본 입출력 장치로 사용하고 다음 내용을 입력합니다.
    /home/pi/.asoundrc
    pcm.!default {
      type asym
      capture.pcm "mic"
      playback.pcm "speaker"
    }
    pcm.mic {
      type plug
      slave {
        pcm "hw:1,0"
      }
    }
    pcm.speaker {
      type plug
      slave {
        pcm "hw:1,0"
      }
    }
    
    nano .asoundrc 설정을 완료한 후 구글 Assistant SDK 사이트에서 설명한 Configure and Test the Audio 단계 1에서 설명한 테스트를 순서대로 수행한다.
    스피커에서 사운드 재생 가능 여부 확인
    $ speaker-test -t wav
    
    speaker-test 1.1.3
    
    Playback device is default
    Stream parameters are 48000Hz, S16_LE, 1 channels
    WAV file(s)
    Rate set to 48000Hz (requested 48000Hz)
    Buffer size range from 128 to 131072
    Period size range from 64 to 65536
    Using max buffer size 131072
    Periods = 4
    was set period_size = 32768
    was set buffer_size = 131072
     0 - Front Left
    Time per period = 0.032640
    
    마이크에서 소리를 녹음해서 스피커에서 재생할 수 있는지 확인하다
    $ arecord --format=S16_LE --duration=5 --rate=16000 --file-type=raw out.raw
    Recording raw data 'out.raw' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
    $ aplay --format=S16_LE --rate=16000 out.raw
    Playing raw data 'out.raw' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
    
    이제 ReSpeaker2-Mics Pi HAT의 사운드 입력과 출력을 동작으로 확인했습니다. /home/pi/.asoundrc 명령을 사용하여 AlsaMixer를 시작하고 alsamixer 키를 눌러 사운드 카드를 선택하여 볼륨을 적당히 변경하십시오.



    이상 ReSpeaker2-Mics Pi HAT의 설정과 동작 확인이 모두 완료되었기 때문에 Google Assistant Library의 설정과 동작 확인에 들어갑니다.

    Google Assistant Library 설정 및 동작 확인


  • Configure a Developer Project and Account Settings의 설명에 따라 프로젝트를 만들고 이 프로젝트에 대해 구글 Assistant API를 사용하며 OAuth Client ID
  • 를 만들고 다운로드합니다
  • 작성된F6파일을RaspberryPi에 업로드한client_secret_<client-id>.json(예: ~/Downloads에 다운로드된파일을192.168.1.1.123의RaspberryPi/home/pi/에 업로드한경우

  • Activity controls 페이지에서 자신의 구글 계정의 활동 제어를 확인하고, 확인웹 및 응용 프로그램 활동, 장치 정보(터미널 정보), 음성 활동 이 3개의 유효(파란색)

  • Download the Library and Run the Sample에서 설명한 절차에 따라 Python의 가상 환경을 준비하고 구글 Assistant Library
  • 를 설치합니다

  • 실행scp ~/Downloads/client_secret_<client-id>.json [email protected]:/home/pi/ 동작 확인
  • 인용하다

  • INSTALLING OPERATING SYSTEM IMAGES
  • SSH (SECURE SHELL)
  • SETTING WIFI UP VIA THE COMMAND LINE
  • microSD로 Raspberry Pi의 무선 LAN 설정
  • microSD로 라즈베리파이의 무선 LAN을 간단하게 설정하는 도구를 만들었습니다.
  • ReSpeaker 2-Mics Pi HAT
  • ReSpeaker2-Mics Pi HAT의 코딩기 칩 "WM8960"은 8Ω 부하의 1W를 지원하기 때문에 이것과 일치하는 것을 선택합니다. 
    google-assistant-demo는 Raspberry Pi Foundation의 공급업체 ID이므로 b8:27:eb의 출력에서 해당 ID가 포함된 줄만 추출하여 동일한 네트워크에 연결된 모든 장치에서 Raspberry Pi 보드의 IP 주소만 추출할 수 있습니다.여러 개의 보드를 연결하면 순서대로 연결하여 혼란을 피할 수 있습니다. 

    좋은 웹페이지 즐겨찾기