상기와 같은 목적을 달성하기 위한 예외 상황 처리 방법의 특징은 (a) 예외 상황 처리를 위한 다수개의 DB를 구축하는 단계와, (b) 상기 다수개의 DB에 예외상황 해소 정보 및 규칙을 작성하여 저장하는 단계와, (c) 예외 상황에 해당하는 표현이 사용자로부터 발화되었을 때 상기 작성된 예외 상황 정보 및 규칙을 이용하여 예외 상황을 처리하는 단계를 포함하는데 있다.
바람직하게 상기 (a) 단계는 모의 대화 방식으로 수집된 음성 파일 및 음성 전사문과 음성 파일에 대한 음성 인식 결과 텍스트로 구축된 음성 대화 말뭉치에서 예외 상황과 음성 인식 오류를 나타내는 예외 상황 말뭉치를 구축하는 단계와, 상기 구축된 예외 상황 말뭉치에 기반하여 예외 상황 처리에 필요한 서비스 미지원 표현 DB, 중의적 표현 DB, 음성 인식 오류 DB 및 발화 오류 판별 DB 중 적어도 하나 이상을 구축하는 단계를 포함하는 것을 특징으로 한다.
바람직하게 상기 제 (b) 단계는 상기 서비스 미지원 표현 DB, 중의적 표현 DB, 음성 인식 오류 DB 및 발화 오류 판별 DB 각각에 저장된 예외 상황 별로 예외 상황 해소 정보 및 규칙을 생성하여 저장하는 것을 특징으로 한다.
바람직하게 상기 제 (c) 단계는 상기 시스템에서 제공할 수 없는 단어 및 문장으로 인한 서비스 미지원 표현이 발화되면 서비스될 시스템에서 제공 가능한 단어 및 문자를 생성하는 단계와, 상기 생성된 단어 및 문자를 이용하여 지원 가능 서비스를 제시하는 단계를 포함하는 것을 특징으로 한다.
바람직하게 상기 제 (c) 단계는 상기 중의성을 가진 단어 또는 문장들로 인한 중의적 표현이 포함되어 발화되면 히스토리를 이용한 중의적 해결가능 여부를 다시 판단하는 단계와, 상기 판단 결과 히스토리를 이용해 중의성 해결이 가능하면 중의성을 해소하는 단계와, 상기 판단 결과 히스토리를 이용해 중의성 해결이 불가능하면 중의성 해소에 따른 부대화를 이용하여 중의성을 해소하는 단계를 포함하는 것을 특징으로 한다.
바람직하게 상기 제 (c) 단계는 상기 빈번한 음성 인식 오류 단어, 문장, 패턴으로 인한 음성 인식 오류 예외 상황이 발견되면 오류해소 테이블을 이용한 음성인식 오류의 해결 가능여부를 판단하는 단계와, 상기 판단결과 상기 오류해소 테이 블을 이용해 해결이 가능하면 이를 통해 음성인식오류를 해소하는 단계와, 상기 판단결과 상기 오류해소 테이블을 이용해 해결이 불가능하면 인식오류 해소에 따른 부대화를 이용하여 중의성 해소 또는 멀티 모달 입력장비로 전환하는 단계를 포함하는 것을 특징으로 한다.
바람직하게 상기 제 (c) 단계는 이전문장과 동일하거나 또는 유사한 단어로 이루어진 유사한 어순의 문장이 출현하여 사용자 답변을 오류로 판단하는 발화오류가 발견되면 발화오류 해소에 따른 부대화를 이용하여 오류를 해소하는 것을 특징으로 한다.
상기와 같은 목적을 달성하기 위한 예외 상황 처리 장치의 특징은 사용자의 발화를 텍스트로 변환하는 음성 인식부와, 상기 변환된 텍스트를 입력받아 음성 합성에 필요한 출력문을 생성하는 대화 처리부와, 상기 생성되는 출력문을 토대로 합성음을 생성하는 음성 합성부로 구성되는 대화형 음성 인터페이스 장치에 있어서, 모의 대화 방식에 의해 수집된 음성 파일, 음성 전사문 및 수집된 음성 파일 중 하나 이상을 이용하여 상기 음성 인식부에서 변환된 음성 인식 결과 텍스트를 추가하여 구성하는 음성 대화 말뭉치와, 상기 음성대화 말뭉치에 대응하여 예외 상황 및 음성 인식 오류로 구성된 예외 상황 말뭉치와, 상기 구성된 예외 상황 말뭉치를 이용해 예외 상황에 해당되는 구체적인 정보등을 DB로 구성한 예외상황처리대상DB와, 상기 예외상황처리대상DB에 구성된 정보를 이용하여 해당 표현마다 오류 해소 정보 및 규칙들을 작성하는 오류 해소 처리부를 포함하는 것을 특징으로 한다.
바람직하게 상기 음성대화 말뭉치는 WOZ(Wizard-of-Oz-Simulating)법인 모의 대화방식으로 구축되는 것을 특징으로 한다.
바람직하게 상기 예외상황처리대상DB는 사용자가 직관에 의해 빈번하게 발화하지만 실제 서비스될 시스템에서는 제공할 수 없는 단어 및 문장들을 모아 놓은 서비스 미지원 표현 DB와, 중의성을 가진 단어 또는 문장을 모아 놓은 중의적 표현 DB와, 빈번한 음성 인식 오류 단어, 문장, 패턴을 모아 놓은 음성 인식 오류 DB와, 사용자 답변이 이전 문장과 동일하거나 또는 유사한 단어로 이루어진 유사한 어순의 문장 등이 출현하는 경우 등과 같이 사용자 답변을 오류로 판단할 수 있는 규칙들을 모아 놓은 발화 오류 판별 DB로 구성되는 것을 특징으로 한다.
본 발명의 다른 목적, 특성 및 이점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
본 발명에 따른 대화형 음성 인터페이스 시스템에서의 예외 상황 처리 방법의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 1 은 본 발명에 따른 대화형 음성 인터페이스 장치를 나타낸 구성도이다.
도 1과 같이, 대화형 음성 인터페이스 장치(100)는 사용자의 발화를 텍스트로 변환하는 음성 인식부(110)와, 상기 변환된 텍스트를 입력받아 기 구축된 예외 상황 처리 대상 DB 및 이를 해결하기 위한 예외 해소 정보 및 규칙들을 이용하여 예외 상황이 처리된 음성 합성에 필요한 출력문을 생성하는 대화 처리부(120)와, 상기 대화 처리부에서 예외 상황 처리를 통해 출력되는 출력문을 토대로 합성음을 생성하는 음성 합성부(130)로 구성된다.
이때, 상기 대화 처리부(120)는 사용자에 의한 예외 발화와 음성 인식 오류 등을 추출하고, 기 구축된 예외 상황 처리 대상 DB와 이를 해결하기 위한 예외 해소 정보 및 규칙들을 이용하여 예외 상황을 처리하는 예외 상황 처리부(121)와, 예외 상황 처리를 통해 출력된 텍스트를 기반으로 사용자의 발화 의도를 파악하는 입력문 분석부(123)와, 현재의 발화가 어떠한 대화 흐름에 있는지를 판단하는 대화 관리부(125) 및 작업 관리부(127)와, 음성 합성에 필요한 출력문을 생성하는 출력문 생성부(129)로 구성된다.
도 2 는 본 발명에 따른 대화형 음성 인터페이스 시스템에서의 예외 상황 처리부를 상세히 나타낸 구성도이다.
도 2와 같이, 모의 대화 방식에 의해 수집된 음성 파일 및 음성 전사문, 그리고 수집된 음성 파일을 이용하여 상기 음성인식부(110)에서 변환된 음성 인식 결과 텍스트를 추가하여 구성된 음성 대화 말뭉치(200)와, 상기 음성대화 말뭉치(200)에 대응하여 예외 상황 및 음성 인식 오류로 구성된 예외 상황 말뭉치(210)와, 상기 구성된 예외 상황 말뭉치(210)를 이용해 예외 상황에 해당되는 구체적인 정보등을 DB로 구성한 예외상황처리대상DB(220)와, 상기 예외상황처리대상DB(220)에 구성된 정보를 이용하여 해당 표현마다 오류 해소 정보 및 규칙들을 작성하는 오류 해소 처리부(230)로 구성된다.
이때, 상기 음성대화 말뭉치(200)는 WOZ(Wizard-of-Oz-Simulating)법과 같은 모의대화방식으로 구축되는 것이 바람직하다.
아울러 상기 예외상황처리대상DB(220)는 사용자가 직관에 의해 빈번하게 발화하지만 실제 서비스될 시스템에서는 제공할 수 없는 단어 및 문장들을 모아 놓은 서비스 미지원 표현 DB(221)와, 중의성을 가진 단어 또는 문장을 모아 놓은 중의적 표현 DB(223)와, 빈번한 음성 인식 오류 단어, 문장, 패턴을 모아 놓은 음성 인식 오류 DB(225)와, 사용자 답변이 이전 문장과 동일하거나 또는 유사한 단어로 이루어진 유사한 어순의 문장 등이 출현하는 경우 등과 같이 사용자 답변을 오류로 판단할 수 있는 규칙들을 모아 놓은 발화 오류 판별 DB(227)를 포함하여 구성된다.
이때, 상기 예외상황처리대상DB(220)에는 필요에 따라 다른 종류의 DB들도 추가될 수 있다.
이와 같이 구성된 본 발명에 따른 예외 상황 처리 장치 및 이를 이용한 대화형 음성 인터페이스 장치에 따른 동작을 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
도 2를 참조하여 설명하면, 모의 대화 방식에 의해 수집된 음성 파일 및 음성 전사문으로 음성 대화 말뭉치(200)를 구축하고 여기에 수집된 음성 파일을 이용하여 상기 음성인식부(110)에서 변환된 음성 인식 결과 텍스트를 음성 대화 말뭉치(200)에 추가 구축한 후, 상기 음성대화 말뭉치(200)에 대응하여 예외 상황 및 음성 인식 오류로 구성된 예외 상황 말뭉치(210)를 구축한다.
이때, 상기 음성대화 말뭉치(200)는 사용자에게 나중에 실제 구축될 시스템을 이용할 때와 동일한 정보만을 제공한 상태에서 대화를 수집한다.
상기 대화를 수집하는 방법은 목표로 하는 시스템의 성능 수준에서 자연스럽게 대화를 진행해 나가되, 한편으로는 사용자의 발화에 예외 상황이 발생할 수 있도록 사용자를 유도하여 대화를 진행해 나가면서 수집하게 된다.
이렇게 수집된 사용자의 발화에 대하여는 대화형 음성 인터페이스 시스템에 적용하고자 하는 음성인식기를 이용하여 음성 인식 결과도 함께 음성 대화 말뭉치(200)로 구축한다. 또한, 구축된 음성 대화 말뭉치(200)에 대해서는 정상적인 경우와 사용자에 의한 예외 상황, 그리고 인식 오류의 경우 등을 판별할 수 있는 주석을 달아 예외 상황 말뭉치(210)를 재구축하도록 한다.
이와 같이, 주석이 부착된 예외 상황 말뭉치(210)를 이용해 예외 상황 처리를 위한 각종 DB를 구축하도록 한다.
이때, 상기 구축될 수 있는 DB로는 먼저, 사용자가 직관에 의해 빈번하게 발화하지만 실제 서비스될 시스템에서는 제공할 수 없는 단어 및 문장들을 모아 놓은 ‘서비스 미지원 표현 DB(221)’, 그리고 중의성을 가진 단어 또는 문장을 모아 놓은 ‘중의적 표현 DB(223)’, 또 빈번한 음성 인식 오류 단어, 문장, 패턴을 모아 놓은 ‘음성 인식 오류 DB(225)’, 다음으로 사용자 답변이 이전 문장과 동일하거나 또는 유사한 단어로 이루어진 유사한 어순의 문장 등이 출현하는 경우 등과 같이 사용자 답변을 오류로 판단할 수 있는 규칙들을 모아 놓은 ‘발화 오류 판별 DB(227)’ 등이 있으며 필요에 따라 다른 종류의 DB들도 추가될 수 있다.
상기 예외상황처리대상DB(220) 구축이 완료되면 구축된 DB를 이용해 예외 상황을 해결할 수 있도록 예외 상황 해소 정보 및 규칙들을 작성한다.
즉, 상기 '서비스 미지원 표현 DB(221)'을 이용해 이에 해당하는 표현이 입력되면 지원하지 않는 서비스라는 메시지를 출력할 수 있도록 하고 입력된 단어 유형에 따라 지원 가능한 관련 서비스를 제시할 수 있도록 준비한다.
그리고 상기 '중의적 표현 DB(223)'을 이용해서는 해당 표현의 대화이력(Dialog history)을 이용해 중의성이 해소될 수 있는 경우에는 식별자 정보를 부착해 이후 시스템에서 대화이력을 이용해 중의성을 해소하도록 하고 이것이 불가능한 경우는 해당 표현마다 중의성을 해소할 수 있도록 시스템 주도하의 오류 해소 부대화(subdialog)를 전개하도록 구성한다.
다음으로 상기 '음성 인식 오류 DB(225)'를 이용해 오인식된 결과가 의미상 불가능한 표현이며 동일한 상황에서 동일하게 오인식 되는 경우는 자동 수정이 가능하도록 오류 해소 테이블을 작성하고, 그렇지 못한 경우에는 앞서와 마찬가지로 부대화를 전개할 수 있도록 구성하거나 멀티 모달(Multi-modal) 입력 장비가 사용 가능한 경우에는 이를 이용해 오류를 해소할 수 있도록 준비한다. 이를 응용해 만일 답변으로 음성 인식 오류 DB에 존재하는 표현이 등장할 가능성이 높을 것으로 예상되는 경우에는 미리 사용자에게 인식 성능을 향상시킬 수 있도록 발화해줄 것을 요청하도록 하거나 멀티모달 입력 장비의 이용이 가능하다면 이로 선 전환하여 초기 단계에서 음성 인식 오류를 방지하도록 규칙을 작성할 수도 있다.
그리고 상기 '발화 오류 판별 DB(227)'를 이용해서는 사용자의 해당 발화가 발화 오류 판별 규칙에 따른 오류에 해당하는지를 판단하여 오류일 가능성이 높은 발화인 경우에는 이를 해소할 수 있는 부대화를 전개할 수 있도록 준비한다.
지금까지 언급한 예외 상황 해소 정보 및 규칙은 적용되는 시스템에 따라 다양하게 작성될 수 있으나 이해를 돕기 위하여 날씨 정보 제공 대화형 음성 인터페이스 시스템을 가정해 출현할 수 있는 오류와 이의 해소 방법에 대한 대표적인 실 시예를 표 1에 나타내었다.
|
예외 발화 |
예외 내용 |
예외 해소 방법 |
서비스 미지원 표현 DB |
세차해도 괜찮아? 올 여름 더워? 설악산 단풍 언제 부터지? |
시스템의 능력이 단순 기상 정보만을 제공할 수 있는 데에 그치는데 반해 복잡한 추론이 필요한 날씨 정보를 요청 |
빈번히 등장하는 서비스 미지원 발화의 경우 이에 대한 음성 인식을 가능하게 한 후, 이러한 발화가 입력으로 들어올 경우 시스템에서 제공 가능한 지역별 날씨 및 기상 상황을 안내함으로써 예외 상황 해소 |
중의적 표현 DB |
서울도 알려줘 서울은 어때 |
서울의 어떠한 것을 알려달라는 것인지 현재 문장만 가지고는 판단 불가능 |
이러한 표현은 앞선 정보 요청 발화가 존재하는 상황에서만 가능하다는 것을 알 수 있으므로 미리 식별자 정보를 부착해 식별자 정보가 부착된 표현이 입력으로 들어올 경우 시스템에서 대화 이력을 이용해 중의성 해소 |
오늘 예상 온도는? |
예상온도가 예상 최저기온을 묻는 것인지 예상 최고 기온을 묻는 것인지 판단 불가능 |
중의성 해소가 가능한 부가적인 정보 없이 이러한 발화가 입력으로 들어올 경우 예상 최저 기온을 묻는 것인지 예상 최고 기온을 묻는 것인지 판단 가능한 부대화를 전개해 중의성 해소 |
음성 인식 오류 DB |
제주도의 눈 |
화자가 의도한 발화가 ‘제주도는?’인데 음운적 유사성 때문에 오인식 된 경우 |
빈번하게 오인식 되는 대상에 속하는 표현이 입력으로 들어올 경우 만일 ‘제주도 눈’이 언제나 동일하게 오인식 되는 표현이며 오인식된 발화가 의미를 가지지 못하는 경우라면 ‘제주도는?’을 발화한 것으로 자동 수정을 하고 그럴 수 없는 경우에는 부대화 전개로 중의성 해소 |
발화 오류 판별 DB |
(‘오늘 온도 알려 줘’발화 후) 오늘 온도 알려달 라니까 |
시스템이 응답을 제공했는데도 사용자가 이전 발화와 동일하거나 유사한 표현으로 재발화한 경우 |
이러한 발화의 경우 차상위 인식 결과 정보를 활용해 사용자의 의도한 발화가 차상위 질문인지 묻거나 앞단계부터 대화를 재시작하는 등의 부대화를 전개한다. 만일 멀티모달 입력 장비가 사용 가능한 경우 멀티모달 입력 장비로 전환하며 이용이 불가능한 경우에는 유사 구문으로 발화할 것을 요청하는 등의 방법으로 예외 상황 해소 |
도 3 은 본 발명에 따른 예외 상황 처리방법을 나타낸 흐름도로서, 표 1에서 나타내고 있는 것과 같이 준비된 예외상황처리대상DB(220) 및 오류 해소 정보와 규칙들을 적용하여 설명하면 다음과 같다.
먼저, 음성 인식부(110)를 통해 사용자의 발화를 텍스트로 변환하여 음성을 인식한다(S10).
이어 예외 상황 처리부(121)는 사용자로부터 입력된 발화에 앞서 상기 인식된 음성 인식 결과로서 입력된 내용이 미리 구축된 각각의 예외상황처리대상DB(220)에 해당되는 표현이 존재하는지 검사한다(S20).
그리고 상기 검사 결과 해당하는 표현이 존재할 경우 각 예외 상황 DB의 해당 표현마다 작성된 오류 해소 정보 및 규칙에 따라 오류를 해결한다.
즉, 상기 검사결과(S20) 실제 서비스될 시스템에서 제공할 수 없는 단어 및 문자들로 인한 서비스 미지원 발화로 판별되면(S30) 서비스 미지원 생성 및 지원가능 서비스를 제시한다(S40).
그리고 상기 검사결과(S20), 중의성을 가진 단어 또는 문장들로 인한 중의적 표현 포함 발화로 판별되면(S50) 히스토리를 이용한 중의성 해결 가능여부를 다시 판단한다(S60). 그리고 히스토리를 이용해 중의성 해결이 가능하면 중의성을 해소하고(S70), 상기 히스토리를 이용해 중의성 해결이 불가능하면 중의성 해소에 따른 부대화를 이용하여 중의성을 해소한다(S80).
또한, 상기 검사결과(S20), 빈번한 음성 인식 오류 단어, 문장, 패턴으로 인한 음성인식 오류예상 발화로 판별되면(S90) 오류해소 테이블을 이용한 음성인식 오류의 해결 가능여부를 다시 판단한다(S100). 그리고 상기 오류해소 테이블을 이용해 해결이 가능하면 이를 통해 음성인식오류를 해소하고(S110), 상기 오류해소 테이블을 이용해 해결이 불가능하면 인식오류 해소에 따른 부대화를 이용하여 중의성 해소 또는 멀티 모달 입력 장비로 전환한다(S120).
아울러, 상기 검사결과(S20), 이전 문장과 동일하거나 또는 유사한 단어로 이루어진 유사한 어순의 문장 등이 출현하는 경우와 같이 사용자 답변이 발화오류로 판별되면(S130), 발화오류 해소에 따른 부대화를 이용하여 오류를 해소한다(S140). 또한, 이렇게 오류를 해소한 상황은 발화 오류 판별 DB에 추가로 저장해 이후에 동일한 상황에 동일한 발화가 입력으로 들어왔을 경우에는 부대화를 전개하지 않고도 오류를 해결할 수 있도록 한다(S150).
이렇게 예외 상황 처리부(121) 결과에 따라 대화 처리를 진행하여 출력문을 생성하고(S160), 이 출력문을 토대로 음성 합성부(120)에서 합성음을 생성하게 된다(S170).
이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 또한 설명하였으나, 본 발명은 상기한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시 가능한 것은 물론이고, 그와 같은 변경은 기재된 청구범위 내에 있게 된다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.