KR20200091797A - 음성 인식 장치 및 방법 - Google Patents

음성 인식 장치 및 방법 Download PDF

Info

Publication number
KR20200091797A
KR20200091797A KR1020190159359A KR20190159359A KR20200091797A KR 20200091797 A KR20200091797 A KR 20200091797A KR 1020190159359 A KR1020190159359 A KR 1020190159359A KR 20190159359 A KR20190159359 A KR 20190159359A KR 20200091797 A KR20200091797 A KR 20200091797A
Authority
KR
South Korea
Prior art keywords
output value
speech recognition
recognition model
encoder
output
Prior art date
Application number
KR1020190159359A
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 PCT/KR2020/001061 priority Critical patent/WO2020153736A1/en
Priority to EP20744656.8A priority patent/EP3850622A4/en
Priority to US16/750,274 priority patent/US11302331B2/en
Publication of KR20200091797A publication Critical patent/KR20200091797A/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/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/28Constructional details of speech recognition systems
    • G10L15/32Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/16Speech classification or search using artificial neural networks
    • 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/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/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)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Machine Translation (AREA)

Abstract

본 개시는 사용자의 음성을 인식하는 전자 장치 및 전자 장치가 사용자의 음성을 인식하는 방법에 관한 것이다.
일 실시 예에 의하면, 전자 장치가 사용자의 음성을 인식하는 방법은 사용자의 음성 입력에 기초하여 오디오 신호를 획득하는 동작; 상기 오디오 신호가 입력되는 경우 제1 레벨의 문자열을 출력하는 제1 음성 인식 모델의 출력 값을 획득하는 동작; 상기 오디오 신호가 입력되는 경우 상기 제1 음성 인식 모델의 출력 값에 기초하여 상기 오디오 신호에 대응되는 제2 레벨의 문자열을 출력하는 제2 음성 인식 모델의 출력 값을 획득하는 동작; 및 상기 제2 음성 인식 모델의 출력 값으로부터 상기 사용자의 음성을 인식하는 동작; 을 포함할 수 있다.

Description

