KR20200007530A - 사용자 음성 입력 처리 방법 및 이를 지원하는 전자 장치 - Google Patents

사용자 음성 입력 처리 방법 및 이를 지원하는 전자 장치 Download PDF

Info

Publication number
KR20200007530A
KR20200007530A KR1020180081746A KR20180081746A KR20200007530A KR 20200007530 A KR20200007530 A KR 20200007530A KR 1020180081746 A KR1020180081746 A KR 1020180081746A KR 20180081746 A KR20180081746 A KR 20180081746A KR 20200007530 A KR20200007530 A KR 20200007530A
Authority
KR
South Korea
Prior art keywords
speaker
speech
module
utterance
user
Prior art date
Application number
KR1020180081746A
Other languages
English (en)
Other versions
KR102563817B1 (ko
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 KR1020180081746A priority Critical patent/KR102563817B1/ko
Priority to US17/259,940 priority patent/US11514890B2/en
Priority to PCT/KR2019/008668 priority patent/WO2020013666A1/ko
Publication of KR20200007530A publication Critical patent/KR20200007530A/ko
Application granted granted Critical
Publication of KR102563817B1 publication Critical patent/KR102563817B1/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/08Speech classification or search
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/04Training, enrolment or model building
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • 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/04Segmentation; Word boundary detection
    • 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/28Constructional details of speech recognition systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/22Interactive procedures; Man-machine interfaces
    • G10L17/24Interactive procedures; Man-machine interfaces the user being prompted to utter a password or a predefined phrase
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • G10L25/87Detection of discrete points within a voice signal
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/93Discriminating between voiced and unvoiced parts of speech signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/06Decision making techniques; Pattern matching strategies
    • G10L17/08Use of distortion metrics or a particular distance between probe pattern and reference templates
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명의 일 실시 예는, 스피커, 마이크, 통신 인터페이스, 상기 스피커, 상기 마이크 및 상기 통신 인터페이스와 작동적으로(operatively) 연결되는 프로세서, 및 상기 프로세서와 작동적으로 연결되는 메모리를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서가, 상기 마이크를 통하여 제1 발화를 수신하고, 상기 제1 발화에 대한 화자 인식(speaker recognition)을 수행함으로써 화자 모델(speaker model)을 결정하고, 상기 제1 발화 수신 이후, 상기 마이크를 통하여 제2 발화를 수신하고, 상기 결정된 화자 모델을 적어도 부분적으로 이용하여 상기 제2 발화의 종점(end-point)을 감지하도록 하는 인스트럭션들(instructions)을 저장하는 전자 장치를 개시한다. 이 외에도 명세서를 통하여 파악되는 다양한 실시 예가 가능하다.

Description

사용자 음성 입력 처리 방법 및 이를 지원하는 전자 장치{Method for processing user voice input and electronic device supporting the same}
본 문서에서 개시되는 다양한 실시 예들은, 사용자 음성 입력의 처리 기술과 관련된다.
근래의 전자 장치는 사용자와의 인터렉션(interaction)을 지향하기 위한 일환으로 다양한 입력 방식을 제안하고 있다. 예를 들어, 전자 장치는 지정된 어플리케이션 프로그램의 실행을 기반으로 사용자 발화에 따른 음성 데이터를 입력 받는 음성 입력 방식을 지원할 수 있다. 나아가, 전자 장치는 입력 받은 음성 데이터를 인식하여 사용자 발화의 의도를 도출하고, 도출된 사용자 발화 의도에 대응하는 기능 동작을 수행하거나, 콘텐츠를 제공하는 음성 인식 서비스를 지원할 수 있다.
전자 장치는 사용자 발화에 따른 음성 데이터를 입력 받는 동작에서, 상기 음성 데이터에 대한 전처리(preprocessing)를 수행할 수 있다. 예를 들어, 전자 장치는 사용자 발화의 종점(end-point)을 검출함으로써, 입력 받은 음성 데이터의 구간을 판단할 수 있다. 그러나, 전자 장치의 운용 환경 상에 노이즈(noise)(예: 음향 매체의 오디오 또는 타인의 음성 등)가 존재하는 경우, 전자 장치에는 상기 노이즈에 따른 잡음 데이터와 사용자의 음성 데이터가 혼입될 수 있으며, 이는 사용자 음성 데이터에 대한 전처리 또는 인식 효율을 저하시킬 수 있다.
본 문서에서 개시되는 다양한 실시 예들은, 사용자 발화에 따른 음성 데이터를 명확하게 인식할 수 있는, 사용자 음성 입력 처리 방법 및 이를 지원하는 전자 장치를 제공할 수 있다.
일 실시 예에 따른 전자 장치는, 스피커, 마이크, 통신 인터페이스, 상기 스피커, 상기 마이크 및 상기 통신 인터페이스와 작동적으로(operatively) 연결되는 프로세서, 및 상기 프로세서와 작동적으로 연결되는 메모리를 포함할 수 있다.
일 실시 예에 따르면, 상기 메모리는, 실행 시에, 상기 프로세서가, 상기 마이크를 통하여 제1 발화를 수신하고, 상기 제1 발화에 대한 화자 인식(speaker recognition)을 수행함으로써 화자 모델(speaker model)을 결정하고, 상기 제1 발화 수신 이후, 상기 마이크를 통하여 제2 발화를 수신하고, 상기 결정된 화자 모델을 적어도 부분적으로 이용하여 상기 제2 발화의 종점(end-point)을 감지하도록 하는 인스트럭션들(instructions)을 저장할 수 있다.
다양한 실시 예에 따르면, 사용자 발화에 따른 음성 데이터의 인식률 또는 음성 인식 서비스에 대한 신뢰도가 향상될 수 있다.
다양한 실시 예에 따르면, 사용자 발화 처리 시 잡음 데이터를 배제함으로써, 상기 사용자 발화에 대한 전자 장치 응답에 소요되는 시간이 단축되고, 응답 대기에 따른 사용자의 위화감이 경감될 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1a는 일 실시 예에 따른 통합 지능화 시스템을 도시한 도면이다.
도 1b는 일 실시 예에 따른 통합 지능화 시스템의 사용자 단말을 도시한 도면이다.
도 1c는 일 실시 예에 따른 사용자 단말의 지능형 앱 실행 형태를 도시한 도면이다.
도 1d는 일 실시 예에 따른 통합 지능화 시스템의 지능형 서버를 도시한 도면이다.
도 1e는 일 실시 예에 따른 지능형 서버의 패스 룰 생성 형태를 도시한 도면이다.
도 2는 일 실시 예에 따른 사용자 단말의 운용 환경을 도시한 도면이다.
도 3a는 일 실시 예에 따른 사용자 단말의 전처리 모듈을 도시한 도면이다.
도 3b는 일 실시 예에 따른 사용자 단말의 종점 검출 방법을 도시한 도면이다.
도 3c는 일 실시 예에 따른 노이즈 억제 모듈의 동작 예를 도시한 도면이다.
도 4a는 일 실시 예에 따른 사용자 단말의 웨이크 업 명령 발화 인식 형태를 도시한 도면이다.
도 4b는 일 실시 예에 따른 사용자 단말의 키워드 인식 모델 및 화자 인식 모델에 대한 학습 형태를 도시한 도면이다.
도 5는 일 실시 예에 따른 사용자 단말의 기준값 기반의 화자 인식 형태를 도시한 도면이다.
도 6은 일 실시 예에 따른 사용자 단말의 화자 식별 기반의 발화 처리 형태를 도시한 도면이다.
도 7은 일 실시 예에 따른 사용자 단말이 수신한 음성 데이터의 형태를 도시한 도면이다.
도 8은 일 실시 예에 따른 사용자 단말의 사용자 음성 입력 처리 방법을 도시한 도면이다.
도 9는 일 실시 예에 따른 사용자 단말의 사용자 음성 입력 처리 형태에 대한 시뮬레이션의 일례를 도시한 도면이다.
도 10은 일 실시 예에 따른 네트워크 환경 내의 전자 장치를 도시한 도면이다.
도면의 설명과 관련하여, 동일 또는 대응되는 구성요소에 대해서는 동일한 참조 번호가 부여될 수 있다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, "가진다", "가질 수 있다", "포함한다", 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B", "A 또는/및 B 중 적어도 하나", 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B", "A 및 B 중 적어도 하나", 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 문서에서 사용된 "제1", "제2", "첫째", 또는 "둘째" 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성(또는 설정)된"은 하드웨어적으로 "특별히 설계된(specifically designed to)"것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성(또는 설정)된 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은 관련 기술의 문맥 상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.
본 문서의 다양한 실시 예들에 따른 전자 장치는, 예를 들면, 스마트폰(smartphone), 태블릿 PC(tablet Personal Computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), 데스크톱 PC (desktop PC), 랩탑 PC(laptop PC), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), MP3 플레이어, 모바일 의료기기, 카메라, 또는 웨어러블 장치(wearable device) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에 따르면 웨어러블 장치는 엑세서리 형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(Head-Mounted-Device(HMD)), 직물 또는 의류 일체 형(예: 전자 의복), 신체 부착 형(예: 스킨 패드(skin pad) 또는 문신), 또는 생체 이식 형(예: implantable circuit) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에서, 전자 장치는 가전 제품(home appliance)일 수 있다. 가전 제품은, 예를 들면, 텔레비전, DVD 플레이어(Digital Video Disk player), 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성 HomeSync™, 애플TV™, 또는 구글 TV™), 게임 콘솔(예: Xbox™, PlayStation™), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시 예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(Magnetic Resonance Angiography), MRI(Magnetic Resonance Imaging), CT(Computed Tomography), 촬영기, 또는 초음파기 등), 내비게이션(navigation) 장치, 위성 항법 시스템(GNSS(Global Navigation Satellite System)), EDR(Event Data Recorder), FDR(Flight Data Recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 금융 기관의 ATM(Automatic Teller's Machine), 상점의 POS(Point Of Sales), 또는 사물 인터넷 장치(internet of things)(예: 전구, 각종 센서, 전기 또는 가스 미터기, 스프링클러 장치, 화재경보기, 온도조절기(thermostat), 가로등, 토스터(toaster), 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예에 따르면, 전자 장치는 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에서, 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 어떤 실시 예에 따른 전자 장치는 플렉서블 전자 장치일 수 있다. 또한, 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않으며, 기술 발전에 따른 새로운 전자 장치를 포함할 수 있다.
이하, 첨부 도면을 참조하여, 다양한 실시 예에 따른 전자 장치가 설명된다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
본 발명을 서술하기에 앞서, 도 1a, 도 1b, 도 1c, 도 1d 및 도 1e를 참조하여 본 발명의 다양한 실시 예가 적용될 수 있는 통합 지능화 시스템이 설명될 수 있다.
도 1a는 일 실시 예에 따른 통합 지능화 시스템을 도시한 도면이다.
도 1a를 참조하면, 통합 지능화 시스템(10)은 사용자 단말(100), 지능형 서버(200), 개인화 정보 서버(300) 또는 제안 서버(400)를 포함할 수 있다.
사용자 단말(100)은 사용자 단말(100) 내부에 저장된 앱(app)(또는, 어플리케이션 프로그램(application program))(예: 알람 앱, 메시지 앱, 또는 사진(갤러리) 앱 등)을 통해 사용자에게 필요한 서비스를 제공할 수 있다. 예를 들어, 사용자 단말(100)은 사용자 단말(100) 내부에 저장된 지능형 앱(또는, 음성 인식 앱)을 통해 다른 앱을 실행하고 동작시킬 수 있다. 사용자 단말(100)의 상기 지능형 앱을 통해 상기 다른 앱을 실행시키고 태스크(task)를 수행하기 위한 사용자 입력을 수신할 수 있다. 상기 사용자 입력은, 예를 들어, 물리적 버튼, 터치 패드, 음성 입력, 또는 원격 입력 등을 통해 수신될 수 있다.
일 실시 예에 따르면, 사용자 단말(100)은 사용자의 발화를 사용자 입력으로 수신할 수 있다. 사용자 단말(100)은 사용자의 발화를 수신하고, 상기 사용자의 발화에 기초하여 앱을 동작시키는 명령을 생성할 수 있다. 이에 따라, 사용자 단말(100)은 상기 명령을 이용하여 상기 앱을 동작시킬 수 있다.
지능형 서버(200)는 통신망을 통해 사용자 단말(100)로부터 사용자 음성 입력(voice input)을 수신하여 텍스트 데이터(text data)로 변경할 수 있다. 다른 실시 예에서는, 지능형 서버(200)는 상기 텍스트 데이터에 기초하여 패스 룰(path rule)을 생성(또는, 선택)할 수 있다. 상기 패스 룰은 앱의 기능을 수행하기 위한 동작(action)(또는, 오퍼레이션(operation))에 대한 정보 또는 상기 동작을 실행하기 위해 필요한 파라미터에 대한 정보를 포함할 수 있다. 또한, 상기 패스 룰은 상기 앱의 상기 동작의 순서를 포함할 수 있다. 사용자 단말(100)은 상기 패스 룰을 수신하고, 상기 패스 룰에 따라 앱을 선택하고, 상기 선택된 앱에서 상기 패스 룰에 포함된 동작을 실행시킬 수 있다.
본 문서의 “패스 룰(path rule)” 이라는 용어는 일반적으로, 전자 장치가 사용자에 의해 요청된 태스크를 수행하기 위한 상태들의 시퀀스를 의미할 수 있지만, 이에 제한되지 않는다. 다시 말해, 패스 룰은 상태들의 시퀀스에 대한 정보를 포함할 수 있다. 상기 태스크는, 예를 들어, 지능형 앱이 제공할 수 있는 어떠한 동작(action)일 수 있다. 상기 태스크는 일정을 생성하거나, 원하는 상대방에게 사진을 전송하거나, 날씨 정보를 제공하는 것을 포함 할 수 있다. 사용자 단말(100)은 적어도 하나 이상의 상태(예: 사용자 단말(100)의 동작 상태)를 순차적으로 가짐으로써, 상기 태스크를 수행할 수 있다.
일 실시 예에 따르면, 패스 룰은 인공 지능(artificial intelligent) 시스템에 의해 제공되거나, 생성될 수 있다. 인공지능 시스템은 룰 베이스 시스템(rule-based system) 일 수도 있고, 신경망 베이스 시스템(neural network-based system)(예: 피드포워드 신경망(Feedforward Neural Network(FNN)) 또는 순환 신경망(Recurrent Neural Network(RNN))) 일 수도 있다. 또는 전술한 것의 조합 또는 이와 다른 인공지능 시스템일 수도 있다. 일 실시 예에 따르면, 패스 룰은 미리 정의된 패스 룰들의 집합에서 선택될 수 있거나, 사용자 요청에 응답하여 실시간으로 생성될 수 있다. 예를 들어, 인공지능 시스템은 미리 정의 된 복수의 패스 룰 중 적어도 패스 룰을 선택하거나, 동적(또는, 실시간)으로 패스 룰을 생성할 수 있다. 또한, 사용자 단말(100)은 패스 룰을 제공하기 위해 하이브리드 시스템을 사용할 수 있다.
일 실시 예에 따르면, 사용자 단말(100)은 상기 동작을 실행하고, 동작을 실행한 사용자 단말(100)의 상태에 대응되는 화면을 디스플레이에 표시할 수 있다. 다른 실시 예에 따르면, 사용자 단말(100)은 상기 동작을 실행하고, 동작을 수행한 결과를 디스플레이에 표시하지 않을 수 있다. 사용자 단말(100)은, 예를 들어, 복수의 동작을 실행하고, 상기 복수의 동작의 일부 결과 만을 디스플레이에 표시할 수 있다. 사용자 단말(100)은, 예를 들어, 마지막 순서의 동작을 실행한 결과만을 디스플레이에 표시할 수 있다. 또 다른 실시 예에 따르면, 사용자 단말(100)은 사용자의 입력을 수신하여 상기 동작을 실행한 결과를 디스플레이에 표시할 수 있다.
개인화 정보 서버(300)는 사용자 정보가 저장된 데이터베이스를 포함할 수 있다. 예를 들어, 개인화 정보 서버(300)는 사용자 단말(100)로부터 사용자 정보(예: 컨텍스트 정보 또는 앱 실행 정보 등)를 수신하여 상기 데이터베이스에 저장할 수 있다. 지능형 서버(200)는 통신망을 통해 개인화 정보 서버(300)로부터 상기 사용자 정보를 수신하여 사용자 입력에 대한 패스 룰을 생성하는 경우에 이용할 수 있다. 일 실시 예에 따르면, 사용자 단말(100)은 통신망을 통해 개인화 정보 서버(300)로부터 사용자 정보를 수신하여 데이터베이스를 관리하기 위한 정보로 이용할 수 있다.
제안 서버(400)는 사용자 단말(100) 내의 기능 혹은 어플리케이션의 소개 또는 제공될 기능에 대한 정보가 저장된 데이터베이스를 포함할 수 있다. 예를 들어, 제안 서버(400)는 개인화 정보 서버(300)로부터 사용자 단말(100)의 사용자 정보를 수신하여 사용자가 사용 할 수 있는 기능에 대한 데이터베이스를 포함 할 수 있다. 사용자 단말(100)은 통신망을 통해 제안 서버(400)로부터 상기 제공될 기능에 대한 정보를 수신하여 사용자에게 정보를 제공할 수 있다.
도 1b는 일 실시 예에 따른 통합 지능화 시스템의 사용자 단말을 도시한 도면이다.
도 1b를 참조하면, 사용자 단말(100)은 입력 모듈(110), 디스플레이(120), 스피커(130), 메모리(140) 또는 프로세서(150)를 포함할 수 있다. 사용자 단말(100)의 적어도 일부 구성요소(예: 입력 모듈(110), 디스플레이(120), 스피커(130) 또는 메모리(140) 등)는 프로세서(150)에 전기적 또는 기능적으로 연결될 수 있다. 사용자 단말(100)은 하우징을 더 포함할 수 있고, 상기 사용자 단말(100)의 구성요소들은 상기 하우징의 내부에 안착되거나, 하우징 상에(on the housing) 위치할 수 있다. 사용자 단말(100)은 상기 하우징의 내부에 위치한 통신 회로(또는, 통신 인터페이스)를 더 포함할 수 있다. 사용자 단말(100)은 상기 통신 회로를 통해 외부 서버(예: 지능형 서버(200))와 데이터(또는, 신호)를 송수신할 수 있다. 다양한 실시 예에서, 사용자 단말(100)은 전자 장치로도 명명될 수 있으며, 도 10을 통하여 언급될 전자 장치(1001)의 구성요소를 더 포함할 수 있다.
일 실시 예에 따른, 입력 모듈(110)은 사용자로부터 사용자 입력을 수신할 수 있다. 예를 들어, 입력 모듈(110)은 연결된 외부 장치(예: 키보드 또는 헤드셋 등)로부터 사용자 입력을 수신할 수 있다. 다른 예를 들어, 입력 모듈(110)은 디스플레이(120)와 결합된 터치 스크린(예: 터치 스크린 디스플레이)을 포함할 수 있다. 또 다른 예를 들어, 입력 모듈(110)은 사용자 단말(100)(또는, 사용자 단말(100)의 하우징)에 위치한 하드웨어 키(또는, 물리적 키)를 포함할 수 있다.
일 실시 예에 따르면, 입력 모듈(110)은 사용자의 발화를 음성 신호로 수신할 수 있는 마이크를 포함할 수 있다. 예를 들어, 입력 모듈(110)은 발화 입력 시스템(speech input system)을 포함하고, 상기 발화 입력 시스템을 통해 사용자의 발화를 음성 신호로 수신할 수 있다. 상기 마이크의 적어도 일부는 예컨대, 상기 하우징의 일 영역(예: 제1 영역)을 통해 노출될 수 있다. 일 실시 예에서, 상기 마이크는 사용자 발화에 따른 입력(예: 음성 입력)을 수신하기 위하여 항시 구동되는 상태(예: always on)로 제어되거나 또는, 사용자 단말(100)의 일 영역으로 제공되는 하드웨어 키(예: 도 1c의 112)에 사용자 조작이 인가되는 경우 구동하도록 제어될 수 있다. 상기 사용자 조작이라 함은, 하드웨어 키(112)에 대한 프레스(press) 또는 프레스 홀드(press and hold) 등을 포함할 수 있다.
일 실시 예에 따른, 디스플레이(120)는 이미지나 비디오, 및/또는 어플리케이션의 실행 화면을 표시할 수 있다. 예를 들어, 디스플레이(120)는 앱의 그래픽 사용자 인터페이스(Graphic User Interface)(GUI)를 표시할 수 있다. 일 실시 예에서, 디스플레이(120)는 사용자 신체(예: 손가락)에 의한 입력(예: 터치 입력 또는 드래그 입력 등)을 수신하기 위하여, 상기 하우징의 일 영역(예: 제2 영역)을 통해 적어도 일부가 노출될 수 있다.
일 실시 예에 따르면, 스피커(130)는 음성 신호를 출력할 수 있다. 예를 들어, 스피커(130)는 사용자 단말(100) 내부에서 생성되거나 또는 외부 장치(예: 지능형 서버(도 1a의 200))로부터 수신하는 음성 신호를 출력할 수 있다. 일 실시 예에서, 스피커(130)는 상기 음성 신호의 출력 효율과 관련하여, 적어도 일부가 상기 하우징의 일 영역(예: 제3 영역)을 통해 노출될 수 있다.
일 실시 예에 따르면, 메모리(140)는 복수의 앱(또는, 어플리케이션 프로그램(application program))(141, 143)을 저장할 수 있다. 복수의 앱(141, 143)은 예를 들어, 사용자 입력에 대응되는 기능을 수행하기 위한 프로그램(program)일 수 있다. 일 실시 예에 따르면, 메모리(140)는 지능형 에이전트(145), 실행 매니저 모듈(147) 또는 지능형 서비스 모듈(149)을 저장할 수 있다. 지능형 에이전트(145), 실행 매니저 모듈(147) 및 지능형 서비스 모듈(149)은, 예를 들어, 수신된 사용자 입력(예: 사용자 발화)을 처리하기 위한 프레임워크(framework)(또는, 어플리케이션 프레임워크(application framework))일 수 있다.
일 실시 예에 따르면, 메모리(140)는 사용자 입력을 인식하는데 필요한 정보를 저장할 수 있는 데이터베이스를 포함할 수 있다. 예를 들어, 메모리(140)은 로그(log) 정보를 저장할 수 있는 로그 데이터베이스를 포함할 수 있다. 다른 예를 들어, 메모리(140)는 사용자 정보를 저장할 수 있는 페르소나 데이터베이스를 포함할 수 있다.
일 실시 예에 따르면, 메모리(140)는 복수의 앱(141, 143)을 저장하고, 복수의 앱(141, 143)은 로드되어 동작할 수 있다. 예를 들어, 메모리(140)에 저장된 복수의 앱(141,143)은 실행 매니저 모듈(147)에 의해 로드되어 동작할 수 있다. 복수의 앱(141, 143)은 기능을 수행하는 실행 서비스 모듈(141a, 143a)을 포함할 수 있다. 일 실시 예에서, 복수의 앱(141, 143)은 기능을 수행하기 위하여 실행 서비스 모듈(141a, 143a)를 통해 복수의 동작(예: 상태들의 시퀀스)(141b, 143b)을 실행할 수 있다. 다시 말해, 실행 서비스 모듈(141a, 143a)은 프로세서(150)의 실행 매니저 모듈(147)에 의해 활성화되고, 복수의 동작 (141b, 143b)을 실행할 수 있다.
일 실시 예에 따르면, 앱(141, 143)의 동작(141b, 143b)이 실행되었을 때, 동작(141b, 143b)의 실행에 따른 실행 상태 화면은 디스플레이(120)에 표시될 수 있다. 상기 실행 상태 화면은, 예를 들어, 동작(141b, 143b)이 완료된 상태의 화면일 수 있다. 상기 실행 상태 화면은, 다른 예를 들어, 동작(141b, 143b)의 실행이 정지된 상태(partial landing)(예: 동작(141b, 143b)에 필요한 파라미터가 입력되지 않은 경우)의 화면일 수 있다.
일 실시 예에 따른, 실행 서비스 모듈(141a, 143a)은 패스 룰에 따라 동작(141b, 143b)을 실행할 수 있다. 예를 들어, 실행 서비스 모듈(141a, 143a)은 실행 매니저 모듈(147)에 의해 활성화되고, 실행 매니저 모듈(147)로부터 상기 패스 룰에 따라 실행 요청을 전달 받고, 상기 실행 요청에 따라 동작(141b, 143b)을 함으로써, 앱(141, 143)의 기능을 실행할 수 있다. 실행 서비스 모듈(141a, 143a)은 상기 동작(141b, 143b)의 수행이 완료되면 완료 정보를 실행 매니저 모듈(147)로 전달할 수 있다.
일 실시 예에 따르면, 앱(141, 143)에서 복수의 동작(141b, 143b)이 실행되는 경우, 복수의 동작(141b, 143b)은 순차적으로 실행될 수 있다. 실행 서비스 모듈(141a, 143a)은 하나의 동작(예: 제1 앱(141)의 동작 1 또는 제2 앱(143)의 동작 1)의 실행이 완료되면 다음 동작(예: 제1 앱(141)의 동작 2 또는 제2 앱(143)의 동작 2)을 오픈하고 완료 정보를 실행 매니저 모듈(147)로 전달할 수 있다. 여기서 임의의 동작을 오픈한다는 것은, 임의의 동작을 실행 가능한 상태로 천이시키거나, 임의의 동작의 실행을 준비하는 것으로 이해될 수 있다. 다시 말해서, 임의의 동작이 오픈되지 않으면, 해당 동작은 실행될 수 없다. 실행 매니저 모듈(147)은 상기 완료 정보가 수신되면 다음 동작(예: 제1 앱(141)의 동작 2 또는 제2 앱(143)의 동작 2)에 대한 실행 요청을 실행 서비스 모듈(141a, 143a)로 전달할 수 있다. 일 실시 예에 따르면, 복수의 앱(141, 143)이 실행되는 경우, 복수의 앱(141, 143)은 순차적으로 실행될 수 있다. 예를 들어, 제1 앱(141)의 마지막 동작(예: 제1 앱(141)의 동작 3)의 실행이 완료되어 완료 정보를 수신하면, 실행 매니저 모듈(147)은 제2 앱(143)의 첫번째 동작(예: 제2 앱(143)의 동작 1)의 실행 요청을 실행 서비스(143a)로 전달할 수 있다.
일 실시 예에 따르면, 앱(141, 143)에서 복수의 동작(141b, 143b)이 실행된 경우, 상기 실행된 복수의 동작(141b, 143b) 각각의 실행에 따른 결과 화면은 디스플레이(120)에 표시될 수 있다. 일 실시 예에 따르면, 상기 실행된 복수의 동작(141b, 143b)의 실행에 따른 복수의 결과 화면 중 일부만 디스플레이(120)에 표시될 수 있다.
일 실시 예에 따르면, 메모리(140)는 지능형 에이전트(145)와 연동된 지능형 앱(예: 음성 인식 앱)을 저장할 수 있다. 지능형 에이전트(145)와 연동된 앱은 사용자의 발화를 음성 신호로 수신하여 처리할 수 있다. 일 실시 예에 따르면, 지능형 에이전트(145)와 연동된 앱은 입력 모듈(110)을 통해 입력되는 특정 입력(예: 하드웨어 키를 통한 입력, 터치 스크린을 통한 입력, 또는 특정 음성 입력)에 의해 동작될 수 있다.
일 실시 예에 따르면, 메모리(140)에 저장된 지능형 에이전트(145), 실행 매니저 모듈(147) 또는 지능형 서비스 모듈(149)이 프로세서(150)에 의해 실행될 수 있다. 지능형 에이전트(145), 실행 매니저 모듈(147) 또는 지능형 서비스 모듈(149)의 기능은 프로세서(150)에 의해 구현될 수 있다. 상기 지능형 에이전트(145), 실행 매니저 모듈(147) 및 지능형 서비스 모듈(149)의 기능에 대해 프로세서(150)의 동작으로 설명하겠다. 일 실시 예에 따르면, 메모리(140)에 저장된 지능형 에이전트(145), 실행 매니저 모듈(147) 또는 지능형 서비스 모듈(149)은 소프트웨어뿐만 아니라 하드웨어로 구현될 수 있다.
일 실시 예에 따르면, 프로세서(150)는 사용자 단말(100)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(150)는 입력 모듈(110)을 제어하여 사용자 입력을 수신할 수 있다. 프로세서(150)는 디스플레이(120)를 제어하여 이미지를 표시할 수 있다. 프로세서(150)는 스피커(130)를 제어하여 음성 신호를 출력할 수 있다. 프로세서(150)는 메모리(140)를 제어하여 프로그램을 실행시키고, 필요한 정보를 불러오거나 저장할 수 있다.
일 실시 예에 따르면 프로세서(150)는 메모리(140)에 저장된 지능형 에이전트(145), 실행 매니저 모듈(147) 또는 지능형 서비스 모듈(149)을 실행시킬 수 있다. 이에 따라, 프로세서(150)는 지능형 에이전트(145), 실행 매니저 모듈(147) 또는 지능형 서비스 모듈(149)의 기능을 구현할 수 있다.
일 실시 예에 따른, 프로세서(150)는 지능형 에이전트(145)를 실행하여 사용자 입력으로 수신된 음성 신호에 기초하여 앱을 동작시키는 명령을 생성할 수 있다. 일 실시 예에 따른, 프로세서(150)는 실행 매니저 모듈(147)을 실행하여 상기 생성된 명령에 따라 메모리(140)에 저장된 앱(141, 143)을 실행시킬 수 있다. 일 실시 예에 따르면, 프로세서(150)는 지능형 서비스 모듈(149)을 실행하여 사용자의 정보를 관리하고, 상기 사용자의 정보를 이용하여 사용자 입력을 처리할 수 있다.
프로세서(150)는 지능형 에이전트(145)를 실행하여 입력 모듈(110)을 통해 수신된 사용자 입력을 지능형 서버(200)로 송신하고, 지능형 서버(200)를 통해 상기 사용자 입력을 처리할 수 있다. 일 실시 예에 따르면, 프로세서(150)는 지능형 에이전트(145)를 실행하여 상기 사용자 입력을 지능형 서버(200)로 송신하기 전에 상기 사용자 입력을 전처리할 수 있으며, 이에 대해서는 후술을 통하여 설명하기로 한다.
일 실시 예에 따르면, 지능형 에이전트(145)는 사용자의 호출을 인식하기 위해 메모리(140)에 저장된 웨이크 업(wake up) 인식 모듈을 실행시킬 수 있다. 이에 따라, 프로세서(150)는 상기 웨이크 업 인식 모듈을 통해 사용자의 웨이크 업 명령을 인식할 수 있고, 상기 웨이크 업 명령을 수신한 경우 사용자 입력을 수신하기 위한 지능형 에이전트(145)를 실행시킬 수 있다. 상기 웨이크 업 인식 모듈은 저전력 프로세서(예: 오디오 코덱에 포함된 프로세서)로 구현될 수 있다. 다양한 실시 예에 따르면, 프로세서(150)는 하드웨어 키를 통한 사용자 입력을 수신하였을 때 지능형 에이전트(145)를 실행시킬 수도 있다. 지능형 에이전트(145)가 실행된 경우, 지능형 에이전트(145)와 연동된 지능형 앱(예: 음성 인식 앱)이 실행될 수 있다.
일 실시 예에 따르면, 지능형 에이전트(145)는 사용자 입력을 인식하기 위한 음성 인식 모듈을 포함할 수 있다. 프로세서(150)는 상기 음성 인식 모듈을 통해 앱의 동작을 실행시키기 위한 사용자 입력을 인식할 수 있다. 다양한 실시 예에서, 프로세서(150)는 상기 음성 인식 모듈을 통해 제한된 사용자 입력(예: 카메라 앱이 실행 중일 때 촬영 동작을 실행시키기 위한 “찰칵”과 같은 발화 등)을 인식할 수 있다. 프로세서(150)는 상기 음성 인식 모듈을 통해, 사용자 단말(100) 내에서 처리할 수 있는 사용자 명령을 인식하여 빠르게 처리함으로써, 상기 지능형 서버(200)를 보조할 수 있다. 일 실시 예에 따르면, 사용자 입력을 인식하기 위한 지능형 에이전트(145)의 음성 인식 모듈은 앱 프로세서에서 구현될 수 있다.
일 실시 예에 따르면, 지능형 에이전트(145)의 음성 인식 모듈(또는, 메모리(140)에 저장된 웨이크 업 인식 모듈)은 음성을 인식하기 위한 알고리즘을 이용하여 사용자 발화를 인식할 수 있다. 상기 음성을 인식하기 위해 사용되는 알고리즘은, 예를 들어, HMM(Hidden Markov Model) 알고리즘, ANN(Artificial Neural Network) 알고리즘 또는 DTW(Dynamic Time Warping) 알고리즘 중 적어도 하나일 수 있다.
일 실시 예에 따르면, 프로세서(150)는 지능형 에이전트(145)를 실행하여 사용자의 음성 입력을 텍스트 데이터로 변환할 수 있다. 예를 들어, 프로세서(150)는 지능형 에이전트(145)를 통해 사용자의 음성을 지능형 서버로(200)로 송신하고, 지능형 서버(200)로부터 사용자의 음성에 대응되는 텍스트 데이터를 수신할 수 있다. 이에 따라, 프로세서(150)는 상기 변환된 텍스트 데이터를 디스플레이(120)에 표시할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 지능형 에이전트(145)를 실행하여 지능형 서버(200)로부터 패스 룰을 수신할 수 있다. 일 실시 예에 따르면, 프로세서(150)는 지능형 에이전트(145)를 통해 상기 패스 룰을 실행 매니저 모듈(147)로 전달할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 지능형 에이전트(145)를 실행하여 지능형 서버(200)로부터 수신된 패스 룰에 따른 실행 결과 로그(log)를 지능형 서비스(intelligence service) 모듈(149)로 전달하고, 상기 전달된 실행 결과 로그는 페르소나 모듈(persona manager)(149b)의 사용자의 선호(preference) 정보에 누적되어 관리될 수 있다.
일 실시 예에 따른, 프로세서(150)는 실행 매니저 모듈(147)을 실행하여 지능형 에이전트(145)로부터 패스 룰을 전달받아 앱(141, 143)을 실행시키고, 앱(141, 143)이 상기 패스 룰에 포함된 동작(141b, 143b)을 실행하도록 할 수 있다. 예를 들어, 프로세서(150)는 실행 매니저 모듈(147)을 통해 앱(141, 143)으로 동작(141b, 143b)을 실행하기 위한 명령 정보(예: 패스 룰 정보)를 송신할 수 있고, 상기 앱(141, 143)로부터 동작(141b, 143b)의 완료 정보를 전달 받을 수 있다.
일 실시 예에 따르면, 프로세서(150)는 실행 매니저 모듈(147)을 실행하여 지능형 에이전트(145)와 앱(141, 143)의 사이에서 앱(141, 143)의 동작(141b, 143b)을 실행하기 위한 명령 정보(예: 패스 룰 정보)를 전달할 수 있다. 프로세서(150)는 실행 매니저 모듈(147)을 통해 상기 패스 룰에 따라 실행할 앱(141, 143)을 바인딩(binding)하고, 상기 패스 룰에 포함된 동작(141b, 143b)의 명령 정보(예: 패스 룰 정보)를 앱(141, 143)으로 전달할 수 있다. 예를 들어, 프로세서(150)는 실행 매니저 모듈(147)을 통해 상기 패스 룰에 포함된 동작(141b, 143b)을 순차적으로 앱(141, 143)으로 전달하여, 앱(141, 143)의 동작(141b, 143b)을 상기 패스 룰에 따라 순차적으로 실행시킬 수 있다.
일 실시 예에 따르면, 프로세서(150)는 실행 매니저 모듈(147)을 실행하여 앱(141, 143)의 동작(141b, 143b)의 실행 상태를 관리할 수 있다. 예를 들어, 프로세서(150)는 실행 매니저 모듈(147)을 통해 앱(141, 143)으로부터 상기 동작(141b, 143b)의 실행 상태에 대한 정보를 전달 받을 수 있다. 상기 동작(141b, 143b)의 실행 상태가, 예를 들어, 정지된 상태(partial landing)인 경우(예: 동작(141b, 143b)에 필요한 파라미터가 입력되지 않은 경우), 프로세서(150)는 실행 매니저 모듈(147)을 통해 상기 정지된 상태에 대한 정보를 지능형 에이전트(145)로 전달할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 상기 전달 받은 정보를 이용하여, 사용자에게 필요한 정보(예: 파라미터 정보)의 입력을 요청할 수 있다. 상기 동작(141b, 143b)의 실행 상태가, 다른 예를 들어, 동작 상태인 경우, 프로세서(150)는 지능형 에이전트(145)를 통해 사용자로부터 발화를 수신할 수 있다. 프로세서(150)는 실행 매니저 모듈(147)를 통해 상기 실행되고 있는 앱(141, 143) 및 앱(141, 143)의 실행 상태에 대한 정보를 지능형 에이전트(145)로 전달할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 상기 사용자 발화를 지능형 서버(200)로 송신할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 지능형 서버(200)로부터 상기 사용자의 발화의 파라미터 정보를 수신할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 상기 수신된 파라미터 정보를 실행 매니저 모듈(147)로 전달할 수 있다. 실행 매니저 모듈(147)은 상기 수신한 파라미터 정보를 이용하여 동작(141b, 143b)의 파라미터를 새로운 파라미터로 변경할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 실행 매니저 모듈(147)을 실행하여 패스 룰에 포함된 파라미터 정보를 앱(141, 143)로 전달할 수 있다. 상기 패스 룰에 따라 복수의 앱(141, 143)이 순차적으로 실행되는 경우, 실행 매니저 모듈(147)은 하나의 앱에서 다른 앱으로 패스 룰에 포함된 파라미터 정보를 전달할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 실행 매니저 모듈(147)을 실행하여 복수의 패스 룰을 수신할 수 있다. 프로세서(150)는 실행 매니저 모듈(147)을 통해 사용자의 발화에 기초하여 복수의 패스 룰이 선택될 수 있다. 예를 들어, 프로세서(150)는 실행 매니저 모듈(147)을 통해 사용자의 발화가 일부 동작(141a)을 실행할 일부 앱(141)을 특정하였지만, 나머지 동작(143b)을 실행할 다른 앱(143)을 특정하지 않은 경우, 일부 동작(141a)를 실행할 동일한 앱(141)(예: 갤러리 앱)이 실행되고 나머지 동작(143b)를 실행할 수 있는 서로 다른 앱(143)(예: 메시지 앱, 텔레그램 앱)이 각각 실행되는 서로 다른 복수의 패스 룰을 수신할 수 있다. 프로세서(150)는 예를 들어, 실행 매니저 모듈(147)을 통해 상기 복수의 패스 룰의 동일한 동작(141b, 143b)(예: 연속된 동일한 동작(141b, 143b))을 실행할 수 있다. 프로세서(150)는 상기 동일한 동작까지 실행한 경우, 실행 매니저 모듈(147)을 통해 상기 복수의 패스 룰에 각각 포함된 서로 다른 앱(141, 143)을 선택할 수 있는 상태 화면을 디스플레이(120)에 표시할 수 있다.
일 실시 예에 따르면, 지능형 서비스 모듈(149)은 컨텍스트 모듈(149a), 페르소나 모듈(149b) 또는 제안 모듈(149c)을 포함할 수 있다.
컨텍스트 모듈(149a)는 앱(141, 143)으로부터 앱(141, 143)의 현재 상태를 수집할 수 있다. 예를 들어, 컨텍스트 모듈(149a)은 앱(141, 143)의 현재 상태를 나타내는 컨텍스트 정보를 수신하여 앱(141, 143)의 현재 상태를 수집할 수 있다.
페르소나 모듈(149b)은 사용자 단말(100)을 사용하는 사용자의 개인 정보를 관리할 수 있다. 예를 들어, 페르소나 모듈(149b)은 사용자 단말(100)의 사용 정보 및 수행 결과를 수집하여 사용자의 개인 정보를 관리할 수 있다.
제안 모듈(149c)는 사용자의 의도를 예측하여 사용자에게 명령을 추천해줄 수 있다. 예를 들어, 제안 모듈(149c)은 사용자의 현재 상태(예: 시간, 장소, 상황, 앱)을 고려하여 사용자에게 명령을 추천해줄 수 있다.
도 1c는 일 실시 예에 따른 사용자 단말의 지능형 앱 실행 형태를 도시한 도면이다.
도 1c를 참조하면, 사용자 단말(100)은 사용자 발화에 따른 입력을 수신하기 위한 인터페이스로 기능하는 하드웨어 버튼(112)을 포함할 수 있다. 상기 하드웨어 버튼(112)은 예컨대, 사용자 단말(100)의 하우징 상에서 사용자 신체(예: 손가락)의 접근성이 용이한 영역으로 배치될 수 있으며, 적어도 일부가 상기 하우징의 외부로 노출될 수 있다. 일 실시 예에서, 사용자 단말(100)은 하드웨어 버튼(112)에 인가되는 사용자 조작에 대응하여 지능형 에이전트(도 1b의 145)와 연동된 지능형 앱(예: 음성 인식 앱)을 실행시킬 수 있다. 일 실시 예에서, 사용자는 음성을 입력(120a)하기 위해 상기 하드웨어 키(112)를 지속적으로 누른(예: 프레스(press) 또는 프레스 홀드(press and hold) 등) 후 음성을 입력(120a)을 할 수 있다.
또는, 사용자 단말(100)은 하드웨어 키(112)를 통해 사용자 입력을 수신한 경우, 디스플레이(120)에 지능형 앱의 UI(User Interface)(121)를 표시할 수 있으며, 사용자는 상기 UI(121)가 디스플레이(120)에 표시된 상태에서 음성을 입력(120b)하기 위해 UI(121)에 포함된 음성 인식 버튼(121a)을 터치할 수 있다.
또는, 사용자 단말(100)은 탑재된 마이크(111)를 통해 상기 지능형 앱을 실행시킬 수 있다. 예를 들어, 사용자 단말(100)은 상기 마이크(111)를 통해 지정된 음성(예: 일어나!(wake up!) 등)을 수신하는 경우, 상기 지능형 앱을 실행시키고 디스플레이(120)에 지능형 앱의 UI(121)를 표시할 수 있다.
도 1d는 일 실시 예에 따른 통합 지능화 시스템의 지능형 서버를 도시한 도면이다.
도 1d를 참조하면, 지능형 서버(200)는 자동 음성 인식(Automatic Speech Recognition)(ASR) 모듈(210), 자연어 이해(Natural Language Understanding)(NLU) 모듈(220), 패스 플래너(path planner) 모듈(230), 대화 매니저(Dialogue Manager)(DM) 모듈(240), 자연어 생성(Natural Language Generator)(NLG) 모듈(250) 또는 텍스트 음성 변환(Text To Speech)(TTS) 모듈(260)을 포함할 수 있다. 다양한 실시 예에서, 상술된 지능형 서버(200)의 구성요소 중 적어도 일부는 사용자 단말(100)에 포함되어 해당 기능 동작을 수행할 수 있다.
일 실시 예에 따르면, 지능형 서버(200)는 통신 회로, 메모리 또는 프로세서를 포함할 수 있다. 상기 프로세서는 상기 메모리에 저장된 명령어를 실행하여 자동 음성 인식 모듈(210), 자연어 이해 모듈(220), 패스 플래너 모듈(230), 대화 매니저 모듈(240), 자연어 생성 모듈(250) 또는 텍스트 음성 변환 모듈(260)을 구동시킬 수 있다. 지능형 서버(200)는 상기 통신 회로를 통해 외부 전자 장치(예: 사용자 단말(100))와 데이터(또는, 신호)를 송수신할 수 있다.
일 실시 예에 따르면, 자동 음성 인식 모듈(210)은 사용자 단말(100)로부터 수신된 사용자 입력을 텍스트 데이터로 변환할 수 있다. 예를 들어, 자동 음성 인식 모듈(210)은 발화 인식 모듈을 포함할 수 있다. 상기 발화 인식 모듈은 음향(acoustic) 모델 및 언어(language) 모델을 포함할 수 있다. 예를 들어, 상기 음향 모델은 발성에 관련된 정보를 포함할 수 있고, 상기 언어 모델은 단위 음소 정보 및 단위 음소 정보의 조합에 대한 정보를 포함할 수 있다. 상기 발화 인식 모듈은 발성에 관련된 정보 및 단위 음소 정보에 대한 정보를 이용하여 사용자 발화를 텍스트 데이터로 변환할 수 있다. 상기 음향 모델 및 언어 모델에 대한 정보는, 예를 들어, 자동 음성 인식 데이터베이스(Automatic Speech Recognition Data Base)(ASR DB)(211)에 저장될 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 문법적 분석(syntactic analyze) 또는 의미적 분석(semantic analyze)을 수행하여 사용자 의도를 파악할 수 있다. 상기 문법적 분석은 사용자 입력을 문법적 단위(예: 단어, 구, 형태소 등)로 나누고, 상기 나누어진 단위가 어떤 문법적인 요소를 갖는지 파악할 수 있다. 상기 의미적 분석은 의미(semantic) 매칭, 룰(rule) 매칭 또는 포뮬러(formula) 매칭 등을 이용하여 수행할 수 있다. 이에 따라, 자연어 이해 모듈(220)은 사용자 입력에 대하여 도메인(domain), 의도(intent) 및 상기 의도를 표현하는데 필요한 파라미터(parameter)(또는, 슬롯(slot))를 얻을 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 도메인(domain), 의도(intend) 및 상기 의도를 파악하는데 필요한 파라미터(parameter)(또는, 슬롯(slot))로 나누어진 매칭 규칙을 이용하여 사용자의 의도 및 파라미터를 결정할 수 있다. 예를 들어, 상기 하나의 도메인(예: 알람)은 복수의 의도(예: 알람 설정, 알람 해제 등)를 포함할 수 있고, 하나의 의도는 복수의 파라미터(예: 시간, 반복 횟수, 알람음 등)을 포함할 수 있다. 복수의 룰은, 예를 들어, 하나 이상의 필수 요소 파라미터를 포함할 수 있다. 상기 매칭 규칙은 자연어 인식 데이터베이스(Natural Language Understanding Data Base)(NLU DB)(221)에 저장될 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 형태소, 구 등의 언어적 특징(예: 문법적 요소)을 이용하여 사용자 입력으로부터 추출된 단어의 의미를 파악하고, 상기 파악된 단어의 의미를 도메인 및 의도에 매칭시켜 사용자의 의도를 결정할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 각각의 도메인 및 의도에 사용자 입력에서 추출된 단어가 얼마나 포함되어 있는지를 계산하여 사용자 의도를 결정할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈(220)은 상기 의도를 파악하는데 기초가 된 단어를 이용하여 사용자 입력의 파라미터를 결정할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력의 의도를 파악하기 위한 언어적 특징이 저장된 자연어 인식 데이터베이스(221)를 이용하여 사용자의 의도를 결정할 수 있다. 다른 실시 예에 따르면, 자연어 이해 모듈(220)은 개인화 언어 모델(Personal Language Model)(PLM)을 이용하여 사용자의 의도를 결정할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 개인화된 정보(예: 연락처 리스트, 음악 리스트)를 이용하여 사용자의 의도를 결정할 수 있다. 상기 개인화 언어 모델은, 예를 들어, 자연어 인식 데이터베이스(221)에 저장될 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈(220)뿐만 아니라 자동 음성 인식 모듈(210)도 자연어 인식 데이터베이스(221)에 저장된 개인화 언어 모델을 참고하여 사용자의 음성을 인식할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력의 의도 및 파라미터에 기초하여 패스 룰을 생성할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 사용자 입력의 의도에 기초하여 실행될 앱을 선택하고, 상기 선택된 앱에서 수행될 동작을 결정할 수 있다. 상기 자연어 이해 모듈(220)은 상기 결정된 동작에 대응되는 파라미터를 결정하여 패스 룰을 생성할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈(220)에 의해 생성된 패스 룰은 실행될 앱, 상기 앱에서 실행될 동작(예: 적어도 하나의 상태(state)) 및 상기 동작을 실행하는데 필요한 파라미터에 대한 정보를 포함할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력의 의도 및 파라미터를 기반으로 하나의 패스 룰, 또는 복수의 패스 룰을 생성할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 패스 플래너 모듈(230)로부터 사용자 단말(100)에 대응되는 패스 룰 셋을 수신하고, 사용자 입력의 의도 및 파라미터를 상기 수신된 패스 룰 셋에 매핑하여 패스 룰을 결정할 수 있다.
다른 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력의 의도 및 파라미터에 기초하여 실행될 앱, 상기 앱에서 실행될 동작 및 상기 동작을 실행하는데 필요한 파라미터를 결정하여 하나의 패스 룰, 또는 복수의 패스 룰을 생성할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 사용자 단말(100)의 정보를 이용하여 상기 실행될 앱 및 상기 앱에서 실행될 동작을 사용자 입력의 의도에 따라 온톨로지(ontology) 또는 그래프 모델(graph model) 형태로 배열하여 패스 룰을 생성할 수 있다. 상기 생성된 패스 룰은, 예를 들어, 패스 플래너 모듈(230)를 통해 패스 룰 데이터베이스(Path Rule Data Base)(PR DB)(231)에 저장될 수 있다. 상기 생성된 패스 룰은 데이터베이스(231)의 패스 룰 셋에 추가될 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 생성된 복수의 패스 룰 중 적어도 하나의 패스 룰을 선택할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 상기 복수의 패스 룰 최적의 패스 룰을 선택할 수 있다. 다른 예를 들어, 자연어 이해 모듈(220)은 사용자 발화에 기초하여 일부 동작만이 특정된 경우 복수의 패스 룰을 선택할 수 있다. 자연어 이해 모듈(220)은 사용자의 추가 입력에 의해 상기 복수의 패스 룰 중 하나의 패스 룰을 결정할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력에 대한 요청으로 패스 룰을 사용자 단말(100)로 송신할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 사용자 입력에 대응되는 하나의 패스 룰을 사용자 단말(100)로 송신할 수 있다. 다른 예를 들어, 자연어 이해 모듈(220)은 사용자 입력에 대응되는 복수의 패스 룰을 사용자 단말(100)로 송신할 수 있다. 상기 복수의 패스 룰은, 예를 들어, 사용자 발화에 기초하여 일부 동작만이 특정된 경우 자연어 이해 모듈(220)에 의해 생성될 수 있다.
일 실시 예에 따르면, 패스 플래너 모듈(230)은 복수의 패스 룰 중 적어도 하나의 패스 룰을 선택할 수 있다.
일 실시 예에 따르면, 패스 플래너 모듈(230)은 자연어 이해 모듈(220)로 복수의 패스 룰을 포함하는 패스 룰 셋을 전달할 수 있다. 상기 패스 룰 셋의 복수의 패스 룰은 패스 플래너 모듈(230)에 연결된 패스 룰 데이터베이스(231)에 테이블 형태로 저장될 수 있다. 예를 들어, 패스 플래너 모듈(230)은 지능형 에이전트(145)로부터 수신된 사용자 단말(100)의 정보(예: OS 정보, 앱 정보)에 대응되는 패스 룰 셋을 자연어 이해 모듈(220)로 전달할 수 있다. 상기 패스 룰 데이터베이스(231)에 저장된 테이블은, 예를 들어, 도메인 또는 도메인의 버전 별로 저장될 수 있다.
일 실시 예에 따르면, 패스 플래너 모듈(230)은 패스 룰 셋에서 하나의 패스 룰, 또는 복수의 패스 룰을 선택하여 자연어 이해 모듈(220)로 전달할 수 있다. 예를 들어, 패스 플래너 모듈(230)은 사용자의 의도 및 파라미터를 사용자 단말(100) 에 대응되는 패스 룰 셋에 매칭하여 하나의 패스 룰, 또는 복수의 패스 룰을 선택하여 자연어 이해 모듈(220)로 전달할 수 있다.
일 실시 예에 따르면, 패스 플래너 모듈(230)은 사용자 의도 및 파라미터를 이용하여 하나의 패스 룰, 또는 복수의 패스 룰을 생성할 수 있다. 예를 들어, 패스 플래너 모듈(230)은 사용자 의도 및 파라미터에 기초하여 실행될 앱 및 상기 앱에서 실행될 동작을 결정하여 하나의 패스 룰, 또는 복수의 패스 룰을 생성할 수 있다. 일 실시 예에 따르면, 패스 플래너 모듈(230)은 상기 생성된 패스 룰을 패스 룰 데이터베이스(231)에 저장할 수 있다.
일 실시 예에 따르면, 패스 플래너 모듈(230)은 자연어 이해 모듈(220)에서 생성된 패스 룰을 패스 룰 데이터베이스(231)에 저장할 수 있다. 상기 생성된 패스 룰은 패스 룰 데이터베이스(231)에 저장된 패스 룰 셋에 추가될 수 있다.
일 실시 예에 따르면, 패스 룰 데이터베이스(231)에 저장된 테이블에는 복수의 패스 룰 또는 복수의 패스 룰 셋을 포함될 수 있다. 복수의 패스 룰 또는 복수의 패스 룰 셋은 각 패스 룰을 수행하는 장치의 종류, 버전, 타입, 또는 특성을 반영할 수 있다.
일 실시 예에 따르면, 대화 매니저 모듈(240)은 자연어 이해 모듈(220)에 의해 파악된 사용자의 의도가 명확한지 여부를 판단할 수 있다. 예를 들어, 대화 매니저 모듈(240)은 파라미터의 정보가 충분하지 여부에 기초하여 사용자의 의도가 명확한지 여부를 판단할 수 있다. 대화 매니저 모듈(240)는 자연어 이해 모듈(220)에서 파악된 파라미터가 태스크를 수행하는데 충분한지 여부를 판단할 수 있다. 일 실시 예에 따르면, 대화 매니저 모듈(240)는 사용자의 의도가 명확하지 않은 경우 사용자에게 필요한 정보를 요청하는 피드백을 수행할 수 있다. 예를 들어, 대화 매니저 모듈(240)는 사용자의 의도를 파악하기 위한 파라미터에 대한 정보를 요청하는 피드백을 수행할 수 있다.
일 실시 예에 따르면, 대화 매니저 모듈(240)은 컨텐츠 제공(content provider) 모듈을 포함할 수 있다. 상기 컨텐츠 제공 모듈은 자연어 이해 모듈(220)에서 파악된 의도 및 파라미터에 기초하여 동작을 수행할 수 있는 경우, 사용자 입력에 대응되는 태스크를 수행한 결과를 생성할 수 있다. 일 실시 예에 따르면, 대화 매니저 모듈(240)은 사용자 입력에 대한 응답으로 상기 컨텐츠 제공 모듈에서 생성된 상기 결과를 사용자 단말(100)로 송신할 수 있다.
일 실시 예에 따르면, 자연어 생성 모듈(250)은 지정된 정보를 텍스트 형태로 변경할 수 있다. 상기 텍스트 형태로 변경된 정보는 자연어 발화의 형태일 수 있다. 상기 지정된 정보는, 예를 들어, 추가 입력에 대한 정보, 사용자 입력에 대응되는 동작의 완료를 안내하는 정보 또는 사용자의 추가 입력을 안내하는 정보(예: 사용자 입력에 대한 피드백 정보)일 수 있다. 상기 텍스트 형태로 변경된 정보는 사용자 단말(100)로 송신되어 디스플레이(120)에 표시되거나, 텍스트 음성 변환 모듈(260)로 송신되어 음성 형태로 변경될 수 있다.
일 실시 예에 따르면, 텍스트 음성 변환 모듈(260)은 텍스트 형태의 정보를 음성 형태의 정보로 변경할 수 있다. 텍스트 음성 변환 모듈(260)은 자연어 생성 모듈(250)로부터 텍스트 형태의 정보를 수신하고, 상기 텍스트 형태의 정보를 음성 형태의 정보로 변경하여 사용자 단말(100)로 송신할 수 있다. 사용자 단말(100)은 상기 음성 형태의 정보를 스피커(130)로 출력할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220), 패스 플래너 모듈(230) 및 대화 매니저 모듈(240)은 하나의 모듈로 구현될 수 있다. 예를 들어, 자연어 이해 모듈(220), 패스 플래너 모듈(230) 및 대화 매니저 모듈(240)은 하나의 모듈로 구현되어 사용자의 의도 및 파라미터를 결정하고, 상기 결정된 사용자의 의도 및 파라미터에 대응되는 응답(예: 패스 룰)을 생성할 수 있다. 이에 따라, 생성된 응답은 사용자 단말(100)로 송신될 수 있다.
도 1e는 일 실시 예에 따른 지능형 서버의 패스 룰 생성 형태를 도시한 도면이다.
도 1e를 참조하면, 일 실시 예에 따른, 자연어 이해 모듈(220)은 앱의 기능을 어느 하나 동작(예: 상태 A 내지 상태 F)으로 구분하여 패스 룰 데이터베이스(231)에 저장할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 어느 하나의 동작(예: 상태)으로 구분된 복수의 패스 룰(A-B1-C1, A-B1-C2, A-B1-C3-D-F, A-B1-C3-D-E-F)을 포함하는 패스 룰 셋을 패스 룰 데이터베이스(231)에 저장할 수 있다.
일 실시 예에 따르면, 패스 플래너 모듈(230)의 패스 룰 데이터베이스(231)는 앱의 기능을 수행하기 위한 패스 룰 셋을 저장할 수 있다. 상기 패스 룰 셋은 복수의 동작(예: 상태들의 시퀀스)을 포함하는 복수의 패스 룰을 포함할 수 있다. 상기 복수의 패스 룰은 복수의 동작 각각에 입력되는 파라미터에 따라 실행되는 동작이 순차적으로 배열될 수 있다. 일 실시 예에 따르면, 상기 복수의 패스 룰은 온톨로지(ontology) 또는 그래프 모델(graph model) 형태로 구성되어 패스 룰 데이터베이스(231)에 저장될 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력의 의도 및 파라미터에 대응되는 상기 복수의 패스 룰(A-B1-C1, A-B1-C2, A-B1-C3-D-F, A-B1-C3-D-E-F) 중에 최적의 패스 룰(A-B1-C3-D-F)을 선택할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력에 완벽히 매칭되는 패스 룰이 없는 경우 사용자 단말(100)에 복수의 룰을 전달할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 사용자 입력에 부분적으로 대응된 패스 룰(예: A-B1)을 선택할 수 있다. 자연어 이해 모듈(220)은 사용자 입력에 부분적으로 대응된 패스 룰(예: A-B1)을 포함하는 하나 이상의 패스 룰(예: A-B1-C1, A-B1-C2, A-B1-C3-D-F, A-B1-C3-D-E-F)을 선택하여 사용자 단말(100)에 전달할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 단말(100)의 추가 입력에 기초하여 복수의 패스 룰 중 하나를 선택하고, 상기 선택된 하나의 패스 룰을 사용자 단말(100)에 전달 할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 사용자 단말(100)에서 추가로 입력된 사용자 입력(예: C3를 선택하는 입력)에 따라 복수의 패스 룰(예: A-B1-C1, A-B1-C2, A-B1-C3-D-F, A-B1-C3-D-E-F) 중 하나의 패스 룰(예: A-B1-C3-D-F)을 선택하여 사용자 단말(100)에 송신할 수 있다.
또 다른 실시 예에 따르면, 자연어 이해 모듈(220)은 자연어 이해 모듈(220)을 통해 사용자 단말(100)에 추가로 입력된 사용자 입력(예: C3를 선택하는 입력)에 대응되는 사용자의 의도 및 파라미터를 결정할 수 있고, 상기 결정된 사용자의 의도 또는 파라미터를 사용자 단말(100)로 송신할 수 있다. 사용자 단말(100)은 상기 송신된 의도 또는 상기 파라미터에 기초하여, 복수의 패스 룰(예: A-B1-C1, A-B1-C2, A-B1-C3-D-F, A-B1-C3-D-E-F) 중 하나의 패스 룰(예: A-B1-C3-D-F)을 선택할 수 있다.
이에 따라, 사용자 단말(100)은 상기 선택된 하나의 패스 룰에 의해 앱(141, 143)의 동작을 완료시킬 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 정보가 부족한 사용자 입력이 지능형 서버(200)에 수신된 경우, 상기 수신한 사용자 입력에 부분적으로 대응되는 패스 룰을 생성할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 상기 부분적으로 대응된 패스 룰을 지능형 에이전트(145)로 송신할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 실행하여 상기 패스 룰을 수신하고, 실행 매니저 모듈(147)로 상기 부분적으로 대응된 패스 룰을 전달할 수 있다. 프로세서(150)는 실행 매니저 모듈(147)를 통해 상기 패스 룰에 따라 제1 앱(141)을 실행시킬 수 있다. 프로세서(150)는 실행 매니저 모듈(147)을 통해 제1 앱(141)을 실행하면서 부족한 파라미터에 대한 정보를 지능형 에이전트(145)로 송신할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 상기 부족한 파라미터에 대한 정보를 이용하여 사용자에게 추가 입력을 요청할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 사용자에 의해 추가 입력이 수신되면 사용자 입력을 지능형 서버(200)로 송신하여 처리할 수 있다. 자연어 이해 모듈(220)은 상기 추가로 입력된 사용자 입력의 의도 및 파라미터 정보에 기초하여 추가된 패스 룰을 생성하여 지능형 에이전트(145)로 송신할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 실행 매니저 모듈(147)로 상기 패스 룰을 송신하여 제2 앱(143)을 실행할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 일부 정보가 누락된 사용자 입력이 지능형 서버(200)에 수신된 경우, 개인화 정보 서버(300)로 사용자 정보 요청을 송신할 수 있다. 개인화 정보 서버(300)는 페르소나 데이터베이스에 저장된 사용자 입력을 입력한 사용자의 정보를 자연어 이해 모듈(220)로 송신할 수 있다. 자연어 이해 모듈(220)은 상기 사용자 정보를 이용하여 일부 동작이 누락된 사용자 입력에 대응되는 패스 룰을 선택할 수 있다. 이에 따라, 자연어 이해 모듈(220)은 일부 정보가 누락된 사용자 입력이 지능형 서버(200)에 수신되더라도, 누락된 정보를 요청하여 추가 입력을 받거나 사용자 정보를 이용하여 상기 사용자 입력에 대응되는 패스 룰을 결정할 수 있다.
하기에 첨부된 표 1은 일 실시 예에 따른 사용자가 요청한 태스크와 관련한 패스 룰의 예시적 형태를 나타낼 수 있다.
Path rule ID State parameter
Gallery_101 PictureView(25) NULL
SearchView(26) NULL
SearchViewResult(27) Location,time
SearchEmptySelectedView(28) NULL
SearchSelectedView(29) ContentType,selectall
CrossShare(30) anaphora
표 1을 참조하면, 사용자 발화(예: “사진 공유해줘”)에 따라 지능형 서버(도 1d의 지능형 서버(200))에서 생성 또는 선택되는 패스 룰은 적어도 하나의 상태(state)(25, 26, 27, 28, 29 또는 30)를 포함할 수 있다. 예를 들어, 상기 적어도 하나의 상태(예: 사용자 단말(100)의 어느 한 동작 상태)는 사진 어플리케이션 실행(PicturesView)(25), 사진 검색 기능 실행(SearchView)(26), 검색 결과 표시 화면 출력(SearchViewResult)(27), 사진이 미(non)선택된 검색 결과 표시 화면 출력(SearchEmptySelectedView)(28), 적어도 하나의 사진이 선택된 검색 결과 표시 화면 출력(SearchSelectedView)(29) 또는 공유 어플리케이션 선택 화면 출력(CrossShare)(30) 중 적어도 하나에 해당될 수 있다.
일 실시 예에서, 상기 패스 룰의 파라미터 정보는 적어도 하나의 상태(state)에 대응될 수 있다. 예를 들어, 상기 적어도 하나의 사진은 선택된 검색 결과 표시 화면 출력(29) 상태에 포함될 수 있다.
상기 상태(25, 26, 27, 28, 29)들의 시퀀스를 포함한 패스 룰의 수행 결과, 사용자가 요청한 태스크(예: “사진 공유해줘!”)가 수행될 수 있다.
도 2는 일 실시 예에 따른 사용자 단말의 운용 환경을 도시한 도면이다.
도 1a 내지 도 1e를 통하여 전술한 바와 같이, 통합 지능화 시스템(도 1a의 10)은 음성 인식 기반의 서비스를 제공하기 위한 일련의 프로세스를 수행할 수 있다. 예를 들어, 사용자 단말(100)은 태스크(task)를 수행하기 위한 특정 명령 또는 의도를 내포하는 사용자 발화를 수신하고, 상기 사용자 발화에 따른 음성 데이터를 지능형 서버(도 1d의 200)로 전송할 수 있다. 지능형 서버(200)는 상기 음성 데이터 수신에 응답하여, 도메인, 의도 및 파라미터로 구성되는 매칭 규칙을 기반으로 상기 음성 데이터와 관계된 사용자 발화의 의도를 도출할 수 있다. 지능형 서버(200)는 도출된 사용자 발화 의도에 기초하여 사용자 단말(100)에서 태스크를 수행할 어플리케이션 프로그램을 선택하고, 상기 태스크 수행에 수반되는 사용자 단말(100)의 상태들(states)(또는, 동작들)에 대한 패스 룰을 생성 또는 선택하여 사용자 단말(100)로 제공할 수 있다.
도 2를 참조하면, 상술과 같은 일련의 프로세스가 수행됨에 있어, 사용자 단말(100)의 운용 환경 상에는 상기 사용자 단말(100)의 기능 동작 수행에 저해 요인으로 작용하는 노이즈(noise)가 존재할 수 있다. 예를 들어, 사용자 단말(100)에 인접된 음향 매체(예: TV, 라디오 또는 스피커 장치 등)로부터 출력되는 음향(40)의 데이터 또는 타인(other people)의 발화(50)에 의한 음성 데이터는 사용자 단말(100) 상에 사용자 발화(20)에 따른 음성 데이터와 혼입될 수 있다. 이와 같이, 사용자 단말(100)에 특정 명령 또는 의도를 내포하는 사용자 발화(20)의 음성 데이터 이외에 적어도 하나의 노이즈에 따른 잡음 데이터(예: 음향 매체에 의한 음향 데이터 및/또는 타인의 발화에 의한 음성 데이터 등)가 입력되는 경우, 상기 사용자 발화(20)의 음성 데이터에 대한 사용자 단말(100)의 인식 또는 전처리 효율이 저하될 수 있다.
상술과 관련하여, 일 실시 예에 따른 사용자 단말(100)은 지정된 사용자(또는, 화자)에 대한 화자 인식 모델을 생성하고, 상기 화자 인식 모델을 기반으로 상기 지정된 사용자에 의하여 수행된 사용자 발화(20)를 인식할 수 있다. 예를 들어, 사용자 단말(100)은 혼입된 복수의 데이터(예: 사용자 발화(20)에 따른 음성 데이터 및 노이즈에 따른 잡음 데이터) 중 상기 화자 인식 모델에 대응하는 음성 데이터를 검출하고, 검출된 음성 데이터를 전처리(예: 종점 검출 등)하여 지능형 서버(200)로 전송할 수 있다. 이하에서는, 지정된 사용자(또는, 화자) 식별 기반의 음성 검출(또는, 음성 데이터 검출)과 관련한 다양한 실시 예 및 이를 구현하는 구성요소들의 기능 동작에 대하여 살펴보기로 한다.
도 3a는 일 실시 예에 따른 사용자 단말의 전처리 모듈을 도시한 도면이고, 도 3b는 일 실시 예에 따른 사용자 단말의 종점 검출 방법을 도시한 도면이고, 도 3c는 일 실시 예에 따른 노이즈 억제 모듈의 동작 예를 도시한 도면이다.
도 3a를 참조하면, 사용자 단말(100)은 신뢰성 있는 음성 인식을 위해 마이크(도 1c의 111)를 통하여 입력되는 사용자 발화의 음성 데이터를 전처리(preprocessing)할 수 있다. 이와 관련하여, 사용자 단말(100)은 적응 반향 제거(adaptive echo canceller) 모듈(161), 노이즈 억제(noise suppression) 모듈(163), 자동 이득 제어(automatic gain control) 모듈(165) 또는 종점 검출(end-point detection) 모듈(167) 중 적어도 하나를 포함하는 전처리 모듈(160)을 포함할 수 있다.
상기 적응 반향 제거 모듈(161)은 사용자 발화에 따른 음성 데이터에 포함된 에코(echo)를 제거할 수 있다. 상기 노이즈 억제 모듈(163)은 상기 음성 데이터를 필터링하여 배경 잡음을 억제할 수 있다. 상기 자동 이득 제어 모듈(165)은 사용자 발화에 대하여 이득(gain) 값 적용을 통한 음량 조정 또는 주파수 특성을 변경하는 이퀄라이징(equalizing)을 수행할 수 있다.
도 3a 및 도 3b를 참조하면, 상기 종점 검출 모듈(167)은 사용자 발화의 종점을 검출하고, 검출된 종점에 근거하여 음성 데이터의 구간을 판단할 수 있다. 사용자 발화에 대한 종점 검출 모듈(167)의 전처리 동작을 살펴보면, 동작 301에서, 마이크(111)의 구동(또는, 활성화)에 따라 사용자 발화가 수신되면, 동작 303에서, 종점 검출 모듈(167)은 상기 수신된 사용자 발화의 음성 데이터에 대하여 지정된 간격 또는 주기로 프레이밍(framing)을 수행할 수 있다. 동작 305에서, 종점 검출 모듈(167)은 적어도 하나의 프레임에 대응하는 각각의 음성 데이터로부터 음성 정보를 추출할 수 있다. 다양한 실시 예에서, 상기 음성 정보는 음성 데이터의 시간 축 특성 또는 주파수 특성에 기반한 엔트로피(entropy) 값을 포함하거나, 확률 값이 될 수 있다. 또는, 상기 음성 정보는 입력된 음성 신호(또는, 음성 데이터)의 세기(또는, 크기)와 잡음 신호(또는, 잡음 데이터)의 세기(또는, 크기)의 비율인 SNR(Signal-To-noise Ratio) 값을 포함할 수 있다.
동작 307 및 동작 309에서, 종점 검출 모듈(167)은 적어도 하나의 프레임에 대응하는 각각의 음성 데이터로부터 추출된 적어도 하나의 음성 정보를 지정된 임계값과 비교함으로써, 사용자 발화의 기점 및 종점을 판단할 수 있다. 이와 관련하여, 종점 검출 모듈(167)은 상기 임계값 이상의 음성 정보를 포함하는 데이터를 음성 데이터로 판단하고, 상기 임계값 이상의 음성 정보를 포함하는 적어도 하나의 프레임을 음성 데이터 구간으로 판단할 수 있다. 종점 검출 모듈(167)은 판단된 음성 데이터 구간 상에서의 최초 프레임을 사용자 발화의 기점으로 판단하고, 상기 음성 데이터 구간 상에서의 최종 프레임을 사용자 발화의 종점으로 판단할 수 있다.
다양한 실시 예에 따르면, 동작 311에서, 종점 검출 모듈(167)은 지정된 프레임 개수에 기초하여 상기 사용자 발화의 종점 판단을 더 수행할 수 있다. 이와 관련하여, 종점 검출 모듈(167)은 상기 음성 데이터 구간 상의 최종 프레임이 상기 최초 프레임으로부터 지정된 개수의 프레임 미만에 해당하는지 여부를 판단할 수 있다. 일 실시 예에서, 상기 최종 프레임이 상기 지정된 개수의 프레임 미만에 해당하는 경우, 종점 검출 모듈(167)은 상기 지정된 개수의 프레임까지를 음성 데이터 구간으로 간주하여, 상기 최종 프레임 이후의 프레임에 대한 임계값 이상의 음성 정보 포함 여부를 더 판단할 수 있다.
다양한 실시 예에서, 종점 검출 모듈(167)은 동작 307, 동작 309 및 동작 311을 복합적으로 수행할 수 있다. 예를 들어, 종점 검출 모듈(167)은 상기 임계값 이상의 음성 정보를 포함하는 최초 프레임을 사용자 발화의 기점으로 판단하고, 상기 최초 프레임으로부터 지정된 개수의 프레임까지를 음성 데이터 구간으로 간주하여, 상기 음성 데이터 구간 상에서 임계값 이상의 음성 정보를 포함하는 최종 프레임을 사용자 발화의 종점으로 판단할 수 있다.
도 3a 및 도 3c를 참조하면, 다른 실시 예에서, 종점 검출 모듈(167)은 상기 노이즈 억제 모듈(163)의 기능 동작으로부터 사용자 발화에 따른 음성 데이터 구간을 예측할 수 있다. 이와 관련하여, 노이즈 억제 모듈(163)은 수신된 사용자 발화의 음성 데이터를 프레이밍하고, 적어도 하나의 프레임에 대응하는 음성 데이터의 주파수를 변환할 수 있다. 노이즈 억제 모듈(163)은 상기 주파수가 변환된 음성 데이터에 대한 이득(gain)을 추정하여 진폭을 보정할 수 있으며, 상기 이득을 추정하기 위하여 상기 주파수가 변환된 음성 데이터에 대한 SNR(예: 음성 신호(또는, 음성 데이터)의 세기(또는, 크기)와 잡음 신호(또는, 잡음 데이터)의 세기(또는, 크기)의 비율)을 산출할 수 있다. 종점 검출 모듈(167)은 노이즈 억제 모듈(163)에 의하여 산출되는 SNR 값에 기반하여 사용자 발화에 따른 음성 데이터 구간을 예측하고, 예측된 음성 데이터 구간의 최초 프레임을 사용자 발화의 기점으로, 최종 프레임을 사용자 발화의 종점으로 판단할 수 있다. 또는, 노이즈 억제 모듈(163)은 산출된 SNR에 기반하여 상기 사용자 발화의 기점 및 종점을 판단하고, 판단 정보를 종점 검출 모듈(167)로 전달할 수 있다. 다양한 실시 예에 따르면, 노이즈 억제 모듈(163)은 상술된 음성 데이터의 진폭 보정 이후, 변환된 주파수를 역변환하거나, 음성 데이터에 대한 오버랩 애드(overlap-add) 동작을 더 수행할 수 있다.
도 4a는 일 실시 예에 따른 사용자 단말의 웨이크 업(wake-up) 명령 발화 인식 형태를 도시한 도면이고, 도 4b는 일 실시 예에 따른 사용자 단말의 키워드 인식 모델 및 화자 인식 모델에 대한 학습 형태를 도시한 도면이고, 도 5는 일 실시 예에 따른 사용자 단말의 기준값 기반의 화자 인식 형태를 도시한 도면이다.
도 4a를 참조하면, 사용자 단말(100)은 상기 사용자 단말(100)의 상태 변경을 위한 사용자의 웨이크 업 명령 발화를 메모리(도 1b의 140)가 포함하는 웨이크 업 인식 모듈(148) 또는 사용자 단말(100)의 프로세서(150)를 기반으로 처리할 수 있다. 또는, 사용자 단말(100)은 지능형 서버(200)와의 상호작용을 통하여 상기 웨이크 업 명령 발화를 처리할 수 있다. 일 실시 예에서, 상기 사용자 단말(100)의 상태를 변경한다 함은, 사용자 발화의 수신을 대기하는 리스닝(listening) 상태로부터 상기 사용자 발화 수신에 따라 입력되는 음성 데이터를 인식 또는 처리할 수 있는 웨이크 업 상태로의 천이를 의미할 수 있다.
상기 웨이크 업 명령 발화의 처리와 관련하여, 웨이크 업 인식 모듈(148)은 제1 키워드 인식 모델 DB(148a), DSP(Digital Signal Processor)(148b) 또는 제1 키워드 인식 모듈(148c) 중 적어도 하나를 포함할 수 있다. 상기 제1 키워드 인식 모델 DB(148a)는 웨이크 업 명령 발화에 포함된 적어도 하나의 단어가 상기 웨이크 업 상태로의 천이와 관련하여 지정된 단어(이하, 웨이크 업 명령 단어로 칭함)인지 여부 판단에 참조되는 키워드 인식 모델을 포함할 수 있다.
일 실시 예에서, DSP(148b)는 마이크(111)를 통하여 수신되는 웨이크 업 명령 발화에 따른 음성 데이터를 획득하여 제1 키워드 인식 모듈(148c)로 전달할 수 있다. 상기 제1 키워드 인식 모듈(148c)은 전달 받은 음성 데이터에 대하여 웨이크 업 명령 단어 포함 여부를 판단할 수 있다. 이와 관련하여, 제1 키워드 인식 모듈(148c)은 상기 제1 키워드 인식 모델 DB(148a)에 포함된 키워드 인식 모델을 참조하여, 상기 DSP(148b)로부터 전달 받은 음성 데이터에 대한 제1 스코어(SCOREKW1)를 산출할 수 있다.
Figure pat00001
Figure pat00002
상기 수학식 1은 상기 웨이크 업 명령 발화에 따른 음성 데이터 상에 지정된 웨이크 업 명령 단어가 포함되었는지 여부 판단에 참조되는 식일 수 있다.
상기 수학식 1은 상기 웨이크 업 명령 발화에 따른 음성 데이터 상에 지정된 웨이크 업 명령 단어가 포함되었는지 여부 판단에 참조되는 식일 수 있다.
일 실시 예에서, 제1 키워드 인식 모듈(148c)은 상기 DSP(148b)로부터 전달 받은 음성 데이터를 키워드 인식 모델(λKW1)에 대입함으로써, 상기 제1 스코어(SCOREKW1)를 산출할 수 있다. 산출된 제1 스코어(SCOREKW1)는 예컨대, 상기 음성 데이터 및 키워드 인식 모델(λKW1) 간의 매핑 정도(또는, 일치 신뢰도(confidence level))를 나타내는 지표로 기능할 수 있다. 제1 키워드 인식 모듈(148c)은 산출된 제1 스코어(SCOREKW1)가 지정된 제1 기준값(ThKW1) 이상인 경우 상기 웨이크 업 명령 발화에 따른 음성 데이터 상에 지정된 적어도 하나의 웨이크 업 명령 단어가 포함된 것으로 판단할 수 있다.
일 실시 예에서, 상기 웨이크 업 명령 발화의 처리와 관련하여, 프로세서(150)는 제2 키워드 인식 모델 DB(150a), 제2 키워드 인식 모듈(150b), 제1 화자 인식 모델 DB(150c) 또는 제1 화자 인식 모듈(150d) 중 적어도 하나를 포함할 수 있다. 상기 제2 키워드 인식 모델 DB(150a)는 전술된 웨이크 업 인식 모듈(148)의 제1 키워드 인식 모델 DB(148a)와 유사하게, 웨이크 업 명령 발화가 지정된 적어도 하나의 웨이크 업 명령 단어를 포함하는지 여부 판단에 참조되는 키워드 인식 모델을 포함할 수 있다. 일 실시 예에서, 상기 제2 키워드 인식 모델 DB(150a)이 포함하는 키워드 인식 모델은 상기 제1 키워드 인식 모델 DB(148a)이 포함하는 키워드 인식 모델과는 적어도 일부 상이할 수 있다.
일 실시 예에서, 프로세서(150)는 마이크(111)를 통하여 수신되는 웨이크 업 명령 발화에 따른 음성 데이터를 획득하여 제2 키워드 인식 모듈(150b)로 전달할 수 있다. 상기 제2 키워드 인식 모듈(150b)은 전달 받은 음성 데이터에 대하여 상기 지정된 적어도 하나의 웨이크 업 명령 단어 포함 여부를 판단할 수 있다. 이와 관련하여, 제2 키워드 인식 모듈(150b)은 상기 제2 키워드 인식 모델 DB(150a)에 포함된 키워드 인식 모델을 참조하여, 상기 프로세서(150)로부터 전달 받은 음성 데이터에 대한 제2 스코어(SCOREKW2)를 산출할 수 있다.
Figure pat00003
Figure pat00004
상기 수학식 2는 상기 웨이크 업 명령 발화에 따른 음성 데이터 상에 지정된 웨이크 업 명령 단어가 포함되었는지 여부 판단에 참조되는 식일 수 있다.
일 실시 예에서, 제2 키워드 인식 모듈(150b)은 프로세서(150)로부터 전달 받은 음성 데이터를 상기 제2 키워드 인식 모델 DB(150a)이 포함하는 키워드 인식 모델(λKW2)에 대입함으로써, 제2 스코어(SCOREKW2)를 산출할 수 있다. 산출된 제2 스코어(SCOREKW2)는 웨이크 업 인식 모듈(148)이 참조하는 제1 스코어(SCOREKW1)와 유사하게, 상기 음성 데이터 및 키워드 인식 모델(λKW2) 간의 매핑 정도(또는, 일치 신뢰도(confidence level))를 나타내는 지표로 기능할 수 있다. 제2 키워드 인식 모듈(150b)은 산출된 제2 스코어(SCOREKW2)가 지정된 제2 기준값(ThKW2) 이상인 경우, 상기 웨이크 업 명령 발화에 따른 음성 데이터 상에 지정된 적어도 하나의 웨이크 업 명령 단어가 포함된 것으로 판단할 수 있다.
다양한 실시 예에 따르면, 상술된 웨이크 업 인식 모듈(148)의 제1 키워드 인식 모듈(148c)과 프로세서(150)의 제2 키워드 인식 모듈(150b)이 수행하는 스코어 산출 방식은 상호 상이할 수 있다. 예를 들어, 상기 제1 키워드 인식 모듈(148c)과 제2 키워드 인식 모듈(150b)은 스코어를 산출하기 위하여 상호 상이한 구성의 알고리즘(예: 상호 상이한 차원수의 특징 벡터를 사용하는 알고리즘 등)을 이용할 수 있다. 일례로, 상기 제1 키워드 인식 모듈(148c) 또는 제2 키워드 인식 모듈(150b) 중 어느 하나가 GMM(Gaussian Mixture Model) 알고리즘 또는 HMM(Hidden Markov Model) 알고리즘 중 어느 하나를 이용하고, 다른 하나가 상기 GMM 알고리즘 또는 HMM 알고리즘 중 나머지 하나를 이용하는 경우, 상기 알고리즘들에 이용되는 음소 단위의 개수 또는 상기 음소 단위에 대응하는 음향 모델은 상호 상이할 수 있다. 또는, 상기 제1 키워드 인식 모듈(148c)과 제2 키워드 인식 모듈(150b)은 스코어를 산출하기 위하여 동일한 알고리즘을 이용하되, 상기 동일한 알고리즘을 상호 상이한 방식으로 운용할 수 있다. 예를 들어, 상기 제1 키워드 인식 모듈(148c) 및 제2 키워드 인식 모듈(150b)은 동일한 알고리즘에 대하여 상기 웨이크 업 명령 단어를 인식하기 위한 검색 범위(search range)를 상호 상이하게 설정하여 이용할 수 있다.
다양한 실시 예에 따르면, 지정된 적어도 하나의 웨이크 업 명령 단어에 대한 상기 제2 키워드 인식 모듈(150b)의 인식률은 상기 제1 키워드 인식 모듈(148c)에 상대적으로 높을 수 있다. 예를 들어, 제2 키워드 인식 모듈(150b)은 상기 제1 키워드 인식 모듈(148c)에 비하여 보다 복잡한 알고리즘(예: 비터비 복호화(viterbi decoding) 기반의 알고리즘 등)을 이용함으로써, 지정된 적어도 하나의 웨이크 업 명령 단어에 대하여 높은 인식률을 구현할 수 있다.
일 실시 예에서, 제1 화자 인식 모델 DB(150c)는 수신된 웨이크 업 명령 발화가 지정된 화자(예: 사용자 단말(100)의 실사용자(actual user))에 의한 것인지 여부 판단에 참조되는 화자 인식 모델을 포함할 수 있다. 상기 화자 인식 모델에 대해서는 이하의 도 6을 통하여 후술하기로 한다.
일 실시 예에서, 제1 화자 인식 모듈(150d)은 웨이크 업 인식 모듈(148) 내의 DSP(148b) 또는 사용자 단말(100)의 프로세서(150)로부터 종점 검출 모듈(도 3a의 167)에 의하여 프레이밍된 상기 웨이크 업 명령 발화에 따른 음성 데이터를 전달받고, 상기 음성 데이터가 지정된 화자(예: 사용자 단말(100)의 실사용자)에 대응하는지 여부를 판단할 수 있다. 이와 관련하여, 제1 화자 인식 모듈(150d)은 상기 제1 화자 인식 모델 DB(150c)에 포함된 화자 인식 모델을 참조하여, 상기 DSP(148b) 또는 프로세서(150)로부터 전달 받은 음성 데이터에 대한 제3 스코어(SCORESPK1)를 산출할 수 있다.
Figure pat00005
Figure pat00006
상기 수학식 3은 웨이크 업 명령 발화에 따른 음성 데이터가 적어도 한 명의 지정된 화자(예: 사용자 단말(100)의 실사용자)에 대응하는지 여부 판단에 참조되는 식으로 예컨대, UBM-GMM(Universal Background Model-Gaussian Mixture Model) 알고리즘 등을 기반으로 수립될 수 있다.
일 실시 예에서, 제1 화자 인식 모듈(150d)은 상기 DSP(148b) 또는 프로세서(150)로부터 전달 받은 음성 데이터를 화자 인식 모델(λSPK1) 및 배경 화자 모델(λUBM)에 대입하여 상기 제3 스코어(SCORESPK1)를 산출할 수 있다. 상기 배경 화자 모델(λUBM)은 예컨대, 상기 지정된 화자(예: 사용자 단말(100)의 실사용자) 이외의 타인(other people)에 의하여 수행된 적어도 하나의 발화에 대한 통계 모델을 포함할 수 있다.
도 4a 및 도 4b를 참조하면, 사용자 단말(100)은 상술한 키워드 인식 모델(λKW1 또는 λKW2) 및 화자 인식 모델(λSPK1)을 학습할 수 있다. 예를 들어, 사용자 단말(100)은 전처리된 웨이크 업 명령 단어의 음성 샘플에서 추출되는 특징 벡터(feature vector)의 통계적 특성을 이용하여 키워드 인식 모델(λKW1 또는 λKW2) 및 화자 인식 모델(λSPK1)을 학습할 수 있다. 상기 통계적 특성은 예컨대, 상기 웨이크 업 명령 단어의 음성 샘플로부터 추출되는 특징 벡터와, 지정된 화자가 복수의 횟수로 발화한 상기 웨이크 업 명령 단어의 음성 샘플들로부터 추출되는 특징 벡터들 간의 차이값 분포를 의미할 수 있다. 사용자 단말은, 상기 통계적 특성을 이용하여 데이터베이스(148a, 150a 또는 150c)에 저장된 인식 모델을 갱신함으로써 인식 모델을 학습할 수 있다.
상기 수학식 3 및 도 5를 참조하면, 제1 화자 인식 모듈(150d)은 산출된 제3 스코어(SCORESPK1)를 지정된 제3 기준값(ThSPK1) 및/또는 제4 기준값(ThSPK2)과 비교하여 웨이크 업 명령 발화에 따른 음성 데이터가 지정된 화자(예: 사용자 단말(100)의 실사용자)에 대응하는지 여부를 판단할 수 있다. 예를 들어, 제1 화자 인식 모듈(150d)은 산출된 제3 스코어(SCORESPK1)가 상기 제3 기준값(ThSPK1) 미만이면, 상기 음성 데이터가 상기 지정된 화자(예: 사용자 단말(100)의 실사용자)에 대응하지 않는 것으로 판단할 수 있다. 또는, 제1 화자 인식 모듈(150d)은 산출된 제3 스코어(SCORESPK1)가 상기 제4 기준값(ThSPK2) 이상인 경우, 프로세서(150)로부터 전달 받은 음성 데이터를 상기 지정된 화자(예: 사용자 단말(100)의 실사용자)의 웨이크 업 명령 발화에 따른 것으로 판단할 수 있다. 상기 제3 기준값(ThSPK1) 또는 제4 기준값(ThSPK2)은 사용자에 의하여 설정될 수 있으며, 사용자 단말(100) 운용 환경 상의 노이즈 존재 여부에 따라 가변될 수 있다.
일 실시 예에서, 상기 제3 스코어(SCORESPK1)가 제3 기준값(ThSPK1) 이상 제4 기준값(ThSPK2) 미만에 해당하는 경우, 제1 화자 인식 모듈(150d)은 지능형 서버(200)의 기능 동작을 참조하여 상기 음성 데이터에 대한 지정된 화자(예: 사용자 단말(100)의 실사용자)와의 대응 여부를 판단할 수 있다. 이와 관련하여, 사용자 단말(100)의 프로세서(150)는 수신된 웨이크 업 명령 발화에 따른 음성 데이터를 지능형 서버(200)로 전송하고, 상기 지능형 서버(200)로부터 음성 데이터에 대한 인식 정보를 수신할 수 있다. 제1 화자 인식 모듈(150d)은 상기 수신된 인식 정보에 근거하여 상기 음성 데이터에 대한 지정된 화자(예: 사용자 단말(100)의 실사용자)와의 대응 여부를 판단할 수 있다. 이를 위해, 지능형 서버(200)는 전술된 구성요소(예: 자동 음성 인식 모듈(210), 자동 음성 인식 DB(211) 또는 패스 플래너 모듈(230) 등) 이외에도, 제2 화자 인식 모듈(270) 또는 제2 화자 인식 모델 DB(271) 중 적어도 하나를 더 포함할 수 있다. 또는, 지능형 서버(200)는 사용자 단말(100)의 프로세서(150)로부터 수신 받는 음성 데이터를 전처리하기 위하여, 전술된 사용자 단말(100)의 전처리 모듈(도 3의 160)과 동일 또는 유사한 구성의 전처리 모듈을 더 포함할 수 있다.
상기 자동 음성 인식 모듈(210)은 프로세서(150)로부터 제공 받는 웨이크 업 명령 발화에 따른 음성 데이터를 텍스트 데이터로 변환할 수 있다. 예를 들어, 자동 음성 인식 모듈(210)은 상기 자동 음성 인식 DB(211)가 포함하는 음향 모델, 언어 모델 또는 대용량 어휘 음성 인식에 관련된 정보들을 이용하여 상기 프로세서(150)로부터 제공 받는 음성 데이터를 텍스트 데이터로 변환할 수 있다. 일 실시 예에서, 자동 음성 인식 모듈(210)은 변환된 텍스트 데이터를 사용자 단말(100) 및/또는 패스 플래너 모듈(230)로 제공할 수 있다. 예를 들어, 자동 음성 인식 모듈(210)은 상기 변환된 텍스트 데이터가 상기 자동 음성 인식 DB(211)에 포함된 적어도 하나의 웨이크 업 명령 단어만을 포함하는 경우, 변환된 텍스트 데이터를 사용자 단말(100)로만 전송할 수 있다. 이 때, 사용자 단말(100)의 프로세서(150)는 상기 자동 음성 인식 모듈(210)로부터 수신한 텍스트 데이터를 전술된 제2 키워드 인식 모듈(150b)을 기반으로 분석함으로써, 상기 텍스트 데이터에 기인하는 음성 데이터가 지정된 웨이크 업 명령 단어를 포함하는지 판단할 수도 있다. 만일, 상기 변환된 텍스트 데이터 상에 상기 웨이크 업 명령 단어뿐만 아니라, 태스크와 관계된 특정 명령 또는 의도를 나타내는 단어가 포함된 경우, 자동 음성 인식 모듈(210)은 변환된 텍스트 데이터를 사용자 단말(100) 및 패스 플래너 모듈(230) 모두로 제공할 수 있다. 패스 플래너 모듈(230)은 자동 음성 인식 모듈(210)로부터 수신한 텍스트 데이터에 기초하여 패스 룰을 생성 또는 선택하고, 상기 생성 또는 선택된 패스 룰을 사용자 단말(100)로 전송할 수 있다.
상기 제2 화자 인식 모델 DB(271)는 사용자 단말(100)의 프로세서(150)로부터 제공 받는 웨이크 업 명령 발화에 따른 음성 데이터가 지정된 화자(예: 사용자 단말(100)의 실사용자)에 의한 것인지 여부 판단에 참조되는 화자 인식 모델을 포함할 수 있다. 일 실시 예에서, 제2 화자 인식 모델 DB(271)는 복수 명의 화자 각각에 대응하는 복수의 화자 인식 모델을 포함할 수 있다. 상기 복수 명의 화자는 예컨대, 사용자 단말(100)을 운용하는 실사용자(actual user)를 비롯하여, 적어도 하나의 다른 사용자 단말을 운용하는 사용자를 포함하는 것으로 이해될 수 있다. 일 실시 예에서, 상기 복수 명의 화자 각각의 식별 정보(예: 이름 또는 운용하는 사용자 단말 정보 등)는 해당 화자에 대응하는 화자 인식 모델에 포함(예: 매핑)될 수 있다.
상기 제2 화자 인식 모듈(270)은 제2 화자 인식 모델 DB(271)에 포함된 복수의 화자 인식 모델을 참조하여, 사용자 단말(100)의 프로세서(150)로부터 제공 받은 웨이크 업 명령 발화에 따른 음성 데이터가 상기 사용자 단말(100)의 실사용자에 대응하는지 여부를 판단할 수 있다. 이와 관련하여, 제2 화자 인식 모듈(270)은 프로세서(150)로부터 상기 음성 데이터와 함께 사용자 단말(100)의 실사용자에 대한 식별 정보를 수신할 수 있다. 제2 화자 인식 모듈(270)은 상기 복수의 화자 인식 모델 중 상기 수신한 실사용자의 식별 정보에 대응하는 화자 인식 모델을 선택하고, 선택된 화자 인식 모델과 상기 프로세서(150)로부터 수신한 음성 데이터의 대응 여부를 판단할 수 있다. 제2 화자 인식 모듈(270)은 상기 대응 여부 판단 결과에 해당하는 인식 정보를 사용자 단말(100)의 프로세서(150)로 전송하고, 제1 화자 인식 모듈(150d)은 상기 인식 정보에 근거하여 입력된 음성 데이터가 지정된 화자(예: 사용자 단말(100)의 실사용자)의 웨이크 업 명령 발화에 따른 것인지 판단할 수 있다.
상술한 바에 따르면, 사용자 단말(100)의 프로세서(150)는 웨이크 업 인식 모듈(148), 상기 프로세서(150) 자체 또는 지능형 서버(200)의 기능 동작에 근거하여, 수신된 웨이크 업 명령 발화에 따른 음성 데이터 상에 지정된 적어도 하나의 웨이크 업 명령 단어 포함 여부를 확인하거나, 상기 음성 데이터와 지정된 화자(예: 사용자 단말(100)의 실사용자) 간의 대응 여부를 판단할 수 있다. 프로세서(150)는 상기 음성 데이터 상에 지정된 적어도 하나의 웨이크 업 명령 단어가 포함되고, 상기 음성 데이터가 지정된 화자(예: 사용자 단말(100)의 실사용자)와 대응하는 것으로 판단되는 경우, 상기 웨이크 업 명령 발화를 유효한 것으로 판단할 수 있다. 이 경우, 프로세서(150)는 사용자 단말(100)의 상태를 태스크 수행과 관계된 사용자 발화(예: 특정 명령 또는 의도를 내포하는 발화)에 따른 음성 데이터를 인식 또는 처리할 수 있는 웨이크 업 상태로 천이시킬 수 있다.
도 6은 일 실시 예에 따른 사용자 단말의 화자 식별 기반의 발화 처리 형태를 도시한 도면이고, 도 7은 일 실시 예에 따른 사용자 단말이 수신한 음성 데이터의 형태를 도시한 도면이다.
도 6을 참조하면, 사용자 단말(100)의 프로세서(150)는 지정된 적어도 한 명의 화자에 의한 발화(20)를 학습 또는 훈련하여 노이즈(noise)(예: 음향 매체의 음향(40) 또는 타인의 발화(50) 등) 환경으로부터 상기 지정된 적어도 한 명의 화자에 의한 발화(20)를 식별할 수 있다. 일 실시 예에서, 상기 지정된 적어도 한 명의 화자는 사용자 단말(100)의 실사용자(actual user) 및/또는 상기 실사용자에 의해 설정되는 적어도 한 명의 타인(예: 실사용자의 가족 또는 실사용자의 친구 등)을 포함할 수 있다. 상술과 관련하여, 프로세서(150)는 앞서 전술된 제1 화자 인식 모델 DB(150c) 및 제1 화자 인식 모듈(150d)를 비롯하여, 음성 DB(150e), 화자 인식 모델 생성 모듈(150f) 또는 캐시 메모리(150g) 중 적어도 하나를 더 포함할 수 있다.
상기 화자 인식 모델 생성 모듈(150f)은 상기 지정된 적어도 한 명의 화자 각각에 대응하는 화자 인식 모델을 생성할 수 있다. 이와 관련하여, 프로세서(150)는 사용자 단말(100) 상에(또는, 통합 지능화 시스템(도 1a의 10) 상에) 상기 지정된 적어도 한 명의 화자 설정 시, 마이크(111)를 통하여 각각의 화자로부터 복수 번의 발화(예: 발화 문장 또는 사용자 단말(100)의 주변 환경 등이 동일한 조건 하에 수행되는 복수 번의 발화)를 수신할 수 있다. 프로세서(150)는 수신된 발화에 따른 음성데이터를 각각의 화자 별로 음성 DB(150e)에 저장(예: 테이블(table) 형태로 저장)할 수 있다. 또는, 다양한 실시 예에서, 프로세서(150)는 사용자 단말(100)에 탑재된 특정 기능(예: voice recording 기능, voice trigger 기능 또는 통화 기능 등) 운용 시 수집되는 음성을 상기 음성 DB(150e)에 저장할 수 있다.
일 실시 예에서, 화자 인식 모델 생성 모듈(150f)은 상기 음성 DB(150e)를 참조하여 제1 화자의 기준 발화(예: 사용자 단말(100)이 최초 수신한 제1 화자의 발화)를 식별하고, 상기 기준 발화 상에서 추출되는 특징 벡터(feature vector)의 통계적 특성을 이용하여 상기 제1 화자에 대응하는 제1 화자 인식 모델을 생성할 수 있다. 상기 통계적 특성은 예컨대, 상기 제1 화자의 기준 발화에서 추출되는 특징 벡터와, 제1 화자에 의한 복수 번의 발화 중 상기 기준 발화를 제외한 발화로부터 추출되는 특징 벡터 간의 차이값 분포를 포함할 수 있다. 화자 인식 모델 생성 모듈(150f)은 상기 제1 화자와 관련하여 생성된 제1 화자 인식 모델을 제1 화자 인식 모델 DB(150c)에 저장할 수 있다. 이와 유사하게, 화자 인식 모델 생성 모듈(150f)은 상기 지정된 적어도 한 명의 화자 각각에 대응하는 적어도 하나의 화자 인식 모델을 생성하여 제1 화자 인식 모델 DB(150c)에 저장할 수 있다.
일 실시 예에서, 프로세서(150)는 마이크(111)를 통하여 임의의 화자로부터 수행되는 웨이크 업 명령 발화를 수신하고, 상기 웨이크 업 명령 발화에 따른 음성 데이터를 제1 화자 인식 모듈(150d)로 전달할 수 있다. 제1 화자 인식 모듈(150d)은 프로세서(150)로부터 전달 받은 음성 데이터에 대하여 제1 화자 인식 모델 DB(150c)에 저장된 적어도 하나의 화자 인식 모델과의 대응 여부를 판단할 수 있다. 이와 관련하여, 상기 제1 화자 인식 모델 DB(150c)에 저장된 적어도 하나의 화자 인식 모델 각각은 전술된 수학식 3에 참조될 수 있으며, 제1 화자 인식 모듈(150d)은 프로세서(150)로부터 전달 받은 음성 데이터를 상기 적어도 하나의 화자 인식 모델에 대입하여 제3 스코어(SCORESPK1)를 산출할 수 있다. 앞서 언급된 바와 같이, 제1 화자 인식 모듈(150d)은 산출된 제3 스코어(SCORESPK1)가 지정된 제4 기준값(ThSPK2) 이상에 해당하는 경우, 프로세서(150)로부터 전달 받은 웨이크 업 명령 발화에 따른 음성 데이터가 상기 수학식 3에 참조된 화자 인식 모델에 대응하는 것으로 판단할 수 있다. 만일, 산출된 제3 스코어(SCORESPK1)가 지정된 제3 기준값(ThSPK1) 이상 제4 기준값(ThSPK2) 미만에 해당하는 경우, 제1 화자 인식 모듈(150d)은 지능형 서버(도 4의 200)로부터 제공되는 상기 음성 데이터에 대한 인식 정보에 근거하여 프로세서(150)로부터 전달 받은 음성 데이터와 상기 제1 화자 인식 모델 DB(150c)에 저장된 화자 인식 모델 간의 대응 여부를 판단할 수 있다. 다시 말해, 상기 화자 인식 모델 생성 모듈(150f)에 의하여 사용자 단말(100)의 실사용자에 대응하는 화자 인식 모델만이 생성된 경우, 제1 화자 인식 모듈(150d)은 전달 받는 웨이크 업 명령 발화에 따른 음성 데이터와 상기 실사용자에 대응하는 화자 인식 모델 간의 일대일 대응 여부를 판단할 수 있다. 대응적으로, 상기 화자 인식 모델 생성 모듈(150f)에 의하여 복수의 화자 인식 모델(예: 사용자 단말(100)의 실사용자에 대응하는 화자 인식 모델 및 실사용자에 의해 설정되는 적어도 한 명의 타인에 대응하는 화자 인식 모델)이 생성된 경우, 제1 화자 인식 모듈(150d)은 전달 받는 웨이크 업 명령 발화에 따른 음성 데이터와 상기 복수의 화자 인식 모델 중 적어도 하나와의 대응 여부를 판단할 수 있다.
일 실시 예에서, 제1 화자 인식 모듈(150d)은 프로세서(150)로부터 전달 받은 음성 데이터가 제1 화자 인식 모델 DB(150c)에 저장된 적어도 하나의 화자 인식 모델에 대응하는 것으로 판단되는 경우, 상기 음성 데이터에 대응하는 화자 인식 모델을 캐시 메모리(150g)에 저장할 수 있다. 또한, 프로세서(150)는 제1 화자 인식 모듈(150d)의 판단에 근거하여 사용자 단말(100)의 상태를 태스크 수행과 관계된 사용자 발화(예: 특정 명령 또는 의도를 내포하는 발화)에 따른 음성 데이터를 인식 또는 처리할 수 있는 웨이크 업(wake-up) 상태로 천이시킬 수 있다. 다양한 실시 예에서, 사용자 단말(100)이 웨이크 업 상태로 천이된다 함은, 사용자 단말(100) 상에서(또는, 통합 지능화 시스템(도 1a의 10) 상에서) 음성 인식 서비스 기능이 활성화됨을 의미할 수 있다.
일 실시 예에서, 전처리 모듈(도 3a의 160)의 종점 검출 모듈(도 3a의 167)은 프로세서(150)의 제어 하에 동작하여, 사용자 단말(100)이 상기 웨이크 업 상태로 변경된 이후의 시점(time)으로 입력되는 데이터에 대하여 데이터 구간을 판단할 수 있다. 이와 관련하여, 종점 검출 모듈(167)은 상기 입력된 데이터에 대하여 지정된 간격 또는 주기로 프레이밍(framing)을 수행하고, 적어도 하나의 프레임에 대응하는 각각의 음성 데이터로부터 음성 정보를 추출할 수 있다. 종점 검출 모듈(167)은 상기 각각의 음성 데이터로부터 추출된 음성 정보를 지정된 임계값과 비교하고, 상기 임계값 이상의 음성 정보를 포함하는 데이터를 음성 데이터로 판단할 수 있다. 또한, 종점 검출 모듈(167)은 상기 임계값 이상의 음성 정보를 포함하는 적어도 하나의 프레임을 음성 데이터 구간으로 판단할 수 있다. 일 실시 예에서, 상기 웨이크 업 상태 이후로 입력되는 데이터는, 지정된 화자의 발화(20)(예: 태스크 수행과 관계된 명령 또는 의도를 내포하는 발화)에 따른 음성 데이터를 포함할 수 있다. 또는, 상기 웨이크 업 상태 이후로 입력되는 데이터는 상기 지정된 화자의 발화(20)에 따른 음성 데이터 이외에, 주변 노이즈(noise)에 따른 잡음 데이터(예: 음향 매체로부터 출력되는 음향(40)에 따른 음향 또는 음성 데이터, 또는 타인의 발화(50)에 따른 음성 데이터 등)를 더 포함할 수 있다.
일 실시 예에서, 제1 화자 인식 모듈(150d)은 상기 종점 검출 모듈(167)에 의해 판단된 음성 데이터에 대하여 상기 캐시 메모리(150g) 또는 제1 화자 인식 모델 DB(150c)에 저장된 화자 인식 모델과의 대응 여부를 판단할 수 있다. 예를 들어, 제1 화자 인식 모듈(150d)은 전술된 수학식 3을 기초로, 상기 종점 검출 모듈(167)이 판단한 음성 데이터를 상기 캐시 메모리(150g) 또는 제1 화자 인식 모델 DB(150c)에 저장된 화자 인식 모델(λSPK1) 및 지정된 배경 화자 모델(λUBM)에 대입하여 제3 스코어(SCORESPK1)를 산출함으로써, 상기 판단된 음성 데이터 및 상기 수학식 3에 참조된 화자 인식 모델 간의 대응 여부를 판단할 수 있다. 이 때, 제1 화자 인식 모듈(150d)은 상기 판단된 데이터가 상기 웨이크 업 명령 발화와 동일한 화자로부터 수행된 발화(20)의 음성 데이터임을 고려하여, 상기 대응 여부 판단 시 캐시 메모리(150g)에 저장된 화자 인식 모델을 우선하여 참조할 수 있다.
일 실시 예에 따르면, 상기 종점 검출 모듈(167)에 의해 판단된 음성 데이터 중 적어도 일부의 데이터(이하, 제1 데이터로 칭함)가 상기 캐시 메모리(150g) 또는 제1 화자 인식 모델 DB(150c)에 저장된 화자 인식 모델에 대응될 수 있다. 이 경우, 화자 인식 모듈(150d)은 상기 제1 데이터를 지정된 화자의 발화(20)(예: 태스크 수행과 관계된 명령 또는 의도를 내포하는 발화)에 따른 음성 데이터로 판단할 수 있다. 이에 따라, 종점 검출 모듈(167)은 상기 판단된 음성 데이터 구간 상에서, 화자 인식 모듈(150d)(또는, 프로세서(150))에 의해 판단된 상기 지정된 화자의 발화(20)에 따른 음성 데이터를 식별할 수 있다. 종점 검출 모듈(167)은 식별된 음성 데이터에 대응하는 최초 프레임을 상기 지정된 화자가 수행한 발화(20)의 기점으로 판단하고, 최종 프레임을 상기 지정된 화자가 수행한 발화(20)의 종점으로 판단할 수 있다. 프로세서(150)는 종점 검출 모듈(167)에 의하여 전처리(예: 기점 및 종점 검출)된 음성 데이터를 지능형 서버(200)로 전송할 수 있다. 일 실시 예에 따르면, 상기 웨이크 업 상태 이후로 사용자 단말(100)에 입력된 데이터 중 상기 종점 검출 모듈(167)에 의해 판단되는 음성 데이터가 상기 잡음 데이터를 포함할 수 있다. 이 경우, 상기 잡음 데이터는 캐시 메모리(150g) 또는 제1 화자 인식 모델 DB(150c)에 저장된 화자 인식 모델과 대응되지 않음에 따라, 화자 인식 모듈(150d)(또는, 프로세서(150))은 상기 잡음 데이터를 지정된 화자의 발화(20)에 따른 음성 데이터로 판단하지 않고, 종점 검출 모듈(167)은 상기 잡음 데이터에 대한 전처리(예: 기점 및 종점 검출)를 배제할 수 있다.
다양한 실시 예에 따르면, 상기 웨이크 업 상태 변경 이후로 입력된 데이터에 대한 종점 검출 모듈(167)의 프레이밍이 완료된 후, 상기 종점 검출 모듈(167)의 임계값 이상의 음성 정보를 포함하는 음성 데이터 판단과, 화자 인식 모듈(150d)(또는, 프로세서(150))의 입력된 데이터와 화자 인식 모델 간의 대응 여부 판단이 유사한 시점(time)으로 수행될 수 있다. 이 경우, 입력된 데이터에 따른 적어도 하나의 프레임에 대한 화자 인식 모듈(150d)의 상기 대응 여부 판단 주기는, 전술된 수학식 3을 기반으로 하는 제3 스코어 산출 프로세싱을 수반함에 따라, 상기 적어도 하나의 프레임에 대한 종점 검출 모듈(167)의 상기 음성 데이터 판단 주기에 상대적으로 늦을 수 있다. 다시 말해, 종점 검출 모듈(167)은 임계값 이상의 음성 정보를 포함하는 음성 데이터(또는, 프레임) 판단이 완료되더라도, 판단된 음성 데이터가 지정된 화자의 발화(20)에 따른 음성 데이터인지 여부를 식별할 수 없으며, 상기 지정된 사용자 발화(20)에 따른 음성 데이터의 전처리(예: 기점 및 종점 검출)를 수행하지 못할 수 있다. 이와 관련하여, 종점 검출 모듈(167)은 상기 전처리 수행에 대한 딜레이를 극복하기 위해, 화자 인식 모듈(150d)(또는, 프로세서(150))에 의하여 상기 화자 인식 모델과 대응하는 데이터를 포함하는 최초 프레임이 판단되는 경우, 상기 최초 프레임을 지정된 화자의 발화(20)에 따른 음성 데이터 구간의 기점으로 판단할 수 있다.
또한, 종점 검출 모듈(167)은 상기 지정된 임계값 이상의 음성 정보를 포함하는 데이터가 포함된 것으로 판단(이하, 제1 판단으로 참조됨)되고, 화자 인식 모델과 대응하는 데이터가 포함된 것으로 판단(이하, 제2 판단으로 참조됨)되는 임의의 제1 프레임을 기점으로, 지정된 개수의 프레임을 상기 지정된 화자의 발화(20)에 따른 음성 데이터의 종점 판단 구간으로 지정할 수 있다. 종점 검출 모듈(167)은 상기 제1 프레임으로부터 상기 제1 판단 및 제2 판단이 지속되는 프레임의 개수를 카운트할 수 있다. 종점 검출 모듈(167)은 상기 카운트된 적어도 하나의 프레임이 상기 제1 프레임으로부터 지정된 개수의 프레임 미만에 해당하는 경우, 상기 지정된 개수의 프레임까지를 지정된 화자의 발화(20)에 따른 음성 데이터의 종점으로 판단할 수 있다.
다양한 실시 예에서, 종점 검출 모듈(167)의 임계값 이상의 음성 정보를 포함하는 음성 데이터 판단 및 화자 인식 모듈(150d)의 입력된 데이터와 화자 인식 모델과의 대응 여부 판단에 대한 가중치는 상호 조정될 수 있다. 예를 들어, 상기 종점 검출 모듈(167)의 음성 데이터 판단에 대한 가중치가 제1 값(예: 0.0~1.0)으로 설정될 경우, 화자 인식 모듈(150d)의 화자 인식 모델과의 대응 여부 판단 가중치는 제2 값(예: 1.0 - 제1 값)으로 설정될 수 있다. 이 경우, 상기 제1 값 및 제2 값의 대소에 따라, 음성 데이터 판단 또는 화자 인식 모델과의 대응 여부 판단에 관계되는 임계값 또는 기준값이 소정 조정될 수 있다. 예를 들어, 종점 검출 모듈(167)의 음성 데이터 판단에 대한 가중치는 화자 인식 모듈(150d)의 대응 여부 판단 가중치에 상대적으로 크게 설정되는 경우(또는, 제1 값이 제2 값보다 크게 설정되는 경우), 상기 종점 검출 모듈(167)의 음성 데이터 판단에 관계되는 상기 임계값이 소정 하향될 수 있다. 또는, 상기 화자 인식 모듈(150d)의 대응 여부 판단에 관계되는 기준값(예: 제3 기준값(ThSPK1) 및/또는 제4 기준값(ThSPK2))이 소정 상향될 수 있다. 대응적으로, 종점 검출 모듈(167)의 음성 데이터 판단에 대한 가중치가 화자 인식 모듈(150d)의 대응 여부 판단 가중치에 상대적으로 작게 설정되는 경우(또는, 제1 값이 제2 값보다 작게 설정되는 경우), 상기 종점 검출 모듈(167)의 음성 데이터 판단에 관계되는 상기 임계값이 소정 상향되고, 화자 인식 모듈(150d)의 대응 여부 판단에 관계되는 기준값(예: 제3 기준값(ThSPK1) 및/또는 제4 기준값(ThSPK2))이 소정 하향될 수 있다.
도 7을 참조하면, 상기 웨이크 업 상태 이후로 사용자 단말(100)에 입력된 데이터는 지정된 복수 명의 화자의 발화(예: 태스크 수행과 관계된 명령 또는 의도를 내포하는 발화)에 따른 복수의 음성 데이터를 포함할 수 있다. 예를 들어, 상기 웨이크 업 상태 이후로 사용자 단말(100)에 입력된 데이터는 웨이크 업 명령 발화를 수행한 지정된 제1 화자의 발화에 따른 제1 음성 데이터 및 지정된 제2 화자의 발화에 따른 제2 음성 데이터를 포함할 수 있다. 이 경우, 사용자 단말(100)은 제1 화자의 발화에 따른 제1 음성 데이터를 전술된 화자 인식 모델(λSPK1) 및 배경 화자 모델(λUBM)에 대입하여 제3 스코어(SCORESPK1)를 산출할 수 있다. 대응적으로, 사용자 단말(100)은 제2 화자의 발화에 따른 제2 음성 데이터를 화자 인식 모델(λSPK1) 및 배경 화자 모델(λUBM)에 대입하여 제3 스코어(SCORESPK1)를 산출할 수 있다. 이 동작에서, 상기 제2 화자에 대하여 산출된 제3 스코어가 앞서 산출된 상기 제1 화자에 대한 제3 스코어와 적어도 일부 상이한 경우, 사용자 단말(100)은 화자가 변경되었음을 인지하고, 상기 제2 화자에 대한 제3 스코어 산출에 다른 화자 인식 모델을 참조할 수 있다. 이와 관련하여 전술을 참조하면, 상기 제1 화자 및 제2 화자는 사용자 단말(100) 상에 지정된 화자에 해당함에 따라, 화자 인식 모델 생성 모듈(150f)에 의해 상기 지정된 제1 화자 및 제2 화자 각각에 대응하는 화자 인식 모델들이 생성되고, 생성된 화자 인식 모델들은 제1 화자 인식 모델 DB(150c) 또는 캐시 메모리(150g)에 저장될 수 있다.
일 실시 예에서, 사용자 단말(100)은 제2 화자의 발화에 따른 제2 음성 데이터 중 적어도 일부를 이용하여 화자가 변경되었음을 판단할 수 있다. 일 실시 예에서, 사용자 단말(100)은 상기 제2 음성 데이터에 대응되는 발화 전에 지정된 단어를 포함하는 제2 화자의 발화를 수신한 경우, 화자가 변경되었음을 판단할 수 있다. 상기 지정된 단어는, 예를 들어, 사용자 단말(100)을 활성화시키기 위한 웨이크 업 명령 발화(예:하이 빅스비)일 수 있다.
이에 따라, 제1 화자 인식 모듈(150d)은 제1 화자 인식 모델 DB(150c) 또는 캐시 메모리(150g)에 저장된 화자 인식 모델들을 참조하여 상기 제1 음성 데이터 및 제2 음성 데이터를 지정된 화자들의 발화에 의한 음성 데이터로 판단할 수 있다. 종점 검출 모듈(도 3a의 167)은 상기 제1 화자 인식 모듈(150d)(또는, 프로세서(150))의 판단에 근거하여, 상기 제1 음성 데이터 및 제2 음성 데이터의 기점 및 종점을 검출하고, 프로세서(150)는 상기 기점 및 종점이 검출된 제1 음성 데이터 및 제2 음성 데이터를 지능형 서버(200)로 전송할 수 있다. 이와 같이, 사용자 단말(100)이 웨이크 업 상태로 변경된 이후의 시점(time)으로 입력되는 데이터가 웨이크 업 명령 발화를 수행한 화자의 음성 데이터 이외에 다른 화자의 음성 데이터를 포함하더라도, 상기 다른 화자가 타인이 아닌 지정된 화자로 판단되는 경우 프로세서(150)는 상기 다른 화자의 음성 데이터에 대한 인식 및 처리를 수행할 수 있다.
도 8은 일 실시 예에 따른 사용자 단말의 사용자 음성 입력 처리 방법을 도시한 도면이다.
도 8을 참조하면, 동작 801에서, 사용자 단말(도 1b의 100)은 마이크(도 1c의 111)를 통하여 제1 발화를 수신할 수 있다. 상기 제1 발화는 예컨대, 사용자 단말(100)의 상태를 태스크(task) 수행과 관계되는 발화를 인식 또는 처리할 수 있는 상태(예: 웨이크 업 상태)로 변경시키기 위한 웨이크 업 명령 발화를 포함할 수 있다. 일 실시 예에서, 상기 제1 발화에 따른 음성 데이터는 메모리(도 1b의 140)가 포함하는 웨이크 업 인식 모듈(도 4의 148) 또는 프로세서(도 4의 150)에 의하여 처리될 수 있다. 예를 들어, 웨이크 업 인식 모듈(148) 또는 프로세서(150)는 지정된 키워드 인식 모델을 기반으로 상기 제1 발화에 따른 음성 데이터 상에 상기 사용자 단말(100)의 상태 변경과 관련하여 지정된 단어가 포함되었는지 여부를 판단할 수 있다. 이하의 동작들은, 제1 발화에 따른 음성 데이터 상에 상기 지정된 단어가 포함된 경우 수행되는 것으로 이해될 수 있다.
동작 803에서, 프로세서(150)는 상기 제1 발화에 대응하는 화자 인식 모델을 결정할 수 있다. 이와 관련하여, 프로세서(150)는 상기 제1 발화에 따른 음성 데이터와 제1 화자 인식 모델 DB(도 6의 150c)에 저장된 적어도 하나의 화자 인식 모델과의 대응 여부를 판단할 수 있다. 예를 들어, 프로세서(150)는 상기 적어도 하나의 화자 인식 모델이 참조되는 수학식(예: 수학식 3)을 기반으로, 제1 발화에 따른 음성 데이터에 대하여 스코어(예: 제3 스코어(SCORESPK1))를 산출하고, 산출된 스코어가 지정된 기준값(예: 제4 기준값(ThSPK2)) 이상에 해당할 경우에 참조된 화자 인식 모델을 상기 제1 발화에 대응하는 화자 인식 모델로 결정할 수 있다. 이와 같이, 제1 발화에 따른 음성 데이터가 상기 적어도 하나의 화자 인식 모델 중 어느 하나와 대응하는 경우, 프로세서(150)는 상기 제1 발화를 지정된 적어도 한 명의 화자에 의하여 수행된 것으로 판단하고, 상기 결정된 화자 인식 모델을 캐시 메모리(도 6의 150g)에 저장할 수 있다.
일 실시 예에서, 프로세서(150)는 상기 제1 발화에 따른 음성 데이터가 사용자 단말(100)의 상태 변경과 관련하여 지정된 단어를 포함하고, 상기 제1 발화가 지정된 적어도 한 명의 화자에 의해 수행된 것으로 판단됨에 따라, 상기 제1 발화를 유효한 것으로 판단하여 사용자 단말(100)의 상태를 태스크(task) 수행과 관계되는 발화를 인식 또는 처리할 수 있는 상태(예: 웨이크 업 상태)로 변경할 수 있다.
동작 805에서, 사용자 단말(100)은 마이크(111)를 통하여 제2 발화를 수신할 수 있다. 상기 제2 발화는 예컨대, 상기 제1 발화와 동일 또는 상이한 화자에 의하여 수행되는 발화일 수 있으며, 특정 태스크 수행과 관계된 명령 또는 의도를 내포할 수 있다. 다양한 실시 예에 따르면, 사용자 단말(100)은 상기 제2 발화와 함께, 사용자 단말(100)의 운용 환경 상에서 발생하는 노이즈(noise)(예: 음향 매체로부터 출력되는 음향 또는 음성, 또는 타인의 발화 등)를 수신할 수도 있다.
일 실시 예에 따르면, 사용자 단말(100)은 상기 제2 발화가 상기 상이한 화자에 의하여 수행되는 발화인 경우, 화자가 변경됨을 인식할 수 있다. 예를 들어, 사용자 단말(100)은 상기 제2 발화의 적어도 일부를 이용하여 화자가 변경됨을 인식할 수 있다. 또한, 사용자 단말(100)의 상기 제2 발화 전에 지정된 단어를 포함하는 발화를 수신하고, 상기 지정된 발화를 인식함으로써, 화자가 변경됨을 인식할 수 있다. 상기 지정된 단어는, 예를 들어, 사용자 단말(100)를 활성화시키기 위한 단어일 수 있다. 사용자 단말(100)은 제1 발화에 의해 이미 활성화된 상태이므로, 다시 상태를 변경하지 않고, 사익 지정된 단어를 통해 화자가 전환됨만을 인식할 수 있다.
동작 807에서, 프로세서(150)는 상기 결정된 화자 인식 모델을 이용하여 상기 제2 발화의 종점을 검출할 수 있다. 이와 관련하여, 프로세서(150)는 제2 발화에 따른 음성 데이터와 상기 결정된 화자 인식 모델과의 대응 여부를 판단할 수 있다. 예를 들어, 프로세서(150)는 상술한 바와 유사하게, 상기 제2 발화에 따른 음성 데이터에 대하여 상기 결정된 화자 인식 모델이 참조되는 수학식(예: 전술된 수학식 3)을 기반으로 스코어를 산출하고, 상기 스코어가 지정된 기준값 이상이면, 제2 발화에 따른 음성 데이터가 상기 결정된 화자 인식 모델에 대응하는 것으로 판단할 수 있다. 이 경우, 프로세서(150)는 상기 제2 발화에 따른 음성 데이터의 기점 및 종점을 검출할 수 있다. 프로세서(150)는 기점 및 종점이 검출된 제2 발화의 음성 데이터를 지능형 서버(도 1d의 200)로 전송할 수 있다.
다양한 실시 예에서, 마이크(111)를 통하여 상기 제2 발화와 함께 노이즈가 수신된 경우, 프로세서(150)는 상기 노이즈에 따른 음향 또는 음성 데이터에 대하여 상기 결정된 화자 인식 모델 또는 제1 화자 인식 모델 DB(150c)에 저장된 적어도 하나의 화자 인식 모델과의 대응 여부를 더 판단할 수 있다. 전술된 바에 따르면, 화자 인식 모델은 지정된 적어도 한 명의 화자에 대응하도록 생성되는 바, 상기 노이즈에 따른 음향 또는 음성 데이터는 사용자 단말(100)이 포함하는 적어도 하나의 화자 인식 모델에 대응하지 않을 수 있다. 이에 따라, 프로세서(150)는 상기 노이즈에 따른 음향 또는 음성 데이터를 음성 인식 서비스 운용에 불필요한 잡음 데이터로 판단하여 전처리(예: 종점 검출 등) 및 지능형 서버(200)로의 전송을 배제할 수 있다.
다양한 실시 예에서, 프로세서(150)는 상기 제2 발화에 따른 음성 데이터가 상기 결정된 화자 인식 모델에 대응하지 않는 경우, 상기 제2 발화가 제1 발화(예: 웨이크 업 명령 발화)를 수행한 화자와 상이한 화자로부터 수행된 것으로 판단할 수 있다. 이 경우, 프로세서(150)는 상기 제2 발화에 따른 음성 데이터에 대하여 제1 화자 인식 모델 DB(150c)에 저장된 적어도 하나의 화자 인식 모델과의 대응 여부를 판단함으로써, 상기 제2 발화가 지정된 적어도 한 명의 화자에 의한 것인지를 판단할 수 있다. 만일, 제1 화자 인식 모델 DB(150c)에 저장된 적어도 하나의 화자 인식 모델 중 어느 하나와 상기 제2 발화에 따른 음성 데이터가 대응하는 경우, 프로세서(150)는 상기 제2 발화가 지정된 적어도 한 명의 화자(예: 지정된 적어도 한 명의 화자 중 제1 발화를 수행한 화자 이외의 화자)에 의하여 수행된 것으로 판단할 수 있다. 이에 따라, 프로세서(150)는 상기 제2 발화의 음성 데이터에 대응하는 화자 인식 모델을 참조하여 상기 음성 데이터의 종점을 검출하고, 종점이 검출된 음성 데이터를 지능형 서버(200)로 전송할 수 있다.
다양한 실시 예에서, 상기 제2 발화에 따른 음성 데이터가 상기 결정된 화자 인식 모델 또는 제1 화자 인식 모델 DB(150c)에 저장된 적어도 하나의 화자 인식 모델 중 어느 하나에도 대응하지 않는 경우, 프로세서(150)는 상기 대응 여부 판단으로부터 지정된 시간 경과 후 캐시 메모리(150g)에 저장된 화자 인식 모델을 제거(deletion)할 수 있다.
도 9는 일 실시 예에 따른 사용자 단말의 사용자 음성 입력 처리 형태에 대한 시뮬레이션의 일례를 도시한 도면이다.
도 9를 참조하면, 사용자 단말(도 2의 100)의 운용 환경 상에는 지정된 사용자 발화 이외의 다양한 노이즈(noise)가 존재할 수 있다. 예를 들어, 상기 사용자 단말(100)이 이동 수단(예: 버스 또는 지하철 등) 내에 위치하는 경우, 상기 이동 수단에서 출력되는 음향(예: 안내 방송 등)은 사용자 단말(100)이 수신하는 사용자 발화에 따른 음성과 혼입되는 노이즈로 작용할 수 있다. 이와 같이, 사용자 단말(100)에 상기 이동 수단의 음향에 따른 음향 데이터(91)와 사용자 발화에 따른 음성 데이터(93)가 혼입되는 경우에 대한 기존의 전처리(예: 종점 검출(end-point detection)) 방식을 살펴보면, 상기 사용자 발화에 따른 음성 데이터(93)의 식별 없이, 입력된 전체 데이터(91 및 93)를 기준으로 기점(T1) 및 종점(T2)이 검출되어 상기 음성 데이터(93)뿐만 아니라 음향 데이터(91) 역시 음성 구간으로 판단될 수 있다. 이 경우, 상기 사용자 발화에 따른 음성 데이터(93)의 인식률이 저하되거나, 상기 사용자 발화에 대한 사용자 단말(100)의 적절한 응답 제공이 불가능할 수 있다.
상술과 관련하여, 본 발명의 일 실시 예에 따른 사용자 단말(100)은, 지정된 사용자에 대한 화자 인식 모델을 생성하여 저장하고, 상기 화자 인식 모델을 기반으로 상기 지정된 사용자에 의하여 수행된 발화를 인식함으로써, 노이즈 환경에서 상기 지정된 사용자 발화에 따른 음성 데이터(93)를 식별할 수 있다. 이와 관련하여, 사용자 단말(100)은 입력 받은 데이터(91 및 93)를 상기 화자 인식 모델에 대입하여 스코어(예: 제3 스코어)를 산출하고, 산출된 스코어를 지정된 임계값과 비교할 수 있다. 사용자 단말(100)은 상기 산출된 스코어가 지정된 임계값 이상에 해당하는 데이터 구간(95)을 상기 지정된 사용자의 발화에 따른 음성 데이터(93)로 판단할 수 있다. 사용자 단말(100)은 판단된 음성 데이터(93)를 처리하기 위하여 기점(T3) 및 종점(T4) 검출에 따른 음성 구간의 데이터를 지능형 서버(도 1a의 200)로 전송할 수 있다.
상기 노이즈의 다른 예로써, 사용자 단말(100)은 지정된 사용자 이외의 타인의 발화를 수신할 수 있다. 예를 들어, 사용자 단말(100)은 상기 타인의 발화에 따른 음성 데이터(97)를 입력 받고, 이로부터 소정의 시간 경과 후 지정된 사용자의 발화에 따른 음성 데이터(99)를 입력 받을 수 있다. 이와 같이, 복수의 음성 데이터(97 및 99)가 소정의 인터벌을 두고 입력된 경우에 대한 기존의 전처리(예: 종점 검출(end-point detection)) 방식을 살펴보면, 상기 지정된 사용자 발화에 따른 음성 데이터(99)의 식별 없이, 시점(time) 기준으로 먼저 입력된 음성 데이터(97)의 기점(T5) 및 종점(T6)에 따른 음성 구간이 검출된 후, 나머지 음성 데이터(99)의 기점 및 종점이 검출될 수 있다. 이 경우, 상기 지정된 사용자 발화에 따른 음성 데이터(99)의 처리 시간이 지연되거나, 상기 사용자 발화에 대한 사용자 단말(100)의 응답 시간이 지연될 수 있다.
상술과 관련하여, 본 발명의 일 실시 예에 따른 사용자 단말(100)은, 입력 받은 복수의 음성 데이터(97 및 99) 각각을 지정된 화자 인식 모델에 대입하여 스코어(예: 제3 스코어)를 산출하고, 지정된 임계값 이상의 스코어에 해당하는 데이터 구간(101)을 상기 지정된 사용자 발화에 따른 음성 데이터(99)로 판단할 수 있다. 사용자 단말(100)은 상기 지정된 임계값 이상의 스코어를 갖는 음성 데이터(99)를 처리하기 위하여 기점(T7) 및 종점(T8) 검출에 따른 음성 구간의 데이터를 지능형 서버(200)로 전송할 수 있다.
전술된 다양한 실시 예에 따른 전자 장치는, 스피커, 마이크, 통신 인터페이스, 상기 스피커, 상기 마이크 및 상기 통신 인터페이스와 작동적으로(operatively) 연결되는 프로세서, 및 상기 프로세서와 작동적으로 연결되는 메모리를 포함할 수 있다.
다양한 실시 예에 따르면, 상기 메모리는, 실행 시에, 상기 프로세서가, 상기 마이크를 통하여 제1 발화를 수신하고, 상기 제1 발화에 대한 화자 인식(speaker recognition)을 수행함으로써 화자 모델(speaker model)을 결정하고, 상기 제1 발화 수신 이후 상기 마이크를 통하여 제2 발화를 수신하고, 상기 결정된 화자 모델을 적어도 부분적으로 이용하여 상기 제2 발화의 종점(end-point)을 감지하도록 하는 인스트럭션들(instructions)을 저장할 수 있다.
다양한 실시 예에 따르면, 상기 제1 발화는, 기 지정된 적어도 하나의 웨이크 업(wake-up) 단어를 포함할 수 있다.
다양한 실시 예에 따르면, 상기 제2 발화는, 상기 전자 장치를 통하여 수행할 태스크(task)와 관계되는 명령 또는 의도를 내포하는 발화를 포함할 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 지정된 적어도 한 명의 화자에 대응하는 적어도 하나의 화자 모델을 생성하여 데이터베이스로 저장하도록 할 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 제1 발화 수신에 응답하여, 상기 제1 발화와 관련한 음성 데이터가 상기 데이터베이스에 저장된 적어도 하나의 화자 모델 중 적어도 하나에 대응하는 경우, 상기 전자 장치에 임베디드(embedded)되거나 또는 외부 서버로부터 제공되는 음성 인식 서비스 기능을 활성화시키도록 할 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 제1 발화와 관련한 음성 데이터에 대응하는 화자 모델을 결정하여 캐시 메모리에 저장하도록 할 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 제2 발화와 관련한 음성 데이터가 상기 캐시 메모리에 저장된 화자 모델 또는 상기 데이터베이스에 저장된 적어도 하나의 화자 모델 중 적어도 하나에 대응하는 경우, 상기 제2 발화의 종점을 감지하도록 할 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 종점이 감지된 제2 발화와 관련한 음성 데이터를 상기 외부 서버로 전송하도록 할 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 제2 발화와 관련한 음성 데이터가 상기 캐시 메모리에 저장된 화자 모델 또는 상기 데이터베이스에 저장된 적어도 하나의 화자 모델에 대응하지 않는 경우, 상기 제2 발화의 종점 감지를 배제하도록 할 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세가, 상기 제2 발화와 관련한 음성 데이터가 상기 캐시 메모리에 저장된 화자 모델 또는 상기 데이터베이스에 저장된 적어도 하나의 화자 모델에 대응하지 않는 경우, 지정된 시간 경과 후 상기 캐시 메모리에 저장된 화자 모델을 제거(deletion)하도록 할 수 있다.
전술된 다양한 실시 예에 따른 전자 장치의 사용자 음성 입력 처리 방법은, 상기 전자 장치에 탑재된 마이크를 통하여 제1 발화를 수신하는 동작, 상기 제1 발화에 대한 화자 인식(speaker recognition)을 수행함으로써 화자 모델(speaker model)을 결정하는 동작, 상기 제1 발화 수신 이후 상기 마이크를 통하여 제2 발화를 수신하는 동작, 및 상기 결정된 화자 모델을 적어도 부분적으로 이용하여 상기 제2 발화의 종점(end-point)을 감지하는 동작을 포함할 수 있다.
다양한 실시 예에 따르면, 상기 제1 발화를 수신하는 동작은, 기 지정된 적어도 하나의 웨이크 업(wake-up) 단어를 수신하는 동작을 포함할 수 있다.
다양한 실시 예에 따르면, 상기 제2 발화를 수신하는 동작은, 상기 전자 장치를 통하여 수행할 태스크(task)와 관계되는 명령 또는 의도를 내포하는 발화를 수신하는 동작을 포함할 수 있다.
다양한 실시 예에 따르면, 상기 사용자 음성 입력 처리 방법은, 지정된 적어도 한 명의 화자에 대응하는 적어도 하나의 화자 모델을 생성하여 데이터베이스로 저장하는 동작을 더 포함할 수 있다.
다양한 실시 예에 따르면, 상기 제1 발화를 수신하는 동작은, 상기 제1 발화와 관련한 음성 데이터가 상기 데이터베이스에 저장된 적어도 하나의 화자 모델 중 적어도 하나에 대응하는 경우, 상기 전자 장치에 임베디드(embedded)되거나 또는 외부 서버로부터 제공되는 음성 인식 서비스 기능을 활성화시키는 동작을 포함할 수 있다.
다양한 실시 예에 따르면, 상기 화자 모델을 결정하는 동작은, 상기 제1 발화와 관련한 음성 데이터에 대응하는 화자 모델을 결정하여 캐시 메모리에 저장하는 동작을 포함할 수 있다.
다양한 실시 예에 따르면, 상기 제2 발화의 종점을 감지하는 동작은, 상기 제2 발화와 관련한 음성 데이터가 상기 캐시 메모리에 저장된 화자 모델 또는 상기 데이터베이스에 저장된 적어도 하나의 화자 모델 중 적어도 하나에 대응하는 경우, 상기 제2 발화의 종점을 감지하는 동작을 포함할 수 있다.
다양한 실시 예에 따르면, 상기 제2 발화의 종점을 감지하는 동작은, 상기 종점이 감지된 제2 발화와 관련한 음성 데이터를 상기 외부 서버로 전송하는 동작을 포함할 수 있다.
다양한 실시 예에 따르면, 상기 제2 발화의 종점을 감지하는 동작은, 상기 제2 발화와 관련한 음성 데이터가 상기 캐시 메모리에 저장된 화자 모델 또는 상기 데이터베이스에 저장된 적어도 하나의 화자 모델에 대응하지 않는 경우, 상기 제2 발화의 종점 감지를 배제하는 동작을 포함할 수 있다.
다양한 실시 예에 따르면, 상기 제2 발화의 종점을 감지하는 동작은, 상기 제2 발화와 관련한 음성 데이터가 상기 캐시 메모리에 저장된 화자 모델 또는 상기 데이터베이스에 저장된 적어도 하나의 화자 모델에 대응하지 않는 경우, 지정된 시간 경과 후 상기 캐시 메모리에 저장된 화자 모델을 제거(deletion)하는 동작을 포함할 수 있다.
도 10은 일 실시 예에 따른 네트워크 환경 내의 전자 장치를 도시한 도면이다.
도 10을 참조하면, 네트워크 환경(1000)에서 전자 장치(1001)는 제1 네트워크(1098)(예: 근거리 무선 통신)를 통하여 전자 장치(1002)와 통신하거나, 또는 제2 네트워크(1099)(예: 원거리 무선 통신)를 통하여 전자 장치(1004) 또는 서버(1008)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(1001)는 서버(1008)를 통하여 전자 장치(1004)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(1001)는 프로세서(1020), 메모리(1030), 입력 장치(1050), 음향 출력 장치(1055), 표시 장치(1060), 오디오 모듈(1070), 센서 모듈(1076), 인터페이스(1077), 햅틱 모듈(1079), 카메라 모듈(1080), 전력 관리 모듈(1088), 배터리(1089), 통신 모듈(1090), 가입자 식별 모듈(1096), 및 안테나 모듈(1097)을 포함할 수 있다. 어떤 실시 예에서는, 전자 장치(1001)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(1060) 또는 카메라 모듈(1080))가 생략되거나 다른 구성 요소가 추가될 수 있다. 어떤 실시 예에서는, 예를 들면, 표시 장치(1060)(예: 디스플레이)에 임베디드된 센서 모듈(1076)(예: 지문 센서, 홍채 센서, 또는 조도 센서)의 경우와 같이, 일부의 구성요소들이 통합되어 구현될 수 있다.
프로세서(1020)는, 예를 들면, 소프트웨어(예: 프로그램(1040))를 구동하여 프로세서(1020)에 연결된 전자 장치(1001)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(1020)는 다른 구성요소(예: 센서 모듈(1076) 또는 통신 모듈(1090))로부터 수신된 명령 또는 데이터를 휘발성 메모리(1032)에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리(1034)에 저장할 수 있다. 일 실시 예에 따르면, 프로세서(1020)는 메인 프로세서(1021)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서(1021)보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(1023)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 여기서, 보조 프로세서(1023)는 메인 프로세서(1021)와 별개로 또는 임베디드되어 운영될 수 있다.
이런 경우, 보조 프로세서(1023)는, 예를 들면, 메인 프로세서(1021)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(1021)를 대신하여, 또는 메인 프로세서(1021)가 액티브(예: 어플리케이션 수행) 상태에 있는 동안 메인 프로세서(1021)와 함께, 전자 장치(1001)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(1060), 센서 모듈(1076), 또는 통신 모듈(1090))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시 예에 따르면, 보조 프로세서(1023)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(1080) 또는 통신 모듈(1090))의 일부 구성 요소로서 구현될 수 있다. 메모리(1030)는, 전자 장치(1001)의 적어도 하나의 구성요소(예: 프로세서(1020) 또는 센서모듈(1076))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어(예: 프로그램(1040)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 메모리(1030)는, 휘발성 메모리(1032) 또는 비휘발성 메모리(1034)를 포함할 수 있다.
프로그램(1040)은 메모리(1030)에 저장되는 소프트웨어로서, 예를 들면, 운영 체제(1042), 미들 웨어(1044) 또는 어플리케이션(1046)을 포함할 수 있다.
입력 장치(1050)는, 전자 장치(1001)의 구성요소(예: 프로세서(1020))에 사용될 명령 또는 데이터를 전자 장치(1001)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다.
음향 출력 장치(1055)는 음향 신호를 전자 장치(1001)의 외부로 출력하기 위한 장치로서, 예를 들면, 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용되는 스피커와 전화 수신 전용으로 사용되는 리시버를 포함할 수 있다. 일 실시 예에 따르면, 리시버는 스피커와 일체 또는 별도로 형성될 수 있다.
표시 장치(1060)는 전자 장치(1001)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로서, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시 예에 따르면, 표시 장치(1060)는 터치 회로(touch circuitry) 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다.
오디오 모듈(1070)은 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 일 실시 예에 따르면, 오디오 모듈(1070)은, 입력 장치(1050)를 통해 소리를 획득하거나, 음향 출력 장치(1055), 또는 전자 장치(1001)와 유선 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(1002)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(1076)은 전자 장치(1001)의 내부의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(1076)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(1077)는 외부 전자 장치(예: 전자 장치(1002))와 유선 또는 무선으로 연결할 수 있는 지정된 프로토콜을 지원할 수 있다. 일 실시 예에 따르면, 인터페이스(1077)는 HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(1078)는 전자 장치(1001)와 외부 전자 장치(예: 전자 장치(1002))를 물리적으로 연결시킬 수 있는 커넥터, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(1079)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 햅틱 모듈(1079)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(1080)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시 예에 따르면, 카메라 모듈(1080)은 하나 이상의 렌즈, 이미지 센서, 이미지 시그널 프로세서, 또는 플래시를 포함할 수 있다.
전력 관리 모듈(1088)은 전자 장치(1001)에 공급되는 전력을 관리하기 위한 모듈로서, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구성될 수 있다.
배터리(1089)는 전자 장치(1001)의 적어도 하나의 구성 요소에 전력을 공급하기 위한 장치로서, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(1090)은 전자 장치(1001)와 외부 전자 장치(예: 전자 장치(1002), 전자 장치(1004), 또는 서버(1008))간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(1090)은 프로세서(1020)(예: 어플리케이션 프로세서)와 독립적으로 운영되는, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시 예에 따르면, 통신 모듈(1090)은 무선 통신 모듈(1092)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(1094)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함하고, 그 중 해당하는 통신 모듈을 이용하여 제1 네트워크(1098)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제2 네트워크(1099)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(1090)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다.
일 실시 예에 따르면, 무선 통신 모듈(1092)은 가입자 식별 모듈(1096)에 저장된 사용자 정보를 이용하여 통신 네트워크 내에서 전자 장치(1001)를 구별 및 인증할 수 있다.
안테나 모듈(1097)은 신호 또는 전력을 외부로 송신하거나 외부로부터 수신하기 위한 하나 이상의 안테나들을 포함할 수 있다. 일 실시 예에 따르면, 통신 모듈(1090)(예: 무선 통신 모듈(1092))은 통신 방식에 적합한 안테나를 통하여 신호를 외부 전자 장치로 송신하거나, 외부 전자 장치로부터 수신할 수 있다.
상기 구성요소들 중 일부 구성요소들은 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input/output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되어 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일 실시 예에 따르면, 명령 또는 데이터는 제2 네트워크(1099)에 연결된 서버(1008)를 통해서 전자 장치(1001)와 외부의 전자 장치(1004)간에 송신 또는 수신될 수 있다. 전자 장치(1002, 1004) 각각은 전자 장치(1001)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시 예에 따르면, 전자 장치(1001)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 전자 장치에서 실행될 수 있다. 일 실시 예에 따르면, 전자 장치(1001)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(1001)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 전자 장치에게 요청할 수 있다. 상기 요청을 수신한 외부 전자 장치는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(1001)로 전달할 수 있다. 전자 장치(1001)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
본 문서에 개시된 다양한 실시 예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치 중 적어도 하나를 포함할 수 있다. 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시 예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 문서의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 내장 메모리(1036) 또는 외장 메모리(1038))에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램(1040))로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(1001))를 포함할 수 있다. 상기 명령이 프로세서(예: 프로세서(1020))에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
본 문서에 개시된 실시 예는, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 발명의 범위를 한정하는 것은 아니다. 따라서, 본 문서의 범위는, 본 발명의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시 예를 포함하는 것으로 해석되어야 한다.

