2013.04.10

아이폰의 가상 비서 시리 원리 완전 분석... 과제는?

Marco Tabini | Macworld

현재까지 iOS에 추가된 것들 중에 필자는 시리(Siri)가 가장 마음에 든다. 전자 장치들이 더 똑똑해지고 빨리고 얇아지는 시대에 수수한 키보드는 컴퓨터가 손바닥이 아니라 방 한 칸을 차지하던 구시대의 유물처럼 느껴진다. 애플의 가상 비서는 필자가 모바일 장치와 상호 작용하는 방식을 크게 바꾸어 놓았다.
 
하지만 시리는 매우 제한되어 있다. 애플의 자체 앱뿐만이 아니라 애플이 지원을 결정한 서비스와는 잘 통합되어 있지만 그 외의 써드파티 소프트웨어에서는 무용지물에 가깝다. 장애 때문에 일반적인 키보드를 사용하기 어려운 사람들에게는 큰 도움이 될 수 있음에도 이런 제한적인 현실이 안타까울 뿐이다.
 
아이폰과 아이패드에서 시리를 적극적으로 활용하고 키보드는 필요에 따라 보조 수단으로 사용하는 것이 가장 이상적이라 생각한다. 애플이 허용하기만 한다면 많은 개발자들이 시리를 적극적으로 활용하려 할 것이라 생각한다. 안타깝게도 시리의 기반 기술 때문에 이것이 쉽지 않다.
 
주고받는 과정
우리는 "시리"가 단순히 휴대폰과 태블릿에 내장된 앱이 아니라 애플이 다수의 파트너들과 함께 협력하여 운영하여 소프트웨어와 인터넷 기반 서비스의 집합체라는 것을 알고 있다. 대부분의 기능을 서버 쪽에 유지하면서 해당 기업은 모바일 기기라는 한정된 자원 보다는 강력한 컴퓨터에 대부분의 작업을 할당하며, 애플은 수집하는 데이터를 사용해 서비스를 지속적으로 개선하면서 새로운 버전의 iOS 버전을 공개하지 않고도 새로운 기능을 제공할 수 있다.
 
시리에 명령을 내리면 장치가 사용자의 음성을 수집하고 이것을 오디로 파일로 변환한 후, 애플의 데이터 센터로 전송하여 처리한다. 이것은 생각보다 복잡한 과정이며, 조용한 환경이라고 생각되는 곳에서조차도 마이크를 통해 흘러 들어오는 잡음의 수준을 안다면 매우 놀랄 것이다. 이 때문에 애플은 소리를 최대한 깔끔하게 만드는 기술에 크게 집중하고 있다. 최신 iOS 기기는 여러 개의 마이크가 탑재되어 있으며 발전된 하드웨어로 마이크 입력을 분석하여 소음을 제거한 신호를 생성한다. 신호가 깔끔할수록 전송하는 데이터 량이 줄어들고 처리도 쉬워진다.
 
일단 애플의 서버에 도달하면 오디오 파일은 일련의 과정을 거쳐 날씨를 파악하는 등 컴퓨터 프로그램이 수행할 수 있는 하나의 작업으로 바뀌게 된다. 이런 작업의 결과물이 사람이 읽을 수 있는 텍스트 형태로 다시 변환된다.
 
인식과 문맥
첫 단계는 구어를 텍스트로 변환하는 것으로 애플은 이 작업을 음성인식 선두기업 뉘앙스(Nuance)에 맡기고 있다. 시리는 여기서 그 진가를 발휘한다. 친구가 "그래도 차기 마리오(Mario)의 목소리로 뽑힐 일은 전혀 없다"고 말할 정도로 이탈리아 악센트가 강한 필자 조차도 명령을 반복하는 일이 드물다.
 
하지만 시리가 필자의 말을 잘 이해할 수 있는 이유는 이미 필자가 말하고자 하는 바를 알고 있기 때문이다. 해당 장치는 사용자의 연락처와 기타 데이터를 업로드 하여 추후에 상당한 정확도로 정보를 인식할 수 있다. 애플은 상황에 따라 시리가 지원하는 작업을 처리하는데 필요한 모든 용어를 이해할 수 있도록 프로그램 했다.
 
인간의 언어는 예측 불허이기 때문에 최신 기술로도 해결하기 어려운 문제이다. 예를 들어, 바이트(byte) 와 바이트(bite) 의 발음은 똑같지만 식당 리뷰 앱은 후자를 더욱 자주 사용할 것이며 기술관련 전문가들을 위한 소프트웨어는 전자를 더욱 자주 사용할 것이다. 이 둘을 혼동하면 뜻이 완전히 달라진다. 그 누구도 RAM이 들어있는 호밀 샌드위치를 원하지 않지만, 컴퓨터는 이에 대한 개념이 전혀 없다.
 
