Top

[구글 음성 인식 API와 다중 모달 인터페이스를 이용한]
안드로이드 음성 인식 애플리케이션 개발

  • 원서명Voice Application Development for Android (ISBN 9781783285297)
  • 지은이마이클 맥티어, 조라이다 까예하스
  • 옮긴이조효성
  • ISBN : 9788960775749
  • 16,000원
  • 2014년 08월 29일 펴냄
  • 페이퍼백 | 164쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 모바일 프로그래밍

책 소개

요약

이 책은 구글 안드로이드 범용 애플리케이션 개발을 넘어 사용자들이 큰 관심을 가지고 있는 대화형 음성 인식 애플리케이션 개발을 위한 훌륭한 지침서다. 다중 언어와 다중 모달 다이얼로그를 이용해서 사용자의 의도를 파악하고 지속적인 대화를 제공할 수 있는 가상 개인비서 앱을 만들고 싶다면 이 책이 바로 그 시작점이 될 것이다.

이 책에서 다루는 내용

이 책은 독자가 기초적인 기술 기반으로 좀 더 진보되고 매력적인 애플리케이션을 개발할 수 있도록, 알기 쉬운 단계별 예제들을 다양하게 제공하는 실무 가이드다. 안드로이드 단말에서 즉시 사용할 수 있는 유용한 음성 인식 애플리케이션을 개발하는 방법을 배울 수 있다. 이 책에서는 음성 인식 앱 개발을 지탱하는 기술을 알기 쉽고 직관적인 방법으로 설명한다. 안드로이드 단말 사용자의 말을 인식하고 대화하는 앱을 개발하기 위해 오픈소스 소프트웨어를 사용하는 방법을 배운다. 오픈소스 소프트웨어를 기반으로, 유용한 태스크를 수행하는 좀 더 복잡한 앱을 개발해보고, 독자의 요구사항에 맞게 변경할 수 있는 간단한 음성 기반 개인비서 앱 개발 방법도 배울 것이다.

  • 단말과 사용자가 대화할 수 있는 텍스트와 음성 간 합성 기술 사용법
  • 단말이 사용자의 음성을 인식하게 하는 방법
  • 단말이 사용자의 명령을 받아 실행할 수 있는 간단한 음성 상호작용 실행 방법
  • 트랜잭션을 수행하는 데 필요한 정보를 수집하기 위해 사용자와 다이얼로그를 실행하는 음성 앱 개발
  • 앱이 사용자의 말에 담긴 의미를 이해할 수 있는 문법을 사용하는 방법
  • 다양한 언어 사용
  • 음성에 대한 차선책으로 앱에 다중 모달 상호작용 기능을 추가하는 방법
  • 챗봇 개발을 위해 오픈소스 기반 개발 플랫폼을 이용한 음성기반 개인비서 앱 개발
이 책의 대상 독자

이 책은 음성 기술과 모바일 컴퓨팅을 전공하는 학생을 포함해서 음성 처리 애플리케이션 개발에 흥미가 있는 모든 사람들을 위해 집필되었다. 범용적으로 사용되는 프로그램 개발 배경지식이 필요하며 특히 자바 언어에 대해 알고 있어야 한다. 더불어 안드로이드 프로그래밍에도 익숙하면 많은 도움이 된다.

이 책의 구성

1장, '안드로이드 단말의 음성 처리'는 안드로이드 단말에서 음성이 사용되는 방법을 설명하고 연관된 기술의 윤곽을 잡는다.
2장, '텍스트와 음성 간 합성'은 텍스트와 음성 간 합성의 기술을 설명하고 구글 TTS 엔진의 사용 방법을 보인다.
3장, '음성 인식'은 음성 인식 기술의 요약 내용과 구글이 공개한, 음성에서 텍스트로 전환하는 엔진의 사용 방법을 설명한다.
4장, '음성 상호작용'은 사용자와 앱이 정보를 얻거나 특정 액션을 실행하기 위해 서로 말할 수 있는 단순한 상호작용 기능을 구현하는 방법을 설명한다.
5장, '폼 작성 다이얼로그'는 음성을 처리할 수 있는 다이얼로그의 생성 방법을 설명하는데, 이 다이얼로그는 기존 웹 애플리케이션의 폼 작성 기법과 유사하다.
6장, '다이얼로그를 위한 문법'은 단어나 구, 혹은 그 이상의 사용자 입력을 번역하기 위해 사용하는 문법을 소개한다.
7장, '다중 언어와 다중 모달 다이얼로그'는 다양한 언어와 모달 기능을 사용하는 앱의 개발 방법을 설명한다.
8장, '가상 개인비서 다이얼로그'는 음성을 처리할 수 있는 가상 개인비서 앱의 개발 방법을 보여준다.

추천의 글

