책 소개
요약
이 책은 구글 안드로이드 범용 애플리케이션 개발을 넘어 사용자들이 큰 관심을 가지고 있는 대화형 음성 인식 애플리케이션 개발을 위한 훌륭한 지침서다. 다중 언어와 다중 모달 다이얼로그를 이용해서 사용자의 의도를 파악하고 지속적인 대화를 제공할 수 있는 가상 개인비서 앱을 만들고 싶다면 이 책이 바로 그 시작점이 될 것이다.
이 책에서 다루는 내용
이 책은 독자가 기초적인 기술 기반으로 좀 더 진보되고 매력적인 애플리케이션을 개발할 수 있도록, 알기 쉬운 단계별 예제들을 다양하게 제공하는 실무 가이드다. 안드로이드 단말에서 즉시 사용할 수 있는 유용한 음성 인식 애플리케이션을 개발하는 방법을 배울 수 있다. 이 책에서는 음성 인식 앱 개발을 지탱하는 기술을 알기 쉽고 직관적인 방법으로 설명한다. 안드로이드 단말 사용자의 말을 인식하고 대화하는 앱을 개발하기 위해 오픈소스 소프트웨어를 사용하는 방법을 배운다. 오픈소스 소프트웨어를 기반으로, 유용한 태스크를 수행하는 좀 더 복잡한 앱을 개발해보고, 독자의 요구사항에 맞게 변경할 수 있는 간단한 음성 기반 개인비서 앱 개발 방법도 배울 것이다.
- 단말과 사용자가 대화할 수 있는 텍스트와 음성 간 합성 기술 사용법
- 단말이 사용자의 음성을 인식하게 하는 방법
- 단말이 사용자의 명령을 받아 실행할 수 있는 간단한 음성 상호작용 실행 방법
- 트랜잭션을 수행하는 데 필요한 정보를 수집하기 위해 사용자와 다이얼로그를 실행하는 음성 앱 개발
- 앱이 사용자의 말에 담긴 의미를 이해할 수 있는 문법을 사용하는 방법
- 다양한 언어 사용
- 음성에 대한 차선책으로 앱에 다중 모달 상호작용 기능을 추가하는 방법
- 챗봇 개발을 위해 오픈소스 기반 개발 플랫폼을 이용한 음성기반 개인비서 앱 개발
이 책의 대상 독자
이 책은 음성 기술과 모바일 컴퓨팅을 전공하는 학생을 포함해서 음성 처리 애플리케이션 개발에 흥미가 있는 모든 사람들을 위해 집필되었다. 범용적으로 사용되는 프로그램 개발 배경지식이 필요하며 특히 자바 언어에 대해 알고 있어야 한다. 더불어 안드로이드 프로그래밍에도 익숙하면 많은 도움이 된다.
이 책의 구성
1장, '안드로이드 단말의 음성 처리'는 안드로이드 단말에서 음성이 사용되는 방법을 설명하고 연관된 기술의 윤곽을 잡는다.
2장, '텍스트와 음성 간 합성'은 텍스트와 음성 간 합성의 기술을 설명하고 구글 TTS 엔진의 사용 방법을 보인다.
3장, '음성 인식'은 음성 인식 기술의 요약 내용과 구글이 공개한, 음성에서 텍스트로 전환하는 엔진의 사용 방법을 설명한다.
4장, '음성 상호작용'은 사용자와 앱이 정보를 얻거나 특정 액션을 실행하기 위해 서로 말할 수 있는 단순한 상호작용 기능을 구현하는 방법을 설명한다.
5장, '폼 작성 다이얼로그'는 음성을 처리할 수 있는 다이얼로그의 생성 방법을 설명하는데, 이 다이얼로그는 기존 웹 애플리케이션의 폼 작성 기법과 유사하다.
6장, '다이얼로그를 위한 문법'은 단어나 구, 혹은 그 이상의 사용자 입력을 번역하기 위해 사용하는 문법을 소개한다.
7장, '다중 언어와 다중 모달 다이얼로그'는 다양한 언어와 모달 기능을 사용하는 앱의 개발 방법을 설명한다.
8장, '가상 개인비서 다이얼로그'는 음성을 처리할 수 있는 가상 개인비서 앱의 개발 방법을 보여준다.
추천의 글
사용자가 왜 모바일 단말기와 말하고 대화를 나눠야 하는지에 대해서는 수많은 이유가 있다. 우리는 태어나서 몇 년간 다른 사람들과 말하고 듣는 방법을 배우므로, 모바일 단말과 말하거나 들을 수 있어야 한다는 것은 어찌 보면 자연스러운 것이다. 모바일 단말의 크기가 점차 작아지면서 물리적 키패드를 위해 사용할 수 있는 공간은 줄어들어 키패드를 사용하기가 힘들더욱 힘들어졌다. 구글 안경이나 스마트 시와 같은 웨어러블 단말(wearable device)은 물리적 키패드가 없다. 말하기와 듣기는 점차 모바일 단말과의 중요한 의사소통 수단이 되고 있다.
마이크와 스피커가 달린 컴퓨터는 홈 환경에 파고들고, 리모콘이나 휴대용 장치는 필요치 않게 될 것이다. 말하기와 듣기는 TV, 냉난방 조절장치, 보안시스템, 커피 메이커, 오븐, 냉장고등의 가전제품과 대화할 때 사용하는 주요 수단이 될 것이다.
눈과 손을 사용해야 하는 작업을 수행할 때는 음성 기술이 필요하다. 자동차를 운전하거나 복잡한 기계를 동작시킬 때 음성은 안드로이드 시스템과 상호작용할 수 있는 유일한 해법이다. 운전 중에 단말을 잡고 사용하는 행위는 일부 지역에서 불법인 경우도 있다. 시리(Siri) 등 음성 인식 시스템을 통해 모바일 사용자는 검색어 쿼리를 모바일에 말로 전할 수 있다. 음성 인식 시스템에는 복잡한 인공지능 기술과 구현에 많은 시간이 걸리는 자연어 처리 기술이 필요하지만, 이를 통해 사용자의 정보 검색을 도와주는 음성 기술의 사용을 가능하게 해준다.
손과 눈 이 모두 필요한 현재의 ‘사용 설명 가이드’ 방식은 안드로이드 애플리케이션을 위한 커다란 기회를 제공한다. 우리는 말하기와 듣기 기능을 통해 사용자가 모든 종류의 도구를 조립, 문제 제기, 수리, 세부 조정 그리고 사용하도록 돕는 전자식 가이드를 곧 접하게 될 것이다. 자동차 엔진에서 나는 이상한 소리의 원인은 무엇인가? 텔레비전이 왜 안 켜지는 걸까? 집안 냉방을 위해 에어컨을 어떻게 조절해야 할까? 프린터에서 발생한 종이 걸림 현상은 어떻게 수리해야 할까? 사용자의 눈은 프린터를 관찰하고 손은 프린터를 수리하고 있으므로 종이로 출력된 지침서, 사용자 가이드, 일반 매뉴얼을 앞에 두고 읽기란 쉽지 않을 것이다.
음성 기능이 장착된 애플리케이션이 단계별로 사용자에게 설명하게 해보자. 이와 같은 사용 가이드 애플리케이션이 있으면 거의 모든 제품에 포함된 사용자 가이드 문서를 대체할 수 있다.
적절한 안내 문서를 검색이 아닌, 해당 제품에 부착된 QR 코드를 스캐닝해서 최신 제품 매뉴얼을 내려받으면 된다. 하나의 과정을 마치고 나서는 다음 안내를 들으려면 그저 “다음”이라고 말하거나 현재 안내를 다시 듣고 싶을 땐 “반복”이라고 말하기만 하면 된다. 사용 가이드 애플리케이션은 장치 도해, 설명, 그리고 심지어 작업 실행 방법을 보여주는 애니메이션과 비디오 영상도 보여준다.
음성 메시지와 사운드 출력은 사람의 이목을 끌 수 있는 가장 좋은 방법에 속한다. 단말의 화면에 중요한 알람, 정보 알림, 메시지를 표시하지만, 사용자가 이를 인지하지 못한 경우에는 음성으로 사용자에게 알려줘야 한다.
이와 같은 경우는 사용자와 말하고 듣는 애플리케이션을 개발해야 하는 많은 이유 중 소수에 불과할 뿐이다. 이 책에서는 음성 애플리케이션을 개발하는 방법을 소개한다. 다양한 수준의 복잡도를 가진 앱 예제들은 음성 기술을 실험하기에 좋은 시작 지점이 된다.
- 제임스 라슨(James A. Larson) / 라슨 테크니컬 서비스의 부회장이자 창업자
목차
목차
- 1장 안드로이드 단말의 음성 처리
- 안드로이드 단말의 음성 기능 활용
- 음성에서 텍스트로
- 텍스트를 음성으로 변환
- 음성 검색
- 안드로이드 음성 처리 액션
- 가상 개인비서
- 음성 처리 앱의 설계와 개발
- 왜 구글 스피치인가
- 가상 개인비서를 개발하기 위해 무엇이 필요한가
- 요약
- 안드로이드 단말의 음성 기능 활용
- 2장 텍스트와 음성 간 합성
- TTS() 소개
- TTS 기술
- TTS 대신 미리 녹음된 음성 데이터의 사용
- 구글 TTS의 사용
- TTS 엔진 사용의 시작
- 구글 TTS를 적용한 애플리케이션 개발
- TTSLib 파일을 사용한 애플리케이션: 사용자 입력 읽기
- TTSReadFile을 사용한 애플리케이션: 파일 내용 읽기
- 요약
- 3장 음성 인식
- 음성 인식 기술
- 구글 음성 인식 기술의 사용
- 구글 음성 인식 API를 활용한 애플리케이션 개발
- ASRWithIntent를 사용한 애플리케이션
- ASRWithLib를 사용한 애플리케이션
- 요약
- 4장 음성 상호작용
- 음성 상호 작용
- 음성으로 검색하는 앱
- 음성 시작 명령을 사용하는 앱
- 음성 검색 확인 앱
- 요약
- 5장 폼 작성 다이얼로그
- 폼 작성 다이얼로그
- 폼 작성 다이얼로그 구현
- 스레딩
- XMLLib
- FormFillLib
- VXMLParser
- DialogInterpreter
- 뮤직브레인 앱
- 요약
- 6장 다이얼로그를 위한 문법
- 음성 인식과 자연어 이해를 위한 문법
- 특수 문법이 적용된 NLU
- 통계 문법이 적용된 NLU
- NLU 라이브러리
- XML 문법 처리
- 통계 문법 처리
- 문법 테스트 앱
- 요약
- 7장 다중 언어와 다중 모달 다이얼로그
- 다중 언어의 사용
- 다중 모달
- 요약
- 8장 가상 개인비서 다이얼로그
- 가상 개인비서 구현 기술
- 사용자의 의도 결정
- 적절한 응답 생성하기
- 판도라봇
- AIML
- 다양한 기능을 추가하기 위한 oob 태그 사용
- AIML
- VPALib 라이브러리
- 판도라봇 생성
- 샘플 가상 개인 비서: Jack, Derek, Stacy
- 또 다른 가상 개인 비서
- 요약
- 가상 개인비서 구현 기술
- 9장 앱 개발의 심화단계
- 좀 더 발전된 가상 개인비서 개발
- 요약