서드파티 앱이 시리를 잘 활용할 수 있도록 하기 위해 애플은 개발자들이 해당 소프트웨어가 사용할 특정 용어와 사용될 환경에 관해 서비스를 "학습"시킬 수 있는 방법을 찾아내야 한다. 예상했겠지만, 이런 작업은 단순한 앱 조차도 쉬운 작업이 아니며 특히 음성화에 적합하지 않은 복잡한 개념을 다루는 경우에는 거의 불가능에 가깝다.
 
말에서 개념으로
음성이 텍스트로 바뀌면 시리는 사용자가 무엇을 원하는지 파악하며, 이 과정은 자연어 처리라는 과학의 영역에 의존하게 된다. 음성 인식도 어렵지만 인간은 주어진 개념에 대해 끝없는 단어의 조합으로 무궁무진한 표현력을 발휘할 수 있으며 실제 의도와는 다른 말을 하기도 하기 때문에 이 과정은 훨씬 복잡하다.
 
이 문제를 해결하기 위해 시리 같은 자연어 시스템은 텍스트의 통사론적 구조를 분석하고 명사, 형용사, 동사뿐만이 아니라 문장의 일반적인 억양을 추출한다. 이를 통해 시리는 텍스트가 질문인지 아니면 사용자가 자신의 감정을 실어 표현하는지를 파악한다.
 
사용자가 선택한 언어를 사용해 그런대로 괜찮은 명령을 내린다면 문제를 해결하기가 훨씬 수월하다. 문제는 이 말을 앱이 처리할 수 있는 콘텐츠로 변환해야 할 때이다. 이를 위해서는 시스템이 특정 분야의 지식, 즉, 사용자가 말하는 주제 분야에 관한 지식이 있어야 한다.
 
여러분도 익숙하지 않은 분야의 지식과 관련된 질문을 들었을 때 비슷한 문제를 겪었을 것이다. 예를 들어, 의사가 환자에게 소화불량(Dyspepsia)을 치료해야 한다고 말할 때 의료 전문가가 아닌 이상 자신의 소화기능에 문제가 있으며 제산제를 복용해야 한다는 것을 알아차리기 어려울 것이다. 애플은 개발자들이 시리에게 자신이 개발한 앱의 기능이 무엇인지 설명하고 그 동작을 위한 모든 적절한 용어를 제공하도록 해야 할 것이다.
 
시리의 구성요소 중에서 개발자들에게 가장 어려운 부분이 바로 자연어 분석일 것이며, 이는 앱마다 큰 차이를 보일 뿐 아니라 발생 가능한 모든 상황에 손쉽게 적용할 수 있는 마법 같은 솔루션을 찾기가 어렵기 때문이다. 또한 지금까지 눈에 보이는 인터페이스(Interface)에만 익숙해져 있던 대부분의 프로그래머들은 자연어 분석에 대해 잘 모르기 때문에 상황은 더욱 심각하다.
 
결과를 텍스트로
요청이 처리되면 시리는 반드시 결과를 사용자에게 말로 전달할 수 있는 텍스트로 변환해야 한다. 사용자의 명령을 처리하는 것만큼 어렵지는 않지만 자연어 생성이라는 과정 또한 쉽지 않은 부분이다.
 
데이터를 사용해 통사론적으로 정확한 문장을 구성하는 소프트웨어를 개발하는 것은 상대적으로 쉽지만, 상당한 노력을 기울이지 않는다면 매우 인공적인 결과물이 탄생하게 된다. 시리에게 날씨에 관해 물어보면 온도, 기압, 구름 등에 관한 정보를 나열하는 대신에 "맑아요." 또는 "비가 올 것 같네요" 같은 포괄적인 문장을 제시한다.
 
이런 부분이 중요하게 보이지 않을 수 있지만, 특히 구어 의사소통에 있어서 사용자에게 큰 차이를 느끼게 한다. 다행히도 이 기능을 대부분의 앱 개발자들이 활용하는데 도움이 되는 연구 결과가 있다. 게다가 이 마지막 부분은 서버 쪽에서 처리할 필요가 없고, 애플이 복잡한 텍스트의 생성을 표준화하는 기술을 개발하고 이를 앱에 제공하여 자원을 과도하게 소모하지 않도록 각 장치에서 직접 대답을 제공할 수 있도록 할 수 있다.
 
