KR20210019920A - 사용자의 음성을 인식하는 시스템 및 방법 - Google Patents

사용자의 음성을 인식하는 시스템 및 방법 Download PDF

Info

Publication number
KR20210019920A
KR20210019920A KR1020190146177A KR20190146177A KR20210019920A KR 20210019920 A KR20210019920 A KR 20210019920A KR 1020190146177 A KR1020190146177 A KR 1020190146177A KR 20190146177 A KR20190146177 A KR 20190146177A KR 20210019920 A KR20210019920 A KR 20210019920A
Authority
KR
South Korea
Prior art keywords
output value
encoder
server
domain
model
Prior art date
Application number
KR1020190146177A
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 US16/988,929 priority Critical patent/US11532310B2/en
Priority to CN202080055338.0A priority patent/CN114207711A/zh
Priority to EP20852027.0A priority patent/EP3980991B1/en
Priority to PCT/KR2020/010565 priority patent/WO2021029642A1/en
Publication of KR20210019920A publication Critical patent/KR20210019920A/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/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/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Telephonic Communication Services (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)

Abstract

사용자의 음성을 인식하는 시스템 및 방법이 제공된다. 서버가 디바이스에 입력된 음성 신호에 관한 문자열을 제공하는 방법은, 상기 디바이스의 종단간(End-to-End) ASR(Automatic Speech Recognition) 모델의 인코더로부터 출력되는 상기 인코더의 출력 값을 상기 디바이스로부터 수신하는 동작; 상기 수신된 인코더의 출력 값에 대응되는 도메인을 식별하는 동작; 상기 서버 내에 포함된 종단간 ASR 모델의 복수의 디코더들 중에서, 상기 식별된 도메인에 대응되는 디코더를 선택하는 동작; 및 상기 선택된 디코더를 이용하여 상기 수신된 인코더의 출력 값으로부터 문자열을 획득하는 동작; 상기 획득된 문자열을 상기 디바이스에게 제공하는 동작;을 포함한다.

Description