Claims (20)

  1. 전자 장치에 있어서,
    스피커;
    마이크;
    통신 인터페이스;
    상기 스피커, 상기 마이크 및 상기 통신 인터페이스와 작동적으로(operatively) 연결되는 프로세서; 및
    상기 프로세서와 작동적으로 연결되는 메모리;를 포함하고,
    상기 메모리는, 실행 시에, 상기 프로세서가,
    상기 마이크를 통하여 제1 발화를 수신하고,
    상기 제1 발화에 대한 화자 인식(speaker recognition)을 수행함으로써 화자 모델(speaker model)을 결정하고,
    상기 제1 발화 수신 이후, 상기 마이크를 통하여 제2 발화를 수신하고,
    상기 결정된 화자 모델을 적어도 부분적으로 이용하여 상기 제2 발화의 종점(end-point)을 감지하도록 하는 인스트럭션들(instructions)을 저장하는, 전자 장치.
  2. 제1항에 있어서,
    상기 제1 발화는,
    기 지정된 적어도 하나의 웨이크 업(wake-up) 단어를 포함하는, 전자 장치.
  3. 제1항에 있어서,
    상기 제2 발화는,
    상기 전자 장치를 통하여 수행할 태스크(task)와 관계되는 명령 또는 의도를 내포하는 발화를 포함하는, 전자 장치.
  4. 제1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    지정된 적어도 한 명의 화자에 대응하는 적어도 하나의 화자 모델을 생성하여 데이터베이스로 저장하도록 하는, 전자 장치.
  5. 제4항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 제1 발화 수신에 응답하여, 상기 제1 발화와 관련한 음성 데이터가 상기 데이터베이스에 저장된 적어도 하나의 화자 모델 중 적어도 하나에 대응하는 경우, 상기 전자 장치에 임베디드(embedded)되거나 또는 외부 서버로부터 제공되는 음성 인식 서비스 기능을 활성화시키도록 하는, 전자 장치.
  6. 제5항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 제1 발화와 관련한 음성 데이터에 대응하는 화자 모델을 결정하여 캐시 메모리에 저장하도록 하는, 전자 장치.
  7. 제6항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 제2 발화와 관련한 음성 데이터가 상기 캐시 메모리에 저장된 화자 모델 또는 상기 데이터베이스에 저장된 적어도 하나의 화자 모델 중 적어도 하나에 대응하는 경우, 상기 제2 발화의 종점을 감지하도록 하는, 전자 장치.
  8. 제7항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 종점이 감지된 제2 발화와 관련한 음성 데이터를 상기 외부 서버로 전송하도록 하는, 전자 장치.
  9. 제6항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 제2 발화와 관련한 음성 데이터가 상기 캐시 메모리에 저장된 화자 모델 또는 상기 데이터베이스에 저장된 적어도 하나의 화자 모델에 대응하지 않는 경우, 상기 제2 발화의 종점 감지를 배제하도록 하는, 전자 장치.
  10. 제9항에 있어서,
    상기 인스트럭션들은, 상기 프로세가,
    상기 제2 발화와 관련한 음성 데이터가 상기 캐시 메모리에 저장된 화자 모델 또는 상기 데이터베이스에 저장된 적어도 하나의 화자 모델에 대응하지 않는 경우, 지정된 시간 경과 후 상기 캐시 메모리에 저장된 화자 모델을 제거(deletion)하도록 하는, 전자 장치.
  11. 전자 장치의 사용자 음성 입력 처리 방법에 있어서,
    상기 전자 장치에 탑재된 마이크를 통하여 제1 발화를 수신하는 동작;
    상기 제1 발화에 대한 화자 인식(speaker recognition)을 수행함으로써 화자 모델(speaker model)을 결정하는 동작;
    상기 제1 발화 수신 이후, 상기 마이크를 통하여 제2 발화를 수신하는 동작; 및
    상기 결정된 화자 모델을 적어도 부분적으로 이용하여 상기 제2 발화의 종점(end-point)을 감지하는 동작;을 포함하는, 사용자 음성 입력 처리 방법.
  12. 제11항에 있어서,
    상기 제1 발화를 수신하는 동작은,
    기 지정된 적어도 하나의 웨이크 업(wake-up) 단어를 수신하는 동작;을 포함하는, 사용자 음성 입력 처리 방법.
  13. 제11항에 있어서,
    상기 제2 발화를 수신하는 동작은,
    상기 전자 장치를 통하여 수행할 태스크(task)와 관계되는 명령 또는 의도를 내포하는 발화를 수신하는 동작;을 포함하는, 사용자 음성 입력 처리 방법.
  14. 제11항에 있어서,
    지정된 적어도 한 명의 화자에 대응하는 적어도 하나의 화자 모델을 생성하여 데이터베이스로 저장하는 동작;을 더 포함하는, 사용자 음성 입력 처리 방법.
  15. 제14항에 있어서,
    상기 제1 발화를 수신하는 동작은,
    상기 제1 발화와 관련한 음성 데이터가 상기 데이터베이스에 저장된 적어도 하나의 화자 모델 중 적어도 하나에 대응하는 경우, 상기 전자 장치에 임베디드(embedded)되거나 또는 외부 서버로부터 제공되는 음성 인식 서비스 기능을 활성화시키는 동작;을 포함하는, 사용자 음성 입력 처리 방법.
  16. 제15항에 있어서,
    상기 화자 모델을 결정하는 동작은,
    상기 제1 발화와 관련한 음성 데이터에 대응하는 화자 모델을 결정하여 캐시 메모리에 저장하는 동작;을 포함하는, 사용자 음성 입력 처리 방법.
  17. 제16항에 있어서,
    상기 제2 발화의 종점을 감지하는 동작은,
    상기 제2 발화와 관련한 음성 데이터가 상기 캐시 메모리에 저장된 화자 모델 또는 상기 데이터베이스에 저장된 적어도 하나의 화자 모델 중 적어도 하나에 대응하는 경우, 상기 제2 발화의 종점을 감지하는 동작;을 포함하는, 사용자 음성 입력 처리 방법.
  18. 제17항에 있어서,
    상기 제2 발화의 종점을 감지하는 동작은,
    상기 종점이 감지된 제2 발화와 관련한 음성 데이터를 상기 외부 서버로 전송하는 동작;을 포함하는, 사용자 음성 입력 처리 방법.
  19. 제16항에 있어서,
    상기 제2 발화의 종점을 감지하는 동작은,
    상기 제2 발화와 관련한 음성 데이터가 상기 캐시 메모리에 저장된 화자 모델 또는 상기 데이터베이스에 저장된 적어도 하나의 화자 모델에 대응하지 않는 경우, 상기 제2 발화의 종점 감지를 배제하는 동작;을 포함하는, 사용자 음성 입력 처리 방법.
  20. 제16항에 있어서,
    상기 제2 발화의 종점을 감지하는 동작은,
    상기 제2 발화와 관련한 음성 데이터가 상기 캐시 메모리에 저장된 화자 모델 또는 상기 데이터베이스에 저장된 적어도 하나의 화자 모델에 대응하지 않는 경우, 지정된 시간 경과 후 상기 캐시 메모리에 저장된 화자 모델을 제거(deletion)하는 동작;을 포함하는, 사용자 음성 입력 처리 방법.