사용자가 왜 모바일 단말기와 말하고 대화를 나눠야 하는지에 대해서는 수많은 이유가 있다. 우리는 태어나서 몇 년간 다른 사람들과 말하고 듣는 방법을 배우므로, 모바일 단말과 말하거나 들을 수 있어야 한다는 것은 어찌 보면 자연스러운 것이다. 모바일 단말의 크기가 점차 작아지면서 물리적 키패드를 위해 사용할 수 있는 공간은 줄어들어 키패드를 사용하기가 힘들더욱 힘들어졌다. 구글 안경이나 스마트 시와 같은 웨어러블 단말(wearable device)은 물리적 키패드가 없다. 말하기와 듣기는 점차 모바일 단말과의 중요한 의사소통 수단이 되고 있다.

마이크와 스피커가 달린 컴퓨터는 홈 환경에 파고들고, 리모콘이나 휴대용 장치는 필요치 않게 될 것이다. 말하기와 듣기는 TV, 냉난방 조절장치, 보안시스템, 커피 메이커, 오븐, 냉장고등의 가전제품과 대화할 때 사용하는 주요 수단이 될 것이다.

눈과 손을 사용해야 하는 작업을 수행할 때는 음성 기술이 필요하다. 자동차를 운전하거나 복잡한 기계를 동작시킬 때 음성은 안드로이드 시스템과 상호작용할 수 있는 유일한 해법이다. 운전 중에 단말을 잡고 사용하는 행위는 일부 지역에서 불법인 경우도 있다. 시리(Siri) 등 음성 인식 시스템을 통해 모바일 사용자는 검색어 쿼리를 모바일에 말로 전할 수 있다. 음성 인식 시스템에는 복잡한 인공지능 기술과 구현에 많은 시간이 걸리는 자연어 처리 기술이 필요하지만, 이를 통해 사용자의 정보 검색을 도와주는 음성 기술의 사용을 가능하게 해준다.

손과 눈 이 모두 필요한 현재의 ‘사용 설명 가이드’ 방식은 안드로이드 애플리케이션을 위한 커다란 기회를 제공한다. 우리는 말하기와 듣기 기능을 통해 사용자가 모든 종류의 도구를 조립, 문제 제기, 수리, 세부 조정 그리고 사용하도록 돕는 전자식 가이드를 곧 접하게 될 것이다. 자동차 엔진에서 나는 이상한 소리의 원인은 무엇인가? 텔레비전이 왜 안 켜지는 걸까? 집안 냉방을 위해 에어컨을 어떻게 조절해야 할까? 프린터에서 발생한 종이 걸림 현상은 어떻게 수리해야 할까? 사용자의 눈은 프린터를 관찰하고 손은 프린터를 수리하고 있으므로 종이로 출력된 지침서, 사용자 가이드, 일반 매뉴얼을 앞에 두고 읽기란 쉽지 않을 것이다.

음성 기능이 장착된 애플리케이션이 단계별로 사용자에게 설명하게 해보자. 이와 같은 사용 가이드 애플리케이션이 있으면 거의 모든 제품에 포함된 사용자 가이드 문서를 대체할 수 있다.

적절한 안내 문서를 검색이 아닌, 해당 제품에 부착된 QR 코드를 스캐닝해서 최신 제품 매뉴얼을 내려받으면 된다. 하나의 과정을 마치고 나서는 다음 안내를 들으려면 그저 “다음”이라고 말하거나 현재 안내를 다시 듣고 싶을 땐 “반복”이라고 말하기만 하면 된다. 사용 가이드 애플리케이션은 장치 도해, 설명, 그리고 심지어 작업 실행 방법을 보여주는 애니메이션과 비디오 영상도 보여준다.

음성 메시지와 사운드 출력은 사람의 이목을 끌 수 있는 가장 좋은 방법에 속한다. 단말의 화면에 중요한 알람, 정보 알림, 메시지를 표시하지만, 사용자가 이를 인지하지 못한 경우에는 음성으로 사용자에게 알려줘야 한다.

이와 같은 경우는 사용자와 말하고 듣는 애플리케이션을 개발해야 하는 많은 이유 중 소수에 불과할 뿐이다. 이 책에서는 음성 애플리케이션을 개발하는 방법을 소개한다. 다양한 수준의 복잡도를 가진 앱 예제들은 음성 기술을 실험하기에 좋은 시작 지점이 된다.

- 제임스 라슨(James A. Larson) / 라슨 테크니컬 서비스의 부회장이자 창업자

저자/역자 소개

저자 서문

