상기 목적을 달성하기 위한 본 발명은, 휴대 단말에서의 음성인식 장치에 있어서, 사용자의 명령(음성인식 모드 선택)을 입력받아 선택결과를 나타내는 사용자 인터페이싱수단; 음성인식시 발화된 음성의 특징을 추출하기 위한 음성특징 추출수단; 국부음성인식 모드에서, 음성의 특징에 따른 음성인식 기능을 수행하여 인식결과를 상기 사용자 인터페이싱수단으로 알리기 위한 음성인식수단; 및 네트워크 상태가 양호하면 분산음성인식 모드를 유지하여, 상기 분산음성인식 모드에서 음성특징을 네트워크를 통해 원격 음성인식 서버로 전송한 후 그 인식결과를 상기 사용자 인터페이싱수단으로 알리고, 네트워크 상태가 불량하면 상기 국부음성인식 모드로 절체하여, 상기 국부음성인식 모드에서 네트워크 상태를 주기적으로 감시하다가 상태 반전시(양호시) 상기 분산음성인식 모드로의 절체를 수행하기 위한 스위칭수단을 포함하여 이루어진 것을 특징으로 한다.
그리고, 본 발명은 휴대 단말에서의 음성인식 방법에 있어서, 분산음성인식 모드에서, 네트워크의 상태를 판단하는 제 1 단계; 상기 제 1 단계의 판단 결과에 따라, 네트워크 상태가 양호하면, 분산음성인식 모드를 유지하여, 상기 분산음성인 식 모드에서 음성특징을 네트워크를 통해 원격 음성인식 서버로 전송한 후 그 인식결과에 따라 인식결과를 수행하는 제 2 단계; 및 상기 제 1 단계의 판단 결과에 따라, 네트워크 상태가 불량하면, 국부음성인식 모드로 절체(전환)하여 상기 휴대 단말 자체에서 국부 음성인식을 수행하고, 상기 국부음성인식 모드에서 네트워크 상태를 주기적으로 감시하다가 상태 반전시(양호시) 상기 분산음성인식 모드로의 절체(복귀)를 수행하는 제 3 단계를 포함하여 이루어진 것을 특징으로 한다.
한편, 본 발명은 네트워크 상황에 따른 선택적 음성인식을 위하여, 프로세서를 구비한 휴대 단말에, 분산음성인식 모드에서, 네트워크의 상태를 판단하는 제 1 기능; 상기 제 1 기능의 판단 결과에 따라, 네트워크 상태가 양호하면, 분산음성인식 모드를 유지하여, 상기 분산음성인식 모드에서 음성특징을 네트워크를 통해 원격 음성인식 서버로 전송한 후 그 인식결과에 따라 인식결과를 수행하는 제 2 기능; 및 상기 제 1 기능의 판단 결과에 따라, 네트워크 상태가 불량하면, 국부음성인식 모드로 절체(전환)하여 상기 휴대 단말 자체에서 국부 음성인식을 수행하고, 상기 국부음성인식 모드에서 네트워크 상태를 주기적으로 감시하다가 상태 반전시(양호시) 상기 분산음성인식 모드로의 절체(복귀)를 수행하는 제 3 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명은 네트워크 상황을 휴대 단말에서 판단하여 국부 음성인식 엔진 혹은 원격 음성인식 서버를 통해서 선택적으로 음성인식 기능을 수행할 수 있다. 그러므로, 네트워크 상황이 좋은 경우 휴대 단말의 자원을 최소한의 음성인식 기능을 위해 배분하여 자원의 효율적 이용과 빠른 음성인식 시간을 얻을 수 있으며(분산음 성인식), 반대의 경우 다소 늦은 인식시간과 떨어지는 인식 정확도가 나오지만 확실히 인식결과를 얻을 수 있다(국부음성인식).
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1 은 본 발명에 따른 네트워크 상황에 따른 선택적 음성인식 장치의 일실시예 구성도이다.
휴대 단말의 음성인식 프로그램(본 발명에 따른 네트워크 상황에 따른 선택적 음성인식 장치)은 크게 4개의 모듈로 구성되는데, 이를 도 1을 참조하여 살펴보면, 사용자의 명령(음성인식 모드 선택)을 입력받아 선택결과를 나타내는 다이얼로그 매니저(dialog manager)(10)와, 음성인식시 발화된 음성의 특징을 추출하기 위한 음성특징 추출부(30)와, 국부음성인식 모드에서, 음성의 특징에 따른 음성인식 기능을 수행하여 인식결과를 다이얼로그 매니저(10)로 알리기 위한 음성인식 엔진(40)과, 네트워크 상황이 양호하면 분산음성인식 모드를 유지하여, 분산음성인식 모드에서 음성특징을 네트워크를 통해 원격 음성인식 서버(엔진)로 전송한 후 그 인식결과를 다이얼로그 매니저(10)로 알리고, 네트워크 상황이 불량하면 국부음성인식 모드로 절체하여, 국부음성인식 모드에서 네트워크 상황을 주기적으로 감시하여 상황 반전시(양호시) 분산음성인식모드로의 절체를 수행하기 위한 네트워크 매니저(network manager)(20)를 포함한다.
다이얼로그 매니저(10)는 사용자의 명령을 수행하고, 모드 변환 및 돌발 상 황을 텍스트 혹은 음성으로 알린다.
네트워크 매니저(20)는 네트워크 상황이 기본적으로 원격음성인식 모드에 맞는지 판단하고 감시한다.
음성특징 추출부(30)는 사용자 음성이 발화되면 그 음성의 특징을 추출한다.
음성인식 엔진(40)은 국부음성인식 모드에서 음성인식 기능을 직접 수행하는 부분으로, 일반적으로 은닉 마르코프 모델(HMM : Hidden Markov Model)을 사용하고, 다음과 같은 데이터가 필요하다.
첫째, HMM 파라미터로서 엔진에서 사용하는 기본 인식 단위들에 대한 정보를 포함하고 있다.
둘째, 단어 사전으로서 인식 대상이 되는 단어들이 어떤 단위들로 이루어져 있는지를 나타낸다.
셋째, 문법 정보로서 단어들간의 관계나 또는 단어들을 여러 클래스로 나누었을 때 클래스간의 관계를 나타낸다. 여기서, 관계라는 것은 일종의 순서를 의미하는데, 예를 들어 문장을 인식할 경우, 특정 단어 다음에 어떤 단어가 나올 수 있는지에 대한 정보를 뜻한다.
넷째, 단어 리스트로서 인식 대상 단어들을 모아 놓은 것이다.
그럼, 휴대 단말에서 국부음성인식 모드 혹은 분산음성인식 모드의 선택적 음성인식 과정에 대해 상세히 설명하기로 한다.
휴대 단말에서는 두가지 모드(국부음성인식 모드, 분산음성인식 모드)로 음성인식 기능을 수행한다.
첫째. 국부음성인식 모드로, 분산음성인식 처리 기술을 이용하지 않는 순수 휴대 단말내의 음성인식 엔진을 이용해 음성인식을 수행한다. 이때, 사용자가 순수하게 국부음성인식 모드를 선택했을 경우에는 네트워크 매니저(20)를 제외한 다이얼로그 매니저(10), 음성특징 추출부(30), 음성인식 엔진(40)이 메모리에 로드되지만, 국부음성인식 모드에서 분산음성인식 모드로의 절체, 혹은 분산음성인식 모드에서 국부음성인식 모드로의 절체시에는 4가지 모듈(다이얼로그 매니저(10), 네트워크 매니저(20), 음성특징 추출부(30), 음성인식 엔진(40))이 메모리에 로드된다.
둘째. 분산음성인식 모드로, 네트워크를 기반으로 분산음성인식(DSR) 처리 기술을 이용하여 원격 음성인식 서버와 통신으로 음성인식 기능을 수행한다. 이때, 음성인식 엔진(40) 부분을 제외한 3가지 모듈(다이얼로그 매니저(10), 네트워크 매니저(20), 음성특징 추출부(30))이 메모리에 로드된다.
즉, 국부음성인식 모드 및 분산음성인식 모드 공통으로 다이얼로그 매니저(10), 음성특징 추출부(30)가 메모리에 로드된다. 특히, 네트워크 매니저(20)는 사용자가 순수하게 국부음성인식 모드를 선택하였을 때만 제외하고 메모리에 로드되고(즉, 분산음성인식 모드시에 메모리에 로드됨), 음성인식 엔진(40)은 국부음성인식 모드에서만 메모리에 추가된다.
사용자가 휴대 단말의 음성인식 프로그램 실행시, 다이얼로그 매니저(10)가 실행되어 사용자에게 주어진 시간이내에 국부음성인식 모드 혹은 분산음성인식 모드를 선택할 수 있는 기능을 제공한다. 이때, 만약 주어진 시간내에 사용자의 모드 선택이 없으면, 분산음성인식 모드를 선택하는 것으로 간주한다.
따라서, 만약 사용자가 분산음성인식 모드를 선택하였거나 혹은 분산음성인식 모드를 선택한 것으로 간주한 경우에, 분산음성인식 모드에서는 먼저 네트워크 매니저(20)를 메모리에 로드한 후, 네트워크 매니저(20)를 실행시켜, 첫째 네트워크의 속도(bandwidth)를 측정하여 기준속도 이상이 되는지를 확인한다. 확인 결과, 네트워크의 속도가 기준속도 이상이 되면, 둘째 원격 음성인식 서버에 기준 파이로트 음성특징(예를 들면, "서울"이라는 음성특징 파라미터)을 네트워크를 통해 전송한다. 이에 대해, 원격 음성인식 서버는 그 음성특징을 받아, 음성인식 기능을 수행하여, 그 결과를 휴대 단말로 전송한다. 그러면, 휴대 단말의 네트워크 매니저(20)는 그 결과("서울")가 맞는지, 그리고 기준시간 이내에 도착하였는지를 확인하여, 인식결과가 맞고 그 기준시간이내를 만족하면, 분산음성인식 모드를 유지한다.
이 분산음성인식 모드에서는, 사용자 음성이 발화되면 음성특징 추출부(30)를 통해 그 음성을 추출하고, 네트워크 매니저(20)를 통해 원격 음성인식 서버로 특징정보를 보내 정상적으로 음성인식 기능을 수행한다.
그러나, 분산음성인식 모드에서 갑자기 네트워크 상황이 안좋아지거나, 혹은 기타 이유로 기준시간 이내에 음성인식 결과가 도착하지 않을 경우, 현재 활성화된 분산음성인식 모드를 해제하고 국부음성인식 모드로 절체함과 동시에 사용자에게 인식 모드 전환을 텍스트 혹은 음성합성으로 알린다. 이때, 국부음성인식 모드로의 절체시에는 음성인식 엔진(40)이 관련 파일과 함께 메모리에 할당된다.
이렇게 단말 자체의 음성인식 엔진(40)을 이용하여 음성인식을 수행하는 국 부음성인식 모드 중, 네트워크 상황이 좋아져 혹은 기타 이유가 해제되어 원격 음성인식 서버로부터 서버 생존신호(alive signal)가 기준주기 t로 n개 이상 전송되어 오면, 현재 활성화된 국부음성인식 모드를 해제하고 분산음성인식 모드로의 전환(절체)를 사용자에게 텍스트 혹은 음성합성으로 알린다. 이때, 분산음성인식 모드로의 전환(절체)에 따라 음성인식 엔진(40)에 해당하는 자원이 메모리에서 해제된다.
상기 분산음성인식 모드에서는 원격 음성인식 서버로부터 주기적으로 서버 생존신호(alive signal)를 푸쉬(push)받는다. 이렇게 서버 생존신호 도착에 이상이 있는 경우, 국부음성인식 모드로 전환되며, 국부음성인식 모드에서 네트워크의 상황이 좋아져서 서버 생존신호(alive signal)가 기준주기 t로 n개 이상 전송되어 오면 분산음성인식 모드로 전환(절체)된다.
도 2 는 본 발명에 따른 네트워크 상황에 따른 선택적 음성인식 방법에 대한 일실시예 흐름도이다.
도 2에 도시된 바와 같이, 본 발명에 따른 네트워크 상황에 따른 선택적 음성인식 방법은, 먼저 사용자가 음성인식 프로그램을 수행하면(201) 다이얼로그 매니저(10)가 메모리에 로드되고(202), 사용자의 모드선택을 기다린다(203).
이때, 만약 사용자가 주어진 시간내에 국부음성인식 모드를 선택하면(204), 네트워크 매니저(20)를 제외한 음성특징 추출부(30)와 음성인식 엔진(40)을 메모리에 로드하여 음성인식을 휴대단말내 자체 수행한다(205).
그러나, 사용자가 주어진 시간(즉, 대기시간)내에 분산음성인식 모드를 선택 하거나 혹은 대기시간이 초과되면(204), 네트워크 매니저(20)를 메모리에 로드하여(206), 미리 준비된 파이롯트 음성특징(예를 들면, "서울"이라는 음성특징 파라미터)을 원격 음성인식 서버에 보내서 기준시간 이내에 응답이 오고 인식결과가 맞는지를 확인한다(207).
확인 결과, 음성인식 결과가 맞고 기준시간 이내에 응답되면, 음성인식 특징부(30)를 메모리에 로드하여(208), 분산 음성인식 모드로 들어간다(209).
확인 결과, 기준시간이내에 응답이 없거나 음성인식 결과가 틀리면, 국부음성인식 모드로 들어간다(205). 그러나, 이 경우 분산음성인식 모드가 선호된 선택이었으므로, 네트워크 매니저(20)는 계속 메모리에 상주하며 네트워크 상황을 감시하여 분산음성인식 모드로 들어갈 준비를 한다.
도 3 은 본 발명에 따른 네트워크 상황에 따른 선택적 음성인식 방법 중 분산음성인식 과정 및 국부음성인식 모드로의 전환 과정에 대한 일실시예 흐름도이다.
분산음성인식 과정은, 전술한 바와 같이 사용자가 주어진 시간(즉, 대기시간)내에 분산음성인식 모드를 선택하거나 혹은 대기시간이 초과된 상태에서 선택된 것으로, 미리 준비된 파이롯트 음성특징(예를 들면, "서울"이라는 음성특징 파라미터)을 원격 음성인식 서버에 보내서, 음성인식 결과가 맞고 기준시간 이내에 응답된 경우에 가능하다.
현재 활성중인 분산음성인식 모드에서, 사용자의 음성을 기다리다(301) 음성이 발화가 탐지되면(302) 음성의 특징을 추출한다(303).
이후, 휴지시간의 원격 음성인식 서버로부터 생존신호(alive signal)가 주기적으로 들어오는 조건 등을 만족하는, 이른바 분산처리 조건을 만족하면(304) 음성특징을 원격 음성인식 서버로 전송한다(306). 그러나, 만족하지 않으면(304), 즉 네트워크 상황이 안좋다고 판단되면 현재 활성중인 분산음성인식 모드를 해제하고 국부음성인식 모드로 전환(절체)한다(305). 이때, 다이얼로그 매니저(10)는 사용자에게 음성인식의 모드 전환(분산음성인식 모드→국부음성인식 모드)을 텍스트 혹은 음성합성으로 알린다.
다음으로, 음성특징을 원격 음성인식 서버로 전송했을 때(306), 원격 음성인식 서버로부터 기준시간 이내에 응답으로 인식결과가 도착하면(307) 인식결과를 수행하고(308), 그렇지 않고 기준시간을 초과하여 응답이 없으면(즉, 네트워크 상황이 안좋아지거나 기타 이유로 기준시간 이내에 음성인식 결과가 도착하지 않을 경우)(307) 현재 활성중인 분산음성인식 모드를 해제하고 국부음성인식 모드로 전환(절체)한다(305). 이때 역시, 다이얼로그 매니저(10)는 사용자에게 음성인식의 모드 전환(분산음성인식 모드→국부음성인식 모드)을 텍스트 혹은 음성합성으로 알린다.
도 4 는 본 발명에 따른 네트워크 상황에 따른 선택적 음성인식 방법 중 국부음성인식 과정 및 분산음성인식 모드로의 전환 과정에 대한 일실시예 흐름도이다.
국부음성인식 과정은, 사용자가 주어진 시간내에 국부음성인식 모드를 선택하거나, 분산음성인식 모드에서 네트워크 상황이 안좋아지거나 기타 이유로 기준시간 이내에 음성인식 결과가 도착하지 않아 국부음성인식 모드로 전환된 경우이다.
따라서, 사용자가 주어진 시간내에 국부음성인식 모드를 선택한 경우, 음성특징을 추출해야 하므로 음성 대기 상태에서(402) 사용자의 음성이 발화되면 이의 특징을 추출한다(403).
한편, 분산음성인식 모드에서 국부음성인식 모드로 전환(절체)된 경우에는, 사용자의 음성이 발화되어 음성이 추출되었으나 네트워크 상황이 안좋거나 기타 이유로 분산음성인식 처리를 못할 경우이므로, 별도로 음성특징을 추출할 필요가 없다.
이후, 국부 음성인식 엔진(40)을 메모리에 로드하여 추출된 음성특징에 대해 음성인식을 수행한다(404). 그 음성인식 결과가 나오면, 그에 따른 동작을 수행하고(405), 다시 네트워크 상황을 감시한다(406).
감시 결과, 네트워크가 회복되면 혹은 기타 이유가 해제되어 원격 음성인식 서버로부터 서버 생존신호(alive signal)가 기준주기 t로 n개 이상 전송되어 오면, 국부 음성인식 엔진 부분을 메모리에서 해제하고 다시 분산음성인식 모드로 전환(복귀)한다(407). 이때 역시, 다이얼로그 매니저(10)는 사용자에게 음성인식의 모드 전환(복귀)(국부음성인식 모드→분산음성인식 모드)을 텍스트 혹은 음성합성으로 알린다.
휴대 단말에 국부 음성인식 엔진을 이용할 경우, 통상 500단어 기준으로 음성인식 수행시간시 약 3~4M bytes의 runtime 메모리가 필요하다. 또한, 100Mhz CPU의 PDA 경우 통상 음성인식 정확도는 70%, 음성인식 시간은 대략 2 ~ 3초 정도 소요된다. 그러나, 분산음성인식(DSR) 처리 기술을 이용할 경우, 특징추출정보 추출 및 네트워크 전송에 수십 K bytes만이 요구된다. 또한, 네트워크가 1M bps bandwith에 고성능 원격 음성인식 서버를 이용할 경우, 1초 이내에 95% 이상의 인식률을 이룰 수 있다.
본 발명은 이렇게 DSR의 장점과 자체 음성인식 엔진을 이용하는 장점으로, 원격 음성인식 서버 이용으로 음성인식 기능을 수행함에 있어 최소한의 자원만을 이용하고 빠른 인식시간, 정확도를 얻을 수 있으며, 네트워크 상황이 안좋거나 기타 비상시 자체 음성인식 엔진을 이용함으로써 확실한 음성인식 기능을 보장할 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.