KR1020180081746A 2018-07-13 2018-07-13 사용자 음성 입력 처리 방법 및 이를 지원하는 전자 장치 KR102563817B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180081746A KR102563817B1 (ko) 2018-07-13 2018-07-13 사용자 음성 입력 처리 방법 및 이를 지원하는 전자 장치
US17/259,940 US11514890B2 (en) 2018-07-13 2019-07-12 Method for user voice input processing and electronic device supporting same
PCT/KR2019/008668 WO2020013666A1 (ko) 2018-07-13 2019-07-12 사용자 음성 입력 처리 방법 및 이를 지원하는 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180081746A KR102563817B1 (ko) 2018-07-13 2018-07-13 사용자 음성 입력 처리 방법 및 이를 지원하는 전자 장치

Publications (2)

Publication Number Publication Date
KR20200007530A true KR20200007530A (ko) 2020-01-22
KR102563817B1 KR102563817B1 (ko) 2023-08-07

Family

ID=69143031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180081746A KR102563817B1 (ko) 2018-07-13 2018-07-13 사용자 음성 입력 처리 방법 및 이를 지원하는 전자 장치

Country Status (3)

Country Link
US (1) US11514890B2 (ko)
KR (1) KR102563817B1 (ko)
WO (1) WO2020013666A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023096121A1 (ko) * 2021-11-23 2023-06-01 삼성전자 주식회사 전자 장치 및 그 동작 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10999733B2 (en) 2017-11-14 2021-05-04 Thomas STACHURA Information security/privacy via a decoupled security accessory to an always listening device
EP3921830A4 (en) 2019-02-07 2022-11-02 Thomas Stachura PRIVACY DEVICE FOR SMART SPEAKERS
US11721330B1 (en) * 2019-09-04 2023-08-08 Amazon Technologies, Inc. Natural language input processing
CN111341344B (zh) * 2020-02-25 2024-02-13 烽火通信科技股份有限公司 一种实现麦克风共享的方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009109712A (ja) * 2007-10-30 2009-05-21 National Institute Of Information & Communication Technology オンライン話者逐次区別システム及びそのコンピュータプログラム
US20180012604A1 (en) * 2014-07-18 2018-01-11 Google Inc. Speaker verification using co-location information
US20180330723A1 (en) * 2017-05-12 2018-11-15 Apple Inc. Low-latency intelligent automated assistant
US20190043525A1 (en) * 2018-01-12 2019-02-07 Intel Corporation Audio events triggering video analytics

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867574A (en) 1997-05-19 1999-02-02 Lucent Technologies Inc. Voice activity detection system and method
JP4791857B2 (ja) 2006-03-02 2011-10-12 日本放送協会 発話区間検出装置及び発話区間検出プログラム
US8731936B2 (en) 2011-05-26 2014-05-20 Microsoft Corporation Energy-efficient unobtrusive identification of a speaker
US9318129B2 (en) 2011-07-18 2016-04-19 At&T Intellectual Property I, Lp System and method for enhancing speech activity detection using facial feature detection
KR101616112B1 (ko) 2014-07-28 2016-04-27 (주)복스유니버스 음성 특징 벡터를 이용한 화자 분리 시스템 및 방법
KR102536944B1 (ko) 2014-11-07 2023-05-26 삼성전자주식회사 음성 신호 처리 방법 및 장치
KR102585228B1 (ko) 2015-03-13 2023-10-05 삼성전자주식회사 음성 인식 시스템 및 방법
US10438593B2 (en) 2015-07-22 2019-10-08 Google Llc Individualized hotword detection models
KR101943381B1 (ko) 2016-08-22 2019-01-29 에스케이텔레콤 주식회사 심층 신경망을 이용한 음성 끝점 검출 방법 및 이를 위한 끝점 검출 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009109712A (ja) * 2007-10-30 2009-05-21 National Institute Of Information & Communication Technology オンライン話者逐次区別システム及びそのコンピュータプログラム
US20180012604A1 (en) * 2014-07-18 2018-01-11 Google Inc. Speaker verification using co-location information
US20180330723A1 (en) * 2017-05-12 2018-11-15 Apple Inc. Low-latency intelligent automated assistant
US20190043525A1 (en) * 2018-01-12 2019-02-07 Intel Corporation Audio events triggering video analytics

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023096121A1 (ko) * 2021-11-23 2023-06-01 삼성전자 주식회사 전자 장치 및 그 동작 방법

