Raspberry pi

Alexa Pi 설치 - Amazon Echo 만들기

[혜안] 2018. 1. 4. 22:34
728x90

Alexa Pi 설치


Alexa Pi 설치를 위해 소스를 git에서 받아와야 한다. git이 없다면 git 설치부터 해야한다.

그리고 그 소스는 /opt 밑에 있어야 한다.

cd /opt

sudo apt-get install git

udo git clone https://github.com/alexa-pi/AlexaPi.git


그리고 설치 실행.

sudo ./AlexaPi/src/scripts/setup.sh 


아래와 같이 몇가지 질문을 한다. 모두 기본값으로 선택하면 된다.

TIP: When there is a value in brackets like [default_value], hit Enter to use it.


Which operating system are you using?

         debian - Debian, Raspbian, Armbian, Ubuntu or other Debian-based

      archlinux - Arch Linux or Arch Linux-based

Your OS [debian]: 

Which device are you using?

           chip - C.H.I.P.

       hyperion - Integrate with Hyperion Ambient Lightning Software

    magicmirror - Integrating with Magic Mirror project (MMM-AlexaPi)

       orangepi - Orange Pi or another H3 based board

          other - other SBCs, desktops, or anything else

    raspberrypi - all Raspberry Pi variants

         serial - an Arduino controled device for example; used for Teddy Ruxpin

Your device [raspberrypi]: 

Do you want AlexaPi to run on boot?

You have these options: 

0 - NO

1 - yes, use systemd (default, RECOMMENDED and awesome)

2 - yes, use a classic init script (for a very old PC or an embedded system)

Which option do you prefer? [1]: 

Creating a user to run AlexaPi under ... done.

gpio:x:997:pi,cmlee

audio:x:29:pi,cmlee,pulse

Created symlink from /etc/systemd/system/default.target.wants/AlexaPi.service to /usr/lib/systemd/system/AlexaPi.service.

Would you like to also install Airplay support (Y/n)? y


설치도중 문제 발생.

sox is already the newest version.

vlc-nox is already the newest version.

Some packages could not be installed. This may mean that you have

requested an impossible situation or if you are using the unstable

distribution that some required packages have not yet been created

or been moved out of Incoming.

The following information may help to resolve the situation:


The following packages have unmet dependencies:

 libpulse-dev : Depends: libpulse0 (= 5.0-13) but 7.1-2~bpo8+1 is to be installed

                Depends: libpulse-mainloop-glib0 (= 5.0-13) but 7.1-2~bpo8+1 is to be installed

E: Unable to correct problems, you have held broken packages.


libpulse 버전이 다르단다.

아래와 같이 재설치하면 해결된다.

sudo apt-get install libpulse-dev -t jessie-backports


다시 설치 실행.

sudo ./AlexaPi/src/scripts/setup.sh

한참을 설치한다.


설치 마지막에 개발자포탈에서 생성한 Alexa Voice Service 의 정보를 묻는다.

개발자포탈에서 확인하여 입력하자.

입력해야하는 정보는 총 5개이다.

Device Type ID

Security Profile Description

Security Profile ID

Client ID

Client Secret


Creating configuration file /etc/opt/AlexaPi/config.yaml ...

Enter your Device Type ID []: raspberrypi

Enter your Security Profile Description []: Alexa Voice Service Sample App Security Profile Description

Enter your Security Profile ID []: amzn1.application.5313616929xxxxxxxxxxxxxxxxxxxxxxxxx

Enter your Client ID []: amzn1.application-oa2-client.d9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Enter your Client Secret []: 6932ef4517505a2f1e1bb10xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


입력을 다 하면, 브라우저를 열고 안내된 주소로 접속 하여 개발자계정으로 로그인한다.

Ready goto http://192.168.0.8:5050 or http://localhost:5050  to begin the auth process

(Press Ctrl-C (or close this window on Windows) to exit this script once authorization is complete)


아래와 같은 성공 메시지가 브라우저 화면에 보이면 모든 설치가 완료된다.


설치화면에서 Ctrl+c를 누르면 설치과정에서 빠져나오고, 서비스를 시작하면 처음으로 Alexa의 Hello 라는 목소리를 듣게된다.

^C

###################################################################################

IMPORTANT NOTICE:

If you use a desktop OS, you HAVE TO set up your system audio so services like AlexaPi can use it too.

See https://github.com/alexa-pi/AlexaPi/wiki/Audio-setup-&-debugging#pulseaudio

###################################################################################


sudo systemctl start AlexaPi.service


일단 여기까지 하면, USB마이크와 3.5파이 잭을 통해 Alexa와 대화할 수 있다.


단,

내 경우에는 Alexa라는 wakeup 명령어를 전혀 인식하지 못하여, pi 라는 단음으로 변경해야만 Alexa가 트리거링되어 응답을 하였다.


명령어 변경은 아래와 같에 Pocketsphinx 의 설정을 변경하면 된다.

 sudo vi /etc/opt/AlexaPi/config.yaml

.............

  pocketsphinx:

    enabled: true

    voice_confirm: true


    phrase: "pi"

    threshold: 1e-10

..............


phrase 가 처음에는 alexa로 되어 있다. 

pi로 변경 후 서비스를 재시작하면 적용된다.

threshold 는 1e-2 부터 1e-40 까지 조정이 가능하다고 메뉴얼에 되어 있으며, 값이 클수록 민감하여 잘 반응하지만 false alarm이 많아진다.


시도해보면 느끼겠지만, pi 라는 단음은 상당히 많은 false alarm을 발생시킨다.


다음 포스팅에 넣겠지만, 결국 snowboy 라는 서드파티 기능으로 대체하였다.

그리고 남은일은 bluetooth speaker를 핸즈프리 모드로 연결하여 대화 할 수 있도록 설정해야 한다.


다음 포스팅에....


728x90