컴퓨터와 대화할 수 있다는 생각은 오랜 세월 많은 사람의 관심을 끌었다. 그러나 최근까지도 기계와의 대화는 공상 과학영화에서나 가능한 것처럼 보인다. 시대가 변해서 이제는 스마트폰이나 태블릿을 가진 사람들은 음성으로 단말에게 많은 일을 시킬 수 있는데 예를 들어 문자 메시지 전송, 캘린더 업데이트, 알람 설정, 검색 박스에 입력한 검색 요청의 정렬 등을 들 수 있다. 음성 입력은 좀 더 편리하며, 특히 행동의 제약이 있는 상황에서 단말의 타이핑이나 탭핑이 어려운 작은 단말에서 상당히 유용하다.

이 책은 안드로이드 단말에서 TTS를 위한 구글 음성 API와 자동화된 음성 인식(ASR) 그리고 그 밖의 오픈소스 형태의 소프트웨어를 이용해서 음성 앱을 개발할 수 있게 하는 실질적인 가이드를 제공한다. 범용의 안드로이드 프로그래밍을 설명하는 책들이 많지만, 안드로이드 단말에서 동작하는 음성 기반 앱의 개발을 포괄적으로 설명하는 책은 없다.

음성 사용자 인터페이스의 개발은 기존 인터페이스 개발의 특징과 유사한 점이 많지만, 음성 인식 앱만의 특정 요구사항이 있을 것이며 개발자들은 통상적인 문제점과 애로사항을 잘 파악해둬야 한다. 이 책은 주류컴퓨팅 배경 지식을 겸비한 전문가들이 익숙하지 않은 기술들을 다루기 위해 일부 기초적인 내용을 제공한다. 단순한 프로그램에서 시작해 좀 더 정교한 애플리케이션을 작성하면서 앱을 완성하기 위해 필요한 모든 기술들을 어떻게 조합하는지를 자세하게 설명한다. 이 책에서 설명하는 모든 예제 코드와 설명하는 모든 기술을 실행해 보고 나면, 안드로이드 앱에 음성 인식 기능이라는 막강한 파워를 탑재할 수 있고, 좀 더 스마트하고 직관적이며 사용자의 경험을 풍부하게 만들 수 있다.

저자 소개

마이클 맥티어(Michael McTear)

음성 언어 기술 분야에 관심이 많은 얼스터(Ulster) 대학 지식 엔지니어링 연구실의 명예 교수로 재직하고 있다. 1965년 퀸스 대학교 벨파스트(Queens University Belfast)에서 독일어와 문학을 전공했고, 1975년 에섹스(Essex) 대학에서 언어분야 문학석사 학위를 취득했으며, 1981년 얼스터 대학에서 박사 학위를 받고 졸업했다. 1986년부터 1987년까지 하와이 대학 교수와, 1994년부터 1995년 독일 코블렌쯔 대학 교수, 그리고 2006년부터 2010년까지 스페인 그라나다 대학 객원교수를 맡았다. 15년 넘게 음성 다이얼로그 시스템 분야에서 연구 활동을 해 왔고 지금은 널리 쓰이고 있는 책인 『Spoken Dialogue Technology: Toward the Conversational User Interface(음성 다이얼로그 기술: 대화형 사용자 인터페이스를 향해)』(슈프링거 출판사, 2004)의 저자다. 또한 『Spoken Dialogue Systems (음성 다이얼로그 시스템)』(모건 앤 클레이풀 출판사, 2010)의 공동저자이기도 하다.

2004년 제네바에서 개최된 EU가 후원하는 DUMAS 워크숍, 2005년 리스본에서 개최된 SIGDial 워크숍, 그리고 2005년 그라나다에서 개최된 자연어 처리에 관한 스페인 컨퍼런스(SEPLN)를 포함한 많은 컨퍼런스와 워크숍에서 기조 연설을 했고, 2006년 아루바, 2007년 프라하에서 개최된 IEEE/ACL 컨퍼런스에서 초대 강연을 했다. 뉴욕과 런던에 있는 음성 처리 전문 기술 관련 컨퍼런스인 스피치텍(SpeechTEK)에서도 여러 번 강연을 했다. 공인 VoiceXML 개발자이자, 제네시스(Genesys), 오라클, 오렌지(Orange), 3, 후지쯔(Fujitsu), 산탄더(Santander)를 비롯한 많은 회사의 전문 트레이닝 코스에서 VoiceXML 과정을 강의한다. 북아일랜드에 위치한 울스터 병원에서 사용하는 2형 당뇨병 환자들을 위한 VoiceXML 기반 가정용 모니터링 시스템의 핵심 개발자이기도 했다.

조라이다 까예하스(Zoraida Callejas)

지난 8년간 음성 다중 모달 인터페이스, 객체지향 프로그래밍, 소프트웨어 엔지니어링과 연관된 여러 주제를 강의했던 스페인 그라나다 대학에서 조교수로 재직 중이다. 2005년 컴퓨터과학과를 졸업하고, 그라나다 대학에서 2008년 박사 학위를 받았다. 체코의 리버레크 공과대학에서 2007년부터 13년까지, 이탈리아 트렌토 대학에서 2008년, 북 아일랜드의 얼스터 대학에서 2009년, 독일 베를린 공과대학에서 2010년, 독일 울름 대학에서 2012년, 프랑스 텔레콤 파리 공과대학에서 2013년에 객원 교수로 재직했었다. 음성 기술 연구에 매진하면서 특히 음성 다중 모달 다이얼로그 시스템에 온 열정을 바쳤다. 다이얼로그 시스템 분야에서 주최하는 핵심 컨퍼런스에서 많은 발표를 했고 여러 국제 저널과 서적을 통해 연구 성과를 발표했다. 조라이다는 상호 연결할 수 있는 음성 처리 시스템 개발 교육 과정을 개설해서 9년간 여러 대학원 과정에서 자바로 작성한 객체 지향 소프트웨어 개발 과정을 정기적으로 강의했다. 현재는 지적 장애가 있는 사용자를 위해 국내에서 진행 중인 안드로이드 기반 음성 처리 애플리케이션 개발 프로젝트를 이끌고 있다.

옮긴이의 말

안드로이드는 오픈소스 형태로 제공되며 수많은 소스 공헌자와 커뮤니티가 왕성한 활동을 하고 있다. 따라서 다양한 앱과 라이브러리 그리고 앱 개발에 필요한 도구들이 많이 개발되었다. 이 같은 다양한 기술을 이용해서 많은 개발자들은 사용자들이 원하는 다양한 앱들을 개발하고 앱 스토어에 공개한다. 이 같은 앱 중에서 특히나 주목할 만한 것 중 하나는 사용자와 대화할 수 있는 음성 처리 앱이 될 수 있다. 과거에 많은 개발자들이 음성 처리 앱을 개발했으나, 사용자의 음성 인식 정확도를 신뢰할 정도의 수준으로 제공하지 못했고 개발을 진행한다고 하더라도 많은 비용을 들여야 했다.

이 책은 사용자와 대화할 수 있는 앱을 개발하기 위해 오픈소스 형태로 제공되는 안드로이드에 음성 처리에 필요한 기술들을 접목하는 앱 개발 방법을 설명한다. 물론 음성 처리 기술 또한 오픈소스로 제공되는 라이브러리와 음성 문법 구현 기술을 사용하고 있어 비용적인 면에서 커다란 장점이 될 수 있다. 또한 이 책은 사용자의 음성인식 정확도를 높이고, 다양한 언어를 사용하며, 음성에서 사용자가 말하려는 의도 파악, 지속적으로 대화를 이끌어 나갈 수 있는 다이얼로그 사용까지 설명하고 있어 진보된 음성 처리 앱을 개발할 때 상당히 유용하다.

각 장을 읽어가면서 독자는 자신이 필요한 기능을 발췌해서 개발 프로젝트에 통합할 수 있고, 새로운 앱 개발의 아이디어를 얻을 수 있다. 무엇보다 음성 인식에 필요한 음성 문법의 기본 지식을 공부할 수 있는 좋은 기회가 될 수 있다. 책 중간 중간에 음성 처리 문법과 이와 관련된 가이드 문서 위치를 안내해주므로, 음성 처리의 고급 기술에 관심이 많은 개발자들에게는 첫 발을 내딛을 수 있는 시작 지점이 될 수 있다.

이 책은 영어를 주 언어로 선택해서 앱의 개발 과정을 설명하나 다른 언어를 이용해서도 앱을 개발할 수 있다. 따라서 이 책을 지침서로 다양한 음성 인식 앱, 대화형 앱 등의 개발을 권장한다.

옮긴이 소개

조효성

광운대학교 전자공학과를 졸업하고 동대학원 임베디드 소프트웨어 공학과에서 안드로이드와 블루투스를 전공했다. 현재는 오비고에서 웹 개발자로 활동하고 있는 노드에 관심이 많은 행복 개발자이다. 행복한 HMI WebApp 개발팀에서 차량용 플랫폼에 올라가는 웹 앱을 개발하면서 많은 경험과 실력을 쌓고 있다. 번역 작업을 통해, 책을 읽는 모든 사람에게 꼭 도움이 되기를 바라는 마음을 늘 품고 있다. 에이콘출판사에서 출간한 『노드로 하는 웹 앱 테스트 자동화』(2013), 『익스프레스 프레임워크로 하는 노드 웹 앱 프로그래밍』(2014), 『Storm 실시간 빅데이터 분석 플랫폼』(2014)을 번역했다.

목차

목차
  • 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 태그 사용
    • VPALib 라이브러리
    • 판도라봇 생성
    • 샘플 가상 개인 비서: Jack, Derek, Stacy
      • 또 다른 가상 개인 비서
    • 요약

  • 9장 앱 개발의 심화단계
    • 좀 더 발전된 가상 개인비서 개발
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안