Also Published As

Publication number Publication date
KR102563817B1 (ko) 2023-08-07
US20220139377A1 (en) 2022-05-05
US11514890B2 (en) 2022-11-29
WO2020013666A1 (ko) 2020-01-16

Similar Documents

Publication Publication Date Title
KR102426704B1 (ko) 음성 인식 서비스 운용 방법 및 이를 지원하는 전자 장치
US10978048B2 (en) Electronic apparatus for recognizing keyword included in your utterance to change to operating state and controlling method thereof
US10811008B2 (en) Electronic apparatus for processing user utterance and server
KR102563817B1 (ko) 사용자 음성 입력 처리 방법 및 이를 지원하는 전자 장치
US11765234B2 (en) Electronic device, server and recording medium supporting task execution using external device
US11631406B2 (en) Method for responding to user utterance and electronic device for supporting same
KR20190099761A (ko) 사용자 발화를 처리하는 시스템 및 그 시스템의 제어 방법
US11120792B2 (en) System for processing user utterance and controlling method thereof
KR102508863B1 (ko) 전자 장치 및 상기 전자 장치로부터 수신된 데이터를 처리하는 서버
US11150870B2 (en) Method for providing natural language expression and electronic device supporting same
KR102391298B1 (ko) 음성 인식 서비스를 제공하는 전자 장치 및 그 방법
US20190025878A1 (en) Electronic device and system for deciding duration of receiving voice input based on context information
KR20180109625A (ko) 음성 인식 서비스 운용 방법 및 이를 지원하는 전자 장치
KR20190127372A (ko) 전자 장치 및 전자 장치의 기능 실행 방법
KR102426411B1 (ko) 사용자 발화을 처리하는 전자 장치 및 시스템
US11244676B2 (en) Apparatus for processing user voice input
KR102396147B1 (ko) 음성 명령을 이용한 동작을 수행하는 전자 장치 및 전자 장치의 동작 방법
US11516039B2 (en) Performance mode control method and electronic device supporting same
KR20190139489A (ko) 음성 인식 서비스 운용 방법 및 이를 지원하는 전자 장치
KR20190130202A (ko) 전자 장치 및 전자 장치의 기능 실행 방법
KR20200092763A (ko) 사용자 음성을 처리하는 전자장치 및 그 제어 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant