KR102632872B1 - 음성인식 오류 교정 방법 및 그 시스템 - Google Patents

음성인식 오류 교정 방법 및 그 시스템 Download PDF

Info

Publication number
KR102632872B1
KR102632872B1 KR1020230065396A KR20230065396A KR102632872B1 KR 102632872 B1 KR102632872 B1 KR 102632872B1 KR 1020230065396 A KR1020230065396 A KR 1020230065396A KR 20230065396 A KR20230065396 A KR 20230065396A KR 102632872 B1 KR102632872 B1 KR 102632872B1
Authority
KR
South Korea
Prior art keywords
word
words
voice recognition
correction
specific token
Prior art date
Application number
KR1020230065396A
Other languages
English (en)
Inventor
장우원
Original Assignee
주식회사 포지큐브
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 포지큐브 filed Critical 주식회사 포지큐브
Priority to KR1020230065396A priority Critical patent/KR102632872B1/ko
Application granted granted Critical
Publication of KR102632872B1 publication Critical patent/KR102632872B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/247Thesauruses; Synonyms
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/10Speech classification or search using distance or distortion measures between unknown speech and reference templates
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • G10L2015/0635Training updating or merging of old and new templates; Mean values; Weighting

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

음성인식 오류 교정 방법 및 그 시스템이 제공된다. 몇몇 실시예들에 따른 음성인식 오류 교정 방법은, 사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 단계, 단어 사전을 참조하여 타깃 텍스트의 특정 토큰과의 1차 유사도가 기준치 이상인 후보 단어를 결정하는 단계, 음성인식 텍스트의 오인식 빈도에 기반한 가중치 테이블을 이용하여 특정 토큰과 후보 단어 간의 2차 유사도를 산출하는 단계 및 2차 유사도를 기초로 후보 단어 중에서 교정용 단어를 선택하고 교정용 단어를 이용하여 특정 토큰을 교정하는 단계를 포함할 수 있다. 이러한 방법에 따르면, 음성인식 텍스트에 존재하는 오류가 정확하게 교정될 수 있다.

Description

