음성인식(Speech Recognition) 맛보기 - 2.2 구글 어시스턴트 데모 실행하기
안녕하세요. 메카솔루션 알도입니다.
이번 주에는 라즈베리파이를 이용한 간단한 음성 인식 DIY를 진행해보고자 합니다. 실제 음성 인식 시스템을 바닥부터 만드려면 다양하고 방대한 음성 데이터와 머신 러닝 능력을 갖춘 개발자를 갈아 넣으면(ㅠㅠ) 됩니다. 다행히도 구글과 아마존 같은 대기업에서 이미 편리한 솔루션을 만들어서 비교적 사용하기 편하게 제공하고 있습니다. 먼저 대표적인 음성인식 솔루션으로는 구글의 구글 어시스턴트(Google Assistant)와 스피치(Speech API) 아마존의 알렉사(Alexa)가 있습니다. 셋 다 Python SDK 형태로 제공되기 때문에 처음 데모를 동작시키는 것만 성공한다면 Python만 할 줄 알면 누구나 쉽게 자신만의 음성 인식 장치/프로그램을 만들 수 있습니다
어시스턴트와 알렉사는 영어 밖에 안되지만 무료이며, 스피치는 110개 언어를 지원하지만 현재 12개월만 무료입니다. 단순히 라이브러리만 다운로드 받는 것이 아니라, 다운로드 받은 라이브러리를 구글이나 아마존 계정을 통해야 하기 때문에 설치과정이 복잡하고 어려울 수 있습니다. 그래도 한번 성공하면, 보다 다양한 프로젝트를 할 수 있으니 인내심을 갖고 도전해보시기 바랍니다. 저도 최대한 쉽게, 많은 그림을 넣어서 정리해보겠습니다.
앞선 포스트에서 말씀드렸듯이 음성인식 프로젝트의 난관 중 하나가 단순히 라이브러리를 다운로드 받아서 설치하면 되는 것이 아니라 설치한 라이브러리를 구글 계정에 연결하여야 합니다. 알렉사의 경우도 마찬가지입니다. 먼저 구글 계정을 만들어야 하는데, 다들 있으실 거라 생각하고 생략하도록 하겠습니다.
기본적으로 업데이트를 하고 관련 라이브러리를 설치하는 과정입니다. 눈여겨 볼 부분은 마지막 줄에서 source env/bin/activate 명령으로 통해 가상 환경(Virtual Environment)로 들어가서 작업을 하게 됩니다. 가상 환경은 특정 작업을 전체 환경과 분리를 함으로써, 서로 영향을 받지 않게 하기 때문에 문제가 발생했을 때, 전체 환경에 손댈 필요 없이 가상 환경만 제거하면 된다는 점입니다. 가상환경에 들어가면 터미널 좌측에 (env)가 붙게 됩니다.
2. 라이브러리 설치 및 계정 설정
이제 가상 환경에 라이브러리를 설치하고 계정을 설정해보겠습니다. 아래 명령을 통해 구글 어시스턴트 라이브러리를 설치합니다.
핑크색 부분은 개인에 따라 다를 수 있는데, 과정이 다소 어려울 수 있으므로 캡쳐를 통해 설명드리겠습니다. 먼저 이전 포스트 대로 /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:066년전
안녕하세요! 음성인식을 하려는 학생입니다 다름이 아니라 오류가 떠서 질문좀 드려도 될까요?
(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