Sunday, June 7, 2009

음성 인식 기술 현황

음성 인식(Speech Recognition) 기술은 그 특성상 80-90% 정도의 정확도를 달성하기 까지는 쉽지만 그 이상의 5-10%를 올리는 것은 매우 어렵고도 막대한 규모의 투자를 필요로 한다고 알려져 있습니다. 이와 같은 이유로 국내에서 제대로 음성 기술을 연구하고 있는 곳은 없고 세계적으로도 상용화에 성공했다고 인정되는 곳은 이 분야에서 가장 앞서 있다고 알려진 Nuance사를 비롯한 손꼽을 정도의 회사와 연구소들일 겁니다. 참고로 Nuance는 수십년전부터 IBM이 대규모 투자를 했고 지금은 별도로 spin-off 해서 독립한 회사입니다. 이 기술에서 어려운 분야를 꼽자면
  • 음성으로 화자를 인식하는 기술(speaker recognition) - 이론적으로 완벽한 구분은 불가능한 것으로 알려져 있습니다. 화자 인식만 가지고 보안 시스템을 구현할 수 없다는 것이지요. 동일한 사람이 동일한 어휘를 발음해도 상황에 따라 그 편차가 너무 크고 반대로 다른 사람이 성대모사를 하면 음성 파형상 너무 유사해서 알고리즘으로 구분이 불가능해 집니다.
  • 어휘수에 구현받지 않는 자연어 인식(natural language recognition) - 위 Nuance 사가 가장 앞서 있는 기술이 이 분야일 것입니다. 영어의 경우 발음만 정확하다면 거의 100%에 가까운 받아쓰기(dictation)이 가능하다고 알려져 있는데 반대로 우리나라 언어와 같은 경우 가장 취약한 분야이기도 합니다. 광범위한 데이터 베이스가 구축되어야 연구가 가능한데 국가가 정책적으로 지원하지 않는 이상은 어려울 것 같습니다.
대신 반대로 mission-critical 하지 않은 용도에 적당한 수준에서 구현하는 것은 이제는 그다지 어렵지 않습니다. 어휘(vocabulary)를 제한 한다면 여러가지 편법을 동원해서 8-bit CPU로도 간단한 완구에서 음성 명령을 인식하도록 할 수 있습니다. 숫자나 '예(Yes)', '아니오(No)' 정도로 제한된 언어의 인식은 영어의 경우 이미 자동응답시스템(automatic answering system)에 많이 쓰이고 있습니다.

특히, 화자(speaker)를 훈련(training)시켜서 인식도를 높이게 하는 neural network 기술을 사용하면 제한된 수의 화자에 대해서 비교적 자연스럽게 음성 인식을 수행하는 것도 요즘에는 상당히 흔한 기술이 되었습니다. 요컨데 음성 인식 기술을 몇가지 조건이 충족되면 사용자가 큰 불편없이 받아들일 수 있게 되었다는 것 이지요. 그 조건이란
  • mission-critical 하지 않을 것 - 보안 장치의 용도 또는 단 한번에 정확히 인식해야 하는 경우가 아닐 것
  • 제한된 어휘를 사용할 것 - speech pattern search를 위한 DB가 제한 될 것
  • 제한된 수의 화자를 대상으로 할 것 - 위와 같은 이유
  • 화자의 등록 및 훈련을 전제 조건으로 할 것 - 위와 같은 이유,
정도가 될 것입니다. 영어의 경우는 이미 상당히 발달해 있어서 화자의 등록이나 훈련 또는 화자수의 제한 등이 필요없는 경우가 많이 있습니다만 한국어는 다릅니다. Microsoft가 제공하는 Speech Technology도 이 정도의 수준으로 이해하면 될 것 같습니다. 사실 Microsoft의 경우도 이 분야의 연구(?)를 한 지는 꽤 되었고 Speech API가 나온 지도 최소한 10년은 된 것으로 기억하고 있습니다. 이 기술은 이미 Vista에 광범위하게 사용되고 있지요.

특히 Voice Command for Windows Mobile은 모바일 기기에서 나름대로 상당수의 명령과 그 응답을 음성만으로, 그것도 별도의 learning 과정없이 화자에 무관하게 처리하고 있습니다. 상당한 수준의 기술이라 할 수 있겠는데 문제는 영어에 국한된다는 것이지요. 정확히는 음성 인식의 경우 영어 및 중국어를 지원하고 음성 합성의 경우 영어, 중국어, 일본어를 지원합니다. 해당 언어가 그만큼 관련 분야에서 축적된 기술을 가지고 있었다는 의미이니 한국어가 포함될 가능성은 거의 없다고 봐도 될 것입니다. 대신 learning 방법을 사용한다면 여전히 이용할 가치는 있을 것 같고 또 영어 학습 프로그램과 연계한 서비스를 만들어 낼 수 있을 것 같기도 합니다.

이 분야에서 주목할 만한 회사가 하나 있습니다. 기술적으로 높은 수준은 아니지만 위에서 말한 조건을 충족시키는 분야에 한해서 아주 흥미로운 제품을 출시하는 회사입니다. 아마도 이런 종류의 제품으로는 유일한 회사일 듯 싶은데 Sensory사는 간단한 IC 하나로 언어와 화자에 관계없이 음성 인식 솔류션을 제공하는 회사입니다. 비결은 위에서 이야기한 그대로 mission-critical 하지 않을 것, 제한된 어휘와 제한된 화자을 대상으로 할 것, 적당한 learning 과정을 거칠 것 등입니다. 다른 소프트웨어 솔류션에 비해 간단한 DSP를 포함시킨 hardware solution을 제공한다는 점이 가지는 최대의 잇점은 이를 이용해 제품을 개발하고자 하는 회사는 음성인식에 대한 기술을 전혀 보유하고 있지 않아도 그 회사 IC를 채용하는 것 만으로 기술의 사용이 가능하다는 것이지요. 사실 이 회사는 다양한 재미있는 솔류션을 제공하고 있는데 몇가지를 살펴보겠습니다.

우선 음성 명령으로 휴대폰의 여러가지 기능을 동작시키는 내용입니다. 기능 자체로는 위 Microsoft의 Voice Command 와 같은데 이 기능을 하드웨어로 Hands-Free에 구현해 넣었다는 것이 중요합니다. 즉 개발사는 단 한줄의 코드도 필요없었다는 것이지요. 휴대폰에 코딩이 필요없다는 사실은 아무 휴대폰이나 동일하게 적용된다는 의미가 됩니다. 모든 기능은 블루투스 Hands-Free에 Sensory IC로 하드웨어로 구현되었기 때문입니다.



음성에 의해 시계의 시간과 알람을 설정하는 데모입니다. 싸구려 탁상시계에 적용했다는 사실에 주목해 주세요.



음성에 의해 간단한 잠금장치를 동작시키는 데모입니다.



그 외에도 상당히 재미있는 (실제로 재미있는) 데모들이 있습니다. 주로 Toy에 적용하는 용도로 개발된 것 같은데 한번 살펴보시기 바랍니다. 아래의 데모는 음성 인식 칩이 화자의 위치(소리나는 방향)를 추적하는 기능을 보여줍니다. 아무 소리에나 반응하는 것이 아닌 사람의 음성에만 반응한 다는 것이 중요하지요.



아래의 데모는 장난감이 사람의 대화를 따라서 입술을 움직이는 Lip-sync 동작을 보여줍니다. 음악 및 배경 소리와 사람의 음성을 정확히 구별해 냅니다. 이 회사의 Sound(일반 소리)와 Voice(사람의 음성)를 구별해 내는 기술은 인정할 만 합니다.



비슷한 내용으로 장난감 트럭이 음악에 맞추어 움직이는 데모입니다. 단순히 음악을 듣고 그에 반응하는 것이 아니라 음악의 비트를 예측해 움직이기 때문에 매우 정확합니다.



이 회사 제품에서 정말로 중요한 점은 "기본지식 없이도 아무나 할 수 있다"가 되겠습니다. 기능을 자세히 따져보면 복잡한 소프트웨어 솔류션에 비해 그만한 제약이 따르고, 초기에 개발 키트(약 800만원 정도)를 구매해야 하지만 용도에 따라서는 상당히 매력적인 제품임에는 틀림없습니다. 이 회사의 제품은 이미 자동차(네비게이션이나 선루프의 음성동작), 장난감, 가전제품, 휴대폰 및 모바일 기기에 상당히 다양하게 채용되고 있습니다.

No comments:

Post a Comment