결국 라즈베리파이…ㅠ.ㅠ
몇 주 전부터 아두이노로 스마트미러를 만들겠다고 용트림을 하고 있는데…그게 잘 안된다…아마도 무지의 소치라고
해야 할 듯…아두이노가 내가 원하는대로 쑥쑥 결과를 뽑아줄 것이라 생각한 것이 잘못이었다…ㅠ.ㅠ
이미 이전 글들에서 LCD를 다루는데 있어서의 어려움들은 충분히 토로하였지만 다시 말하자면 다른 것은 다
제쳐두고라도 한글 표현의 문제와 가독성 높은 UI를 구성하는 부분에서의 장벽으로 거의 포기의 지경이 이를 수
밖에 없었다.
때마침 페이스북을 통해 Android Things에 대한 소식을 접하고는 핑계삼아 결국은 라즈베리파이를 구입하고 말았다.
2대를 구입하여 한 대는 Android Things를 테스트하기로 하고 다른 한 대는 스마트미러에 사용하기로 했다.
신세계~
사실 굳이 따로 언급할 것도 없다. 프로그래밍 언어로 치자면 아두이노는 어셈블리고 라즈베리파이는 VB나 델파이 등
4GL 툴이라고 봐야 할 것이다. 라즈베리파이는 그냥 작은 PC이므로 두말하면 입아픈 사실이지만…
라즈베리파이와 함께 구입한 5인치 LCD를 HDMI 케이블로 연결을 하고 라즈비안을 설치하기 시작했다 (라즈비안
설치 등은 참고 자료가 많으니 생략한다). 처음에는 5인치 LCD를 제대로 인식하지 못하여 우선 PC에 연결된
모니터를 이용하여 설치한 후 5인치 LCD에 동봉된 내용대로 설정을 바꾸어주었더니 화면이 정상적으로 나왔다.
아두이노에 LCD를 연결하기 위해 점퍼선 30여개를 작고 틈도 없는 I/O 핀에 꽂았던 것을 생각하면 가히 신세계라
아니할 수 없다.
아두이노는 이랬다...ㅠ.ㅠ
반가워 Alexa
라즈베리파이의 경우 이미 외국의 모 개발자가 만든 스마트 미러 전용 프로그램이 Github에 올라와있다. 하지만
내가 누군가! 남들 가는 길로는 죽어라 가지 않는(그런데 스마트 미러는 뭐하러 만들고 있는지…-.-) 청개구리 아닌가?
그래서 다른 부분들은 추후 개발하기로 하고 우선 “스마트”에 걸맞는 음성 인식 기능부터 찾아보기로 했다.
그리고 가장 처음 눈에 들어온 것이 Google Cloud Speech였다. 하지만 이 Google Cloud Speech는
구글 클라우드 플랫폼에 가입을 해야 사용이 가능한데 가입 과정에 결재 정보를 등록해야 한다. 그래서 살펴보니
Google Cloud Speech는 1달에 60분까지만 무료이고 60분 이후부터는 15초당 $0.006이 부과 되는 서비스였다.
비록 혼자 테스트하는데 그리고 벌여놓은 일들이 많아 자주 만지지도 못하는데 한달에 60분이나 쓸까 싶었으나
아무래도 뭔가 결재가 될 수 있다는 것은 불안 요소가 아닐 수 없다. 그래서 대안을 찾아보았다. 그리고 발견한 것이
Amazon의 음성 서비스 Alexa였다. Alexa도 역시 가입을 해야 하고 인증키를 받는 절차등이 필요하지만 개발을
위해서는 별다른 과금 같은 것은 없었다. 다만 치명적인 문제가 있었는데…한글을 지원 안한다…ㅠ.ㅠ
그래도 일단 음성 인식이라는 것이 어떻게 작동하는지 감이나 잡아보기 위해 Alexa를 써보기로 했다.
설치 과정은 그리 어렵지 않았다. Alexa의 Github에 너무도 상세하게 나와있어 그대로 따라만 하니 정상 작동하는
모습을 볼 수 있었다.
Alexa의 Github : https://github.com/alexa/alexa-avs-sample-app/wiki/Raspberry-Pi
문제 없이 지나가면 섭하지~
그렇다…모든 것이 순조롭기만 하면 삶이 심심하지 않겠는가…-.- 역시나 하나의 장벽을 만나게 되었는데 바로 USB
마이크 문제였다. 나중에 스마트 미러를 만들 때 가급적 부피가 작아야 하기에 검색 끝에 아래 사진과 같은 제품을
골랐다.
일단 USB 포트에 꽂고 작동을 확인해보니 기본적인 작동은 된다. 그런데 영 녹음되는 소리의 크기도 작고 잡음도 많이
섞이고 뭔가 제대로 작동한다는 느낌이 나질 않았다. 급기야 Alexa를 모두 설치한 후 음성 명령 테스트를 하는데 전혀
음성 입력을 인식하지 못했다.
사방팔방으로 라즈비언에서 USB 마이크 인식시키는 방법을 찾아다녔는데 아무리 용을 써도 되지 않았다. 마이크
입력을 맞추니 스피커 출력이 안되고 스피커를 맞추는 마이크 입력이 안되고…나중에 알게 되었지만 설정 파일에서
불필요한 부분을 삭제해주어야 했던 것이다.
우선 첫 번째 수정해야 할 파일은 /usr/share/alsa/alsa.conf
이다. 이 파일의 다음 2줄을 수정한다.
defaults.ctl.card 0
defaults.pcm.card 0
위의 두 줄을 아래와 같이 수정한다.
defaults.ctl.card 1
defaults.pcm.card 1
문제가 되었던 것은 두 번째 파일이다. 파일은 ~/.asoundrc
로 이 파일은 다른 내용은 다 지우고 아래와 같이
남겨놓으면 된다.
pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "hw:0,0"
}
capture.pcm {
type plug
slave.pcm "hw:1,0"
}
}
원래 이 아래 다른 내용들이 더 있었는데 그 내용들을 그대로 둔 채 위의 내용만 수정하니 제대로 적용이 되지 않았다.
모든 내용을 삭제하고 위의 내용만 남겨두니 마이크와 스피커가 모두 정상 동작하였다.
드디어 테스트~
Alexa를 실행한 상태에서의 라즈베리파이 화면은 3개의 콘솔 창과 Alexa Voice Service라는 타이틀이 붙은
음성 컨트롤 창이 떠 있는 상태가 된다. 만일 WakeWordAgent를 사용하지 않는다면 이 Alexa Voice Service
창에서 Listen 버튼을 눌러 명령을 입력하게 된다.
WakeWordAgent란 음성 명령을 입력하기 전에 Alexa에게 준비를 하도록 시키는 역할을 한다. 음성 명령을
내리기 전에 ‘Alexa’와 같이 특정 단어를 부르면 준비가 되었다는 의미의 알람음이 한 번 울리고 그 이후에
명령을 입력하면 되는 것이다.
Alexa가 정상 동작한 후 정작 라즈베리파이는 아이들의 장난감이 되어버렸다. 이미 내 아이폰의 Siri에 맛들인 덕분에
내가 Alexa를 부르는 소리에 유심히 보고 있던 아이들이 앞다퉈 질문을 던진다. 그런데 그 질문이란 것이…
Are You stupid?
뭐 이런거다…-.- 돌아오는 대답이 뭔소린지 모르겠다는 내용인 것으로 봐서는 아직은 Siri가 한 수 위다. 적어도 Siri는
섭섭하다는 표현은 하니까…
드디어 내 차례가 되어 간단하게 몇마디 테스트해본다. 질문은 짧은데 대답은 무지 길다…-.-
다행히 개떡같은 발음도 찰떡같이 알아듣는다. 개떡같은 발음이 부끄럽지만 테스트 동영상을 올려본다.
일단 영어만 알아먹으니 딱히 물어볼 말이 없다…ㅠ.ㅠ 그리고 현재로서는 실질적으로 어떤 액션을 요청할 수 없어
그저 묻고 답하기 수준이지만 최종 목표는 스마트 미러에 필요한 정보를 음성 명령을 통해 화면에 보여주는 것이기에
더 세부적인 내용을 살펴보아야 할 것이다.
정리
우선 생각보다 설치와 실행이 쉽게 되어 다행이었다. 마이크 인식에 애를 먹긴 했지만 그정도는 허용 범위이다.
하지만 아직은 이렇게 Alexa 서비스를 개인 프로젝트에서 어떻게 이용해야 하는지를 잘 모르겠다. 그저 이미
잘 알려진 명령어를 통해 질문하고 답변을 듣는 정도의 테스트만 할 수 있을 뿐…더군다나 앞서 말한 것 처럼 아직
Alexa는 한국어 지원이 되지 않기 때문에 Alexa가 최종 후보는 아니다. 아무래도 구글의 Google Cloud Speech도
테스트를 해보아야겠다.
어떤 측면에서는 스마트 미러를 만드는 과정이 4족보행 로봇을 만들 때보다 더 어려운 것 같다. 그만큼 진행 속도가
더딘 것은 어쩔 수 없다. 음성 명령을 위한 후보자를 결정한 후에나 속도를 좀 낼 수 있을 것 같긴 한데…조금 더
분발해보자!
'Study > 라즈베리파이' 카테고리의 다른 글
Android Things 살펴보기 ~ #4 (0) | 2017.05.14 |
---|---|
라즈베리 파이로 스마트 미러 만들기 (4) | 2017.05.13 |
Android Things 살펴보기 ~ #3 (0) | 2017.04.10 |
Android Things 살펴보기 ~ #2 (2) | 2017.04.01 |
Android Things 살펴보기 ~ #1 (0) | 2017.03.18 |