본문 바로가기

분류없음

Google AIY voice kit으로 한국어 Google Assistant 사용하기

https://aiyprojects.withgoogle.com/voice



이번에 Google AIY voice kit을 사용하여 개발을 할 일이 있었다.




집에 구글 홈 미니가 있긴 하지만, 이건 사실 AIY kit 개발을 하기 전에

미리 써보는 용도로 산거라서.




AIY kit 중에는 voice 말고 vision도 있다고 하긴 하는데,

만져보진 않았다. 어차피 둘 다 라즈베리 파이를 기반으로 할 거 같고

Vision kit이라고 해봤자 GPIO 버튼이랑 카메라 모듈이 다 일 것 같기도 하다[각주:1]



사실 기본으로 제공되는 Voice KIT 라이브러리 소스로는 영어로만 작동한다.

(18.02.01 기준)



구글에 Use Voice kit with other language로 검색하면

라즈베리 파이 포럼에 다음과 같은 글이 검색되는데



https://www.raspberrypi.org/forums/viewtopic.php?t=197766

"Google AIY Voice Kit German Language"



낚였다.


해당 내용은 Cloud Speech에서 발음 인식을 어떤 언어로 할 것인지에 대한 설정이고

Google Assistant 자체는 영어로밖에 쓸 수가 없었다.




이걸로 하루종일 내내 씨름한 끝에 해결책을 찾았는데.


https://developers.google.com/assistant/sdk/overview


여러 해결책이 있을 수 있으나 내가 찾은건 같이 동봉된 Google Assistant SDK[각주:2]였다.[각주:3]





https://developers.google.com/assistant/sdk/guides/service/integrate



해당 페이지의 내용을 보면



Authenicate your gRPC connection with OAuth tokens 부분에

다음과 같은 내용이 있다.



즉, Google Assistant를 사용하기 위해선 gRPC 단 까지 내려가서 언어 설정을 해줘야

한다는 이야기가 나온다.


https://github.com/googlesamples/assistant-sdk-python/issues/79#issuecomment-353146674



를 보면 Pushtotalk.py 에서 해당 파트를 사용할 수 있도록 샘플로 미리 구현이 되어있다.



https://github.com/googlesamples/assistant-sdk-python[각주:4]



assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc/ 로 들어가면

pushtotalk.py 예제가 있다.





사용하기 위해선 Credential과 기기 인증이 필요하므로[각주:5]


https://developers.google.com/assistant/sdk/guides/service/python/embed/setup


해당 URL을 따라가 SDK 설치 및, OAUTH client ID 생성, device MODEL 생성까지 진행한다.





1. Audio TEST의 경우, HW를 바꿔주고 나서 테스트를 다 한 후 스피커 및 마이크를 사용하는 프로세스를 다 내려줘야한다.


2. SDK 설치할때, 라즈베리 파이의 경우 gRPCIO 라이브러리 설치할때

메모리가 부족하므로 충분하게 공간을 늘려주고 진행해야한다.

http://kinocoder.tistory.com/10



3. Register the Device Model 파트가 가장 중요한데, 이 부분을 제대로 진행하지 않으면 작동이 안된다.



Googlesamples 라이브러리를 설치하고 난 후,



googlesamples-assistant-devicetool register-model --manufacturer 아무 이름 --product-name 아무 이름2 --type LIGHT --model 하고싶은모델명


식으로 지정한다.



Type의 경우 여러개가 있지만, Light를 하든 뭘 다른걸 하든 굳이 가리지는 않아보여

그냥 LIGHT로 지정했다.



기기 인증까지 끝났다면, 같은 아이디를 사용하는 안드로이드폰으로 로그인하여

Google Assistant로 로그인하면 설정 화면에서 생성한 기기가 보이면 성공한 것이다.[각주:6]




다시 Google Assistant SDK의 예제 폴더로 돌아가서


google-oauthlib-tool --client-secrets 인증키.json위치 --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless

로 인증을 생성한다.




그 후



Python3 pushtotalk.py --project-id gCloud프로젝트명 --device-model-id 위에서 지정한 모델 id --Lang ko-KR


로 실행하면 한국어로 작동하는 Google Assistant를 볼 수 있다.


같은 프로젝트에 Actions on Google로 DIaglogFlow를 연동했다면

"ㅁㅁ와 이야기 하기" 같은 식으로 말 하면 해당 앱과 대화도 가능하다.




제대로 쓰려면 Hotword 기능[각주:7]이나 GPIO버튼과도 연동을 해야하는데

일단 되는것 자체가 그래도 써먹을 방법이 있어보인다.





혹시나 VoiceKit 들고 왜 이거 한국어 안되지? 같은식으로 고생하고

있는 사람이 있으면 이 글이 도움이 됬으면 좋겠다.










  1. voice Kit는 GPIO버튼, 스피커랑 마이크 모듈정도밖에 없다. [본문으로]
  2. 리눅스 전용 LIbrary [본문으로]
  3. 사실 이걸 쓰면 굳이 Voice kit이 아니여도 리눅스이기만 하면 가능하다. [본문으로]
  4. 기존 Voice kit에도 SDK는 깔려있으나 git pull로 업데이트를 꼭 해줘야한다. [본문으로]
  5. 가상으로 Google Home과 같은 인공지능 스피커 기기로 만든다 [본문으로]
  6. 영어 외에 정식으로 Google Assistant를 지원하는 언어의 경우, 여기에서 언어를 바꿔주면 바로 해당 언어로 작동한다고 한다. 한국어는 물론 해당없다. [본문으로]
  7. 그놈의 "Hey google" [본문으로]