사용자의 음성을 인식하는 시스템 및 방법{SYSTEM AND METHOD FOR RECOGNING USER'S SPEECH}
본 개시는 사용자의 음성을 인식하는 시스템 및 방법에 관한 것으로서, 보다 상세하게는 디바이스와 서버가 연동하여 사용자의 음성을 인식하는 시스템 및 방법에 관한 것이다.
음성 인식(Automatic Speech Recognition)은 사람의 음성을 입력받아 이를 인식하여 텍스트로 변환하는 기술이다. 음성 인식은 스마트폰, 에어컨, 냉장고 및 AI 스피커 등의 다양한 전자 장치에서 활용되고 있다. 먼저 기기가 사람의 음성을 입력으로 받고, 기기 내부에서 이미 훈련되어 있는 음성 인식 모델을 사용하여 입력 음성을 인식하고 텍스트로 변환한다. 이렇게 변환된 텍스트를 최종 출력으로 가지게 된다. 최근 심층 신경망(deep neural network, DNN) 알고리즘이 다양한 머신 러닝 분야에 사용되며 성능 향상이 이루어졌다. 음성 인식 분야에서도 신경망을 사용하여 성능 향상이 크게 이루어졌으며, 최근에는 음성 인식을 위한 종단간 음성 인식 모델(End-to-End Automatic Speech Recognition Model)이 연구되고 있다.
본 개시의 일 실시예는, 디바이스의 종단간(End-to-End) ASR(Automatic Speech Recognition) 모델의 인코더의 출력 값을 서버로 제공하여 사용자의 음성을 인식하는 시스템 및 방법을 제공할 수 있다.
또한, 본 개시의 일 실시예는, 디바이스의 종단간 ASR 모델의 인코더의 출력 값에 관련된 도메인에 대응되는 디코더를 이용하여 사용자의 음성을 인식하는 시스템 및 방법을 제공할 수 있다.
또한, 본 개시의 일 실시예는, 종단간 ASR 모델의 인코딩을 디바이스에서 수행하고, 종단간 ASR 모델의 디코딩을 서버에서 수행함으로써 사용자의 음성을 보다 정확하게 인식할 수 있는 시스템 및 방법을 제공할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제1 측면은, 디바이스의 종단간(End-to-End) ASR(Automatic Speech Recognition) 모델 의 인코더로부터 출력되는 상기 인코더의 출력 값을 상기 디바이스로부터 수신하는 동작; 상기 수신된 인코더의 출력 값에 대응되는 도메인을 식별하는 동작; 상기 서버 내에 포함된 종단간 ASR 모델의 복수의 디코더들 중에서, 상기 식별된 도메인에 대응되는 디코더를 선택하는 동작; 상기 선택된 디코더를 이용하여 상기 수신된 인코더의 출력 값으로부터 문자열을 획득하는 동작; 및 상기 획득된 문자열을 상기 디바이스에게 제공하는 동작;을 포함하며, 상기 인코더의 출력 값은, 상기 디바이스에 입력된 음성 신호를 인코딩함으로써 상기 디바이스에 의해 인코딩된 것인, 서버가 디바이스에 입력된 음성 신호에 관한 문자열을 제공하는 방법을 제공할 수 있다.
또한, 본 개시의 제2 측면은, 통신 인터페이스; 하나 이상의 명령어들(instructions)을 포함하는 프로그램을 저장하는 저장부; 및 상기 저장부에 저장된 프로그램의 하나 이상의 명령어들을 실행하는 프로세서; 를 포함하고, 상기 프로세서는, 상기 디바이스의 종단간(End-to-End) ASR(Automatic Speech Recognition) 모델의 인코더로부터 출력되는 상기 인코더의 출력 값을 상기 디바이스로부터 수신하고, 상기 수신된 인코더의 출력 값에 대응되는 도메인을 식별하고, 상기 서버 내에 포함된 종단간 ASR 모델의 복수의 디코더들 중에서, 상기 식별된 도메인에 대응되는 디코더를 선택하고, 상기 선택된 디코더를 이용하여 상기 수신된 인코더의 출력 값으로부터 문자열을 획득하고, 상기 획득된 문자열을 상기 디바이스에게 제공하며, 상기 인코더의 출력 값은, 상기 디바이스에 입력된 음성 신호를 인코딩함으로써 상기 디바이스에 의해 인코딩된 것인, 디바이스에 입력된 음성 신호에 관한 문자열을 제공하는 서버를 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따른 음성 인식 시스템의 개요도이다.
도 2는 본 개시의 일 실시예에 따른 복수의 도메인에 관련된 디코더들을 포함하는 음성 인식 시스템의 개요도이다.
도 3은 본 개시의 일 실시예에 따른 음성 인식 시스템 내의 디바이스 및 서버가 음성 입력을 인식하여 문자열을 획득하는 방법의 흐름도이다.
도 4는 본 개시의 일 실시예에 따른 디바이스가 인코더의 복수의 레이어로부터 출력된 출력 값들을 서버로 전송하는 방법의 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 서버가 선택된 디코더에 인코더 출력 값을 입력하는 방법의 흐름도이다.
도 6(a)는 본 개시의 일 실시예에 따른 서버가 인코더 출력 값을 처리하기 위하여 특정 도메인의 하나의 디코더를 선택하는 예시를 나타내는 도면이다.
도 6(b)는 본 개시의 일 실시예에 따른 서버가 인코더 출력 값을 처리하기 위하여 특정 도메인의 복수의 디코더를 선택하는 예시를 나타내는 도면이다.
도 6(c)는 본 개시의 일 실시예에 따른 서버가 인코더 출력 값을 처리하기 위하여 복수의 도메인의 복수의 디코더를 선택하는 예시를 나타내는 도면이다.
도 6(d)는 본 개시의 일 실시예에 따른 디바이스의 인코더와 동일한 타입의 디코더가 서버 내에 없는 경우에, 서버가 인코더 출력 값을 처리하기 위하여 다른 타입의 디코더를 선택하는 예시를 나타내는 도면이다.
도 7(a)는 디바이스 및 서버가 어텐션 기반의 ASR 모델들을 각각 포함하는 경우에 디바이스와 서버가 음성 신호로부터 문자열을 획득하는 예시를 나타내는 도면이다.
도 7(b)는 디바이스 및 서버가 RNN-T 기반의 ASR 모델들을 각각 포함하는 경우에 디바이스와 서버가 음성 신호로부터 문자열을 획득하는 예시를 나타내는 도면이다.
도 8(a)는 본 개시의 일 실시예에 따른 서버에 어텐션 기반의 ASR 모델들의 인코더들이 포함되지 않는 경우에 디바이스와 서버가 음성 신호로부터 문자열을 획득하는 예시를 나타내는 도면이다.
도 8(b)는 본 개시의 일 실시예에 따른 서버에 RNN-T 기반의 ASR 모델들의 인코더들이 포함되지 않는 경우에 디바이스와 서버가 음성 신호로부터 문자열을 획득하는 예시를 나타내는 도면이다.
도 9는 본 개시의 일 실시예에 따른 디바이스와 서버가 음성 입력에 대한 음성 인식 및 NLU 처리를 수행하는 방법을 나타내는 도면이다.
도 10은 본 개시의 일 실시예에 따른 디바이스와 서버가 음성 입력에 대한 음성 인식 및 NLU 처리를 수행하는 방법을 나타내는 도면이다.
도 11은 본 개시의 일 실시예에 따른 디바이스와 서버가 음성 입력에 대한 음성 인식 및 NLU 처리를 수행하는 방법을 나타내는 도면이다.
도 12는 본 개시의 일 실시예에 따른 디바이스와 서버가 음성 입력에 대한 음성 인식 및 NLU 처리를 수행하는 방법을 나타내는 도면이다.
도 13은 본 개시의 일 실시예에 따른 서버의 블록도이다.
도 14는 본 개시의 일 실시예에 따른 디바이스의 블록도이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 본 개시의 일 실시예에 따른 음성 인식 시스템의 개요도이다.
도 1을 참조하면, 본 개시의 일 실시예에 따른 음성 인식 시스템은 디바이스(1000) 및 서버(2000)를 포함한다.
디바이스(1000)는 종단간(end-to-end) ASR(Automatic Speech Recognition) 모델의 인코더를 포함할 수 있으며, 서버(2000)는 종단간 ASR 모델의 디코더를 포함할 수 있다. 디바이스(1000)는 사용자의 음성 입력을 인식하기 위하여 종단간 ASR 모델의 인코더를 이용하여 사용자의 음성 입력을 인코딩하는 동작을 수행할 수 있으며, 서버(2000)는 디바이스(1000)에 의해 인코딩된 음성 입력을 ASR 모델의 디코더를 이용하여 디코딩하는 동작을 수행할 수 있다.
종단간 ASR 모델은, 음성으로부터 통합 신경망을 거쳐 문자열을 인식하는 음성 인식 모델로서, 음향 모델, 발음 사전 및 언어 모델을 별도로 이용하지 않고 통합된 신경망을 포함하는 구조의 음성 인식 모델일 수 있다. 종단간 ASR 모델은 통합된 신경망을 이용함으로써, 음성으로부터 음소를 인식한 이후에 음소를 텍스트로 변환하는 과정이 없이, 음성을 텍스트로 변환할 수 있다. 종단간 ASR 모델은, 재귀 신경망(recurrent network)을 포함하는 구조를 포함할 수 있으며, 음성 입력을 인코딩하는 인코더와 인코더 출력 값으로부터 문자열을 추정하는 디코더를 포함할 수 있다.
디바이스(1000)는 사용자의 음성 입력을 수신하고, 수신된 음성 입력을 종단간 ASR 모델의 인코더를 이용하여 인코딩할 수 있으며, 인코더 출력 값을 서버(2000)에게 제공할 수 있다. 또한, 서버(2000)는 디바이스(1000)로부터 인코더 출력 값을 수신하고, 수신된 인코더 출력 값을 종단간 ASR 모델의 디코더를 이용하여 디코딩할 수 있다. 서버(2000)는 인코더 출력 값을 디코딩함으로써 음성 인식 결과를 획득하고 획득된 음성 인식 결과를 디바이스(1000)에게 제공할 수 있다.
디바이스(1000)는, 스마트폰, 태블릿 PC, PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 디바이스(1000)는 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 디바이스일 수 있다. 그러나, 이에 제한되지 않으며, 디바이스(1000)는 음성 인식을 위하여 서버(2000)와 네트워크를 통하여 데이터를 송수신할 수 있는 모든 종류의 기기를 포함할 수 있다.
네트워크(200)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 도 1에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함한다.
도 2는 본 개시의 일 실시예에 따른 복수의 도메인에 관련된 디코더들을 포함하는 음성 인식 시스템의 개요도이다.
도 2를 참조하면, 디바이스(1000)는 종단간 ASR 시스템의 인코더를 포함하며, 서버(2000)는 종단간 ASR 시스템의 디코더들을 포함할 수 있다. 예를 들어, 서버(2000)는 제1 도메인에 대응되는 복수의 제1 디코더들 및 제2 도메인에 대응되는 복수의 제2 디코더들을 포함할 수 있다.
디바이스(1000)는 음성 입력으로부터 특징을 추출하여 특징 벡터를 획득할 수 있으며, 획득된 특징 벡터를 종단간 ASR 시스템의 인코더에 입력할 수 있다. 디바이스(1000)는 인코더로부터 출력되는 출력 값을 서버(2000)로 제공할 수 있다. 인코더 출력 값은 시퀀스의 형태를 가질 수 있으며, 예를 들어, 인코더 내의 뉴럴 네트워크 레이어의 출력 값인 히든 레이어 벡터의 시퀀스일 수 있다.
서버(2000)는 디바이스(1000)로부터 인코더 출력 값을 수신하고, 인코더 출력 값으로부터 인코더 출력 값에 관련된 도메인을 선택할 수 있다. 도메인은 입력 음성이 관련된 분야를 나타내며, 예를 들어, 입력 음성의 의미, 입력 음성의 속성 등에 따라 미리 설정될 수 있다. 도메인은, 예를 들어, 입력 음성이 관련된 서비스에 따라 분류될 수도 있다. 또한, 도메인 별로 종단간 ASR 모델이 훈련될 수 있으며, 이 경우, 도메인 별로 훈련된 종단간 ASR 모델은, 해당 도메인에 관련된 입력 음성과 그에 대응되는 정답 텍스트를 이용하여 훈련된 모델일 수 있다. 서버(2000)는 기설정된 복수의 도메인 중 적어도 하나를 선택하고, 선택된 도메인에 대응되는 디코더들 중에서 적어도 하나를 선택할 수 있다. 서버(2000)는 디바이스(1000) 내의 인코더에 대응되는 디코더를 선택할 수 있다. 또한, 서버(2000)는 인코더 출력 값을 선택된 디코더에 입력함으로써, 디코더 출력 값을 획득할 수 있다. 서버(2000)는 디코더 출력 값을 이용하여 음성 입력을 인식한 결과인 문자열을 획득하고, 획득된 문자열을 디바이스(1000)에게 제공할 수 있다.
도 3은 본 개시의 일 실시예에 따른 음성 인식 시스템 내의 디바이스 및 서버가 음성 입력을 인식하여 문자열을 획득하는 방법의 흐름도이다.
디바이스(1000)는 디바이스(1000)의 메모리에 저장된 인스트럭션들을 실행함으로써 도 3에서의 디바이스(1000)의 동작을 실행할 수 있다. 예를 들어, 디바이스(1000)는 후술할 도 14의 음성 인식 평가 모듈(1430), NLU 결정 모듈(1440), 도메인 식별 모듈(1440), 도메인 등록 모듈(1450), ASR 모델(1410), NLU 모델(1420) 중 적어도 하나를 실행함으로써 도 3에서의 디바이스(1000)의 동작을 수행할 수 있다. 하지만, 이에 제한되지 않으며, 디바이스(1000)는 디바이스(1000)의 소정 동작을 수행하기 위해 메모리에 저장된 다른 프로그램을 실행할 수도 있다.
또한, 서버(2000)는 서버(2000)의 저장부에 저장된 인스트럭션들을 실행함으로써 도 3에서의 서버(2000)의 동작을 실행할 수 있다. 예를 들어, 서버(2000)는 후술할 도 13의 음성 인식 관리 모듈(2310), ASR 모듈(2320), NLU 모듈(23300) 및 음성 해석 관리 모듈(2340) 중 적어도 하나를 실행함으로써 도 3에서의 서버(2000)의 동작을 수행할 수 있다. 하지만, 이에 제한되지 않으며, 서버(2000)는 서버(2000)의 소정 동작을 수행하기 위해 저장부에 저장된 다른 프로그램을 실행할 수도 있다.
S300에서 디바이스(1000)는 음성 신호로부터 특징 벡터를 생성할 수 있다. 디바이스(1000)는 사용자의 음성 입력(예를 들어, 발화)을 마이크를 통하여 수신하고, 마이크를 통해 획득된 음성 신호로부터 음성 신호의 특징을 나타내는 특징 벡터를 생성할 수 있다. 음성 신호에 노이즈가 포함된 경우 디바이스(1000)는 음성 신호 내의 노이즈를 제거하고, 노이즈가 제거된 음성 신호로부터 특징 벡터를 획득할 수 있다.
S305에서 디바이스(1000)는 인코더를 이용하여 특징 벡터를 인코딩할 수 있다. 디바이스(1000)는 사용자의 음성을 인식하기 위하여 디바이스(1000) 내의 종단간 ASR 모델의 인코더에 특징 벡터를 입력할 수 있다. 이 경우, 디바이스(1000)는 특징 벡터를 종단간 ASR 모델의 인코더에 적합한 포맷으로 변환할 수 있다. 예를 들어, 디바이스(1000)는 도 14의 ASR 모델(1410) 내의 인코더(1411)을 이용하여 특징 벡터를 인코딩할 수 있다.
S310에서 디바이스(1000)는 인코딩된 출력 값의 신뢰도를 획득할 수 있다. 디바이스(1000) 내의 종단간 ASR 모델의 인코더는 복수의 레이어들을 포함할 수 있으며, 예를 들어, 복수의 적층된(stacked) LSTM(Long Short-Term Memory) 레이어들을 포함할 수 있다. 또한, 인코딩된 출력 값은 인코더 내의 복수의 레이어들로부터 출력되는 출력 값들 중 하나일 수 있다. 인코딩된 출력 값은 인코더 내의 레이어로부터 출력된 히든 벡터일 수 있다. 인코딩된 출력 값에 대한 신뢰도는, 인코딩된 출력 값이 입력 음성에 매칭되는 정도를 나타내는 수치일 수 있으며 예를 들어, 컨피던스 스코어(confidence score)를 포함할 수 있으나, 이에 제한되지 않는다. 인코딩된 출력 값에 대한 신뢰도는, 인코딩된 출력 값이 나타내는 텍스트가 입력 음성에 일치하는 정도를 나타낼 수 있다. 예를 들어, 디바이스(1000)의 ASR 모델의 인코더가 훈련될 때, CTC (connectionist temporal classification) Loss가 함께 사용될 수 있는데, 이 경우 인코더의 출력단에 프로젝션 레이어(projection Layer)가 연결됨으로써, 프로젝션 레이어로부터 텍스트가 획득될 수 있다. 또한, 디바이스(1000)는 인코더의 출력단에 연결된 프로젝션 레이어로부터 획득되는 텍스트를 기반으로 인코더 출력 값의 신뢰도를 산출할 수 있다. 하지만, 신뢰도의 산출 방법은 이에 제한되지 않으면, 예를 들어, 디바이스(1000)는 기설정된 알고리즘을 이용하여 인코더의 출력 값으로부터 신뢰도를 바로 산출할 수도 있다. 또한, 예를 들어, 디바이스(1000)는 도 14의 음성 인식 평가 모듈(1430)을 이용하여 인코더 출력 값의 신뢰도를 획득할 수 있다.
S315에서 디바이스(1000)는 인코더 출력 값을 서버(2000)로 전송할 지를 결정할 수 있다. 디바이스(1000)는 인코더 출력 값의 신뢰도를 기설정된 임계치와 비교함으로써, 인코더 출력 값을 서버(2000)로 전송할 지를 결정할 수 있다. 디바이스(1000)는 인코더 출력 값의 신뢰도가 기설정된 임계치 이상이면, 인코딩된 출력 값을 서버(2000)로 전송할 것을 결정할 수 있다. 또한, 디바이스(1000)는 인코더 출력 값의 신뢰도가 기설정된 임계치보다 작으면, 인코딩된 출력 값을 서버(2000)로 전송할 것을 결정할 수 있다.
동작 S315에서는 디바이스(1000)가 인코더 출력 값의 신뢰도에 기초하여 인코더 출력 값을 서버(2000)로 전송할 지를 결정하는 것으로 설명되었지만, 이에 제한되지 않는다. 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값에 기초하여, 디바이스(1000)의 ASR 모델의 출력 값을 이용할 것인지를 판단할 수도 있다. 이 경우, 디바이스(1000)는 ASR 모델의 출력 값의 신뢰도를 기반으로, 인코더 출력 값을 서버(2000)로 전송할 지를 판단할 수 있다. 디바이스(1000)의 ASR 모델의 출력 값은, 디바이스(1000)의 ASR 모델 내의 인코더로부터 출력된 인코더 출력 값을 디바이스(1000)의 ASR 모델 내의 디코더를 이용하여 디코딩함으로써 획득되는 적어도 하나의 문자열일 수 있다. 또한, ASR 모델의 출력 값의 신뢰도는 ASR 모델로부터 출력된 문자열이 입력 음성에 일치하는 정도를 나타내는 수치일 수 있다. 또한, 예를 들어, ASR 모델로부터 출력되는 문자열 별로 입력 음성에 일치하는 정도를 나타내는 컨피던스 스코어가 산출될 수 있다.
동작 S315에서 인코더 출력 값을 서버(2000)로 전송할 것을 결정한 경우, 동작 S320에서 디바이스(1000)는 서버(2000)에게 문자열을 요청할 수 있다.
디바이스(1000)는 인코더 출력 값을 서버(2000)로 전송하면서 서버(2000)에게 문자열을 요청할 수 있다. 이 경우, 디바이스(1000)는 인코더의 복수의 레이어들 중 마지막 레이어로부터 출력된 출력 값을 서버(2000)에게 전송할 수 있다. 또는, 디바이스(1000)는 인코더의 복수의 레이어들로부터 출력된 출력 값들 중에서 선택된 출력 값을 서버(2000)에게 전송할 수 있다.
또한, 디바이스(1000)는 서버(2000)에게 문자열을 요청하면서, 디바이스(1000) 내의 인코더에 관한 인코딩 정보를 서버(2000)에게 제공할 수 있다. 인코딩 정보는, 인코더 출력 값에 관련된 정보로서, 예를 들어, 디바이스(1000)의 종단간 ASR 모델의 종류, 종단간 ASR 모델의 식별 값, 종단간 ASR 모델 내의 인코더의 식별 값, 인코더의 종류, 인코더의 속성 및 인코딩 정도를 나타내는 정보 포함할 수 있으나, 이에 제한되지 않는다. 또한, 인코딩 정도를 나타내는 정보는, 예를 들어, 인코더 출력 값을 출력한 레이어를 식별하기 위한 정보를 포함할 수 있다.
또한, 디바이스(1000)는 서버(2000)에게 문자열을 요청하면서, 인코더 출력 값에 관련된 도메인 정보를 서버(2000)로 제공할 수 있다. 도메인 정보는 도메인을 식별하기 위한 정보로서, 예를 들어, 도메인의 명칭, 도메인의 식별자를 포함할 수 있으나, 이에 제한되지 않는다. 디바이스(1000)는 디바이스(1000) 내의 도메인 식별 모듈(1450)을 이용하여 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 예를 들어, 디바이스(1000)는, 인코더의 출력단에 연결된 프로젝션 레이어(projection Layer)로부터 획득되는 텍스트로부터, 인코더의 출력 값이 관련된 도메인을 식별할 수 있다. 프로젝션 레이어는 인코더로부터 출력되는 히든 벡터 값을 입력으로 하여 텍스트를 출력하는 레이어일 수 있다. 이 경우, 디바이스(1000)는 인코더의 출력 값으로부터 생성되는 텍스트의 도메인 신뢰도에 기초하여, 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 도메인 신뢰도는, 텍스트의 적어도 일부가 특정 도메인에 어느 정도 관련되었는지를 나타내는 수치일 수 있다. 예를 들어, 디바이스(1000)는 인코더 출력 값으로부터 획득되는 텍스트가 인코더 출력 값을 디코딩하기 위해 미리 등록된 도메인에 어느 정도 관련성이 있는 지를 나타내는 컨피던스 스코어를 산출할 수 있다. 또한, 디바이스(1000)는 미리 등록된 도메인에 대해 산출된 도메인 신뢰도에 기초하여, 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 디바이스(1000)는 룰 기반으로 인코더 출력 값에 관련된 도메인을 식별하거나 도메인 식별을 위해 훈련된 인공 지능 모델을 이용하여 인코더 출력 값에 관련된 도메인 신뢰도를 획득할 수 있다. 또한, 예를 들어, 도메인 식별을 위한 인공 지능 모델은 NLU 모델의 일부이거나, NLU 모델과는 별개의 모델일 수 있다..
한편, 상기에서는 디바이스(1000)가 서버(2000)에게 문자열을 요청하면서, 인코딩 출력 값, 인코딩 정보 및 도메인 정보를 서버(2000)에게 제공하는 것으로 설명되었지만, 이에 제한되지 않는다. 예를 들어, 디바이스(1000)는 인코딩 출력 값만 서버(2000)로 제공하거나, 디바이스(1000)는 인코딩 출력 값 및 인코딩 정보만을 서버(2000)로 제공할 수 있다.
동작 S325에서 서버(2000)는 디코딩을 위한 도메인을 결정할 수 있다. 서버(2000)가 디바이스(1000)로부터 도메인 정보를 수신하는 경우에는, 서버(2000)는 도메인 정보로부터 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 또한, 서버(2000)가 디바이스(1000)로부터 도메인 정보를 수신하지 않는 경우에는, 서버(2000)는 서버(2000) 내의 도메인 식별 모듈(1450)을 이용하여, 인코더 출력 값의 도메인을 식별할 수 있다. 예를 들어, 서버(2000)는 디바이스(1000) 내의 인코더의 출력단에 연결된 프로젝션 레이어로부터 획득되는 텍스트를 디바이스(1000)로부터 수신하고, 수신된 텍스트를 이용하여 인코더의 출력 값에 관련된 도메인을 식별할 수 있다. 또는, 예를 들어, 서버(2000)는 디바이스(1000)로부터 수신되는 인코딩 정보를 이용하여, 인코더 출력 값에 소정의 프로젝션 레이어를 적용함으로써 텍스트를 획득하고, 획득된 텍스트를 이용하여 인코더의 출력 값에 관련된 도메인을 식별할 수 있다. 이 경우, 서버(2000)는 인코더의 출력 값으로부터 생성되는 텍스트의 도메인 신뢰도에 기초하여, 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 도메인 신뢰도는, 텍스트의 적어도 일부가 특정 도메인에 어느 정도 관련되었는지를 나타내는 수치일 수 있다. 예를 들어, 서버(2000)는 인코더 출력 값으로부터 획득되는 텍스트가 인코더 출력 값을 디코딩하기 위해 미리 등록된 도메인에 어느 정도 관련성이 있는 지를 나타내는 컨피던스 스코어를 산출할 수 있다. 또한, 서버(2000)는 미리 등록된 도메인에 대해 산출된 도메인 신뢰도에 기초하여, 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 서버(1000)는 룰 기반으로 인코더 출력 값에 관련된 도메인을 식별하거나 도메인 식별을 위해 훈련된 인공 지능 모델을 이용하여 인코더 출력 값에 관련된 도메인 신뢰도를 획득할 수 있다. 또한, 예를 들어, 도메인 식별을 위한 인공 지능 모델은 NLU 모델의 일부이거나, NLU 모델과는 별개의 모델일 수 있다. 또는, 예를 들어, 서버(2000)는 인코더 출력 값 및 인코더 출력 값의 포맷을 분석하고, 분석 결과에 기초하여 인코더 출력 값에 프로젝션 레이어를 적용함으로써 인코더 출력 값에 관련된 도메인을 식별할 수 있다.
동작 S330에서 서버(2000)는 인코더 종류 및 인코딩 정도를 식별할 수 있다. 서버(2000)가 디바이스(1000)로부터 인코딩 정보를 수신하는 경우에는, 서버(2000)는 인코딩 정보로부터 인코더 출력 값을 출력한 인코더의 종류 및 인코딩 정도를 식별할 수 있다. 또한, 서버(2000)가 디바이스(1000)로부터 인코딩 정보를 수신하지 않는 경우에는, 서버(2000)는 인코더 출력 값 및 인코더 출력 값의 포맷을 분석함으로써 인코더의 종류 및 인코딩 정도를 식별할 수 있다. 예를 들어, 서버(2000)는 도 14의 인코더 식별 모듈(2311)을 이용하여 인코더의 종류 및 인코딩 정도를 식별할 수 있다.
동작 S335에서 서버(2000)는 문자열 생성을 위한 디코더를 선택할 수 있다. 서버(2000)는 복수의 도메인에 관련된 디코더들을 포함할 수 있으며, 복수의 도메인들 중에서 인코더 출력 값에 관련된 적어도 하나의 도메인을 선택할 수 있다. 예를 들어, 서버(2000)는 동작 S325에서 식별된 도메인에 대응되는 도메인을 선택할 수 있다. 식별된 도메인에 대응되는 도메인은, 식별된 도메인과 동일한 도메인 또는 유사한 도메인일 수 있다. 예를 들어, 서버(2000) 내의 디코더들에 관련된 복수의 도메인이 "영화", "장소", "지역명"이며, 동작 S325에서 식별된 도메인 '영화'인 경우에, 서버(2000)는 "영화"를 선택할 수 있다. 예를 들어, 서버(2000) 내의 디코더들에 관련된 복수의 도메인이 "비디오 콘텐츠", "장소", "지역명"이며, 동작 S325에서 식별된 도메인 '영화'인 경우에, 서버(2000)는 "비디오 콘텐츠"를 선택할 수 있다. 이 경우, 서버(2000)의 도메인의 식별 값과 유사한 식별 값에 관한 정보가 서버(2000) 내에 저장되어 있을 수 있다.
또한, 서버(2000)는 선택된 도메인에 대응되는 복수의 디코더들 중에서 인코더 식별 값을 디코딩할 적어도 하나의 디코더를 선택할 수 있다. 서버(2000)는 동작 S330에서 식별된 인코더의 종류에 기초하여, 인코더 출력 값을 디코딩할 수 있는 적어도 하나의 디코더를 선택할 수 있다. 예를 들어, 식별된 인코더의 종류가 어텐션(attention) 기반의 종단간 ASR 모델에서 이용되는 인코더인 경우에, 서버(2000)는 어텐션 기반의 종단간 ASR 모델에서 이용되는 디코더를 선택할 수 있다. 또한, 예를 들어, 식별된 인코더의 종류가 RNN-T(recurrent neural network - transducer) 기반의 종단간 ASR 모델에서 이용되는 인코더인 경우에, 서버(2000)는 RNN-T 기반의 종단간 ASR 모델에서 이용되는 디코더를 선택할 수 있다. 하지만, 이에 제한되지 않으며, 서버(2000)는 기 설정된 기준에 따라 다양한 디코더를 선택할 수 있으며, 이 경우, 인코더 출력 값의 포맷을 선택된 디코더에 적합하도록 변환할 수도 있다. 예를 들어, 서버(2000)는 도 14의 디코더 선택 모듈(2313)을 이용하여 인코더의 종류 및 인코딩 정도를 식별할 수 있다.
동작 S340에서 서버(2000)는 선택된 디코더를 이용하여 인코더 출력 값으로부터 문자열을 생성할 수 있다. 서버(2000)는 인코더 출력 값을 선택된 디코더에 입력할 수 있으며, 디코더로부터 출력되는 디코더 출력 값에 기반하여 문자열을 획득할 수 있다. 이 경우, 서버(2000)는 인코더 출력 값의 포맷을 선택된 디코더에 적합하도록 전처리하고, 전처리된 값을 디코더에 입력할 수도 있다. 서버(2000)가 인코더 출력 값을 전처리하는 방법은 도 5에서 보다 상세히 설명하기로 한다.
서버(2000)가 복수의 디코더를 선택한 경우에, 서버(2000)는 인코더 출력 값을 복수의 디코더에 각각 입력함으로써, 각각의 디코더로부터 출력되는 출력 값들을 이용하여 복수의 문자열을 생성할 수 있다.
동작 S345에서 서버(2000)는 디바이스(1000)에게 문자열을 제공할 수 있다. 서버(2000)가 복수의 디코더들을 이용하여 복수의 문자열을 생성한 경우에는 복수의 문자열들의 신뢰도를 비교하고, 신뢰도가 높은 문자열을 디바이스(1000)에게 제공할 수 있다. 획득된 문자열의 신뢰도는, 획득된 문자열이 입력 음성에 일치하는 정도를 나타내는 수치일 수 있으며 예를 들어, 컨피던스 스코어(confidence score)를 포함할 수 있으나, 이에 제한되지 않는다.
동작 S315에서 인코더 출력 값을 서버(2000)로 전송하지 않을 것을 결정한 경우, 동작 S350에서 디바이스(1000)는 인코더 출력 값을 디바이스(1000) 내의 디코더로 제공하고, 동작 S355에서 디바이스(1000)는 디코더를 이용하여 인코더 출력 값으로부터 문자열을 획득할 수 있다.
동작 S360에서 디바이스(1000)는 도메인을 디바이스(1000)에 등록할 수 있다. 디바이스(1000)는 특정 도메인을 디바이스(1000)에 등록하고, 등록 이후에 생성되는 인코더 출력 값이 등록된 도메인에 관련되었다고 판단되면, 등록 이후에 생성된 인코더 출력 값을 서버(2000)로 전송하지 않고 디바이스(1000) 내의 디코더를 이용하여 처리할 수 있다. 예를 들어, 디바이스(1000)는 도 14의 도메인 등록 모듈(1460)을 이용하여 도메인을 등록할 수 있다.
도메인의 등록을 위하여, 예를 들어, 디바이스(1000)는 서버(2000)로부터 수신된 문자열을 평가하고, 평가 결과에 기초하여, 평가된 문자열에 관련된 도메인을 디바이스(1000)에 등록할 수 있다. 디바이스(1000)는 인코더 출력 값으로부터 텍스트를 획득하고, 획득된 텍스트를 서버(2000)로부터 수신된 문자열과 비교함으로써, 서버(2000)로부터 수신된 문자열을 평가할 수 있다. 또한, 특정 도메인의 인코더 출력 값으로부터 획득된 텍스트 및 서버(2000)로부터 수신된 문자열이 소정 횟수 이상 일치하는 경우에, 특정 도메인을 디바이스(1000)에 등록할 수 있다.
또는, 예를 들어, 디바이스(1000)는 인코더 출력 값의 신뢰도 및 인코더 출력 값에 관련된 도메인을 식별하고, 식별된 도메인에 관련된 인코더 출력 값들의 신뢰도들이 소정 임계치 이상인 경우 디바이스(1000)는 식별된 도메인을 디바이스(1000)에 등록할 수 있다.
한편, 도 3에서는 디바이스(1000)가 서버(2000)에게 문자열을 요청하고 서버(2000)가 디바이스(1000)에게 문자열을 제공하는 것으로 설명되었지만, 이에 제한되지 않는다. 서버(2000)는 동작 S340에서 획득된 문자열을 이용하여 디바이스(1000)에게 다양한 종류의 보이스 어시스턴트 서비스를 제공할 수 있다. 보이스 어시스턴트 서비스는, 사용자와의 대화를 제공하는 서비스일 수 있다. 보이스 어시스턴트 서비스에서는 사용자의 상황, 디바이스의 상황 등을 고려하여 사람이 사용자와 직접 대화하는 것처럼 사용자에게 응답 메시지를 제공할 수 있다. 또한, 보이스 어시스턴트 서비스에서는, 사용자의 개인 비서처럼 사용자가 필요한 정보가 적절하게 생성되어 사용자에게 제공될 수 있다. 보이스 어시스턴트 서비스는, 예를 들어, 방송 서비스, 콘텐트 공유 서비스, 콘텐트 제공 서비스, 전력 관리 서비스, 게임 제공 서비스, 채팅 서비스, 문서 작성 서비스, 검색 서비스, 통화 서비스, 사진 촬영 서비스, 교통 수단 추천 서비스 및 동영상 재생 서비스 등과 같은 다양한 서비스와 연계되어, 사용자가 필요한 정보 또는 기능을 사용자에게 제공할 수 있다.
이 경우, 서버(2000)는 문자열에 기초하여 보이스 어시스턴트 서비스를 제공하기 위하여, 서버(2000) 내의 NLU (Natural Language Understanding) 모델, DM (Dialog Mananer) 모델 및 NLG (Natural Language Generating) 모델 등을 이용하여, 사용자와의 대화를 수행하기 위한 정보를 디바이스(1000)에게 제공할 수 있다. 또한, 서버(2000)는 문자열을 해석한 결과를 바탕으로, 다른 디바이스(1000)를 직접 제어할 수 있다. 또한, 서버(2000)는 문자열을 해석한 결과를 바탕으로, 디바이스(1000)가 다른 디바이스(1000)를 제어하도록 하기 위한 제어 정보를 생성하고, 생성된 제어 정보를 디바이스(1000)에게 제공할 수도 있다.
도 4는 본 개시의 일 실시예에 따른 디바이스가 인코더의 복수의 레이어로부터 출력된 출력 값들을 서버로 전송하는 방법의 흐름도이다.
디바이스(1000)는 디바이스(1000)의 메모리에 저장된 인스트럭션들을 실행함으로써 도 4에서의 디바이스(1000)의 동작을 실행할 수 있다. 예를 들어, 디바이스(1000)는 후술할 도 14의 음성 인식 평가 모듈(1430), 도메인 식별 모듈(1440), ASR 모델(1410), NLU 모델(1420) 중 적어도 하나를 실행함으로써 도 4에서의 디바이스(1000)의 동작을 수행할 수 있다. 하지만, 이에 제한되지 않으며, 디바이스(1000)는 디바이스(1000)의 소정 동작을 수행하기 위해 메모리에 저장된 다른 프로그램을 실행할 수도 있다.
동작 S400에서 디바이스(1000)는 인코더의 제1 레이어로부터 제1 인코더 출력 값을 획득할 수 있다. 인코더의 제1 레이어는 인코더 내의 복수의 적층된 LSTM 레이어들 중 하나일 수 있으며, 제1 인코더 출력 값은 제1 레이어로부터 출력되는 히든 레이어 벡터일 수 있다.
동작 S405에서 디바이스(1000)는 제1 인코더 출력 값의 신뢰도를 획득할 수 있다. 디바이스(1000)는 제1 레이어의 출력단에 연결된 프로젝션 레이어를 이용하여, 제1 레이어로부터 출력된 제1 인코더 출력 값으로부터 텍스트를 획득할 수 있다. 또한, 디바이스(1000)는 획득된 텍스트를 기반으로 제1 인코더 출력 값의 신뢰도를 산출할 수 있다. 제1 인코더 출력 값의 신뢰도는 제1 인코더 출력 값이 입력 음성에 매칭되는 정도를 나타내는 수치일 수 있으며 예를 들어, 컨피던스 스코어(confidence score)를 포함할 수 있으나, 이에 제한되지 않는다.
동작 S410에서 디바이스(1000)는 제1 인코더 출력 값을 서버(2000)로 전송할 지를 결정할 수 있다. 디바이스(1000)는 제1 인코더 출력 값의 신뢰도를 소정 임계치와 비교할 수 있으며, 비교 결과에 기초하여 제1 인코더 출력 값을 서버(2000)로 전송할 지를 결정할 수 있다.
또한, 디바이스(1000)는 제1 인코더 출력 값에 관련된 도메인이 디바이스(1000)에 등록된 도메인에 해당되는 지를 식별하고, 제1 인코더 출력 값에 관련된 도메인이 등록된 도메인에 해당되지 않는 경우에, 제1 인코더 출력 값을 서버(2000)로 전송할 지를 결정할 수 있다.
동작 S410에서 디바이스(1000)가 제1 인코더 출력 값을 서버(2000)로 전송하기로 결정한 경우에, 동작 S415에서 디바이스(1000)는 제1 인코더 출력 값을 서버(2000)로 전송할 수 있다. 이 경우, 서버(2000)는 종단간 ASR 모델의 인코더 및 디코더를 모두 가지고 있을 수 있으며, 서버(2000)로 전송된 제1 인코더 출력 값은 서버(2000) 내의 인코더의 제1 레이어의 출력단에 입력될 수 있다.
동작 S410에서 디바이스(1000)가 제1 인코더 출력 값을 서버(2000)로 전송하지 않기로 결정한 경우에, 동작 S420에서 디바이스(1000)는 인코더의 제2 레이어로부터 제2 인코더 출력 값을 획득할 수 있다. 인코더의 제2 레이어는 인코더 내의 복수의 적층된 LSTM 레이어들 중 하나일 수 있으며, 제1 레이어 이후의 레이어일 수 있다. 또한, 제2 인코더 출력 값은 제2 레이어로부터 출력되는 히든 레이어 벡터일 수 있다.
동작 S425에서 디바이스(1000)는 제2 인코더 출력 값의 신뢰도를 획득할 수 있다. 디바이스(1000)는 제2 레이어의 출력단에 연결된 프로젝션 레이어를 이용하여, 제1 레이어로부터 출력된 제2 인코더 출력 값으로부터 텍스트를 획득할 수 있다. 또한, 디바이스(1000)는 획득된 텍스트를 기반으로 제2 인코더 출력 값의 신뢰도를 산출할 수 있다. 제2 인코더 출력 값의 신뢰도는 제2 인코더 출력 값이 입력 음성에 매칭되는 정도를 나타내는 수치일 수 있으며 예를 들어, 컨피던스 스코어(confidence score)를 포함할 수 있으나, 이에 제한되지 않는다.
동작 S430에서 디바이스(1000)는 제2 인코더 출력 값을 서버(2000)로 전송할 지를 결정할 수 있다. 디바이스(1000)는 제2 인코더 출력 값의 신뢰도를 소정 임계치와 비교할 수 있으며, 비교 결과에 기초하여 제2 인코더 출력 값을 서버(2000)로 전송할 지를 결정할 수 있다.
또한, 디바이스(1000)는 제2 인코더 출력 값에 관련된 도메인이 디바이스(1000)에 등록된 도메인에 해당되는 지를 식별하고, 제2 인코더 출력 값에 관련된 도메인이 등록된 도메인에 해당되지 않는 경우에, 제2 인코더 출력 값을 서버(2000)로 전송할 지를 결정할 수 있다.
동작 S430에서 디바이스(1000)가 제2 인코더 출력 값을 서버(2000)로 전송하기로 결정한 경우에, 동작 S435에서 디바이스(1000)는 1 인코더 출력 값을 서버(2000)로 전송할 수 있다. 이 경우, 서버(2000)는 종단간 ASR 모델의 인코더 및 디코더를 모두 가지고 있을 수 있으며, 서버(2000)로 전송된 제2 인코더 출력 값은 서버(2000) 내의 인코더의 제2 레이어의 출력단에 입력될 수 있다.
도 5는 본 개시의 일 실시예에 따른 서버가 선택된 디코더에 인코더 출력 값을 입력하는 방법의 흐름도이다.
서버(2000)는 서버(2000)의 저장부에 저장된 인스트럭션들을 실행함으로써 도 5에서의 서버(2000)의 동작을 실행할 수 있다. 예를 들어, 서버(2000)는 후술할 도 13의 출력 값 변환 모듈(2314)를 실행함으로써 도 5에서의 서버(2000)의 동작을 수행할 수 있다.
동작 S500에서 서버(2000)는 선택된 디코더에 따라 인코더 출력 값의 포맷을 변환할 수 있다. 인코더 출력 값의 포맷과 동작 S335에서 선택된 디코더에 입력될 입력 값의 포맷이 서로 상이한 경우에, 서버(2000)는 디바이스(1000)로부터 수신된 인코더 출력 값의 포맷을 변환할 수 있다. 이 경우, 서버(2000)는 인코더 출력 값을 선택된 디코더에 호환되도록 변환하기 위한 툴을 이용하여 인코더 출력 값의 포맷을 변환할 수 있다. 이 경우, 다양한 포맷의 인코더 출력 값이 다양한 종류의 디코더에 입력되도록 하기 위하여, 서버(2000)는 복수 종류의 인코더 및 복수 종류의 디코더의 각각의 조합에 대응되는 변환 툴들을 저장할 수 있다. 예를 들어, n 종류의 인코더 출력 값을 m 종류의 디코더에 입력되도록 하기 위하여, 서버(2000)는 n x m 종류의 데이터 변환을 할 수 있는 적어도 하나의 변환 툴을 저장할 수 있다.
동작 S510에서 서버(2000)는 변환된 인코더 출력 값을 선택된 디코더에 입력할 수 있다. 서버(2000)는 변환된 인코더 출력 값으로부터 디코더로부터 출력되는 디코더 출력 값을 이용하여 문자열을 획득할 수 있다.
도 6(a)는 본 개시의 일 실시예에 따른 서버가 인코더 출력 값을 처리하기 위하여 특정 도메인의 하나의 디코더를 선택하는 예시를 나타내는 도면이다.
도 6(a)를 참조하면, 디바이스(1000)의 제1 타입의 인코더(60)로부터 출력된 인코더 출력 값이 서버(2000) 내의 인코더 식별 모듈(2311)에게 제공될 수 있다. 서버(2000)의 인코더 식별 모듈(2311)은 인코더 출력 값을 수신하고, 인코더 출력 값을 출력한 제1 타입의 인코더(60)의 타입을 식별할 수 있다. 디바이스(1000)가 서버(2000)에게 인코딩 정보를 제공하는 경우에는, 인코더 식별 모듈(2311)은 디바이스(1000)로부터 제공된 인코딩 정보에 기초하여 제1 타입의 인코더(60)의 타입이 제1 타입임을 식별할 수 있다. 또는, 디바이스(1000)가 서버(2000)에게 인코딩 정보를 제공하지 않는 경우에는, 인코더 식별 모듈(2311)은 디바이스(1000)로부터 제공된 인코더 출력 값 및 인코더 출력 값의 포맷을 분석하여 제1 타입의 인코더(60)의 타입이 제1 타입임을 식별할 수 있다.
서버(2000)의 도메인 식별 모듈(2312)은 디바이스(1000)로부터 제공된 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 디바이스(1000)가 서버(2000)에게 도메인 정보를 제공하는 경우에는, 도메인 식별 모듈(2312)은 디바이스(1000)로부터 제공된 도메인 정보에 기초하여 인코더 출력 값이 제1 도메인에 관련되었음을 식별할 수 있다. 또는, 디바이스(1000)가 서버(2000)에게 도메인 정보를 제공하지 않는 경우에는, 도메인 식별 모듈(2312)은 디바이스(1000)로부터 제공된 인코더 출력 값을 이용하여 인코더 출력 값이 관련된 도메인이 제1 도메인임을 식별할 수 있다. 도메인 식별 모듈(2312)은, 예를 들어, 인코더 출력 값 및 인코더 출력 값의 포맷에 적합한 프로젝션 레이어를 인코더 출력 값에 적용함으로써, 프로젝션 레이어로부터 텍스트를 획득하고 획득된 텍스트로부터 인코더 출력 값이 관련된 도메인이 제1 도메인임을 식별할 수 있다. 이 경우, 서버(2000)는 인코더의 출력 값으로부터 생성되는 텍스트의 도메인 신뢰도에 기초하여, 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 예를 들어, 서버(2000)는 인코더 출력 값으로부터 획득되는 텍스트가 제1 도메인 및 제2 도메인 각각에 어느 정도 관련성이 있는 지를 나타내는 도메인 신뢰도들을 산출할 수 있다. 또한, 예를 들어, 서버(2000)는 제1 도메인 및 제2 도메인에 대해 각각 산출된 도메인 신뢰도를 비교하여, 인코더 출력 값에 관련된 도메인이 제1 도메인임을 식별할 수 있다.
서버(2000)의 디코더 선택 모듈(2313)은 인코더 출력 값을 디코딩할 디코더를 선택할 수 있다. 디코더 선택 모듈(2313)은 인코더 식별 모듈(2311)에 의해 식별된 인코더 출력 값의 타입 및 도메인 식별 모듈(2312)에 의해 식별된 도메인에 기초하여, 서버(2000) 내의 복수의 디코더들(61, 62, 63, 64) 중에서 제1 도메인의 제1 타입의 디코더(61)를 선택할 수 있다.
인코더 출력 값은 제1 타입의 디코더(61)에 입력되며, 서버(2000)는 제1 타입의 디코더(61)로부터 출력된 출력 값에 기초하여 문자열을 획득할 수 있다. 또한, 서버(2000)는 획득된 문자열을 디바이스(1000)에게 제공할 수 있다.
도 6(b)는 본 개시의 일 실시예에 따른 서버가 인코더 출력 값을 처리하기 위하여 특정 도메인의 복수의 디코더를 선택하는 예시를 나타내는 도면이다.
도 6(b)를 참조하면, 디바이스(1000)의 제1 타입의 인코더(60)로부터 출력된 인코더 출력 값이 서버(2000) 내의 도메인 식별 모듈(2312)에게 제공될 수 있다. 도메인 식별 모듈(2312)은 디바이스(1000)로부터 제공된 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 디바이스(1000)가 서버(2000)에게 도메인 정보를 제공하는 경우에는, 도메인 식별 모듈(2312)은 디바이스(1000)로부터 제공된 도메인 정보에 기초하여 인코더 출력 값이 제1 도메인에 관련되었음을 식별할 수 있다. 또는, 디바이스(1000)가 서버(2000)에게 도메인 정보를 제공하지 않는 경우에는, 도메인 식별 모듈(2312)은 디바이스(1000)로부터 제공된 인코더 출력 값을 이용하여 인코더 출력 값이 관련된 도메인이 제1 도메인임을 식별할 수 있다. 도메인 식별 모듈(2312)은, 예를 들어, 인코더 출력 값 및 인코더 출력 값의 포맷에 적합한 프로젝션 레이어를 인코더 출력 값에 적용함으로써, 프로젝션 레이어로부터 텍스트를 획득하고 획득된 텍스트로부터 인코더 출력 값이 관련된 도메인이 제1 도메인임을 식별할 수 있다. 이 경우, 서버(2000)는 인코더의 출력 값으로부터 생성되는 텍스트의 도메인 신뢰도에 기초하여, 인코더 출력 값에 관련된 도메인을 식별할 수 있다.
서버(2000)의 디코더 선택 모듈(2313)은 인코더 출력 값을 디코딩할 디코더를 선택할 수 있다. 디코더 선택 모듈(2313)은 도메인 식별 모듈(2312)에 의해 식별된 도메인에 기초하여, 서버(2000) 내의 복수의 디코더들(61, 62, 63, 64) 중에서 제1 도메인의 제1 타입의 디코더(61) 및 제1 도메인의 제2 타입의 디코더(62)를 선택할 수 있다.
인코더 출력 값은 제1 타입의 디코더(61)에 입력되며, 서버(2000)는 제1 타입의 디코더(61)로부터 출력된 출력 값에 기초하여 제1 문자열을 획득할 수 있다. 또한, 인코더 출력 값은 제2 타입의 디코더(62)에 적합한 포맷으로 변환되고, 포맷이 변환된 인코더 출력 값이 제2 타입의 디코더(62)에 입력되고, 서버(2000)는 제2 타입의 디코더(62)로부터 출력된 출력 값에 기초하여 제2 문자열을 획득할 수 있다.
서버(2000)는 제1 문자열 및 제2 문자열의 신뢰도를 비교하고, 신뢰도가 높은 문자열을 선택하여 디바이스(1000)에게 제공할 수 있다. 문자열의 신뢰도는, 획득된 문자열이 입력 음성에 일치하는 정도를 나타내는 수치일 수 있으며 예를 들어, 컨피던스 스코어(confidence score)를 포함할 수 있으나, 이에 제한되지 않는다.
도 6(c)는 본 개시의 일 실시예에 따른 서버가 인코더 출력 값을 처리하기 위하여 복수의 도메인의 복수의 디코더를 선택하는 예시를 나타내는 도면이다.
도 6(c)를 참조하면, 디바이스(1000)의 제1 타입의 인코더(60)로부터 출력된 인코더 출력 값이 서버(2000) 내의 디코더 선택 모듈(2313)에게 제공될 수 있다. 서버(2000)의 디코더 선택 모듈(2313)은 인코더 출력 값을 디코딩할 디코더를 선택할 수 있다. 디코더 선택 모듈(2313)은 서버(2000) 내의 복수의 도메인의 복수의 디코더들(61, 62, 63, 64)을 선택할 수 있다.
인코더 출력 값은 제1 도메인의 제1 타입의 디코더(61)에 입력되며, 서버(2000)는 제1 도메인의 제1 타입의 디코더(61)로부터 출력된 출력 값에 기초하여 제1 문자열을 획득할 수 있다. 또한, 인코더 출력 값은 제1 도메인의 제2 타입의 디코더(62)에 적합한 포맷으로 변환되고, 포맷이 변환된 인코더 출력 값이 제1 도메인의 제2 타입의 디코더(62)에 입력되고, 서버(2000)는 제2 도메인의 제2 타입의 디코더(62)로부터 출력된 출력 값에 기초하여 제2 문자열을 획득할 수 있다.
또한, 인코더 출력 값은 제2 도메인의 제1 타입의 디코더(63)에 입력되며, 서버(2000)는 제2 도메인의 제1 타입의 디코더(63)로부터 출력된 출력 값에 기초하여 제3 문자열을 획득할 수 있다. 또한, 인코더 출력 값은 제2 도메인의 제2 타입의 디코더(64)에 적합한 포맷으로 변환되고, 포맷이 변환된 인코더 출력 값이 제2 도메인의 제2 타입의 디코더(64)에 입력되고, 서버(2000)는 제2 도메인의 제2 타입의 디코더(64)로부터 출력된 출력 값에 기초하여 제4 문자열을 획득할 수 있다.
서버(2000)는 제1 문자열, 제2 문자열, 제3 문자열 및 제4 문자열의 신뢰도를 비교하고, 신뢰도가 높은 문자열을 선택하여 디바이스(1000)에게 제공할 수 있다.
도 6(d)는 본 개시의 일 실시예에 따른 디바이스의 인코더와 동일한 타입의 디코더가 서버 내에 없는 경우에, 서버가 인코더 출력 값을 처리하기 위하여 다른 타입의 디코더를 선택하는 예시를 나타내는 도면이다.
도 6(d)를 참조하면, 서버(2000)는 디바이스(1000)의 제1 타입의 인코더(60)과 동일한 타입의 디코더를 포함하지 않을 수 있다. 이 경우, 디코더 선택 모듈(2313)은 서버(2000) 내의 복수의 도메인의 복수의 디코더들(65, 66, 67, 68, 69, 70) 중에서 제1 타입의 인코더(60)로부터 출력된 인코더 출력 값을 처리할 디코더를 선택할 수 있다. 예를 들어, 서버(2000)는 제1 타입의 인코더(60)와 상이한 타입의 디코더인 제3 타입의 디코더(65) 및 제4 타입의 디코더(66)을 선택할 수 있다.
이에 따라, 인코더 출력 값은 제3 타입의 디코더(65)에 적합한 포맷으로 변환되고, 포맷이 변환된 인코더 출력 값이 제3 타입의 디코더(65)에 입력되고, 서버(2000)는 제3 타입의 디코더(65)로부터 출력된 출력 값에 기초하여 제5 문자열을 획득할 수 있다. 또한, 인코더 출력 값은 제4 타입의 디코더(66)에 적합한 포맷으로 변환되고, 포맷이 변환된 인코더 출력 값이 제4 타입의 디코더(66)에 입력되고, 서버(2000)는 제4 타입의 디코더(66)로부터 출력된 출력 값에 기초하여 제6 문자열을 획득할 수 있다. 서버(2000)는 제5 문자열 및 제6 문자열의 신뢰도를 비교하고, 신뢰도가 높은 문자열을 선택하여 디바이스(1000)에게 제공할 수 있다.
도 7(a)는 디바이스 및 서버가 어텐션 기반의 ASR 모델들을 각각 포함하는 경우에 디바이스와 서버가 음성 신호로부터 문자열을 획득하는 예시를 나타내는 도면이다.
도 7(a)를 참조하면, 디바이스(1000) 및 서버(2000)는 각각 어텐션 기반의 ASR 모델을 포함할 수 있다. 어텐션 기반의 ASR 모델은 재귀 신경망을 포함하는 인코더와 디코더를 포함할 수 있다. ASR 모델의 인코더는 음성 신호의 특징 벡터로부터 인코더가 프레임마다 출력을 계산할 수 있으며, 디코더는 어떤 프레임에 대한 인코더 출력 값에 주목(attention)할지 계산하여 주목도에 따라 인코더 출력 값을 선택하고, 선택된 인코더 출력 값을 입력으로 사용하여 문자열을 추정할 수 있다.
디바이스(1000)의 어텐션 기반의 ASR 모델의 인코더는 복수의 적층된 LSTM 레이어들을 포함할 수 있으며, 디바이스(1000)는 디바이스(1000)의 어텐션 기반의 ASR 모델의 인코더 내의 마지막 LSTM 레이어(71)로부터 출력된 인코더 출력 값인 히든 레이어 벡터를 서버(2000)로 제공할 수 있다. 또한, 서버(2000)의 디바이스(1000)로부터 수신된 히든 레이어 벡터를 서버(2000)의 어텐션 기반의 ASR 모델의 인코더 내의 마지막 LSTM 레이어(73)의 출력 단에 입력할 수 있다.
또는, 디바이스(1000)는 디바이스(1000)의 어텐션 기반의 ASR 모델의 인코더 내의 LSTM 레이어(72)로부터 출력된 인코더 출력 값인 히든 레이어 벡터를 서버(2000)로 제공할 수 있다. 또한, 서버(2000)의 디바이스(1000)로부터 수신된 히든 레이어 벡터를 서버(2000)의 어텐션 기반의 ASR 모델의 인코더 내의 LSTM 레이어(74)의 출력 단에 입력할 수 있다. 서버(2000)의 어텐션 기반의 ASR 모델의 인코더 내의 LSTM 레이어(74)는 디바이스(1000)의 어텐션 기반의 ASR 모델의 인코더 내의 LSTM 레이어(72)에 대응되는 레이어일 수 있다.
또한, 서버(2000)는 디바이스(1000)로부터 수신된 히든 레이어 벡터를 이용하여 어텐션 기반의 ASR 모델로부터 출력되는 문자열을 디바이스(1000)에게 제공할 수 있다. 서버(2000)는 디바이스(1000)로부터 수신된 히드 레이어 벡터에 관련된 도메인을 식별하고, 서버(2000) 내의 복수의 어텐션 기반의 ASR 모델들 중에서 식별된 도메인에 대응되는 어텐션 기반의 ASR 모델을 선택할 수 있다. 또한, 서버(2000)는 선택된 어텍션 기반의 ASR 모델에, 디바이스(1000)로부터 수신된 히든 레이어 벡터를 입력함으로써 문자열을 출력 값으로 획득할 수 있다.
도 7(b)는 디바이스 및 서버가 RNN-T 기반의 ASR 모델들을 각각 포함하는 경우에 디바이스와 서버가 음성 신호로부터 문자열을 획득하는 예시를 나타내는 도면이다.
도 7(b)를 참조하면, 디바이스(1000) 및 서버(2000)는 각각 RNN-T 기반의 ASR 모델을 포함할 수 있다. RNN-T ASR 모델에서는, 인코더 출력 값을 언어 모델로 후처리하는 효과를 얻을 수 있도록 예측 네트워크(prediction network)가 인코더에 연결될 수 있다.
디바이스(1000)의 RNN-T 기반의 ASR 모델의 인코더는 복수의 적층된 LSTM 레이어들을 포함할 수 있으며, 디바이스(1000)는 디바이스(1000)의 RNN-T 기반의 ASR 모델의 인코더 내의 마지막 LSTM 레이어(75)로부터 출력된 인코더 출력 값인 히든 레이어 벡터를 서버(2000)로 제공할 수 있다. 또한, 서버(2000)의 디바이스(1000)로부터 수신된 히든 레이어 벡터를 서버(2000)의 RNN-T 기반의 ASR 모델의 인코더 내의 마지막 LSTM 레이어(77)의 출력 단에 입력할 수 있다.
또는, 디바이스(1000)는 디바이스(1000)의 RNN-T 기반의 ASR 모델의 인코더 내의 LSTM 레이어(76)으로부터 출력된 인코더 출력 값인 히든 레이어 벡터를 서버(2000)로 제공할 수 있다. 또한, 서버(2000)의 디바이스(1000)로부터 수신된 히든 레이어 벡터를 서버(2000)의 RNN-T 기반의 ASR 모델의 인코더 내의 LSTM 레이어(78)의 출력 단에 입력할 수 있다. 서버(2000)의 RNN-T 기반의 ASR 모델의 인코더 내의 LSTM 레이어(76)는 디바이스(1000)의 RNN-T 기반의 ASR 모델의 인코더 내의 LSTM 레이어(78)에 대응되는 레이어일 수 있다.
또한, 서버(2000)는 디바이스(1000)로부터 수신된 히든 레이어 벡터를 이용하여 ASR 모델로부터 출력되는 문자열을 디바이스(1000)에게 제공할 수 있다. 서버(2000)는 디바이스(1000)로부터 수신된 히드 레이어 벡터에 관련된 도메인을 식별하고, 서버(2000) 내의 복수의 RNN-T 기반의 ASR 모델들 중에서 식별된 도메인에 대응되는 RNN-T 기반의 ASR 모델을 선택할 수 있다. 또한, 서버(2000)는 선택된 RNN-T 기반의 ASR 모델에, 디바이스(1000)로부터 수신된 히든 레이어 벡터를 입력함으로써 문자열을 출력 값으로 획득할 수 있다.
도 8(a)는 본 개시의 일 실시예에 따른 서버에 어텐션 기반의 ASR 모델들의 인코더들이 포함되지 않는 경우에 디바이스와 서버가 음성 신호로부터 문자열을 획득하는 예시를 나타내는 도면이다.
도 8(a)를 참조하면, 디바이스(1000)는 어텐션 기반의 ASR 모델의 인코더 및 디코더를 모두 포함할 수 있으며, 서버(2000)는 어텐션 기반의 ASR 모델의 디코더들만 포함할 수 있다. 예를 들어, 서버(2000)는 어텐션 기반의 ASR 모델의 디코더들로서, 도메인 A에 대응되는 디코더 및 도메인 B에 대응되는 디코더를 포함할 수 있다. 이에 따라, 디바이스(1000)의 어텐션 기반의 ASR 모델의 인코더의 출력 값이 서버(2000)의 도메인 A에 대응되는 디코더 및 도메인 A에 대응되는 디코더 중 적어도 하나에게 제공될 수 있다.
도 8(b)는 본 개시의 일 실시예에 따른 서버에 RNN-T 기반의 ASR 모델들의 인코더들이 포함되지 않는 경우에 디바이스와 서버가 음성 신호로부터 문자열을 획득하는 예시를 나타내는 도면이다.
도 8(b)를 참조하면, 디바이스(1000)는 RNN-T 기반의 ASR 모델의 인코더 및 디코더를 모두 포함할 수 있으며, 서버(2000)는 RNN-T 기반의 ASR 모델의 디코더들만 포함할 수 있다. 예를 들어, 서버(2000)는 RNN-T 기반의 ASR 모델의 디코더들로서, 도메인 A에 대응되는 디코더 및 도메인 B에 대응되는 디코더를 포함할 수 있다. 이에 따라, 디바이스(1000)의 RNN-T 기반의 ASR 모델의 인코더의 출력 값이 서버(2000)의 도메인 A에 대응되는 디코더 및 도메인 A에 대응되는 디코더 중 적어도 하나에게 제공될 수 있다.
도 9는 본 개시의 일 실시예에 따른 디바이스와 서버가 음성 입력에 대한 음성 인식 및 NLU 처리를 수행하는 방법을 나타내는 도면이다.
도 9를 참조하면, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값을 이용할지를 결정할 수 있으며, 디바이스(1000)에서 NLU 처리를 할지를 결정할 수 있다.
디바이스(1000)는, 디바이스(1000)의 ASR 모델의 인코더 출력 값에 기초하여, 디바이스(1000)의 ASR 모델의 출력 값을 이용할 것인지를 판단할 수 있다(900). 디바이스(1000)는 인코딩된 출력 값의 신뢰도를 획득하고, 인코더 출력 값의 신뢰도를 기설정된 임계치와 비교함으로써, ASR 모델의 출력 값을 이용할 것인지를 결정할 수 있다. 디바이스(1000)는 인코더 출력 값의 신뢰도가 기설정된 임계치 이상이면, ASR 모델의 출력 값을 이용할 것을 결정할 수 있다. 또한, 디바이스(1000)는 인코더 출력 값의 신뢰도가 기설정된 임계치보다 작으면, ASR 모델의 출력 값을 이용하지 않을 것을 결정할 수 있다. 인코더 출력 값에 대한 신뢰도는, 인코더 출력 값이 나타내는 텍스트가 입력 음성에 일치하는 정도를 나타낼 수 있다. 예를 들어, 디바이스(1000)의 ASR 모델의 인코더가 훈련될 때, CTC (connectionist temporal classification) Loss가 함께 사용될 수 있는데, 이 경우 인코더의 출력단에 프로젝션 레이어(projection Layer)가 연결됨으로써, 프로젝션 레이어로부터 텍스트가 획득될 수 있다. 또한, 디바이스(1000)는 인코더의 출력단에 연결된 프로젝션 레이어로부터 획득되는 텍스트를 기반으로 인코더 출력 값의 신뢰도를 산출할 수 있다. 하지만, 신뢰도의 산출 방법은 이에 제한되지 않으면, 예를 들어, 디바이스(1000)는 기설정된 알고리즘을 이용하여 인코더의 출력 값으로부터 신뢰도를 바로 산출할 수도 있다. 또한, 예를 들어, 인코더 출력 값의 신뢰도는 도 14의 음성 인식 평가 모듈(1430)에 의해 산출될 수 있다.
또는, 디바이스(1000)는, 디바이스(1000)의 ASR 모델의 출력 값에 기초하여, 디바이스(1000)의 ASR 모델의 출력 값을 이용할 것인지를 판단할 수 있다(900). 디바이스(1000)의 ASR 모델의 출력 값은, 예를 들어, 음성 신호의 특징 벡터로부터 생성된 적어도 하나의 문자열일 수 있다. 디바이스(1000)의 ASR 모델의 출력 값은, 디바이스(1000)의 ASR 모델 내의 인코더(1411)로부터 출력된 인코더 출력 값을 디바이스(1000)의 ASR 모델 내의 디코더(1412)를 이용하여 디코딩함으로써 획득되는 문자열일 수 있다. 디바이스(1000)는 ASR 모델의 출력 값의 신뢰도를 기반으로, ASR 모델의 출력 값을 보이스 어시스턴트 서비스를 위하여 이용할 수 있는 지를 판단할 수 있다. ASR 모델의 출력 값의 신뢰도는, 예를 들어, ASR 모델로부터 출력된 문자열이 입력 음성에 일치하는 정도를 나타낼 수 있다.
디바이스(1000)가 디바이스(1000)의 ASR 모델의 출력 값을 이용하지 않기로 결정하는 경우에, 디바이스(1000)는 디바이스(1000)의 ASR 모델 내의 인코더의 출력 값을 서버(2000)에게 제공할 수 있다. 예를 들어, 디바이스(1000)는 인코더 내의 히든 레이어로부터 출력된 히든 벡터 또는 히든 벡터로부터 생성된 문자소(grapheme)들을 서버(2000)에게 제공할 수 있다.
이후, 서버(2000)의 ASR 모델(905)은 디바이스(1000)로부터 수신된 인코더 출력 값을 이용하여 서버(2000)의 ASR 모델(905)의 출력 값을 획득할 수 있다. 서버(2000)는 디바이스(1000)로부터 수신된 인코더 출력 값을 서버(2000)의 ASR 모델(905)의 디코더에 입력할 수 있다. 예를 들어, 서버(2000)는, 도 3의 동작 S325 내지 S340에서와 같이, 인코더 출력 값으로부터 문자열을 생성할 수 있다. 또한, 서버(2000)는 서버(2000)의 ASR 모델(905)의 출력 값을 서버(2000)의 NLU 모델(910)로 제공할 수 있다.
한편, 디바이스(1000)가 디바이스(1000)의 ASR 모델의 출력 값을 이용하기로 결정하는 경우에, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값을 이용하여 디바이스(1000)에서 NLU 처리를 수행할 것인지를 판단할 수 있다(915). 예를 들어, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값의 도메인 신뢰도에 기초하여 디바이스(1000)에서 NLU 처리를 수행할 것인지를 판단할 수 있다. 도메인 신뢰도는, 문자열이 특정 도메인에 어느 정도 관련되었는지를 나타내는 수치일 수 있다. 디바이스(1000)는 ASR 모델의 출력 값이 NLU 처리를 위해 미리 등록된 도메인에 어느 정도 관련성이 있는 지를 나타내는 도메인 신뢰도를 산출하고, 미리 등록된 도메인에 대해 산출된 도메인 신뢰도에 기초하여, 디바이스(1000)에서 NLU 처리를 수행할 지를 결정할 수 있다. 예를 들어, 디바이스(1000)는 기 등록된 복수의 도메인 각각에 대하여, ASR 모델의 출력 값이 도메인에 관련된 정도를 나타내는 컨피던스 스코어를 획득하고, 획득된 컨피던스 스코어에 기초하여 디바이스(1000)에서 NLU 처리를 수행할 지를 결정할 수 있다. 디바이스(1000)는 룰 기반으로 ASR 모델의 출력 값에 관련된 도메인을 식별하거나 도메인 식별을 위해 훈련된 인공 지능 모델을 이용하여 ASR 모델의 출력 값에 관련된 도메인 신뢰도를 획득할 수 있다. 또한, 예를 들어, 도메인 식별을 위한 인공 지능 모델은 NLU 모델의 일부이거나, NLU 모델과는 별개의 모델일 수 있다. 또한, 예를 들어, ASR 모델의 출력 값의 도메인 신뢰도는 도 14의 도메인 식별 모듈(1450)에 의해 산출될 수 있다.
디바이스(1000)가 디바이스(1000)의 ASR 모델의 출력 값을 이용하여 디바이스(1000)에서 NLU 처리를 수행하지 않기로 결정한 경우에, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값을 서버(2000)로 제공할 수 있다. 예를 들어, 디바이스(1000)의 기 등록된 도메인들에 관련된 ASR 모델의 출력 값의 도메인 신뢰도들이 소정 임계치보다 낮아서, ASR 모델의 출력 값이 기 등록된 도메인과 관련이 없거나 적다고 판단되는 경우에 디바이스(1000)는 디바이스(1000)에서 NLU 처리를 하지 않을 것을 결정할 수 있다.
서버(2000)의 NLU 모델(910)은 서버(2000)의 ASR 모델(905)의 출력 값 또는 디바이스(1000)의 ASR 모델의 출력 값 중 적어도 하나를 이용하여 NLU 처리를 수행할 수 있다. 또한, 서버(2000)는 NLU 모델(910)로부터 출력되는 NLU 결과 값을 디바이스(1000)로 제공할 수 있다. NLU 결과 값은, 텍스트를 해석한 결과를 나타내는 데이터로서, 예를 들어, NLU 모델로부터 출력되는 데이터일 수 있다. NLU 결과 값은, 예를 들어, 인텐트 및 파라미터를 포함할 수 있다. 인텐트는 NLU 모델을 이용하여 텍스트를 해석함으로써 결정되는 정보로서, 예를 들어, 사용자의 발화 의도를 나타낼 수 있다. 인텐트는, 사용자의 발화 의도를 나타내는 정보(이하, 의도 정보)뿐 아니라, 사용자의 의도를 나타내는 정보에 대응하는 수치 값을 포함할 수 있다. 수치 값은, 텍스트가 특정 의도를 나타내는 정보와 관련될 확률을 나타낼 수 있다. NLU 모델을 이용하여 텍스트를 해석한 결과, 사용자의 의도를 나타내는 정보가 복수 개 획득되는 경우, 각 의도 정보에 대응되는 수치 값이 최대인 의도 정보가 인텐트로 결정될 수 있다. 또한, 파라미터는 인텐트와 관련된 세부 정보를 나타낼 수 있다. 파라미터는 인텐트와 관련된 정보로서, 하나의 인텐트에 복수 종류의 파라미터가 대응될 수 있다.
한편, 디바이스(1000)가 디바이스(1000)의 ASR 모델의 출력 값을 이용하여 디바이스(1000)에서 NLU 처리를 수행하기로 결정한 경우에, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값을 디바이스(1000)의 NLU 모델(920)으로 제공할 수 있다. 디바이스(1000)의 NLU 모델(920)은 디바이스(1000)의 ASR 모델의 출력 값을 이용하여 NLU 처리를 수행할 수 있다.
이후, 디바이스(1000)는 도메인을 디바이스(1000)에 등록할 지를 결정할 수 있다(925). 디바이스(1000)는 특정 도메인을 디바이스(1000)에 등록하고, 등록 이후에 생성되는 ASR 모델의 출력 값이 등록된 도메인에 관련되었다고 판단되면, 등록 이후에 생성된 ASR 모델의 출력 값을 서버(2000)로 전송하지 않고 디바이스(1000) 내의 NLU 모델(920)을 이용하여 처리하도록 설정할 수 있다. 도메인의 등록을 위하여, 예를 들어, 디바이스(1000)는 서버(2000)로부터 수신된 NLU 결과 값 및 디바이스(1000)의 NLU 모델(920)로부터 출력된 NLU 결과 값을 평가하고, 평가 결과에 기초하여, 특정 도메인을 디바이스(1000)에 등록할 수 있다. 디바이스(1000)는 서버(2000)의 NLU 모델로부터 출력된 NLU 결과 값 내의 인텐트 및 파라미터 및 디바이스(1000)의 NLU 모델(920)로부터 출력된 NLU 결과 값 내의 인텐트 및 파라미터를 비교하고, 비교 결과에 기초하여, 특정 도메인을 디바이스(1000)에 등록할 수 있다. 예를 들어, 디바이스(1000)의 NLU 모델(920)로부터 출력된 NLU 결과 값 내의 인텐트 및 파라미터가 서버(2000)의 NLU 모델로부터 출력된 NLU 결과 값 내의 인텐트 및 파라미터와 동일 또는 유사한 경우에, 디바이스(1000)는 NLU 모델(920)에 대응되는 도메인을 디바이스(1000)에 등록할 수 있다.
또한, 예를 들어, 디바이스(1000)는 서버(2000)의 NLU 모델로부터 출력된 NLU 결과 값 및 디바이스(1000)의 NLU 모델(920)로부터 출력된 NLU 결과 값을 평가하기 위한 GUI를 디바이스(1000)의 화면 상에 디스플레이하고, 디스플레이된 GUI를 통한 사용자 입력에 기초하여, 서버(2000)의 NLU 모델로부터 출력된 NLU 결과 값 및 디바이스(1000)의 NLU 모델(920)로부터 출력된 NLU 결과 값을 평가할 수도 있다.
또한, 예를 들어, 디바이스(1000)는 도 14의 도메인 등록 모듈(1460)을 이용하여 특정 도메인을 디바이스(1000)에 등록할 수 있다.
도 10은 본 개시의 일 실시예에 따른 디바이스와 서버가 음성 입력에 대한 음성 인식 및 NLU 처리를 수행하는 방법을 나타내는 도면이다.
도 10을 참조하면, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값을 이용할지를 결정할 수 있으며, 서버(2000)의 ASR 모델(105)의 출력 값을 이용하여 디바이스(1000)에서 NLU 처리를 할지를 결정할 수 있다.
디바이스(1000)는, 디바이스(1000)의 ASR 모델의 인코더 출력 값에 기초하여, 디바이스(1000)의 ASR 모델의 출력 값을 이용할 것인지를 판단할 수 있다(100). 디바이스(1000)는 인코딩된 출력 값의 신뢰도를 획득하고, 인코더 출력 값의 신뢰도를 기설정된 임계치와 비교함으로써, ASR 모델의 출력 값을 이용할 것인지를 결정할 수 있다. 디바이스(1000)는 인코더 출력 값의 신뢰도가 기설정된 임계치 이상이면, ASR 모델의 출력 값을 이용할 것을 결정할 수 있다. 또한, 디바이스(1000)는 인코더 출력 값의 신뢰도가 기설정된 임계치보다 작으면, ASR 모델의 출력 값을 이용하지 않을 것을 결정할 수 있다. 인코더 출력 값에 대한 신뢰도는, 인코더 출력 값이 나타내는 텍스트가 입력 음성에 일치하는 정도를 나타낼 수 있다. 또한, 예를 들어, 인코더 출력 값의 신뢰도는 도 14의 음성 인식 평가 모듈(1430)에 의해 산출될 수 있다.
또는, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값에 기초하여, 디바이스(1000)의 ASR 모델의 출력 값을 이용할 것인지를 판단할 수 있다(100). 디바이스(1000)는 ASR 모델의 출력 값의 신뢰도를 기반으로, ASR 모델의 출력 값을 보이스 어시스턴트 서비스를 위하여 이용할 수 있는 지를 판단할 수 있다. ASR 모델의 출력 값의 신뢰도는, 예를 들어, ASR 모델로부터 출력된 문자열이 입력 음성에 일치하는 정도를 나타낼 수 있다.
디바이스(1000)가 디바이스(1000)의 ASR 모델의 출력 값을 이용하지 않기로 결정하는 경우에, 디바이스(1000)는 디바이스(1000)의 ASR 모델 내의 인코더의 출력 값을 서버(2000)에게 제공할 수 있다.
이후, 서버(2000)의 ASR 모델(105)은 디바이스(1000)로부터 수신된 인코더 출력 값을 이용하여 서버(2000)의 ASR 모델(105)의 출력 값을 획득할 수 있다. 서버(2000)는 디바이스(1000)로부터 수신된 인코더 출력 값을 서버(2000)의 ASR 모델(105)의 디코더에 입력할 수 있다. 예를 들어, 서버(2000)는, 도 3의 동작 S325 내지 S340에서와 같이, 인코더 출력 값으로부터 문자열을 생성할 수 있다. 또한, 서버(2000)는 서버(2000)의 ASR 모델(105)의 출력 값을 디바이스(1000)로 제공할 수 있다.
한편, 디바이스(1000)가 디바이스(1000)의 ASR 모델의 출력 값을 이용하기로 결정하는 경우에, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값을 이용하여 디바이스(1000)에서 NLU 처리를 수행할 것인지를 판단할 수 있다(110). 이 경우, 디바이스(1000)는, 예를 들어, 디바이스(1000)의 ASR 모델의 출력 값의 도메인 신뢰도에 기초하여 디바이스(1000)에서 NLU 처리를 수행할 것인지를 판단할 수 있다. 디바이스(1000)는 룰 기반으로 디바이스(1000)의 ASR 모델의 출력 값에 관련된 도메인을 식별하거나, 도메인 식별을 위해 훈련된 인공 지능 모델을 이용하여 디바이스(1000)의 ASR 모델의 출력 값에 관련된 도메인 신뢰도를 획득할 수 있다. 또한, 예를 들어, 도메인 식별을 위한 인공 지능 모델은 NLU 모델의 일부이거나, NLU 모델과는 별개의 모델일 수 있다. 디바이스(1000)의 ASR 모델의 출력 값의 도메인 신뢰도는, 예를 들어, 도 14의 도메인 식별 모듈(1450)에 의해 산출될 수 있다.
서버(2000)가 서버(2000)의 ASR 모델(105)의 출력 값을 디바이스(1000)로 제공한 경우에는, 디바이스(1000)는 서버(2000)의 ASR 모델(105)의 출력 값을 이용하여 디바이스(1000)에서 NLU 처리를 수행할 것인지를 판단할 수 있다(110). 예를 들어, 디바이스(1000)는 서버(2000)의 ASR 모델의 출력 값의 도메인 신뢰도에 기초하여 디바이스(1000)에서 NLU 처리를 수행할 것인지를 판단할 수 있다. 디바이스(1000)는 서버(2000)의 ASR 모델의 출력 값이 NLU 처리를 위해 미리 등록된 도메인에 어느 정도 관련성이 있는 지를 나타내는 도메인 신뢰도를 산출하고, 미리 등록된 도메인에 대해 산출된 도메인 신뢰도에 기초하여, 디바이스(1000)에서 NLU 처리를 수행할 지를 결정할 수 있다. 예를 들어, 디바이스(1000)는 기 등록된 복수의 도메인 각각에 대하여, 서버(2000)의 ASR 모델의 출력 값이 도메인에 관련된 정도를 나타내는 컨피던스 스코어를 획득하고, 획득된 컨피던스 스코어에 기초하여 디바이스(1000)에서 NLU 처리를 수행할 지를 결정할 수 있다. 디바이스(1000)는 룰 기반으로 서버(2000)의 ASR 모델의 출력 값에 관련된 도메인을 식별하거나 도메인 식별을 위해 훈련된 인공 지능 모델을 이용하여 서버(2000)의 ASR 모델의 출력 값에 관련된 도메인 신뢰도를 획득할 수 있다. 또한, 예를 들어, 도메인 식별을 위한 인공 지능 모델은 NLU 모델의 일부이거나, NLU 모델과는 별개의 모델일 수 있다. 또한, 예를 들어, 서버(2000)의 ASR 모델의 출력 값의 도메인 신뢰도는 도 14의 도메인 식별 모듈(1450)에 의해 산출될 수 있다.
디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값을 이용하여 디바이스(1000)에서 NLU 처리를 수행하기로 결정한 경우에, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값을 디바이스(1000)의 NLU 모델(120)로 제공할 수 있다. 또한, 디바이스(1000)는 서버(2000)의 ASR 모델(105)의 출력 값을 이용하여 디바이스(1000)에서 NLU 처리를 수행하기로 결정한 경우에, 디바이스(1000)는 서버(2000)의 ASR 모델(105)의 출력 값을 디바이스(1000)의 NLU 모델(120)로 제공할 수 있다. 이 경우, 디바이스(1000)의 NLU 모델(120)은 디바이스(1000)의 ASR 모델의 출력 값 또는 서버(2000)의 ASR 모델(105)의 출력 값을 이용하여 NLU 처리를 수행할 수 있다.
한편, 디바이스(1000)가 디바이스(1000)의 ASR 모델의 출력 값을 이용하여 디바이스(1000)에서 NLU 처리를 수행하지 않기로 결정한 경우에, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값을 서버(2000)로 제공할 수 있다. 또한, 디바이스(1000)가 서버(2000)의 ASR 모델(105)의 출력 값을 이용하여 디바이스(1000)에서 NLU 처리를 수행하지 않기로 결정한 경우에, 디바이스(1000)는 서버(2000)의 ASR 모델(105)의 출력 값을 서버(2000)로 제공할 수 있다.
서버(2000)의 NLU 모델(910)은 서버(2000)의 ASR 모델(105)의 출력 값 또는 디바이스(1000)의 ASR 모델의 출력 값 중 적어도 하나를 이용하여 NLU 처리를 수행할 수 있다. 또한, 서버(2000)는 NLU 모델(910)로부터 출력되는 NLU 결과 값을 디바이스(1000)로 제공할 수 있다.
이후, 디바이스(1000)는 도메인을 디바이스(1000)에 등록할 지를 결정할 수 있다(125). 디바이스(1000)는 특정 도메인을 디바이스(1000)에 등록하고, 등록 이후에 생성되는 ASR 모델의 출력 값이 등록된 도메인에 관련되었다고 판단되면, 등록 이후에 생성된 ASR 모델의 출력 값을 서버(2000)로 전송하지 않고 디바이스(1000) 내의 NLU 모델(120)을 이용하여 처리하도록 설정할 수 있다.
도 11은 본 개시의 일 실시예에 따른 디바이스와 서버가 음성 입력에 대한 음성 인식 및 NLU 처리를 수행하는 방법을 나타내는 도면이다.
도 11을 참조하면, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값을 이용할지를 결정할 수 있으며, 디바이스(1000)에서 NLU 처리를 할지를 결정할 수 있다. 또한, 서버(2000)는 서버(2000)의 ASR 모델(215)의 출력 값에 기초하여 디바이스(1000)에서 NLU 처리를 할 수 있는 지를 결정할 수 있다.
디바이스(1000)는, 디바이스(1000)의 ASR 모델의 인코더 출력 값에 기초하여, 디바이스(1000)의 ASR 모델의 출력 값을 이용할 것인지를 판단할 수 있다(200). 디바이스(1000)는 인코딩된 출력 값의 신뢰도를 획득하고, 인코더 출력 값의 신뢰도를 기설정된 임계치와 비교함으로써, ASR 모델의 출력 값을 이용할 것인지를 결정할 수 있다. 또는, 디바이스(1000)의 ASR 모델로부터 출력 값이 출력되면, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값에 기초하여, ASR 모델의 출력 값을 이용할 것인지를 판단할 수 있다(200).
디바이스(1000)가 디바이스(1000)의 ASR 모델의 출력 값을 이용하기로 결정하는 경우에, 디바이스(1000)는 디바이스(1000)에서 ASR 모델의 출력 값을 이용하여 NLU 처리를 수행할 지를 결정할 수 있다(205). 예를 들어, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값의 도메인 신뢰도에 기초하여 디바이스(1000)에서 NLU 처리를 수행할 것인지를 판단할 수 있다. 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값이 NLU 처리를 위해 미리 등록된 도메인에 어느 정도 관련성이 있는 지를 나타내는 도메인 신뢰도를 산출하고, 미리 등록된 도메인에 대해 산출된 도메인 신뢰도에 기초하여, 디바이스(1000)에서 NLU 처리를 수행할 지를 결정할 수 있다. 디바이스(1000)는 룰 기반으로 디바이스(1000)의 ASR 모델의 출력 값에 관련된 도메인을 식별하거나, 도메인 식별을 위해 훈련된 인공 지능 모델을 이용하여 디바이스(1000)의 ASR 모델의 출력 값에 관련된 도메인 신뢰도를 획득할 수 있다. 또한, 예를 들어, 도메인 식별을 위한 인공 지능 모델은 NLU 모델의 일부이거나, NLU 모델과는 별개의 모델일 수 있다. 또한, 예를 들어, ASR 모델의 출력 값의 도메인 신뢰도는 도 14의 도메인 식별 모듈(1450)에 의해 산출될 수 있다.
디바이스(1000)에서 NLU 처리를 수행하지 않기로 결정되면(205), 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값을 서버(2000)로 제공할 수 있다. 이후, 서버(2000)는 디바이스(1000)의 ASR 모델의 출력 값을 서버(2000)의 NLU 모델(210)에 입력하고, NLU 모델(210)으로부터 NLU 결과 값을 획득할 수 있다. 또한, 서버(2000)는 서버(2000)의 NLU 모델(210)로부터 획득된 NLU 결과 값을 디바이스(1000)에게 제공할 수 있다.
디바이스(1000)에서 NLU 처리를 수행하기로 결정되면(205), 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값을 디바이스(1000)의 NLU 모델(225)에 입력하고, NLU 모델(225)로부터 NLU 결과 값을 획득할 수 있다.
한편, 디바이스(1000)가 디바이스(1000)의 ASR 모델의 출력 값을 이용하지 않기로 결정하는 경우에(200), 디바이스(1000)는 디바이스(1000)의 ASR 모델 내의 인코더의 출력 값을 서버(2000)에게 제공할 수 있다.
이후, 서버(2000)의 ASR 모델(215)은 디바이스(1000)로부터 수신된 인코더 출력 값을 이용하여 서버(2000)의 ASR 모델(215)의 출력 값을 획득할 수 있다. 서버(2000)는 디바이스(1000)로부터 수신된 인코더 출력 값을 서버(2000)의 ASR 모델(215)의 디코더에 입력하고, 서버(2000)의 ASR 모델(215)로부터 출력되는 출력 값을 획득할 수 있다. 예를 들어, 서버(2000)는, 도 3의 동작 S325 내지 S340에서와 같이, 인코더 출력 값으로부터 문자열을 생성할 수 있다.
이후, 서버(2000)는 ASR 모델(215)로부터 출력되는 출력 값에 기초하여, 디바이스(1000)에서 NLU 처리를 수행할 것인지를 결정할 수 있다(220). 서버(2000)는 ASR 모델(215)의 출력 값에 관련된 도메인이 디바이스(1000)에서 NLU 처리를 할 수 있는 도메인인지를 판단할 수 있다. ASR 모델(215)의 출력 값에 관련된 도메인이 디바이스(1000)에 기 등록된 도메인인 경우에, 서버(2000)는 디바이스(1000)가 NLU 처리를 수행할 것을 결정할 수 있다. 또한, ASR 모델(215)의 출력 값에 관련된 도메인이 디바이스(1000)에 기 등록된 도메인이 아닌 경우에, 서버(2000)는 디바이스(1000)가 NLU 처리를 수행하지 않을 것을 결정할 수 있다.
예를 들어, 서버(2000)는 서버(2000)의 ASR 모델의 출력 값의 도메인 신뢰도에 기초하여 디바이스(1000)에서 NLU 처리를 수행할 것인지를 판단할 수 있다. 서버(2000)는 서버(2000)의 ASR 모델의 출력 값이 NLU 처리를 위해 디바이스(1000)에 미리 등록된 도메인에 어느 정도 관련성이 있는 지를 나타내는 도메인 신뢰도를 산출하고, 미리 등록된 도메인에 대해 산출된 도메인 신뢰도에 기초하여, 디바이스(1000)에서 NLU 처리를 수행할 지를 결정할 수 있다. 예를 들어, 서버(2000)는 디바이스(1000)에 기 등록된 복수의 도메인 각각에 대하여, 서버(2000)의 ASR 모델의 출력 값이 도메인에 관련된 정도를 나타내는 컨피던스 스코어를 획득하고, 획득된 컨피던스 스코어에 기초하여 디바이스(1000)에서 NLU 처리를 수행할 지를 결정할 수 있다. 이 경우, 디바이스(1000)에 어떤 도메인이 등록되었는 지를 나타내는 정보가 서버(2000)에 미리 저장되어 있을 수 있다. 또는, 디바이스(1000)에 어떤 도메인이 등록되었는 지를 나타내는 정보가 서버(2000)의 요청에 의해 디바이스(1000)로부터 서버(2000)에게 제공될 수 있다. 서버(2000)는 룰 기반으로 서버(2000)의 ASR 모델의 출력 값에 관련된 도메인을 식별하거나, 도메인 식별을 위해 훈련된 인공 지능 모델을 이용하여 서버(2000)의 ASR 모델의 출력 값에 관련된 도메인 신뢰도를 획득할 수 있다. 또한, 예를 들어, 도메인 식별을 위한 인공 지능 모델은 NLU 모델의 일부이거나, NLU 모델과는 별개의 모델일 수 있다. 또한, 예를 들어, 서버(2000)의 ASR 모델의 출력 값의 도메인 신뢰도는 도 13의 음성 인식 평가 모듈(2341)에 의해 산출될 수 있다.
디바이스(1000)가 NLU 처리를 수행하기로 결정된 경우에(220), 서버(2000)는 ASR 모델(215)의 출력 값을 디바이스(1000)에게 제공할 수 있다. 이후, 디바이스(1000)는 서버(2000)의 ASR 모델(215)의 출력 값을 디바이스(1000)의 NLU 모델(225)에 입력하고, NLU 모델(225)으로부터 NLU 결과 값을 획득할 수 있다.
또한, 디바이스(1000)가 NLU 처리를 수행하지 않기로 결정된 경우에(220), 서버(2000)는 ASR 모델(215)의 출력 값을 서버(2000)의 NLU 모델(210)에게 제공할 수 있다. 이후, 서버(2000)는 서버(2000)의 ASR 모델(215)의 출력 값을 서버(2000)의 NLU 모델(210)에 입력하고, NLU 모델(210)으로부터 NLU 결과 값을 획득할 수 있다. 또한, 서버(2000)는 획득된 NLU 결과 값을 디바이스(1000)에게 제공할 수 있다.
이후, 디바이스(1000)는 도메인을 디바이스(1000)에 등록할 지를 결정할 수 있다(230). 디바이스(1000)는 특정 도메인을 디바이스(1000)에 등록하고, 등록 이후에 생성되는 ASR 모델의 출력 값이 등록된 도메인에 관련되었다고 판단되면, 등록 이후에 생성된 ASR 모델의 출력 값을 서버(2000)로 전송하지 않고 디바이스(1000) 내의 NLU 모델(225)을 이용하여 처리하도록 설정할 수 있다.
도 12는 본 개시의 일 실시예에 따른 디바이스와 서버가 음성 입력에 대한 음성 인식 및 NLU 처리를 수행하는 방법을 나타내는 도면이다. 도 12에서는, 디바이스(1000)가 NLU 처리를 디바이스(1000)에서 수행할 지를 바로 판단할 수 있다.
디바이스(1000)의 ASR 모델로부터 출력 값이 출력되면, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값에 기초하여, 디바이스(1000)에서 NLU 처리를 수행할 지를 판단할 수 있다(300). 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값의 신뢰도 및 디바이스(1000)의 ASR 모델의 도메인 신뢰도 중 적어도 하나에 기초하여, 디바이스(1000)에서 NLU 처리를 수행할 지를 판단할 수 있다. ASR 모델의 출력 값의 신뢰도는, 예를 들어, ASR 모델로부터 출력된 문자열이 입력 음성에 일치하는 정도를 나타내는 컨피던스 스코어일 수 있다. 또한, 도메인 신뢰도는, 예를 들어, ASR 모델로부터 출력된 문자열이 특정 도메인에 어느 정도 관련되었는지를 나타내는 컨피던스 스코어일 수 있다.
또한, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값의 신뢰도 및 디바이스(1000)의 ASR 모델의 도메인 신뢰도의 가중치 합에 기초하여, NLU 처리를 디바이스(1000)에서 수행할 지를 결정할 수 있다. 예를 들어, 디바이스(1000)는 ASR 모델의 출력 값의 신뢰도에 제1 가중치를 적용하고, ASR 모델의 도메인 신뢰도에 제2 가중치를 적용하고, 제1 가중치가 적용된 신뢰도 및 제2 가중치가 적용된 도메인 신뢰도에 기초하여 NLU 처리를 디바이스(1000)에서 수행할 지를 결정할 수 있다. 이 경우, ASR 모델의 출력 값의 신뢰도 및 ASR 모델의 출력 값의 도메인 신뢰도는 기 설정된 기준에 따라 정규화된 값일 수 있다. 또한, 예를 들어, ASR 모델의 신뢰도 및 ASR 모델의 도메인 신뢰도의 가중치 합은 도 14의 음성 인식 평가 모듈(1430)에 의해 산출될 수 있다.
디바이스(1000)에서 NLU 처리를 수행하기로 결정된 경우에, 디바이스(1000)는 디바이스(1000)의 ASR 모델의 출력 값을 디바이스(1000)의 NLU 모델(315)에 입력하고, 디바이스(1000)의 NLU 모델(315)로부터 출력되는 NLU 결과 값을 획득할 수 있다.
디바이스(1000)에서 NLU 처리를 수행하지 않기로 결정된 경우에, 디바이스(1000)는 디바이스(1000)의 ASR 모델 내의 인코더의 출력 값을 서버(2000)에게 제공할 수 있다. 서버(2000)는 인코더 출력 값을 서버(2000)의 ASR 모델(315)에 입력할 수 있으며, 서버(2000)의 ASR 모델(315)로부터 출력되는 출력 값을 서버(2000)의 NLU 모델(320)에 입력할 수 있다. 서버(2000)는 서버(2000)의 NLU 모델(320)로부터 출력되는 NLU 결과 값을 획득하여 디바이스(1000)로 제공할 수 있다.
이후, 디바이스(1000)는 도메인을 디바이스(1000)에 등록할 지를 결정할 수 있다(325). 디바이스(1000)는 특정 도메인을 디바이스(1000)에 등록하고, 등록 이후에 생성되는 ASR 모델의 출력 값이 등록된 도메인에 관련되었다고 판단되면, 등록 이후에 생성된 ASR 모델의 출력 값을 디바이스(1000) 내의 NLU 모델(325)을 이용하여 처리하도록 설정할 수 있다.
도 13은 본 개시의 일 실시예에 따른 서버의 블록도이다.
도 13을 참조하면, 본 개시의 일 실시예에 따른 서버(2000)는 통신 인터페이스(2100), 프로세서(2200) 및 저장부(2300)를 포함하며, 저장부(2300)는 음성 인식 관리 모듈(2310), ASR 모듈(2320), NLU 모듈(2330) 및 음성 해석 관리 모듈(2340)을 포함할 수 있다.
통신 인터페이스(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)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, 음성 인식 관리 모듈(2310), 음성 해석 관리 모듈(2340), ASR 모듈(2320) 및 NLU 모듈(2330) 등으로 분류될 수 있다.
음성 인식 관리 모듈(2310)은 디바이스(1000)로부터 수신된 인코더 출력 값을 ASR 모델(2330)로 제공한다. 음성 인식 관리 모듈(2310)은 인코더 식별 모듈(2311), 도메인 식별 모듈(2312), 디코더 선택 모듈(2313) 및 출력 값 변환 모듈(2314)을 포함할 수 있다.
도메인 식별 모듈(2312)은 디바이스(1000)로부터 수신된 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 서버(2000)가 디바이스(1000)로부터 도메인 정보를 수신하는 경우에는, 도메인 식별 모듈(2312)은 도메인 정보로부터 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 또한, 서버(2000)가 디바이스(1000)로부터 도메인 정보를 수신하지 않는 경우에는, 도메인 식별 모듈(2312)은 인코더 출력 값을 기반으로 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 예를 들어, 서버(2000)는 디바이스(1000) 내의 인코더의 출력단에 연결된 프로젝션 레이어로부터 획득되는 텍스트를 디바이스(1000)로부터 수신할 수 있으며, 도메인 식별 모듈(2312)은 수신된 텍스트를 이용하여 인코더의 출력 값에 관련된 도메인을 식별할 수 있다. 또는, 예를 들어, 도메인 식별 모듈(2312)은 디바이스(1000)로부터 수신되는 인코딩 정보를 이용하여 인코더 출력 값에 소정의 프로젝션 레이어를 적용함으로써 텍스트를 획득하고, 획득된 텍스트를 이용하여 인코더의 출력 값에 관련된 도메인을 식별할 수 있다. 이 경우, 도메인 식별 모듈(2313)은 인코더의 출력 값으로부터 생성되는 텍스트의 도메인 신뢰도에 기초하여, 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 예를 들어, 도메인 식별 모듈(2313)은 인코더 출력 값으로부터 획득되는 텍스트가 인코더 출력 값을 디코딩하기 위해 미리 등록된 도메인에 어느 정도 관련성이 있는 지를 나타내는 컨피던스 스코어를 산출할 수 있다. 또한, 도메인 식별 모듈(2313)는 미리 등록된 도메인에 대해 산출된 도메인 신뢰도에 기초하여, 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 또는, 예를 들어, 도메인 식별 모듈(2312)은 인코더 출력 값 및 인코더 출력 값의 포맷을 분석하고, 분석 결과에 기초하여 인코더 출력 값에 프로젝션 레이어를 적용함으로써 인코더 출력 값에 관련된 도메인을 식별할 수 있다.
인코더 식별 모듈(2311)은 디바이스(1000)의 인코더의 종류 및 인코더 출력 값의 인코딩 정보를 식별할 수 있다. 서버(2000)가 디바이스(1000)로부터 인코딩 정보를 수신하는 경우에는, 인코더 식별 모듈(2311)은 인코딩 정보로부터 인코더 출력 값을 출력한 인코더의 종류 및 인코딩 정도를 식별할 수 있다. 또한, 서버(2000)가 디바이스(1000)로부터 인코딩 정보를 수신하지 않은 경우에는, 인코더 식별 모듈(2311)은 인코더 출력 값 및 인코더 출력 값의 포맷을 분석함으로써 인코더의 종류 및 인코딩 정도를 식별할 수 있다.
디코더 선택 모듈(2313)은 인코더 출력 값을 디코딩할 디코더를 선택할 수 있다. 디코더 선택 모듈(2313)은 도메인 식별 모듈(2312)에 의해 식별된 도메인, 인코더 식별 모듈(2311)에 의해 식별된 인코더의 종류 및 인코딩 정보 중 적어도 하나에 기초하여 인코더 출력 값을 디코딩할 디코더를 선택할 수 있다. 디코더 선택 모듈(2313)은, 기설정된 기준에 따라 서버(2000) 내의 디코더들 중에서 적어도 일부를 선택할 수 있다.
디코더 선택 모듈(2313)은 특정 도메인의 하나의 디코더를 선택할 수 있다. 디코더 선택 모듈(2313)은, 예를 들어, 인코더 출력 값에 관련된 하나의 도메인의 복수의 디코더들 중에서 인코더 출력 값과 동일한 타입의 하나의 디코더를 선택할 수 있다.
또는, 디코더 선택 모듈(2313)은 특정 도메인의 복수의 디코더를 선택할 수 있다. 디코더 선택 모듈(2313)은, 예를 들어, 인코더 출력 값에 관련된 하나의 도메인의 복수의 디코더를 선택할 수 있다. 선택된 복수의 디코더는 인코더 출력 값과 동일한 타입의 디코더 및 상이한 타입의 디코더를 포함할 수 있다.
또는, 디코더 선택 모듈(2313)은 복수의 도메인의 복수의 디코더를 선택할 수 있다. 디코더 선택 모듈(2313)은, 예를 들어, 인코더 출력 값에 관련된 복수의 도메인의 복수의 디코더를 선택할 수 있다. 선택된 복수의 디코더는 인코더 출력 값과 동일한 타입의 디코더 및 상이한 타입의 디코더를 포함할 수 있다. 디코더 선택 모듈(2313)은 서버(2000) 내의 모든 디코더를 선택할 수도 있다.
디바이스의 인코더와 동일한 타입의 디코더가 서버(2000) 내에 없는 경우에, 디코더 선택 모듈(2313)은 인코더 출력 값을 처리하기 위하여 인코더 출력 값과 상이한 타입의 디코더를 선택할 수 있다.
출력 값 변환 모듈(2314)은, 선택된 디코더에 따라 인코더 출력 값의 포맷을 변환할 수 있다. 인코더 출력 값의 포맷과 선택된 디코더에 입력될 입력 값의 포맷이 서로 상이한 경우에, 출력 값 변환 모듈(2314)은 디바이스(1000)로부터 수신된 인코더 출력 값의 포맷을 변환할 수 있다. 이 경우, 출력 값 변환 모듈(2314)은 인코더 출력 값을 선택된 디코더에 호환되도록 변환하기 위한 툴을 이용하여 인코더 출력 값의 포맷을 변환할 수 있다. 이 경우, 다양한 포맷의 인코더 출력 값이 다양한 종류의 디코더에 입력되도록 하기 위하여, 저장부(2300)는 복수 종류의 인코더 및 복수 종류의 디코더의 각각의 조합에 대응되는 변환 툴들을 저장할 수 있다.
ASR 모듈(2320)은 디바이스(1000)로부터 수신된 인코더 출력 값을 디코딩하여 문자열을 획득할 수 있다. ASR 모듈(2320)은, 제1 ASR 모델(2321), 제2 ASR 모델(2322) 등과 같이, 복수 도메인의 복수의 ASR 모델을 포함할 수 있다. 제1 ASR 모델(2321) 및 제2 ASR 모델(2322)은 종단간 ASR 모델일 수 있다. 제1 ASR 모델(2321)은 인코더(2321-1) 및 디코더(2321-2)를 포함할 수 있고, 제2 ASR 모델(2322)은 인코더(2322-1) 및 디코더(2322-2)를 포함할 수 있다. 또는, 일 실시예에 따라, 제1 ASR 모델(2321)에 인코더(2321-1)가 포함되지 않고, 제2 ASR 모델(2322)에 인코더(2322-1)가 포함되지 않을 수 있다.
NLU 모듈(2330)은 ASR 모듈(2320)로부터 출력된 문자열을 해석할 수 있다. NLU 모듈(2330)은, 제1 NLU 모델(2331) 및 제2 NLU 모델(2332) 등과 같이, 복수 도메인의 복수의 NLU 모델을 포함할 수 있다. 또한, 디바이스(1000)가 디바이스(1000) 내의 ASR 모델의 출력 값을 서버(2000)에게 제공하는 경우에, NLU 모듈(2330)은 디바이스(1000)로부터 수신되는 ASR 모델 출력 값을 해석할 수 있다.
음성 해석 관리 모듈(2340)은 서버(2000)의 ASR 모듈(2320)에 의한 음성 인식 결과를 평가하고, 음성 인식 결과에 대한 NLU 처리를 수행할 지를 결정할 수 있다. 음성 해석 관리 모듈(2340)은 음성 인식 평가 모듈(2341) 및 NLU 결정 모듈(2342)을 포함할 수 있다.
음성 인식 평가 모듈(2341)은 서버(2000) 내의 디코더의 출력 값에 기초하여 생성된 문자열의 신뢰도를 산출할 수 있다. 복수의 디코더들이 선택되고 선택된 복수의 디코더들을 이용하여 복수의 문자열이 생성된 경우에, 음성 인식 평가 모듈(2341)은 복수의 문자열들의 신뢰도를 비교하고 신뢰도가 높은 문자열을 디바이스(1000)에게 제공할 문자열로 선택할 수 있다. 문자열의 신뢰도는, 문자열이 입력 음성에 일치할 확률을 나타내는 수치일 수 있으며 예를 들어, 컨피던스 스코어(confidence score)를 포함할 수 있으나, 이에 제한되지 않는다. 또한, 음성 인식 평가 모듈(2341)은 디코더의 출력 값에 기초하여 생성된 문자열의 도메인 신뢰도를 산출할 수 있다. 음성 인식 평가 모듈(2341)은 서버(2000)의 ASR 모델의 출력 값이 NLU 처리를 위해 디바이스(1000)에 미리 등록된 도메인에 어느 정도 관련성이 있는 지를 나타내는 도메인 신뢰도를 산출하고, 미리 등록된 도메인에 대해 산출된 도메인 신뢰도에 기초하여, 디바이스(1000)에서 NLU 처리를 수행할 지를 결정할 수 있다. 예를 들어, 음성 인식 평가 모듈(2341)은 디바이스(1000)에 기 등록된 복수의 도메인 각각에 대하여, 서버(2000)의 ASR 모델의 출력 값이 도메인에 관련된 정도를 나타내는 컨피던스 스코어를 획득하고, 획득된 컨피던스 스코어에 기초하여 디바이스(1000)에서 NLU 처리를 수행할 지를 결정할 수 있다. 이 경우, 디바이스(1000)에 어떤 도메인이 등록되었는 지를 나타내는 정보가 서버(2000)에 미리 저장되어 있을 수 있다. 또는, 디바이스(1000)에 어떤 도메인이 등록되었는 지를 나타내는 정보가 서버(2000)의 요청에 의해 디바이스(1000)로부터 서버(2000)에게 제공될 수 있다.
NLU 결정 모듈(2342)은 서버(2000) 내의 ASR 모듈(2320)의 음성 인식 결과 값에 대하여 디바이스(1000)에서 NLU 처리를 수행할 지 서버(2000)에서 NLU 처리를 수행할 지를 결정할 수 있다. NLU 결정 모듈(2342)은 ASR 모듈(2320)의 출력 값에 관련된 도메인이 디바이스(1000)에서 NLU 처리를 할 수 있는 도메인인지를 판단할 수 있다. ASR 모듈(2320)의 출력 값에 관련된 도메인이 디바이스(1000)에 기 등록된 도메인인 경우에, NLU 결정 모듈(2342)은 디바이스(1000)가 NLU 처리를 수행할 것을 결정할 수 있다. 또한, ASR 모듈(2320)의 출력 값에 관련된 도메인이 디바이스(1000)에 기 등록된 도메인이 아닌 경우에, NLU 결정 모듈(2342)은 디바이스(1000)가 NLU 처리를 수행하지 않을 것을 결정할 수 있다. 이 경우, 서버(2000)는 디바이스(1000)에 기 등록된 도메인의 리스트를 디바이스(1000)로부터 수신하여 저장부(2300)에 저장할 수 있다.
도 14는 본 개시의 일 실시예에 따른 디바이스의 블록도이다.
도 14를 참조하면, 본 개시의 일 실시예에 따른 디바이스(1000)는 통신 인터페이스(1100), 입출력부(1200), 프로세서(1300) 및 메모리(1400)를 포함하며, 메모리(1400)는 ASR 모델(1410), NLU 모델(1420), 음성 인식 평가 모듈(1430), NLU 결정 모듈(1440), 도메인 식별 모듈(1450) 및 도메인 등록 모듈(1460)을 포함할 수 있다.
통신 인터페이스(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)의 동작들을 전반적으로 제어할 수 있다.
메모리(1400)는, 프로세서(1300)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 디바이스(1000)로 입력되거나 디바이스(1000)로부터 출력되는 데이터를 저장할 수 있다. 메모리(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), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있으나, 이에 제한되지 않는다..
메모리(1400)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, ASR 모델(1410), NLU 모델(1420), 음성 인식 평가 모듈(1430), NLU 결정 모듈(1440), 도메인 식별 모듈(1450) 및 도메인 등록 모듈(1460) 등으로 분류될 수 있다.
ASR 모델(1410)은 디바이스(1000)에 입력된 음성 신호를 인코딩할 수 있다. ASR 모델(1410)은 종단간 ASR 모델일 수 있으며, ASR 모델(1410)은 인코더(1411) 및 디코더(1412)를 포함할 수 있다. 디바이스(1000)에 입력된 음성 신호는 ASR 모델(1410)의 인코더(1411)에 의해 인코딩될 수 있다. ASR 모델(1410)의 인코더(1411)는 복수의 레이어들을 포함할 수 있으며, 예를 들어, 복수의 적층된(stacked) LSTM(Long Short-Term Memory) 레이어들을 포함할 수 있다. 또한, 인코딩된 출력 값은 인코더(1411) 내의 복수의 레이어들로부터 출력되는 출력 값들 중 하나일 수 있다. 인코딩된 출력 값은 인코더(1411) 내의 레이어로부터 출력된 히든 벡터일 수 있다.
ASR 모델(1410)은 인코더(1411) 및 디코더(1412)를 통하여 음성 신호로부터 문자열을 생성할 수도 있다.
NLU 모델(1420)은 ASR 모델(1410)로부터 출력되는 문자열을 해석할 수 있다. 또는 서버(2000)의 ASR 모델로부터 제공되는 문자열을 해석할 수 있다. 서버(2000)가 서버(2000) 내의 ASR 모델의 출력 값을 디바이스(1000)에게 제공하는 경우에, NLU 모델(1420)은 서버(2000)로부터 제공된 ASR 모델 출력 값을 해석할 수 있다.
음성 인식 평가 모듈(1430)은 인코더(1411)의 출력 값 및 ASR 모델(1410)의 출력 값을 평가할 수 있다. 음성 인식 평가 모듈(1430)은 인코더(1411)의 출력 값의 신뢰도를 획득할 수 있다. 인코딩된 출력 값에 대한 신뢰도는, 인코딩된 출력 값이 입력 음성에 매칭되는 정도를 나타내는 수치일 수 있으며 예를 들어, 컨피던스 스코어(confidence score)를 포함할 수 있으나, 이에 제한되지 않는다. 인코딩된 출력 값에 대한 신뢰도는, 인코딩된 출력 값이 나타내는 텍스트가 입력 음성에 일치하는 정도를 나타낼 수 있다. 예를 들어, 디바이스(1000)의 ASR 모델(1410)의 인코더(1411)가 훈련될 때, CTC (connectionist temporal classification) Loss가 함께 사용될 수 있는데, 이 경우 인코더(1411)의 출력단에 프로젝션 레이어(projection Layer)가 연결됨으로써, 프로젝션 레이어로부터 텍스트가 획득될 수 있다. 또한, 음성 인식 평가 모듈(1430)은 인코더의 출력단에 연결된 프로젝션 레이어로부터 획득되는 텍스트를 기반으로 인코더 출력 값의 신뢰도를 산출할 수 있다. 하지만, 신뢰도의 산출 방법은 이에 제한되지 않으면, 예를 들어, 음성 인식 평가 모듈(1430)은 기설정된 알고리즘을 이용하여 인코더의 출력 값으로부터 신뢰도를 바로 산출할 수도 있다.
인코더(1411) 내의 복수의 레이어들로부터 인코더 출력 값들이 각각 출력될 수 있으며, 음성 인식 평가 모듈(1430)은 출력된 인코더 출력 값들의 신뢰도를 각각 산출할 수 있다. 또한, 음성 인식 평가 모듈(1430)에 의해 산출된 신뢰도에 기초하여, 인코더 출력 값을 서버(2000)로 제공할 지 여부가 결정될 수 있다.
또한, 음성 인식 평가 모듈(1430)은 ASR 모델(1410)로부터 출력되는 문자열의 신뢰도를 산출할 수 있다. 문자열의 신뢰도는, 문자열이 입력 음성에 일치할 확률을 나타내는 수치일 수 있으며 예를 들어, 컨피던스 스코어(confidence score)를 포함할 수 있으나, 이에 제한되지 않는다. 음성 인식 평가 모듈(1430)에 의해 산출된 문자열의 신뢰도에 기초하여, 디바이스(1000)의 ASR 모델(1410)의 출력 값을 디바이스(1000)가 이용할 지 여부가 결정될 수 있다.
NLU 결정 모듈(1440)은 ASR 모델(1410)로부터 출력되는 문자열에 대하여 디바이스(1000)에서 NLU 처리를 수행할 지 서버(2000)에서 NLU 처리를 수행할 지를 결정할 수 있다. NLU 결정 모듈(1440)은 ASR 모델(1410)의 출력 값에 관련된 도메인이 디바이스(1000)에서 NLU 처리를 할 수 있는 도메인인지를 판단할 수 있다. ASR 모델(1410)의 출력 값에 관련된 도메인이 디바이스(1000)에 기 등록된 도메인인 경우에, NLU 결정 모듈(1440)은 디바이스(1000)가 NLU 처리를 수행할 것을 결정할 수 있다. 또한, ASR 모델(1410)의 출력 값에 관련된 도메인이 디바이스(1000)에 기 등록된 도메인이 아닌 경우에, NLU 결정 모듈(1440)은 디바이스(1000)가 NLU 처리를 수행하지 않을 것을 결정할 수 있다.
도메인 식별 모듈(1450)은 인코더(1411)로부터 출력된 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 도메인 식별 모듈(1450)은 인코더 출력 값을 기반으로 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 예를 들어, 도메인 식별 모듈(1450)은 디바이스(1000) 내의 인코더의 출력단에 연결된 프로젝션 레이어로부터 텍스트를 획득하고, 획득된 텍스트를 이용하여 인코더의 출력 값에 관련된 도메인을 식별할 수 있다. 도메인 식별 모듈(1450)은 인코더의 출력 값으로부터 생성되는 텍스트의 도메인 신뢰도에 기초하여, 인코더 출력 값에 관련된 도메인을 식별할 수 있다. 예를 들어, 도메인 식별 모듈(1450)은 인코더 출력 값으로부터 획득되는 텍스트가 기설정된 도메인에 어느 정도 관련성이 있는 지를 나타내는 컨피던스 스코어를 산출할 수 있다. 또한, 도메인 식별 모듈(1450)은 기 설정된 도메인에 대해 산출된 도메인 신뢰도에 기초하여, 인코더 출력 값에 관련된 도메인을 식별할 수 있다.
또한, 도메인 식별 모듈(1450)은 디바이스(1000)의 ASR 모델의 출력 값의 도메인 신뢰도를 산출할 수 잇다. 도메인 식별 모듈(1450)은 디바이스(1000)의 ASR 모델의 출력 값이 NLU 처리를 위해 미리 등록된 도메인에 어느 정도 관련성이 있는 지를 나타내는 도메인 신뢰도를 산출할 수 있다. 예를 들어, 도메인 식별 모듈(1450)은 기 등록된 복수의 도메인 각각에 대하여, 디바이스(1000)의 ASR 모델의 출력 값이 도메인에 관련된 정도를 나타내는 컨피던스 스코어를 산출할 수 있다.
또한, 도메인 식별 모듈(1450)은 서버(2000)의 ASR 모델의 출력 값의 도메인 신뢰도를 산출할 수 있다. 도메인 식별 모듈(1450)은 서버(2000)의 ASR 모델의 출력 값이 NLU 처리를 위해 미리 등록된 도메인에 어느 정도 관련성이 있는 지를 나타내는 도메인 신뢰도를 산출할 수 있다. 예를 들어, 도메인 식별 모듈(1450)은 기 등록된 복수의 도메인 각각에 대하여, 서버(2000)의 ASR 모델의 출력 값이 도메인에 관련된 정도를 나타내는 컨피던스 스코어를 산출할 수 있다.
도메인 등록 모듈(1460)은 도메인을 디바이스(1000)에 등록할 수 있다. 특정 도메인이 디바이스(1000)에 등록되고, 등록 이후에 생성되는 인코더 출력 값이 등록된 도메인에 관련되었다고 판단되면, 등록 이후에 생성된 인코더 출력 값은 서버(2000)로 전송되지 않고 디바이스(1000) 내의 디코더를 이용하여 처리될 수 있다.
예를 들어, 도메인 등록 모듈(1460)은 인코더 출력 값의 평가 결과에 기초하여, 특정 도메인을 디바이스(1000)에 등록할 수 있다. 예를 들어, 도메인 등록 모듈(1460)은 ASR 모델(1410)로부터 출력된 문자열에 대한 평가 결과에 기초하여, 특정 도메인을 디바이스(1000)에 등록할 수 있다. 도메인 등록 모듈(1460)은, 예를 들어, 서버(2000)로부터 수신된 문자열의 평가 결과에 기초하여, 평가된 문자열에 관련된 도메인을 디바이스(1000)에 등록할 수 있다.
본 개시에 따른 인공지능과 관련된 기능은 프로세서와 메모리를 통해 동작된다. 프로세서는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서일 수 있다. 하나 또는 복수의 프로세서는, 메모리에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다.
기 정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.
인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다. 인공 신경망은 심층 신경망(DNN:Deep Neural Network)를 포함할 수 있으며, 예를 들어, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크 (Deep Q-Networks) 등이 있으나, 전술한 예에 한정되지 않는다.
본 개시의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 또는 프로그램 모듈과 같은 변조된 데이터 신호의 기타 데이터를 포함할 수 있다.
또한, 본 명세서에서, "부"는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
또한, 본 명세서에서, "a, b 또는 c 중 적어도 하나를 포함한다"는 "a만 포함하거나, b만 포함하거나, c만 포함하거나, a 및 b를 포함하거나, b 및 c를 포함하거나, a 및 c를 포함하거나, a, b 및 c를 모두 포함하는 것을 의미할 수 있다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 서버가 디바이스에 입력된 음성 신호에 관한 문자열을 제공하는 방법에 있어서,
    상기 디바이스의 종단간(End-to-End) ASR(Automatic Speech Recognition) 모델의 인코더로부터 출력되는 상기 인코더의 출력 값을 상기 디바이스로부터 수신하는 동작;
    상기 수신된 인코더의 출력 값에 대응되는 도메인을 식별하는 동작;
    상기 서버 내에 포함된 종단간 ASR 모델의 복수의 디코더들 중에서, 상기 식별된 도메인에 대응되는 디코더를 선택하는 동작;
    상기 선택된 디코더를 이용하여 상기 수신된 인코더의 출력 값으로부터 문자열을 획득하는 동작; 및
    상기 획득된 문자열을 상기 디바이스에게 제공하는 동작;
    을 포함하며,
    상기 인코더의 출력 값은, 상기 디바이스에 입력된 음성 신호를 인코딩함으로써 상기 디바이스에 의해 인코딩된 것인, 방법.
  2. 제1 항에 있어서,
    상기 도메인을 식별하는 동작은, 상기 인코더의 출력 값 또는 상기 디바이스로부터 수신되는 도메인 정보 중 적어도 하나에 기초하여 상기 도메인을 식별하는 것인, 방법.
  3. 제1 항에 있어서,
    상기 복수의 디코더들은 복수의 도메인에 각각 대응되며,
    상기 디코더를 선택하는 동작은, 상기 복수의 도메인에 대응되는 상기 복수의 디코더들 중에서 상기 식별된 도메인에 대응되는 상기 디코더를 선택하는 것인, 방법.
  4. 제1 항에 있어서,
    상기 서버는 복수 종류의 종단간 ASR 모델들에 대응되는 복수의 디코더들을 포함하며,
    상기 방법은,
    상기 디바이스로부터 상기 인코더의 식별 값을 수신하는 동작;
    을 더 포함하며,
    상기 디코더를 선택하는 동작은, 상기 인코더의 식별 값에 기초하여, 상기 디바이스의 인코더에 대응되는 상기 디코더를 선택하는 것인, 방법.
  5. 제1 항에 있어서,
    상기 디바이스에 의해 산출되는 상기 인코더의 출력 값의 신뢰도에 기초하여, 상기 인코더의 출력 값을 상기 디바이스로부터 상기 서버로 제공할 지가 상기 디바이스에 의해 결정되는 것인, 방법.
  6. 제1 항에 있어서,
    상기 인코더는 복수의 적층된(stacked) LSTM(Long Short-Term Memory) 레이어들을 포함하며,
    상기 인코더의 출력 값은, 상기 복수의 적층된 LSTM 레이어들 중 선택된 LSTM 레이어로부터 출력된 것인, 방법.
  7. 제6 항에 있어서,
    상기 인코더의 출력 값은, 상기 선택된 LSTM 레이어로부터 출력된 히든 레이어 벡터의 시퀀스를 포함하는 것인, 방법.
  8. 제7 항에 있어서,
    상기 도메인을 식별하는 동작은, 상기 인코더의 출력 값으로부터 텍스트를 획득하고, 상기 텍스트에 관련된 상기 도메인을 식별하는 것인, 방법.
  9. 제1 항에 있어서,
    상기 서버의 NLU(Natural Language Understanding) 모델을 이용하여 상기 획득된 문자열을 해석할 지를 결정하는 동작;
    을 더 포함하며,
    상기 문자열을 제공하는 동작은, 상기 서버의 NLU 모델을 이용하여 상기 문자열을 해석하지 않기로 결정되면, 상기 문자열을 상기 디바이스에게 제공하는 것인, 방법.
  10. 제9 항에 있어서,
    상기 서버의 NLU 모델을 이용하여 상기 문자열을 해석하기로 결정되면, 상기 문자열을 상기 서버의 NLU 모델에 입력하는 동작; 및
    상기 서버의 NLU 모델로부터 출력된 데이터에 기초한 보이스 어시스턴트 서비스를 상기 디바이스에게 제공하는 동작;
    을 더 포함하는 것인, 방법.
  11. 디바이스에 입력된 음성 신호에 관한 문자열을 제공하는 서버에 있어서,
    통신 인터페이스;
    하나 이상의 명령어들(instructions)을 포함하는 프로그램을 저장하는 저장부; 및
    상기 저장부에 저장된 프로그램의 하나 이상의 명령어들을 실행하는 프로세서; 를 포함하고,
    상기 프로세서는,
    상기 디바이스의 종단간(End-to-End) ASR(Automatic Speech Recognition) 모델의 인코더로부터 출력되는 상기 인코더의 출력 값을 상기 디바이스로부터 수신하고, 상기 수신된 인코더의 출력 값에 대응되는 도메인을 식별하고, 상기 서버 내에 포함된 종단간 ASR 모델의 복수의 디코더들 중에서, 상기 식별된 도메인에 대응되는 디코더를 선택하고, 상기 선택된 디코더를 이용하여 상기 수신된 인코더의 출력 값으로부터 문자열을 획득하고, 상기 획득된 문자열을 상기 디바이스에게 제공하며,
    상기 인코더의 출력 값은, 상기 디바이스에 입력된 음성 신호를 인코딩함으로써 상기 디바이스에 의해 인코딩된 것인, 서버.
  12. 제11 항에 있어서,
    상기 프로세서는 상기 하나 이상의 명령어들을 실행하여, 상기 인코더의 출력 값 또는 상기 디바이스로부터 수신되는 도메인 정보 중 적어도 하나에 기초하여 상기 도메인을 식별하는 것인, 서버.
  13. 제11 항에 있어서,
    상기 복수의 디코더들은 복수의 도메인에 각각 대응되며,
    상기 프로세서는 상기 하나 이상의 명령어들을 실행하여, 상기 복수의 도메인에 대응되는 상기 복수의 디코더들 중에서 상기 식별된 도메인에 대응되는 상기 디코더를 선택하는 것인, 서버.
  14. 제11 항에 있어서,
    상기 서버는 복수 종류의 종단간 ASR 모델들에 대응되는 복수의 디코더들을 포함하며,
    상기 프로세서는 상기 하나 이상의 명령어들을 실행하여, 상기 디바이스로부터 상기 인코더의 식별 값을 수신하며, 상기 인코더의 식별 값에 기초하여, 상기 디바이스의 인코더에 대응되는 상기 디코더를 선택하는 것인, 서버.
  15. 제11 항에 있어서,
    상기 디바이스에 의해 산출되는 상기 인코더의 출력 값의 신뢰도에 기초하여, 상기 인코더의 출력 값을 상기 디바이스로부터 상기 서버로 제공할 지가 상기 디바이스에 의해 결정되는 것인, 서버.
  16. 제11 항에 있어서,
    상기 인코더는 복수의 적층된(stacked) LSTM(Long Short-Term Memory) 레이어들을 포함하며,
    상기 인코더의 출력 값은, 상기 복수의 적층된 LSTM 레이어들 중 선택된 LSTM 레이어로부터 출력된 것인, 서버.
  17. 제16 항에 있어서,
    상기 인코더의 출력 값은, 상기 선택된 LSTM 레이어로부터 출력된 히든 레이어 벡터의 시퀀스를 포함하는 것인, 서버.
  18. 제17 항에 있어서,
    상기 프로세서는 상기 하나 이상의 명령어들을 실행하여, 상기 인코더의 출력 값으로부터 텍스트를 획득하고, 상기 텍스트에 관련된 상기 도메인을 식별하는 것인, 서버.
  19. 제11 항에 있어서,
    상기 프로세서는 상기 하나 이상의 명령어들을 실행하여, 상기 서버의 NLU(Natural Language Understanding) 모델을 이용하여 상기 획득된 문자열을 해석할 지를 결정하며, 상기 서버의 NLU 모델을 이용하여 상기 문자열을 해석하지 않기로 결정되면, 상기 문자열을 상기 디바이스에게 제공하는 것인, 서버.
  20. 제19 항에 있어서,
    상기 프로세서는 상기 하나 이상의 명령어들을 실행하여, 상기 서버의 NLU 모델을 이용하여 상기 문자열을 해석하기로 결정되면, 상기 문자열을 상기 서버의 NLU 모델에 입력하고, 상기 서버의 NLU 모델로부터 출력된 데이터에 기초한 보이스 어시스턴트 서비스를 상기 디바이스에게 제공하는 것인, 서버.
KR1020190146177A 2019-08-13 2019-11-14 사용자의 음성을 인식하는 시스템 및 방법 KR20210019920A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US16/988,929 US11532310B2 (en) 2019-08-13 2020-08-10 System and method for recognizing user's speech
CN202080055338.0A CN114207711A (zh) 2019-08-13 2020-08-10 用于识别用户的语音的系统和方法
EP20852027.0A EP3980991B1 (en) 2019-08-13 2020-08-10 System and method for recognizing user's speech
PCT/KR2020/010565 WO2021029642A1 (en) 2019-08-13 2020-08-10 System and method for recognizing user's speech

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962886027P 2019-08-13 2019-08-13
US62/886,027 2019-08-13

Publications (1)

Publication Number Publication Date
KR20210019920A true KR20210019920A (ko) 2021-02-23

Family

ID=74688202

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020190146177A KR20210019920A (ko) 2019-08-13 2019-11-14 사용자의 음성을 인식하는 시스템 및 방법
KR1020190162921A KR20210019924A (ko) 2019-08-13 2019-12-09 음성 인식 결과를 수정하는 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020190162921A KR20210019924A (ko) 2019-08-13 2019-12-09 음성 인식 결과를 수정하는 시스템 및 방법

Country Status (1)

Country Link
KR (2) KR20210019920A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102472910B1 (ko) * 2022-08-05 2022-12-02 주식회사 실비아헬스 인지 장애와 연관된 정보를 제공하는 방법 및 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220124547A (ko) * 2021-03-03 2022-09-14 삼성전자주식회사 사용자의 음성 입력을 정정하는 전자 장치 및 그 동작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102472910B1 (ko) * 2022-08-05 2022-12-02 주식회사 실비아헬스 인지 장애와 연관된 정보를 제공하는 방법 및 장치
WO2024029799A1 (ko) * 2022-08-05 2024-02-08 주식회사 실비아헬스 인지 장애와 연관된 정보를 제공하는 방법 및 장치

Also Published As

Publication number Publication date
KR20210019924A (ko) 2021-02-23

Similar Documents

Publication Publication Date Title
CN111028827B (zh) 基于情绪识别的交互处理方法、装置、设备和存储介质
US11308955B2 (en) Method and apparatus for recognizing a voice
WO2019196196A1 (zh) 一种耳语音恢复方法、装置、设备及可读存储介质
US11532310B2 (en) System and method for recognizing user's speech
US11574637B1 (en) Spoken language understanding models
US20230089285A1 (en) Natural language understanding
CN114051639A (zh) 使用说话者基线进行情绪检测
CN112955862A (zh) 电子装置及其控制方法
KR20200091797A (ko) 음성 인식 장치 및 방법
US20200135212A1 (en) Speech recognition method and apparatus in environment including plurality of apparatuses
US20210249001A1 (en) Dialog System Capable of Semantic-Understanding Mapping Between User Intents and Machine Services
US11521619B2 (en) System and method for modifying speech recognition result
US10923113B1 (en) Speechlet recommendation based on updating a confidence value
CN114223029A (zh) 支持装置进行语音识别的服务器及服务器的操作方法
WO2023226260A1 (zh) 语音生成方法及装置、存储介质、电子设备
US20240013784A1 (en) Speaker recognition adaptation
US11373656B2 (en) Speech processing method and apparatus therefor
KR20210019920A (ko) 사용자의 음성을 인식하는 시스템 및 방법
CN113362813A (zh) 一种语音识别方法、装置和电子设备
CN113886644A (zh) 数字人视频生成方法、装置、电子设备和存储介质
US11335346B1 (en) Natural language understanding processing
CN113903338A (zh) 面签方法、装置、电子设备和存储介质
US11544504B1 (en) Dialog management system
KR20220109238A (ko) 사용자의 발화 입력에 관련된 추천 문장을 제공하는 디바이스 및 방법
KR20210066651A (ko) 전자 장치 및 이의 제어 방법