음성 인식 장치 및 방법 {METHOD AND DEVICE FOR VOICE RECOGNITION}
본 개시는 음성 인식 장치 및 방법에 관한 것이다. 보다 상세하게는, 음성 인식을 위한 오디오 신호를 계층적으로 처리하는 음성 인식 장치 및 방법에 관한 것이다.
음성 인식(Automatic Speech Recognition)은 사람의 음성을 입력 받아 이를 인식하여 텍스트로 변환하는 기술이다. 음성 인식은 스마트폰, 에어컨, 냉장고 및 AI 스피커 등의 다양한 전자 장치에서 활용되고 있다. 먼저 기기가 사람의 음성을 입력으로 받고, 기기 내부에서 이미 훈련되어 있는 음성 인식 모델을 사용하여 입력 음성을 인식하고 텍스트로 변환한다. 이렇게 변환된 텍스트를 최종 출력으로 가지게 된다. 최근 심층 신경망(deep neural network, DNN) 알고리즘이 다양한 머신 러닝 분야에 사용되며 성능 향상이 이루어졌다. 음성 인식 분야에서도 신경망을 사용하여 성능 향상이 크게 이루어졌으며, 최근에는 음성 인식을 위한 종단간 음성 인식 모델(End-to-End Automatic Speech Recognition Model)이 연구되고 있다.
최근 음성 인식 분야에서 사용자의 음성을 인식하기 위한 다양한 기술들이 연구되고 있고, 종단 간(End to End) 학습 방식을 사용하는 인공 신경망 기반의 음성 인식 방법이 활발히 연구되고 있다. 특히, 음성 인식 분야에서 음성 인식의 정확도(accuracy)를 향상시키기 위한 기술 개발이 요구되고 있다.
일 실시 예에 따르면, 서로 다른 레벨의 음성 인식 결과를 출력하는 계층적 구조의 음성 인식(Automatic Speech Recognition) 모델을 이용하여 사용자의 음성을 인식하는 음성 인식 장치 및 방법이 제공될 수 있다.
또한, 일 실시 예에 의하면, 서로 다른 레벨의 음성 인식 결과를 출력하도록 단계적으로 학습된 음성 인식 모델을 이용하여 사용자의 음성을 인식하는 음성 인식 장치 및 방법이 제공될 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시 예에 의하면, 사용자의 음성 입력에 기초하여 오디오 신호를 획득하는 동작; 상기 오디오 신호가 입력되는 경우 제1 레벨의 문자열을 출력하는 제1 음성 인식 모델의 출력 값을 획득하는 동작; 상기 오디오 신호가 입력되는 경우 상기 제1 음성 인식 모델의 출력 값에 기초하여 상기 오디오 신호에 대응되는 제2 레벨의 문자열을 출력하는 제2 음성 인식 모델의 출력 값을 획득하는 동작; 및 상기 제2 음성 인식 모델의 출력 값으로부터 상기 사용자의 음성을 인식하는 동작; 을 포함하는, 방법을 제공할 수 있다.
또한, 일 실시 예에 의하면, 하나 이상의 명령어들(instructions)을 포함하는 프로그램을 저장하는 메모리; 및 상기 하나 이상의 명령어들을 실행하는 프로세서; 를 포함하고, 상기 프로세서는, 사용자의 음성 입력에 기초하여 오디오 신호를 획득하고, 상기 오디오 신호가 입력되는 경우 제1 레벨의 문자열을 출력하는 제1 음성 인식 모델의 출력 값을 획득하고, 상기 오디오 신호가 입력되는 경우 상기 제1 음성 인식 모델의 출력 값에 기초하여 상기 오디오 신호에 대응되는 제2 레벨의 문자열을 출력하는 제2 음성 인식 모델의 출력 값을 획득하고, 상기 제2 음성 인식 모델의 출력 값으로부터 상기 사용자의 음성을 인식하는, 전자 장치 를 제공할 수 있다.
또한, 일 실시 예에 의하면, 사용자의 음성 입력에 기초하여 오디오 신호를 획득하는 동작; 상기 오디오 신호가 입력되는 경우 제1 레벨의 문자열을 출력하는 제1 음성 인식 모델의 출력 값을 획득하는 동작; 상기 오디오 신호가 입력되는 경우 상기 제1 음성 인식 모델의 출력 값에 기초하여 상기 오디오 신호에 대응되는 제2 레벨의 문자열을 출력하는 제2 음성 인식 모델의 출력 값을 획득하는 동작; 및 상기 제2 음성 인식 모델의 출력 값으로부터 상기 사용자의 음성을 인식하는 동작; 을 포함하는, 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 제공될 수 있다.
도 1은 일 실시 예에 따른, 전자 장치가 사용자의 음성을 인식하는 방법을 개략적으로 나타내는 도면이다.
도 2는 일 실시 예에 따라 전자 장치가 사용자의 음성을 인식하는 방법의 흐름도이다.
도 3은 일 실시 예에 따라 전자 장치가 사용자의 음성을 인식하기 위해 이용하는 음성 인식 모델의 예시를 나타내는 도면이다.
도 4는 일 실시 예에 따라 전자 장치가 이용하는 음성 인식 모델 구조를 설명하기 위한 도면이다.
도 5는 또 다른 실시 예에 따라 전자 장치가 사용자의 음성을 인식하기 위해 이용하는 음성 인식 모델의 예시를 나타내는 도면이다.
도 6은 또 다른 실시 예에 따라 전자 장치가 사용자의 음성을 인식하기 위해 이용하는 음성 인식 모델의 예시를 나타내는 도면이다.
도 7은 일 실시 예에 따라 서로 다른 레벨의 음성 인식 결과를 출력하기 위한 음성 인식 모델을 단계적으로 학습시키는 과정을 설명하기 위한 도면이다.
도 8은 또 다른 실시 예에 따라 서로 다른 레벨의 음성 인식 결과를 출력하기 위한 음성 인식 모델을 단계적으로 학습시키는 과정을 설명하기 위한 도면이다.
도 9는 일 실시 예에 따라 전자 장치가 오디오 신호를 획득하는 방법을 구체적으로 설명하기 위한 도면이다.
도 10은 일 실시 예에 따라 전자 장치가 이용하는 음성 인식 모델의 구조를 설명하기 위한 도면이다.
도 11은 일 실시 예에 따른 음성 인식 모델 내의 인코더를 구체적으로 설명하기 위한 도면이다.
도 12는 일 실시 예에 따른 음성 인식 모델 내의 가중치 적용부를 구체적으로 설명하기 위한 도면이다.
도 13은 일 실시 예에 따른 어텐션 기반(attention-based) 음성 인식 모델의 구조를 설명하기 위한 도면이다.
도 14는 일 실시 예에 따른 전자 장치의 블록도이다.
도 15는 또 다른 실시 예에 따른 전자 장치의 블록도이다.
도 16은 일 실시 예에 따른 서버의 블록도이다.
도 17은 일 실시 예에 따라, 전자 장치 및 서버가 연동됨으로써 사용자의 음성을 인식하는 과정을 설명하기 위한 도면이다.
도 18은 또 다른 실시 예에 따라, 전자 장치 및 서버가 연동됨으로써 사용자의 음성을 인식하는 방법을 나타내는 도면이다.
도 19는 또 다른 실시 예에 따라, 전자 장치 및 서버가 연동됨으로써 사용자의 음성을 인식하는 방법을 나타내는 도면이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 일 실시 예에 따른, 전자 장치가 사용자의 음성을 인식하는 방법을 개략적으로 나타내는 도면이다.
일 실시 예에 의하면, 전자 장치(1000)는 종단간(End to End) 음성 인식(Automatic Speech Recognition, ASR) 모델을 포함할 수 있다. 예를 들어, 전자 장치(1000)는 오디오 신호를 획득하고, 획득된 오디오 신호를 음성 인식(ASR) 모델에 입력함으로써 오디오 신호 내 사용자의 음성을 인식할 수 있다.
종단간 음성 인식(ASR) 모델은, 음성으로부터 통합 신경망을 거쳐 문자열을 인식하는 음성 인식 모델로서, 음향 모델, 발음 사전 및 언어 모델을 별도로 이용하지 않고 통합된 신경망을 포함하는 구조의 음성 인식 모델일 수 있다. 종단간 ASR 모델은 통합된 신경망을 이용함으로써, 음성으로부터 음소를 인식한 이후에 음소를 텍스트로 변환하는 과정이 없이, 음성을 텍스트로 변환할 수 있다. 종단간 ASR 모델은, 재귀 신경망(recurrent network)을 포함하는 구조를 포함할 수 있으며, 음성 입력을 인코딩하는 인코더와 인코더 출력 값으로부터 문자열을 추정하는 디코더를 포함할 수 있다.
본 개시에 따른 전자 장치(1000)내 인코더는 사용자의 음성 입력을 포함하는 오디오 신호를 인코딩함으로써 사용자의 음성이 나타내는 음성학적 특징에 관한 음성(acoustic) 정보를 결정할 수 있다. 또한, 본 개시에 따른 전자 장치(1000)내 디코더는 인코더의 출력 값에 기초하여. 음성 인식 모델이 소정의 레벨에 따른 문자열을 출력하도록 언어(linguistic) 정보를 이용할 수 있다.
일 실시 예에 따른 전자 장치(1000)는 AI 프로그램이 탑재되고 음성 인식 기능을 포함하는 스마트폰, 태블릿 PC, PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 서버, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 스피커 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다.
일 실시 예에 의하면, 전자 장치(1000)는 전자 장치와 네트워크를 통하여 연결되는 서버(2000)와 연동함으로써 오디오 신호 내 사용자의 음성을 인식할 수 있다. 일 실시 예에 의하면, 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함할 수 있다. 전자 장치(1000)와 네트워크를 통하여 연결되는 서버(2000)는 본원 전자 장치(1000)와 통신 가능한 적어도 하나의 다른 전자 장치를 포함할 수 있다.
일 실시 예에 의하면, 전자 장치(1000)는 복수의 음성 인식(ASR) 모델들(110, 120)을 포함할 수 있다. 예를 들어, 전자 장치(1000)는 제1 음성 인식 모델(110) 및 제2 음성 인식 모델(120)을 포함할 수 있다. 그러나, 이에 한정되는 것은 아니며, 단일의 음성 인식(ASR) 모델 또는 더 많은 수의 음성 인식(ASR) 모델을 포함할 수도 있다. 전자 장치(1000)는 서로 다른 레벨의 음성 인식 결과를 출력하는 음성 인식 모델들을 이용하여 오디오 신호 내 사용자의 음성을 인식할 수 있다.
전자 장치(1000)는 제1 음성 인식 모델(110)을 이용하여 오디오 신호로부터 제1 레벨의 문자열(116)을 제공할 수 있다. 또한, 전자 장치(1000)는 제2 음성 인식 모델(120)을 이용하여 오디오 신호로부터 제2 레벨의 문자열(126)을 제공할 수 있다. 일 실시 예에 의하면, 전자 장치(1000)는 제1 음성 인식 모델의 음성 인식 결과로써 제1 레벨의 문자열(116) 및 제2 음성 인식 모델의 음성 인식 결과로써 제2 레벨의 문자열(126)을 함께 출력할 수도 있다. 그러나 전자 장치(1000)는 오디오 신호로부터, 제2 레벨의 문자열(126)만을 음성 인식 결과로써 사용자에게 제공할 수 도 있다.
제1 음성 인식 모델(110)은 인코더(114)를 포함할 수 있다. 그러나 제1 음성 인식 모델(110)은 인코더(114) 및 디코더(112)를 포함할 수 있다. 제1 음성 인식 모델(110)이 인코더를 포함하는 경우, 전자 장치(1000)는 인코더(114)의 출력 값의 차원을 소프트 맥스 레이어의 출력 값의 차원으로 변환하기 위한 프로젝션 레이어 및 프로젝션 레이어의 출력 값에 대한 확률 값을 출력하기 위한 소프트 맥스 레이어를 인코더(114)의 출력 값에 별도로 적용함으로써, 인코더의 출력 값으로부터 제1 레벨의 문자열을 획득할 수 있다. 또 다른 실시 예에 따라, 제1 음성 인식 모델(110)이 인코더(114) 및 디코더(112)를 포함하는 경우, 전자 장치(1000)는 디코더(112)의 출력 값의 차원을 소프트 맥스 레이어 내 출력 값의 차원으로 변환하기 위한 프로젝션 레이어 및 소프트 맥스 레이어를 디코더(112)의 출력 값에 적용함으로써, 디코더의 출력 값으로부터 제1 레벨의 문자열을 획득할 수도 있다. 그러나 전술한 프로젝션 레이어 및 소프트 맥스 레이어는 디코더(112) 자체에 포함될 수도 있으며, 전자 장치(1000)는 디코더(112)를 이용하여 인코더(114)의 출력 값으로부터 제1 레벨의 문자열을 획득할 수도 있다.
도 1에서는 제1 음성 인식 모델(110)을 인코더(114) 및 디코더(112)를 이용하여 분리되게 도시하였으나, 제1 음성 인식 모델(110) 내 모델의 구조가 인코더 및 디코더로 한정되는 것은 아니다. 예를 들어, 제1 음성 인식 모델(110)은 복수의 적층된(stacked) LSTM 레이어들, 상기 레이어들로부터 출력된 히든 레이어 벡터의 차원(Dimension) D를 소프트 맥스 레이어 내 N개 출력의 각 레이블에 대한 확률 값으로 변환하기 위해, D x N matrix를 이용하여 히든 레이어 벡터를 projection하는 프로젝션 레이어 및 상기 프로젝션 레이어의 출력 값에 대응되는 레이블의 확률 값을 출력하는 소프트 맥스 레이어를 포함할 수 있다.
다만, 제1 음성 인식 모델(110)이 복수의 적층된(stacked) LSTM 레이어들, 프로젝션 레이어 및 소프트 맥스 레이어를 포함하는 경우, 복수의 적층된 LSTM 레이어들은, 인코더의 기능과 유사하게, 사용자의 음성 입력을 포함하는 오디오 신호를 인코딩함으로써 사용자의 음성이 나타내는 음성학적 특징에 관한 음성(acoustic) 정보를 결정할 수 있고, 제1 음성 인식 모델(110) 내의 프로젝션 레이어 및 소프트 맥스 레이어는 인코더의 출력 값에 기초하여. 음성 인식 모델이 소정의 레벨에 따른 문자열을 출력하도록 언어(linguistic) 정보를 이용함으로써, 제1 레벨의 문자열을 출력할 수 있다.
제2 음성 인식 모델(120)은 인코더(124)를 포함할 수 있다. 그러나, 제2 음성 인식 모델(120)은 인코더(124) 및 디코더(122)를 포함할 수도 있다. 제2 음성 인식 모델(120)이 인코더(124)를 포함하는 경우, 전자 장치(1000)는 인코더의 출력 값의 차원을 소프트 맥스 레이어의 출력 값의 차원으로 변환하기 위한 프로젝션 레이어 및 프로젝션 레이어의 출력 값에 대한 확률 값을 결정하기 위한 소프트 맥스 레이어를 인코더(124)의 출력 값에 별도로 적용함으로써, 인코더의 출력 값으로부터 제2 레벨의 문자열을 획득할 수 있다. 또 다른 실시 예에 따라, 제2 음성 인식 모델(120)이 인코더(124) 및 디코더(122)를 포함하는 경우, 전자 장치(1000)는 디코더(122)의 출력 값의 차원을 소프트 맥스 레이어 내 출력 값의 차원으로 변환하기 위한 프로젝션 레이어 및 소프트 맥스 레이어를 디코더(122)의 출력 값에 적용함으로써, 디코더(122)의 출력 값으로부터 제2 레벨의 문자열을 획득할 수도 있다.
또 다른 실시 예에 따라, 제2 음성 인식 모델(120)은 디코더(122)만을 포함할 수도 있고, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값에 기초하여 디코더(122)로부터 출력되는 디코더(122)의 출력 값에 프로젝션 레이어 및 소프트 맥스 레이어를 적용함으로써 제2 레벨의 문자열을 획득할 수도 있다.
또한, 전술한 제1 음성 인식 모델과 같이, 프로젝션 레이어 및 소프트 맥스 레이어는 디코더(122) 자체에 포함될 수도 있으며, 전자 장치(1000)는 프로젝션 레이어 및 소프트 맥스 레이어를 포함하는 디코더(122)의 출력 값으로부터 직접 제2 레벨의 문자열을 획득할 수도 있다.
도 1에서는, 제2 음성 인식 모델(120)을 인코더(124) 및 디코더(122)를 이용하여 분리되게 도시하였으나, 제2 음성 인식 모델(120) 내 모델의 구조는 인코더(124) 및 디코더(122)로 한정되는 것은 아니다. 예를 들어, 제2 음성 인식 모델(120)은 복수의 적층된(Stacked) LSTM 레이어들, 상기 레이어들로부터 출력된 히든 레이어 벡터의 차원(Dimension) D를 소프트 맥스 레이어 내 N개 출력의 각 레이블에 대한 확률 값으로 변환하기 위해, D x N matrix를 이용하여 히든 레이어 벡터를 projection하는 프로젝션 레이어 및 상기 프로젝션 레이어의 출력 값에 대응되는 레이블의 확률 값을 출력하는 소프트 맥스 레이어를 포함할 수 있다.
제2 음성 인식 모델(120)이 복수의 적층된(stacked) LSTM 레이어들, 프로젝션 레이어 및 소프트 맥스 레이어를 포함하는 경우, 복수의 적층된 LSTM 레이어들은, 인코더의 기능과 유사하게, 사용자의 음성 입력을 포함하는 오디오 신호를 인코딩함으로써 사용자의 음성이 나타내는 음성학적 특징에 관한 음성(acoustic) 정보를 결정할 수 있고, 프로젝션 레이어 및 소프트 맥스 레이어는 인코더의 출력 값에 기초하여. 음성 인식 모델이 소정의 레벨에 따른 문자열을 출력하도록 언어(linguistic) 정보를 이용함으로써, 제2 레벨의 문자열을 출력할 수 있다.
일 실시 예에 의하면, 전자 장치(1000)가 이용하는 제2 음성 인식 모델(120)은 제1 음성 인식 모델(110)의 출력 값에 기초하여 오디오 신호로부터 제2 레벨의 문자열을 출력할 수 있다. 그러나 이에 한정되는 것은 아니고, 제2 음성 인식 모델(120)은 제1 음성 인식 모델(110)의 음성 인식 결과에 기초하지 않고 독립적으로 제2 레벨의 음성 인식 결과로써 제2 레벨의 문자열을 출력할 수도 있다. 전자 장치(1000)가 음성 인식 모델을 이용하여 오디오 신호로부터 획득하는 문자열은 적어도 하나의 문자(Character)를 포함할 수 있다. 일 실시 예에 의하면, 문자열은 적어도 하나의 문자들을 포함하는 복수의 부분 문자열들(sub-strings)을 포함할 수 있다.
일 실시 예에 의하면, 제1 레벨의 문자열이 문자소(graphemes)단위의 부분 문자열들(예컨대 h, e, l, l, o, i, a, m, a, t, e, a, c, h, e, r)을 포함하는 경우, 제2 레벨의 문자열은 BPE(Byte Pair Encoding) 단위의 부분 문자열(예컨대 hell, o, i, am, a, tea, ch, er) 또는 워드(word) 단위의 부분 문자열(예컨대, hello, i, am, a, teacher)을 포함할 수 있다. 즉, 제2 음성 인식 모델(120)이 출력하는 제2 레벨의 문자열은 상기 제1 레벨의 문자열 내의 적어도 하나의 문자를 원소로 포함하는 집합의 부분 집합(sub-set)을 포함할 수 있다. 여기에서, BPE는 문자열 내 1개 문자(character)를 1바이트(byte)라고 할 때, 문자열 내 반복되는 바이트 쌍을 병합하여 더 이상 반복되지 않은 바이트로 변경함으로써 sub-word 또는 word-piece를 생성하기 위한 문자 압축 알고리즘일 수 있다. 즉, 본 개시의 일 실시 예에 따른 BPE 단위는 sub-word 또는 word-piece 단위에 대응(corresponding)될 수 있다.
그러나, 또 다른 실시 예에 의하면, 제1 레벨의 문자열이 음소(phonemes)단위의 부분 문자열을 포함하는 경우, 제2 레벨의 문자열은 문자(character) 단위의 부분 문자열, 또는 워드(word) 단위의 부분 문자열을 포함할 수도 있다. 즉, 제2 음성 인식 모델이 출력하는 제2 레벨의 문자열은 문자열 내 부분 문자열(sub-strings)들이, 제1 음성 인식 모델이 출력하는 제1 레벨의 문자열 내 부분 문자열들 보다 의미론적(semantic)으로 완성된 단어의 형태에 가까운 기타 텍스트 단위(text unit)를 포함할 수 있다. 즉, 전자 장치(1000)의 음성 인식 모델이 높은 레벨의 문자열을 출력할 수록, 문자열 내의 부분 문자열(sub-strings)들은 의미론적(semantic)으로, 완성된 단어의 형태에 더 가까워질 수 있다. 또한, 일 실시 예에 의하면, 후술하는 바와 같이, 전자 장치(1000)에 포함된 복수의 음성 인식 모델, 음성 인식 모델 내 인코더 또는 디코더는 서로 다른 레벨의 음성 인식 결과를 출력하기 위해 단계적으로 학습될 수 있다.
도 2는 일 실시 예에 따라 전자 장치가 사용자의 음성을 인식하는 방법의 흐름도이다.
S210에서, 전자 장치(1000)는 사용자의 음성 입력에 기초하여 오디오 신호를 획득할 수 있다. 예를 들어, 전자 장치(1000)는 복수의 프레임 단위로 구분되는 오디오 신호를 획득하고, 프레임 별로 오디오 신호의 특징 값을 획득하며, 획득된 프레임 별 오디오 신호의 특징 값을 음성 인식 모델에 입력할 수 있다.
S220에서, 전자 장치(1000)는 오디오 신호를 제1 레벨의 문자열을 출력하는 제1 음성 인식 모델에 입력함으로써 제1 음성 인식 모델의 출력 값을 획득할 수 있다. 제1 음성 인식 모델의 출력 값은 제1 레벨의 음성 인식 결과(예컨대 graphemes 단위의 부분 문자열들을 포함하는 문자열)에 대한 정보 또는 제1 음성 인식 모델 내의 제1 인코더의 출력 값 중 적어도 하나를 포함할 수 있다.
S230에서, 전자 장치(1000)는 제2 레벨의 문자열을 출력하는 제2 음성 인식 모델의 출력 값을 획득할 수 있다. 일 실시 예에 의하면, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값에 기초하여 오디오 신호에 대응되는 제2 레벨의 문자열을 출력하도록 제2 음성 인식 모델을 학습시키고, 제2 음성 인식 모델의 출력 값으로부터 제2 레벨의 문자열을 획득할 수 있다.
일 실시 예에 의하면, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값 중, 제1 음성 인식 모델 내의 제1 인코더의 출력 값 및 상기 제1 음성 인식 모델의 음성 인식 결과 값에 기초하여 제2 음성 인식 모델을 학습시키고, 학습된 제2 음성 인식 모델을 이용하여 제2 레벨의 문자열을 제공할 수도 있다.
즉, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값 중, 제1 레벨의 음성 인식 결과에 대한 정보가 나타내는 언어(linguistic) 정보 및 제1 음성 인식 모델 내 제1 인코더의 출력 값이 나타내는 사용자 음성(acoustic)정보를 함께 이용함으로써 제2 레벨의 문자열이 출력되도록 제2 음성 인식 모델을 학습시키고, 학습된 제2 음성 인식 모델을 이용하여 제2 레벨의 문자열을 제공할 수 있으므로, 사용자의 음성을 단계 별로 더 정확하게 인식할 수 있다. 그러나, 또 다른 실시 예에 의하면, 전자 장치(1000)는 제1 음성 인식 모델 내 제1 인코더의 출력 값만을 이용하여 제2 음성 인식 모델이 제2 레벨의 문자열을 출력하도록 학습시킬 수도 있음은 물론이다.
S240에서, 전자 장치(1000)는 제2 음성 인식 모델의 출력 값으로부터 사용자의 음성을 인식할 수 있다. 예를 들어, 전자 장치(1000)는 제2 음성 인식 모델의 출력단에 소프트 맥스 레이어의 포맷으로 변환하기 위한 프로젝션(projection) 레이어를 적용할 수 있다. 본 개시에 따른 전자 장치(1000)가 음성 인식 모델의 출력 값을 소프트 맥스 레이어의 포맷으로 변환하는 동작은, 음성 인식 모델의 출력 값 내 히든 레이어 벡터의 차원(dimension) D를, 소프트 맥스 레이어 내 N개 출력의 각 레이블에 대한 확률 값으로 변환하기 위해, D x N matrix를 이용하여 히든 레이어 벡터를 projection하는 동작에 대응될 수 있다. 즉, 일 실시 예에 의하면 전자 장치(1000)는 D 차원(dimension)의 제2 음성 인식 모델의 출력 값에 프로젝션 레이어를 적용하고, 프로젝션 레이어가 적용된 N차원의 제2 음성 인식 모델의 출력 값을 제2 레벨의 문자열에 대한 정보를 포함하는 레이블에 대한 확률 값을 출력하는 소프트 맥스 레이어에 입력함으로써, 제2 음성 인식 모델의 출력 값으로부터 문자열을 획득할 수 있다.
전자 장치(1000)가 프로젝션 레이어를 통하여 차원이 변환된 제2 음성 인식 모델의 출력 값을 소프트 맥스 레이어에 입력하는 동작은, 소프트맥스 함수(function)를 이용하여 소프트 맥스 레이어내 각 레이블에 대응되는 확률 값을 normalize함으로써 총 확률 값의 합이 1이 되도록 하는 동작을 더 포함할 수 있다. 또한, 일 실시 예에 의하면, 소프트 맥스 레이어가 프로젝션 레이어를 포함하는 경우, 전자 장치(1000)는 제2 음성 인식 모델의 출력 값을 소프트 맥스 레이어에 바로 입력함으로써 제2 음성 인식 모델의 출력 값으로부터 문자열을 획득할 수도 있다.
도 3은 일 실시 예에 따라 전자 장치가 사용자의 음성을 인식하기 위해 이용하는 음성 인식 모델의 예시를 나타내는 도면이다.
일 실시 예에 의하면, 전자 장치(1000)가 사용자의 음성을 인식하기 위해 이용하는 음성 인식 모델(340)은 제1 음성 인식(ASR) 모델(310) 및 제2 음성 인식(ASR) 모델 (320)을 포함할 수 있다. 일 실시 예에 의하면, 제1 음성 인식 모델(310)은 제1 레벨의 문자열을 출력하도록 학습되고, 제2 음성 인식 모델(320)은 제2 레벨의 문자열을 출력하도록 학습될 수 있다.
일 실시 예에 의하면, 제1 음성 인식 모델(310)은 상기 제1 음성 인식 모델(310)에서 제1 레벨의 문자열이 출력되도록 오디오 신호를 인코딩하는 인코더 1(302)를 포함할 수 있다. 그러나 제1 음성 인식 모델(310)은 상기 인코더 1(302)외에 상기 인코더 1(302)의 출력 값으로부터 상기 오디오 신호에 대응되는 제1 레벨의 문자열을 결정하는 디코더 1(304)을 더 포함할 수도 있다.
전술한 제1 음성 인식 모델 내의 인코더 1(302)는 적층된(stacked) 복수의 LSTM 레이어들을 포함할 수 있고, 디코더 1(304)는 전술한 프로젝션 레이어 및 소프트 맥스 레이어를 포함할 수 있다. 그러나, 제1 음성 인식 모델의 구조가 인코더 및 디코더로 구분하여 한정되는 것은 아니며, 제1 음성 인식 모델은 인코더의 기능과 유사하게 오디오 신호를 인코딩함으로써 사용자의 음성이 나타내는 음성학적 특징에 관한 음성 정보를 결정하는 LSTM 레이어들, 상기 디코더의 기능과 유사하게, 상기 LSTM 레이어들 중 적어도 하나의 레이어로부터 출력된 히든 레이어 벡터를 프로젝션(projection)하고 프로젝션 레이어의 출력 값에 대응되는 문자열을 출력하도록 하는 프로젝션 레이어 및 소프트 맥스 레이어를 포함할 수 도 있다.
제1 음성 인식 모델 내의 인코더 1(302) 및 디코더 1(304)는 제1 음성 인식 모델이 제1 레벨의 문자열을 출력하도록 학습될 수 있다. 예를 들어, 전자 장치(1000)는 사용자의 음성을 포함하는 오디오 신호를 획득하고, 획득된 오디오 신호를 제1 음성 인식 모델의 인코더 1(302)에 입력할 수 있다. 제1 음성 인식 모델이 인코더 1(302)을 포함하는 경우, 전자 장치(1000)는 인코더 1(302)의 출력 값을 제1 음성 인식 모델의 출력 값으로 결정할 수 있다. 또 다른 실시 예에 의하면, 제1 음성 인식 모델이 인코더 1(302) 및 디코더 1(304)를 포함하는 경우, 전자 장치(1000)는 인코더 1(302)의 출력 값을 디코더 1(304)를 통해 디코딩하고, 디코더 1(304)의 출력 값으로부터 획득되는 제1 음성 인식 결과(예컨대 제1 레벨의 문자열) 및 인코더 1(302)의 출력 값을 제1 음성 인식 모델의 출력 값으로 결정할 수도 있다.
즉, 일 실시 예에 따른 제1 음성 인식 모델의 출력 값은 인코더 1(302)의 출력 값만을 포함할 수도 있고, 인코더 1(302)의 출력 값 및 디코더 1(302)의 출력 값으로부터 획득되는 제1 음성 인식 결과에 대한 정보 모두를 포함할 수도 있다. 일 실시 예에 의하면, 전자 장치(1000)는 인코더 1의 출력 값 및 상기 제1 음성 인식 결과에 대한 정보를 결합(concatenate)함으로써 제1 음성 인식모델의 출력 값을 결정할 수도 있다.
또 다른 실시 예에 따라, 제1 음성 인식 모델이 적층된(stacked) 복수의 LSTM 레이어들, 프로젝션 레이어 및 소프트 맥스 레이어를 포함하는 경우, 제1 음성 인식 모델의 출력 값은 제1 음성 인식 모델 내 복수의 LSTM 레이어들 중 하나로부터 출력되는 히든 레이어 벡터 및 상기 소프트 맥스 레이어로부터 출력된 상기 소프트 맥스 레이어 내 복수의 문자열에 대응되는 레이블에 해당할 확률 값에 대한 정보를 포함할 수도 있다.
일 실시 예에 의하면, 제2 음성 인식 모델(320)은 제1 음성 인식 모델의 출력 값에 기초하여, 상기 제2 음성 인식 모델(320)에서 제2 레벨의 문자열을 출력할 수 있다. 일 실시 예에 의하면, 제2 음성 인식 모델(320)은 제1 음성 인식 모델의 출력 값에 기초하여, 제2 음성 인식 모델에서 제2 레벨의 문자열이 출력되도록 오디오 신호를 인코딩하는 인코더 2(306)를 포함할 수 있다. 그러나, 제2 음성 인식 모델(320)은 상기 인코더 2(306)외에, 상기 제1 음성 인식 모델의 출력 값에 기초하여, 상기 인코더 2(306)의 출력 값으로부터 상기 오디오 신호에 대응되는 제2 레벨의 문자열을 결정하는 디코더 2(308)를 더 포함할 수도 있다. 또 다른 실시 예에 의하면, 제2 음성 인식 모델(320)은 제1 음성 인식 모델의 출력 값에 기초하여 상기 제2 레벨의 문자열을 결정하기 위한 디코더 2(308)만을 포함할 수도 있다. 제2 음성 인식 모델(320)내의 인코더 2(306) 및 디코더 2(308)은 제2 음성 인식 모델이 제2 레벨의 문자열을 출력하도록 학습될 수 있다.
제2 음성 인식 모델(320)내의 인코더 2(306)는 적층된(stacked) 복수의 LSTM 레이어들을 포함할 수 있고, 디코더 2(308)는 어텐션 레이어, 인코더 2(306)에서 출력된 히든 레이어 벡터의 차원(dimension)을 변환하기 위한 프로젝션 레이어 또는 소프트 맥스 레이어 중 적어도 하나를 포함할 수 있다. 그러나, 제2 음성 인식 모델의 구조가 인코더 및 디코더로 구분하여 한정되는 것은 아니다.
즉 일 실시 예에 의하면, 제2 음성 인식 모델은 제1 음성 인식 모델의 출력 값 중, 제1 인코더의 출력 값에 기초하여, 인코더의 기능과 유사하게, 제2 음성 인식 모델이 제2 레벨의 문자열을 출력하도록 사용자의 오디오 신호를 인코딩하는 복수의 LSTM 레이어들, 제1 음성 인식 모델의 출력 값 중, 제1 레벨의 음성 인식 결과에 대한 정보에 기초하여, 디코더의 기능과 유사하게, 복수의 LSTM 레이어들 중 적어도 하나의 레이어로부터 출력된 히든 레이어 벡터를 프로젝션(projection)하고, 프로젝션 레이어의 출력 값에 대응되는 문자열을 출력하도록 하는 프로젝선 레이어 및 소프트 맥스 레이어를 포함할 수도 있다.
예를 들어, 제2 음성 인식 모델(320)이 인코더 2(306)를 포함하는 경우, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값 중, 인코더 1(302)의 출력 값을 인코더 2(306)에 입력할 수 있다. 전자 장치(1000)는 인코더 2(306)를 이용함으로써, 인코더 1(302)의 출력 값에 기초하여 오디오 신호를 인코딩할 수 있다. 전자 장치(1000)는 인코더 2(306)로부터 출력된 인코더 2의 출력 값을 제2 음성 인식 모델의 출력 값으로 결정할 수 있다. 이 경우 전자 장치(1000)는 인코더 2(306)의 출력 값의 차원을 소프트 맥스 레이어의 출력 값의 차원으로 변환하기 위한 프로젝션 레이어 및 프로젝션 레이어의 출력 값에 대한 확률 값을 결정하기 위한 소프트 맥스 레이어를 인코더 2(306)의 출력 값에 별도로 적용함으로써, 인코더 2(306)의 출력 값으로부터 제2 레벨의 문자열을 획득할 수 있다.
또 다른 실시 예에 의하면, 제2 음성 인식 모델(320)이 인코더 2(306) 및 디코더 2(308)을 포함하는 경우, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값 중, 인코더 1(302)의 출력 값을 인코더 2(306)에 입력하고, 디코더 1(304)의 출력 값으로부터 획득되는 제1 음성 인식 결과(예컨대 제1 레벨의 문자열) 및 제2 인코더(306)의 출력 값을 제2 음성 인식 모델의 디코더 2(308)에 입력할 수 있다. 전자 장치(1000)는 디코더 2(308)의 출력 값을 제2 음성 인식 모델의 출력 값으로 결정할 수 있다.
일 실시 예에 의하면, 전자 장치(1000)는 디코더 2(308)의 출력 값의 포맷에 적합한 프로젝션 레이어 및 소프트 맥스 레이어를 디코더 2(308)의 출력 값에 적용함으로써, 디코더 2(308)의 출력 값으로부터 제2 레벨의 문자열을 획득할 수도 있다. 그러나, 전술한 프로젝션 레이어 및 소프트 맥스 레이어는 디코더 2(308)의 내부에 포함될 수도 있으며, 전자 장치(1000)는 디코더 2(308)를 이용하여 인코더 2(306)의 출력 값으로부터 제2 레벨의 문자열을 획득할 수도 있다.
제2 음성 인식 모델(320)이 디코더 2(320)만을 포함하는 경우, 디코더 2(320)는 제1 음성 인식 모델의 출력 값 중 제1 레벨의 음성 인식 결과에 대한 정보 및 상기 제1 음성 인식 모델 내 제1 인코더의 출력 값에 기초하여, 오디오 신호에 대한 제2 레벨의 문자열을 결정할 수도 있다. 즉, 제2 음성 인식 모델은, 제1 음성 인식 모델의 출력 값에 기초하여, 제1 음성 인식 모델에서 출력된 문자열의 레벨과 다른 제2 레벨의 문자열을 출력하기 위한 신경망 구조를 더 포함할 수도 있다.
도 4는 일 실시 예에 따라 전자 장치가 이용하는 음성 인식 모델 구조를 설명하기 위한 도면이다.
전자 장치(1000)는 도 3에 도시된 바와 같이 제1 음성 인식 모델(310) 및 상기 제1 음성 인식 모델을 기준으로 적층된(stacked) 제2 음성 인식 모델(320)을 이용하여 사용자의 음성을 인식할 수 있다. 그러나 또 다른 실시 예에 의하면, 전자 장치(1000)는 제1 음성 인식 모델 및 제2 음성 인식 모델 외에 계층적으로(hierarchically)으로 적층된(stacked) 더 많은 수의 음성 인식(ASR) 모델을 이용하여 사용자의 음성을 인식할 수도 있다. 즉, 전자 장치(1000)는 제1 음성 인식 모델(401), 제2 음성 인식 모델(405)에 더하여, 제3 음성 인식 모델(409) 내지 제 L 음성 인식 모델(413)을 더 이용하여 사용자의 음성을 인식할 수도 있다.
일 실시 예에 의하면, 제1 음성 인식 모델(401), 제2 음성 인식 모델(405), 제3 음성 인식 모델(409) 내지 제 L 음성 인식 모델(413)은 각각 인코더 1(402), 인코더 2(406), 인코더 3(410) 내지 인코더 L(414)을 포함할 수도 있지만, 제1 음성 인식 모델(401), 제2 음성 인식 모델(405), 제3 음성 인식 모델(409) 내지 제 L 음성 인식 모델(413)은 각각 디코더 1(404), 디코더 2(408), 디코더 3(412) 및 디코더 L(413)을 더 포함할 수도 있다. 그러나, 본 개시에 따른 음성 인식 모델의 구조가 인코더 및 디코더로 구분하여 한정되는 것은 아니며, 하위 레벨의 문자열을 출력하는 음성 인식 모델의 출력 값에 기초하여, 오디오 신호를 인코딩하고, 인코딩된 오디오 신호를 디코딩함으로써 디코딩된 오디오 신호로부터 소정의 레벨의 문자열을 출력하기 위한 신경망 모델을 포함할 수도 있다.
전자 장치(1000)내의 계층적으로 적층된 제1 음성 인식 모델(401), 제2 음성 인식 모델(405), 제3 음성 인식 모델(409) 내지 제L 음성 인식 모델(413)은 각각 서로 다른 레벨의 음성 인식 결과인 문자열을 출력할 수 있다. 일 실시 예에 의하면, 전자 장치(1000)의 계층적으로 적층된 각 음성 인식 모델이, 하위 계층의 음성 인식모델의 출력 값에 기초하여, 오디오 신호에 대응되는 사용자의 음성을 인식하도록 함으로써, 더 정확하게 사용자의 음성을 인식하도록 할 수 있다.
예를 들어, 제1 음성 인식 모델(401)이 인코더 1(402)만을 포함하는 경우, 전자 장치(1000)는 인코더 1(402)의 출력 값을 제1 음성 인식 모델의 출력 값으로 결정하고, 결정된 제1 음성 인식 모델의 출력 값을 제2 음성 인식 모델(405)로 전송할 수 있다. 그러나 제1 음성 인식 모델(401)이 인코더 1(402) 및 디코더 1(404)을 모두 포함하는 경우, 전자 장치(1000)는 디코더 1(404)의 출력 값으로부터 결정되는 1차 음성 인식 결과(예컨대 제1 레벨의 문자열) 및 인코더 1(402)의 출력 값을 제1 음성 인식 모델의 출력 값으로 결정하고, 결정된 제1 음성 인식 모델의 출력 값을 제2 음성 인식 모델(405)에 전송할 수 있다.
제2 음성 인식 모델(405)은 제1 음성 인식 모델(401)의 출력 값에 기초하여, 오디오 신호에 대응되는 제2 레벨의 문자열을 획득하고, 2차 음성 인식 결과(예컨대 제2 레벨의 문자열) 또는 사용자의 음성을 인식하는데 사용된 인코더 2(406)의 출력 값 중 적어도 하나를 제2 음성 인식 모델의 출력 값으로 결정할 수 있다. 전자 장치(1000)는 2차 음성 인식 결과 또는 인코더 2(406)의 출력 값 중 적어도 하나를 포함하는 제2 음성 인식 모델의 출력 값을 제3 음성 인식 모델(409)에 전송할 수 있다.
전술한 바와 같이, 본 개시에 따른 전자 장치(1000)의 상위 계층의 음성 인식 모델은, 낮은 레벨(예컨대 제1 레벨)의 문자열을 출력하도록 학습된 하위 계층의 음성 인식 모델 내의 인코더의 출력 값 및 하위 계층의 음성 인식 결과를 상위 계층의 음성 인식 모델에 전송하고, 상위 계층의 음성 인식 모델이, 하위 계층의 음성 인식 모델 내의 인코더의 출력 값 및 하위 계층의 음성 인식 결과에 기초하여 높은 레벨(예컨대 제2 레벨)의 문자열을 출력하도록 함으로써 정확하게 사용자의 음성을 인식할 수 있다.
도 5는 또 다른 실시 예에 따라 전자 장치가 사용자의 음성을 인식하기 위해 이용하는 음성 인식 모델의 예시를 나타내는 도면이다.
도 3 내지 4에 도시된 바와 같이, 전자 장치(1000) 내의 복수의 음성 인식 모델 각각은 인코더 및 디코더를 포함할 수 있다. 그러나, 일 실시 예에 의하면, 전자 장치(1000) 내의 복수의 음성 인식 모델 각각은 인코더만을 포함할 수도 있다. 예를 들어, 전자 장치의 제1 음성 인식 모델은 제1 레벨의 문자열을 출력하기 위해 오디오 신호를 인코딩하는 인코더 1(502)을 포함하고, 제2 음성 인식 모델은 제2 레벨의 문자열을 출력하기 위해 오디오 신호를 인코딩 하는 인코더 2(504)만을 포함할 수도 있다. 즉, 전자 장치(1000)는 인코더 1(502) 및 인코더 2(504)만을 포함하는 음성 인식 모델(540)을 이용하여 사용자의 음성을 인식할 수도 있다.
전자 장치(1000)내의 음성 인식(ASR) 모델의 인코더는 복수의 레이어들을 포함할 수 있으며, 예를 들어, 복수의 적층된(stacked) LSTM(Long Short-Term Memory) 레이어들을 포함할 수 있다. 또한, 인코딩된 출력 값은 인코더 내의 복수의 레이어들로부터 출력되는 출력 값들 중 하나일 수 있다. 인코딩된 출력 값은 인코더 내의 레이어로부터 출력된 히든 레이어 벡터일 수 있다. 전자 장치(1000)는 음성 인식 모델(540) 내 인코더 1(502) 또는 인코더 2(504)의 출력 값에 상기 인코더 1(502) 또는 인코더 2(504)의 출력 값의 차원을 소프트 맥스 레이어의 출력 값의 차원으로 변환하기 위한 프로젝션 레이어 및 상기 프로젝션 레이어의 출력 값에 대한 확률 값을 결정하는 소프트 맥스 레이어를 적용함으로써, 제1 레벨의 문자열 또는 제2 레벨의 문자열을 획득할 수 있다.일 실시 예에 의하면, 음성 인식 모델(540)내의 인코더 1(502) 및 인코더 2(504)는 제2 레벨의 문자열에 관한 히든 레이어 벡터가 출력되도록 전자 장치(1000)에 의하여 함께 학습될 수도 있지만, 인코더 1(502) 및 인코더 2(504)는 단계적으로 구분되어 학습될 수도 있다. 예를 들어, 전자 장치(1000)는 제1 레벨의 문자열에 관한 히든 레이어 벡터가 출력되도록 인코더 1(502)을 학습 시킨 후, 제2 레벨의 문자열에 관한 히든 레이어 벡터가 출력되도록 인코더 2(504)를 학습시킴으로써 최종적으로 제2 레벨의 문자열에 관한 히든 레이어 벡터가 출력되도록 할 수도 있다. 전술한 인코더의 출력 값은 시퀀스의 형태를 가질 수 있으며, 인코더 내의 뉴럴 네트워크 레이어의 출력 값인 히든 레이어 벡터의 시퀀스일 수 있다.
예를 들어, 음성 인식 모델(540)이 인코더 1(502) 및 인코더 2(504)를 포함하는 경우, 전자 장치(1000)는 전자 장치(1000)는 인코더 2(504)의 출력 값에 음성 인식 모델의 최종 출력 값의 포맷에 적합한 프로젝션 레이어 및/또는 소프트 맥스 레이어를 적용함으로써, 제2 인코더 2(504)의 출력 값으로부터 제2 레벨의 문자열을 획득할 수 있다.
도 6은 또 다른 실시 예에 따라 전자 장치가 사용자의 음성을 인식하기 위해 이용하는 음성 인식 모델의 예시를 나타내는 도면이다.
도 3 내지 4에 도시된 바와 같이, 전자 장치(1000) 내의 복수의 음성 인식 모델 각각은 인코더 및 디코더를 포함할 수 있다. 또한, 도 5에 도시된 바와 같이, 전자 장치(1000)내의 복수의 음성 인식 모델 각각은 인코더만을 포함할 수도 있다. 그러나, 일 실시 예에 의하면, 전자 장치(1000)내의 각 음성 인식 모델의 구조는 모델의 사이즈 또는 목표로 하는 음성 인식의 정확도에 따라 달라질 수 있다.
예를 들어, 전자 장치(1000)의 제1 음성 인식 모델은 인코더 1(602)을 포함하고, 전자 장치(1000)의 제2 음성 인식 모델은 인코더 2(604) 및 디코더 2(606)를 포함할 수 있다. 즉, 전자 장치(1000)는 인코더 1(602), 인코더 2(604) 및 디코더 2(606)를 포함하는 음성 인식 모델(640)을 이용하여 사용자의 음성을 인식할 수도 있다. 도 6에는 도시되지 않았지만, 도 3의 상세한 설명에서 전술한 바와 같이, 전자 장치의 제1 음성 인식 모델이 인코더 1(602) 및 디코더 1(미도시)를 포함하고, 제2 음성 인식 모델은 디코더 2(606)만을 포함할 수 도 있다.
일 실시 예에 의하면, 음성 인식 모델(640) 내의 인코더 1(602)은 제1 레벨의 문자열에 관한 히든 레이어(hidden layer) 벡터가 출력되도록 전자 장치에 의해 학습되고, 학습된 인코더 1(602)는 제1 레벨의 문자열에 관한 음성 정보를 이용함으로써 오디오 신호를 인코딩할 수 있다. 인코더 2(604)는 인코더 1(602)의 출력 값에 기초하여 제2 레벨의 문자열에 관한 음성 정보를 이용함으로써 제2 레벨의 문자열에 관한 오디오 신호를 인코딩할 수 있다. 또한, 디코더 2(606)은 제1 인코더의 출력 값에 기초하여 오디오 신호를 인코딩하는 제2 인코더의 출력 값으로부터 제2 레벨의 문자열을 출력하도록 전자 장치에 의해 학습될 수 있다. 또한, 일 실시 예에 의하면, 인코더 1(602), 인코더 2(604) 및 디코더 2(606)는 전자 장치(1000)에 의해 함께 학습될 수도 있지만, 후술하는 바와 같이, 서로 다른 레벨의 문자열이 출력되도록 하기 위해 단계적으로 학습될 수도 있다.
또 다른 실시 예에 따라, 제1 음성 인식 모델이 인코더 1(602) 및 디코더 1(미도시)를 포함하고, 제2 음성 인식 모델은 디코더 2(606)만을 포함하는 경우를 가정하여 설명한다. 전자 장치(1000) 내 제1 음성 인식 모델이 인코더 1(602) 및 디코더 1(미도시)을 포함하고, 제2 음성 인식 모델은 디코더 2(606)만을 포함하는 경우, 인코더 1(602)은 제1 음성 인식 모델이 제1 레벨의 문자열을 출력하도록, 사용자의 음성 정보를 이용함으로써 오디오 신호를 인코딩하고, 디코더 1(미도시)은 제1 음성 인식 모델이 제1 레벨의 문자열을 출력하도록 인코딩된 오디오 신호를 디코딩함으로써 제1 레벨의 문자열을 결정할 수 있다. 제2 음성 인식 모델의 디코더 2(606)는 제1 음성 인식 모델의 인코더의 출력 값 또는 제1 음성 인식 모델에서 출력된 제1 레벨의 문자열에 관한 정보에 기초하여, 오디오 신호에 대응되는 제2 레벨의 문자열을 결정할 수 있다.
도 7은 일 실시 예에 따라 서로 다른 레벨의 음성 인식 결과를 출력하기 위한 음성 인식 모델을 단계적으로 학습시키는 과정을 설명하기 위한 도면이다.
일 실시 예에 의하면, 전자 장치(1000)는 전자 장치 내의 서로 다른 레벨의 문자열을 출력하는 복수의 음성 인식 모델을 포함할 수 있고, 복수의 음성 인식 모델이 계층적으로 연결된 상태에서 복수의 음성 인식 모델을 함께 학습시킬 수 있다. 하지만, 일 실시 예에 의하면, 전자 장치(1000)는 전자 장치 내의 서로 다른 레벨의 문자열을 출력하는 복수의 음성 인식 모델 각각을 단계적으로 분리하여 학습시킬 수도 있다. 이하에서는 전자 장치(1000)가 인코더 1(722), 인코더 2(744), 가중치 적용부(762) 및 디코더(764)를 포함하는 음성 인식 모델을 단계적으로 학습시키는 과정을 도 7을 참조하여 구체적으로 설명하기로 한다.
도 7의 stage 1 (720)항목으로 도시된 학습 단계에서, 전자 장치(1000)는 문자소(graphemes) 단위의 부분 문자열(예컨대, h, e, l, l, o, i, a, m, a, t, e, a, c, h, e, r)을 포함하는 문자열이 출력되도록, 인코더 1(722)을 학습시킬 수 있다. 예를 들어, 전자 장치(1000)는 학습이 완료된 인코더 1(722) 의 출력 값에 프로젝션 레이어 및 소프트 맥스 레이어를 적용함으로써 인코더 1(722)의 출력 값으로부터 오디오 신호에 대응하는 복수의 문자소 단위의 부분 문자열들을 포함하는, graphemes 레벨의 문자열을 획득할 수 있다.
도 7의 Stage 2 (740)항목으로 도시된 학습 단계에서, 전자 장치(1000)는 학습이 완료된 인코더 1 (722)에 BPE(Byte Pair Encoding) 또는 word-piece단위의 부분 문자열(예컨대 hell, o, i, am, a, tea, ch, er)을 포함하는 문자열이 출력되도록, 인코더 2(740)을 연결시킨 후, 서로 연결된 인코더 1(722) 및 인코더 2(740)을 학습시킬 수 있다. 전자 장치(1000)는 인코더 1 (722)에 연결된 인코더 2(744)의 출력 값에 프로젝션 레이어 및 소프트 맥스 레이어를 적용함으로써 인코더 2(722)의 출력 값으로부터 오디오 신호에 대응하는 복수의 BPE 단위(예컨대, word-piece단위)의 부분 문자열들을 포함하는 BPE 레벨(에컨대 word-piece 레벨)의 문자열을 획득할 수 있다.
즉, 일 실시 예에 따른 전자 장치(1000)는 BPE 단위의 부분 문자열을 포함하는 문자열이 출력되도록 인코더를 한번에 학습시키는 것이 아니라, 문자소(grapheme) 단위의 부분 문자열을 포함하는 grapheme 레벨의 문자열들이 출력되도록 인코더 1(722)을 먼저 학습시킨 후, 학습이 완료된 인코더 1 (722)에 인코더 2 (744)를 적층함으로써 생성된 인코더 (745)가 BPE 레벨의 문자열을 출력하도록 학습할 수 있다.
도 7의 stage 3 (760)항목으로 도시된 학습 단계에서, 전자 장치(1000)는 학습이 완료된 인코더 1(722), 인코더 1(722)에 적층된 인코더 2(744)에 가중치 적용부(762) 및 디코더(764)를 더 적층(stacked)함으로써, 인코더 1(722), 인코더 1(722), 적용부(762) 및 디코더(764)를 포함하는 음성 인식 모델이 음성 인식 결과로써 BPE 레벨의 문자열을 출력하도록 학습할 수도 있다. 즉, 전자 장치(1000)는 서로 다른 레벨의 음성 인식 결과를 출력하기 위한 인코더를 단계적으로 학습 한 후, 적층함으로써 오디오 신호로부터 사용자의 음성을 더 정확하게 인식할 수 있다.
도 8은 또 다른 실시 예에 따라 서로 다른 레벨의 음성 인식 결과를 출력하기 위한 음성 인식 모델을 단계적으로 학습하는 과정을 설명하기 위한 도면이다.
전자 장치(1000)는 단일의 인코더 2(846)가 서로 다른 레벨의 문자열에 관한 히든 레이어 벡터를 출력하도록, 인코더 2(846)를 단계적으로 분리하여 학습시킬 수도 있다. 예를 들어, 도 8에 도시된 stage 1 (820)로 도시된 학습 단계에서, 전자 장치(1000)는 문자소(grapheme) 단위의 부분 문자열(예컨대, h, e, l, l, o, i, a, m, a, t, e, a, c, h, e, r)을 포함하는, grapheme 레벨의 문자열이 출력되도록, 인코더 1(722)을 학습시킬 수 있다. 전자 장치(1000)가 grapheme 레벨의 문자열이 출력되도록 인코더 1(722)를 학습시키는 과정은 도 7의 stage 1(720)로 도시된 학습 과정에 대응될 수 있다.
전자 장치(1000)는 stage 2(840) 로 도시된 학습 단계에서, 학습이 완료된 인코더 1 (822)에 복수의 LSTM(Long Short-Term Memory) 레이어들을 추가 레이어(additional layer)로써 인코더 1(822)에 적층(stacked)할 수 있다. 또 다른 실시 예에 의하면, 전자 장치(1000)는 학습이 완료된 인코더 1(822)에 복수의 LSTM 레이어들 및 맥스 풀링(Max-pooling) 레이어를 추가 레이어(additional layer)로써 더 적층할 수도 있다. 전자 장치(1000)는 학습이 완료된 인코더 1 (822)에 추가 레이어들을 적층함으로써 생성되는 인코더 2(846)가 BPE 레벨의 문자열에 관한 히든 레이어 벡터들을 출력하도록 학습시킬 수 있다. 즉, 인코더 2 (846)는 인코더 1 (822)을 포함하지만, grapheme레벨의 문자열에 관한 히든 레이어 벡터들이 출력되도록 인코더 1(822)을 학습시키는 과정과는 별도의 학습 과정을 통하여 전자 장치에 의해 학습될 수도 있다.
도 8의 stage 3 (860)으로 도시된 학습 단계에서, 전자 장치(1000)는 stage 2(840)로 도시된 학습 단계에서 학습이 완료된 인코더 2 (846)에 가중치 적용부(862) 및 디코더 (864)를 더 적층(stacked)함으로써 인코더 2(846), 가중치 적용부(862) 및 디코더(864)를 포함하는 음성 인식(ASR) 모델이 음성 인식 결과로써 BPE 레벨의 문자열을 최종적으로 출력하도록 학습할 수 있다.
즉, 전자 장치(1000)는 도 7에 도시된 바와 같이, 서로 다른 레벨의 문자열에 관한 히든 레이어 벡터들이 출력되도록 복수의 인코더를 분리하여 학습시킬 수도 있고, 하나의 인코더 내 일부의 LSTM 레이어들이 서로 다른 레벨의 문자열에 관한 히든 레이어 벡터들을 출력하도록 분리하여 학습시킬 수도 있다. 전자 장치(1000)는 서로 다른 레벨의 문자열이 출력되도록, 음성 인식(ASR) 모델 내 인코더, 디코더, 또는 상기 인코더 또는 디코더 내의 복수의 신경망 레이어들을 단계별로 분리하여 학습시킴으로써 오디오 신호 내 사용자의 음성을 정확하게 인식할 수 있다.
도 9는 일 실시 예에 따라 전자 장치가 오디오 신호를 획득하는 방법을 구체적으로 설명하기 위한 도면이다.
S920에서, 전자 장치(1000)는 오디오 신호를 프레임 단위로 분할할 수 있다. 예를 들어, 전자 장치(1000)는 소정의 윈도우의 윈도우 길이(window length)를 결정하고, 결정된 윈도우 길이의 윈도우들을 이용하여 오디오 신호를 복수의 프레임 단위로 구분할 수 있다. 또한, 일 실시 예에 의하면, 전자 장치(1000)는 상기 윈도우들을 소정의 윈도우 간격으로 중첩(overlap)하고, 소정의 간격으로 중첩된 윈도우들을 이용하여 오디오 신호를 복수의 프레임 단위로 구분할 수도 있다.
S940에서, 전자 장치(1000)는 프레임 단위로 분할된 프레임 별 오디오 신호의 특징 값을 획득할 수 있다. 예를 들어, 전자 장치(1000)는 프레임 별 오디오 신호의 특징 값을 획득하고, 획득된 오디오 신호의 특징 값을 음성 인식(ASR)모델에 입력함으로써, 오디오 신호 내 사용자의 음성을 인식할 수 있다. 일 실시 예에 의하면, 전자 장치(1000)는 프레임 별 오디오 신호의 특징 값을 벡터 형태로 추출할 수 있다. 전자 장치(1000)는 프레임 별로 추출된 오디오 신호의 특징 벡터를 음성 인식(ASR) 모델에 입력함으로써 오디오 신호 내 사용자의 음성을 인식할 수 있다.
도 10은 일 실시 예에 따라 전자 장치가 이용하는 음성 인식 모델의 구조를 설명하기 위한 도면이다.
도 3에서 전술한 바와 같이, 일 실시 예에 의하면, 전자 장치(1000)는 사용자의 음성을 인식하기 위해 제1 음성 인식(ASR) 모델(310) 및 제2 음성 인식(ASR) 모델(320)을 포함할 수 있다. 이하에서는 전자 장치(1000)가 오디오 신호로부터 사용자의 음성을 인식하는 과정을 일 실시 에에 따른 제1 음성 인식(ASR) 모델(310) 및 제2 음성 인식(ASR) 모델(320)의 구성에 기초하여 설명하기로 한다.
일 실시 예에 의하면, 제1 음성 인식 모델(310)은 제1 인코더(1010) 및 제1 디코더(1030)를 포함할 수 있다. 일 실시 예에 의하면, 제1 음성 인식 모델(310)은 오디오 신호 내 사용자의 음성을 인식함으로써 제2 레벨과 다른 제1 레벨의 문자열을 출력할 수 있다. 일 실시 예에 의하면, 제1 레벨의 문자열이 문자소(grapheme) 단위의 부분 문자열들(예컨대 h, e, l, l, o, i, a, m, a, t, e, a, c, h, e, r)을 포함하는 경우, 제2 레벨의 문자열은 BPE(Byte Pair Encoding) 단위의 부분 문자열(예컨대 hell, o, i, am, a, tea, ch, er) 또는 워드(word) 단위의 부분 문자열(예컨대, hello, i, am, a, teacher)을 포함할 수 있다.
그러나, 이에 한정되는 것은 아니고, 제1 레벨의 문자열이 음소(phonemes)단위의 부분 문자열을 포함하는 경우, 제2 레벨의 문자열은 문자소 단위의 부분 문자열, BPE 단위의 부분 문자열 또는 워드 단위의 부분 문자열을 포함할 수도 있다. 즉, 제2 음성 인식 모델이 출력하는 제2 레벨의 문자열은 문자열 내 부분 문자열(sub-strings)들이 제1 음성 인식 모델이 출력하는 제1 레벨의 문자열 내 부분 문자열들 보다 의미론적(semantic)으로 완성된 단어의 형태에 가까운 기타 텍스트 단위(text unit)를 포함할 수 있다.
제1 인코더(1010)는 제1 음성 인식 모델(310)이 제1 레벨의 문자열을 출력하도록 오디오 신호 (1002)를 인코딩할 수 있다. 일 실시 예에 의하면, 제1 인코더(1010)는 프레임 별 오디오 신호의 특징 값을 수신하고, 수신된 프레임 별 오디오 신호의 특징 값을 인코딩할 수 있다. 제1 인코더(1010)는 프레임 별 오디오 신호의 특징 값을 인코딩함으로써 생성된 제1 인코더의 출력 값을 제1 디코더(1030)로 전달할 수 있다.
일 실시 예에 의하면, 제1 인코더(1010)는 복수의 적층된 LSTM 레이어들을 포함할 수 있다. 그러나 일 실시 예에 의하면, 제1 인코더(1010)는 LSTM 레이어들을 통해 차원이 변환된 프레임들 중, 일부의 프레임들을 sub sampling factor에 따라 선택하기 위한 맥스 풀링(max pooling) 레이어들을 더 포함할 수도 있다. 일 실시 예에 의하면, 제1 인코더의 출력 값은 제1 인코더(1010)에 포함된 복수의 적층된 LSTM 레이어들 중, 선택된 LSTM 레이어로부터 출력된 히든 레이어 벡터의 시퀀스를 포함할 수 있다. 제1 인코더(1010)가 오디오 신호(1002)를 인코딩하는 과정은 도 11을 참조하여 구체적으로 설명하기로 한다.
일 실시 예에 의하면, 제1 디코더(1030)는 제1 가중치 적용부(1016) 및 제1 출력 레이어(1020)를 포함할 수 있다. 그러나, 또 다른 실시 예에 의하면, 제1 디코더(1030)는 제1 가중치 적용부(1016)만을 포함하거나, 제1 디코더(1030)는 제1 출력 레이어(1020)만을 포함할 수도 있다. 즉, 전술한 제1 디코더(1030) 내의 구성들 중 일부의 구성들은, 목적하는 제1 음성 인식 모델의 사이즈 또는 음성 인식 정확도에 따라 생략될 수 있다. 제1 디코더(1030)가 제1 가중치 적용부(1016)만을 포함하는 경우, 전자 장치(1000)는 제1 디코더의 출력 값에 프로젝션 레이어 및 소프트 맥스 레이어를 별도로 적용함으로써, 제1 디코더의 출력 값으로부터 제1 레벨의 문자열을 획득할 수도 있다.
또한, 제1 디코더(1030)가 제1 출력 레이어(1020)만을 포함하는 경우, 제1 디코더(1030)는 제1 인코더(1010)로부터 출력되 히든 레이어 벡터의 차원을 변환하기 위한 프로젝션 레이어 및 소프트 맥스 레이어를 바로 적용함으로써, 제1 인코더의 출력 값으로부터 제1 레벨의 문자열을 결정할 수도 있다. 그러나, 제1 디코더(1030)가 제1 가중치 적용부(1016) 및 제1 출력 레이어(1020)를 모두 포함하는 경우, 제1 디코더(1030)는 제1 인코더의 출력 값 및 이전 시간의 제1 디코더(1030)의 출력 값에 기초하여, 제1 인코더의 출력 값을 디코딩함으로써, 오디오 신호에 대응되는 제1 레벨의 문자열을 결정할 수도 있다.
예를 들어, 제1 디코더(1030)는 제1 음성 인식 모델(310)이 제1 디코더의 출력 값으로부터 제1 레벨의 문자열을 획득할 수 있도록 제1 인코더의 출력 값을 디코딩할 수 있다. 제1 음성 인식 모델(310)은 제1 디코더의 출력 값으로부터 제1 레벨의 문자열을 획득하고, 제1 레벨의 문자열을 제1 음성 인식 모델의 출력 값으로써 출력할 수 있다.
일 실시 예에 의하면, 제1 디코더(1030)가 제1 인코더의 출력 값을 디코딩하는 동작은, 제1 디코더 내의 어텐션 레이어에서 결정된 가중치에 따라, 상기 제1 인코더의 출력 값을 가중합(weighted sum)함으로써 생성된 제1 컨텍스트 벡터에 가장 높은 확률로 대응되는 소프트 맥스 레이어 내 레이블(label)을 출력하는 동작에 대응될 수 있다.
제1 가중치 적용부(1016)는 후술하는 바와 같이 복수의 적층된 LSTM 레이어들 및 이전 시간의 제1 디코더의 출력 값에 기초하여 제1 인코더의 출력 값에 가중치를 적용하기 위한 어텐션 레이어를 더 포함할 수 있다. 예를 들어, 제1 가중치 적용부(1016)는 제1 인코더의 출력 값에 적용할 가중치(attention)를 결정하고, 결정된 가중치들을 제1 인코더(1010)의 출력 값에 적용함으로써 제1 컨텍스트 벡터를 출력할 수 있다.
예를 들어, 제1 가중치 적용부는 제1 인코더(1010) 및 제1 디코더(1030)의 상관 관계에 기초하여, 제1 인코더(1010) 내 적어도 하나의 LSTM 레이어에서 출력되는 히든 레이어 벡터들에 가중치를 적용하고, 가중치가 적용된 히든 레이어 벡터들을 가중합(weighted sum)함으로써 제1 컨텍스트(context) 벡터를 생성할 수 있다. 제1 가중치 적용부(1016)의 구체적인 동작은 후술하는 도 12를 참조하여 더 구체적으로 설명하기로 한다.
제1 출력 레이어(1020)는 소프트 맥스 레이어(1022) 및 Decision 레이어(1024)를 포함할 수 있다. 그러나 이에 한정되는 것은 아니고, 제1 출력 레이어(1020)는 소프트 맥스 레이어(1022) 및 Decision 레이어(1024)외에, 제1 컨텍스트의 포맷(format)을 소프트 맥스 레이어(1022) 내 소정의 레이블(label)에 대응되는 포맷으로 변환하기 위한 프로젝션 레이어(projection layer) 또는 풀리 커넥티드 레이어를 더 포함할 수도 있다. 제1 출력 레이어(1020)는 제1 가중치 적용부(1016)로부터 출력된 제1 컨텍스트 벡터를 입력 받고, 제1 컨텍스트 벡터의 차원을 소프트 맥스 출력 값의 차원으로 변환하며, 차원이 변환된 제1 컨텍스트 벡터가 소프트 맥스 레이어내 레이블에 대응될 확률 값을 결정하고, 제1 컨텍스트 벡터에 가장 높은 확률로 대응되는 레이블(label)을 음성 인식 결과로써 출력할 수 있다. 즉, 제1 음성 인식 모델(310)은 제1 출력 레이어(1020)로부터 출력된 레이블(label)을 이용하여 제1 레벨의 문자열을 출력할 수 있다.
소프트 맥스 레이어(1022)는 제1 가중치 적용부(1016)에서 출력된 제1 컨텍스트 벡터가 소프트 맥스 레이어(122) 내 소정의 레이블(label)에 대응될 확률 값을 결정할 수 있다. 예를 들어, 소프트 맥스 레이어(1022)는 제1 디코더(1030)에서 이전 시간에 출력된 hidden dimension 상태의 제1 디코더의 출력 값, 제1 가중치 적용부(1016)에서 출력된 현재 시간의 컨텍스트 벡터 및 소프트 맥스 레이어(1022)에서 이전 시간에 출력된 문자열에 관한 정보를 입력 받고, 제1 가중치 적용부(1016)에서 출력된 제1 컨텍스트 벡터가 '하이 빅스비' 또는 '안녕하세요'와 같은 소정의 텍스트 레이블에 대응될 확률 값을 결정할 수 있다. 일 실시 예에 의하면, 소프트 맥스 레이어(1022)는 제1 가중치 적용부에서 출력된 제1 컨텍스트 벡터의 차원을, 소프트 맥스 레이어의 출력 값의 차원(dimension) 으로 변환하기 위한 프로젝션 레이어를 더 포함할 수도 있다.
Decision 레이어(1024)는 소프트 맥스 레이어(1022)에서 결정된 제1 컨텍스트 벡터가 소정의 레이블(label)에 대응될 확률 값에 기초하여, 레이블에 대응되는 제1 레벨의 문자열을 출력할 수 있다. 일 실시 예에 의하면, Decision 레이어(1024)는 소프트 맥스 레이어(1022)에서 출력된 제1 컨텍스트 벡터가 Decision 레이어(1024) 내 소정의 레이블(label)들에 대응될 확률 값에 기초하여, 가장 높은 확률 값을 나타내는 소프트 맥스 레이어 내 레이블(label)에 대응되는 제1 레벨의 문자열을 출력할 수 있다.
제1 음성 인식 모델(310)은 제1 인코더(1010)의 출력 값 (1012)을 제1 음성 인식 모델(310)의 출력 값(1028)으로 결정할 수도 있지만, 제1 인코더의 출력 값(1012) 및 제1 레벨의 문자열을 포함하는 제1 음성 인식 결과(1026)를 제1 음성 인식 모델(310)의 출력 값(1028)으로써 결정할 수도 있다. 즉, 제1 음성 인식 모델의 출력 값(1028)은 제1 인코더의 출력 값(1012)을 포함할 수도 있고, 제1 인코더의 출력 값(1012) 및 제1 음성 인식 결과(1026)를 모두 포함할 수도 있다.
제2 음성 인식 모델(320)은 제1 음성 인식 모델의 출력 값에 기초하여 오디오 신호에 대한 제2 레벨의 문자열을 출력할 수 있다. 제2 음성 인식 모델(320)은 제2 인코더(1040) 및 제2 디코더(1070)를 포함할 수 있다. 제2 음성 인식 모델(320)은 오디오 신호 내 사용자의 음성을 인식함으로써 제2 레벨의 문자열을 출력할 수 있다. 제2 인코더(1040)는 제2 음성 인식 모델(320)이 제2 레벨의 문자열을 출력하도록, 오디오 신호를 인코딩할 수 있다. 일 실시 예에 의하면, 제2 인코더(1030)는 제1 음성 인식 모델이 제1 레벨의 문자열을 출력하도록 오디오 신호를 인코딩하는 제1 인코더의 출력 값에 기초하여, 프레임 별 오디오 신호의 특징 값을 인코딩할 수 있다. 즉, 제2 인코더(1040)는 제1 음성 인식 모델의 출력 값(1028)에 기초하여, 제2 음성 인식 모델이 제2 레벨의 문자열을 출력하도록, 프레임별 오디오 신호(1002)의 특징 값을 인코딩함으로써, 제2 음성 인식 모델이 제2 인코더의 출력 값을 이용하여 더 정확하게 제2 레벨의 문자열을 출력하도록 할 수 있다.
제2 인코더(1040)는 프레임 별 오디오 신호의 특징 값을 인코딩함으로써 생성된 제2 인코더의 출력 값(1042)를 제2 디코더(1070)로 전달할 수 있다. 일 실시 예에 의하면 제2 인코더의 출력 값(1042)은 제2 인코더에 포함된 복수의 적층된 LSTM 레이어들 중 선택된 LSTM 레이어로부터 출력된 히든 레이어 벡터의 시퀀스를 포함할 수 있다. 일 실시 예에 의하면, 제2 인코더(1040)는 복수의 적층된 LSTM 레이어들을 포함할 수 있고, LSTM 레이어들을 통해 차원이 변환된 프레임들 중, 일부의 프레임들을 sub sampling factor에 따라 선택하기 위한 맥스 풀링(max pooling) 레이어들을 더 포함할 수도 있다.
제2 인코더(1040)는 제1 인코더(1010)의 출력 값(1012) 또는 제1 인코더(1010)의 출력 값을 포함하는 제1 음성 인식 모델의 출력 값(1028)에 기초하여 오디오 신호를 인코딩함으로써 제2 음성 인식 모델(320)이 더 정확한 음성 인식 결과로써 제2 레벨의 문자열을 출력하도록 할 수 있다.
일 실시 예에 의하면, 제1 인코더(1010)의 출력 값(1012)은 제1 레벨의 사용자 음성 특징에 관한 음성 정보(acoustic information)를 포함할 수 있고, 제2 인코더(1040)는 제1 인코더의 출력 값(1012)에 포함된 제1 레벨의 음성 정보에 기초하여 오디오 신호(1002)를 인코딩하기 때문에, 사용자의 음성 특징(acoustic feature)이 더 잘 반영되도록 오디오 신호(1002)를 인코딩할 수 있다. 따라서, 제2 음성 인식 모델(320)은 단계적으로 사용자의 음성 특징이 반영된 복수의 인코더들의 출력 값에 기초하여 사용자의 음성 특징이 잘 반영되도록 오디오 신호(1002)를 인코딩할 수 있다. 제2 인코더(1040)가 오디오 신호(1002)를 인코딩하는 과정은 도 11을 참조하여 더 구체적으로 설명하기로 한다.
일 실시 예에 의하면, 제2 디코더(1070)는 제2 가중치 적용부(1052), 제3 가중치 적용부(1054), 제2 출력 레이어(1060)를 포함할 수 있다. 그러나, 또 다른 실시 예에 의하면, 제2 디코더(1070)는 제3 가중치 적용부(1054)만을 포함하고, 제2 가중치 적용부(1052)를 포함하지 않을 수 있다. 또한, 일 실시 예에 의하면, 제2 디코더(1070)는 제2 가중치 적용부(1052) 및 제3 가중치 적용부(1054)만을 포함하고, 제2 출력 레이어(1060)를 포함하지 않을 수도 있다. 또한, 제2 디코더(1070)는 도 3에서 전술한 바와 같이, 제1 음성 인식 모델의 출력 값에 기초하여, 오디오 신호에 대한 제2 레벨의 문자열을 출력하기 위한 임의의 심층 신경망 모델을 더 포함할 수도 있다. 즉, 전술한 제2 디코더(1070) 내의 구성들 중 일부의 구성은, 목적하는 제2 음성 인식 모델의 사이즈에 따라 생략될 수 있다.
일 실시 예에 의하면, 제2 디코더(1070)가 제2 가중치 적용부(1052) 및 제3 가중치 적용부(1054)만을 포함하는 경우, 전자 장치(1000)는 제2 디코더의 출력 값에 프로젝션 레이어 또는 소프트 맥스 레이어를 적용함으로써, 제2 디코더의 출력 값으로부터 제2 레벨의 문자열을 획득할 수 있다. 그러나, 제2 디코더(1070)가 제2 가중치 적용부(1052), 제3 가중치 적용부(1054) 및 제2 출력 레이어(1060)를 모두 포함하는 경우, 전자 장치(1000)는 제2 출력 레이어의 출력 값으로부터 제2 레벨의 문자열을 획득할 수도 있다.
제2 디코더(1070)는 제1 음성 인식 결과 및 제1 인코더의 출력 값에 기초하여, 제2 인코더로부터 출력된 제2 인코더(1040)의 출력 값을 디코딩함으로써 오디오 신호에 대응되는 제2 레벨의 문자열을 결정한다. 예를 들어, 제2 디코더(1070)는 제2 음성 인식 모델(320)이 제2 레벨의 문자열을 출력하도록, 제1 음성 인식 모델의 출력 값 내 제1 음성 인식 결과(1026) 및 제1 인코더의 출력 값에 기초하여 인코딩된 제2 인코더의 출력 값(1042)에 기초하여, 제2 인코더의 출력 값을 디코딩할 수도 있다. 즉, 제2 음성 인식 모델(320)은 제2 디코더의 출력 값으로부터 제2 레벨의 문자열을 획득하고, 제2 레벨의 문자열을 제2 음성 인식 모델의 출력 값으로써 출력할 수 있다.
일 실시 예에 의하면, 제2 디코더(1070)가 제2 인코더의 출력 값을 디코딩하는 동작은, 제3 가중치 적용부(1054) 내의 어텐션 레이어에서 결정된 가중치에 따라 상기 제2 인코더의 출력 값을 가중합(weighted sum)함으로써 생성된 제3 컨텍스트 벡터에 가장 높은 확률로 대응되는 소프트 맥스 레이어 내 레이블(label)을 출력하는 동작에 대응될 수 있다. 또 다른 실시 예에 의하면, 제2 디코더(1070)가 제1 음성 인식 결과 및 제2 인코더의 출력 값을 디코딩하는 동작은, 제2 가중치 적용부(1052)로부터 결정된 가중치(attention)에 따라 상기 제1 음성 인식 결과(1026)를 가중합(weighted sum)함으로써 생성된 제2 컨텍스트 벡터 및 상기 제3 컨텍스트 벡터의 결합 벡터에 가장 높은 확률로 대응되는 소프트 맥스 레이어 내 레이블(label)을 출력하는 동작에 대응될 수도 있다. 여기에서, 결합 벡터는 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터를 가중치에 따라 결합(concatenate)함으로써 생성된 벡터일 수 있다.
제2 가중치 적용부(1052)는 후술하는 바와 같이 복수의 적층된 LSTM 레이어들 및 이전 시간의 제2 디코더의 출력 값(1044)에 기초하여 제1 음성 인식 결과(1026)값에 가중치를 적용하기 위한 어텐션 레이어를 더 포함할 수 있다. 예를 들어, 제2 가중치 적용부(1052)는 제1 음성 인식 결과(1026) 값에 적용할 가중치(attention)를 결정하고, 결정된 가중치들을 제1 음성 인식 결과(1026)값에 적용함으로써 제2 컨텍스트 벡터를 출력할 수 있다. 일 실시 예에 의하면, 제2 가중치 적용부(1052)는 제2 인코더(1040) 및 제2 디코더(1070)의 상관 관계에 기초하여, 제1 음성 인식 결과 값에 가중치를 적용하고, 가중치가 적용된 제1 음성 인식 결과 값을 가중합(weighted sum)함으로써 제2 컨텍스트 벡터를 생성할 수 있다.
제3 가중치 적용부(1054)는 후술하는 바와 같이 복수의 적층된 LSTM 레이어들 및 이전 시간의 제2 디코더의 출력 값(1044)에 기초하여 제2 인코더의 출력 값(1042)에 가중치를 적용하기 위한 어텐션 레이어를 더 포함할 수 있다. 예를 들어, 제3 가중치 적용부(1054)는 제2 인코더의 출력 값(1042)에 적용할 가중치(attention)를 결정하고, 결정된 가중치들을 제2 인코더의 출력 값(1042)에 적용함으로써 제3 컨텍스트 벡터를 출력할 수 있다. 일 실시 예에 의하면, 제3 가중치 적용부(1054)는 제2 인코더(1040) 및 제2 디코더(1070)의 상관 관계에 기초하여, 제2 인코더의 출력 값(1042)에 가중치를 적용하고, 가중치가 적용된 제2 인코더의 출력 값(1042)을 가중합(weighted sum)함으로써 제3 컨텍스트 벡터를 생성할 수 있다.
제2 출력 레이어(1060)는 소프트 맥스 레이어(1062) 및 Decision 레이어(1064)를 포함할 수 있다. 그러나 이에 한정되는 것은 아니고, 제2 출력 레이어(1060)는 소프트 맥스 레이어(1062) 및 Decision 레이어(1064)외에, 제2 컨텍스트 벡터, 제3 컨텍스트 벡터, 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터의 결합 벡터의 차원(dimension)을 소프트 맥스 레이어의 출력 값의 차원으로 변환하기 위한 프로젝선 레이어(projection layer) 또는 풀리 커넥티드 레이어를 더 포함할 수도 있다.
제2 출력 레이어(1060)는 제2 가중치 적용부(1052) 및 제3 가중치 적용부(1054)로부터 각각 출력된 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터를 입력 받고, 입력된 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터에 가장 높은 확률로 대응되는 레이블(label)을 출력할 수 있다. 그러나, 또 다른 실시 예에 따라 제2 디코더(1070)가 제3 가중치 적용부(1054)만을 포함하는 경우, 제3 컨텍스트 벡터를 입력 받고, 입력된 제3 컨텍스트 벡터에 가장 높은 확률로 대응되는 레이블(label)을 출력할 수 있다. 제2 음성 인식 모델(320)은 제2 출력 레이어(1060)에서 결정된 가장 높은 확률 값에 대응되는 레이블(lable)을 이용하여 제2 레벨의 문자열을 출력할 수 있다.
소프트 맥스 레이어(1062)는 제2 가중치 적용부(1052)에서 출력된 제2 컨텍스트 벡터 및 제3 가중치 적용부(1054)에서 출력된 제3 컨텍스트 벡터가 소프트 맥스 레이어(1062) 내 소정의 레이블(label)에 대응될 확률 값을 결정할 수 있다. 일 실시 예에 의하면, 소프트 맥스 레이어(1062)는 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터를 결합(concatentate)함으로써 생성된 결합 벡터가 소프트 맥스 레이어(1062) 내 소정의 레이블(label)에 대응될 확률 값을 결정할 수도 있다.
예를 들어, 소프트 맥스 레이어(1062)는 제2 디코더(1070)에서 이전 시간에 출력된 hidden dimension 상태의 제2 디코더의 출력 값, 현재 시간의 제2 컨텍스트 벡터, 현재 시간의 제3 컨텍스트 벡터 및 소프트 맥스 레이어(1062)에서 이전 시간에 출력된 문자열에 관한 정보에 기초하여, 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터가 소정의 레이블(label)에 대응될 확률 값을 결정할 수도 있다.
Decision 레이어(1064)는 소프트 맥스 레이어(1062)에서 출력된 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터가 소정의 레이블(label)에 대응될 확률 값에 기초하여, 특정 레이블에 대응되는 제2 레벨의 문자열을 출력할 수 있다. 일 실시 예에 의하면, Decision 레이어(1064)는 소프트 맥스 레이어(1062)에서 출력된 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터가 Decision 레이어(1064) 내 소정의 레이블(label)들에 대응될 확률 값을 결정하고, 가장 높은 확률 값을 나타내는 레이블(label)에 대응되는 제2 레벨의 문자열을 제2 음성 인식 결과로써 출력할 수 있다.
제2 음성 인식 모델(320)은 제2 인코더(1040)의 출력 값 (1042)을 제2 음성 인식 모델(320)의 출력 값(1072)으로 결정할 수도 있지만, 제2 인코더의 출력 값(1042) 및 제2 디코더의 출력 값으로부터 결정되는 제2 음성 인식 결과를 제2 음성 인식 모델(320)의 출력 값(1072)으로써 결정할 수도 있다. 즉, 제2 음성 인식 모델의 출력 값(1072)은 제2 인코더의 출력 값(1042)을 포함할 수도 있고, 제2 인코더의 출력 값(1042) 및 제2 음성 인식 결과를 모두 포함할 수도 있다.
일 실시 예에 의하면 제2 음성 인식 결과는, 제2 디코더(1070)로부터 출력되는 제2 디코더의 출력 값을 포함할 수 있다. 일 실시 예에 따라, 제2 디코더(1070)가 제2 출력 레이어(1060)를 포함하지 않는 경우, 제2 디코더의 출력 값은 제2 가중치 적용부(1052) 내의 어텐션 레이어에서 결정된 가중치에 기초하여 생성된 제2 컨텍스트 벡터 및 제3 가중치 적용부(1054) 내의 어텐션 레이어에서 결정된 가중치에 기초하여 생성된 제3 컨텍스트 벡터의 시퀀스를 포함할 수 있다.
그러나, 또 다른 실시 예에 따라, 제2 디코더(1070)가 제2 가중치 적용부(1052) 및 출력 레이어(1060)를 포함하지 않고, 제3 가중치 적용부(1054)만을 포함하는 경우, 제2 디코더의 출력 값은 제3 가중치 적용부(1054) 내의 어텐션 레이어에서 결정된 가중치에 기초하여 생성된 제3 컨텍스트 벡터의 시퀀스만을 포함할 수도 있다.
또한, 일 실시 예에 의하면, 제2 디코더(1070)가 제2 가중치 적용부(1052), 제3 가중치 적용부(1054) 및 제2 출력 레이어(1060)를 모두 포함하는 경우, 제2 디코더의 출력 값은 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터가 제2 출력 레이어의 소프트 맥스 레이어 내 레이블(label)에 대한 확률 값 또는 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터에 가장 높은 확률로 대응되는 레이블(label)에 대한 정보를 포함할 수도 있다.
전술한 실시 예에 따라, 제2 음성 인식 모델(320)은 제2 디코더(1070)가 제2 가중치 적용부(1052)를 포함하지 않는 경우, 제1 레벨의 음성 정보를 포함하는 제1 인코더(1010)의 출력 값(1012)에 기초하여 제2 레벨에서의 사용자의 음성을 인식할 수도 있다. 그러나 또 다른 실시 예에 의하면, 제2 음성 인식 모델(320)은 제2 디코더(1070)가 제2 가중치 적용부(1052) 및 제3 가중치 적용부(1054)를 모두 포함하는 경우, 제2 디코더(1070)에 의해 가중치가 적용된 제2 인코더(1010)의 출력 값(1042) 및 제1 음성 인식 모델(310)의 음성 인식 결과(1026) 모두에 기초하여 제2 레벨의 사용자 음성을 인식할 수 있기 때문에, 사용자의 음성 정보(acoustic information) 및 제1 레벨의 언어(linguistic) 정보 모두에 기초하여 오디오 신호 내 제2 레벨의 문자열을 결정함으로써, 더 정확하게 사용자의 음성을 인식할 수 있다.
도 11은 일 실시 예에 따른 음성 인식 모델 내의 인코더를 구체적으로 설명하기 위한 도면이다.
일 실시 예에 의하면, 전자 장치(1000)가 이용하는 음성 인식(ASR) 모델 내의 인코더(1101)는 복수의 적층된 LSTM 레이어들(1112) 및 LSTM 레이어들을 통해 차원(dimension)이 변환된 프레임들 중, 일부의 프레임들을 sub sampling factor에 따라 선택하기 위한 맥스 풀링(max pooling) 레이어들(1114) 을 포함할 수 있다. 그러나, 일부의 프레임들을 sub sampling factor에 따라 선택하기 위해 max pooling에 한정되는 것은 아니며, 차원이 변환된 프레임들 중, 일부의 프레임을 풀링하기 위해 average pooling 또는 기타 pooling 을 위한 레이어들을 더 포함할 수도 있다. 또한, 도 11에 도시된 인코더의 구성들 중, 맥스 풀링 레이어들(1114)은 실시 예에 따라 생략될 수도 있으며. 전자 장치(1000)가 이용하는 음성 인식 모델 내의 인코더는 LSTM 레이어가 아닌 합성곱 신경망(Concolutional Neural Network)를 포함할 수도 있으며, 기타 심층 신경망 기반의 네트워크를 더 포함할 수 있다.
인코더(1101)는 전자 장치(1000)로 입력된 오디오 신호(1102)의 프레임들에 non-linearity를 적용함으로써 프레임의 차원(dimension)을 변환할 수 있다. 예를 들어, 인코더(1101)는 전자 장치(1000)로 40 dimension의 100 프레임이 입력되는 경우, LSTM 레이어를 이용하여 100 프레임 각각의 차원을 1024 dimension으로 변환할 수 있다. 또한, 인코더(1101)는 맥스 풀링 레이어(1114), average pooling 레이어 또는 기타 pooling 알고리즘을 수행하기 위한 pooling 레이어 중 적어도 하나를 이용하여, 차원(dimension)이 변환된 프레임들 중 소정의 비율로 프레임을 선택함으로써 입력된 프레임들 중 일부의 프레임들만을 출력(1116)할 수 있다.
예를 들어, 인코더(1101)가 4쌍의 LSTM 블록(1110)을 포함하는 경우를 가정한다. 각 LSTM 블록(1110)은 LSTM 레이어(1112) 및 맥스 풀링 레이어(1114)를 포함할 수 있다. LSTM 레이어(1110) 및 맥스 풀링 레이어(1114)는 인코더 내 단일 LSTM 블록을 구성하고, 따라서, 인코더 (1101)는 총 4개의 단일 LSTM 블록을 포함할 수 있다. 예를 들어, 인코더(1110)에 m차원(dimension)을 가지는 프레임이 8개가 순차로 입력되는 경우, 각 프레임은 LSTM 레이어(1112)를 통해 non-linearity가 적용됨으로써 m차원과 다른 차원(dimension)으로 변환되고, 차원이 변환된 프레임들을 수신한 맥스 풀링 레이어(1114)는, sub sampling factor가 2로 설정되는 경우, 2개의 프레임들의 오디오 특징들 중 더 큰 오디오 특징을 나타내는 프레임을 1/2비율로 선택할 수 있다.
따라서, 총 4개의 LSTM 블록을 포함하는 인코더(1101)는 m차원의 8개 프레임을 수신하고, 수신된 m차원의 8개 프레임들 중, m차원과 다른 차원을 가지는 1개의 프레임을 출력할 수 있다. m차원의 8개 프레임들을 입력 받는 엔코더(1101)에서 출력되는 프레임의 차원은 LSTM 레이어(1112)의 non-linearity 특성으로 인하여 알 수 없기 때문에 hidden dimension 상태일 수 있다.
그러나, 음성 인식 모델 내의 인코더가 도 11에 도시된 인코더(1101)의 구조에 한정되는 것은 아니며, 모델의 사이즈 또는 목표로 하는 음성 인식의 정확도에 따라 인코더(1101)의 구조는 달라질 수 있다. 예를 들어, 전술한 바와 같이, 인코더(1101)는 LSTM 레이어(1112)들 또는 CNN 레이어들만을 포함할 수도 있고, 적층된(stacked) 복수의 LSTM 레이어들(1112)의 마지막 단에 단일(single)의 맥스 풀링 레이어를 포함할 수도 있다. 또한, 일 실시 예에 의하면, 서로 다른 레벨의 문자열을 출력하는 음성 인식 모델 각각의 인코더의 구조는 달라질 수 있다. 예를 들어, 제1 음성 인식 모델 내의 인코더는 복수의 LSTM 레이어들만을 포함하고, 제2 음성 인식 모델 내의 인코더는 복수의 LSTM 레이어들 및 LSTM 레이어들을 통해 차원(dimension)이 변환된 프레임들 중, 일부의 프레임들을 선택하기 위한 맥스 풀링(max pooling)를 포함할 수도 있다.
도 12는 일 실시 예에 따른 음성 인식 모델 내의 가중치 적용부를 구체적으로 설명하기 위한 도면이다.
전자 장치(1000)가 이용하는 음성 인식 모델 내의 가중치 적용부(1220)는 어텐션 레이어(1212), 복수의 적층된 LSTM 레이어 (1214) 및 풀리 커넥티드 피드 포워드 레이어(Fully Connected Feed Forward layer, FCFF, 1216)를 포함할 수 있다. 그러나, 도 12에 도시된 가중치 적용부(1220)의 구성에 한정되는 것은 아니며, 도시된 구성 중 일부의 구성은 생략될 수도 있다. 예를 들어, 전자 장치(1000)가 복수의 가중치 적용부들을 포함하는 경우, 가중치 적용부들은 어텐션 레이어만을 포함하고, 어텐션 레이어만을 포함하는 가중치 적용부들은, 가중치 적용부 외에 위치하는 복수의 적층된 LSTM 레이어 (1214) 및 FCFF 레이어(1216)들을 공유할 수도 있다.
일 실시 예에 의하면, 가중치 적용부(1220)는 가중치 적용부(1220)로 입력되는 인코더의 출력 값 또는 하위 레벨의 음성 인식 결과에 가중치를 적용함으로써 컨텍스트 벡터(1222)를 생성할 수 있다.
일 실시 예에 의하면, 어텐션 레이어(1212)는 인코더의 출력 값 및 가중치 적용부에서 출력된 이전 시간의 컨텍스트 벡터에 기초하여 하위 레벨의 음성 인식 결과에 적용할 가중치(attention)를 결정하고, 결정된 가중치를 인코더의 출력 값 또는 하위 레벨의 음성 인식 결과에 적용할 수 있다. 또한, 어텐션 레이어(1212)는 결정된 가중치를 인코더의 출력 값 또는 하위 레벨의 음성 인식 결과에 적용함으로써, 가중치에 따라 인코더의 출력 값 또는 하위 레벨의 음성 인식 결과를 가중합(weighted sum) 할 수 있다.
일 실시 예에 의하면, 어텐션 레이어(1212)는 인코더에서 출력된 hidden dimension 상태의 히든 레이어 벡터 및 이전 시간의 어텐션 레이어(1212)에서 결정된 어텐션 가중치(attention weight) 피드백을 이용하여 인코더의 출력 값 또는 하위 레벨의 음성 인식 결과에 적용할 가중치(attention)를 결정할 수도 있다. 또한, 전술한 바와 같이, 어텐션 레이어(1212)는 가중치 적용부를 포함하는 디코더의 이전 시간의 출력 값에 기초하여 어텐션 가중치를 결정할 수도 있다.
LSTM 레이어들 (1214)은 어텐션 레이어(1212)로부터 출력된 가중합된 인코더의 출력 값 또는 하위 레벨의 음성 인식 결과 내 프레임의 차원(dimension)을 변환할 수 있다. 일 실시 예에 의하면, LSTM 레이어들(1213)은 도 11에서 도시된 인코더(1101) 내의 LSTM 레이어에 대응될 수 있다. 예를 들어, 가중치 적용부(1220) 내의 LSTM 레이어들(1214)은 프레임 단위로 출력되는 인코더의 출력 값 또는 하위 레벨의 음성 인식 결과에 non-linearity를 적용함으로써 프레임의 차원(dimension)을 변환할 수 있다. 가중치 적용부(1220)내의 LSTM 레이어들은 단방향(uni direction) LSTM 레이어로 구성될 수 있지만, 이에 한정되는 것은 아니며, 양방향(bi direction) LSTM 레이어들을 포함할 수도 있다.
FCFF(1216)는 LSTM 레이어들 (1214)의 출력 단에 fully connected 됨으로써, 차원(dimension)이 변환된 가중합된 인코더의 출력 값 또는 하위 레벨의 음성 인식 결과를 음성 인식 모델의 출력 레이어로 전달할 수 있다. 예를 들어, FCFF(1216)는 LSTM 레이어들(1214)에서 출력된 가중합된 인코더의 출력 값 또는 하위 레벨의 음성 인식 결과를 출력단의 방향으로만 전달함으로써, 출력 레이어 내 소프트 맥스 레이어가 포함하는 소정의 레이블에 가중합된 인코더의 출력 값 또는 하위 레벨의 음성 인식 결과를 연결할 수 있다.
또한, 일 실시 예에 의하면, 도 12에 도시된 LSTM 레이어들 (1214) 및 FCFF(1216)는 도 10의 제2 가중치 적용부(1052) 및 제3 가중치 적용부(1054)각각에 포함될 수도 있다. 즉, 전자 장치(1000)는 제2 가중치 적용부(1052) 내의 어텐션 레이어에서 결정된 가중치에 따라 생성된 제2 컨텍스트 벡터 및 제3 가중치 적용부(1054) 내의 어텐션 레이어에서 결정된 가중치에 따라 생성된 제3 컨텍스트 벡터를, 제2 가중치 적용부(1052) 및 제3 가중치 적용부(1054) 각각에 포함되어 있는 LSTM 레이어들 및 FCFF 레이어들에 입력하고, 제2 가중치 적용부 및 제3 가중치 적용부 각각으로부터 출력되는 제2 가중치 적용부의 출력 값 및 제3 가중치 적용부의 출력 값 각각을 제2 출력 레이어(1060)로 전달할 수 있다.
그러나, 또 다른 실시 예에 의하면, 제2 가중치 적용부 및 제3 가중치 적용부는 도 12의 LSTM 레이어들 (1214) 및 FCFF(1216)를 포함하지 않고, 제2 가중치 적용부 및 제3 가중치 적용부 외부의 LSTM 레이어들 (1214) 및 FCFF(1216)를 공유할 수도 있다. 즉, 전자 장치(1000)는 제2 가중치 적용부(1052) 내의 어텐션 레이어에서 결정된 가중치에 따라 생성된 제2 컨텍스트 벡터 및 제3 가중치 적용부(1054) 내의 어텐션 레이어에서 결정된 가중치에 따라 생성된 제3 컨텍스트 벡터를, 제2 가중치 적용부 및 제3 가중치 적용부에 의해 공유되는 LSTM 레이어들 및 FCFF에 전달하고, LSTM 레이어들 및 FCFF를 통하여 출력된 출력 값이 소프트 맥스 레이어 내 label에 대응될 확률 값에 기초하여 소정의 문자열을 출력하도록 할 수 있다.
전술한 LSTM 레이어들 및 FCFF가 도 10의 출력 레이어(1060)에 포함될 경우, 전자 장치(1000)는 제2 가중치 적용부(1052) 내의 어텐션 레이어에서 결정된 가중치에 따라 생성된 제2 컨텍스트 벡터 및 제3 가중치 적용부(1054) 내의 어텐션 레이어에서 결정된 가중치에 따라 생성된 제3 컨텍스트 벡터를, 바로 출력 레이어(1060)로 전달함으로써, 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터에 가장 높은 확률로 대응되는 소프트 맥스 레이어 내 레이블(label)을 출력하도록 할 수도 있다.
도 13은 일 실시 예에 따른 어텐션 기반(attention-based) 음성 인식 모델의 구조를 설명하기 위한 도면이다.
일 실시 예에 의하면, 전자 장치(1000)가 이용하는 음성 인식(ASR) 모델은 종단간 방식의 Attention Based 신경망 모델일 수 있다. 일 실시 예에 의하면, 전자 장치가 이용하는 음성 인식 모델은 인코더(1304), 가중치 적용부(1308) 및 디코더(1314)를 포함할 수 있다.
예를 들어, 인코더(1304)는 프레임 별 오디오 신호의 특징 값(1302)을 획득하고, 획득된 프레임 별 오디오 신호의 특징 값(1302)를 인코딩할 수 있다. 인코더(1304)는 복수의 LSTM 레이어들 및 맥스 풀링 레이어를 포함하고, 프레임 별로 입력된 오디오 신호의 특징 값(1302)에 non-linearity를 적용함으로써 프레임의 차원(dimension)을 변환하며, 변환된 차원(dimension)을 가지는 프레임들 중 소정의 비율로 프레임을 선택함으로써, 프레임 별 오디오 신호의 특징 값(1302)을 인코딩할 수 있다.
가중치 적용부(1308)는 복수의 어텐션 레이어들을 포함할 수 있다. 가중치 적용부(1308)는 인코더(1304)의 출력 값(1306)에 적용할 가중치를 결정하고, 결정된 가중치에 따라 인코더의 출력 값을 가중합(weighted sum)함으로써 컨텍스트 벡터를 생성할 수 있다. 일 실시 예에 의하면, 가중치 적용부(1308)는 디코더(1314)의 이전 시간의 출력 값 및 이전 시간의 디코더(1314)의 상태 정보(1310)에 기초하여, 가중치(attention)를 결정하고, 결정된 가중치들을 인코더(1304)의 출력 값에 적용할 수 있다.
디코더(1314)는 가중치 적용부(1308)에서 출력된 가중합(weigted sum)된 인코더의 출력 값들을 디코딩할 수 있다. 예를 들어, 디코더(1314)는 적어도 하나의 LSTM 레이어들을 포함할 수 있다. 디코더(1314)는 가중치 적용부(1308)에서 출력된 현재 시간의 컨텍스트 벡터, 디코더(1314) 내 LSTM 자체의 재귀 상태(Recurrent State)에 기초하여, 이전 시간의 컨텍스트 벡터에 non-linearity를 적용함으로써 이전 시간의 컨텍스트 벡터의 차원(dimension)을 변환할 수 있다. 디코더(1314)에서 출력되는 디코더의 출력 값은 LSTM의 non-linearity 특성으로 인하여 알 수 없기 때문에 hidden dimension 상태일 수 있다.
일 실시 예에 의하면, 디코더(1314)는 소프트 맥스 레이어 또는 프로젝션 레이어를 포함하는 출력 레이어를 포함하고, 디코딩된 컨텍스트 벡터로부터 소정의 문자열(1316)들을 출력할 수 있다.
도 14는 일 실시 예에 따른 전자 장치의 블록도이다. 도 15는 또 다른 실시 예에 따른 전자 장치의 블록도이다.
도 14에 도시된 바와 같이, 일 실시 예에 따른 전자 장치(1000)는 프로세서(1300) 및 메모리(1400)를 포함할 수 있다. 그러나 도시된 구성 요소가 모두 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 전자 장치(1000)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 전자 장치(1000)는 구현될 수 있다. 예를 들어, 도 15에 도시된 바와 같이, 일 실시 예에 따른 전자 장치(1000)는 통신 인터페이스(1100), 입출력부(1200) 를 더포함할 수 있고, 메모리(1400)는 복수의 ASR 모델(1405) 및 NLU 모델(1490)을 포함할 수 있다.
통신 인터페이스(1100)는 서버(2000) 및 외부 장치(미도시)와의 통신을 위한 하나 이상의 구성요소를 포함할 수 있다. 통신 인터페이스(1100)는, 음성 인식 및 보이스 어시스턴트 서비스를 위한 정보를 서버(2000) 및 외부 장치(미도시)와 송수신할 수 있다. 통신 인터페이스(1100)는, 예를 들어, 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 통하여 통신할 수 있으나, 이에 제한되지 않는다.
입출력부(1200)는 전자 장치(1000)에 입력되는 데이터를 수신하고, 전자 장치(1000)로부터 데이터를 출력할 수 있다. 입출력부(1200)는 사용자 입력부, 카메라, 마이크로폰, 디스플레이부 및 음향 출력부를 포함할 수 있다. 사용자 입력부는, 예를 들어, 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
디스플레이부는 전자 장치(1000)에서 처리되는 정보를 표시 출력할 수 있다. 예를 들어, 디스플레이부는, 보이스 어시스턴트 서비스를 위한 GUI를 디스플레이할 수 있다. 디스플레이부와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이부는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다.
음향 출력부는 오디오 데이터를 출력할 수 있으며, 예를 들어, 스피커(speaker), 버저(Buzzer) 등을 포함할 수 있다.
카메라는 화상 통화모드 또는 촬영 모드에서 이미지 센서를 통해 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 이미지 센서를 통해 캡쳐된 이미지는 프로세서(1300) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다.
마이크로폰은, 사용자의 발화를 입력 받아 전기적인 음성 데이터로 처리할 수 있다.
프로세서(1300)는 전자 장치(1000)의 전반적인 동작을 제어한다. 프로세서(1300)는 메모리(1400)에 저장된 프로그램들을 실행함으로써, 본 명세서에서의 전자 장치(1000)의 동작들을 전반적으로 제어할 수 있다.
예를 들어, 프로세서(1300)는 사용자의 음성 입력에 기초하여 오디오 신호를 획득하고, 상기 오디오 신호가 입력되는 경우 제1 레벨의 문자열을 출력하는 제1 음성 인식 모델의 출력 값을 획득할 수 있다. 또한, 프로세서(1300)는 제1 음성 인식 모델의 출력 값에 기초하여 상기 오디오 신호에 대응되는 제2 레벨의 문자열을 출력하는 제2 음성 인식 모델의 출력 값을 획득함으로써, 사용자의 음성을 인식할 수도 있다.
또한, 프로세서(1300)는 상기 오디오 신호를 프레임 단위로 분할하고, 상기 프레임 단위로 구분되는 분할된 프레임 별 오디오 신호의 특징 값을 획득하며, 획득된 프레임 별 오디오 신호의 특징 값을 음성 인식 모델에 입력할 수 있다.
또한, 프로세서(1300)는 제1 레벨의 문자열이 출력되도록 상기 전자 장치에 입력된 오디오 신호를 인코딩하는, 상기 제1 음성 인식 모델 내의 제1 인코더의 출력 값을 획득하고, 상기 획득된 제1 인코더의 출력 값을 상기 제1 음성 인식 모델의 출력 값으로 결정할 수도 있다.
일 실시 예에 의하면, 프로세서(1300)는 제1 인코더의 출력 값으로부터 상기 오디오 신호에 대응되는 제1 레벨의 문자열을 결정하는 상기 제1 음성 인식 모델 내의 제1 디코더의 출력 값을 획득하고, 상기 제1 인코더의 출력 값 및 상기 제1 디코더의 출력 값을 상기 제1 음성 인식 모델의 출력 값으로 결정할 수도 있다.
또한, 프로세서(1300)는 상기 제2 레벨의 문자열이 출력되도록 상기 제1 음성 인식 모델의 출력 값에 기초하여, 오디오 신호를 인코딩하는, 상기 제2 음성 인식 모델 내의 제2 인코더의 출력 값을 획득하고, 상기 획득된 제2 인코더의 출력 값을 상기 제2 음성 인식 모델의 출력 값으로 결정할 수 있다. 프로세서(1300)는 제1 음성 인식 모델의 출력 값에 기초하여 오디오 신호를 인코딩함으로써, 제2 음성 인식 모델의 음성 인식 정확도를 더 향상 시킬 수 있다.
또한, 프로세서(1300)는 제2 인코더의 출력 값 및 제1 인코더의 출력 값으로부터 상기 오디오 신호에 대응되는 제1 레벨의 문자열을 결정하는 상기 제1 음성 인식 모델 내의 제1 디코더의 출력 값 각각에 가중치를 적용하고, 상기 가중치가 적용된 제2 인코더의 출력 값 및 상기 가중치가 적용된 제1 디코더의 출력 값으로부터 상기 제2 음성 인식 모델의 출력 값을 결정할 수도 있다.
메모리(1400)는 전자 장치(1000)의 동작을 제어하기 위한 하나 이상의 인스트럭션(instruction)을 포함할 수 있다. 또한, 메모리(1400)는 오디오 신호 내 사용자의 음성을 인식하기 위한 하나 이상의 음성 인식 모델 외에 NLU 모델을 포함할 수도 있다. 또한, 메모리(1400)에 저장된 프로그램들은 그 기능에 따라 ASR 모델(1405), NLU 모델(1490), UI 모듈(미도시), 터치 스크린 모듈(미도시), 알림 모듈(미도시) 등으로 분류될 수 있다.
일 실시 예에 의하면, 메모리(1400)는 예를 들어, 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있으나, 이에 제한되지 않는다.
ASR 모델(1405)은 전자 장치(1000)에 입력된 오디오 신호를 인코딩할 수 있다. ASR 모델(1405)은 종단간 ASR 모델일 수 있으며, ASR 모델(1405)은 제1 ASR 모델(1410), 제2 ASR 모델(1420)과 같이 복수의 ASR 모델을 포함할 수도 있다.
복수의 ASR 모델 각각은 인코더(1412, 1422) 및 디코더(1414, 1424)를 포함할 수 있다. 전자 장치(1000)에 입력된 오디오 신호는 복수의 ASR 모델 각각 내에 포함된 인코더에 의해 인코딩될 수 있다. 복수의 각 ASR 모델에 포함된 인코더(1412, 1422)는 복수의 레이어들을 포함할 수 있으며, 예를 들어, 복수의 적층된(stacked) LSTM(Long Short-Term Memory) 레이어들을 포함할 수 있다. 또한, 인코더의 출력 값은 인코더(1411) 내의 복수의 레이어들로부터 출력되는 출력 값들 중 하나일 수 있다. 인코더의 출력 값은 인코더 내의 레이어로부터 출력된 히든 벡터일 수 있다. 복수의 ASR 모델들(1410, 1420) 은 각 ASR 모델 내의 인코더 및 디코더를 통하여 음성 신호로부터 서로 다른 레벨의 문자열들을 결정할 수 있다.
NLU 모델(1490)은 ASR 모델(1405)로부터 출력되는 문자열을 해석할 수 있다. 또는 서버(2000)의 ASR 모델로부터 제공되는 문자열을 해석할 수 있다. 서버(2000)가 서버(2000) 내의 ASR 모델의 출력 값을 디바이스(1000)에게 제공하는 경우에, NLU 모델(1490)은 서버(2000)로부터 제공된 ASR 모델 출력 값을 해석할 수 도 있다.
도 16은 일 실시 예에 따른 서버의 블록도이다.
일 실시 예에 의하면, 서버(2000)는 통신 인터페이스(2100), 프로세서(2200) 및 데이터 베이스(2300)를 포함할 수 있고, 데이터 베이스(2300)는 복수의 ASR 모델(2305) 및 자연어 이해 모델(Natural Language Understanding, NLU, 2390)을 포함할 수 있다.
통신 인터페이스(2100)는, 전자 장치(1000) 및 다른 서버(미도시)와의 통신을 위한 하나 이상의 구성요소를 포함할 수 있다. 통신 인터페이스(2100)는, 음성 인식 및 보이스 어시스턴트 서비스를 위한 정보를 전자 장치(1000) 및 다른 서버(미도시)와 송수신할 수 있다. 통신 인터페이스(2100)는, 예를 들어, 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 통하여 통신할 수 있으나, 이에 제한되지 않는다.
프로세서(2200)는 서버(2000)의 전반적인 동작을 제어한다. 프로세서(2200)는 데이터 베이스(2300) 저장된 프로그램들을 실행함으로써, 본 명세서에서의 서버(2000)의 동작들을 전반적으로 제어할 수 있다.
데이터 베이스(2300)는, 프로세서(2200)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 서버(2000)로 입력되거나 서버(2000)로부터 출력되는 데이터를 저장할 수 있다. 데이터 베이스(2300)는, 예를 들어, 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있으나, 이에 제한되지 않는다.
데이터 베이스(2300)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, 복수의 ASR 모델(2305), NLU 모델(2390), 등으로 분류될 수 있다.
ASR 모델(2305)는 복수의 ASR 모델로써, 제1 ASR 모델(2310) 및 제2 ASR 모델(2320)을 포함할 수 있다. 또한, 제1 ASR 모델(2310)은 인코더(2312) 또는 디코더(2314) 중 적어도 하나를 포함하고, 제2 ASR 모델(2320)은 인코더(2322) 또는 디코더(2324) 중 적어도 하나를 포함할 수 있다. 서버(2000) 내의 ASR 모델(2305)는 전자 장치(1000)의 ASR 모델(1405)에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다.
NLU 모델(2390)은 ASR 모델(2305)로부터 출력되는 문자열을 해석할 수 있다. 또는 전자 장치(1000)의 ASR 모델로부터 제공되는 문자열을 해석할 수 있다. 서버(2000)에 저장된 NLU 모델(2390)은 전자 장치(1000)의 메모리(1400)에 저장된 NLU 모델(1490)에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다.
도 17은 일 실시 예에 따라, 전자 장치 및 서버가 연동됨으로써 사용자의 음성을 인식하는 과정을 설명하기 위한 도면이다.
일 실시 예에 의하면, 전자 장치(1000)는 서버(2000)와 연동함으로써 오디오 신호 내 사용자의 음성을 인식할 수 있다. 일 실시 예에 의하면, 전자 장치(1000)는 제1 레벨의 문자열을 출력하는 제1 음성 인식 모델을 메모리에 저장하고, 서버(2000)는 제2 레벨의 문자열을 출력하는 제2 음성 인식 모델을 데이터 베이스에 저장한 상태에서, 전자 장치(1000)와 서버(2000)는 서로 연동됨으로써 음성 인식 서비스를 제공할 수 있다.
또 다른 실시 예에 의하면, 도 10에 도시된 음성 인식 모델(1080)의 구성 중 제1 음성 인식 모델(310) 및 제2 음성 인식 모델(320)내의 제2 인코더(1740)가 전자 장치(1000)에 탑재되고, 제2 음성 인식 모델(320)내의 제2 디코더(1770)만이 서버(2000)에 탑재된 상태에서, 전자 장치(1000) 및 서버(2000)가 서로 연동함으로써 사용자에게 음성 인식 서비스를 제공할 수도 있다.
이하에서는 도 17을 참조하여, 제1 음성 인식 모델(310)이 전자 장치(1000)에 탑재되고, 제2 음성 인식 모델(320)이 서버(2000)에 탑재된 경우를 가정하여, 전자 장치(1000) 및 서버(2000)가 서로 연동됨으로써 사용자 음성 인식 서비스를 제공하는 과정을 구체적으로 설명하기로 한다.
제1 음성 인식 모델(310)은 제1 인코더(1710), 제1 가중치 적용부 (1716) 및 제1 출력 레이어(1720)를 포함할 수 있다. 제1 음성 인식 모델(310)은 오디오 신호(1702)로부터 제1 음성 인식 결과(1726)로써 제1 레벨의 문자열을 출력할 수 있다. 제1 음성 인식 모델(310)은 제1 음성 인식 결과(1726) 및 제1 인코더의 출력 값(1712)을 제1 음성 인식 모델(310)의 출력 값(1728)으로 결정할 수 있다. 즉, 제1 음성 인식 모델의 출력 값은 제1 음성 인식 결과(1726) 및 제1 인코더의 출력 값(1712)을 포함할 수 있다.
제1 인코더(1710)는 제1 음성 인식 모델(310)이 제1 레벨의 문자열을 출력하도록, 오디오 신호(1702) 내 프레임 별 오디오 신호의 특징 값들을 인코딩할 수 있다. 제1 인코더(1710)는 도 10의 제1 인코더(1010)에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다. 제1 가중치 적용부(1716)는 이전 시간의 제1 음성 인식 모델의 출력 값에 기초하여, 제1 인코더의 출력 값에 적용할 가중치(attention)를 결정하고, 결정된 가중치들을 제1 인코더(1010)의 출력 값에 적용함으로써 제1 컨텍스트 벡터를 결정할 수 있다. 제1 가중치 적용부(1716)는 도 10의 제1 가중치 적용부(1016)에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다.
소프트 맥스 레이어(1722)는 제1 가중치 적용부(1716)에서 출력된 제1 컨텍스트 벡터가 소프트 맥스 레이어(1722) 내 소정의 레이블(label)에 대응될 확률 값을 결정할 수 있다. 소프트 맥스 레이어(1722)는 도 10의 소프트 맥스 레이어(1022)에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다. Decision 레이어(1724)는 소프트 맥스 레이어(1722)에서 결정된 제1 컨텍스트 벡터가 소정의 레이블(label)에 대응될 확률 값에 기초하여, 가장 높은 확률을 나타내는 레이블(label)에 대응되는 제1 레벨의 문자열을 출력할 수 있다.
전자 장치(1000)는 제1 인코더(1710), 제1 가중치 적용부 (1716) 및 제1 출력 레이어(1720)를 포함하는 제1 음성 인식 모델로부터 출력된 제1 음성 인식 모델의 출력 값을 신뢰도 결정부(1730)로 전달할 수 있다. 예를 들어, 전자 장치(1000)는 제1 음성 인식 결과(1726) 및 제1 인코더의 출력 값(1712)를 신뢰도 결정부(1730)로 전달할 수 있다.
신뢰도 결정부(1730)는 제1 음성 인식 모델의 출력 값에 대한 신뢰도를 결정하고, 결정된 신뢰도에 기초하여 제1 음성 인식 모델의 출력 값을 서버(2000)로 전송할지 여부를 결정할 수 있다. 일 실시 예에 의하면, 신뢰도 결정부(1730)의 기능은 전자 장치(1000)의 메모리에 컴퓨터 실행 가능한 인스트럭션(instruction) 형태로 저장될 수 있고, 전자 장치(1000)의 프로세서에 의해 수행될 수도 있다.
일 실시 예에 의하면, 제1 음성 인식 모델의 출력 값의 신뢰도는 제1 음성 인식 모델의 출력 값이 입력 음성에 매칭되는 정도를 나타내는 수치일 수 있으며 예를 들어, 컨피던스 스코어(confidence score)를 포함할 수 있으나 이에 제한되지 않는다. 제1 음성 인식 모델의 출력 값에 대한 신뢰도는 제1 음성 인식 모델의 출력 값이 나타내는 텍스트가 입력 음성에 일치하는 정도를 나타낼 수도 있다.
일 실시 예에 의하면, 전자 장치(1000)는 제1 음성 인식 결과에 대한 신뢰도 및 제1 인코더의 출력 값에 대한 신뢰도에 기초하여 제1 음성 인식 모델의 출력 값에 대한 신뢰도를 결정할 수도 있다. 일 실시 예에 의하면, 전자 장치(1000)는 제1 음성 인식 결과에 대한 신뢰도가 제1 임계 신뢰도 이상이고, 제1 인코더의 출력 값에 대한 신뢰도가 제2 임계 신뢰도 이상인 경우, 제1 음성 인식 모델의 출력 값의 신뢰도가 기 설정된 임계치 이상인 것으로 결정할 수 있다. 또 다른 실시 예에 의하면, 전자 장치(1000)는 제1 음성 인식 결과에 대한 신뢰도가 제1 임계 신뢰도 이상이거나, 제1 인코더의 출력 값에 대한 신뢰도가 제2 임계 신뢰도 이상인 겨우 제1 음성 인식 모델의 출력 값의 신뢰도가 기 설정된 임계치 이상인 것으로 결정할 수도 있다.
전자 장치(1000)는 제1 음성 인식 모델의 출력 값의 신뢰도에 기초하여, 제1 음성 인식 모델의 출력 값을 서버로 전송할지 여부를 결정할 수 있다. 예를 들어, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값의 신뢰도가 기 설정된 임계치 이상인 것으로 결정되는 경우, 제1 음성 인식 모델의 출력 값을 서버(2000)로 전송할 수 있다. 또한, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값의 신뢰도가 기 설정된 임계치 보다 작으면, 제1 음성 인식 모델의 출력 값을 서버(2000)로 전송할 수도 있다.
일 실시 예에 의하면, 서버(2000)는, 전자 장치(1000)로부터 제1 음성 인식 결과(1726) 및 제1 인코더의 출력 값(1712)을 포함하는 제1 음성 인식 모델의 출력 값을 수신하고, 수신된 제1 음성 인식 모델의 출력 값을 제2 음성 인식 모델(320)에 입력함으로써, 제2 레벨의 문자열이 출력되도록 할 수 있다.
예를 들어, 서버(2000)에 저장된 제2 음성 인식 모델(320)은 제2 인코더(1740) 및 제2 디코더(1770)을 포함할 수 있고, 제2 디코더(1770)는 제2 가중치 적용부(1752), 제3 가중치 적용부(1754), 제2 출력 레이어(1760)를 포함할 수 있다. 또한, 제2 출력 레이어(1760)는 소프트 맥스 레이어(1762) 및 Decision layer(1764)를 포함할 수 있다.
서버(2000)의 제2 인코더(1740)에서 출력된 제2 인코더의 출력 값(1742) 은 제3 가중치 적용부(1754)에 입력되고, 전자 장치(1000)에서 수신된 제1 음성 인식 결과(1726)는 서버(2000)내의 제2 가중치 적용부(1752)에 입력될 수 있다. 제2 가중치 적용부(1752)는 제1 음성 인식 결과(1726)에 가중치를 적용하고, 가중치가 적용된 제1 음성 인식 결과를 가중합(weighted sum)함으로써 제2 컨텍스트 벡터를 생성할 수 있다. 또한, 제3 가중치 적용부(1754)는 제2 인코더의 출력 값(1742)에 가중치를 적용하고, 가중치가 적용된 제2 인코더의 출력 값을 가중합(weighted sum)함으로써 제3 컨텍스트 벡터를 생성할 수 있다.
제2 출력 레이어(1760)는 제2 가중치 적용부(1752) 및 제3 가중치 적용부(1754)로부터 각각 출력된 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터를 입력 받고, 입력된 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터에 가장 높은 확률로 대응되는 레이블(label)을 출력할 수 있다.
서버(2000) 내의 소프트 맥스 레이어(1762)는 제2 가중치 적용부(1752)에서 출력된 제2 컨텍스트 벡터 및 제3 가중치 적용부(1754)에서 출력된 제3 컨텍스트 벡터가 소정의 레이블(label)에 대응될 확률 값을 결정할 수 있다. 일 실시 예에 의하면, 소프트 맥스 레이어(1762)는 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터를 결합(concatentate)함으로써 생성된 결합 벡터가 소정의 레이블(label)에 대응될 확률 값을 결정할 수도 있다. 즉, 제2 디코더의 출력 값(1755)는 제2 컨텍스트 벡터 및 제3 컨텍스트 벡터를 결합(concatentate)함으로써 생성된 결합 벡터를 포함할 수 있다.
Decision 레이어(1764)는 소프트 맥스 레이어(1762)에서 출력된 제2 디코더의 출력 값(1755)이 소정의 레이블(label)에 대응될 확률 값에 기초하여, 특정 레이블에 대응되는 제2 레벨의 문자열을 결정할 수 있다. 서버(2000)는 출력된 제2 레벨의 문자열에 대한 정보를 전자 장치(1000)로 전송하고, 전자 장치(1000)는 서버(2000)로부터 수신된 제2 레벨의 문자열에 대한 정보를 사용자에게 제공할 수 있다.
서버(2000) 내의 제2 음성 인식 모델은(320) 제2 인코더(1740)의 출력 값 (1042)을 제2 음성 인식 모델(320)의 출력 값으로 결정할 수도 있지만, 제2 인코더의 출력 값 및 제2 디코더(1770)의 출력 값으로부터 결정되는 제2 음성 인식 결과를 제2 음성 인식 모델(320)의 출력 값으로써 결정할 수도 있다. 즉, 제2 음성 인식 모델의 출력 값은 제2 인코더의 출력 값을 포함할 수도 있고, 제2 인코더의 출력 값 및 제2 음성 인식 결과를 모두 포함할 수도 있다. 서버(2000)는 제2 음성 인식 모델의 출력 값을 다시 전자 장치로 전송함으로써, 전자 장치(1000)가 제2 레벨의 음성 인식 결과를 사용자에게 제공하도록 할 수 있다.
또 다른 실시 예에 따라, 제1 음성 인식 모델(310) 및 제2 음성 인식 모델(320)내의 제2 인코더(1740)가 전자 장치(1000)에 탑재되고, 제2 음성 인식 모델(320)내의 제2 디코더(1770)만이 서버(2000)에 탑재되는 경우, 서버(2000)는 전자 장치(1000)로부터 제2 인코더의 출력 값 및 제1 음성 인식 결과(1726)를 수신하고, 수신된 제2 인코더의 출력 값 및 제1 음성 인식 결과에 기초하여, 오디오 신호(1702)로부터 제2 레벨의 문자열을 출력할 수도 있다.
도 18은 또 다른 실시 예에 따라, 전자 장치 및 서버가 연동됨으로써 사용자의 음성을 인식하는 방법을 나타내는 도면이다.
S1802에서, 전자 장치(1000)는 오디오 신호를 획득한다. 일 실시 예에 의하면, 전자 장치(1000)는 프레임 단위로 구분되는 오디오 신호를 획득하고, 획득된 프레임 별 오디오 신호를 제1 음성 인식 모델에 입력할 수 있다.
S1804에서, 전자 장치(1000)는 제1 인코더를 포함하는 제1 음성 인식 모델을 이용하여, 제1 레벨의 문자열이 출력되도록 오디오 신호를 인코딩함으로써, 제1 인코더의 출력 값을 획득할 수 있다. 일 실시 예에 의하면, 제1 인코더의 출력 값은 인코더 내 LSTM 레이어로부터 출력된 히든 레이어 벡터일 수 있다.
S1806에서, 전자 장치(1000)는 제1 인코더의 출력 값으로부터 제1 음성 인식 결과 값을 획득할 수 있다. 일 실시 예에 의하면, 전자 장치(1000)는 제1 인코더의 출력 값으로부터 제1 레벨의 문자열을 제1 음성 인식 결과로써 획득할 수 있다. 전자 장치(1000)는 획득된 제1 레벨의 문자열에 대한 정보 및 제1 인코더의 출력 값을 제1 음성 인식 모델의 출력 값으로 결정할 수 있다.
S1808에서, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값의 신뢰도를 결정할 수 있다. 일 실시 예에 의하면, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값 내 제1 음성 인식 결과에 대한 신뢰도가 제1 임계 신뢰도 이상이고, 제1 음성 인식 모델의 출력 값 내 제1 인코더의 출력 값에 대한 신뢰도가 제2 임계 신뢰도 이상인 경우, 제1 음성 인식 모델의 출력 값이 기 설정된 임계치 이상인 것으로 결정할 수 있다.
S1810에서, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값이 기 설정된 임계치 이상인지 여부에 기초하여 제1 음성 인식 모델의 출력 값을 서버 (2000)로 전송할지 여부를 결정할 수 있다. S1812에서, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값의 신뢰도가 기 설정된 임계치 이상인 경우, 제1 음성 인식 모델의 출력 값을 서버(2000)로 전송할 수 있다.
S1814에서, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값의 신뢰도가 기 설정된 임계치 보다 작은 경우, 제1 음성 인식 모델의 출력 값을 서버(2000)로 전송하지 않고, 제1 음성 인식 결과 값을 전자 장치의 출력부를 통하여 사용자에게 제공할 수 있다.
S1816에서, 서버(2000)는 제2 레벨의 문자열을 출력하도록 학습된 제2 음성 인식 모델 내 제2 인코더의 출력 값을 획득할 수 있다. 일 실시 예에 의하면, 서버(2000) 내 제2 인코더는 전자 장치(1000)로부터 수신된 제1 음성 인식 모델의 출력 값에 기초하여, 제2 음성 인식 모델이 제2 레벨의 문자열을 출력하도록 학습될 수 있다.
S1818에서, 서버(2000)는 제2 인코더의 출력 값으로부터 제2 음성 인식 결과 값을 획득할 수 있다. 일 실시 예에 의하면, 서버(2000)는 제2 인코더의 출력 값으로부터 제2 레벨의 문자열을, 제2 음성 인식 결과로써 획득할 수 있다. S1820에서, 서버(2000)는 획득된 제2 레벨의 문자열에 대한 정보 및 제2 인코더의 출력 값을 제2 음성 인식 모델의 출력 값으로 결정할 수 있다. 또 다른 실시 예에 의하면, 서버(2000)는 제2 음성 인식 결과에 대한 정보만을 제2 음성 인식 모델의 출력 값으로 결정할 수도 있다.
S1822에서, 서버(2000)는 제2 음성 인식 모델의 출력 값을 전자 장치(1000)로 전송할 수 있다. S1824에서, 전자 장치(1000)는 서버(2000)에서 수신된 제2 음성 인식 모델의 출력 값으로부터 제2 레벨의 문자열을 결정하고, 결정된 제2 레벨의 문자열을 사용자에게 제공할 수 있다.
도 19는 또 다른 실시 예에 따라, 전자 장치 및 서버가 연동됨으로써 사용자의 음성을 인식하는 방법을 나타내는 도면이다.
S1902에서, 서버(2000)는 제1 음성 인식 모델을 생성할 수 있다. S1903에서, 서버(2000)는 생성된 제1 음성 인식 모델을 전자 장치(1000)로 전송할 수 있다. S1904에서, 서버(2000)는 제2 음성 인식 모델을 생성할 수 있다. S1905에서, 전자 장치(1000)는 제1 음성 인식 모델을 메모리에 저장할 수 있다. 그러나 또 다른 실시 예에 의하면, 전자 장치(1000)는 제1 음성 인식 모델을 생성할 수도 있다.
일 실시 예에 의하면, 제1 음성 인식 모델은 제1 레벨의 문자열을 출력하도록, 서버(2000)에 의해 학습되는 음성 인식 모델일 수 있다. 제2 음성 인식 모델은 제1 레벨과 다른 제2 레벨의 문자열을 출력하도록 서버(2000)에 의해 학습되는 음성 인식 모델일 수 있다.
S1906에서, 전자 장치(1000)는 사용자의 음성 입력에 기초하여 오디오 신호를 획득할 수 있다. S1906은 도 18의 S1802에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다. S1906에서, 전자 장치(1000)는 프레임 별 오디오 신호의 특징 값을 제1 음성 인식 모델에 입력함으로써 제1 음성 인식 모델의 출력 값을 획득할 수 있다.
S1910에서, 전자 장치(1000)는 제1 음성 인식 모델의 출력 값을 서버(2000)로 전송할 수 있다. 일 실시 예에 의하면, 제1 음성 인식 모델의 출력 값은 제1 음성 인식 모델 내 제1 인코더의 출력 값을 포함할 수 있고, 또 다른 실시 예에 의하면, 제1 음성 인식 모델로부터 출력된 제1 음성 인식 결과 값을 더 포함할 수 있다.
S1912에서, 서버(2000)는 제1 음성 인식 모델의 출력 값에 기초하여, 제2 음성 인식 모델의 출력 값을 획득할 수 있다. 서버(2000)가 제1 음성 인식 모델의 출력 값에 기초하여 제2 음성 인식 모델의 출력 값을 획득하는 과정은 도 10의 제2 음성 인식 모델(320)의 동작에 대응되므로, 구체적인 설명은 생략하기로 한다.
S1914에서, 서버(2000)는 제2 음성 인식 모델의 출력 값으로부터 사용자의 음성을 인식할 수 있다. 일 실시 예에 의하면 서버(2000)는 제2 음성 인식 모델의 출력 값으로부터 제2 레벨의 문자열을 음성 인식 결과로써 출력할 수 있다.
S1916에서, 서버(2000)는 제2 음성 인식 모델의 출력 값에 기초하여 음성 인식 결과를 전자 장치(1000)로 전송할 수 있다. S1918에서, 전자 장치(1000)는 서버로부터 수신된 음성 인식 결과에 기초하여, 음성 인식 결과를 출력할 수 있다.
일 실시예에 따른 전자 장치가 사용자의 음성을 인식하는 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 또한, 상기 전자 장치가 상기 전자 장치에 표시되는 컨텐츠의 적어도 일부를 통하여, 상기 전자 장치에 관한 가상 장치를 제공하는 방법을 수행하도록 하는 프로그램이 저장된 기록 매체를 포함하는 컴퓨터 프로그램 제품이 제공될 수 있다.
컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. 또한, 일부 실시예는 컴퓨터에 의해 실행되는 컴퓨터 프로그램과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 컴퓨터 프로그램 또는 컴퓨터 프로그램 제품 (computer program product)으로도 구현될 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.