모두를 위한 시리
서드파티 앱이 시리와 결합될 수 있다면 개발자와 사용자 모두에게 도움이 되겠지만 이를 위해 관련된 모든 사람들의 상당한 노력이 요구될 것이며, 이는 우리가 소프트웨어를 개발하고 이와 상호작용하는 방식의 큰 변화를 의미하기 때문이다.
 
해당 기업은 시리의 복잡한 인프라를 운용하기 위해 필요한 백엔드(Back-end) 시설에 대한 투자를 확대하는 등 모든 프로그래머들이 사용할 수 있는 시리와 유사한 기능을 제공하기 위한 기반을 조용히 다지고 있다.
 
예를 들어, 받아 쓰기는 현재 애플의 운영체제 모두에 내장되어 있지만, 개발자들은 아직 자신만의 특수 용어를 어휘로 등록할 수 없는 상황이다. 이와 마찬가지로 OS X와 iOS에는 최근에 텍스트 문서의 문법을 분석하는데 사용할 수 있는 여러 프로그래밍 인터페이스가 추가되었지만, 그 의미를 해석하는 더욱 복잡한 작업에는 큰 도움이 되지 못하고 있다. 마지막으로, 애플의 소프트웨어에는 음성 합성이 오래 동안 적용되었으며, 현재 이 기능은 주로 보이스오버(VoiceOver) 등의 시스템 툴이 사용하고 있으며 (최소한 iOS에서 만큼은) 개발자들이 손댈 수 없는 부분이지만, 기술적 측면에서 음성 합성을 모두가 사용할 수 있는 일반적인 용도의 툴로 발전시키는 것은 그리 어렵지 않을 것이다.
 
궁극적으로, 자연어 상호작용을 향한 변화는 불가피하며 키보드는 빠른 시일 내에 사라지지는 않겠지만 앞으로 그 중요성이 감소할 것이다. 음성기반 인터페이스로의 전환은 여러 가지 문제를 해결해야 하는 등 쉽지 않겠지만, 언젠가는 키보드 없이 기기와 의사 소통하는 날이 오리라 기대해 본다.  editor@itworld.co.kr


2013.04.10

아이폰의 가상 비서 시리 원리 완전 분석... 과제는?

Marco Tabini | Macworld

현재까지 iOS에 추가된 것들 중에 필자는 시리(Siri)가 가장 마음에 든다. 전자 장치들이 더 똑똑해지고 빨리고 얇아지는 시대에 수수한 키보드는 컴퓨터가 손바닥이 아니라 방 한 칸을 차지하던 구시대의 유물처럼 느껴진다. 애플의 가상 비서는 필자가 모바일 장치와 상호 작용하는 방식을 크게 바꾸어 놓았다.
 
하지만 시리는 매우 제한되어 있다. 애플의 자체 앱뿐만이 아니라 애플이 지원을 결정한 서비스와는 잘 통합되어 있지만 그 외의 써드파티 소프트웨어에서는 무용지물에 가깝다. 장애 때문에 일반적인 키보드를 사용하기 어려운 사람들에게는 큰 도움이 될 수 있음에도 이런 제한적인 현실이 안타까울 뿐이다.
 
아이폰과 아이패드에서 시리를 적극적으로 활용하고 키보드는 필요에 따라 보조 수단으로 사용하는 것이 가장 이상적이라 생각한다. 애플이 허용하기만 한다면 많은 개발자들이 시리를 적극적으로 활용하려 할 것이라 생각한다. 안타깝게도 시리의 기반 기술 때문에 이것이 쉽지 않다.
 
주고받는 과정
우리는 "시리"가 단순히 휴대폰과 태블릿에 내장된 앱이 아니라 애플이 다수의 파트너들과 함께 협력하여 운영하여 소프트웨어와 인터넷 기반 서비스의 집합체라는 것을 알고 있다. 대부분의 기능을 서버 쪽에 유지하면서 해당 기업은 모바일 기기라는 한정된 자원 보다는 강력한 컴퓨터에 대부분의 작업을 할당하며, 애플은 수집하는 데이터를 사용해 서비스를 지속적으로 개선하면서 새로운 버전의 iOS 버전을 공개하지 않고도 새로운 기능을 제공할 수 있다.
 
