KR20220045839A - 음성 인식 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램 - Google Patents

음성 인식 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20220045839A
KR20220045839A KR1020200128964A KR20200128964A KR20220045839A KR 20220045839 A KR20220045839 A KR 20220045839A KR 1020200128964 A KR1020200128964 A KR 1020200128964A KR 20200128964 A KR20200128964 A KR 20200128964A KR 20220045839 A KR20220045839 A KR 20220045839A
Authority
KR
South Korea
Prior art keywords
recognition
vocabulary
candidate
voice
recognition vocabulary
Prior art date
Application number
KR1020200128964A
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 KR1020200128964A priority Critical patent/KR20220045839A/ko
Publication of KR20220045839A publication Critical patent/KR20220045839A/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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • 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/14Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
    • 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/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • 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
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/221Announcement of recognition results

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Probability & Statistics with Applications (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

음성 인식 장치를 통해 음성 인식 서비스를 제공하는 방법은 음성 신호를 구성하는 복수의 음성 프레임 중 제 1 음성 프레임을 디코딩하는 단계, 인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘 및 디코딩된 제 1 음성 프레임 간 비교 결과를 통해 인식 어휘 데이터베이스로부터 제 1 후보 인식 어휘를 제 1 음성 프레임에 대한 인식 결과로서 선택하는 단계, 오인식 매핑 테이블에 기초하여 제 1 후보 인식 어휘를 제 1 인식 어휘 후보군으로 확장시키는 단계, 제 1 인식 어휘 후보군 중 어느 하나의 인식 어휘로 제 1 후보 인식 어휘를 치환하는 단계 및 치환된 제 1 후보 인식 어휘에 기초하여 도출된 제 1 음성 프레임의 특징값을 이용하여 음성 신호를 구성하는 복수의 음성 프레임 중 제 2 음성 프레임에 대한 음성 인식을 수행하는 단계를 포함할 수 있다.

Description

음성 인식 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램{SERVER, DEVECE AND METHOD FOR PROVIDING VOICE RECOGNITION SERVICE}
본 발명은 음성 인식 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램에 관한 것이다.
하이브리드(Hybrid) 방식의 한국어 음성인식 기술은 음향 모델, 언어 모델과 발음 모델 각각을 독립적으로 훈련한 후, 각 훈련된 모델들을 WFST(weighted finite state transducer) 형태로 사전 결합한 후, 입력된 음성에 대해 WFST 디코딩을 수행한다. 이러한, 하이브리드 방식은 디코딩 속도가 빠르고, 오인식이나, OOV(Out-Of-Vocabulary)을 보완하기 수월하다는 장점이 있으나, 언어학적 전문성과 공학적인 전문성이 없이는 음성 인식 모델을 학습하기 어렵고, 모델 사이즈가 매우 크기 때문에 임베디드 시스템에 적용하기 어렵다는 단점이 있다.
최근에는 E2E(End-To-End) 기반 음성인식 기술이 연구되면서 하이브리드 방식의 단점들을 해결하고 있다.
도 1을 참조하면, E2E 기반 음성인식 기술은 음성 신호를 인코더(Encoder)에 입력하여 음성 신호를 구성하는 복수의 음성 프레임마다 음향학적 정보를 포함하는 특징 벡터(E)를 추출한다. 디코더(Decoder)의 이전의 디코딩 스텝 출력값과 모든 음성 프레임에 대하여 추출된 특징 벡터를 어텐션 레이어(attention layer)에 입력하여 특징 벡터의 어느 부분에 포커스를 둘지 결정한다. 특징 벡터에 포커싱된 특징값(A)과 이전 디코딩 스텝에서의 인식 결과값에 대한 SPM(sentence piece model) 임베딩(embedding)을 통해 벡터 형태로 변환된 Y를 디코더에 입력값으로 넣어준다. 여기서, SPM 임베딩은 SPM 토큰(token)을 디코더에서 입력받을 수 있도록 서로 겹치지 않는 유일한 벡터 형태로 변환해주는 역할을 한다. 디코더의 출력값 D를 프로젝션 및 소프트맥스 레이어(projection/softmax layer)에 입력하여 모든 SPM 토큰들에 대한 확률 값을 얻는다. 현재 디코딩 스텝에서의 가장 큰 확률값을 갖는 SPM 토큰을 다음 디코딩 스텝의 입력으로 반복적으로 넣어줌으로써 음성 프레임에 대한 인식을 수행한다.
E2E 기반 음성인식 기술은 하나의 E2E 모델로 오인식 어휘나 OOV를 보완하기 어렵기 때문에 상용 서비스에 적용하기에 큰 걸림돌이 되고 있다. 즉, E2E 모델은 음성-텍스트 쌍을 훈련 데이터로 넣어주면 자동적으로 음향학적 특징, 문장 배열들의 조합 형태, 발음 패턴들을 유기적으로 학습해주는 모델이기 때문에, 오인식되는 어휘나 OOV를 보완하기 위해서는 음성-텍스트 쌍이 필요하여 VOC 대응이 많이 어려운 문제점이 존재한다.
구체적으로, E2E 기반 음성인식 기술이 오인식이나 OOV에 대한 처리가 어려운 이유는 기훈련된 SPM 모델의 SPM 토큰들(한 음절 이상으로 구성된 토큰)을 E2E 모델의 최종 아웃풋 레이어(output layer)단으로 세팅하기 때문에 SPM의 토큰들에 없는 어휘는 인식 자체가 될 수 없고, 이러한 어휘들을 인식시키기 위해서는 SPM 모델을 재 훈련하고 새로운 SPM 토큰들을 E2E 모델의 아웃풋 레이어에 다시 세팅하고, E2E 모델도 재훈련 해야하는 번거로움이 있다. 또한, E2E 모델을 재훈련하기 위해서는 오인식되는 어휘-문장 텍스트와 이에 해당하는 음성 데이터가 다양한 조합으로 구축이 되어야 하는데 텍스트와 달리 음성 데이터는 구축하기에 비용과 시간이 많이 소모된다. 또한, 도 1과 같이, E2E 모델은 음향학적 특성과 언어적 특성이 모두 반영되어 훈련되었기 때문에 '뿌'와 음향학적으로 유사한 '뿔'로 인식이 되더라도 다음 디코딩 스텝에서 '뿔'과 같이 나올 가능성이 높은 '뽑아줘'의 확률이 높아지기 때문에 결국에는 '뿔 뽑아줘'와 같이 전혀 엉뚱한 인식 결과가 나오게 된다.
일본공개특허공보 제2012-018201호 (2012.01.26. 공개)
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 기존의 E2E(End-to-End) 방식의 한국어 음성인식 서비스를 제공함에 있어 걸림돌이 되고 있는 오인식 어휘 또는 out-of-vocabulary(OOV)를 보완하는 방법을 제공하고자 한다.
또한, 본 발명은 오인식 매핑 테이블을 이용하여 기존의 E2E 방식의 한국어 음성인식 서비스 제공 시 발생하는 오인식 어휘를 즉각적으로 인식하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 음성 인식 장치를 통해 음성 인식 서비스를 제공하는 방법은 음성 신호를 구성하는 복수의 음성 프레임 중 제 1 음성 프레임을 디코딩하는 단계; 인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘 및 상기 디코딩된 제 1 음성 프레임 간 비교 결과를 통해 상기 인식 어휘 데이터베이스로부터 제 1 후보 인식 어휘를 상기 제 1 음성 프레임에 대한 인식 결과로서 선택하는 단계; 오인식 매핑 테이블에 기초하여 상기 제 1 후보 인식 어휘를 제 1 인식 어휘 후보군으로 확장시키는 단계; 상기 제 1 인식 어휘 후보군 중 어느 하나의 인식 어휘로 상기 제 1 후보 인식 어휘를 치환하는 단계; 및 상기 치환된 제 1 후보 인식 어휘에 기초하여 도출된 상기 제 1 음성 프레임의 특징값을 이용하여 상기 음성 신호를 구성하는 복수의 음성 프레임 중 제 2 음성 프레임에 대한 음성 인식을 수행하는 단계를 포함할 수 있다.
본 발명의 제 2 측면에 따른 음성 인식 서비스를 제공하는 음성 인식 장치는 음성 신호를 구성하는 복수의 음성 프레임 중 제 1 음성 프레임을 디코딩하는 디코딩부; 인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘 및 상기 디코딩된 제 1 음성 프레임 간 비교 결과를 통해 상기 인식 어휘 데이터베이스로부터 제 1 후보 인식 어휘를 상기 제 1 음성 프레임에 대한 인식 결과로서 선택하는 선택부; 오인식 매핑 테이블에 기초하여 상기 제 1 후보 인식 어휘를 제 1 인식 어휘 후보군으로 확장시키는 확장부; 상기 제 1 인식 어휘 후보군 중 어느 하나의 인식 어휘로 상기 제 1 후보 인식 어휘를 치환하는 치환부; 및 상기 치환된 제 1 후보 인식 어휘에 기초하여 도출된 상기 제 1 음성 프레임의 특징값을 이용하여 상기 음성 신호를 구성하는 복수의 음성 프레임 중 제 2 음성 프레임에 대한 음성 인식을 수행하는 음성 인식 수행부를 포함할 수 있다.
본 발명의 제 3 측면에 따른 음성 인식 서비스를 제공하는 명령어들의 시퀀스를 포함하는 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행될 경우, 음성 신호를 구성하는 복수의 음성 프레임 중 제 1 음성 프레임을 디코딩하고, 인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘 및 상기 디코딩된 제 1 음성 프레임 간 비교 결과를 통해 상기 인식 어휘 데이터베이스로부터 제 1 후보 인식 어휘를 상기 제 1 음성 프레임에 대한 인식 결과로서 선택하고, 오인식 매핑 테이블에 기초하여 상기 제 1 후보 인식 어휘를 제 1 인식 어휘 후보군으로 확장시키고, 상기 제 1 인식 어휘 후보군 중 어느 하나의 인식 어휘로 상기 제 1 후보 인식 어휘를 치환하고, 상기 치환된 제 1 후보 인식 어휘에 기초하여 도출된 상기 제 1 음성 프레임의 특징값을 이용하여 상기 음성 신호를 구성하는 복수의 음성 프레임 중 제 2 음성 프레임에 대한 음성 인식을 수행하는 명령어들의 시퀀스를 포함할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본 발명을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 기재된 추가적인 실시예가 존재할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 본 발명은 기존의 E2E(End-to-End) 방식의 한국어 음성인식 서비스를 제공함에 있어 걸림돌이 되고 있는 오인식 어휘 또는 out-of-vocabulary(OOV)를 보완하는 방법을 제공할 수 있다.
또한, 본 발명은 오인식 매핑 테이블을 이용하여 기존의 E2E 방식의 한국어 음성인식 서비스 제공 시 발생하는 오인식 어휘를 즉각적으로 인식할 수 있다.
이를 통해, 본 발명은 오인식 어휘 처리를 위해 어휘 검증기와 결합된 디코딩 로직을 통해 음성-텍스트 쌍을 포함하는 데이터 없이도 오인식 어휘의 텍스트만으로 오인식 어휘를 처리하여 음성인식 서비스의 고객 체감 성능을 향상시킬 수 있다.
도 1은 기존의 E2E(End-To-End) 기반의 음성 인식 프로세스를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른, 음성 인식 장치의 블록도이다.
도 3a 내지 3c는 본 발명의 일 실시예에 따른, 오인식 매핑 테이블을 생성하는 방법을 설명하기 위한 도면이다.
도 4a 내지 4c는 본 발명의 일 실시예에 따른, 음성 인식 서비스를 제공하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른, 음성 인식 서비스를 제공하는 방법을 나타낸 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.
이하, 첨부된 구성도 또는 처리 흐름도를 참고하여, 본 발명의 실시를 위한 구체적인 내용을 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른, 음성 인식 장치(100)의 블록도이다.
도 2를 참조하면, 음성 인식 장치(100)는 디코딩부(200), 도출부(210), 선택부(220), 확장부(230), 치환부(240), 계산부(250) 및 음성 인식 수행부(260)를 포함할 수 있다. 다만, 도 2에 도시된 음성 인식 장치(100)는 본 발명의 하나의 구현 예에 불과하며, 도 2에 도시된 구성요소들을 기초로 하여 여러 가지 변형이 가능하다.
이하에서는 도 3a 내지 4c를 함께 참조하여 도 2를 설명하기로 한다.
수집부(미도시)는 오인식 어휘 또는 OOV(out-of-vocabulary)에 대한 음성 데이터를 수집할 수 있다. 예를 들어, 수집부(미도시)는 웹을 통해 리포트된 음성 데이터를 텍스트 또는 파일 입력 방식으로 관리자로부터 입력받을 수 있다. 여기서, 음성 데이터는 텍스트 처리 서버에 의해 텍스트로 변환될 수 있다.
도 3a를 참조하면, 텍스트 처리 서버는 음성 데이터에 포함된 영어 또는 숫자를 한글로 텍스트 처리하고, E2E 모델링에 사용되는 동일한 SPM(sentence piece model) 과정을 해당 텍스트에 적용하여 토큰화를 수행할 수 있다. 이러한 과정을 통해, 훈련에 사용될 텍스트 코퍼스를 얻게 된다. 예를 들어, 텍스트 처리 서버는 입력된 제 1 음성신호를 '뿌세게 보여줘'에 대응하는 텍스트로 변환하고, 변환된 텍스트를 '뿌세게 보여줘'로 정규화하고, 정규화된 텍스트에 대하여 '_뿌 세게_보여줘'로 토큰화를 수행할 수 있다. 예를 들어, 텍스트 처리 서버는 입력된 제 2 음성 신호를 'Ann Marie의 2002 틀어줘'에 대응하는 텍스트로 변환한 후, 변환된 텍스트를 '앤 마리의 투싸우전투 틀어줘'로 정규화하고, 정규화된 텍스트에 대하여 '_앤_마리 의_투 싸 우 전 투_틀어줘'로 토큰화를 수행할 수 있다.
생성부(미도시)는 텍스트로 변환된 음성 데이터(텍스트 데이터)로부터 오인식 후보군을 추출하고, 추출된 오인식 후보군에 기초하여 오인식 매핑 테이블을 생성할 수 있다.
도 3b를 참조하면, 생성부(미도시)는 토큰화된 텍스트 데이터에 포함된 어휘들과 인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘(E2E 모델의 인식 단위인 SPM 토큰들) 간의 유사도를 측정하여 토큰화된 텍스트 데이터와 유사한 후보 인식 어휘들을 매핑하여 오인식 매핑 테이블(30)을 생성할 수 있다. 이 때, 유사도를 측정하기 위해 모든 어휘들이 도 3c와 같이 문자소 단위로 변환된 후에 문자열 간 유사도가 측정될 수 있다. 예를 들어, '_뿌 세게_보여줘'에 대한 문자소 단위는 'ㅃ(초성) ㅜ(중성) ㅅ(초성) ㅔ(중성) ㄱ(초성) ㅔ(중성) ㅂ(초성) ㅗ(중성) ㅕ(중성) ㅈ(초성) ㅝ(중성)'를 포함할 수 있다. 여기서, 문자열 간 유사도는 편집 거리 알고리즘(Levenshtein distance)을 통해 측정될 수 있다.
모델링부(미도시)는 토큰화된 텍스트 데이터에 대한 텍스트 코퍼스를 이용하여 어휘 검증기를 모델링할 수 있다. 여기서, 어휘 검증기는 기존의 E2E 모델과 결합되어 오인식될 가능성이 있는 어휘들을 판단하여 필터링하는 역할을 수행한다.
우선, 토큰화된 텍스트 데이터가 도 3c와 같이 문자소 단위로 변환되면, E2E 모델은 매 디코딩 스텝마다 사전에 정의된 복수의 후보 인식 어휘 중 하나로 인식 결과를 출력하는데, 오인식 어휘들(토큰화된 텍스트 데이터)은 복수의 후보 인식 어휘에 포함되지 않을 가능성이 있기 때문에 후보 인식 어휘보다 더 작은 단위인 문자소 단위로 변환된다. 오인식 어휘들(토큰화된 텍스트 데이터)에 대한 문자소를 순차적으로 입력하면 LSTM 모듈을 통해 해당 토큰화된 텍스트 데이터에 대한 신뢰값이 출력된다.
어휘 검증기는 E2E 모델의 디코딩 스텝 사이에 결합되어 다음 디코딩 스텝으로 넘어가기 전에 현재 디코딩 스텝에서의 후보 어휘군들을 검증하는 형태로 사용된다.
도 4a를 참조하면, 음성 인식 장치(100)의 마이크로폰을 통해 입력받은 음성 신호('뿌 세게 틀어줘')는 25ms의 프레임 단위로 윈도우 처리(windowing)되어 필터 뱅크(fiter bank) 벡터 정보(X=(
Figure pat00001
, ... ,
Figure pat00002
), T는 음성 프레임의 전체 개수,
Figure pat00003
는 필터 뱅크 80차로 이루어진 벡터임)로 변환된다.
인코딩부(미도시)는 음성 신호에 대응하는 필터 뱅크 벡터 정보를 인코더(Encoder)에 입력하면, 인코더를 통해 음성 신호에 대한 특징 벡터(E=(
Figure pat00004
, ... ,
Figure pat00005
), N은 서브샘플링되어 나온 음성 프레임의 전체 개수이고,
Figure pat00006
은 1024차원으로 이루어진 벡터임)를 출력할 수 있다.
디코딩 스텝 1에서는 이전 스텝의 인식 결과가 없으므로, 임베딩부(미도시)는 <sos>에 대한 문자소 임베딩(Grapheme Embedding)을 수행할 수 있다. 여기서, <sos>는 문장의 시작을 나타내는 사전 정의된 기호이고, 후보 인식 어휘(SPM tokens)의 하나로 인식될 수 있다.
임베딩부(미도시)는 문자소를 실수 벡터로 임베딩하는데, 복수개의 문자소로 이루어진 단어의 경우, 각 문자소의 실수 벡터를 합산하여 단어에 대한 임베딩 벡터값을 계산할 수 있다.
임베딩부(미도시)는 임베딩할 문자소의 개수(V) 및 임베딩 벡터의 차원(H)에 기초하여 랜덤하게 V개의 H 차원을 갖는 벡터를 포함하는 룩업 테이블(lookup table)을 생성하고, 생성된 룩업 테이블로부터 각 문자소에 매핑되는 임베딩 벡터를 가져오는 방식으로 문자소 임베딩을 수행할 수 있다.
예를 들어, 임베딩 벡터의 차원(H)을 3으로 설정한 경우, '뿌'의 문자소 임베딩 벡터값은 'ㅃ'의 문자소 임베딩 벡터값(예컨대, (0.3, 0.1, 0.7))과 'ㅜ'의 문자소 임베딩 벡터값(예컨대, (0.8, 0.0, 0.1))을 합산한 값(예컨대, (1.1, 0.1, 0.8))이 된다.
한국어의 경우, 자음 및 모임에 대한 67개의 문자소와, <sos>, <eos>, <pad>, <unk>를 추가한 총 71개의 문자소를 갖고, 256 차원의 임베딩 벡터를 사용한다. 따라서,
임베딩부(미도시)는 256 차원을 갖는 71 개의 임베딩 벡터 중 <sos>에 대응하는 임베딩 벡터(
Figure pat00007
, 예컨대, (0.1, 0.1, …. 0.0)) 를 룩업 테이블로부터 추출할 수 있다.
디코딩부(200)는 음성 신호를 구성하는 복수의 음성 프레임 중 제 1 음성 프레임을 디코딩할 수 있다.
디코딩부(200)는 이전 스텝에서의 초기 특징값(
Figure pat00008
) 및 <sos>에 대응하는 임베딩 벡터(
Figure pat00009
)를 디코더(Decoder)에 입력하여 디코더를 통해 제 1 음성 프레임에 대한 초기 출력 벡터값(
Figure pat00010
)을 출력할 수 있다. 디코딩 스텝 1의 이전 스텝이 없기 때문에 <sos>에 대응하는 임베딩 벡터(
Figure pat00011
)와 함께 초기 특징값(
Figure pat00012
)이 디코더에 입력된다.
도출부(210)는 디코딩부(200)로부터 제 1 음성 프레임에 대한 초기 출력 벡터값(
Figure pat00013
)을 입력받고, 인코딩부(미도시)로부터 음성 신호에 대한 특징 벡터(E)를 입력받으면, 어텐션(Attention)을 통해 초기 출력 벡터값(
Figure pat00014
) 및 음성 신호에 대한 특징 벡터(E)에 기초하여 제 1 음성 프레임의 특징값(
Figure pat00015
)을 도출할 수 있다.
여기서, 어텐션은 음성 신호에 대한 특징 벡터(E)에 대하여 디코딩 스텝 2에서 디코더에 입력되는 입력값(즉, 제 1 음성 프레임의 특징값(
Figure pat00016
))을 도출하기 위해 이용된다. 어텐션은 음성 신호를 구성하는 복수의 음성 프레임 중 어느 음성 프레임의 특징값에 가중치를 설정해야 할지를 결정한다.
어텐션은 음성 신호에 대한 특징 벡터(E)에 제 1 가중치를 곱한 값을 키(key) 정보로 분류하고, 음성 신호에 대한 특징 벡터(E)에 제 2 가중치를 곱한 값을 가치(value) 정보로 분류하고, 초기 출력 벡터값(
Figure pat00017
)에 제 3 가중치를 곱한 값을 가치(value) 정보로 분류할 수 있다.
어텐션은 분류된 쿼리(query) 정보, 키(key) 정보 및 가치(value) 정보에 기초하여 쿼리 정보 및 키 정보 간에 상관성 정보를 측정하고, 측정된 상관성 정보 및 가치 정보에 기초하여 각 음성 프레임의 특징값을 도출할 수 있다. 이 때, 쿼리 정보 및 키 정보는 상관성 함수를 통해 복수의 음성 프레임 각각의 가치 정보에 대한 어텐션 가중치를 도출하는데 사용될 수 있다.
선택부(220)는 인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘(복수의 SPM tokens) 및 제 1 음성 프레임의 초기 출력 벡터값(
Figure pat00018
) 간 비교 결과를 통해 인식 어휘 데이터베이스로부터 제 1 후보 인식 어휘(
Figure pat00019
= {<sos>, '뿔'})를 제 1 음성 프레임에 대한 인식 결과로서 선택할 수 있다. 이 경우, 제 1 음성 프레임인 '뿌'가 제 1 후보 인식 어휘 '뿔'로 오인식된다.
디코딩 스텝 1에서 제 1 음성 프레임의 초기 출력 벡터값(
Figure pat00020
)이 projection and softmax 레이어에 입력되면, 도출부(210)는 projection and softmax 레이어를 통해 인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘 각각과 디코딩된 제 1 음성 프레임을 비교하여 각 후보 인식 어휘에 대한 인식 확률값을 도출할 수 있다. 이 때, 인식 확률값은 음성 신호의 필터 뱅크 벡터 정보가 주어졌을 때의 복수의 후보 인식 어휘 각각에 대한 인식 확률값이다.
선택부(220)는 복수의 후보 인식 어휘 중 인식 확률값이 가장 높은 제 1 후보 인식 어휘를 선택할 수 있다.
확장부(230)는 오인식 매핑 테이블(30)에 기초하여 선택된 제 1 후보 인식 어휘를 제 1 인식 어휘 후보군으로 확장시킬 수 있다. 확장부(230)는 오인식 매핑 테이블(30)에 기초하여 '뿔'(제 1 후보 인식 어휘)을 '부부', '뿌', '부'(제 1 인식 어휘 후보군)로 확장시킬 수 있다. 여기서, 오인식 매핑 테이블(30)은 예를 들어, 오인식 어휘(예컨대, '뿌')와 해당 오인식 어휘와 유사한 어휘들(예컨대, '부', '뿔', '부부')로 구성된 테이블이다.
확장부(230)는 오인식 매핑 테이블(30)에 포함된 복수의 오인식 어휘 중 제 1 후보 인식 어휘와 기설정된 값 이상의 유사도가 있는 오인식 어휘를 제 1 어휘 후보군으로 포함시킬 수 있다.
확장부(230)는 제 1 후보 인식 어휘인 '뿔'이 오인식 매핑 테이블(30)에 존재하는 경우, '뿔'과 유사도가 있는 오인식 어휘들('부부', '뿌', '부')을 오인식 매핑 테이블(30)로부터 추출하고, 추출된 오인식 어휘들과 제 1 후보 인식 어휘를 제 1 어휘 후보군으로 포함시킬 수 있다.
도 4a 및 4b를 함께 참조하면, 도출부(210)는 음성 인식 장치(100)의 음성 인식 상태 정보에 기초하여 제 1 인식 어휘 후보군에 대한 어휘 검증 확률값을 도출할 수 있다. 여기서, 음성 인식 상태 정보는 음성 인식 장치(100)의 음성 인식이 실패한 음성 신호와 관련된 정보를 의미할 수 있다.
예를 들어, 음성 인식 서버(미도시)는 음성 인식 장치(100)로부터 수신된 음성 신호(예컨대, '김광석 노래 틀어줘')가 어떤 서비스의 어떤 명령을 포함하는 신호인지를 분석하고, 분석 결과(예컨대, goal= 'music play', singer = '김광석', 신뢰도 점수= 0.8)를 음성 인식 장치(100)에게 전달한다. 만일, 음성 신호의 분석이 실패한 경우, 음성 인식 서버(미도시)는 음성 신호에 대한 디코딩 과정에서 확장된 어휘 및 분석 결과의 신뢰도 점수를 음성 인식 장치(100)의 음성 인식 상태 정보로서 저장할 수 있다. 예를 들어, 음성 인식 상태 정보가 {'뿔', '광석', '뽑아줘' : 0.02} 인 경우, 0.02는 스무딩 요소 람다값(smoothing factor lambda)로 사용된다.
도출부(210)는 어휘 검증기를 통해 제 1 인식 어휘 후보군에 포함된 복수의 인식 어휘 각각에 대한 어휘 검증 확률값을 도출할 수 있다.
도출부(210)는 제 1 어휘 후보군에 속하는 '부부', '뿌', '부', '뿔' 각각을 문자소 형태로 변환하고, 어휘 검증기에 순차적으로 입력하여 '부부', '뿌', '부', '뿔' 각각에 대한 어휘 검증 확률값을 도출할 수 있다. 예를 들어, 도출부(210)는 '부부'를 'ㅂ', 'ㅜ', 'ㅂ', 'ㅜ'와 같이 문자소 형태로 변환할 수 있다.
도출부(210)는 어휘 검증기를 통해 제 1 인식 어휘 후보군에 포함된 각 인식 어휘에 대하여 순차적으로 LSTM(
Figure pat00021
) → LSTM(
Figure pat00022
) → ... → LSTM(
Figure pat00023
)를 계산하고, P(
Figure pat00024
|X) = softmax(projection(LSTM(
Figure pat00025
)))을 계산함으로써 각 인식 어휘에 대한 어휘 검증 확률값을 도출할 수 있다.
도출부(210)는 제 1 어휘 후보군에 속하는 특정 인식 어휘가 음성 인식 장치(100)의 음성 인식 상태 정보에 존재하는 어휘인 경우, 해당 특정 인식 어휘에 대한 어휘 검증 확률값에 스무딩 요소 람다값을 곱하여 특정 인식 어휘에 대한 최종 어휘 검증 확률값을 도출할 수 있다.
치환부(240)는 제 1 인식 어휘 후보군 중 어느 하나의 인식 어휘로 제 1 후보 인식 어휘를 치환할 수 있다.
선택부(220)는 제 1 인식 어휘 후보군에 포함된 복수의 인식 어휘 중 어휘 검증 확률값이 가장 높은 인식 어휘를 선택할 수 있다.
치환부(240)는 제 1 후보 인식 어휘를 어휘 검증 확률값이 가장 높은 인식 어휘로 치환할 수 있다.
치환부(240)는 음성 인식 장치(100)의 음성 인식 상태 정보에 기초하여 도출된 제 1 인식 어휘 후보군에 대한 어휘 검증 확률값에 기초하여 제 1 인식 어휘 후보군으로부터 선택된 인식 어휘로 제 1 후보 인식 어휘를 치환할 수 있다.
치환부(240)는 음성 인식 장치(100)의 음성 인식 상태 정보가 반영된 제 1 인식 어휘 후보군에 대한 어휘 검증 확률값을 비교하여 가장 큰 어휘 검증 확률값을 갖는 인식 어휘('뿌')에 기초하여 {<sos>, '뿔'}을 포함한 제 1 후보 인식 어휘를 {<sos>, '뿌'}를 포함하는 제 1 후보 인식 어휘로 치환할 수 있다.
인식 판단부(미도시)는 치환된 제 1 후보 인식 어휘가 인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘를 이용하여 인식되는지 여부를 판단할 수 있다. 인식 판단부(미도시)는 기훈련된 어휘 인식 모델(예컨대, SPM 모델)을 통해 치환된 제 1 후보 인식 어휘를 인코딩하고, 치환된 제 1 후보 인식 어휘에 대한 인코딩 결과에 기초하여 치환된 제 1 후보 인식 어휘가 인식 어휘 데이터베이스를 통해 인식되는지를 판단할 수 있다.
음성 인식 수행부(260)는 치환된 제 1 후보 인식 어휘에 기초하여 음성 신호를 구성하는 복수의 음성 프레임 중 제 2 음성 프레임에 대한 음성 인식을 수행할 수 있다.
디코딩부(200)는 치환된 제 1 후보 인식 어휘가 인식 어휘 데이터베이스를 통해 인식되는 경우, 치환된 제 1 후보 인식 어휘를 제 2 인식 어휘 후보군으로 확장할 필요 없이, 치환된 제 1 후보 인식 어휘('뿌')를 디코딩할 수 있다.
디코딩부(200)는 디코딩 스텝 1에서의 제 1 음성 프레임의 특징값(
Figure pat00026
) 및 치환된 제 1 후보 인식 어휘('뿌')를 디코더에 입력하여 디코더를 통해 제 1 음성 프레임에 대한 제 1 출력 벡터값(
Figure pat00027
)을 출력할 수 있다.
디코딩 스텝 2에서, 도출부(210)는 디코딩부(200)로부터 제 1 음성 프레임에 대한 제 1 출력 벡터값(
Figure pat00028
)을 입력받고, 인코딩부(미도시)로부터 음성 신호에 대한 특징 벡터(E)를 입력받으면, 어텐션(Attention)을 통해 제 1 출력 벡터값(
Figure pat00029
) 및 음성 신호에 대한 특징 벡터(E)에 기초하여 제 2 음성 프레임의 특징값(
Figure pat00030
)을 도출할 수 있다.
제 1 음성 프레임에 대한 제 1 출력 벡터값(
Figure pat00031
)이 projection and softmax 레이어에 입력되면, 도출부(210)는 projection and softmax 레이어를 통해 인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘 각각과 디코딩된 제 2 음성 프레임(음성 신호 '뿌 세게 틀어줘'를 구성하는 복수의 음성 프레임 중 제 2 음성 프레임 '세게')을 비교하여 각 후보 인식 어휘에 대한 인식 확률값을 도출할 수 있다.
복수의 후보 인식 어휘 중 인식 확률값이 가장 높은 제 2 후보 인식 어휘가 선택부(220)에 의해 선택되면, 음성 인식 수행부(260)는 제 2 후보 인식 어휘에 기초하여 음성 신호를 구성하는 복수의 음성 프레임 중 제 2 음성 프레임('세게')에 대한 음성 인식을 수행할 수 있다.
확장부(230)는 인식 어휘 데이터베이스를 통해 치환된 제 1 후보 인식 어휘가 인식되지 않은 경우, 오인식 매핑 테이블에 기초하여 치환된 제 1 후보 인식 어휘를 제 2 인식 어휘 후보군으로 더 확장시킬 수 있다. 확장부(230)는 오인식 매핑 테이블(30)에 기초하여 '뿌'(치환된 제 1 후보 인식 어휘)을 '부', '뿌', '뿔'(제 2 인식 어휘 후보군)로 확장시킬 수 있다.
확장부(230)는 오인식 매핑 테이블에 포함된 복수의 오인식 어휘 중 치환된 제 1 후보 인식 어휘와 기설정된 값 이상의 유사도가 있는 오인식 어휘를 제 2 어휘 후보군으로 포함시킬 수 있다.
임베딩부(미도시)는 제 2 인식 어휘 후보군에 속하는 복수의 인식 어휘 각각에 대하여 문자소 임베딩(
Figure pat00032
= GraphemeEmbeddingVector('뿌'),
Figure pat00033
= aphemeEmbeddingVector('부'),
Figure pat00034
= GraphemeEmbeddingVector(‘뿔’),
Figure pat00035
= GraphemeEmbeddingVector(‘부부’))를 수행할 수 있다.
디코딩 스텝 2에서, 음성 인식 수행부(260)는 치환된 제 1 후보 인식 어휘에 기초하여 도출된 제 1 음성 프레임의 특징값을 이용하여 음성 신호를 구성하는 복수의 음성 프레임 중 제 2 음성 프레임에 대한 음성 인식을 수행할 수 있다.
디코딩부(200)는 제 2 인식 어휘 후보군에 포함된 복수의 인식 어휘에 대한 디코딩을 수행할 수 있다.
디코딩부(200)는 제 2 인식 어휘 후보군에 속하는 복수의 인식 어휘 각각에 대한 문자소 임베딩값 및 제 1 음성 프레임의 특징값(
Figure pat00036
)에 기초하여 제 2 인식 어휘 후보군에 속하는 복수의 인식 어휘 각각을 디코딩하고, 디코딩된 각 인식 어휘(
Figure pat00037
,
Figure pat00038
,
Figure pat00039
,
Figure pat00040
)를 출력할 수 있다.
음성 인식 수행부(260)는 제 2 인식 어휘 후보군에 대한 유사도 가중치에 기초하여 도출된 제 1 음성 프레임의 특징값을 이용하여 제 2 음성 프레임에 대한 음성 인식을 수행할 수 있다.
계산부(250)는 디코딩된 제 2 인식 어휘 후보군에 포함된 복수의 인식 어휘 간의 유사도에 기초하여 디코딩된 복수의 인식 어휘별로 유사도 가중치를 계산하고, 디코딩된 복수의 인식 어휘 각각의 유사도 가중치를 합산할 수 있다.
계산부(250)는
Figure pat00041
Figure pat00042
간의 유사도,
Figure pat00043
Figure pat00044
간의 유사도,
Figure pat00045
Figure pat00046
간의 유사도 각각을 계산하고, 각 계산된 유사도에 기초하여 디코딩된 복수의 인식 어휘별로 유사도 가중치(
Figure pat00047
,
Figure pat00048
,
Figure pat00049
)를 계산할 수 있다.
도출부(210)는 디코딩된 복수의 인식 어휘의 유사도 가중치를 각 디코딩된 인식 어휘의 출력 벡터값에 적용하여 제 1 음성 프레임에 대한 제 1 출력 벡터값(
Figure pat00050
=(
Figure pat00051
*
Figure pat00052
+ (
Figure pat00053
*
Figure pat00054
) +(
Figure pat00055
*
Figure pat00056
))을 도출할 수 있다.
도출부(210)는 디코딩부(200)로부터 제 1 음성 프레임에 대한 제 1 출력 벡터값(
Figure pat00057
)을 입력받고, 인코딩부(미도시)로부터 음성 신호에 대한 특징 벡터(E)를 입력받으면, 어텐션(Attention)을 통해 제 1 출력 벡터값(
Figure pat00058
) 및 음성 신호에 대한 특징 벡터(E)에 기초하여 제 2 음성 프레임의 특징값(
Figure pat00059
)을 도출할 수 있다. 이 때, 제 2 음성 프레임의 특징값(
Figure pat00060
)은 도 4c의 디코딩 스텝 3에서 디코더의 입력값으로 사용된다.
선택부(220)는 합산된 디코딩된 복수의 인식 어휘 각각의 유사도 가중치에 기초하여 도출된 제 1 음성 프레임의 특징값(
Figure pat00061
)을 이용하여 인식 어휘 데이터베이스로부터 제 2 음성 프레임에 대응하는 후보 인식 어휘를 선택할 수 있다.
제 1 음성 프레임에 대한 제 1 출력 벡터값(
Figure pat00062
)이 projection and softmax 레이어에 입력되면, 도출부(210)는 projection and softmax 레이어를 통해 인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘 각각과 디코딩된 제 2 음성 프레임(음성 신호 '뿌 세게 틀어줘'를 구성하는 복수의 음성 프레임 중 제 2 음성 프레임 '세게')을 비교하여 각 후보 인식 어휘에 대한 인식 확률값을 도출할 수 있다.
복수의 후보 인식 어휘 중 인식 확률값이 가장 높은 제 2 후보 인식 어휘가 선택부(220)에 의해 선택되면, 음성 인식 수행부(260)는 선택된 제 2 음성 프레임에 대응하는 후보 인식 어휘에 기초하여 제 2 음성 프레임('세게')에 대한 음성 인식을 수행할 수 있다. 이 때, 제 2 음성 프레임('세게')에 대한 음성 인식의 결과는 디코딩 스텝 2 기준으로 {<sos>, ‘뿌’, ‘세계’}가 된다. 제 2 음성 프레임에 대한 후보 인식 어휘는 도 4c의 디코딩 스텝 3에서 어휘 검증기를 통해 다른 어휘로 치환되거나 아니면 그대로 인식 결과로서 사용될 수 있다.
디코딩 스텝 3에서는 '세게' 음성 프레임 다음의 '틀어줘' 음성 프레임이 나오도록 언어적인 정보가 학습되어 있기 때문에 오인식없이 최종적인 인식 결과인 '뿌 세게 틀어줘'를 얻을 수 있다.
한편, 당업자라면, 디코딩부(200), 도출부(210), 선택부(220), 확장부(230), 치환부(240), 계산부(250) 및 음성 인식 수행부(260) 각각이 분리되어 구현되거나, 이 중 하나 이상이 통합되어 구현될 수 있음을 충분히 이해할 것이다.
도 5는 본 발명의 일 실시예에 따른, 음성 인식 서비스를 제공하는 방법을 나타낸 흐름도이다.
도 5를 참조하면, 단계 S501에서 음성 인식 장치(100)는 음성 신호를 구성하는 복수의 음성 프레임 중 제 1 음성 프레임을 디코딩할 수 있다.
단계 S503에서 음성 인식 장치(100)는 인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘 및 디코딩된 제 1 음성 프레임 간 비교 결과를 통해 인식 어휘 데이터베이스로부터 제 1 후보 인식 어휘를 제 1 음성 프레임에 대한 인식 결과로서 선택할 수 있다.
단계 S505에서 음성 인식 장치(100)는 오인식 매핑 테이블에 기초하여 제 1 후보 인식 어휘를 제 1 인식 어휘 후보군으로 확장시킬 수 있다.
단계 S507에서 음성 인식 장치(100)는 제 1 인식 어휘 후보군 중 어느 하나의 인식 어휘로 제 1 후보 인식 어휘를 치환할 수 있다.
단계 S509에서 음성 인식 장치(100)는 치환된 제 1 후보 인식 어휘에 기초하여 도출된 제 1 음성 프레임의 특징값을 이용하여 음성 신호를 구성하는 복수의 음성 프레임 중 제 2 음성 프레임에 대한 음성 인식을 수행할 수 있다.
상술한 설명에서, 단계 S501 내지 S509는 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 음성 인식 장치
200: 디코딩부
210: 도출부
220: 선택부
230: 확장부
240: 치환부
250: 계산부
260: 음성 인식 수행부

Claims (19)

  1. 음성 인식 장치를 통해 음성 인식 서비스를 제공하는 방법에 있어서,
    음성 신호를 구성하는 복수의 음성 프레임 중 제 1 음성 프레임을 디코딩하는 단계;
    인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘 및 상기 디코딩된 제 1 음성 프레임 간 비교 결과를 통해 상기 인식 어휘 데이터베이스로부터 제 1 후보 인식 어휘를 상기 제 1 음성 프레임에 대한 인식 결과로서 선택하는 단계;
    오인식 매핑 테이블에 기초하여 상기 제 1 후보 인식 어휘를 제 1 인식 어휘 후보군으로 확장시키는 단계;
    상기 제 1 인식 어휘 후보군 중 어느 하나의 인식 어휘로 상기 제 1 후보 인식 어휘를 치환하는 단계; 및
    상기 치환된 제 1 후보 인식 어휘에 기초하여 도출된 상기 제 1 음성 프레임의 특징값을 이용하여 상기 음성 신호를 구성하는 복수의 음성 프레임 중 제 2 음성 프레임에 대한 음성 인식을 수행하는 단계
    를 포함하는 음성 인식 서비스 제공 방법.
  2. 제 1 항에 있어서,
    상기 음성 인식 장치의 음성 인식 상태 정보에 기초하여 상기 제 1 인식 어휘 후보군에 대한 어휘 검증 확률값을 도출하는 단계를 더 포함하고,
    상기 치환하는 단계는
    상기 제 1 인식 어휘 후보군에 대한 어휘 검증 확률값에 기초하여 상기 제 1 인식 어휘 후보군으로부터 선택된 인식 어휘로 상기 제 1 후보 인식 어휘를 치환하는 단계를 포함하는 것인, 음성 인식 서비스 제공 방법.
  3. 제 1 항에 있어서,
    상기 인식 어휘 데이터베이스를 통해 상기 치환된 제 1 후보 인식 어휘가 인식되지 않은 경우, 상기 오인식 매핑 테이블에 기초하여 상기 치환된 제 1 후보 인식 어휘를 제 2 인식 어휘 후보군으로 더 확장시키는 단계를 더 포함하고,
    상기 제 2 음성 프레임에 대한 음성 인식을 수행하는 단계는
    상기 제 2 인식 어휘 후보군에 대한 유사도 가중치에 기초하여 도출된 상기 제 1 음성 프레임의 특징값을 이용하여 상기 제 2 음성 프레임에 대한 음성 인식을 수행하는 단계를 더 포함하는 것인, 음성 인식 서비스 제공 방법.
  4. 제 2 항에 있어서,
    상기 인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘 각각과 상기 디코딩된 제 1 음성 프레임을 비교하여 각 후보 인식 어휘에 대한 인식 확률값을 도출하는 단계를 더 포함하고,
    상기 제 1 후보 인식 어휘를 상기 제 1 음성 프레임에 대한 인식 결과로서 선택하는 단계는
    상기 복수의 후보 인식 어휘 중 상기 인식 확률값이 가장 높은 제 1 후보 인식 어휘를 선택하는 단계를 포함하는 것인, 음성 인식 서비스 제공 방법.
  5. 제 1 항에 있어서,
    상기 제 1 인식 어휘 후보군으로 확장시키는 단계는
    상기 오인식 매핑 테이블에 포함된 복수의 오인식 어휘 중 상기 제 1 후보 인식 어휘와 기설정된 값 이상의 유사도가 있는 오인식 어휘를 제 1 어휘 후보군으로 포함시키는 단계를 포함하는 것인, 음성 인식 서비스 제공 방법.
  6. 제 2 항에 있어서,
    상기 제 1 인식 어휘 후보군에 대한 어휘 검증 확률값을 도출하는 단계는
    어휘 검증기를 통해 상기 제 1 인식 어휘 후보군에 포함된 복수의 인식 어휘 각각에 대한 어휘 검증 확률값을 도출하는 단계를 포함하고,
    상기 제 1 후보 인식 어휘를 상기 제 1 음성 프레임에 대한 인식 결과로서 선택하는 단계는
    상기 복수의 인식 어휘 중 상기 어휘 검증 확률값이 가장 높은 인식 어휘를 선택하는 단계를 포함하고,
    상기 치환하는 단계는
    상기 제 1 후보 인식 어휘를 상기 어휘 검증 확률값이 가장 높은 인식 어휘로 치환하는 단계를 포함하는 것인, 음성 인식 서비스 제공 방법.
  7. 제 3 항에 있어서,
    상기 제 2 인식 어휘 후보군으로 더 확장시키는 단계는
    상기 오인식 매핑 테이블에 포함된 복수의 오인식 어휘 중 상기 치환된 제 1 후보 인식 어휘와 기설정된 값 이상의 유사도가 있는 오인식 어휘를 제 2 어휘 후보군으로 포함시키는 단계를 포함하는 것인, 음성 인식 서비스 제공 방법.
  8. 제 3 항에 있어서,
    상기 제 2 인식 어휘 후보군에 포함된 복수의 인식 어휘에 대한 디코딩을 수행하는 단계 및
    상기 디코딩된 복수의 인식 어휘 간의 유사도에 기초하여 상기 디코딩된 복수의 인식 어휘별로 유사도 가중치를 계산하고, 상기 디코딩된 복수의 인식 어휘 각각의 유사도 가중치를 합산하는 단계를 더 포함하는 것인, 음성 인식 서비스 제공 방법.
  9. 제 8 항에 있어서,
    상기 합산된 유사도 가중치에 기초하여 도출된 상기 제 1 음성 프레임의 특징값을 이용하여 상기 인식 어휘 데이터베이스로부터 상기 제 2 음성 프레임에 대응하는 후보 인식 어휘를 선택하는 단계를 더 포함하고,
    상기 제 2 음성 프레임에 대한 음성 인식을 수행하는 단계는
    상기 선택된 제 2 음성 프레임에 대응하는 후보 인식 어휘에 기초하여 상기 제 2 음성 프레임에 대한 음성 인식을 수행하는 단계를 포함하는 것인, 음성 인식 서비스 제공 방법.
  10. 음성 인식 서비스를 제공하는 음성 인식 장치에 있어서,
    음성 신호를 구성하는 복수의 음성 프레임 중 제 1 음성 프레임을 디코딩하는 디코딩부;
    인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘 및 상기 디코딩된 제 1 음성 프레임 간 비교 결과를 통해 상기 인식 어휘 데이터베이스로부터 제 1 후보 인식 어휘를 상기 제 1 음성 프레임에 대한 인식 결과로서 선택하는 선택부;
    오인식 매핑 테이블에 기초하여 상기 제 1 후보 인식 어휘를 제 1 인식 어휘 후보군으로 확장시키는 확장부;
    상기 제 1 인식 어휘 후보군 중 어느 하나의 인식 어휘로 상기 제 1 후보 인식 어휘를 치환하는 치환부; 및
    상기 치환된 제 1 후보 인식 어휘에 기초하여 도출된 상기 제 1 음성 프레임의 특징값을 이용하여 상기 음성 신호를 구성하는 복수의 음성 프레임 중 제 2 음성 프레임에 대한 음성 인식을 수행하는 음성 인식 수행부
    를 포함하는 것인, 음성 인식 장치.
  11. 제 10 항에 있어서,
    상기 음성 인식 장치의 음성 인식 상태 정보에 기초하여 상기 제 1 인식 어휘 후보군에 대한 어휘 검증 확률값을 도출하는 도출부
    를 더 포함하고,
    상기 치환부는 상기 제 1 인식 어휘 후보군에 대한 어휘 검증 확률값에 기초하여 상기 제 1 인식 어휘 후보군으로부터 선택된 인식 어휘로 상기 제 1 후보 인식 어휘를 치환하는 것인, 음성 인식 장치.
  12. 제 10 항에 있어서,
    상기 확장부는 상기 인식 어휘 데이터베이스를 통해 상기 치환된 제 1 후보 인식 어휘가 인식되지 않은 경우, 상기 오인식 매핑 테이블에 기초하여 상기 치환된 제 1 후보 인식 어휘를 제 2 인식 어휘 후보군으로 더 확장시키고,
    상기 음성 인식 수행부는 상기 제 2 인식 어휘 후보군에 대한 유사도 가중치에 기초하여 도출된 상기 제 1 음성 프레임의 특징값을 이용하여 상기 제 2 음성 프레임에 대한 음성 인식을 수행하는 것인, 음성 인식 장치.
  13. 제 11 항에 있어서,
    상기 도출부는
    상기 인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘 각각과 상기 디코딩된 제 1 음성 프레임을 비교하여 각 후보 인식 어휘에 대한 인식 확률값을 도출하고,
    상기 선택부는 상기 복수의 후보 인식 어휘 중 상기 인식 확률값이 가장 높은 제 1 후보 인식 어휘를 선택하는 것인, 음성 인식 장치.
  14. 제 10 항에 있어서,
    상기 확장부는 상기 오인식 매핑 테이블에 포함된 복수의 오인식 어휘 중 상기 제 1 후보 인식 어휘와 기설정된 값 이상의 유사도가 있는 오인식 어휘를 제 1 어휘 후보군으로 포함시키는 것인, 음성 인식 장치.
  15. 제 11 항에 있어서,
    상기 도출부는 어휘 검증기를 통해 상기 제 1 인식 어휘 후보군에 포함된 복수의 인식 어휘 각각에 대한 어휘 검증 확률값을 도출하고,
    상기 선택부는 상기 복수의 인식 어휘 중 상기 어휘 검증 확률값이 가장 높은 인식 어휘를 선택하고,
    상기 치환부는 상기 제 1 후보 인식 어휘를 상기 어휘 검증 확률값이 가장 높은 인식 어휘로 치환하는 것인, 음성 인식 장치.
  16. 제 12 항에 있어서,
    상기 확장부는 상기 오인식 매핑 테이블에 포함된 복수의 오인식 어휘 중 상기 치환된 제 1 후보 인식 어휘와 기설정된 값 이상의 유사도가 있는 오인식 어휘를 제 2 어휘 후보군으로 포함시키는 것인, 음성 인식 장치.
  17. 제 12 항에 있어서,
    상기 디코딩부는 상기 제 2 인식 어휘 후보군에 포함된 복수의 인식 어휘에 대한 디코딩을 수행하되,
    상기 디코딩된 복수의 인식 어휘 간의 유사도에 기초하여 상기 디코딩된 복수의 인식 어휘별로 유사도 가중치를 계산하고, 상기 디코딩된 복수의 인식 어휘 각각의 유사도 가중치를 합산하는 계산부를 더 포함하는 것인, 음성 인식 장치.
  18. 제 17 항에 있어서,
    상기 선택부는
    상기 합산된 유사도 가중치에 기초하여 도출된 상기 제 1 음성 프레임의 특징값을 이용하여 상기 인식 어휘 데이터베이스로부터 상기 제 2 음성 프레임에 대응하는 후보 인식 어휘를 선택하고,
    상기 음성 인식 수행부는
    상기 선택된 제 2 음성 프레임에 대응하는 후보 인식 어휘에 기초하여 상기 제 2 음성 프레임에 대한 음성 인식을 수행하는 것인, 음성 인식 장치.
  19. 음성 인식 서비스를 제공하는 명령어들의 시퀀스를 포함하는 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행될 경우,
    음성 신호를 구성하는 복수의 음성 프레임 중 제 1 음성 프레임을 디코딩하고,
    인식 어휘 데이터베이스에 저장된 복수의 후보 인식 어휘 및 상기 디코딩된 제 1 음성 프레임 간 비교 결과를 통해 상기 인식 어휘 데이터베이스로부터 제 1 후보 인식 어휘를 상기 제 1 음성 프레임에 대한 인식 결과로서 선택하고,
    오인식 매핑 테이블에 기초하여 상기 제 1 후보 인식 어휘를 제 1 인식 어휘 후보군으로 확장시키고,
    상기 제 1 인식 어휘 후보군 중 어느 하나의 인식 어휘로 상기 제 1 후보 인식 어휘를 치환하고,
    상기 치환된 제 1 후보 인식 어휘에 기초하여 도출된 상기 제 1 음성 프레임의 특징값을 이용하여 상기 음성 신호를 구성하는 복수의 음성 프레임 중 제 2 음성 프레임에 대한 음성 인식을 수행하는 명령어들의 시퀀스를 포함하는, 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램.
KR1020200128964A 2020-10-06 2020-10-06 음성 인식 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램 KR20220045839A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200128964A KR20220045839A (ko) 2020-10-06 2020-10-06 음성 인식 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200128964A KR20220045839A (ko) 2020-10-06 2020-10-06 음성 인식 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램

Publications (1)

Publication Number Publication Date
KR20220045839A true KR20220045839A (ko) 2022-04-13

Family

ID=81215027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200128964A KR20220045839A (ko) 2020-10-06 2020-10-06 음성 인식 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR20220045839A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012018201A (ja) 2010-07-06 2012-01-26 Hitachi Ltd テキスト補正方法及び認識方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012018201A (ja) 2010-07-06 2012-01-26 Hitachi Ltd テキスト補正方法及び認識方法

Similar Documents

Publication Publication Date Title
CN111933129B (zh) 音频处理方法、语言模型的训练方法、装置及计算机设备
US11837216B2 (en) Speech recognition using unspoken text and speech synthesis
US10027662B1 (en) Dynamic user authentication
US10388274B1 (en) Confidence checking for speech processing and query answering
US10332508B1 (en) Confidence checking for speech processing and query answering
US20220139395A1 (en) Configurable output data formats
US10395655B1 (en) Proactive command framework
CN113470662A (zh) 生成和使用用于关键词检出系统的文本到语音数据和语音识别系统中的说话者适配
JP2008134475A (ja) 入力された音声のアクセントを認識する技術
KR102152902B1 (ko) 음성 인식 모델을 학습시키는 방법 및 상기 방법을 이용하여 학습된 음성 인식 장치
CN104899192B (zh) 用于自动通译的设备和方法
KR101424193B1 (ko) 타 언어권 화자음성에 대한 음성인식 시스템의 성능 향상을위한 비직접적 데이터 기반 발음변이 모델링 시스템 및방법
CN112669845A (zh) 语音识别结果的校正方法及装置、电子设备、存储介质
CN115116428B (zh) 韵律边界标注方法、装置、设备、介质及程序产品
CN117099157A (zh) 用于端到端自动语音识别置信度和删除估计的多任务学习
CN117859173A (zh) 利用基于语音合成的模型适配改进语音识别
Huang et al. On prosody modeling for ASR+ TTS based voice conversion
KR20180033875A (ko) 음성 신호를 번역하는 방법 및 그에 따른 전자 디바이스
US11282495B2 (en) Speech processing using embedding data
JP5004863B2 (ja) 音声検索装置および音声検索方法
KR20220045839A (ko) 음성 인식 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램
JP2011007862A (ja) 音声認識装置、音声認識プログラム、および音声認識方法
JP7143665B2 (ja) 音声認識装置、音声認識プログラムおよび音声認識方法
KR102621954B1 (ko) 관련 지식 유무에 따라 대화모델을 운용하는 대화 방법 및 시스템
KR102300303B1 (ko) 발음 변이를 적용시킨 음성 인식 방법