Claims (20)

  1. 전자 장치가 사용자의 음성을 인식하는 방법에 있어서,
    사용자의 음성 입력에 기초하여 오디오 신호를 획득하는 동작;
    상기 오디오 신호가 입력되는 경우 제1 레벨의 문자열을 출력하는 제1 음성 인식 모델의 출력 값을 획득하는 동작;
    상기 오디오 신호가 입력되는 경우 상기 제1 음성 인식 모델의 출력 값에 기초하여 상기 오디오 신호에 대응되는 제2 레벨의 문자열을 출력하는 제2 음성 인식 모델의 출력 값을 획득하는 동작; 및
    상기 제2 음성 인식 모델의 출력 값으로부터 상기 사용자의 음성을 인식하는 동작; 을 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제2 레벨의 문자열은 상기 제1 레벨의 문자열 내의 적어도 하나의 문자를 원소로 포함하는 집합의 부분 집합(sub-set)을 포함하는 것을 특징으로 하는, 방법.
  3. 제1항에 있어서,
    상기 제2 레벨의 문자열은 상기 제1 레벨의 문자열 내의 부분 문자열(sub-string)들 보다 의미론적(semantically)으로 완성된 형태의 단어에 가까운 부분 문자열(sub-string)을 포함하는 것을 특징으로 하는, 방법.
  4. 제1항에 있어서, 상기 오디오 신호를 획득하는 동작은
    상기 오디오 신호를 프레임 단위로 분할하는 동작; 및
    상기 프레임 단위로 구분되는 분할된 프레임 별 오디오 신호의 특징 값을 획득하는 동작; 을 포함하는, 방법.
  5. 제1항에 있어서, 상기 제1 음성 인식 모델의 출력 값을 획득하는 동작은
    상기 제1 레벨의 문자열이 출력되도록 상기 전자 장치에 입력된 오디오 신호를 인코딩하는, 상기 제1 음성 인식 모델 내의 제1 인코더의 출력 값을 획득하는 동작; 및
    상기 획득된 제1 인코더의 출력 값을 상기 제1 음성 인식 모델의 출력 값으로 획득하는 동작; 을 포함하는, 방법.
  6. 제5항에 있어서, 상기 제1 음성 인식 모델의 출력 값을 획득하는 동작은
    상기 제1 인코더의 출력 값으로부터 상기 오디오 신호에 대응되는 제1 레벨의 문자열을 결정하는 상기 제1 음성 인식 모델 내의 제1 디코더의 출력 값을 획득하는 동작; 및
    상기 제1 인코더의 출력 값 및 상기 제1 디코더의 출력 값을 상기 제1 음성 인식 모델의 출력 값으로 획득하는 동작; 을 더 포함하는, 방법.
  7. 제6항에 있어서, 상기 제2 음성 인식 모델의 출력 값을 획득하는 동작은
    상기 제2 레벨의 문자열이 출력되도록 상기 제1 음성 인식 모델의 출력 값에 기초하여, 상기 오디오 신호를 인코딩하는, 상기 제2 음성 인식 모델 내의 제2 인코더의 출력 값을 획득하는 동작; 및
    상기 획득된 제2 인코더의 출력 값을 상기 제2 음성 인식 모델의 출력 값으로 획득하는 동작; 을 포함하는, 방법.
  8. 제7항에 있어서, 상기 제2 음성 인식 모델의 출력 값을 획득하는 동작은
    상기 제2 인코더의 출력 값 및 상기 제1 인코더의 출력 값으로부터 상기 오디오 신호에 대응되는 제1 레벨의 문자열을 결정하는 상기 제1 음성 인식 모델 내의 제1 디코더의 출력 값 각각에 가중치를 적용하는 동작; 및
    상기 가중치가 적용된 제2 인코더의 출력 값 및 상기 가중치가 적용된 제1 디코더의 출력 값으로부터 상기 제2 음성 인식 모델의 출력 값을 획득하는 동작; 을 포함하는, 방법.
  9. 제7항에 있어서,
    상기 제1 인코더 및 상기 제2 인코더는 복수의 적층된(stacked) LSTM(Long Short-Term Memory)레이어들을 포함하고,
    상기 제1 인코더의 출력 값 및 상기 제2 인코더의 출력 값은 상기 제1 인코더 및 상기 제2 인코더 각각에 포함된 복수의 적층된 LSTM 레이어들 중 선택된 LSTM 레이어 각각으로부터 출력된 히든 레이어 벡터의 시퀀스를 포함하는, 방법.
  10. 제8항에 있어서,
    상기 제1 디코더는 복수의 적층된 (stacked) LSTM(Long Short-Term Memory)레이어들 및 이전 시간의 상기 제1 디코더의 출력 값에 기초하여 상기 제1 인코더의 출력 값에 가중치(attention)를 적용하기 위한 어텐션 레이어를 포함하고,
    상기 제1 디코더의 출력 값은 상기 가중치에 따라 상기 제1 인코더의 출력 값을 가중합(weighted sum)함으로써 생성된 컨텍스트 벡터의 시퀀스를 포함하는, 방법.
  11. 제8항에 있어서,
    상기 제2 음성 인식 모델은 상기 제1 레벨의 문자열을 출력하기 위한 상기 제1 음성 인식 모델의 학습이 완료되면,
    상기 학습이 완료된 제1 음성 인식 모델로부터 출력되는 제1 음성 인식 모델의 출력 값에 기초하여 상기 제2 레벨의 문자열을 출력하도록 학습되는 것을 특징으로 하는, 방법.
  12. 사용자의 음성을 인식하는 전자 장치에 있어서,
    하나 이상의 명령어들(instructions)을 포함하는 프로그램을 저장하는 메모리; 및
    상기 하나 이상의 명령어들을 실행하는 프로세서; 를 포함하고,
    상기 프로세서는,
    사용자의 음성 입력에 기초하여 오디오 신호를 획득하고,
    상기 오디오 신호가 입력되는 경우 제1 레벨의 문자열을 출력하는 제1 음성 인식 모델의 출력 값을 획득하고,
    상기 오디오 신호가 입력되는 경우 상기 제1 음성 인식 모델의 출력 값에 기초하여 상기 오디오 신호에 대응되는 제2 레벨의 문자열을 출력하는 제2 음성 인식 모델의 출력 값을 획득하고,
    상기 제2 음성 인식 모델의 출력 값으로부터 상기 사용자의 음성을 인식하는, 전자 장치.
  13. 제12항에 있어서,
    상기 제2 레벨의 문자열은 상기 제1 레벨의 문자열 내의 적어도 하나의 문자를 원소로 포함하는 집합의 부분 집합(sub-set)을 포함하는 것을 특징으로 하는, 전자 장치.
  14. 제12항에 있어서,
    상기 프로세서는 상기 오디오 신호를 프레임 단위로 분할하고, 상기 프레임 단위로 구분되는 분할된 프레임 별 오디오 신호의 특징 값을 획득하는, 전자 장치.
  15. 제12항에 있어서,
    상기 프로세서는 상기 제1 레벨의 문자열이 출력되도록 상기 전자 장치에 입력된 오디오 신호를 인코딩하는, 상기 제1 음성 인식 모델 내의 제1 인코더의 출력 값을 획득하고, 상기 획득된 제1 인코더의 출력 값을 상기 제1 음성 인식 모델의 출력 값으로 획득하는 것을 특징으로 하는, 전자 장치.
  16. 제15항에 있어서,
    상기 프로세서는 상기 제1 인코더의 출력 값으로부터 상기 오디오 신호에 대응되는 제1 레벨의 문자열을 결정하는 상기 제1 음성 인식 모델 내의 제1 디코더의 출력 값을 획득하고, 상기 제1 인코더의 출력 값 및 상기 제1 디코더의 출력 값을 상기 제1 음성 인식 모델의 출력 값으로 획득하는 것을 특징으로 하는, 전자 장치.
  17. 제16항에 있어서,
    상기 프로세서는 상기 제2 레벨의 문자열이 출력되도록 상기 제1 음성 인식 모델의 출력 값에 기초하여, 상기 오디오 신호를 인코딩하는, 상기 제2 음성 인식 모델 내의 제2 인코더의 출력 값을 획득하고, 상기 획득된 제2 인코더의 출력 값을 상기 제2 음성 인식 모델의 출력 값으로 획득하는 것을 특징으로 하는 전자 장치.
  18. 제17항에 있어서,
    상기 프로세서는 상기 제2 인코더의 출력 값 및 상기 제1 인코더의 출력 값으로부터 상기 오디오 신호에 대응되는 제1 레벨의 문자열을 결정하는 상기 제1 음성 인식 모델 내의 제1 디코더의 출력 값 각각에 가중치를 적용하고, 상기 가중치가 적용된 제2 인코더의 출력 값 및 상기 가중치가 적용된 제1 디코더의 출력 값으로부터 상기 제2 음성 인식 모델의 출력 값을 획득하는 것을 특징으로 하는, 전자 장치.
  19. 제17항에 있어서,
    상기 제1 인코더 및 상기 제2 인코더는 복수의 적층된(stacked) LSTM(Long Short-Term Memory)레이어들을 포함하고, 상기 제1 인코더의 출력 값 및 상기 제2 인코더의 출력 값은 상기 제1 인코더 및 상기 제2 인코더 각각에 포함된 복수의 적층된 LSTM 레이어들 중 선택된 LSTM 레이어 각각으로부터 출력된 히든 레이어 벡터의 시퀀스를 포함하는 것을 특징으로 하는 전자 장치.
  20. 사용자의 음성 입력에 기초하여 오디오 신호를 획득하는 동작;
    상기 오디오 신호가 입력되는 경우 제1 레벨의 문자열을 출력하는 제1 음성 인식 모델의 출력 값을 획득하는 동작;
    상기 오디오 신호가 입력되는 경우 상기 제1 음성 인식 모델의 출력 값에 기초하여 상기 오디오 신호에 대응되는 제2 레벨의 문자열을 출력하는 제2 음성 인식 모델의 출력 값을 획득하는 동작; 및
    상기 제2 음성 인식 모델의 출력 값으로부터 상기 사용자의 음성을 인식하는 동작; 을 포함하는, 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020190159359A 2019-01-23 2019-12-03 음성 인식 장치 및 방법 KR20200091797A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/KR2020/001061 WO2020153736A1 (en) 2019-01-23 2020-01-22 Method and device for speech recognition
EP20744656.8A EP3850622A4 (en) 2019-01-23 2020-01-22 METHOD AND DEVICE FOR VOICE RECOGNITION
US16/750,274 US11302331B2 (en) 2019-01-23 2020-01-23 Method and device for speech recognition

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962795736P 2019-01-23 2019-01-23
US62/795,736 2019-01-23
US201962848698P 2019-05-16 2019-05-16
US62/848,698 2019-05-16

Publications (1)

Publication Number Publication Date
KR20200091797A true KR20200091797A (ko) 2020-07-31

Family

ID=71834729

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190159359A KR20200091797A (ko) 2019-01-23 2019-12-03 음성 인식 장치 및 방법

Country Status (2)

Country Link
EP (1) EP3850622A4 (ko)
KR (1) KR20200091797A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220064695A (ko) * 2020-11-12 2022-05-19 한국공학대학교산학협력단 운전자 음성 인식을 이용한 운전자 의도를 추정하는 방법 및 장치
KR102478763B1 (ko) * 2022-06-28 2022-12-19 (주)액션파워 자소 정보를 이용한 음성 인식 방법
WO2023003072A1 (ko) * 2021-07-20 2023-01-26 울산과학기술원 인공 지능 모델을 이용하여 음성 인식 서비스를 제공하는 장치 및 방법
KR102498063B1 (ko) * 2022-08-30 2023-02-10 주식회사 액션파워 계층적 언어 정보를 이용한 음성 인식 방법
KR102515914B1 (ko) * 2022-12-21 2023-03-30 주식회사 액션파워 Stt 모델을 활용하는 발음 전사 방법
WO2023063569A1 (ko) * 2021-10-15 2023-04-20 삼성전자주식회사 전자 장치 및 그 제어 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7729912B1 (en) * 2003-12-23 2010-06-01 At&T Intellectual Property Ii, L.P. System and method for latency reduction for automatic speech recognition using partial multi-pass results
KR100612839B1 (ko) * 2004-02-18 2006-08-18 삼성전자주식회사 도메인 기반 대화 음성인식방법 및 장치
KR20200030789A (ko) * 2018-09-13 2020-03-23 삼성전자주식회사 음성 인식 방법 및 장치

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220064695A (ko) * 2020-11-12 2022-05-19 한국공학대학교산학협력단 운전자 음성 인식을 이용한 운전자 의도를 추정하는 방법 및 장치
WO2023003072A1 (ko) * 2021-07-20 2023-01-26 울산과학기술원 인공 지능 모델을 이용하여 음성 인식 서비스를 제공하는 장치 및 방법
WO2023063569A1 (ko) * 2021-10-15 2023-04-20 삼성전자주식회사 전자 장치 및 그 제어 방법
KR102478763B1 (ko) * 2022-06-28 2022-12-19 (주)액션파워 자소 정보를 이용한 음성 인식 방법
US11749260B1 (en) 2022-06-28 2023-09-05 Actionpower Corp. Method for speech recognition with grapheme information
KR102498063B1 (ko) * 2022-08-30 2023-02-10 주식회사 액션파워 계층적 언어 정보를 이용한 음성 인식 방법
KR102515914B1 (ko) * 2022-12-21 2023-03-30 주식회사 액션파워 Stt 모델을 활용하는 발음 전사 방법

Also Published As

Publication number Publication date
EP3850622A1 (en) 2021-07-21
EP3850622A4 (en) 2021-11-17

Similar Documents

Publication Publication Date Title
US11302331B2 (en) Method and device for speech recognition
JP7066349B2 (ja) 翻訳方法、翻訳装置及びコンピュータプログラム
KR20200091797A (ko) 음성 인식 장치 및 방법
CN107590135B (zh) 自动翻译方法、设备和系统
CN110516253B (zh) 中文口语语义理解方法及系统
JP7436760B1 (ja) サブワードエンドツーエンド自動音声認識のための学習ワードレベルコンフィデンス
KR101842362B1 (ko) 인공 신경망 기반의 문단 생성 방법 및 장치
US11514916B2 (en) Server that supports speech recognition of device, and operation method of the server
US11961515B2 (en) Contrastive Siamese network for semi-supervised speech recognition
CN116250038A (zh) 变换器换能器:一种统一流式和非流式语音识别的模型
US11532310B2 (en) System and method for recognizing user's speech
US20240078385A1 (en) Method and apparatus for generating text
WO2023226260A1 (zh) 语音生成方法及装置、存储介质、电子设备
KR20210019920A (ko) 사용자의 음성을 인식하는 시스템 및 방법
US11830476B1 (en) Learned condition text-to-speech synthesis
US11277304B1 (en) Wireless data protocol
KR20190054850A (ko) 자동 음성인식 장치 및 방법
CN112466282A (zh) 一种面向航天专业领域的语音识别系统和方法
US20230103722A1 (en) Guided Data Selection for Masked Speech Modeling
US20240203406A1 (en) Semi-Supervised Training Scheme For Speech Recognition
US12033618B1 (en) Relevant context determination
KR102492574B1 (ko) 약한지도학습 기반 챗봇을 이용한 대화형 키오스크 주문 서비스 제공 시스템
CN113450765B (en) Speech synthesis method, device, equipment and storage medium
US20230017892A1 (en) Injecting Text in Self-Supervised Speech Pre-training
US20240029720A1 (en) Context-aware Neural Confidence Estimation for Rare Word Speech Recognition