시리에 명령을 내리면 장치가 사용자의 음성을 수집하고 이것을 오디로 파일로 변환한 후, 애플의 데이터 센터로 전송하여 처리한다. 이것은 생각보다 복잡한 과정이며, 조용한 환경이라고 생각되는 곳에서조차도 마이크를 통해 흘러 들어오는 잡음의 수준을 안다면 매우 놀랄 것이다. 이 때문에 애플은 소리를 최대한 깔끔하게 만드는 기술에 크게 집중하고 있다. 최신 iOS 기기는 여러 개의 마이크가 탑재되어 있으며 발전된 하드웨어로 마이크 입력을 분석하여 소음을 제거한 신호를 생성한다. 신호가 깔끔할수록 전송하는 데이터 량이 줄어들고 처리도 쉬워진다.
 
일단 애플의 서버에 도달하면 오디오 파일은 일련의 과정을 거쳐 날씨를 파악하는 등 컴퓨터 프로그램이 수행할 수 있는 하나의 작업으로 바뀌게 된다. 이런 작업의 결과물이 사람이 읽을 수 있는 텍스트 형태로 다시 변환된다.
 
인식과 문맥
첫 단계는 구어를 텍스트로 변환하는 것으로 애플은 이 작업을 음성인식 선두기업 뉘앙스(Nuance)에 맡기고 있다. 시리는 여기서 그 진가를 발휘한다. 친구가 "그래도 차기 마리오(Mario)의 목소리로 뽑힐 일은 전혀 없다"고 말할 정도로 이탈리아 악센트가 강한 필자 조차도 명령을 반복하는 일이 드물다.
 
하지만 시리가 필자의 말을 잘 이해할 수 있는 이유는 이미 필자가 말하고자 하는 바를 알고 있기 때문이다. 해당 장치는 사용자의 연락처와 기타 데이터를 업로드 하여 추후에 상당한 정확도로 정보를 인식할 수 있다. 애플은 상황에 따라 시리가 지원하는 작업을 처리하는데 필요한 모든 용어를 이해할 수 있도록 프로그램 했다.
 
인간의 언어는 예측 불허이기 때문에 최신 기술로도 해결하기 어려운 문제이다. 예를 들어, 바이트(byte) 와 바이트(bite) 의 발음은 똑같지만 식당 리뷰 앱은 후자를 더욱 자주 사용할 것이며 기술관련 전문가들을 위한 소프트웨어는 전자를 더욱 자주 사용할 것이다. 이 둘을 혼동하면 뜻이 완전히 달라진다. 그 누구도 RAM이 들어있는 호밀 샌드위치를 원하지 않지만, 컴퓨터는 이에 대한 개념이 전혀 없다.
 
서드파티 앱이 시리를 잘 활용할 수 있도록 하기 위해 애플은 개발자들이 해당 소프트웨어가 사용할 특정 용어와 사용될 환경에 관해 서비스를 "학습"시킬 수 있는 방법을 찾아내야 한다. 예상했겠지만, 이런 작업은 단순한 앱 조차도 쉬운 작업이 아니며 특히 음성화에 적합하지 않은 복잡한 개념을 다루는 경우에는 거의 불가능에 가깝다.
 
말에서 개념으로
음성이 텍스트로 바뀌면 시리는 사용자가 무엇을 원하는지 파악하며, 이 과정은 자연어 처리라는 과학의 영역에 의존하게 된다. 음성 인식도 어렵지만 인간은 주어진 개념에 대해 끝없는 단어의 조합으로 무궁무진한 표현력을 발휘할 수 있으며 실제 의도와는 다른 말을 하기도 하기 때문에 이 과정은 훨씬 복잡하다.
 
이 문제를 해결하기 위해 시리 같은 자연어 시스템은 텍스트의 통사론적 구조를 분석하고 명사, 형용사, 동사뿐만이 아니라 문장의 일반적인 억양을 추출한다. 이를 통해 시리는 텍스트가 질문인지 아니면 사용자가 자신의 감정을 실어 표현하는지를 파악한다.
 
사용자가 선택한 언어를 사용해 그런대로 괜찮은 명령을 내린다면 문제를 해결하기가 훨씬 수월하다. 문제는 이 말을 앱이 처리할 수 있는 콘텐츠로 변환해야 할 때이다. 이를 위해서는 시스템이 특정 분야의 지식, 즉, 사용자가 말하는 주제 분야에 관한 지식이 있어야 한다.
 