음성인식 오류 교정 방법 및 그 시스템{METHOD FOR CORRECTING ERROR OF SPEECH RECOGNITION AND SYSTEM THEREOF}
본 개시는 음성인식(speech recognition or Speech-To-Text)을 통해 생성된 텍스트에 존재하는 오류를 교정하는 방법 및 그 시스템에 관한 것이다.
음성인식(speech recognition or Speech-To-Text)은 사람의 발화 음성을 인식하여 텍스트로 변환하는 기술을 의미한다. 일반적으로, 음성인식을 통해 얻어진 텍스트(이하, '음성인식 텍스트')는 발음기호 표현의 문자열이며, 이러한 문자열은 자음동화, 구개음화 등과 같은 발음 현상으로 인해 쓰기 표현과 다른 경우가 상당히 많다(e.g., '전라북도 진안군 진안읍 단양리'에 대한 발화 음성을 인식하면 '절라북도 지난군 지나늡 다냥리'와 같은 텍스트가 얻어짐). 따라서, 음성인식을 이용하는 대부분의 시스템들(e.g., 컨택 센터 시스템 등)은 음성인식 텍스트를 쓰기 표현으로 교정하는 후처리 과정을 필수적으로 수행하고 있다.
그런데, 개개인의 발음 특성, 부정확한 발음, 주변 소음 등과 같은 다양한 이유로 인해, 음성인식 텍스트에는 다양한 오류가 존재하게 되며, 후처리 과정에서 이러한 오류를 정확하게 교정하는 것은 상당히 어려운 일이다.
현재, 대부분의 시스템들은 미리 준비된 사전의 단어들과 음성인식 텍스트의 토큰들 간의 편집거리(edit distance)를 일일이 산출하는 방식으로 오류 교정을 수행하고 있다. 그러나, 이러한 방식은 단어 사전에서 음성인식 텍스트의 토큰과 편집거리가 동일한 단어들이 다수 발견되는 등의 문제로 인해 오류 교정의 정확도가 높지 않으며, 오류 교정 속도 또한 상당히 느리다는 단점이 존재한다.
한국등록특허 제10-2386529호 (2022.05.13 공고)
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 기술적 과제는, 음성인식의 오류를 정확하게 교정할 수 있는 방법 및 그 방법을 수행하는 시스템을 제공하는 것이다.
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 다른 기술적 과제는, 음성인식의 오류를 신속하게 교정할 수 있는 방법 및 그 방법을 수행하는 시스템을 제공하는 것이다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예들에 따른 음성인식 오류 교정 방법은, 적어도 하나의 컴퓨팅 장치에 의해 수행되는 방법에 있어서, 사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 단계, 단어 사전을 참조하여 상기 타깃 텍스트의 특정 토큰과의 1차 유사도가 기준치 이상인 후보 단어를 결정하는 단계, 음성인식 텍스트의 오인식 빈도에 기반한 가중치 테이블을 이용하여 상기 특정 토큰과 상기 후보 단어 간의 2차 유사도를 산출하는 단계 및 상기 2차 유사도를 기초로 상기 후보 단어 중에서 교정용 단어를 선택하고 상기 교정용 단어를 이용하여 상기 특정 토큰을 교정하는 단계를 포함할 수 있다.
몇몇 실시예들에서, 상기 2차 유사도 산출 단계는 상기 결정된 후보 단어의 개수가 복수인 경우에 수행될 수 있다.
몇몇 실시예들에서, 상기 단어 사전은 실제 단어에 대한 제1 단어 사전과 슈도(pseudo) 단어에 대한 제2 단어 사전을 포함하고, 상기 슈도 단어는 상기 실제 단어로부터 미리 설정된 최대편집거리 이내에 위치하는 단어이고 상기 실제 단어에 대한 삭제 연산을 통해 생성된 것일 수 있다.
몇몇 실시예들에서, 상기 가중치 테이블은 음소 단위의 오인식 빈도에 기반한 것이고, 상기 2차 유사도를 산출하는 단계는, 상기 특정 토큰의 음소열과 상기 후보 단어의 음소열을 비교하여 불일치 음소쌍을 검출하는 단계 및 상기 가중치 테이블에서 상기 불일치 음소쌍에 대응되는 가중치값을 이용하여 상기 2차 유사도를 산출하는 단계를 포함할 수 있다.
몇몇 실시예들에서, 상기 가중치 테이블은 음소의 서로 다른 배열 위치들에 대한 복수의 테이블들을 포함할 수 있다.
몇몇 실시예들에서, 상기 가중치 테이블은 초성 가중치 테이블, 중성 가중치 테이블 및 종성 가중치 테이블을 포함할 수 있다.
몇몇 실시예들에서, 상기 교정 결과에 대한 피드백 정보를 획득하는 단계 - 상기 피드백 정보는 상기 특정 토큰의 정답 단어 정보를 포함함 - 및 상기 피드백 정보를 이용하여 상기 가중치 테이블을 업데이트하는 단계를 더 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 다른 몇몇 실시예들에 따른 음성인식 오류 교정 방법은, 적어도 하나의 컴퓨팅 장치에 의해 수행되는 방법에 있어서, 실제 단어들을 포함하는 제1 단어 사전을 획득하는 단계, 상기 실제 단어들로부터 미리 설정된 최대편집거리 이내에 위치한 슈도(pseudo) 단어들을 포함하는 제2 단어 사전을 생성하는 단계 - 상기 슈도 단어들은 상기 실제 단어들에 대해 삭제 연산을 수행하여 생성된 것임 -, 사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 단계, 상기 제1 단어 사전과 상기 제2 단어 사전을 참조하여 상기 타깃 텍스트의 특정 토큰에 대한 교정용 단어를 결정하는 단계 및 상기 교정용 단어를 이용하여 상기 특정 토큰을 교정하는 단계를 포함할 수 있다.
몇몇 실시예들에서, 상기 최대편집거리는 음소 단위의 편집거리일 수 있다.
몇몇 실시예들에서, 상기 실제 단어들 중 특정 단어의 최대편집거리는 상기 특정 단어의 길이에 기초하여 결정될 수 있다.
몇몇 실시예들에서, 상기 실제 단어들은 미리 설정된 기준에 따라 제1 단어 그룹과 제2 단어 그룹을 포함하는 복수의 단어 그룹들로 구분되고, 상기 제1 단어 그룹의 최대편집거리는 상기 제2 단어 그룹의 최대편집거리와 다르게 설정될 수 있다.
몇몇 실시예들에서, 상기 교정용 단어를 결정하는 단계는, 상기 제1 단어 사전에서 상기 특정 토큰에 매칭되는 실제 단어가 검색되지 않는 경우, 상기 특정 토큰에 대해 삭제 연산을 수행하여 변형 토큰을 생성하는 단계 및 상기 제2 단어 사전에서 상기 변형 토큰과 매칭되는 슈도 단어가 검색된 경우, 상기 검색된 슈도 단어에 대한 실제 단어 중에서 상기 교정용 단어를 결정하는 단계를 포함할 수 있다.
몇몇 실시예들에서, 상기 제1 단어 사전과 상기 제2 단어 사전에 대한 검색은 해시값을 이용하여 수행될 수 있다.
몇몇 실시예들에서, 상기 교정용 단어를 결정하는 단계는 상기 제2 단어 사전에서 상기 변형 토큰과 매칭되는 슈도 단어가 검색되지 않고 상기 삭제 연산의 횟수가 상기 특정 토큰과 연관된 최대편집거리 이하인 경우, 상기 삭제 연산의 횟수를 증가시키고 상기 증가된 횟수에 따른 변형 토큰을 재생성하는 단계 및 상기 재생성된 변형 토큰을 이용하여 상기 제2 단어 사전을 다시 검색하는 단계를 더 포함할 수 있다.
몇몇 실시예들에서, 상기 교정용 단어를 결정하는 단계는, 상기 제1 단어 사전과 상기 제2 단어 사전을 참조하여 상기 특정 토큰의 교정에 이용될 후보 단어를 결정하는 단계, 음성인식 텍스트의 오인식 빈도에 기반한 가중치 테이블을 이용하여 상기 특정 토큰과 상기 후보 단어 간의 유사도를 산출하는 단계 및 상기 유사도를 기초로 상기 후보 단어 중에서 상기 교정용 단어를 선택하는 단계를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예들에 따른 음성인식 오류 교정 시스템은, 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하고, 상기 컴퓨터 프로그램은, 사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 동작, 단어 사전을 참조하여 상기 타깃 텍스트의 특정 토큰과의 1차 유사도가 기준치 이상인 후보 단어를 결정하는 동작, 음성인식 텍스트의 오인식 빈도에 기반한 가중치 테이블을 이용하여 상기 특정 토큰과 상기 후보 단어 간의 2차 유사도를 산출하는 동작 및 상기 2차 유사도를 기초로 상기 후보 단어 중에서 교정용 단어를 선택하고 상기 교정용 단어를 이용하여 상기 특정 토큰을 교정하는 동작을 위한 인스트럭션들을 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 다른 몇몇 실시예들에 따른 음성인식 오류 교정 시스템은, 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하고, 상기 컴퓨터 프로그램은, 실제 단어들을 포함하는 제1 단어 사전을 획득하는 동작, 상기 실제 단어들로부터 미리 설정된 최대편집거리 이내에 위치한 슈도(pseudo) 단어들을 포함하는 제2 단어 사전을 생성하는 동작 - 상기 슈도 단어들은 상기 실제 단어들에 대해 삭제 연산을 수행하여 생성된 것임 -, 사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 단계, 상기 제1 단어 사전과 상기 제2 단어 사전을 참조하여 상기 타깃 텍스트의 특정 토큰에 대한 교정용 단어를 결정하는 동작 및 상기 교정용 단어를 이용하여 상기 특정 토큰을 교정하는 동작을 위한 인스트럭션들을 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예들에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 단계, 단어 사전을 참조하여 상기 타깃 텍스트의 특정 토큰과의 1차 유사도가 기준치 이상인 후보 단어를 결정하는 단계, 음성인식 텍스트의 오인식 빈도에 기반한 가중치 테이블을 이용하여 상기 특정 토큰과 상기 후보 단어 간의 2차 유사도를 산출하는 단계 및 상기 2차 유사도를 기초로 상기 후보 단어 중에서 교정용 단어를 선택하고 상기 교정용 단어를 이용하여 상기 특정 토큰을 교정하는 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장될 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 다른 몇몇 실시예들에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 실제 단어들을 포함하는 제1 단어 사전을 획득하는 단계, 상기 실제 단어들로부터 미리 설정된 최대편집거리 이내에 위치한 슈도(pseudo) 단어들을 포함하는 제2 단어 사전을 생성하는 단계 - 상기 슈도 단어들은 상기 실제 단어들에 대해 삭제 연산을 수행하여 생성된 것임 -, 사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 단계, 상기 제1 단어 사전과 상기 제2 단어 사전을 참조하여 상기 타깃 텍스트의 특정 토큰에 대한 교정용 단어를 결정하는 단계 및 상기 교정용 단어를 이용하여 상기 특정 토큰을 교정하는 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장될 수 있다.
본 개시의 몇몇 실시예들에 따르면, 단어 사전을 참조하여 후보 단어가 결정되면, 오인식 빈도 기반의 가중치 테이블을 이용하여 타깃 텍스트(즉, 음성인식을 통해 생성된 텍스트)의 특정 토큰과 후보 단어 간의 유사도가 산출될 수 있다. 이러한 경우, 특정 토큰에 대한 교정용 단어가 정확하게 결정될 수 있으며, 그 결과 오류 교정의 정확도는 향상될 수 있다. 뿐만 아니라, 오인식 빈도 기반의 가중치 테이블을 통해 산출된 유사도는 편집거리(edit distance)가 동일한 후보 단어들에 대해 서로 다른 값을 갖는 경우가 대다수이기 때문에, 편집거리 기반 유사도의 비정밀성으로 인해 오류 교정의 정확도가 저하되는 문제가 용이하게 해결될 수 있다.
또한, 음소 단위의 가중치 테이블을 이용함으로써, 타깃 텍스트의 특정 토큰과 후보 단어 간의 유사도가 더욱 정확하게 산출될 수 있다. 이에 따라, 오류 교정의 정확도는 더욱 향상될 수 있다.
또한, 음소의 배열 위치, 사용자의 유형, 토픽, 음성 카테고리 등과 같은 다양한 기준에 따라 가중치 테이블을 세분화하여 생성함으로써, 타깃 텍스트의 토큰과 후보 단어 간의 유사도가 더욱 정확하게 산출될 수 있다. 이에 따라, 오류 교정의 정확도는 더욱 향상될 수 있다.
또한, 실제 단어로부터 최대편집거리 이내에 위치한 슈도(pseudo) 단어들이 생성되고, 실제 단어 외에 슈도 단어들을 더 이용하여 타깃 텍스트의 특정 토큰에 대한 매칭되는 후보 단어가 결정될 수 있다. 이에 따라, 다양한 오류가 존재하는 환경에서도, 후보 단어가 정확하게 결정될 수 있다(즉, 후보 단어가 검색되지 않는 경우가 최소화될 수 있음).
또한, 삭제 연산만을 이용하여 슈도 단어들이 생성될 수 있다. 이에 따라, 슈도 단어 사전의 크기는 크게 감소되고(즉, 스토리지 비용이 대폭 감소됨), 단어 사전에 대한 검색 속도는 향상될 수 있다.
또한, 슈도 단어(또는 실제 단어)의 해시값(e.g., 음소열의 해시값)을 단어 사전에 미리 저장해 놓고, 타깃 텍스트의 특정 토큰의 해시값(e.g., 음소열의 해시값)을 이용하여 단어 사전이 검색될 수 있다. 이에 따라, 단어 사전 검색에 소요되는 시간이 크게 감소될 수 있으며, 오류 교정 속도는 대폭 향상될 수 있다.
또한, 단어의 특성 등에 따라 최대편집거리를 다르게 설정함으로써, 슈도 단어에 대한 검색이 보다 효율적으로 수행될 수 있다.
본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 몇몇 실시예들에 따른 음성인식 오류 교정 시스템의 동작을 개략적으로 설명하기 위한 예시적인 도면이다.
도 2는 본 개시의 몇몇 실시예들에 따른 음성인식 오류 교정 시스템의 동작을 부연 설명하기 위한 예시적인 도면이다.
도 3은 본 개시의 몇몇 실시예들에 따른 음성인식 오류 교정 방법을 나타내는 예시적인 흐름도이다.
도 4는 도 3에 도시된 단어 사전 생성 단계의 세부 과정을 나타내는 예시적인 흐름도이다.
도 5는 도 3에 도시된 단어 사전 생성 단계의 세부 과정을 부연 설명하기 위한 예시적인 도면이다.
도 6은 도 3에 도시된 후보 단어 결정 단계의 세부 과정을 나타내는 예시적인 흐름도이다.
도 7은 본 개시의 몇몇 실시예들에 따른 오인식 빈도 기반의 가중치 테이블을 설명하기 위한 예시적인 도면이다.
도 8은 도 3에 도시된 유사도 산출 단계의 세부 과정을 설명하기 위한 예시적인 도면이다.
도 9 및 도 10은 도 3에 도시된 유사도 산출 단계의 세부 과정을 부연 설명하기 위한 예시적인 도면이다.
도 11은 본 개시의 몇몇 실시예들에 따른 음성인식 오류 교정 시스템의 활용예를 설명하기 위한 예시적인 도면이다.
도 12는 본 개시의 몇몇 실시예들에 따른 음성인식 오류 교정 시스템을 구현할 수 있는 예시적인 컴퓨팅 장치를 도시한다.
이하, 첨부된 도면을 참조하여 본 개시의 다양한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속한 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
본 개시의 다양한 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 이하의 실시예들에서 사용되는 용어(기술 및 과학적 용어를 포함)는 본 개시가 속한 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수도 있다. 본 개시에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시의 범주를 제한하고자 하는 것은 아니다.
이하의 실시예들에서 사용되는 단수의 표현은 문맥상 명백하게 단수인 것으로 특정되지 않는 한, 복수의 개념을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정되지 않는 한, 단수의 개념을 포함한다.
또한, 이하의 실시예들에서 사용되는 제1, 제2, A, B, (a), (b) 등의 용어는 어떤 구성요소를 다른 구성요소와 구별하기 위해 사용되는 것일 뿐, 그 용어에 의해 해당 구성요소의 본질이나 차례 또는 순서 등이 한정되지는 않는다.
이하, 첨부된 도면들을 참조하여 본 개시의 다양한 실시예들에 대하여 상세하게 설명한다.
도 1은 본 개시의 몇몇 실시예들에 따른 음성인식 오류 교정 시스템(10)의 동작을 개략적으로 설명하기 위한 예시적인 도면이다. 도 1 이하의 도면들에서 오류와 연관된 텍스트(e.g., 12 등)는 빗금 처리되어 있다.
도 1에 도시된 바와 같이, 음성인식 오류 교정 시스템(10)은 음성인식(speech recognition or Speech-To-Text)을 통해 생성된 텍스트(12)에 존재하는 오류를 교정할 수 있는 컴퓨팅 장치/시스템을 의미한다. 가령, 음성인식 오류 교정 시스템(10)은 사용자의 발화 음성(11)에 대한 음성인식을 통해 생성된 텍스트(12)를 입력받고 이에 대해 오류 교정을 수행하여 교정 텍스트(13)를 출력할 수 있다. 이하에서는, 설명의 편의상, 음성인식 오류 교정 시스템(10)을 '교정 시스템(10)'으로 약칭하도록 한다.
참고로, '교정'이라는 용어는 경우에 따라 '정정', '보정', '수정' 등과 같은 용어로 명명될 수도 있다.
또한, 교정 시스템(10)이 음성인식 기능을 구비한 경우, 교정 시스템(10)은 '음성인식 시스템'으로 명명될 수도 있다.
또한, 교정 시스템(10)이 다른 시스템(e.g., 컨택 센터 시스템)의 일부를 구성하는 경우, 교정 시스템(10)은 '음성인식 오류 교정 모듈', '음성인식 오류 교정부', '음성인식 오류 교정 교정기' 등과 같이 명명될 수도 있다.
구체적으로, 교정 시스템(10)은 오인식 빈도에 기반한 가중치 테이블을 이용하여 텍스트(12)에 존재하는 오류를 교정할 수 있다. 예를 들어, 도 2에 도시된 바와 같이, '경상남도 거제시 옥포동'에 대한 발화 음성을 인식하여 3개의 토큰들(22 내지 24)로 구성된 텍스트가 생성되었고 마지막 토큰(24)에 오류가 존재한다고 가정하자. 이러한 경우, 교정 시스템(10)은 오인식 빈도에 기반한 가중치 테이블(21)을 이용하여 마지막 토큰(24)에 대한 교정용 단어(25)를 결정하고 마지막 토큰(24)을 교정용 단어(25)로 교체함으로써 음성인식 텍스트의 오류를 교정할 수 있다. 구체적인 오류 교정 방법에 대해서는 도 3 이하의 도면들을 참조하여 보다 상세하게 설명하도록 한다. 이하에서는, 본 개시의 명료함을 위해, 가중치 테이블(21)의 참조번호가 변경될 수도 있다.
교정 시스템(10)은 적어도 하나의 컴퓨팅 장치로 구현될 수 있다. 예를 들어, 교정 시스템(10)의 모든 기능이 하나의 컴퓨팅 장치에서 구현될 수도 있고, 교정 시스템(10)의 제1 기능은 제1 컴퓨팅 장치에서 구현되고 제2 기능은 제2 컴퓨팅 장치에서 구현될 수도 있다. 또는, 교정 시스템(10)의 특정 기능이 복수의 컴퓨팅 장치들에서 구현될 수도 있다.
컴퓨팅 장치는 컴퓨팅 기능을 구비한 임의의 장치를 모두 포함할 수 있으며, 이러한 장치의 일 예시에 관하여서는 도 12를 참조하도록 한다. 컴퓨팅 장치는 다양한 구성요소들(e.g. 메모리, 프로세서 등)이 상호작용하는 집합체이므로, 경우에 따라 '컴퓨팅 시스템'으로 명명될 수도 있다. 물론, 컴퓨팅 시스템이란 용어는 복수의 컴퓨팅 장치들이 상호작용하는 집합체라는 개념도 포괄할 수 있다.
지금까지 도 1 및 도 2를 참조하여 본 개시의 몇몇 실시예들에 따른 교정 시스템(10)의 동작에 대해 개략적으로 설명하였다. 이하에서는, 도 3 이하의 도면들을 참조하여 상술한 교정 시스템(10)에서 수행될 수 있는 다양한 방법들에 대하여 상세하게 설명하도록 한다.
이하에서는, 이해의 편의를 제공하기 위해, 후술될 방법들의 모든 단계/동작이 상술한 교정 시스템(10)에서 수행되는 것을 가정하여 설명을 이어가도록 한다. 따라서, 특정 단계/동작의 주체가 생략된 경우, 교정 시스템(10)에서 수행되는 것으로 이해될 수 있다. 다만, 실제 환경에서는, 후술될 단계/동작들 중 일부가 다른 컴퓨팅 장치에서 수행될 수도 있다.
또한, 이하에서는, 보다 이해의 편의를 제공하기 위해, 음성인식 텍스트의 언어가 '한국어' 또는 '조합형 언어'인 경우를 가정하여 설명을 이어가도록 한다. 다만, 본 개시의 범위가 이에 한정되는 것은 아니며, 후술될 방법들은 실질적인 기술적 사상의 변경 없이도 다른 유형의 언어에 적용될 수 있다.
도 3은 본 개시의 몇몇 실시예들에 따른 음성인식 오류 교정 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 3에 도시된 바와 같이, 실시예들에 따른 음성인식 오류 교정 방법은 단어 사전을 생성하는 단계 S31에서 시작될 수 있다. 다만, 단어 사전을 생성하는 구체적인 방식은 실시예에 따라 달라질 수 있다.
몇몇 실시예들에서는, 실제 단어들로 구성된 제1 단어 사전과 슈도(pseudo) 단어들로 구성된 제2 단어 사전이 생성될 수 있다. 여기서, 실제 단어는 슈도 단어에 해당하지 않는 기존 단어를 의미한다. 이하, 도 4 및 도 5를 참조하여 본 실시예들에 대하여 부연 설명하도록 한다.
도 4에 도시된 바와 같이, 먼저 실제 단어들로 구성된 제1 단어 사전이 획득될 수 있다(S41). 가령, 교정 시스템(10)의 타깃 텍스트가 주소 관련 텍스트인 경우, 교정 시스템(10)은 주소 관련 단어들(e.g., 경기도, 서울시 등과 같은 지역명)을 수집하여 제1 단어 사전을 생성할 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니다.
단계 S42에서, 실제 단어들에 대해 최대편집거리가 설정될 수 있다. 여기서, 최대편집거리는 슈도 단어를 생성하기 위해 실제 단어에 대해 수행되는 편집 연산(e.g., 삽입, 삭제, 변경 연산 등)의 최대 횟수를 의미할 수 있다. 또한, 최대편집거리는 예를 들어 음소 단위의 편집 연산에 대한 횟수를 의미할 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니다. 최대편집거리는 경우에 따라 '허용편집거리'로 명명될 수도 있다. 당해 기술 분야의 종사자라면, 편집거리(edit distance)의 개념에 대해 이미 숙지하고 있을 것인 바, 이에 대한 설명은 생략하도록 한다. 이하에서는, 이해의 편의를 위해, 최대편집거리가 '음소 단위의 편집거리'인 경우를 가정하여 설명을 이어가도록 한다.
한편, 최대편집거리의 값을 결정하는 구체적인 방식, 최대편집거리를 설정하는 구체적인 방식 등은 다양하게 설계될 수 있다.
예를 들어, 최대편집거리의 값은 실제 단어의 길이(즉, 글자수)에 기초하여 결정될 수 있다. 보다 구체적인 예로서, 길이가 상대적으로 짧은 제1 실제 단어의 최대편집거리는 길이가 상대적으로 긴 제2 실제 단어보다 작은 값으로 결정될 수 있다. 길이가 짧은 실제 단어에 너무 큰 값의 최대편집거리가 설정되면, 너무 짧은 길이의 슈도 단어가 생성되어 후보 단어 검색의 정확도의 떨어질 수 있기 때문이다.
다른 예로서, 실제 단어들이 미리 설정된 기준(e.g., 의미적 특성, 카테고리(e.g., 장소, 시간 등과 같은 엔티티 카테고리), 관련된 토픽 등)에 따라 복수의 단어 그룹들로 구분될 수 있다. 그리고, 단어 그룹별로 최대편집거리가 다르게 설정될 수 있다(e.g., 제1 단어 그룹의 최대편집거리가 제2 단어 그룹의 최대편집거리가 다르게 설정됨). 보다 구체적인 예로서, 실제 단어들이 주소 관련 단어인 경우, 광역시/도와 관련된 실제 단어들(e.g., 경기도, 서울시)로 구성된 제1 단어 그룹, 시/군/구와 관련된 실제 단어들(e.g., 수원시, 장안구)로 구성된 제2 단어 그룹, 읍/면/동과 관련된 실제 단어들로 구성된 제3 단어 그룹의 최대편집거리가 서로 다르게 설정될 수 있다(e.g., 제1 단어 그룹의 최대편집거리가 가장 큰 값으로 설정됨).
또 다른 예로서, 최대편집거리는 상술한 예시들의 다양한 조합에 기초하여 정의되고 설정될 수도 있다. 가령, 교정 시스템(10)은 단어 그룹별로 최대편집거리를 다르게 설정하고, 동일 단어 그룹 내에서도 단어 길이에 따라 최대편집거리를 다르게 설정할 수도 있다(e.g., 그룹의 최대편집길이를 실제 단어의 길이에 맞게 조정하여 해당 실제 단어의 최대편집거리를 결정함).
한편, 몇몇 실시예들에서, 최대편집거리는 삭제 연산의 횟수에만 기반한 편집거리를 의미할 수 있다. 다시 말해, 슈도 단어가 실제 단어에 대한 삭제 연산을 통해서만 생성될 수 있다. 이러한 경우, 제2 단어 사전의 크기 감소로 인해, 제2 단어 사전에 요구되는 스토리지 비용이 크게 감소될 수 있다. 물론, 제2 단어 사전에 대한 검색은 보다 신속하게 수행될 수 있다.
단계 S43에서, 실제 단어들부터 최대편집거리 이내에 위치한 슈도 단어들로 구성된 제2 단어 사전이 생성될 수 있다. 가령, 최대편집거리가 단어 그룹별로 설정되었다고 가정하자. 이러한 경우, 교정 시스템(10)은 특정 단어 그룹에 설정된 최대편집거리 이하의 횟수만큼 삭제 연산을 수행함으로써 해당 단어 그룹의 슈도 단어들을 생성할 수 있다. 이러한 과정이 다른 그룹에 대해서도 반복됨에 따라 제2 단어 사전이 구축될 수 있다.
몇몇 실시예들에서는, 슈도 단어의 해시값이 더 생성되어 저장될 수 있다. 가령, 교정 시스템(10)은 슈도 단어의 음소열 해시값을 제2 단어 사전에 저장할 수 있다. 이러한 경우, 제2 단어 사전에 대한 검색 속도가 크게 향상될 수 있는데, 이에 대해서는 도 6의 설명 내용을 더 참고하도록 한다. 교정 시스템(10)은 실제 단어의 음소열 해시값도 생성하여 제1 단어 사전에 저장할 수 있다.
또한, 몇몇 실시예들에서는, 실제 단어들에 대해 슈도 단어 생성 규칙이 더 설정될 수도 있다(e.g., 단어 그룹별로 설정됨). 가령, 교정 시스템(10)은 음소열(e.g., 도 5의 52 참고) 내에서 연속된 음소의 삭제를 제한하는 규칙, 미리 설정된 주요 음소의 삭제를 제한하는 규칙, 모음의 삭제를 제한하는 규칙 등을 설정할 수도 있다.
도 5는 실제 단어(51)의 음소열(52)에 대해 삭제 연산을 수행함으로써 생성된 슈도 단어들(53, 54)을 예시하고 있다. 구체적으로, 음소열(52)에 대해 '1회'의 삭제 연산을 수행하면 예시된 슈도 단어들(53)이 생성될 수 있고, '2회'의 삭제 연산을 수행하면 예시된 슈도 단어들(54)이 생성될 수 있다.
다시 도 3을 참조하여 설명한다.
단계 S32에서, 타깃 텍스트가 획득될 수 있다. 타깃 텍스트는 오류 교정의 대상으로서, 사용자의 발화 음성에 대한 음성인식을 통해 생성된 텍스트를 의미한다. 음성인식은 어떠한 방식으로 수행되더라도 무방하다.
후술될 단계 S33 내지 S37은 타깃 텍스트를 구성하는 모든 토큰들을 대상으로 수행될 수도 있고, 선별된 일부 토큰들을 대상으로 수행될 수도 있다. 이때, 타깃 텍스트를 토큰화하는 방식은 어떠한 방식이 되더라도 무방하다. 이하에서는, 이해의 편의를 제공하기 위해, 타깃 텍스트의 토큰 단위가 단어 사전 내의 단어와 동일한 것을 가정하여 설명을 이어가도록 한다.
단계 S33에서, 단어 사전을 참조하여 타깃 텍스트의 특정 토큰에 후보 단어가 결정될 수 있다. 가령, 교정 시스템(10)은 단어 사전을 참조하여 특정 토큰과의 유사도(이하, '1차 유사도'로 칭함)가 기준치 이상인 후보 단어를 결정할 수 있다. 이때, 1차 유사도는 편집거리 기반의 유사도일 수도 있고, 그렇지 않을 수도 있다.
몇몇 실시예들에서는, 상술한 바와 같이, 단어 사전이 제1 단어 사전과 제2 단어 사전을 포함할 수 있다. 이러한 경우, 교정 시스템(10)은 특정 토큰 또는 변형 토큰(즉, 특정 토큰에 대해 편집 연산을 수행함으로써 얻어진 토큰)을 검색어로 이용하여 제1 단어 사전과 제2 단어 사전을 검색할 수 있는데, 이하 본 실시예들에 대하여 도 6을 참조하여 부연 설명하도록 한다. 도 6은 슈도 단어들이 삭제 연산을 통해서만 생성된 경우를 가정하고 있다.
도 6에 도시된 바와 같이, 먼저 타깃 텍스트의 토큰이 검색어로 설정될 수 있다(S61).
단계 S62에서, 제1 단어 사전에 검색어에 매칭되는 실제 단어가 존재하는지 여부가 판단될 수 있다. 가령, 제1 단어 사전이 실제 단어의 음소열 해시값을 포함하는 경우, 교정 시스템(10)은 검색어의 음소열 해시값이 제1 단어 사전에 존재하는지 여부(즉, 해당 해시값과 일치하는 해시값이 존재하는지 여부)를 판단할 수 있다. 다른 예로서, 교정 시스템(10)은 검색어와의 유사도(e.g., 검색어의 음소열과 실제 단어의 음소열 간의 편집거리)가 기준치 이상인 실제 단어가 제1 단어 사전에 존재하는지 여부를 판단할 수도 있다.
검색어와 매칭되는 실제 단어가 존재하지 않는 경우(즉, 매칭되는 실제 단어가 검색되지 않은 경우)에는 단계 S64가 수행되고, 반대의 경우에는 단계 S63이 수행될 수 있다.
단계 S63에서, 검색어에 매칭되는 실제 단어가 후보 단어로 결정될 수 있다.
단계 S64에서, 토큰을 일부 삭제한 변형 토큰이 검색어로 설정될 수 있다.
단계 S65에서, 제2 단어 사전에 검색어에 매칭되는 슈도 단어가 존재하는지 여부가 판단될 수 있다. 가령, 제2 단어 사전이 슈도 단어의 음소열 해시값을 포함하는 경우, 교정 시스템(10)은 검색어의 음소열 해시값이 제2 단어 사전에 존재하는지 여부(즉, 해당 해시값과 일치하는 해시값이 존재하는지 여부)를 판단할 수 있다. 다른 예로서, 교정 시스템(10)은 검색어와의 유사도(e.g., 검색어의 음소열과 슈도 단어의 음소열 간의 편집거리)가 기준치 이상인 슈도 단어가 제2 단어 사전에 존재하는지 여부를 판단할 수도 있다.
검색어와 매칭되는 슈도 단어가 존재하지 않는 경우(즉, 매칭되는 슈도 단어가 검색되지 않은 경우)에는 단계 S67이 수행되고, 반대의 경우에는 단계 S66이 수행될 수 있다.
단계 S66에서, 검색어에 매칭되는 슈도 단어와 연관된 실제 단어(즉, 슈도 단어 생성의 기초가 된 실제 단어)가 후보 단어로 결정될 수 있다.
단계 S67에서, 기 수행된 삭제 연산 횟수가 최대편집거리 이하인지 여부가 판단될 수 있다. 가령, 단어 그룹별로 최대편집거리가 설정된 경우, 교정 시스템(10)은 삭제 연산 횟수가 특정 토큰이 속한 단어 그룹의 최대편집거리 이하인지 여부를 판단할 수 있다.
기 수행된 삭제 연산 횟수가 최대편집거리를 초과한 경우, 더 이상의 반복 없이 후보 단어 결정 단계 S33이 종료될 수 있다. 반대의 경우라면, 단계 S68이 수행될 수 있다.
단계 S68에서, 삭제 연산의 횟수가 증가되고 증가된 횟수에 따른 변형 토큰이 재생성될 수 있다. 가령, 기 수행된 삭제 연산의 횟수가 '1회'인 경우, 교정 시스템(10)은 특정 토큰에 대해 '2회'의 삭제 연산을 수행하여 변형 토큰을 다시 생성할 수 있다.
상술한 단계 S64 내지 S68은 삭제 연산 횟수가 최대편집거리를 초과하기 전까지 반복 수행될 수 있다.
다시 도 3을 참조하여 설명한다.
단계 S34에서, 후보 단어의 개수가 복수인지 여부가 판단될 수 있다. 복수가 아닌 경우 단계 S35가 수행될 수 있고, 반대의 경우에는 단계 S36이 수행될 수 있다. 다만, 경우에 따라서는, 후보 단어의 개수에 관계없이 단계 S36 및 단계 S37이 수행될 수도 있다. 가령, 교정 시스템(10)은 후보 단어의 개수가 1개인 경우에도 후보 단어를 검증하기 위한 목적으로 단계 S36 및 단계 S37을 수행할 수도 있다.
단계 S35에서, 후보 단어를 교정용 단어로 이용하여 특정 토큰이 교정될 수 있다. 가령, 특정 토큰이 교정용 단어와 상이한 경우, 교정 시스템(10)은 타깃 텍스트의 특정 토큰을 교정용 단어로 교체할 수 있다.
단계 S36에서, 오인식 빈도에 기반한 가중치 테이블을 이용하여 특정 토큰과 후보 단어들 간의 유사도(이하, '2차 유사도'로 칭함)가 산출될 수 있다. 이러한 가중치 테이블과 2차 유사도를 산출하는 구체적인 방식에 대해서는 추후 도 7 내지 도 10을 참조하여 상세하게 설명하도록 한다.
단계 S37에서, 2차 유사도를 기초로 후보 단어들 중에서 교정용 단어가 선택될 수 있다. 그리고, 선택된 단어를 이용하여 특정 토큰이 교정될 수 있다. 가령, 교정 시스템(10)은 후보 단어들 중에서 2차 유사도가 가장 높은 단어(또는 기준치 이상인 단어 등)를 교정용 단어로 선택하고, 특정 토큰을 선택된 단어로 교체할 수 있다.
한편, 도 3에 도시되어 있지는 않으나, 본 개시의 몇몇 실시예들에 따르면, 교정 결과에 대한 피드백 정보를 기초로 가중치 테이블을 업데이트하는 단계가 더 수행될 수 있다. 가령, 교정 시스템(10)은 사용자, 관리자 등으로부터 교정 결과에 대한 피드백 정보를 획득할 수 있다. 이때, 피드백 정보는 특정 토큰에 대한 정답 단어 정보를 포함할 수 있다(e.g., 올바르게 교정된 경우에는 긍정 피드백이 수신되고, 잘못 교정된 경우에는 부정 피드백과 함께 정답 단어 정보가 수신됨). 그리고, 교정 시스템(10)은 수신된 피드백 정보를 이용하여 가중치 테이블을 업데이트할 수 있다(e.g., 오인식 빈도 테이블을 업데이트하고 가중치를 다시 계산함). 그렇게 함으로써, 2차 유사도의 산출 정확도가 점진적으로 향상될 수 있다.
지금까지 도 3 내지 도 6을 참조하여 본 개시의 몇몇 실시예들에 따른 음성인식 오류 교정 방법에 대하여 설명하였다. 상술한 바에 따르면, 단어 사전을 참조하여 후보 단어가 결정되고, 오인식 빈도 기반의 가중치 테이블을 이용하여 타깃 텍스트의 특정 토큰과 후보 단어 간의 유사도가 산출될 수 있다. 이러한 경우, 특정 토큰에 대한 교정용 단어가 정확하게 결정될 수 있으며, 그 결과 오류 교정의 정확도는 향상될 수 있다. 뿐만 아니라, 오인식 빈도 기반의 가중치 테이블을 통해 산출된 유사도는 편집거리가 동일한 후보 단어들에 대해 서로 다른 값을 갖는 경우가 대다수이기 때문에, 편집거리 기반 유사도의 비정밀성으로 인해 오류 교정의 정확도가 저하되는 문제가 용이하게 해결될 수 있다(후술될 설명 참고).
또한, 실제 단어로부터 최대편집거리 이내에 위치한 슈도 단어들이 생성되고, 실제 단어 외에 슈도 단어들을 더 이용하여 타깃 텍스트의 특정 토큰에 대한 후보 단어가 결정될 수 있다. 이에 따라, 다양한 오류가 존재하는 환경에서도, 후보 단어가 정확하게 결정될 수 있다(즉, 후보 단어가 검색되지 않는 경우가 최소화될 수 있음).
또한, 삭제 연산만을 이용하여 슈도 단어들이 생성될 수 있다. 이에 따라, 슈도 단어 사전의 크기가 감소되고(즉, 스토리지 비용이 대폭 감소됨), 슈도 단어에 대한 검색 속도는 향상될 수 있다.
또한, 슈도 단어(또는 실제 단어)의 해시값(e.g., 음소열의 해시값)을 단어 사전에 미리 저장해 놓고, 타깃 텍스트의 특정 토큰의 해시값(e.g., 음소열의 해시값)을 이용하여 단어 사전이 검색될 수 있다. 이에 따라, 단어 사전 검색에 소요되는 시간이 크게 감소될 수 있으며, 오류 교정 속도는 대폭 향상될 수 있다.
이하에서는, 도 7 내지 도 10을 참조하여 본 개시의 몇몇 실시예들에 따른 오인식 빈도 기반의 가중치 테이블과 이를 이용한 유사도(즉, 2차 유사도) 산출 방법에 대하여 상세하게 설명하도록 한다.
도 7은 본 개시의 몇몇 실시예들에 따른 오인식 빈도 기반의 가중치 테이블(73)의 생성 과정을 예시하고 있다. 도 7은 가중치 테이블(73)이 음소 단위의 테이블인 것을 가정하고 있으며, 이하에서도 이러한 가정 하에 설명을 이어가도록 한다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니다.
도 7을 참조하면, 상단의 테이블(71)은 가중치 테이블(73)을 생성하는 데 기초가 되는 오인식 빈도 테이블을 의미한다. 도 7에 예시된 오인식 빈도 테이블(71)에서, x축은 정답 음소(e.g., 교정용 단어의 음소)를 가리키고 y축은 음성인식 텍스트의 음소(e.g., 타깃 텍스트의 특정 토큰의 음소)를 가리키며, 음소쌍에 대응되는 테이블의 값(e.g., 72)은 음소 단위의 오인식 빈도수(횟수)를 의미한다(e.g., 오인식 빈도수(72)는 '공백'이 정답인데, 'ㄴ'으로 인식된 횟수가 '65회'라는 것을 의미함).
가중치 테이블(73)은 오인식 빈도 테이블(71)로부터 생성될 수 있다. 가령, 교정 시스템(10)은 오인식 빈도 테이블(71)의 값들을 일정 범위 내의 값(즉, 가중치값)으로 변환함으로써 가중치 테이블(73)을 생성할 수 있다(72, 74 참고). 이러한 과정은 2차 유사도를 더욱 정확하게 산출하기 위해 수행되는 정규화 과정으로 이해될 수 있다. 다만, 경우에 따라서는, 오인식 빈도 테이블(71)을 그대로 이용하여 2차 유사도가 산출될 수도 있다. 즉, 오인식 빈도수가 그대로 2차 유사도 산출을 위한 가중치값으로 이용될 수도 있다.
교정 시스템(10)은 예를 들어 하기의 수학식 1에 기초하여 오인식 빈도 테이블(71)을 가중치 테이블(73)로 변환할 수 있다. 하기의 수학식 1에 따르면, 오인식 빈도수가 높을수록 가중치가 더 낮은 값으로 결정될 수 있다. 다만, 경우에 따라 가중치값은 오인식 빈도수에 비례하는 값으로 결정될 수도 있다.
수학식 1에서, 'x'는 빈도수를 의미하고, 'max(X)'는 오인식 빈도 테이블(e.g., 71)의 최댓값을 의미하고, 'min(X)'는 오인식 빈도 테이블(e.g., 71)의 최솟값을 의미한다.
한편, 상술한 가중치 테이블(e.g., 73)은 다양한 방식으로 세분화될 수 있다.
예를 들어, 가중치 테이블은 음소의 배열 위치별로 생성될 수 있다. 음소의 배열 위치에 따라 오인식 빈도수가 달라질 수 있기 때문이다. 보다 구체적인 예로서, 타깃 텍스트의 언어가 한국어인 경우, 교정 시스템(10)은 초성 가중치 테이블, 중성 가중치 테이블 및 종성 가중치 테이블을 각각 생성하고 이들을 이용하여 2차 유사도를 산출할 수 있다.
다른 예로서, 가중치 테이블은 사용자의 유형별로 생성될 수 있다. 사용자의 유형은 예를 들어 인구통계학적 특성(e.g., 성별, 연령대, 인종 등)에 기초하여 구분될 수 있을 것이나, 이에 한정되는 것은 아니다. 보다 구체적인 예로서, 교정 시스템(10)은 20대 남성에 대응되는 제1 가중치 테이블, 40대 여성에 대응되는 제2 가중치 테이블 등을 생성할 수 있다. 이러한 경우, 교정 시스템(10)은 기 생성된 복수의 가중치 테이블들 중에서 타깃 텍스트의 사용자 유형에 대응되는 가중치 테이블을 이용하여 타깃 텍스트의 특정 토큰에 대한 2차 유사도를 산출할 수 있다.
또 다른 예로서, 가중치 테이블은 토픽(또는 토픽 카테고리)별로 생성될 수 있다. 토픽은 어떠한 방식으로 정의되더라도 무방하다. 보다 구체적인 예로서, 교정 시스템(10)은 제1 토픽에 대응되는 제1 가중치 테이블, 제2 토픽에 대응되는 제2 가중치 테이블 등을 생성할 수 있다. 이러한 경우, 교정 시스템(10)은 타깃 텍스트(또는 발화 음성)와 관련된 토픽을 결정하고 기 생성된 복수의 가중치 테이블들 중에서 결정된 토픽에 대응되는 가중치 테이블을 이용하여 타깃 텍스트의 특정 토큰에 대한 2차 유사도를 산출할 수 있다.
또 다른 예로서, 가중치 테이블은 음성 카테고리별로 생성될 수 있다. 이때, 음성 카테고리는 억양, 강세, 리듬, 발화 속도 등과 같은 발화 음성(또는 발음)의 특징을 기초로 구분된 것일 수 있다. 이를테면, 음성 카테고리는 표준어, 제1 사투리, 제2 사투리 등과 같이 구분되고 정의될 수 있으나, 이에 한정되는 것은 아니다. 보다 구체적인 예로서, 교정 시스템(10)은 표준어에 대응되는 제1 가중치 테이블, 사투리에 대응되는 제2 가중치 테이블 등을 생성할 수 있다. 이러한 경우, 교정 시스템(10)은 사용자(즉, 타깃 텍스트의 사용자)의 발화 음성에서 나타나는 음성 특징(e.g., 강세, 억양 등)을 기초로 해당 사용자가 속한 음성 카테고리를 결정하고 복수의 가중치 테이블들 중에서 결정된 음성 카테고리에 대응되는 가중치 테이블을 이용하여 타깃 텍스트의 특정 토큰에 대한 2차 유사도를 산출할 수 있다.
또 다른 예로서, 가중치 테이블은 상술한 예시들의 다양한 조합에 기초하여 세분화될 수도 있다. 가령, 교정 시스템(10)은 표준어에 대한 초성, 중성 및 종성 가중치 테이블과 사투리에 대한 초성, 중성 및 종성 가중치 테이블을 생성할 수도 있다.
이하에서는, 도 8을 참조하여 2차 유사도를 산출하는 과정에 대하여 상세하게 설명하도록 한다.
도 8은 타깃 텍스트의 특정 토큰이 '우포동'이고 '우포동'으로부터 동일한 편집거리에 위치한 '옥포동'과 '두모동'이 후보 단어로 결정된 경우를 예시하고 있다. 또한, 도 8은 가중치 테이블이 초성, 중성 및 종성 가중치 테이블(81-1 내지 81-3)로 구성된 경우를 가정하고 있다. 이하에서는, '우포동', '옥포동' 및 '두모동'을 각각 '특정 토큰', '제1 후보 단어' 및 '제2 후보 단어'로 칭하도록 한다.
도 8에 도시된 바와 같이, 교정 시스템(10)은 특정 토큰의 음소열(82)과 제1 후보 단어의 음소열(83)을 비교할 수 있다. 비교 결과, 두 음소열들(82, 83) 간의 불일치 음소쌍(82-1과 83-1, 82-2과 83-2)이 검출될 수 있다.
다음으로, 교정 시스템(10)은 가중치 테이블(e.g., 81-1)에서 불일치 음소쌍(e.g., 82-1과 83-1)에 대응되는 가중치값(e.g., 84)을 이용하여 특정 토큰과 제1 후보 단어 간의 2차 유사도를 산출할 수 있다. 가령, 도시된 바와 같이, 2개의 불일치 음소쌍들(82-1과 83-1, 82-2과 83-2)이 각각 중성과 중성에 관한 음소쌍인 경우, 교정 시스템(10)은 중성 가중치 테이블(81-2)의 가중치값(84)과 종성 가중치 테이블(81-3)의 가중치값(85)을 집계(e.g., 합산)하여 특정 토큰과 제1 후보 단어 간의 2차 유사도를 산출할 수 있다.
유사한 방식으로, 교정 시스템(10)은 특정 토큰과 제2 후보 단어 간의 2차 유사도도 산출할 수 있다. 가령, 교정 시스템(10)은 2개의 불일치 음소쌍들(86-1과 87-1, 86-2와 87-2)에 대응되는 초성 가중치 테이블(81-1)의 가중치값들(88, 89)을 집계하여 특정 토큰과 제2 후보 단어 간의 2차 유사도를 산출할 수 있다.
위와 같은 경우, 편집거리(e.g., 1차 유사도)가 동일한 후보 단어들이 다수 존재하는 경우에도, 어느 후보 단어가 교정용 단어로 적합한지 여부가 정확하게 판별될 수 있다.
보다 이해의 편의를 제공하기 위해, 도 9 및 도 10을 참조하여 2차 유사도 산출 과정에 대해 부연 설명하도록 한다.
도 9 및 도 10은 가중치 테이블(101 내지 103)과 2차 유사도 산출 과정의 실례를 도시하고 있다. 구체적으로, 도 9는 초성, 중성 및 종성에 대한 오인식 빈도 테이블들(91 내지 93)을 예시하고 있고, 도 10은 오인식 빈도수 테이블들(91 내지 93)로부터 생성된 가중치 테이블들(101 내지 103)과 2차 유사도 산출 과정을 예시하고 있다. 도 10은 타깃 텍스트의 특정 토큰이 '냥공노'이고 후보 단어(또는 교정용 단어)가 '난곡로'인 경우를 예시하고 있다.
도 10을 참조하면, 교정 시스템(10)은 특정 토큰의 음소열(104)과 후보 단어의 음소열(106)을 비교하여 불일치 음소쌍들(e.g., 105와 107)을 검출할 수 있다.
다음으로, 교정 시스템(10)은 불일치 음소쌍들(e.g., 105와 107)에 대응되는 가중치 테이블들(101 내지 103)의 가중치값들(W1 내지 W4)을 집계하여 특정 토큰과 후보 단어 간의 2차 유사도(S)를 산출할 수 있다. 도 10은 가중치값들에 대한 합산을 통해 2차 유사도가 산출되는 것을 가정하고 있다. 참고로, 도 10에서는, 2차 유사도의 값이 작을수록 특정 토큰과 후보 단어가 더 유사하다는 것을 의미한다.
지금까지 도 7 내지 도 10을 참조하여 본 개시의 몇몇 실시예들에 따른 오인식 빈도 테이블(e.g., 73)과 이를 이용한 2차 유사도 산출 과정에 대하여 설명하였다. 상술한 바에 따르면, 음소 단위의 가중치 테이블을 이용함으로써, 타깃 텍스트의 특정 토큰과 후보 단어 간의 2차 유사도가 정확하게 산출될 수 있으며, 편집거리 기반 유사도의 비정밀성으로 인해 오류 교정의 정확도가 저하되는 문제가 용이하게 해결될 수 있다.
또한, 음소의 배열 위치, 사용자의 유형, 토픽, 음성 카테고리 등과 같은 다양한 기준에 따라 가중치 테이블을 세분화하여 생성함으로써, 타깃 텍스트의 토큰과 후보 단어 간의 유사도가 더욱 정확하게 산출될 수 있다. 이에 따라, 오류 교정의 정확도는 더욱 향상될 수 있다.
이하에서는, 보다 이해의 편의를 제공하기 위해, 도 11을 참조하여 본 개시의 몇몇 실시예들에 따른 교정 시스템(10)의 활용예에 대하여 설명하도록 한다.
도 11은 교정 시스템(10)이 컨택 센터(contact center) 시스템(111)의 음성인식 정확도를 향상시키기 위해 활용되는 경우를 예시하고 있다. 도 11은 교정 시스템(10)이 컨택 센터 시스템(111)과 구별되는 시스템인 것처럼 도시하고 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다. 경우에 따라서는, 교정 시스템(10)이 모듈(e.g., 음성인식 오류 교정 모듈)의 형태로 구현되어 컨택 센터 시스템(111)의 일부를 구성할 수도 있다.
도 11에 도시된 바와 같이, 컨택 센터 시스템(111)은 사용자들에게 상담 서비스를 제공할 수 있고, 효율적인 상담 서비스를 제공하기 위해 AI 기술을 이용할 수 있다. 구체적으로, 컨택 센터 시스템(111)은 단말들(112-1 내지 112-N)을 통해 다양한 사용자들로부터 문의 관련 발화 음성을 수신하고 음성인식을 통해 발화 음성을 문의 텍스트로 변환할 수 있다. 다음으로, 컨택 센터 시스템(111)은 자연어 처리 기술에 기반하여 문의 텍스트에 대한 답변 텍스트를 생성하고, 음성합성을 통해 답변 텍스트에 대응되는 음성으로 생성하여 사용자에게 제공할 수 있다.
위와 같은 과정들 중에, 컨택 센터 시스템(111)은 발화 음성을 문의 텍스트로 변환하는 과정 중에 교정 시스템(10)의 도움을 받아 음성인식의 정확도를 향상시킬 수 있다. 이에 따라, 상담 서비스에 대한 사용자의 만족도는 크게 향상될 수 있다.
경우에 따라, 컨택 센터 시스템(111)은 교정 시스템(10)을 선별적으로 이용할 수도 있다. 가령, 컨택 센터 시스템(111)은 문의(질의) 이해에 요구되는 정확도가 기준치 이상인 경우(e.g., 사용자의 주소 정보를 토대로 응답해야 하는 경우, 사용자의 감정지수가 높은 경우, 사용자가 동일한 문의를 반복한 경우 등)에만, 교정 시스템(10)을 통해 오류 교정을 수행할 수도 있다.
도시된 바와 같이, 사용자 단말(e.g., 121-1)과 컨택 센터 시스템(111) 등은 네트워크를 통해 통신할 수 있다. 여기서, 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
지금까지 도 11을 참조하여 본 개시의 몇몇 실시예들에 따른 교정 시스템(10)의 활용예에 대하여 설명하였다. 이하에서는, 도 12를 참조하여 상술한 교정 시스템(10)을 구현할 수 있는 예시적인 컴퓨팅 장치(120)에 대하여 설명하도록 한다.
도 12는 컴퓨팅 장치(120)를 나타내는 예시적인 하드웨어 구성도이다.
도 12에 도시된 바와 같이, 컴퓨팅 장치(120)는 하나 이상의 프로세서(121), 버스(123), 통신 인터페이스(124), 프로세서(121)에 의하여 수행되는 컴퓨터 프로그램(126)을 로드(load)하는 메모리(122)와, 컴퓨터 프로그램(126)을 저장하는 스토리지(125)를 포함할 수 있다. 다만, 도 12에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 12에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 알 수 있다. 즉, 컴퓨팅 장치(120)에는, 도 12에 도시된 구성요소들 이외에도 다양한 구성요소들이 더 포함될 수 있다. 또한, 경우에 따라, 도 12에 도시된 구성요소들 중 일부가 생략된 형태로 컴퓨팅 장치(120)가 구성될 수도 있다. 이하, 컴퓨팅 장치(120)의 각 구성요소에 대하여 설명한다.
프로세서(121)는 컴퓨팅 장치(120)의 각 구성의 전반적인 동작을 제어할 수 있다. 프로세서(121)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit), NPU(Neural Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(121)는 본 개시의 실시예들에 따른 동작/방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(120)는 하나 이상의 프로세서를 구비할 수 있다.
다음으로, 메모리(122)는 각종 데이터, 명령 및/또는 정보를 저장할 수 있다. 메모리(122)는 본 개시의 실시예들에 따른 동작/방법을 실행하기 위하여 스토리지(125)로부터 컴퓨터 프로그램(126)을 로드할 수 있다. 메모리(122)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
다음으로, 버스(123)는 컴퓨팅 장치(120)의 구성요소 간 통신 기능을 제공할 수 있다. 버스(123)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
다음으로, 통신 인터페이스(124)는 컴퓨팅 장치(120)의 유무선 인터넷 통신을 지원할 수 있다. 또한, 통신 인터페이스(124)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(124)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
다음으로, 스토리지(125)는 하나 이상의 컴퓨터 프로그램(126)을 비임시적으로 저장할 수 있다. 스토리지(125)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
다음으로, 컴퓨터 프로그램(126)은 메모리(122)에 로드될 때 프로세서(121)로 하여금 본 개시의 다양한 실시예들에 따른 동작/방법을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 즉, 프로세서(121)는 로드된 인스트럭션들을 실행함으로써, 본 개시의 다양한 실시예들에 따른 동작/방법을 수행할 수 있다.
예를 들어, 컴퓨터 프로그램(126)은 사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 동작, 단어 사전을 참조하여 타깃 텍스트의 특정 토큰과의 1차 유사도가 기준치 이상인 후보 단어를 결정하는 동작, 음성인식 텍스트의 오인식 빈도에 기반한 가중치 테이블을 이용하여 특정 토큰과 후보 단어 간의 2차 유사도를 산출하는 동작 및 2차 유사도를 기초로 후보 단어 중에서 교정용 단어를 선택하고 교정용 단어를 이용하여 특정 토큰을 교정하는 동작을 위한 인스트럭션들을 포함할 수 있다.
다른 예로서, 컴퓨터 프로그램(126)은 실제 단어들을 포함하는 제1 단어 사전을 획득하는 동작, 실제 단어들로부터 미리 설정된 최대편집거리 이내에 위치한 슈도 단어들을 포함하는 제2 단어 사전을 생성하는 동작, 사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 단계, 제1 단어 사전과 제2 단어 사전을 참조하여 타깃 텍스트의 특정 토큰에 대한 교정용 단어를 결정하는 동작 및 교정용 단어를 이용하여 특정 토큰을 교정하는 동작을 위한 인스트럭션들을 포함할 수 있다.
또 다른 예로서, 컴퓨터 프로그램(126)은 도 1 내지 도 11을 참조하여 설명된 동작들의 적어도 일부를 수행하는 인스트럭션들을 포함할 수 있다.
위와 같은 예시들의 경우, 컴퓨팅 장치(120)를 통해 본 개시의 몇몇 실시예들에 따른 교정 시스템(10)이 구현될 수 있다.
한편, 몇몇 실시예들에서, 도 12에 도시된 컴퓨팅 장치(120)는 클라우드 기술에 기반하여 구현된 가상 머신을 의미하는 것일 수도 있다. 가령, 컴퓨팅 장치(120)는 서버 팜(server farm)에 포함된 하나 이상의 물리 서버(physical server)에서 동작하는 가상 머신일 수 있다. 이 경우, 도 12에 도시된 프로세서(121), 메모리(122) 및 스토리지(125) 중 적어도 일부는 가상 하드웨어(virtual hardware)일 수 있으며, 통신 인터페이스(124) 또한, 가상 스위치(virtual switch) 등과 같은 가상화된 네트워킹 요소로 구현되는 것일 수도 있다.
지금까지 도 12를 참조하여 본 개시의 몇몇 실시예들에 따른 교정 시스템(10)을 구현할 수 있는 예시적인 컴퓨팅 장치(120)에 대하여 설명하였다.
지금까지 도 1 내지 도 12를 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
또한, 이상의 실시예들에서 복수의 구성요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 기술적 사상의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
지금까지 설명된 본 개시의 기술적 사상은 컴퓨터로 판독가능한 기록매체 상에 컴퓨터가 판독가능한 코드로 구현될 수 있다. 컴퓨터 판독가능 기록매체에 기록된 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 해당 컴퓨팅 장치에 설치될 수 있고, 이로써 해당 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 이상 첨부된 도면을 참조하여 본 개시의 다양한 실시예들을 설명하였지만, 본 개시가 속한 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시의 기술적 사상이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (20)

  1. 적어도 하나의 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 단계;
    단어 사전을 참조하여 상기 타깃 텍스트의 특정 토큰과의 1차 유사도가 기준치 이상인 후보 단어를 결정하는 단계;
    음성인식 텍스트의 오인식 빈도에 기반한 가중치 테이블을 이용하여 상기 특정 토큰과 상기 후보 단어 간의 2차 유사도를 산출하는 단계 - 상기 가중치 테이블의 제1 축과 제2 축은 각각 정답 텍스트와 상기 음성인식 텍스트를 가리키고, 상기 가중치 테이블의 값은 상기 정답 텍스트에 대한 상기 음성인식 텍스트의 오인식 빈도에 기반한 가중치값임 -; 및
    상기 2차 유사도를 기초로 상기 후보 단어 중에서 교정용 단어를 선택하고 상기 교정용 단어를 이용하여 상기 특정 토큰을 교정하는 단계를 포함하고,
    상기 2차 유사도는 상기 가중치 테이블에서 상기 특정 토큰과 상기 후보 단어에 대응되는 가중치값을 이용하여 산출되는,
    음성인식 오류 교정 방법.
  2. 제1항에 있어서,
    상기 2차 유사도 산출 단계는 상기 결정된 후보 단어의 개수가 복수인 경우에 수행되는,
    음성인식 오류 교정 방법.
  3. 제1항에 있어서,
    상기 단어 사전은 실제 단어에 대한 제1 단어 사전과 슈도(pseudo) 단어에 대한 제2 단어 사전을 포함하고,
    상기 슈도 단어는 상기 실제 단어로부터 미리 설정된 최대편집거리 이내에 위치하는 단어이고 상기 실제 단어에 대한 삭제 연산을 통해 생성된 것인,
    음성인식 오류 교정 방법.
  4. 제1항에 있어서,
    상기 가중치 테이블은 음소 단위의 오인식 빈도에 기반한 것이고,
    상기 2차 유사도를 산출하는 단계는,
    상기 특정 토큰의 음소열과 상기 후보 단어의 음소열을 비교하여 불일치 음소쌍을 검출하는 단계; 및
    상기 가중치 테이블에서 상기 불일치 음소쌍에 대응되는 가중치값을 이용하여 상기 2차 유사도를 산출하는 단계를 포함하는,
    음성인식 오류 교정 방법.
  5. 제4항에 있어서,
    상기 가중치 테이블은 음소의 서로 다른 배열 위치들에 대한 복수의 테이블들을 포함하는,
    음성인식 오류 교정 방법.
  6. 제4항에 있어서,
    상기 가중치 테이블은 초성 가중치 테이블, 중성 가중치 테이블 및 종성 가중치 테이블을 포함하는,
    음성인식 오류 교정 방법.
  7. 제1항에 있어서,
    상기 2차 유사도를 산출하는 단계는,
    서로 다른 인구통계학적 특성을 갖는 사용자들의 음성인식 텍스트에 대한 오인식 빈도에 기반하여 생성된 복수의 가중치 테이블들 중에서 상기 타깃 텍스트의 상기 사용자의 인구통계학적 특성에 대응되는 가중치 테이블을 이용하여 상기 2차 유사도를 산출하는 단계를 포함하는,
    음성인식 오류 교정 방법.
  8. 제1항에 있어서,
    상기 2차 유사도를 산출하는 단계는,
    상기 타깃 텍스트와 관련된 토픽을 결정하는 단계; 및
    복수의 가중치 테이블들 중에서 상기 결정된 토픽에 대응되는 가중치 테이블을 이용하여 상기 2차 유사도를 산출하는 단계를 포함하는,
    음성인식 오류 교정 방법.
  9. 제1항에 있어서,
    상기 2차 유사도를 산출하는 단계는,
    상기 발화 음성의 음성 특징을 기초로 상기 사용자가 속한 음성 카테고리를 결정하는 단계 - 상기 음성 특징은 억양 및 강세 중 적어도 하나를 포함함 -; 및
    복수의 가중치 테이블들 중에서 상기 결정된 음성 카테고리에 대응되는 가중치 테이블을 이용하여 상기 2차 유사도를 산출하는 단계를 포함하는,
    음성인식 오류 교정 방법.
  10. 제1항에 있어서,
    상기 교정 결과에 대한 피드백 정보를 획득하는 단계 - 상기 피드백 정보는 상기 특정 토큰의 정답 단어 정보를 포함함 -; 및
    상기 피드백 정보를 이용하여 상기 가중치 테이블을 업데이트하는 단계를 더 포함하는,
    음성인식 오류 교정 방법.
  11. 적어도 하나의 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    실제 단어들을 포함하는 제1 단어 사전을 획득하는 단계;
    상기 실제 단어들로부터 미리 설정된 최대편집거리 이내에 위치한 슈도(pseudo) 단어들을 포함하는 제2 단어 사전을 생성하는 단계 - 상기 슈도 단어들은 상기 실제 단어들에 대해 삭제 연산을 수행하여 생성된 것임 -;
    사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 단계;
    상기 제1 단어 사전과 상기 제2 단어 사전을 참조하여 상기 타깃 텍스트의 특정 토큰에 대한 교정용 단어를 결정하는 단계; 및
    상기 교정용 단어를 이용하여 상기 특정 토큰을 교정하는 단계를 포함하고,
    상기 특정 토큰에 대한 상기 교정용 단어를 결정하는 단계는,
    상기 제1 단어 사전에서 상기 특정 토큰에 매칭되는 실제 단어가 검색되지 않는 경우, 상기 특정 토큰에 대해 삭제 연산을 수행하여 변형 토큰을 생성하는 단계; 및
    상기 제2 단어 사전에서 상기 변형 토큰과 매칭되는 슈도 단어가 검색된 경우, 상기 검색된 슈도 단어에 대한 실제 단어 중에서 상기 교정용 단어를 결정하는 단계를 포함하는,
    음성인식 오류 교정 방법.
  12. 제11항에 있어서,
    상기 최대편집거리는 음소 단위의 편집거리인,
    음성인식 오류 교정 방법.
  13. 제11항에 있어서,
    상기 실제 단어들 중 특정 단어의 최대편집거리는 상기 특정 단어의 길이에 기초하여 결정되는,
    음성인식 오류 교정 방법.
  14. 적어도 하나의 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    실제 단어들을 포함하는 제1 단어 사전을 획득하는 단계;
    상기 실제 단어들로부터 미리 설정된 최대편집거리 이내에 위치한 슈도(pseudo) 단어들을 포함하는 제2 단어 사전을 생성하는 단계 - 상기 슈도 단어들은 상기 실제 단어들에 대해 삭제 연산을 수행하여 생성된 것임 -;
    사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 단계;
    상기 제1 단어 사전과 상기 제2 단어 사전을 참조하여 상기 타깃 텍스트의 특정 토큰에 대한 교정용 단어를 결정하는 단계; 및
    상기 교정용 단어를 이용하여 상기 특정 토큰을 교정하는 단계를 포함하고,
    상기 실제 단어들은 미리 설정된 기준에 따라 제1 단어 그룹과 제2 단어 그룹을 포함하는 복수의 단어 그룹들로 구분되며,
    상기 제1 단어 그룹의 최대편집거리는 상기 제2 단어 그룹의 최대편집거리와 다르게 설정되는,
    음성인식 오류 교정 방법.
  15. 삭제
  16. 제11항에 있어서,
    상기 제1 단어 사전과 상기 제2 단어 사전에 대한 검색은 해시값을 이용하여 수행되는,
    음성인식 오류 교정 방법.
  17. 제11항에 있어서,
    상기 특정 토큰에 대한 상기 교정용 단어를 결정하는 단계는,
    상기 제2 단어 사전에서 상기 변형 토큰과 매칭되는 슈도 단어가 검색되지 않고 상기 삭제 연산의 횟수가 상기 특정 토큰과 연관된 최대편집거리 이하인 경우, 상기 삭제 연산의 횟수를 증가시키고 상기 증가된 횟수에 따른 변형 토큰을 재생성하는 단계; 및
    상기 재생성된 변형 토큰을 이용하여 상기 제2 단어 사전을 다시 검색하는 단계를 더 포함하는,
    음성인식 오류 교정 방법.
  18. 제11항에 있어서,
    상기 검색된 슈도 단어에 대한 실제 단어 중에서 상기 교정용 단어를 결정하는 단계는,
    상기 검색된 슈도 단어에 대한 실제 단어 중에서 상기 특정 토큰의 교정에 이용될 후보 단어를 결정하는 단계;
    음성인식 텍스트의 오인식 빈도에 기반한 가중치 테이블을 이용하여 상기 특정 토큰과 상기 후보 단어 간의 유사도를 산출하는 단계; 및
    상기 유사도를 기초로 상기 후보 단어 중에서 상기 교정용 단어를 선택하는 단계를 포함하는,
    음성인식 오류 교정 방법.
  19. 하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하고,
    상기 컴퓨터 프로그램은:
    사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 동작;
    단어 사전을 참조하여 상기 타깃 텍스트의 특정 토큰과의 1차 유사도가 기준치 이상인 후보 단어를 결정하는 동작;
    음성인식 텍스트의 오인식 빈도에 기반한 가중치 테이블을 이용하여 상기 특정 토큰과 상기 후보 단어 간의 2차 유사도를 산출하는 동작 - 상기 가중치 테이블의 제1 축과 제2 축은 각각 정답 텍스트와 상기 음성인식 텍스트를 가리키고, 상기 가중치 테이블의 값은 상기 정답 텍스트에 대한 상기 음성인식 텍스트의 오인식 빈도에 기반한 가중치값임 -; 및
    상기 2차 유사도를 기초로 상기 후보 단어 중에서 교정용 단어를 선택하고 상기 교정용 단어를 이용하여 상기 특정 토큰을 교정하는 동작을 위한 인스트럭션들을 포함하고,
    상기 2차 유사도는 상기 가중치 테이블에서 상기 특정 토큰과 상기 후보 단어에 대응되는 가중치값을 이용하여 산출되는,
    음성인식 오류 교정 시스템.
  20. 하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하고,
    상기 컴퓨터 프로그램은:
    실제 단어들을 포함하는 제1 단어 사전을 획득하는 동작;
    상기 실제 단어들로부터 미리 설정된 최대편집거리 이내에 위치한 슈도(pseudo) 단어들을 포함하는 제2 단어 사전을 생성하는 동작 - 상기 슈도 단어들은 상기 실제 단어들에 대해 삭제 연산을 수행하여 생성된 것임 -;
    사용자의 발화 음성에 대한 음성인식을 통해 생성된 타깃 텍스트를 획득하는 단계;
    상기 제1 단어 사전과 상기 제2 단어 사전을 참조하여 상기 타깃 텍스트의 특정 토큰에 대한 교정용 단어를 결정하는 동작; 및
    상기 교정용 단어를 이용하여 상기 특정 토큰을 교정하는 동작을 위한 인스트럭션들을 포함하며,
    상기 특정 토큰에 대한 상기 교정용 단어를 결정하는 동작은,
    상기 제1 단어 사전에서 상기 특정 토큰에 매칭되는 실제 단어가 검색되지 않는 경우, 상기 특정 토큰에 대해 삭제 연산을 수행하여 변형 토큰을 생성하는 동작; 및
    상기 제2 단어 사전에서 상기 변형 토큰과 매칭되는 슈도 단어가 검색된 경우, 상기 검색된 슈도 단어에 대한 실제 단어 중에서 상기 교정용 단어를 결정하는 동작을 포함하는,
    음성인식 오류 교정 시스템.
KR1020230065396A 2023-05-22 2023-05-22 음성인식 오류 교정 방법 및 그 시스템 KR102632872B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230065396A KR102632872B1 (ko) 2023-05-22 2023-05-22 음성인식 오류 교정 방법 및 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230065396A KR102632872B1 (ko) 2023-05-22 2023-05-22 음성인식 오류 교정 방법 및 그 시스템

Publications (1)

Publication Number Publication Date
KR102632872B1 true KR102632872B1 (ko) 2024-02-05

Family

ID=89903947

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230065396A KR102632872B1 (ko) 2023-05-22 2023-05-22 음성인식 오류 교정 방법 및 그 시스템

Country Status (1)

Country Link
KR (1) KR102632872B1 (ko)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010108402A (ko) * 1999-03-26 2001-12-07 요트.게.아. 롤페즈 클라이언트 서버 음성 인식
KR20080038896A (ko) * 2006-10-31 2008-05-07 삼성전자주식회사 음성 인식 오류 통보 장치 및 방법
CN103065630A (zh) * 2012-12-28 2013-04-24 安徽科大讯飞信息科技股份有限公司 用户个性化信息语音识别方法及系统
KR20130052800A (ko) * 2011-11-14 2013-05-23 에스케이텔레콤 주식회사 음성 인식 서비스를 제공하는 장치 및 그의 오류 발음 검출 능력 향상을 위한 음성 인식 방법
KR20130133629A (ko) * 2012-05-29 2013-12-09 삼성전자주식회사 전자장치에서 음성명령을 실행시키기 위한 장치 및 방법
CN103700369A (zh) * 2013-11-26 2014-04-02 安徽科大讯飞信息科技股份有限公司 语音导航方法及系统
KR20140089795A (ko) * 2013-01-07 2014-07-16 엘지전자 주식회사 홈 어플라이언스 및 그 동작방법
KR20140106715A (ko) * 2012-03-08 2014-09-03 엘지전자 주식회사 다수의 디바이스 음성 제어 장치 및 방법
JP2016512609A (ja) * 2013-01-29 2016-04-28 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド 自動音声認識のための方法およびシステム
KR101664080B1 (ko) * 2015-07-28 2016-10-10 현대자동차 주식회사 음성 다이얼링 시스템 및 방법
JP2019008315A (ja) * 2018-09-18 2019-01-17 日本放送協会 学習データ生成装置及びそのプログラム
WO2019103936A1 (en) * 2017-11-22 2019-05-31 Amazon Technologies, Inc. Fully managed and continuously trained automatic speech recognition service
WO2019116604A1 (en) * 2017-12-15 2019-06-20 Mitsubishi Electric Corporation Speech recognition system
KR102386529B1 (ko) 2020-09-09 2022-05-13 주식회사 씨앤에이아이 음성 기반으로 인식된 도로명 주소를 검증하는 장치 및 방법
KR20230009564A (ko) * 2021-07-09 2023-01-17 주식회사 엘지유플러스 앙상블 스코어를 이용한 학습 데이터 교정 방법 및 그 장치

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010108402A (ko) * 1999-03-26 2001-12-07 요트.게.아. 롤페즈 클라이언트 서버 음성 인식
KR20080038896A (ko) * 2006-10-31 2008-05-07 삼성전자주식회사 음성 인식 오류 통보 장치 및 방법
KR20130052800A (ko) * 2011-11-14 2013-05-23 에스케이텔레콤 주식회사 음성 인식 서비스를 제공하는 장치 및 그의 오류 발음 검출 능력 향상을 위한 음성 인식 방법
KR20140106715A (ko) * 2012-03-08 2014-09-03 엘지전자 주식회사 다수의 디바이스 음성 제어 장치 및 방법
KR20130133629A (ko) * 2012-05-29 2013-12-09 삼성전자주식회사 전자장치에서 음성명령을 실행시키기 위한 장치 및 방법
CN103065630A (zh) * 2012-12-28 2013-04-24 安徽科大讯飞信息科技股份有限公司 用户个性化信息语音识别方法及系统
KR20140089795A (ko) * 2013-01-07 2014-07-16 엘지전자 주식회사 홈 어플라이언스 및 그 동작방법
JP2016512609A (ja) * 2013-01-29 2016-04-28 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド 自動音声認識のための方法およびシステム
CN103700369A (zh) * 2013-11-26 2014-04-02 安徽科大讯飞信息科技股份有限公司 语音导航方法及系统
KR101664080B1 (ko) * 2015-07-28 2016-10-10 현대자동차 주식회사 음성 다이얼링 시스템 및 방법
WO2019103936A1 (en) * 2017-11-22 2019-05-31 Amazon Technologies, Inc. Fully managed and continuously trained automatic speech recognition service
WO2019116604A1 (en) * 2017-12-15 2019-06-20 Mitsubishi Electric Corporation Speech recognition system
JP2019008315A (ja) * 2018-09-18 2019-01-17 日本放送協会 学習データ生成装置及びそのプログラム
KR102386529B1 (ko) 2020-09-09 2022-05-13 주식회사 씨앤에이아이 음성 기반으로 인식된 도로명 주소를 검증하는 장치 및 방법
KR20230009564A (ko) * 2021-07-09 2023-01-17 주식회사 엘지유플러스 앙상블 스코어를 이용한 학습 데이터 교정 방법 및 그 장치

Similar Documents

Publication Publication Date Title
US9558741B2 (en) Systems and methods for speech recognition
KR102222317B1 (ko) 음성 인식 방법, 전자 디바이스, 및 컴퓨터 저장 매체
CN109523989B (zh) 语音合成方法、语音合成装置、存储介质及电子设备
De Vries et al. A smartphone-based ASR data collection tool for under-resourced languages
US20180137109A1 (en) Methodology for automatic multilingual speech recognition
JP5327054B2 (ja) 発音変動規則抽出装置、発音変動規則抽出方法、および発音変動規則抽出用プログラム
CN106297800B (zh) 一种自适应的语音识别的方法和设备
CN110364171A (zh) 一种语音识别方法、语音识别系统及存储介质
US20110184723A1 (en) Phonetic suggestion engine
El Amrani et al. Building CMU Sphinx language model for the Holy Quran using simplified Arabic phonemes
WO2020119432A1 (zh) 一种语音识别方法、装置、设备和存储介质
JP2007249212A (ja) テキスト音声合成のための方法、コンピュータプログラム及びプロセッサ
JP2004523004A (ja) 階層言語モデル
CN103714048A (zh) 用于校正文本的方法和系统
Kadyan et al. Refinement of HMM model parameters for Punjabi automatic speech recognition (PASR) system
CN112331206A (zh) 语音识别方法及设备
KR102577589B1 (ko) 음성 인식 방법 및 음성 인식 장치
CN111145720A (zh) 一种将文本转换成语音的方法、系统、装置和存储介质
CN112489626A (zh) 一种信息识别方法、装置及存储介质
JP6828667B2 (ja) 音声対話装置、音声対話方法及びプログラム
KR20160098910A (ko) 음성 인식 데이터 베이스 확장 방법 및 장치
WO2023045186A1 (zh) 意图识别方法、装置、电子设备和存储介质
US20040006469A1 (en) Apparatus and method for updating lexicon
CN113823265A (zh) 一种语音识别方法、装置和计算机设备
CN112767942A (zh) 语音识别引擎适配方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant