[라즈베리파이 프로젝트] 음성인식(Speech Recognition) 맛보기 - 2.2 구글 어시스턴트 데모 실행하기

메카 2017-11-20 (월) 23:06 1년전 4716  


 

라즈베리파이 프로젝트

 음성인식(Speech Recognition) 맛보기 - 2.2 구글 어시스턴트 데모 실행하기




  안녕하세요. 메카솔루션 알도입니다.

  이번 주에는 라즈베리파이를 이용한 간단한 음성 인식 DIY를 진행해보고자 합니다. 실제 음성 인식 시스템을 바닥부터 만드려면 다양하고 방대한 음성 데이터와 머신 러닝 능력을 갖춘 개발자를 갈아 넣으면(ㅠㅠ) 됩니다. 다행히도 구글과 아마존 같은 대기업에서 이미 편리한 솔루션을 만들어서 비교적 사용하기 편하게 제공하고 있습니다. 먼저 대표적인 음성인식 솔루션으로는 구글의 구글 어시스턴트(Google Assistant)와 스피치(Speech API) 아마존의 알렉사(Alexa)가 있습니다. 셋 다 Python SDK 형태로 제공되기 때문에 처음 데모를 동작시키는 것만 성공한다면 Python만 할 줄 알면 누구나 쉽게 자신만의 음성 인식 장치/프로그램을 만들 수 있습니다


  어시스턴트와 알렉사는 영어 밖에 안되지만 무료이며, 스피치는 110개 언어를 지원하지만 현재 12개월만 무료입니다. 단순히 라이브러리만 다운로드 받는 것이 아니라, 다운로드 받은 라이브러리를 구글이나 아마존 계정을 통해야 하기 때문에 설치과정이 복잡하고 어려울 수 있습니다. 그래도 한번 성공하면, 보다 다양한 프로젝트를 할 수 있으니 인내심을 갖고 도전해보시기 바랍니다. 저도 최대한 쉽게, 많은 그림을 넣어서 정리해보겠습니다.


 


 

     라이브러리 설치 및 계정 설정하기


  이전 포스트에서는 마이크와 스피커 설정하는 방법과

  구글 계정 설정하는 방법을 알아보았습니다.


  앞선 포스트에서 말씀드렸듯이 음성인식 프로젝트의 난관 중 하나가 단순히 라이브러리를 다운로드 받아서 설치하면 되는 것이 아니라 설치한 라이브러리를 구글 계정에 연결하여야 합니다. 알렉사의 경우도 마찬가지입니다. 먼저 구글 계정을 만들어야 하는데, 다들 있으실 거라 생각하고 생략하도록 하겠습니다.

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


  라즈베리파이에서 Chromium으로 위 링크에 접속하여 튜토리얼 페이지로 이동합니다.



1. 파이썬 가상 환경 설정하기

  아래와 같이 Download the Library and Run the Sample 페이지로 갑니다.


  페이지에서 소개하는 방식대로 터미널에서 명령을 입력하면 됩니다. 파이썬3.x와 파이썬2.x 버전이 따로 있는데, 저는 2.x에 나오는 방법으로 진행해보겠습니다. 다음 명령을 순서대로 입력합니


 $ sudo apt-get update

 $ sudo apt-get install python-dev python-virtualenv

 $ virtualenv env --no-site-packages

 $ env/bin/python -m pip install --upgrade pip setuptools

 $ source env/bin/activate


 기본적으로 업데이트를 하고 관련 라이브러리를 설치하는 과정입니다. 눈여겨 볼 부분은 마지막 줄에서 source env/bin/activate 명령으로 통해 가상 환경(Virtual Environment)로 들어가서 작업을 하게 됩니다. 가상 환경은 특정 작업을 전체 환경과 분리를 함으로써, 서로 영향을 받지 않게 하기 때문에 문제가 발생했을 때, 전체 환경에 손댈 필요 없이 가상 환경만 제거하면 된다는 점입니다. 가상환경에 들어가면 터미널 좌측에 (env)가 붙게 됩니다.


2. 라이브러리 설치 및 계정 설정

  이제 가상 환경에 라이브러리를 설치하고 계정을 설정해보겠습니다. 아래 명령을 통해 구글 어시스턴트 라이브러리를 설치합니다.



 (env) $ python -m pip install --upgrade google-assistant-library


  설치가 완료되었으면 아래 명령을 통해  권한 허가 툴을 설치합니다.


 (env) $ python -m pip install --upgrade google-auth-oauthlib[tool]


  다음 명령을 통해 권한을 인가합니다.


 (env) $ google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless


  핑크색 부분은 개인에 따라 다를 수 있는데, 과정이 다소 어려울 수 있으므로 캡쳐를 통해 설명드리겠습니다. 먼저 이전 포스트 대로 /home/pi 디렉토리 안에 클라이언트 보안 JSON 파일이 있다는 가정 하에 진행하겠습니다. 그렇지 않다면 이전 포스트를 참조하시기 바랍니다.

  아래와 같이 /home/pi/clie 정도까지 입력하고 키보드의 탭(Q 왼쪽 버튼)을 누르면 파일 이름의 나머지 부분이 자동 완성됩니다.




  자동 완성이 된 후 나버지 부분을 채워줍니다. 좀 긴 명령이지만 한 줄에 입력해야 합니다.



  명령을 실행하면 다음과 같이 긴 URL이 나옵니다. 아래와 같이 복사합니다.




  브라우저로 넘어가서 주소에 붙여넣기를 합니다.
 


  계정을 확인한 후 클릭합니다.



  허용을 누릅니다.



  아래와 같이 코드가 나오는데 드래그 해서 선택한 후 복사를 합니다.



  아래와 같이 Enter the authorization code에 붙여넣기를 합니다.



 


  이제 모든 설치와 설정이 완료되었습니다. 다음 명령어를 통해 구글 어시스턴트를 실행시킵니다.


 (env) $ google-assistant-demo


  만약 나중에 다시 실행하고자 할 때는 다음과 같이 가상환경을 먼저 활성화 시킨 후 실행해야 합니다.


 $ source env/bin/activate

 (env) $ google-assistant-demo


  다음과 같은 메세지가 뜨면 "Ok Google" 또는 "Hey Google"을 말하고, 질문을 하면 아래와 같이 음성을 텍스트로 변환한 것을 터미널에 출력해주고, 음성으로 답변을 해줍니다.





  이번 포스트는 여기까지 하고, 다음 포스트에서 SDK를 이용해 자신 만의 음성인식 시스템을 개발하는 방법을 알아보겠습니다.


어떠캄 2018-01-30 (화) 18:06 10개월전
안녕하세요! 음성인식을 하려는 학생입니다 다름이 아니라 오류가 떠서 질문좀 드려도 될까요?
(env) $ google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
이 구문을 입력할 때
Traceback (most recent call last):

  File "/home/pi/env/bin/google-oauthlib-tool", line 11, in <module>

    sys.exit(main())

  File "/home/pi/env/local/lib/python3.5/site-packages/click/core.py", line 722, in __call__

    return self.main(*args, **kwargs)

  File "/home/pi/env/local/lib/python3.5/site-packages/click/core.py", line 697, in main

    rv = self.invoke(ctx)

  File "/home/pi/env/local/lib/python3.5/site-packages/click/core.py", line 895, in invoke

    return ctx.invoke(self.callback, **ctx.params)

  File "/home/pi/env/local/lib/python3.5/site-packages/click/core.py", line 535, in invoke

    return callback(*args, **kwargs)

  File "/home/pi/env/local/lib/python3.5/site-packages/google_auth_oauthlib/tool/__main__.py", line 100, in main

    scopes=scope

  File "/home/pi/env/local/lib/python3.5/site-packages/google_auth_oauthlib/flow.py", line 174, in from_client_secrets_file

    return cls.from_client_config(client_config, scopes=scopes, **kwargs)

  File "/home/pi/env/local/lib/python3.5/site-packages/google_auth_oauthlib/flow.py", line 147, in from_client_config

    'Client secrets must be for a web or installed app.')

ValueError: Client secrets must be for a web or installed app.

이런 오류가 나타납니다ㅠㅠ 어떤 해결방안이 있을까요..? 답변해주시면 감사드리겠습니다!
주소
쿠쿠부다스 2018-05-09 (수) 15:08 7개월전
google-assistant-demo를 실행하니... Exception: Missing --device-model-id option이라고 뜨는데 이부분은 어떻게 처리해야하나요??
주소
모바일 버전으로 보기