여러분도 익숙하지 않은 분야의 지식과 관련된 질문을 들었을 때 비슷한 문제를 겪었을 것이다. 예를 들어, 의사가 환자에게 소화불량(Dyspepsia)을 치료해야 한다고 말할 때 의료 전문가가 아닌 이상 자신의 소화기능에 문제가 있으며 제산제를 복용해야 한다는 것을 알아차리기 어려울 것이다. 애플은 개발자들이 시리에게 자신이 개발한 앱의 기능이 무엇인지 설명하고 그 동작을 위한 모든 적절한 용어를 제공하도록 해야 할 것이다.
 
시리의 구성요소 중에서 개발자들에게 가장 어려운 부분이 바로 자연어 분석일 것이며, 이는 앱마다 큰 차이를 보일 뿐 아니라 발생 가능한 모든 상황에 손쉽게 적용할 수 있는 마법 같은 솔루션을 찾기가 어렵기 때문이다. 또한 지금까지 눈에 보이는 인터페이스(Interface)에만 익숙해져 있던 대부분의 프로그래머들은 자연어 분석에 대해 잘 모르기 때문에 상황은 더욱 심각하다.
 
결과를 텍스트로
요청이 처리되면 시리는 반드시 결과를 사용자에게 말로 전달할 수 있는 텍스트로 변환해야 한다. 사용자의 명령을 처리하는 것만큼 어렵지는 않지만 자연어 생성이라는 과정 또한 쉽지 않은 부분이다.
 
데이터를 사용해 통사론적으로 정확한 문장을 구성하는 소프트웨어를 개발하는 것은 상대적으로 쉽지만, 상당한 노력을 기울이지 않는다면 매우 인공적인 결과물이 탄생하게 된다. 시리에게 날씨에 관해 물어보면 온도, 기압, 구름 등에 관한 정보를 나열하는 대신에 "맑아요." 또는 "비가 올 것 같네요" 같은 포괄적인 문장을 제시한다.
 
이런 부분이 중요하게 보이지 않을 수 있지만, 특히 구어 의사소통에 있어서 사용자에게 큰 차이를 느끼게 한다. 다행히도 이 기능을 대부분의 앱 개발자들이 활용하는데 도움이 되는 연구 결과가 있다. 게다가 이 마지막 부분은 서버 쪽에서 처리할 필요가 없고, 애플이 복잡한 텍스트의 생성을 표준화하는 기술을 개발하고 이를 앱에 제공하여 자원을 과도하게 소모하지 않도록 각 장치에서 직접 대답을 제공할 수 있도록 할 수 있다.
 
모두를 위한 시리
서드파티 앱이 시리와 결합될 수 있다면 개발자와 사용자 모두에게 도움이 되겠지만 이를 위해 관련된 모든 사람들의 상당한 노력이 요구될 것이며, 이는 우리가 소프트웨어를 개발하고 이와 상호작용하는 방식의 큰 변화를 의미하기 때문이다.
 
해당 기업은 시리의 복잡한 인프라를 운용하기 위해 필요한 백엔드(Back-end) 시설에 대한 투자를 확대하는 등 모든 프로그래머들이 사용할 수 있는 시리와 유사한 기능을 제공하기 위한 기반을 조용히 다지고 있다.
 
예를 들어, 받아 쓰기는 현재 애플의 운영체제 모두에 내장되어 있지만, 개발자들은 아직 자신만의 특수 용어를 어휘로 등록할 수 없는 상황이다. 이와 마찬가지로 OS X와 iOS에는 최근에 텍스트 문서의 문법을 분석하는데 사용할 수 있는 여러 프로그래밍 인터페이스가 추가되었지만, 그 의미를 해석하는 더욱 복잡한 작업에는 큰 도움이 되지 못하고 있다. 마지막으로, 애플의 소프트웨어에는 음성 합성이 오래 동안 적용되었으며, 현재 이 기능은 주로 보이스오버(VoiceOver) 등의 시스템 툴이 사용하고 있으며 (최소한 iOS에서 만큼은) 개발자들이 손댈 수 없는 부분이지만, 기술적 측면에서 음성 합성을 모두가 사용할 수 있는 일반적인 용도의 툴로 발전시키는 것은 그리 어렵지 않을 것이다.
 
궁극적으로, 자연어 상호작용을 향한 변화는 불가피하며 키보드는 빠른 시일 내에 사라지지는 않겠지만 앞으로 그 중요성이 감소할 것이다. 음성기반 인터페이스로의 전환은 여러 가지 문제를 해결해야 하는 등 쉽지 않겠지만, 언젠가는 키보드 없이 기기와 의사 소통하는 날이 오리라 기대해 본다.  editor@itworld.co.kr


X