KR20210155321A - 전자 장치 및 그 제어 방법 - Google Patents

전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR20210155321A
KR20210155321A KR1020200133183A KR20200133183A KR20210155321A KR 20210155321 A KR20210155321 A KR 20210155321A KR 1020200133183 A KR1020200133183 A KR 1020200133183A KR 20200133183 A KR20200133183 A KR 20200133183A KR 20210155321 A KR20210155321 A KR 20210155321A
Authority
KR
South Korea
Prior art keywords
user
cluster
voiceprint
voice
glottal
Prior art date
Application number
KR1020200133183A
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 US17/158,669 priority Critical patent/US11664033B2/en
Priority to EP21824961.3A priority patent/EP4082007B1/en
Priority to PCT/KR2021/001065 priority patent/WO2021256652A1/en
Publication of KR20210155321A publication Critical patent/KR20210155321A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • 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
    • 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
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Collating Specific Patterns (AREA)

Abstract

전자 장치가 개시된다. 본 전자 장치는, 기 등록된 적어도 하나의 성문 및 기 등록된 적어도 하나의 성문을 포함하는 제1 성문 클러스터를 저장하는 메모리 및 사용자 인식 명령이 수신되면, 사용자 인식 명령이 수신된 시간 정보를 획득하고, 획득된 시간 정보에 기초하여 제1 성문 클러스터에 포함된 기 등록된 적어도 하나의 성문을 변경하고, 변경된 적어도 하나의 성문에 기초하여 제2 성문 클러스터를 생성하고, 사용자의 발화 음성이 수신되면, 제1 성문 클러스터 및 제2 성문 클러스터에 기초하여 수신된 사용자의 발화 음성에 대한 사용자 인식을 수행하는 프로세서를 포함한다.

Description

전자 장치 및 그 제어 방법{ELECTRONIC APPARATUS AND CONTROLLING METHOD THEREOF}
본 개시는 전자 장치에 관한 것으로, 특히 사용자의 발화 음성을 분석하여 사용자를 인식하는 장치에 관한 것이다.
가상 개인 지원(VPA: Virtual personal assistance) 기반 장치는 음성-커맨드를 이해하고 이에 의해 사용자를 위한 다양한 작업, 예를 들어, 목적지에 대한 지도를 표시하고, 최신 뉴스를 렌더링하고, 장치를 켜고, 주제에 대한 검색 결과를 렌더링하는 등의 발생을 트리거링한다. 장치는 최종 출력을 음향적으로 또는 디스플레이를 통해 또는 둘 모두의 조합을 통해 렌더링할 수 있다.
개인화된 VPA에서, 사용자는 자신의 특정 음성을 인공 지능(AI) 구동 음향 장치, 스마트 디스플레이 또는 음성-기반 화자 인식에 기초하는 많은 장치에 링크하고 등록할 수 있다. 따라서, 개인화된 VPA를 통해, 특정의 말하는 인간만이 음성을 통해 인증되었을 때 다른 사람에 대한 액세스를 금지하면서 많은 장치를 스위치 온/오프하거나 제어하도록 허가된다.
현대의 개인화된 VPA는 장치에 등록된 하나 이상의 화자의 저장 및 등록된 성문(voice-print)에 의존한다. 도 1에 나타낸 바와 같이, 개인화된 VPA의 화자 인식 시스템은 2-단계 프로세스에 의해 동작한다. 등록-단계의 일부로서, 사용자는 사용자에 의해 발화된 샘플 문구로부터 음성을 캡처하는 것에 기초하여 등록된다. 인식-단계에서, 사용자에 의해 실시간으로 발성된 사용자로부터의 진입 발화가 캡처되고 사용자-훈련 모델에 기초하여 저장된 성문과 비교된다. 유사도 스코어에 기초하여, 발성 사용자는 인증되거나 거부된다.
적어도 개인화된 VPA와 관련하여, 원하는 특성은 사용자의 질문에 대한 개인화된 답변을 전달하는 컨텍스트-구동 개인 지원이다. VPA로부터 사용자로의 개인화된 응답은 보안 액세스를 더욱 강화하고 비밀을 유지한다.
그러나, 질병, 나이 듦, 또는 임의의 다른 외부/내부 이유로 인해 사람의 목소리가 때때로 변화를 겪는다는 사실은 여전히 남아 있다. 따라서, 개인화된 VPA와 연관된 사용자 요건은 다음과 같다:
장치가 화자의 음성 가변성을 얼마나 잘 이해하고 있습니까?
장치가 음성 가변성의 장애를 얼마나 잘 극복하고 진정한 사용자를 여전히 인증합니까?
음성 가변성은 건강 조건(감기, 알코올에 취함 등), 정서적 상태(예를 들어, 스트레스, 즐거움 등), 노화, 환경 노이즈 등으로 인한 사람-음성의 변화를 지칭한다. 또한, 특정 조건, 말하자면 질병에 대해서도, 인간의 음성은 사람마다 다른 정도의 변화를 겪는다. 예를 들어, 아픈 십대의 음성은 감기 중에 약간 변하는 것으로 보이지만, 목이 막힌 중에는 두드러지게 다르게 들릴 수 있다.
분명하게 관찰된 바와 같이, 종래의 VPA 및 유사한 장치에서의 화자-인식 시스템은 인증 프로세스 중에 화자의 음성 가변성을 실질적으로 고려하지 못하고 실질적인 잘못된 거부로 되는 것으로 끝난다. 도 1을 참조하면, 예를 들어, 시나리오 1에서 참조되는 바와 같이, 사용자는 감기에 시달리고 있다. 예시 시나리오 2에서, 사용자는 술에 취한 상태에 있다. 이러한 시나리오 모두는 음성에 대한 약간의 변화로 귀결된다. 다른 예시적인 시나리오는 노년, 노이즈가 있는 배경, 감정 상태, 또는 사용자의 일부에 대한 임의의 다른 강제적 장애를 포함할 수 있다. 예에서, 등록 단계에서 배경 카오스조차도 성문의 일부로 등록되었을 수 있음으로 인해 잡음이 있는 배경에 대해 사용자의 음성을 등록했을 수 있다. 한편, 인식 단계는 선명한 배경에 대해 사용자의 음성 커맨드를 수신하고, 이에 의해 왜곡의 부재로 인해 여전히 음성 가변성으로 이어진다.
따라서, 종래의 화자-인식 메커니즘은 음성 변화시에 사용자에 대한 잘못된 거부를 넘겨주는 것으로 끝난다. 인증이 어떻게든 발생하더라도, 이는 사용자로부터 상당한 횟수의 반복된 발화의 수신시에서만 달성되며, 이에 의해 사용자를 대체로 좌절하게 한다. 사용자가 목이 막히거나 나이가 들 경우 상황은 더욱 악화된다.
적어도 음성 변화로 인한 잘못된 거부를 방지하기 위한 해결책은 지정된 네트워크 엔티티가 실제 환경에서 사용자 장치로부터 음성 데이터를 주기적으로 수집하고, 훈련/재학습하고, 사용자 장치에 모델을 배치하는 것이다. 그러나, 음성 데이터는 임의의 다른 기밀 데이터와 가까운 민감도를 가지므로, 이러한 음성 데이터 수집은 프라이버시 침해에 해당한다. 프라이버시 문제가 무시되더라도, 사용자 장치에서의 업데이트된 모델의 재-배치는 음성 가변성을 수용하기 위해 새로운 성문을 생성하기 위해 이미 등록된 것의 재등록을 불필요하게 요구한다.
따라서, 적어도 상술한 관점에서, 음성 인식 기반 화자 인증은 예를 들어, 지문-기반, 망막 기반, 패스워드/PIN-기반과 같은 다른 인증 시스템에 대해 신뢰도 지수를 낮게 한다. 따라서, 등록된 화자의 인증 중에 음성 가변성에 의해 제기된 문제를 극복하기 위해 자동으로 자체 적응할 수 있고 진실된 사용자의 잘못된 거부를 방지하는 메커니즘에 대한 필요성이 있다.
또한, 상술한 문제를 극복하기 위해 배치된 음성 인식 메커니즘을 동적으로 훈련시키는 메커니즘에 대한 필요성이 있다.
본 개시는 사용자의 발화 음성을 분석하여 사용자를 인식하는 장치에 관한 것이다.
본 개요는 본 발명의 상세한 설명에서 추가로 설명되는 단순화된 포맷으로 선택된 개념을 소개하기 위해 제공된다. 본 요약은 본 발명의 핵심 또는 본질적인 발명의 개념을 식별하기 위해 의도된 것이 아니며, 본 발명의 범위를 결정하기 위해 의도된 것도 아니다.
상술한 목적을 달성하기 위한 본 실시 예에 따른 전자 장치는 기 등록된 적어도 하나의 성문 및 상기 기 등록된 적어도 하나의 성문을 포함하는 제1 성문 클러스터를 저장하는 메모리 및 사용자 인식 명령이 수신되면, 상기 사용자 인식 명령이 수신된 시간 정보를 획득하고, 상기 획득된 시간 정보에 기초하여 상기 제1 성문 클러스터에 포함된 상기 기 등록된 적어도 하나의 성문을 변경하고, 상기 변경된 적어도 하나의 성문에 기초하여 제2 성문 클러스터를 생성하고, 사용자의 발화 음성이 수신되면, 상기 제1 성문 클러스터 및 상기 제2 성문 클러스터에 기초하여 상기 수신된 사용자의 발화 음성에 대한 사용자 인식을 수행하는 프로세서를 포함한다.
한편, 상기 프로세서는 상기 사용자 인식이 성공하면, 상기 수신된 사용자의 발화 음성에 기초하여 상기 제2 성문 클러스터를 업데이트할 수 있다.
한편, 상기 프로세서는 상기 사용자 인식이 성공하면, 외부 장치로부터 사용자 활동 정보 또는 사용자 신체 정보 중 적어도 하나를 수신할 수 있고, 상기 수신된 사용자 활동 정보 또는 사용자 신체 정보 중 적어도 하나에 기초하여 상기 제2 성문 클러스터를 업데이트할 수 있다.
한편, 상기 프로세서는 상기 사용자 인식이 실패하면, 상기 사용자의 권한을 검증할 수 있고, 상기 사용자의 권한이 검증되면, 상기 수신된 사용자의 발화 음성에 기초하여 사용자의 건강 상태를 식별할 수 있고, 상기 식별된 사용자의 건강 상태에 기초하여 상기 제2 성문 클러스터를 업데이트할 수 있다.
한편, 상기 프로세서는 상기 수신된 발화 음성에서 음성 특징을 획득할 수 있고, 상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 사용자 인식이 실패한 것으로 결정할 수 있고 상기 사용자의 권한을 검증할 수 있고, 상기 사용자의 권한이 검증되면, 상기 획득된 음성 특징에 기초하여 상기 제2 성문 클러스터를 업데이트할 수 있고, 상기 업데이트된 제2 성문 클러스터에 기초하여 사용자 인식을 수행할 수 있다.
한편, 상기 프로세서는 상기 획득된 음성 특징에 대응되는 컨텍스트를 식별할 수 있고, 상기 식별된 컨텍스트에 대응되는 음성 템플릿을 식별할 수 있고, 상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 상기 획득된 음성 특징 및 상기 식별된 음성 템플릿에 기초하여 상기 사용자의 권한을 검증할 수 있고, 상기 사용자의 권한이 검증되면, 상기 획득된 음성 특징, 상기 식별된 컨텍스트, 상기 식별된 음성 템플릿 또는 상기 기 등록된 적어도 하나의 성문 중 상기 사용자에 대응되는 성문 중 적어도 하나에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득할 수 있고, 상기 획득된 클러스터 구성 정보에 기초하여 상기 제2 성문 클러스터를 업데이트할 수 있다.
한편, 상기 프로세서는 상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 상기 수신된 발화 음성 이외의 파라미터를 획득할 수 있고, 상기 획득된 파라미터에 기초하여 상기 사용자의 권한을 검증할 수 있고, 상기 사용자의 권한이 검증되면, 상기 획득된 음성 특징 또는 상기 기 등록된 적어도 하나의 성문 중 상기 사용자에 대응되는 성문 중 적어도 하나에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득할 수 있고, 상기 획득된 클러스터 구성 정보에 기초하여 상기 제2 성문 클러스터를 업데이트할 수 있다.
한편, 상기 파라미터는 상기 전자 장치에서 수행되는 사용자의 조작에 대응되는 동작 파라미터, 외부 장치에서 수행되는 사용자의 조작에 대응되는 동작 파라미터, 상기 사용자에 대응되는 생체 측정 파라미터 또는 상기 사용자가 상기 전자 장치에 액세스하는 시간 파라미터 중 적어도 하나를 포함할 수 있다.
한편, 전자 장치는 상기 사용자가 발화한 발화 음성을 수신하는 음향 센서를 더 포함할 수 있고, 상기 프로세서는 상기 수신된 발화 음성을 음성 프로세싱 기준에 기초하여 피치(pitch), 톤(tone), 데시벨 또는 주파수 중 적어도 하나로 분해할 수 있다.
한편, 상기 프로세서는 상기 획득된 음성 특징에 기초하여 상기 발화 음성에 대응되는 발화 성문을 획득할 수 있고, 상기 획득된 발화 성문과 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과의 유사도값을 획득할 수 있고, 상기 획득된 유사도값이 임계값 이하면, 상기 사용자 인식이 실패한 것으로 결정할 수 있고, 상기 획득된 유사도값이 임계값을 초과하면, 상기 사용자 인식이 성공한 것으로 결정할 수 있고, 상기 기 등록된 적어도 하나의 성문은 사용자 식별 정보이며, 상기 기 등록된 적어도 하나의 성문은 상기 제1 성문 클러스터에 포함될 수 있으며, 상기 제1 성문 클러스터는 기 결정된 중앙값 및 임계값을 포함하는 클러스터 구성 정보를 포함할 수 있다.
한편, 상기 프로세서는 상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 센서로부터 획득되는 센싱 데이터 또는 사용자 인터페이스를 통해 획득되는 입력 데이터에 기초하여 상기 사용자의 권한을 검증할 수 있다.
한편, 상기 메모리는 적어도 하나의 음성 템플릿을 포함하는 적어도 하나의 음성 가변성 식별자(클러스터 ID)를 저장할 수 있고, 상기 프로세서는 상기 획득된 음성 특징에 기초하여 상기 발화 음성에 대응되는 발화 성문을 획득할 수 있고, 상기 획득된 발화 성문과 상기 적어도 하나의 음성 템플릿을 비교하여, 상기 발화 성문에 대응되는 음성 가변성 식별자를 식별할 수 있고, 상기 식별된 음성 가변성 식별자에 기초하여 상기 발화 성문에 대응되는 컨텍스트를 식별할 수 있고, 상기 컨텍스트는 취한 상태, 아픈 상태, 피곤한 상태, 기상 상태, 외치는 상태, 중얼거리는 상태, 속삭이는 상태, 흥분 상태, 목이 막힌 상태, 흥얼거리는 상태, 활기찬 상태, 익살스러운 상태 중 적어도 하나의 상태를 포함할 수 있다.
한편, 상기 프로세서는 상기 발화 성문을 기 결정된 방법으로 임베딩하여 임베딩값을 획득할 수 있고, 상기 획득된 임베딩값과 상기 제1 성문 클러스터의 제1 중심값 사이의 차이값이 제1 임계값을 초과할 수 있고 상기 획득된 임베딩값과 상기 제2 성문 클러스터의 제2 중심값사이의 차이값이 제2 임계값을 초과하면, 사용자 인식이 실패한 것으로 결정할 수 있고 사용자의 권한을 검증할 수 있다.
한편, 상기 프로세서는 상기 사용자의 권한이 검증되면, 상기 발화 성문에 대응되는 제3 중심값 및 제3 임계값을 획득할 수 있고, 상기 제1 중심값, 상기 제1 임계값, 상기 제2 중심값, 상기 제2 임계값, 상기 제3 중심값 및 상기 제3 임계값에 기초하여 제4 중심값 및 제4 임계값을 포함하는 클러스터 구성 정보를 획득할 수 있고, 상기 획득된 클러스터 구성 정보에 기초하여 상기 제2 성문 클러스터를 업데이트할 수 있다.
한편, 상기 프로세서는 상기 획득된 임베딩값과 상기 제1 성문 클러스터의 제1 중심값 사이의 차이값이 제5 임계값을 초과할 수 있고 상기 획득된 임베딩값과 상기 제2 성문 클러스터의 제2 중심값 사이의 차이값이 제5 임계값을 초과하면, 상기 획득된 제3 중심값 및 제3 임계값에 기초하여 제3 성문 클러스터를 생성할 수 있고, 상기 생성된 제3 성문 클러스터를 추가 등록할 수 있다.
본 개시의 일 실시 예에 따른 기 등록된 적어도 하나의 성문 및 상기 기 등록된 적어도 하나의 성문을 포함하는 제1 성문 클러스터를 저장하는 전자 장치의 제어 방법은 사용자 인식 명령이 수신되면, 상기 사용자 인식 명령이 수신된 시간 정보를 획득하는 단계, 상기 획득된 시간 정보에 기초하여 상기 제1 성문 클러스터에 포함된 상기 기 등록된 적어도 하나의 성문을 변경하는 단계, 상기 변경된 적어도 하나의 성문에 기초하여 제2 성문 클러스터를 생성하는 단계 및 사용자의 발화 음성이 수신되면, 상기 제1 성문 클러스터 및 상기 제2 성문 클러스터에 기초하여 상기 수신된 사용자의 발화 음성에 대한 사용자 인식을 수행하는 단계를 포함한다.
한편, 상기 제어 방법은 상기 사용자 인식이 성공하면, 상기 수신된 사용자의 발화 음성에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계를 더 포함할 수 있다.
한편, 상기 제어 방법은 상기 사용자 인식이 성공하면, 외부 장치로부터 사용자 활동 정보 또는 사용자 신체 정보 중 적어도 하나를 수신하는 단계 및 상기 수신된 사용자 활동 정보 또는 사용자 신체 정보 중 적어도 하나에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계를 더 포함할 수 있다.
한편, 상기 제어 방법은 상기 사용자 인식이 실패하면, 상기 사용자의 권한을 검증하는 단계, 상기 사용자의 권한이 검증되면, 상기 수신된 사용자의 발화 음성에 기초하여 사용자의 건강 상태를 식별하는 단계 및 상기 식별된 사용자의 건강 상태에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계를 더 포함할 수 있다.
한편, 상기 제어 방법은 상기 수신된 발화 음성에서 음성 특징을 획득하는 단계, 상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 사용자 인식이 실패한 것으로 결정할 수 있고 상기 사용자의 권한을 검증하는 단계, 상기 사용자의 권한이 검증되면, 상기 획득된 음성 특징에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계 및 상기 업데이트된 제2 성문 클러스터에 기초하여 사용자 인식을 수행하는 단계를 더 포함할 수 있다.
한편, 상기 제어 방법은 상기 획득된 음성 특징에 대응되는 컨텍스트를 식별하는 단계, 상기 식별된 컨텍스트에 대응되는 음성 템플릿을 식별하는 단계, 상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 상기 획득된 음성 특징 및 상기 식별된 음성 템플릿에 기초하여 상기 사용자의 권한을 검증하는 단계, 상기 사용자의 권한이 검증되면, 상기 획득된 음성 특징, 상기 식별된 컨텍스트, 상기 식별된 음성 템플릿 또는 상기 기 등록된 적어도 하나의 성문 중 상기 사용자에 대응되는 성문 중 적어도 하나에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득하는 단계 및 상기 획득된 클러스터 구성 정보에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계를 더 포함할 수 있다.
한편, 상기 제어 방법은 상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 상기 수신된 발화 음성 이외의 파라미터를 획득하는 단계, 상기 획득된 파라미터에 기초하여 상기 사용자의 권한을 검증하는 단계, 상기 사용자의 권한이 검증되면, 상기 획득된 음성 특징 또는 상기 기 등록된 적어도 하나의 성문 중 상기 사용자에 대응되는 성문 중 적어도 하나에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득하는 단계 및 상기 획득된 클러스터 구성 정보에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계를 더 포함할 수 있다.
한편, 상기 파라미터는 상기 전자 장치에서 수행되는 사용자의 조작에 대응되는 동작 파라미터, 외부 장치에서 수행되는 사용자의 조작에 대응되는 동작 파라미터, 상기 사용자에 대응되는 생체 측정 파라미터 또는 상기 사용자가 상기 전자 장치에 액세스하는 시간 파라미터 중 적어도 하나를 포함할 수 있다.
한편, 상기 제어 방법은 상기 사용자가 발화한 발화 음성을 수신하는 단계 및 상기 수신된 발화 음성을 음성 프로세싱 기준에 기초하여 피치(pitch), 톤(tone), 데시벨 또는 주파수 중 적어도 하나로 분해하는 단계를 더 포함할 수 있다.
한편, 상기 제어 방법은 상기 획득된 음성 특징에 기초하여 상기 발화 음성에 대응되는 발화 성문을 획득하는 단계, 상기 획득된 발화 성문과 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과의 유사도값을 획득하는 단계, 상기 획득된 유사도값이 임계값 이하면, 상기 사용자 인식이 실패한 것으로 결정하는 단계 및 상기 획득된 유사도값이 임계값을 초과하면, 상기 사용자 인식이 성공한 것으로 결정하는 단계를 더 포함할 수 있고, 상기 기 등록된 적어도 하나의 성문은 사용자 식별 정보이며, 상기 기 등록된 적어도 하나의 성문은 상기 제1 성문 클러스터에 포함될 수 있으며, 상기 제1 성문 클러스터는 기 결정된 중앙값 및 임계값을 포함하는 클러스터 구성 정보를 포함할 수 있다.
한편, 상기 제어 방법은 상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 센서로부터 획득되는 센싱 데이터 또는 사용자 인터페이스를 통해 획득되는 입력 데이터에 기초하여 상기 사용자의 권한을 검증하는 단계를 더 포함할 수 있다.
한편, 상기 전자 장치는 적어도 하나의 음성 템플릿을 포함하는 적어도 하나의 음성 가변성 식별자(클러스터 ID)를 저장할 수 있고, 상기 제어 방법은 상기 획득된 음성 특징에 기초하여 상기 발화 음성에 대응되는 발화 성문을 획득하는 단계, 상기 획득된 발화 성문과 상기 적어도 하나의 음성 템플릿을 비교하여, 상기 발화 성문에 대응되는 음성 가변성 식별자를 식별하는 단계 및 상기 식별된 음성 가변성 식별자에 기초하여 상기 발화 성문에 대응되는 컨텍스트를 식별하는 단계를 더 포함할 수 있고, 상기 컨텍스트는 취한 상태, 아픈 상태, 피곤한 상태, 기상 상태, 외치는 상태, 중얼거리는 상태, 속삭이는 상태, 흥분 상태, 목이 막힌 상태, 흥얼거리는 상태, 활기찬 상태, 익살스러운 상태 중 적어도 하나의 상태를 포함할 수 있다.
한편, 상기 제어 방법은 상기 발화 성문을 기 결정된 방법으로 임베딩하여 임베딩값을 획득하는 단계 및 상기 획득된 임베딩값과 상기 제1 성문 클러스터의 제1 중심값 사이의 차이값이 제1 임계값을 초과할 수 있고 상기 획득된 임베딩값과 상기 제2 성문 클러스터의 제2 중심값사이의 차이값이 제2 임계값을 초과하면, 사용자 인식이 실패한 것으로 결정할 수 있고 사용자의 권한을 검증하는 단계를 더 포함할 수 있다.
한편, 상기 제어 방법은 상기 사용자의 권한이 검증되면, 상기 발화 성문에 대응되는 제3 중심값 및 제3 임계값을 획득하는 단계, 상기 제1 중심값, 상기 제1 임계값, 상기 제2 중심값, 상기 제2 임계값, 상기 제3 중심값 및 상기 제3 임계값에 기초하여 제4 중심값 및 제4 임계값을 포함하는 클러스터 구성 정보를 획득하는 단계 및 상기 획득된 클러스터 구성 정보에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계를 더 포함할 수 있다.
한편, 상기 제어 방법은 상기 획득된 임베딩값과 상기 제1 성문 클러스터의 제1 중심값 사이의 차이값이 제5 임계값을 초과할 수 있고 상기 획득된 임베딩값과 상기 제2 성문 클러스터의 제2 중심값 사이의 차이값이 제5 임계값을 초과하면, 상기 획득된 제3 중심값 및 제3 임계값에 기초하여 제3 성문 클러스터를 생성하는 단계 및 상기 생성된 제3 성문 클러스터를 추가 등록하는 단계를 포함할 수 있다.
본 발명의 이점 및 특징을 더욱 명확하게 하기 위해, 본 발명의 보다 구체적인 설명이 첨부 도면에 나타내어진 특정 실시예를 참조하여 제공될 것이다. 이러한 도면은 본 발명의 통상적인 실시예만을 도시하므로 그 범위를 한정하는 것으로 간주되지 않아야 한다는 것이 이해된다. 본 발명은 첨부 도면과 함께 추가의 특정 사항 및 상세 사항으로 기술되고 설명될 것이다.
본 발명의 이들 및 다른 특징, 양태 및 이점은 도면 전체에 걸쳐 동일한 문자가 동일한 부분을 나타내는 첨부 도면을 참조하여 후술하는 상세한 설명이 판독될 때 더 잘 이해될 것이다.
도 1은 음성 가변성 시나리오의 예를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 방법-단계를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 도 2의 방법-단계의 구현을 나타낸다.
도 4는 본 청구물의 일 실시예에 따른 서브-프로세스를 도시하는 예시적인 제어-흐름도를 나타낸다.
도 5는 본 청구물의 일 실시예에 따른 서브-프로세스를 도시하는 다른 예시적인 제어-흐름도를 나타낸다.
도 6은 본 청구물의 일 실시예에 따른 서브-프로세스를 도시하는 다른 예시적인 제어-흐름도를 나타낸다.
도 7은 본 청구물의 일 실시예에 따른 서브-프로세스를 도시하는 다른 예시적인 제어-흐름도를 나타낸다.
도 8은 본 청구물의 일 실시예에 따른 도 7의 서브-프로세스의 예시적인 구현을 나타낸다.
도 9는 본 발명의 다른 실시예에 따른 방법-단계를 나타낸다.
도 10은 본 청구물의 일 실시예에 따른 예시적인 서브-프로세스를 나타낸다.
도 11은 본 청구물의 일 실시예에 따른 서브-프로세스를 도시하는 다른 예시적인 제어-흐름도를 나타낸다.
도 12는 본 청구물의 일 실시예와 관련하여 고려된 예시적인 음성 가변성 시나리오를 나타낸다.
도 13은 본 청구물의 일 실시예에 따른 예시적인 구현을 나타낸다.
도 14는 본 청구물의 일 실시예에 따른 다른 예시적인 구현을 나타낸다.
도 15는 도 3 및 도 9에 도시된 구현에 따라 다양한 모듈 및 서브-모듈을 구현하는 다른 시스템 아키텍처를 나타낸다.
도 16은 본 청구물의 일 실시예에 따른 컴퓨팅-장치 기반 구현을 나타낸다.
도 17은 본 개시의 일 실시 예에 따른 전자 장치의 블록도이다.
도 18은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 19는 본 개시의 일 실시 예에 따른 전자 장치 및 서버를 포함하는 시스템을 설명하기 위한 흐름도이다.
도 20은 클러스터에 대응되는 품질 파라미터를 획득하는데 이용되는 계산 과정을 설명하기 위한 도면이다.
도 21은 클러스터에 대응되는 품질 파라미터를 획득하는데 이용되는 계산 과정을 설명하기 위한 도면이다.
또한, 본 기술 분야의 통상의 기술자는 도면의 요소가 간략화를 위해 나타내어져 있으며 반드시 스케일대로 도시된 것은 아님을 이해할 것이다. 예를 들어, 흐름도는 본 발명의 양태의 이해를 향상시키는 데 도움이 되도록 관련된 가장 현저한 단계의 관점에서의 방법을 나타낸다. 또한, 장치의 구성과 관련하여, 장치의 하나 이상의 구성 요소는 도면에서 통상적인 부호로 표시될 수 있으며, 도면은 본원의 설명의 이점을 갖는 본 기술 분야의 통상의 기술자에게 용이하게 명백할 상세 사항으로 도면을 불명료하게 하지 않도록 본 발명의 실시예를 이해하는 데 적절한 특정의 상세 사항만을 나타낼 수 있다.
본 개시의 실시예의 예시적인 구현이 아래에 나타내어져 있지만, 본 발명은 현재 알려져 있거나 존재하는 임의의 수의 기술을 사용하여 구현될 수 있다는 것을 처음부터 이해해야 한다. 본 개시는 본원에 나타내어지고 설명된 예시적인 설계 및 구현을 포함하여 아래에 나타내어진 예시적인 구현, 도면 및 기술에 절대로 한정되지 않아야 하며, 첨부된 청구항의 범위 내에서 그 등가물의 전체 범위와 함께 수정될 수 있다.
본원에 사용되는 용어 "일부(some)"는 "없음, 또는 하나, 또는 하나 초과, 또는 모두"로 정의된다. 따라서, "없음", "하나", "하나 초과", "하나 초과이지만 모두는 아님" 또는 "모두"라는 용어는 모두 "일부"의 정의에 속할 것이다. "일부 실시예"라는 용어는 실시예가 없음 또는 하나의 실시예 또는 몇몇 실시예 또는 모든 실시예를 지칭할 수 있다. 따라서, "일부 실시예"라는 용어는 "실시예 없음, 또는 하나의 실시예, 또는 하나 초과의 실시예, 또는 모든 실시예"를 의미하는 것으로 정의된다.
본원에 채용된 용어 및 구조는 일부 실시예 및 그 특정의 특징 및 요소를 설명, 교시 및 분명히 하기 위한 것이며, 청구항 또는 그 등가물의 사상 및 범위를 한정, 제한 또는 감소시키지 않는다.
보다 구체적으로, "포함하다(include)", "포괄하다(comprise)", "갖다", "구성되다" 및 그 문법적 변형에 한정되지 않지만 이와 같이 본원에 사용된 임의의 용어는 정확한 한정 또는 제한을 명시하지 않으며 달리 언급되지 않는 한 하나 이상의 특징 또는 요소의 가능한 추가를 분명히 배제하지 않으며, 또한 "포함해야 한다" 또는 "포함할 필요가 있다"와 같은 한정어로 달리 언급되지 않는 한 열거된 특징 및 요소 중 하나 이상의 가능한 제거를 배제하는 것으로 이해되어서는 안된다.
특정의 특징 또는 요소가 한 번만 사용되도록 한정되었는지 여부에 관계없이, 어느 쪽이든 여전히 "하나 이상의 특징" 또는 "하나 이상의 요소" 또는 "적어도 하나의 특징" 또는 "적어도 하나의 요소"라고 칭해질 수 있다. 또한, "하나 이상의" 또는 "적어도 하나의" 특징 또는 요소라는 용어의 사용은 "하나 이상의..일 필요가 있다" 또는 "하나 이상의 요소가 필요하다"와 같은 한정어로 달리 특정되지 않는 한 이러한 특징 또는 요소가 없는 것을 배제하지 않는다.
달리 정의되지 않는 한, 본원에 사용되는 모든 용어, 특히 임의의 기술적 및/또는 과학적 용어는 본 기술 분야의 통상의 기술자에 의해 통상적으로 이해되는 것과 동일한 의미를 갖는 것으로 이해될 수 있다.
이하, 첨부 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 2는 본 청구물의 실시예에 따른 방법-단계를 나타낸다.
도 2a에 도시된 구현에서, 본 청구물은 음성-인식 기반 컴퓨팅-장치를 통해 화자를 인식하는 방법을 지칭한다. 본 방법은 적어도 하나의 화자로부터 발화를 수신하는 것에 기초하여 하나 이상의 음성-피처를 추출하는 단계(단계 202)를 포함한다. 피처의 추출은 음향 센서를 통해 발화를 캡처하고, 음성 프로세싱 기준을 통해 캡처된 발화를 피치(pitch), 톤(tone), 데시벨 및 주파수 중 하나 이상으로 분해하는 단계를 포함한다.
등록된 화자 데이터베이스(즉, 화자 등록 DB)로부터의 하나 이상의 등록된 성문이 페칭된다(단계 204). 이에 기초하여, 추출된 음성 피처와 하나 이상의 등록된 성문 간의 불일치에 기초하여 인식-실패가 검출된다(단계 206). 인식 실패의 검출은 발화 내의 추출된 음성 피처에 기초하여 성문을 컴퓨팅하는 단계를 포함한다. 등록된 성문에 대해 컴퓨팅된 성문의 유사도 스코어가 계산된다. 등록된 성문은 화자 식별자와 연관되며 사전-결정된 센트로이드(여기서, 센트로이드는 중심값을 의미할 수 있다.) 및 임계값과 연관된 성문의 클러스터에 의해 규정된다. 이에 기초하여, 인식-실패는 임계값을 초과하는 유사도 스코어에 기초하여 검출된다(단계 206).
화자의 아이덴티티는 적어도 a) 대체 인식 방법 및 b) 추출된 음성 피처와 연관된 컨텍스트와 관련된 하나 이상의 음성 템플릿 중 하나 이상에 기초하여 검증된다(208). 컨텍스트의 결정은 발화에서 추출된 음성 피처와 관련된 성문을 컴퓨팅하는 단계를 포함한다. 하나 이상의 사전-규정된 음성 템플릿은 컴퓨팅된 성문과 관련된 적어도 하나의 음성 가변성 식별자(클러스터 ID)에 링크된다. 음성 가변성 식별자에 기초하여 결정된 컨텍스트는 음성 가변성 조건으로서 분류될 수 있다. 예에서, 음성 가변성은 취함; 아픈 상태, 피곤한 상태, 기상 상태, 외침, 중얼거림, 속삭임, 흥분, 목이 막힌 상태, 흥얼거림, 활기찬 상태, 익살스러운 상태 중 하나 이상에 의해 규정된다.
일 실시예에서, 사용자의 아이덴티티는 대체 인식 방법에 기초하여 검증된다(단계 208). 대체 인식 방법에 기초한 화자의 아이덴티티의 검증은 비음향 소스로부터 추출된 발화 이외의 하나 이상의 파라미터를 포함한다. 검증은 센서로부터의 자동 감지와 후속하는 가중화된 평균 계산에 의해 규정되는 묵시적 방법, 또는 사용자로부터 수신된 사용자-입력에 의해 규정된 명시적 방법에 기초한다.
수신된 발화 이외의 파라미터는 화자에 의해 음성-인식 기반 컴퓨팅 장치를 통해 수행되는 하나 이상의 동작, 하나 이상의 사용자-장비를 통해 화자에 의해 수행되는 하나 이상의 동작, 화자에 관한 적어도 하나의 생체 측정-파라미터; 및 화자에 의한 음성-인식 기반 컴퓨팅 장치의 액세스와 연관된 시간-파라미터 중 하나 이상에 의해 규정된다. 인식 실패는 수신된 발화 이외의 하나 이상의 파라미터를 포함하는 식별 방법에 기초하여 화자의 아이덴티티를 수집함으로써 거짓으로 결정된다.
추가의 성문-센트로이드 및 임계값이 추출된 음성 피처 및 적어도 하나의 등록된 성문 중 적어도 하나에 기초하여 화자에 대해 계산되고, 이에 의해 성문 클러스터를 생성한다(단계 210). 새로운 성문 클러스터에 대한 추가의 성문 센트로이드 및 임계값의 컴퓨테이션은, 사전-결정된 성문 센트로이드를 컴퓨팅된 성문의 위치로 시프팅 및: a) 사전-결정된 임계값을 변경하는 단계; 및 b) 사전-결정된 임계값을 유지하는 단계 중 적어도 하나의 실행에 의한 새로운 센트로이드 Ci의 계산을 포함한다.
화자의 인식은 미지의 가변성 클러스터로서 새롭게 계산된 센트로이드 Ci에 기초하여 가능하게 된다(단계 212). 미지의 가변성 클러스터를 등록된 성문으로 저장하여 등록된 사용자 데이터베이스에서 저장 동작이 수행된다. 다른 예에서, 미지의 가변성 클러스터에 대응하는 델타 센트로이드 및 델타 임계값은 가변성 클러스터를 나타내는 것으로 계산되고 저장된다. 따라서, 등록된 화자 데이터베이스는 인식을 가능하게 하기 위해 상기 계산된 값을 포함하는 성문 클러스터로 업데이트된다.
도 2b에 도시된 다른 실시예에서, 단계 202 내지 단계 206은 프리커서(precursor)를 형성하고 도 2a와 유사하다. 그 후, 하나의 추출된 음성 피처의 기초가 되는 컨텍스트가 수집되고(단계 214), 이에 기초하여 하나 이상의 음성-템플릿이 페칭된다. 즉, 도 2b의 아이덴티티의 검증은 하나 이상의 음성 템플릿 및 추출된 음성 피처와 연관된 컨텍스트에 기초한다. 다른 예에서, 컨텍스트의 결정은 a) 등록된 성문 및 b) 등록된 화자에 대한 하나 이상의 가변성 클러스터 중 하나 이상으로부터 컴퓨팅된 성문의 분리를 결정하는 단계를 포함한다. 컨텍스트는 사전-결정된 임계값을 초과하는 것으로 상기 분리를 검출하는 것에 기초하여 미지의 음성 가변성으로서 결정된다.
성문 클러스터는 컨텍스트, 추출된 피처 및 페칭된 음성 템플릿 중 적어도 하나에 기초하여 화자에 대한 성문-센트로이드 및 임계값을 계산함으로써 생성된다(단계 216). 생성된 성문 클러스터와 하나 이상의 등록된 성문 사이의 실질적인 유사도에 기초하여 화자의 아이덴티티가 검증되거나 화자가 인증되며(단계 218), 이에 의해 사용자를 인증한다.
또한, 단계 216에서의 성문 클러스터 생성은 컨텍스트, 페칭된 음성 템플릿 및 적어도 하나의 등록된 성문 중 적어도 하나에 기초하여 화자에 대한 추가의 성문-센트로이드 및 임계값의 계산에 대응한다. 새로운 성문 클러스터에 대한 이러한 컴퓨테이션은 a) 사전 결정된 성문 센트로이드 및 임계값; 및 b) 결정된 컨텍스트와 링크된 음성 가변성 식별자와 연관된 델타-센트로이드 및 델타-임계값으로부터의 새로운 센트로이드 Ci 및 새로운 임계값 Ti의 계산을 포함한다. 등록된 화자 데이터베이스에서 적어도 하나의 화자의 가변성 클러스터로서 새롭게 계산된 센트로이드 Ci 및 새로운 임계값 Ti에 기초하여, 화자의 인식이 달성된다.
도 3은 도 2의 방법 단계를 구현하기 위한 음향 및 비음향 센서 및 자동 음성 인식(ASR: automatic speech recognition) 모듈에 의해 용이하게 되는 상세한 컴퓨팅-아키텍처의 개요를 나타낸다. 아키텍처는 음성-인식 기반 컴퓨팅-장치에서 화자를 인식하는 시스템(300)을 나타내며, 인공 지능(AI: artificial intelligence) 구동 시스템으로 지칭될 수 있다. 시스템(300)은 AI 엔진(300)으로 상호 교환 가능하게 지칭될 수 있다.
시스템(300)은 방법 단계 202를 실행하고 사용자의 입력 미가공 음성을 프로세싱하여 깨끗한-신호를 추출하는 오디오 프로세싱 엔진(302)을 포함한다. 화자 인식 모듈(304)(또는 인식 모델)은 깨끗한 음성 샘플을 프로세싱하고, 음성 피처를 추출하고, 결정 모듈(306)에 대한 화자 임베딩(embedding)을 생성하기 위해 방법 단계 202 및 204를 실행한다.
구현에서, 화자 인식 모듈(304)은 자동 음성 인식(ASR: automatic speech recognition) 모델을 사용하여 음성을 컴퓨터-판독 가능 텍스트로 변환한다. 사용자의 발화 의도는 자연어 이해(NLU: natural language understanding) 모델을 사용하여 변환된 텍스트를 해석함으로써 얻어질 수 있다. ASR 모델 또는 NLU 모델은 인공 지능 모델일 수 있다. 인공 지능 모델은 인공 지능 모델 프로세싱을 위해 특정된 하드웨어 구조로 설계된 인공 지능-전용 프로세서에 의해 프로세싱될 수 있다. 인공 지능 모델은 훈련을 통해 얻어질 수 있다.
여기서, "훈련에 의해 얻어진"은 훈련 기술에 의해 복수의 훈련 데이터 단편으로 기본 인공 지능 모델을 훈련함으로써 원하는 피처(또는 목적)를 수행하도록 구성된 사전 규정된 동작 규칙 또는 인공 지능 모델이 얻어짐을 의미한다. 인공 지능 모델은 복수의 신경망 계층을 포함할 수 있다. 복수의 신경망 계층 각각은 복수의 가중치를 포함하고, 이전 계층에 의한 컴퓨테이션 결과와 복수의 가중치 간의 컴퓨테이션에 의해 신경망 컴퓨테이션을 수행한다. 언어 이해는 인간 언어/텍스트를 인식하고 적용/프로세싱하기 위한 기술이며, 예를 들어, 자연어 프로세싱, 기계 번역, 대화 시스템, 질문 응답 또는 음성 인식/합성을 포함한다.
결정 모듈(306)은 단계 206을 실행하고 유사도 기준을 사용하여 등록된 샘플 임베딩으로 매핑된 화자 임베딩을 프로세싱하고 결과를 생성한다. 이 지점에서 사용자가 식별되지 않으면, 음성 가변성 조건을 검출하고 알려진 음성 가변성을 그에 따라 처리하기 위해 임계값을 조정하고 잘못된 거부를 방지한다.
적응형 화자 모듈(308)은 단계 208, 210 및 212를 실행한다. 적응형 화자 모듈(308)은 결정 모듈로부터 수신된 현재 캡처되거나 테스트된 음성-샘플을 프로세싱하고 인증시 음성-기반 화자 인식 방법의 실패의 경우 묵시적 인증 방법에 기초하여 임계값을 업데이트한다. 이는 또한 시스템-성능을 향상시키기 위해 성문 클러스터의 센트로이드를 업데이트한다.
음성 가변성에도 불구하고 이에 기초하여 사용자가 인증된 수신된 음성 샘플에 기초하여, 결정 모듈(306)은 음성 샘플이 로컬 모델 업데이트를 통해 성문으로 변환하기 위해 적응형 화자 모듈(308)(또는 화자 모델)에 의해 추가로 프로세싱될 필요가 있는지를 결정한다. 다른 시나리오에서, 결정 모듈(306)은 데이터베이스(DB)에 저장된 음성 피처가 도 9에 나타낸 바와 같이 글로벌 모델 업데이트를 요청하기 위해 원격 중앙 서버와 공유될 필요가 있는지를 결정한다.
묵시적 화자 식별 모듈(310)은 센서와 같은 외부 요소로부터 획득된 판독에 기초하여 사용자를 인증함으로써, 결정 모듈(306)이 잘못된 거부를 검출하는 것을 지원한다.
도 4는 본 청구물의 실시예에 따른 화자 검증 절차를 나타내고, 따라서 적어도 도 2의 단계 202 내지 206을 참조한다.
단계 402는 오디오 프로세싱 엔진(302)의 동작에 대응하고 음향 센서를 통해 화자로부터 발화를 캡처하는 것을 지칭한다. VAD(음성 활동 검출) 모듈은 인간-음성의 존재를 검출한다. 그 후, 인간-음성의 검출시에, VAD는 깨끗한 음성 출력을 제공하기 위한 음성 프로세싱 기준의 동작을 트리거링한다. 음향 센서, VAD 및 음성-프로세싱 기준은 총괄적으로 오디오 프로세싱 엔진의 프론트-엔드 전자 기기를 나타낸다.
단계 404는 오디오 프로세싱 엔진(302)으로부터 단계 402를 통해 수신된 깨끗한 음성에 기초하여 하나 이상의 음성-피처의 추출에 관한 것이다. 추출된 음성 피처는 피치(pitch), 톤(tone), 데시벨 및 주파수를 포함한다. 피처는 인공 신경망(ANN: artificial neural network)의 동작의 일부로서 추출될 수 있다.
단계 406은 화자를 인증하기 위한 생체 측정으로서 사용될 음성 임베딩의 생성을 나타낸다. 임베딩은 인공 신경망(ANN)의 동작의 일부로서 생성될 수 있다. ANN은 화자 음성을 임베딩 공간 또는 잠재 공간으로 변환하도록 구성될 수 있으며, 여기서 유사한 음성이 서로 가까이 클러스터링되고 다른 음성은 서로 멀리 떨어져 있다.
전체적으로, 단계 404 내지 406은 도 3의 오디오 프로세싱 엔진(302)(또는 프로세싱 모듈) 및 음성 인식 모듈(304)의 동작을 도시하고, 따라서 도 2의 단계 202를 총괄적으로 참조한다.
단계 408은 단계 204를 참조하고, 유사도 기준에 기초하여 음성 인식 모듈(304)에 의해 현재 수신된 음성 피처(즉, 단계 406에서 생성된 음성 임베딩)와 등록된 성문과의 비교를 나타낸다. 기본적으로 각 화자에 대해, 등록된 성문의 산술 평균(mean)-위치(코사인 거리를 기초)가 센트로이드 성문으로서 계산되며, 이는 센트로이드를 중심으로 하고 임계값에 의해 규정되는 성문 클러스터이다. 센트로이드 접근법은 화자의 클러스터의 일반적인 공간-위치를 유지하면서 등록-데이터 내 변화의 영향을 최소화한다. 예에서, 도 4b는 화자 등록 DB에 저장된 2명의 사용자, 화자 1 및 화자 2에 대한 등록된 성문 클러스터를 도시한다.
단계 408 중의 화자 검증의 일부로서 그리고 도 4c에 도시된 바와 같이, 코사인 거리는 센트로이드와 테스트 성문(캡처된 음성 피처에 대응) 사이에서 계산되고, 이 거리는 식별된 화자를 판단하기 위해 임계값과 비교된다. 2개의 속성 벡터, A 및 B가 주어지면, 코사인 유사도는 다음과 같이 크기의 내적을 사용하여 표현된다:
코사인 유사도 =
Figure pat00001
코사인 거리 = 1 - 코사인 유사도
임계값 선택의 일부로서, 각각의 화자의 등록된 성문 i에 대해, 센트로이드로부터 코사인 거리 di가 계산된다. 성문이 다음과 같이 정규 분포의 절반에 있다고 가정하면 분산 및 표준 편차가 계산된다:
평균(mean) 거리(d') =
Figure pat00002
분산(V) =
Figure pat00003
표준 편차(D) =
Figure pat00004
여기서, 임계값은 3 Х 표준 편차로서 선택되어 포인트의 99.7%를 커버한다.
현재 단계 408에서, 입력 음성에 대해 테스트 성문이 생성되고, 유사도 스코어는 각각의 등록된 사용자의 등록된 성문과 연관된 원래의 센트로이드 C 및 임계값(도 4b 및 도 5b에 나타내어짐)과의 비교에 기초하여 계산된다. 코사인 유사도가 검출되면, 사용자는 인증되었다고 한다. 그렇지 않으면 단계 410이 후속된다.
단계 206을 참조하는 단계 410에서, 유사도 로직이 음성 피처 또는 테스트 성문을 찾는 경우 음성 인식 실패가 검출된다. 따라서, 제어는 도 5a의 단계 502로 이행된다.
도 5는 가변성 검출 및 적응을 나타내고, 따라서 도 2b의 단계 214 내지 218을 실행하기 위한 결정 모듈(306) 및 적응형 화자 모듈(308)의 동작 상호 작용을 참조한다.
음성 가변성 뒤에 있는 예시적인 통상의 원인은 통상의 감기, 술 취함, 하루 중 시간으로 인한 변화(예를 들어, 아침에 깨어난 후 음성 변화 등)이다. 이러한 변화는 시스템(300)이 실패하게 하고 그렇지 않으면 진정한 사용자에 대한 잘못된 거부를 제공하게 한다. 그러나, 시스템(300)은 화자 음성 식별을 잘못으로 거부하는 것을 방지하기 위해 통상 음성 변화에 의해 제기된 이러한 장애를 처리한다.
동작시, 클러스터링 모듈은 입력으로서 표준 인간 음성 피처에 기초하여 (예를 들어, 서버 측에서) 훈련되며, 각각의 변화에 대한 클러스터 생성을 지원한다. 예에서 그리고 도 5b에 도시된 바와 같이, 클러스터 Id1은 "감기"로 인한 음성 가변성을 나타내고, 클러스터 Id2는 술에 취함을 나타내고, 클러스터 3은 아침의 음성 등을 나타낸다.
이러한 각각의 변화 i에 대한 예에서, 임계 델타값
Figure pat00005
및 센트로이드 델타 벡터
Figure pat00006
는 이하에 기초하여 결정된다:
델타 임계값
Figure pat00007
델타 센트로이드 벡터
Figure pat00008
Figure pat00009
- 변화 클러스터 1(예를 들어, 감기)에 대한 델타 임계(%)값
Figure pat00010
- 변화 클러스터 1(감기)에 대한 크기(NХ1)의 델타 센트로이드 벡터
Figure pat00011
- 변화 클러스터 2(예를 들어, 술에 취함)에 대한 델타 임계(%)값
Figure pat00012
- 변화 클러스터 2(술에 취함)에 대한 크기(NХ1)의 델타 센트로이드 벡터
Figure pat00013
- 변화 클러스터 3(예를 들어, 아침의 음성)에 대한 델타 임계(%)값
Figure pat00014
- 변화 클러스터 3(아침의 음성)에 대한 크기(NХ1)의 델타 센트로이드 벡터
Figure pat00015
- 변화 클러스터 4(예를 들어, 감정-행복함)에 대한 델타 임계(%)값
Figure pat00016
- 변화 클러스터 4(감정-행복함) 등에 대한 크기(NХ1)의 델타 센트로이드 벡터
여기서, (NХ1)은 화자-인식 모델에 의해 출력된 성문 벡터의 크기이다. 이러한 값에 기초하여 클러스터-델타 맵 [클러스터-id,
Figure pat00017
]이 생성되어 음성 인식 패키지의 일부로서 사용자 장치에 배포된다. 이러한 맵은 클러스터 id에 기초하여
Figure pat00018
에 액세스할 수 있게 한다.단계 502에서의 도 5a의 동작에서, 단계 404로부터의 현재 음성 피처 및 도 4의 단계 408로부터 수신된 음성 인식 트리거에 기초하여, 클러스터링 모듈은 변화 클러스터-id를 선택한다. 예에서, 모듈은 음성 피처 및 선택적으로 외부 데이터(예를 들어, 이용 가능한 경우 웨어러블 장치로부터의 현재 일시 및 건강 데이터)를 입력으로서 수용하고 대응하는 변화 클러스터 ID를 예측한다.
이러한 예측된 클러스터-id i에 기초하여, 델타-임계값
Figure pat00019
및 델타-센트로이드
Figure pat00020
가 클러스터-임계값 맵으로부터 검색된다. 그 후, 이러한 델타는 새로운 센트로이드 Ci를 계산하는 데 사용되고, 새로운 임계값 Ti는 이하와 같이 계산된다:
Figure pat00021
단계 504에서, 가변성 i에 대해 델타-임계값
Figure pat00022
및 델타-센트로이드
Figure pat00023
를 화자의 개인화된 임계값 T 및 센트로이드 C(위의 식 참조)에 각각 적용하면, 그 화자에 대해 가변성 i에 대해 새롭게 개인화된 임계값 Ti 및 센트로이드 Ci의 결과는 도 5b에 나타낸 바와 같이 클러스터 1, 클러스터 2 및 클러스터 3이다.
그 후, 가변성 i에 대한 새로 개인화된 임계값 Ti 및 센트로이드 Ci는 유사도 로직을 통해 도 4의 단계 408을 거쳐 입력 음성의 화자 ID 또는 화자 식별자를 결정하고 이에 기초하여 단계 410을 통해 사용자를 인증한다. 사용자가 여전히 인증되지 않은 경우, 제어는 도 6으로 이행된다.
도 6은 대체 인식 방법을 통한 인증에 기초하여 잘못된 거부를 검출하는 단계 602를 나타내고, 따라서 도 2a의 단계 208 및 도 3의 묵시적 화자 식별 모듈(310)의 동작에 대응한다. 시스템(300)(또는 AI 엔진)이 다르게 진정한 등록된 화자에 대한 등록된 화자의 음성을 식별할 수 없을 때, 이는 잘못된 거부로 칭해진다. 본 단계 602는 대체 인식 방법을 통해 잘못된 거부를 검출하고, 따라서 다양한 센서/방법을 사용하여 사용자의 개입 없이 묵시적으로 또는 자동으로 발성된 음성에 대한 화자 Id를 예측한다.
예에서, 단계 610의 일부로서, 화자를 식별하기 위해 장치에 의해 이하의 양태/피처가 관찰될 수 있다:
Figure pat00024
x1 - 개인화된 기상 단어의 사용;
Figure pat00025
x2 - 장치에서 수행된 처음 몇몇 액션(예를 들어, 첫 번째 열린 앱, 특정 컨텐츠(텍스트, 이미지, 액세스한 비디오));
Figure pat00026
x3 - 개인화된 장치 제어(예를 들어, 장치 처리, 원격 처리);
Figure pat00027
x4 - 사용자가 말하고 있는 대상 장치 근처의 화자-장치 상관 관계(사용자가 수반하는 장치들 간의 관계);
Figure pat00028
x5 - 다른 생체 측정(얼굴 인식, 터치 센서와 같은 사용자 개입 없이 이용 가능한 경우); 및
Figure pat00029
x6 - 장치에 액세스하는 시간 컨텍스트.
신뢰 스코어는 다음과 같이 화자가 장치에 말할 때 이용 가능한 피처에 기초하여 평가될 수 있다:
신뢰도 C = f(x1, x2, x3, x4, x5, x6)
= x1·w1 + x2·w2 + x3·w3 + x4·w4 + x5·w5 + x6·w6.
가중치(w1, w2,??,wn)는 통계적으로, 예를 들어, 빈도적 방법에 의해 또는 기계 학습(ML: machine learning) 가능 확률 학습에 의해 학습될 수 있다.
통계적 빈도적 방법의 일부로서, 묵시적 피처 x의 발생 횟수가 Nx이고 사용자가 음성 또는 다른 명시적 피처를 통해 인식되었을 때의 발생 횟수가 Ne이라면, 묵시적 피처 x에 대응하는 가중치 wx는 이하와 같이 주어진다:
Figure pat00030
wx는 0 내지 1의 범위이며, 화자의 존재를 예측할 때 피처 x의 신뢰도를 나타낸다. 따라서, wx = 1인 경우, 피처 x는 화자의 존재를 가장 신뢰성 있게 예측할 수 있다.
가중치 wx는 사전 규정된 기간(예를 들어, 'n'일) 내에 수집된 이력 장치 사용 데이터에 기초하여 계산된다. 이는 장치 사용 거동의 변화에 기초하여 변할 수 있으므로, 가중치 계산은 슬라이딩 윈도우 방법으로 수행될 수 있다. 예에서, 슬라이딩 윈도우 예는 이하와 같이 표현된다:
Figure pat00031
다른 예에서, 학습 방법에 따라, 로지스틱 회귀법을 통해 가중치가 학습될 수 있다.
따라서, 대체 인식 방법으로서 상술한 방법 중 임의의 방법을 채용하여 화자 id를 도출할 때, 사용자가 식별되고, 도 5a에서 사용자를 거부한 음성 기반 화자 인식은 잘못된 거부로 간주된다. 그 후, 제어는 도 7로 이행된다.
도 7은 로컬 적응 기반 방법(단계 702)을 나타내고, 따라서 도 2의 적응형 화자 모듈(308) 및 단계 210의 동작을 참조한다.
검증 중에, 테스트 성문 또는 새로운 성문(현재 음성 피처에 대응)은 (도 4에 도시된 바와 같이) 등록된 성문 클러스터뿐만 아니라 (도 5에 도시된 바와 같이) 알려진 가변성 클러스터의 임계 경계를 넘어 있다는 것이 확인된다. 그러나, 단계 602에서 잘못된 거부가 결정 및 검출되었으므로, 그럼에도 불구하고 이러한 새로운 성문은 신뢰할 가치가 있고 화자 등록 DB에 포함되고 화자에 대해 계산되도록 제안된 새로운 미지의 가변성 클러스터의 일부로서 취급된다.
이러한 계산의 일부로서, 임계값이 일정하게 유지되며(즉,
Figure pat00032
), 새로 추가된 성문을 포함하도록 원래 센트로이드가 시프트된다.
잘못된 거부가 검출되면, 이는 새로운 성문이 센트로이드로부터 임계값보다 큰 거리에 있음을 의미한다.
도 8은 본 청구물의 실시예에 따른 도 7의 서브-프로세스의 예시적인 구현을 나타낸다. 도 8a에 참조된 예에서, 화자 1에 대해 잘못된 거부가 발생하고 테스트 성문 또는 다양한 성문이 등록된 프린트로부터 실질적으로 먼 것으로 관찰된다. 이 경우에, 사용자는 묵시적 화자 식별 모듈(310)에 의해 검출되는 바와 같이 화자 1로서 식별된다. 새로운 성문이 센트로이드로부터의 임계 거리를 넘어 위치됨에 따라, 이 프린트를 식별 가능한 범위 내에 포함시키기 위해 임계값 및 센트로이드의 재계산이 요구된다.
따라서, 센트로이드 Cnew를 중심으로 하는 미지의 가변성에 대응하는 것으로 성문 클러스터가 도 8a에서 생성된다. 이러한 클러스터는 다양한 성문을 수용한다. 도 8b는 화자 1의 미지의 가변성에 대해 새로운 센트로이드가 어떻게 계산되는지를 나타낸다. 이러한 계산은 새로운 성문 방향으로의 센트로이드의 약간의 시프트 또는 약간 증가된 임계값 중 어느 하나 또는 둘 모두를 포함한다. 도 8b에서 구체적으로 나타낸 바와 같이, 새로운 성문(화자 1에 대해 발생하는 잘못된 거부에 대응)이 등록된 프린트로서 포함되며, 이러한 새로운 성문은 임계 거리를 넘어 있으며 여전히 등록에 적합하다. 이러한 포함은 임계 거리의 증가뿐만 아니라 센트로이드-위치의 약간의 시프트로 귀결된다. 다른 예에서, 테스트 성문을 수용하기 위해 수행된 센트로이드의 시프트는 임계값의 변화를 포함하지 않는다.
예에서, 이러한 새로운 가변성 기반 성문 클러스터에 대해, 새로운 델타 값이 새로 생성된 성문에 특정한 음성 가변성에 대응하여 생성된다. 이러한 델타 값은 이하와 같이 계산될 수 있다:
델타 - 임계값
Figure pat00033
= 0 및
델타 - 센트로이드
Figure pat00034
= C' - C
도 9는 네트워킹 환경 내에서 화자-인식 기반 컴퓨팅-장치를 업데이트하는 방법을 나타낸다.
본 방법은 화자 인식 장치 내에서 하나 이상의 등록된 성문 클러스터에 관한 품질 기반 파라미터를 평가하는 단계(단계 902)를 포함하여, 등록된 성문 클러스터 각각은 화자 식별자와 연관되고, (a) 정상 음성 클러스터 및 (b) 가변성 클러스터 중 하나 이상으로 라벨링된다. 품질-파라미터의 평가는 등록된 성문 클러스터에 대한 클러스터 품질 추정(또는 판단 또는 평가)에 대응하고:
a) 제1 클러스터(기준 클러스터)와 관련하여, 제1 클러스터의 센트로이드로부터의 제1 클러스터에 포함된 모든 성문까지의 평균 거리;
b) 복수의 클러스터와 관련하여, 제1 클러스터의 센트로이드로부터 제2 클러스터(복수의 클러스터 중 제1 클러스터와 다른 하나의 클러스터)에 포함된 모든 성문까지의 평균 거리 (복수의 클러스터가 n개 이면, 제1클러스터는 n-1개의 클러스터 각각에 대응되는 클러스터 간 평균 거리를 획득할 수 있음); 및
c) 제1 클러스터의 센트로이드로부터 제1 클러스터에서 가장 가까운 클러스터에 포함된 모든 성문까지의 평균 거리 및 제1 클러스터의 센트로이드로부터 제1 클러스터에 포함된 모든 성문까지의 평균 거리에 기초한 분석(제1 클러스터를 기준으로 제1 클러스터에 포함된 성문과 가장 가까운 클러스터에 포함된 성문이 오버랩되는 정도를 나타냄)에 의하여 결정된다.
보다 구체적으로, 클러스터 품질 추정 결과에 기초하여, 시스템(300)은 (도 7 및 도 8에 도시된 바와 같은) 로컬 적응 또는 글로벌 모델 업데이트가 단계 702를 통해 생성된 성문 클러스터 대신, 잘못된 거부의 경우 미지의 음성 가변성에 대한 성문 클러스터의 계산에 필요한지를 결정한다. 예에서, 글로벌 모델 업데이트는 이하와 관련하여 요구된다:
a) 환경 노이즈로 인한 임베딩은 통상적으로 성문 클러스터 형성의 일부로서 수용된다. 따라서, 일정 시간이 지남에 따라, 주변 노이즈를 포함하는 다수의 성문 클러스터의 존재는 잘못된 수용의 확률을 증가시킨다.
b) 단계 702에 도시된 바와 같은 로컬 적응으로 인해, 상당수의 성문 클러스터는 화자 등록 DB 내의 공간을 차지한다. 결과적으로, 한 사용자의 가변성 클러스터가 다른 화자의 클러스터와 중첩되기 시작한다.
서버 또는 글로벌 모델에 대한 조건부 업데이트는 변화를 갖는 사용자 성문의 클러스터-품질에 따른다. 효율적인 클러스터 품질은 클러스터가 얼마나 잘 분리되는지를 찾는 것이다. 글로벌 모델 업데이트에 대한 사용자 음성 데이터 선택을 위한 단계 902의 "클러스터 품질 추정 접근법"은 적어도 이하에 기초한다:
i) 제1 클러스터(기준 클러스터)의 센트로이드로부터의 제1 클러스터에 포함된 모든 클러스터 포인트까지의 평균 거리의 추정.
ii) 제1 클러스터의 센트로이드로부터 제2 클러스터(제1 클러스터와 다른 하나의 클러스터)에 포함된 모든 클러스터 포인트까지의 평균 거리의 추정(복수의 클러스터가 n개 이면, 제1클러스터는 n-1개의 클러스터 각각에 대응되는 클러스터 간 평균 거리를 획득할 수 있음).
iii) 제1 클러스터를 기준으로 가장 가까운 클러스터 찾기.
iv) 제1 클러스터의 센트로이드로부터 제1 클러스터에서 가장 가까운 클러스터에 포함된 모든 클러스터 포인트까지의 평균 거리 및 제1 클러스터의 센트로이드로부터 제1 클러스터에 포함된 모든 클러스터 포인트까지의 평균 거리에 기초한 분석(제1 클러스터를 기준으로 제1 클러스터에 포함된 클러스터 포인트와 가장 가까운 클러스터에 포함된 클러스터 포인트가 오버랩되는 정도를 나타냄)에 의하여 결정된다.
또한, 평가된 품질 파라미터에 기초하여 장치의 업데이트가 트리거링된다(단계 904). 트리거링에 기초하여, 하나 이상의 등록된 성문 클러스터와 연관된 음성-피처, 화자 식별자 및 라벨 중 하나 이상이 원격 서버로 전달된다(단계 906). 원격 서버에서 집중식 음성 인식 모델의 재학습은 화자 인식 모델의 재학습을 포함한다. 음성 클러스터링 모델이 재학습되고, 이에 의해 화자 인식 장치로부터 수신된 음성 피처에 기초하여 업데이트된 클러스터 및 임계값을 생성한다. 이에 기초하여, 업데이트된 화자 인식 모델에 기초한 클러스터 맵이 생성되고, 집중식 서버에서의 클러스터링 모듈이 업데이트된다.
화자 인식 장치(즉, 클라이언트)는 원격-서버에서 재학습된 집중식 음성 인식 모델에 기초하여 업데이트된다(단계 908). 보다 구체적으로, 화자 인식 장치의 업데이트는 원격 서버로부터 모델-업데이트 요청을 수락하는 단계 및 화자 등록 DB에 저장된 기존의 성문 클러스터를 삭제하는 단계를 포함한다. 다른 예에서, 화자 인식 장치의 업데이트는 원격 서버에 접속된 복수의 화자 인식 장치 중에서 하나 이상의 화자 인식 장치를 쇼트리스팅(shortlisting)하는 단계를 포함한다. 쇼트리스팅된 세트는 장치의 특정 영역 또는 특정 카테고리에 의해 규정된다. 화자 인식 장치의 쇼트리스팅된 세트의 업데이트가 트리거링되고, 이에 의해 영역 업데이트 또는 장치-카테고리 기반 업데이트를 가능하게 한다.
장치의 상기 업데이트의 일부로서 각각의 등록된 화자에 대해 새로운 성문이 생성된다(단계 910). 등록된 사용자의 저장된 음성 피처에 기초하여 등록된 각각의 화자에 대해 새로운 성문이 재생성된다. 따라서, 센트로이드 및 임계값 계산에 기초하여 각각의 등록된 화자에 대한 상기 새로운 성문에 대해 복수의 새로운 성문 클러스터가 컴퓨팅된다(단계 912). 따라서, 새로운 성문에 대하여 복수의 성문 클러스터가 형성된다.
도 10은 AI 엔진(300)과 상호 작용하는 집중식의 원격 액세스 가능한 서버(1002)를 포함하는 클라이언트-서버 아키텍처를 나타낸다. AI 엔진(300)이 방법 단계 902 내지 912를 실행하는 동안, 서버(1002)는 글로벌-업데이트를 AI 엔진(300)을 포함하는 클라이언트 장치로 다시 전달하기 위해 재학습을 받는다.
예에서, AI 엔진(300)은 사용자의 각각의 클러스터에 대해 단계 902에 도시된 바와 같이 "클러스터 품질 추정"을 실행한다. 평균 거리
Figure pat00035
는 이하와 같이 계산된다:
Figure pat00036
Figure pat00037
= 클러스터 ci의 평균 거리(클러스터 ci의 센트로이드로부터 클러스터 ci에 포함된 모든 데이터 포인트(클러스터 포인트)까지의 평균 거리)
ni = 클러스터 i의 데이터 포인트의 수
|k - 센트로이드 i| = ci의 센트로이드로부터 데이터 포인트의 거리
클러스터 ci의 센트로이드 p로부터 다른 클러스터 cj에 포함된 모든 클러스터 포인트(데이터 포인트) 까지의 평균 거리가 d(p,ci)_cj 이면, Bi는 다음과 같이 정의될 수 있다.
Bi=min(d(p,ci)_cj)
여기서, Bi는 클러스터 ci에서 가장 가까운 클러스터를 찾는데 이용될 수 있다.
품질 지수 Qci는 이하와 같이 규정될 수 있다:
Figure pat00038
결정 모듈(306)의 동작의 일부로서, 품질 지수 Qci의 클러스터 값의 로컬화된 분해가 평가된다. 품질 지수 Qci는 클러스터 ci와 클러스터 ci에 가장 가까운 클러스터가 어느 정도 떨어져 있는지 정도를 나타내는 값일 수 있다. Qci가 1에 더 가까우면, 클러스터가 잘 분리되고, 도 7 및 도 8에 도시된 로컬 적응이 음성 변화를 처리할 수 있다. 그러나, Qci < 0.5(또는 미세-튜닝될 수 있는 값)이면, 단계 904에 따라 글로벌-업데이트를 위해 음성 피처가 전송된다.
도 11a는 조건부 글로벌 업데이트 단계를 나타내고, 따라서 서버(1002)와 동작적으로 상호 작용하는 AI 엔진(300)에 의한 단계 904 내지 906의 동작을 나타낸다. 이해될 수 있는 바와 같이, 글로벌 업데이트에 관한 데이터 통신은 성문 데이터를 공유하는 대신 음성 피처의 공유를 포함하고, 이에 의해 기밀성을 보장한다.
단계 1102에서, 결정 모듈(306)은 글로벌 또는 로컬 업데이트의 구현을 결정한다. 로컬 업데이트의 경우, 도 7에서 계산된 새로운 센트로이드 및 클러스터가 화자 등록 DB로 전송된다. 글로벌 업데이트의 경우, 제어는 단계 1104로 전달된다.
단계 1104에서, 음성 피처가 AI 엔진(300)을 포함하는 장치에서 추출되고 프라이버시 문제를 완화시키기 위해 서버(1002)로 전달된다. 보다 구체적으로, 화자 등록된 DB에서 이용 가능한 모든 음성 샘플의 음성 피처가 서버와 공유된다.
재학습의 일부로서, 서버(1002)는 모든 음성 피처를 수집하고 아웃라이어(outlier)를 필터링한다. 화자 인식을 위한 글로벌 모델은 다양한 클라이언트로부터 수집된 데이터로 재학습된다. 음성 클러스터링 모델은 또한 다양한 클라이언트로부터 수집된 데이터로 재학습되어 기존 변화에 대해 개선된 클러스터(정제된 임계값을 가짐)를 얻을 뿐만 아니라 새로운 변형 클러스터(있는 경우)를 식별한다. 업데이트된/새로운 클러스터링 모듈과 업데이트된 화자 인식 모델을 사용하여 새로운 클러스터-델타 맵이 생성된다. 훈련이 완료되면, 화자 인식 성능 향상을 위해 업데이트된 글로벌 모델 및 클러스터 맵이 모든 클라이언트로 다시 푸시된다. AI 엔진(300)을 포함하는 클라이언트 장치는 새로운 모델 업데이트 통지를 수신하고 업데이트 설치를 수락, 거부 또는 연기할 수 있다.
도 11b는 클라이언트 장치 내의 AI 엔진(300)에 대한 자동-등록 단계를 나타내고, 단계 908 내지 912에 대응한다.
단계 1202에서, 클라이언트 측에서의 글로벌 모델 업데이트는 화자 등록 DB에 저장된 모든 성문, 센트로이드 및 임계값의 폐기로 개시된다.
단계 1204에서, 클라이언트 장치는 등록된 사용자의 저장된 음성 피처를 자동으로 사용함으로써 모든 등록된 음성 샘플에 대한 성문을 재생성한다. 이는 사용자가 모델 업데이트에 재등록할 필요성을 제거하고 번거로움이 없는 사용자 상호 작용을 보장한다.
단계 1206에서, 생성시 새로운 성문이 생성되고, 이러한 새로운 프린트에 대해 센트로이드 및 임계값이 계산되어 화자 등록 DB에 저장된다.
도 12는 본 청구물의 실시예에 따른 개별 음성 변화 시나리오 및 그 처리를 나타낸다. 도 12a는 "목이 쉰 아침 음성" 시나리오를 나타낸다. 아침에 일어난 후 "아침의 음성" 또는 더 깊은 음성이 경험된다. 종래 기술의 시스템은 하루 중 이 시간에 음성 커맨드를 잘못 거부한다. 음성 가변성 검출 및 사용자의 성문의 로컬 적응의 제안된 접근법으로, 이러한 잘못된 거부가 회피/제거될 수 있다. 도 12b는 "환경 노이즈" 시나리오를 검출한다. 통상적으로, 등록 단계 중에서는, 장치에서 소리가 들리지 않는다(낮은 배경 노이즈). 그러나, 검증 단계 중에서는, 장치에 노래가 재생될 수 있으며 다른 배경 노이즈도 있을 수 있다. 등록 및 검증 환경에서의 이러한 불일치는 잘못된 검출로 이어진다. 제안된 접근법으로, 시간이 지남에 따라 다양한 노이즈 조건이 수용될 것이고, 잘못된 거부가 실질적으로 감소된다.
도 13은 다른 음성 변화 시나리오를 나타낸다. 도 13a는 사용자 1이 감기에 걸리고 이로 인해 그 목소리에 변화가 있는 시나리오를 나타낸다. 사용자 1이 음성 커맨드로 자신의 계정에 액세스하려고 시도할 때(단계 1302a), 변화된 음성으로 인해 장치 엔드에서 화자 검증이 실패한다(단계 1302b)("잘못된 거부"). 이러한 "잘못된 거부"를 방지하기 위해, 장치는 현재 발화로부터 추출된 음성 피처와 함께 화자의 웨어러블 장치(이용 가능한 경우)로부터 건강 상태 정보를 수집하고, 가변성 조건을 예측하기 위해 식별 모듈(310)에 대한 입력과 동일한 것을 제공한다. 입력에 기초하여, 모듈(310)은 사용자가 감기에 걸린 것을 검출하고(단계 1304), 이에 따라 센트로이드 및 임계값을 적응시킨다(단계 1306). 적응된 센트로이드 및 임계값으로, 화자 검증이 성공하고(단계 1308), 사용자는 액세스를 허가받는다. 도 13b는 적응된 성문, 센트로이드 및 임계값이 MDE 서버를 통해 가정 환경의 다른 장치와 공유되는 확장된 시나리오를 나타낸다. VPA 외에도, 사용자 1은 음성 커맨드를 사용하여 냉장고의 동작을 제어하려고 시도한다. 적응이 적용되면, 이번에는 '사용자 1'이 시스템에 의해 성공적으로 식별되고 냉장고 동작을 제어하도록 액세스를 허가받는다. 얼마 후, '사용자 1'은 음성 커맨드를 사용하여 에어 컨디셔너를 재생하려고 시도한다. 적응된 모델/성문은 에어 컨디셔너와 공유되며, 적응은 에어 컨디셔너에도 적용된다. 사용자 1은 시스템에 의해 성공적으로 식별되고 에어 컨디셔너의 동작을 제어하도록 액세스를 허가받는다. 다른 장치, 즉, TV, 로봇 청소기, 음악 스피커 등에 대해 유사한 근거가 적용될 수 있다.
도 14는 글로벌 업데이트 기반 시나리오를 나타내고, 건강 조건(감기/인후통 등)과 관련된 시나리오를 다룬다. 사용자 1은 감기에 걸려 있고 이로 인해 그의 음성에 약간의 변화가 있다. 사용자 1은 음성 커맨드로 자신의 계정에 액세스하려고 시도하지만, 변한 음성으로 인해 장치 엔드에서 화자 식별이 실패한다(단계 1402)("잘못된 거부"). 장치는 2차 방법을 통해(즉, 모듈(310)을 통해) 사용자 1을 식별하고 변한 음성으로부터 피처를 추출하고 서버로 업로드한다(단계 1404). 글로벌 모델은 이하의 2개의 주요 조건이 충족될 때 업데이트된다:
* 임베딩은 등록된 클러스터와는 거리가 매우 멀고 추가된 다른 클러스터는 시스템 성능 향상에 도움이 되지 않고;
* 클러스터 중 하나가 다른 클러스터와 중첩하기 시작한다. 클러스터가 다른 클러스터와 중첩하기 시작하면, 시스템의 성능이 저하되기 시작할 것이므로 로컬 업데이트는 중지할 필요가 있다.
글로벌 모델은 다양한 장치로부터 수집된 새로운 데이터를 사용하여 재학습되고 업데이트된 모델은 장치로 다시 푸시된다(단계 1406). 글로벌 모델 업데이트시에, 자동 등록(단계 1408)은 사용자의 저장된 음성 샘플로 수행된다. 이제, 또한 감기에 걸린 사용자 2가 음성 커맨드를 사용하여 자신의 계정에 액세스하려고 시도한다. 이 때, 장치는 그녀의 변화된 목소리로도 그녀를 식별하고(단계 1410) 그녀에게 액세스를 허가한다. 동일한 것이 사용자 1에도 적용될 수 있다.
또한, 본 글로벌 업데이트 기반 시나리오는 또한 영역 업데이트 메커니즘에 적합할 수 있다. 독감, 감기, 인후통 등과 같은 통상의 건강 조건은 계절적이므로, 많은 사람들이 계절(겨울, 우기 등) 동안 영역/지리적 위치에서 이러한 통상의 건강 조건에 의해 영향을 받는다. 계절 중 해당 영역에서 이러한 건강 조건으로 고통받는 사람들의 수가 갑자기 증가함으로 인해, 음성 인증 시스템 성능은 잘못된 거부 사례의 급격한 증가로 타격을 받는다. 이러한 영역은 잘못된 거부의 비율에 의해 식별될 수 있으며, 영향을 받지 않는 지역/영역에서 시스템 성능을 저하시키지 않고 이러한 잘못된 거부 사례를 신속하게 처리하기 위해 영역별 글로벌 모델 재학습 및 업데이트가 트리거링될 수 있다.
도 15는 가상 개인 지원(VPA) 기반 컴퓨팅 장치를 통해 도 3 및 도 9에서의 기술적 실현의 구현을 위해 본원에 설명된 도구 및 개발 환경을 제공하기 위한 대표적인 아키텍처(1500)를 나타낸다. 도 15는 비한정적인 예일 뿐이며, 본원에 설명되는 기능을 용이하게 하기 위해 많은 다른 아키텍처가 구현될 수 있음을 이해할 것이다. 아키텍처는 무엇보다도 프로세서, 메모리 및 다양한 어플리케이션-특정 하드웨어 구성 요소를 포함하는 도 16의 컴퓨팅 기계(컴퓨팅 장치, 1600)와 같은 하드웨어 상에서 실행될 수 있다.
아키텍처(1500)는 운영 체제, 라이브러리, 프레임워크 또는 미들웨어를 포함할 수 있다. 운영 체제는 하드웨어 리소스를 관리하고 통상의 서비스를 제공할 수 있다. 운영 체제는 예를 들어, 하드웨어 인터페이스 계층을 규정하는 커널, 서비스 및 드라이버를 포함할 수 있다. 드라이버는 기본 하드웨어를 제어하거나 이와 인터페이싱하는 것을 담당할 수 있다. 예를 들어, 드라이버는 하드웨어 구성에 따라 디스플레이 드라이버, 카메라 드라이버, Bluetooth® 드라이버, 플래시 메모리 드라이버, 직렬 통신 드라이버(예를 들어, 범용 직렬 버스(USB) 드라이버), Wi-Fi® 드라이버, 오디오 드라이버, 전원 관리 드라이버 등을 포함할 수 있다.
하드웨어 인터페이스 계층은 메모리 할당 기능, 스트링 조작 기능, 수학 기능 등과 같은 기능을 제공할 수 있는 파일 시스템(예를 들어, C 표준 라이브러리)과 같은 시스템 라이브러리를 포함할 수 있는 라이브러리를 포함한다. 또한, 라이브러리는 시청각 미디어 라이브러리(예를 들어, MPEG4, H.264, MP3, AAC, AMR, JPG, PNG와 같은 다양한 미디어 포맷의 프리젠테이션 및 조작을 지원하는 멀티미디어 데이터 라이브러리), 데이터베이스 라이브러리(예를 들어, 다양한 관계형 데이터베이스 기능을 제공할 수 있는 SQLite), 웹 라이브러리(예를 들어, 웹 브라우징 기능을 제공할 수 있는 WebKit) 등과 같은 API 라이브러리를 포함할 수 있다.
미들웨어는 다양한 그래픽 사용자 인터페이스(GUI) 기능, 하이-레벨 자원 관리, 하이-레벨 위치 서비스 등과 같은 하이-레벨 공용 인프라스트럭처를 제공할 수 있다. 미들웨어는 어플리케이션 또는 다른 소프트웨어 구성 요소/모듈에 의해 이용될 수 있는 광범위한 스펙트럼의 다른 API를 제공할 수 있으며, 이들 중 일부는 특정 운영 체제 또는 플랫폼에 특정적일 수 있다.
본 개시에서 사용되는 용어 "모듈"은 하드웨어, 소프트웨어 및 펌웨어 중 하나 또는 이들의 임의의 조합을 포함하는 특정 유닛을 지칭할 수 있다. 모듈은 예를 들어, 유닛, 로직, 로직 블록, 구성 요소 또는 회로와 상호 교환 가능하게 사용될 수 있다. 모듈은 하나 이상의 특정 기능을 수행하는 최소 단위 또는 그 일부일 수 있다. 모듈은 기계적으로 또는 전자적으로 형성될 수 있다. 예를 들어, 본원에 개시되는 모듈은 ASIC(어플리케이션-특정 집적 회로) 칩, FPGA(필드-프로그래머블 게이트 어레이) 및 프로그래머블-로직 장치 중 적어도 하나를 포함할 수 있으며, 이들은 알려져 있거나 개발될 것이다.
또한, 아키텍처(1500)는 본 청구물의 실시예에 따른 VPA 기반 메커니즘 및 ML/NLP 기반 메커니즘의 집합을 도시한다. 입력 및 상호 작용(1501)으로 규정된 사용자 인터페이스는 전체 입력을 지칭한다. 이는 이하 중 하나 이상을 포함할 수 있다 - 터치 스크린, 마이크로폰, 카메라 등. 제1 하드웨어 모듈(1502)은 ML/NLP 기반 메커니즘을 위한 특화된 하드웨어를 도시한다. 예에서, 제1 하드웨어 모듈(1502)은 신경 프로세서, FPGA, DSP, GPU 등 중 하나 이상을 포함한다.
제2 하드웨어 모듈(1512)은 VPA 장치-관련 오디오 및 비디오 시뮬레이션을 실행하기 위한 특화된 하드웨어를 도시한다. ML/NLP 기반 프레임워크 및 API(1504)는 기본 하드웨어에 기초하여 ML/NLP 로직(1506)을 실행하기 위한 하드웨어 인터페이스 계층에 대응한다. 예에서, 프레임워크는 이하 중 하나 이상일 수 있다 - Tensorflow, Caf
Figure pat00039
, NLTK, GenSim, ARM Compute 등. VPA 시뮬레이션 프레임워크 및 API(1514)는 이하 중 하나 이상을 포함할 수 있다 - VPA Core, VPA Kit, Unity, Unreal 등.
데이터베이스(1508)는 사전-훈련된 음성 피처 데이터베이스를 도시한다. 데이터베이스(1508)는 ML/NLP 로직(1506)에 의해 클라우드를 통해 원격으로 액세스 가능할 수 있다. 다른 예에서, 데이터베이스(1508)는 사용 통계에 기초하여 부분적으로 클라우드 상에 그리고 부분적으로 장치 상에 상주할 수 있다.
다른 데이터베이스(1518)는 사용자를 인증하고 응답하는 데 사용될 화자 등록 DB 또는 음성 피처 DB를 참조한다. 데이터베이스(1518)는 클라우드를 통해 원격으로 액세스 가능할 수 있다. 다른 예에서, 데이터베이스(1518)는 사용 통계에 기초하여 부분적으로 클라우드 상에 상주하고 부분적으로 장치 상에 상주할 수 있다.
렌더링 모듈(1505)은 오디오 출력을 렌더링 및 사용자 인증의 결과로서 추가 유틸리티 동작을 트리거링하기 위해 제공된다. 렌더링 모듈(1505)은 디스플레이 겸 터치 스크린, 모니터, 스피커, 프로젝션 스크린 등으로 나타날 수 있다.
범용 하드웨어 및 드라이버 모듈(1503)은 도 16에서 참조된 컴퓨팅 장치(컴퓨터 시스템, 1600)에 대응하고 범용 하드웨어 유닛뿐만 아니라 어플리케이션-특정 유닛(1502, 1512)에 대한 드라이버를 인스턴스화한다.
예에서, 본 아키텍처(1500)의 기본이 되는 NLP/ML 메커니즘 및 VPA 시뮬레이션은 원격으로 액세스 가능하고 클라우드 기반일 수 있으며, 이에 의해 네트워크 접속을 통해 원격으로 액세스 가능하다. VPA 장치와 같은 컴퓨팅 장치는 NLP/ML 모듈에 원격으로 액세스하도록 구성될 수 있고, 시뮬레이션 모듈은 마이크로폰, 카메라, 스크린/모니터, 스피커 등과 같은 골격 요소를 포함할 수 있다.
또한, 도 3의 복수의 모듈(302 내지 310) 중 적어도 하나는 ML/NLP 로직(1506)에 기초하여 AI를 통해 구현될 수 있다. AI와 연관된 기능은 비휘발성 메모리, 휘발성 메모리 및 제1 하드웨어 모듈(1502), 즉, ML/NLP 기반 메커니즘을 위한 특화된 하드웨어를 구성하는 프로세서를 통해 수행될 수 있다. 프로세서는 하나 또는 복수의 프로세서를 포함할 수 있다. 이 때, 하나 또는 복수의 프로세서는 중앙 처리 장치(CPU), 어플리케이션 프로세서(AP) 등과 같은 범용 프로세서, 그래픽 처리 장치(GPU), 비주얼 처리 장치(VPU) 및/또는 신경 처리 장치(NPU)와 같은 AI-전용 프로세서와 같은 그래픽-전용 처리 장치일 수 있다. 상술한 프로세서는 도 16의 프로세서(1602)에 총괄적으로 대응한다.
하나 또는 복수의 프로세서는 비휘발성 메모리 및 휘발성 메모리에 저장된 사전-규정된 동작 규칙 또는 인공 지능(AI) 모델에 따라 입력 데이터의 프로세싱을 제어한다. 사전 규정된 동작 규칙 또는 인공 지능 모델은 훈련 또는 학습을 통해 제공된다.
여기서, 학습을 통해 제공되는 것은 학습 로직/기술을 복수의 학습 데이터에 적용함으로써, 원하는 특성의 사전 규정된 동작 규칙 또는 AI 모델이 만들어진다는 것을 의미한다. 학습은 실시예에 따른 AI가 수행되는 장치(즉, 아키텍처(1500) 또는 컴퓨팅 장치(컴퓨터 시스템, 1600)) 자체에서 수행될 수 있고 및/또는 별도의 서버/시스템을 통해 구현될 수 있다.
AI 모델은 복수의 신경망 계층으로 구성될 수 있다. 각각의 계층은 복수의 가중치를 가지며, 이전 계층의 계산을 통한 계층 연산 및 복수의 가중치의 연산을 수행한다. 신경망의 예는 컨벌루션 신경망(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), 생성적 적대 네트워크(GAN: generative adversarial network) 및 딥 Q-네트워크를 포함하지만 이에 한정되지 않는다.
ML/NLP 로직(1506)은 타겟 장치가 결정 또는 예측을 하도록 유발, 허용 또는 제어하기 위해 복수의 학습 데이터를 사용하여 사전 결정된 타겟 장치(예를 들어, 로봇)를 훈련시키기 위한 방법이다. 학습 기술의 예는 지도 학습, 비지도 학습, 반-지도 학습 또는 강화 학습을 포함하지만 이에 한정되지 않는다.
도 16은 실시예에 따른 또 다른 예시적인 구현을 나타내며, 컴퓨터 시스템(1600) 형태의 시스템(300, 1000, 1503)의 또 다른 통상적인 하드웨어 구성이 나타내어져 있다. 컴퓨터 시스템(1600)은 컴퓨터 시스템(1600)으로 하여금 개시된 방법 중 임의의 하나 이상을 수행하게 하도록 실행될 수 있는 명령 세트를 포함할 수 있다. 컴퓨터 시스템(1600)은 독립형 장치로서 동작할 수 있거나, 예를 들어, 네트워크를 사용하여 다른 컴퓨터 시스템 또는 주변 장치에 접속될 수 있다.
네트워킹된 배치에서, 컴퓨터 시스템(1600)은 서버의 용량에서 또는 서버-클라이언트 사용자 네트워크 환경에서 클라이언트 사용자 컴퓨터로서, 또는 피어-투-피어(또는 분산) 네트워크 환경에서 피어 컴퓨터 시스템으로서 동작할 수 있다. 컴퓨터 시스템(1600)은 또한 VR 장치, 퍼스널 컴퓨터(PC), 태블릿 PC, 퍼스널 디지털 어시스턴트(PDA), 모바일 장치, 팜탑 컴퓨터, 통신 장치, 웹 기기 또는 해당 기계에 의해 취해질 액션을 특정하는 명령 세트(순차적 또는 기타)를 실행할 수 있는 임의의 다른 기계와 같은 다양한 장치로 구현되거나 통합될 수 있다. 또한, 단일 컴퓨터 시스템(1600)이 나타내어져 있지만, "시스템"이라는 용어는 또한 하나 이상의 컴퓨터 기능을 수행하기 위해 명령의 세트 또는 복수 세트를 개별적으로 또는 공동으로 실행하는 시스템 또는 서브-시스템의 임의의 집합을 포함하는 것으로 이해될 것이다.
컴퓨터 시스템(1600)은 프로세서(1602), 예를 들어, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU) 또는 둘 모두를 포함할 수 있다. 프로세서(1602)는 다양한 시스템의 구성 요소일 수 있다. 예를 들어, 프로세서(1602)는 표준 퍼스널 컴퓨터 또는 워크스테이션의 일부일 수 있다. 프로세서(1602)는 하나 이상의 일반 프로세서, 디지털 신호 프로세서, 어플리케이션 특정 집적 회로, 필드 프로그래머블 게이트 어레이, 서버, 네트워크, 디지털 회로, 아날로그 회로, 이들의 조합, 또는 데이터 분석 및 프로세싱을 위해 현재 알려져 있거나 나중에 개발될 다른 장치일 수 있다. 프로세서(1602)는 수동으로 생성된(즉, 프로그래밍된) 코드와 같은 소프트웨어 프로그램을 구현할 수 있다.
컴퓨터 시스템(1600)은 버스(1608)를 통해 통신할 수 있는 메모리(1604)와 같은 메모리(1604)를 포함할 수 있다. 메모리(1604)는 랜덤 액세스 메모리, 판독-전용 메모리, 프로그래머블 판독-전용 메모리, 전기 프로그래머블 판독-전용 메모리, 전기 소거 가능 판독-전용 메모리, 플래시 메모리, 자기 테이프 또는 디스크, 광학 매체 등을 포함하지만 이에 한정되지 않는 다양한 유형의 휘발성 및 비휘발성 저장 매체와 같은 컴퓨터 판독 가능 저장 매체를 포함할 수 있지만 이에 한정되지 않는다. 일 예에서, 메모리(1604)는 프로세서(1602)를 위한 캐시 또는 랜덤 액세스 메모리를 포함한다. 대안적인 예에서, 메모리(1604)는 프로세서의 캐시 메모리, 시스템 메모리 또는 다른 메모리와 같이 프로세서(1602)로부터 분리된다. 메모리(1604)는 데이터를 저장하기 위한 외부 저장 장치 또는 데이터베이스일 수 있다. 메모리(1604)는 프로세서(1602)에 의해 실행 가능한 명령을 저장하도록 동작 가능하다. 도면에 나타내어지거나 설명된 기능, 동작 또는 작업은 메모리(1604)에 저장된 명령을 실행하는 프로그래밍된 프로세서(1602)에 의해 수행될 수 있다. 기능, 동작 또는 작업은 특정 유형의 명령어 세트, 저장 매체, 프로세서 또는 프로세싱 전략과 독립적이며, 단독으로 또는 조합하여 동작하는 소프트웨어, 하드웨어, 집적 회로, 펌-웨어, 마이크로-코드 등에 의해 수행될 수 있다. 마찬가지로, 프로세싱 전략은 멀티프로세싱, 멀티태스킹, 병렬 프로세싱 등을 포함할 수 있다.
나타낸 바와 같이, 컴퓨터 시스템(1600)은 액정 디스플레이(LCD), 유기 발광 다이오드(OLED), 평판 디스플레이, 솔리드 스테이트 디스플레이, 음극선관(CRT), 프로젝터 또는 결정된 정보를 출력하기 위해 현재 알려져 있거나 나중에 개발될 다른 디스플레이 장치와 같은 디스플레이(1610)(또는 디스플레이 유닛)를 더 포함하거나 포함하지 않을 수 있다. 디스플레이(1610)는 사용자가 프로세서(1602)의 기능을 보는 인터페이스로서, 또는 특히 메모리(1604) 또는 드라이브 유닛(1616)에 저장된 소프트웨어와의 인터페이스로서 작용할 수 있다.
또한, 컴퓨터 시스템(1600)은 사용자가 시스템(1600)의 임의의 구성 요소와 상호 작용할 수 있게 하도록 구성된 입력 장치(1612)를 포함할 수 있다. 컴퓨터 시스템(1600)은 또한 디스크 또는 광학 드라이브 유닛(1616)을 포함할 수 있다. 디스크 드라이브 유닛(1616)은 하나 이상의 명령어 세트(1624), 예를 들어, 소프트웨어가 삽입될 수 있는 컴퓨터-판독 가능 매체(1622)를 포함할 수 있다. 또한, 명령어(1624)는 설명된 바와 같은 방법 또는 로직 중 하나 이상을 구현할 수 있다. 특정 예에서, 명령어(1624)는 컴퓨터 시스템(1600)에 의한 실행 동안 메모리(1604) 또는 프로세서(1602) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다.
본 발명은 네트워크(1626)에 접속된 장치가 네트워크(1626)를 통해 음성, 비디오, 오디오, 이미지 또는 임의의 다른 데이터를 전달할 수 있도록 명령(1624)을 포함하거나 전파된 신호에 응답하여 명령(1624)을 수신 및 실행하는 컴퓨터-판독 가능 매체를 고려한다. 또한, 명령어(1624)는 통신 포트 또는 인터페이스(1620)를 통해 또는 버스(1608)를 사용하여 네트워크(1626)를 통해 송신 또는 수신될 수 있다. 통신 포트 또는 인터페이스(1620)는 프로세서(1602)의 일부이거나 가능하게는 별도의 구성 요소일 수 있다. 통신 포트(1620)(또는 통신 인터페이스)는 소프트웨어로 생성되거나 가능하게는 하드웨어의 물리적 접속일 수 있다. 통신 포트(1620)는 네트워크(1626), 외부 매체, 디스플레이(1610), 또는 시스템(1600)의 임의의 다른 구성 요소, 또는 이들의 조합과 접속되도록 구성될 수 있다. 네트워크(1626)와의 접속은 유선 이더넷 접속과 같은 물리적 접속일 수 있거나, 후술하는 바와 같이 무선으로 확립될 수 있다. 마찬가지로, 시스템(1600)의 다른 구성 요소와의 추가 접속은 물리적이거나 무선으로 확립될 수 있다. 네트워크(1626)는 대안적으로 버스(1608)에 직접 접속될 수 있다.
네트워크(1626)는 유선 네트워크, 무선 네트워크, 이더넷 AVB 네트워크 또는 이들의 조합을 포함할 수 있다. 무선 네트워크는 셀룰러 전화 네트워크, 802.11, 802.16, 802.20, 802.1Q 또는 WiMax 네트워크일 수 있다. 또한, 네트워크(1626)는 인터넷과 같은 공용 네트워크, 인트라넷과 같은 사설 네트워크 또는 이들의 조합일 수 있으며, TCP/IP 기반 네트워킹 프로토콜을 포함하지만 이에 한정되지 않는 현재 이용 가능하거나 나중에 개발될 다양한 네트워킹 프로토콜을 이용할 수 있다. 시스템은 임의의 특정 표준 및 프로토콜로의 동작으로 한정되지 않는다. 예를 들어, 인터넷 및 다른 패킷 교환 네트워크 전송(예를 들어, TCP/IP, UDP/IP, HTML, HTTP)에 대한 표준이 사용될 수 있다.
적어도 상술한 설명에 기초하여, 본 청구물은 발화자의 음성 가변성이 자동으로 검출되고 실험 결과에 기초하여 적절한 임계값이 선택되는 음성 가변성의 자동 분류를 용이하게 한다. 사람의 음성 아이덴티티의 잘못된 거부에 기초하여 장치는 다양한 센서, 사용 패턴, 사용자 거동 등을 사용하여 묵시적으로 사람을 식별하고 음성 샘플을 라벨링할 것이므로, 음성 데이터의 자동 큐레이션이 제공된다. 변하는 음성 샘플을 로컬로 포함시킴으로써 사용자 성문의 새로운 센트로이드를 생성하도록 적응형 화자 모델이 제공된다. 글로벌 모델의 조건부 업데이트(재학습)에는 장치에서 로컬로 추출되고 서버와 공유되는 큐레이팅된 음성 피처가 제공되며, 이에 의해 프라이버시 문제를 제거하고 업데이트된 모델을 장치에 제공한다. 마지막으로, 사용자의 자동 등록은 번거롭지 않은 사용자 상호 작용을 위해 글로벌 모델 업데이트 상의 저장된 음성 피처에 기초하여 실행된다.
본 개시를 설명하기 위해 특정 언어가 사용되었지만, 그로 인한 어떠한 제한도 의도되지 않았다. 본 기술 분야의 통상의 기술자에게 명백한 바와 같이, 본원에 교시된 바와 같은 본 발명의 개념을 구현하기 위해 방법에 대해 다양한 작업 수정이 이루어질 수 있다.
도면 및 상술한 설명은 실시예의 예를 제공한다. 본 기술 분야의 통상의 기술자는 설명된 요소들 중 하나 이상이 단일 기능 요소로 잘 조합될 수 있음을 이해할 것이다. 대안적으로, 특정 요소는 복수의 기능적 요소로 분할될 수 있다. 일 실시예로부터의 요소는 다른 실시예에 추가될 수 있다. 예를 들어, 본원에 설명된 프로세스의 순서는 변경될 수 있으며 본원에 설명된 방식으로 한정되지 않는다.
또한, 임의의 흐름도의 액션은 나타내어진 순서대로 구현될 필요가 없으며; 모든 액션이 반드시 수행될 필요도 없다. 또한, 다른 행위에 의존하지 않는 이러한 행위는 다른 행위와 병행하여 수행될 수 있다. 실시예의 범위는 이러한 특정 예에 의해 결코 한정되지 않는다. 구조, 치수 및 재료의 사용에서의 차이와 같이, 명세서에 명시적으로 제공되는지 여부에 관계없이 수많은 변형이 가능하다. 실시예의 범위는 적어도 이하의 청구 범위에 의해 제공되는 바와 같이 넓다.
특정 실시예와 관련하여 이점, 다른 장점 및 문제에 대한 해결책이 상술되었다. 그러나, 임의의 이점, 장점 또는 해결책을 발생시키거나 이를 더욱 현저하게 할 수 있는 이점, 장점, 문제에 대한 해결책 및 임의의 구성 요소(들)는 임의의 청구항 또는 모든 청구항의 필수적이거나, 필요하거나 본질적인 특징 또는 구성 요소로서 해석되어서는 안된다.
도 17은 본 개시의 일 실시 예에 따른 전자 장치의 블록도이다.
도 17을 참조하면, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다. 또한, 전자 장치(100)는 통신 인터페이스(미도시), 사용자 인터페이스(미도시), 입출력 인터페이스(미도시), 센서(미도시) 또는 디스플레이(미도시) 중 적어도 하나를 포함할 수 있다.
본 명세서의 다양한 실시 예들에 따른 전자 장치(100)는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 데스크탑 PC, 랩탑 PC, PDA, PMP(portable multimedia player) 중 적어도 하나를 포함할 수 있다. 어떤 실시 예들에서, 전자 장치(100)는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM)중 적어도 하나를 포함할 수 있다.
메모리(110)는 프로세서(120)에 포함된 롬(ROM)(예를 들어, EEPROM(electrically erasable programmable read-only memory)), 램(RAM) 등의 내부 메모리로 구현되거나, 프로세서(120)와 별도의 메모리로 구현될 수도 있다. 이 경우, 메모리(110)는 데이터 저장 용도에 따라 전자 장치(100)에 임베디드된 메모리 형태로 구현되거나, 전자 장치(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 전자 장치(100)의 구동을 위한 데이터의 경우 전자 장치(100)에 임베디드된 메모리에 저장되고, 전자 장치(100)의 확장 기능을 위한 데이터의 경우 전자 장치(100)에 탈부착이 가능한 메모리에 저장될 수 있다.
한편, 전자 장치(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현되고, 전자 장치(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결 가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
메모리(110)는 기 등록된 적어도 하나의 성문 및 기 등록된 적어도 하나의 성문을 포함하는 제1 성문 클러스터를 저장할 수 있다.
여기서, 성문(voice print)은 사용자 고유의 목소리 특성을 의미할 수 있으며, 사용자 식별정보로 이용될 수 있다. 성문은 음성 데이터에 기초하여 획득될 수 있으며, 사용자에 대응되는 성문이 정해져 있으므로, 성문은 사용자마다 상이할 수 있다. 또한, 사용자의 발화 패턴에 따라 사용자마다 복수의 성문을 포함할 수 있다. 예를 들어, 제1 사용자에 대응되는 성문이 복수개일 수 있다. 여기서, 복수개의 성문을 특정 기준에 따라 그룹핑할 수 있으며 그룹핑된 적어도 하나의 성문을 묶으면 하나의 성문 클러스터로 정의할 수 있다. 따라서, 사용자가 발화하면, 전자 장치(100)는 사용자 발화 음성에 대응되는 성문 클러스터를 식별하고, 식별된 성문 클러스터에 포함된 성문 중 사용자 발화 음성에 대응되는 성문이 존재하는지 여부를 판단할 수 있다.
프로세서(120)는 전자 장치(100)의 전반적인 제어 동작을 수행할 수 있다. 구체적으로, 프로세서(120)는 전자 장치(100)의 전반적인 동작을 제어하는 기능을 한다.
프로세서(120)는 디지털 신호를 처리하는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), GPU(graphics-processing unit) 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(120)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 또한, 프로세서(120)는 메모리(110)에 저장된 컴퓨터 실행가능 명령어(computer executable instructions)를 실행함으로써 다양한 기능을 수행할 수 있다.
프로세서(120)는 사용자 인식 명령이 수신되면, 사용자 인식 명령이 수신된 시간 정보를 획득하고, 획득된 시간 정보에 기초하여 제1 성문 클러스터(또는 제1 클러스터)에 포함된 기 등록된 적어도 하나의 성문을 변경하고, 변경된 적어도 하나의 성문에 기초하여 제2 성문 클러스터(또는 제2 클러스터)를 생성하고, 사용자의 발화 음성이 수신되면, 제1 성문 클러스터 및 제2 성문 클러스터에 기초하여 수신된 사용자의 발화 음성에 대한 사용자 인식을 수행하는 프로세서(120)를 포함한다.
여기서, 사용자 인식 명령은 기 설정된 이벤트가 인식되는 것을 의미할 수 있다. 기 설정된 이벤트는 사용자가 홈메뉴를 선택하는 액션, 특정 어플리케이션을 접속하는 액션일 수 있다.
여기서, 프로세서(120)는 사용자 인식 명령이 수신된 시간 정보를 획득할 수 있다. 그리고, 프로세서(120)는 메모리에 저장된 제1 성문 클러스터가 생성된 시간 정보를 획득할 수 있다. 그리고, 프로세서(120)는 제1 성문 클라스터가 생성된 시간 정보와 사용자 인식 명령이 수신된 시간 정보를 비교할 수 있다. 제1 성문 클러스터가 생성된 시간 정보에서 사용자 인식 명령이 수신된 시간 정보의 차이가 크면(예를 들어, 몇 3년 이상) 사람의 목소리가 변경될 수 있으므로 오인식이 발생할 수 있다. 예를 들어, 사용자가 변성기의 청소년이라면 시간이 경과함에 따라 기 등록된 성문과 달라진 목소리를 가질 수 있다. 따라서, 프로세서(120)는 시간 정보에 기초하여 기 등록된 성문 및 성문 클러스터를 변경하는 작업이 필요할 수 있다.
여기서, 프로세서(120)는 제1 성문 클라스터가 생성된 시간 정보와 사용자 인식 명령이 수신된 시간 정보의 차이값을 획득할 수 있다. 그리고, 프로세서(120)는 획득된 차이값에 기초하여 제2 성문 클러스터를 생성할 수 있다.
구체적으로, 프로세서(120)는 획득된 차이값이 클수록 제1 성문 클러스터에 포함된 정보를 크게 변경하여 제2 성문 클러스터를 생성할 수 있다.
프로세서(120)는 제1 성문 클러스터에 포함된 성문 데이터 자체를 변경하거나, 제1 성문 클러스터에 대응되는 제1 중심값 및 제1 임계값을 변경할 수 있다.
그리고, 프로세서(120)는 제1 성문 클러스터(기존에 저장된) 및 제2 성문 클러스터(새로 생성된)에 기초하여 수신된 사용자 발화 음성에 대한 사용자 인식 기능(또는 동작)을 수행할 수 있다.
프로세서(120)는 과거의 시간 정보(제1 성문 클러스터가 생성된 시간 정보) 및 현재의 시간 정보(사용자 인식 명령이 수신된 시간 정보)를 모두 고려하고 있으므로, 변경된 사용자의 목소리에도 불구하고 오인식률을 낮출 수 있다.
한편, 프로세서(120)는 사용자 인식이 성공하면, 수신된 사용자의 발화 음성에 기초하여 제2 성문 클러스터를 업데이트할 수 있다. 한편, 사용자 인식이 성공했다는 것은 수신된 발화 음성이 권한 있는 사용자의 음성인 것을 의미할 수 있다. 새로 생성된 제2 성문 클러스터 단순히 기존에 저장되어 있던 제1 성문 클러스터를 시간 정보(차이값)에 기초하여 변경된 것이므로 실제 권한 있는 사용자의 최근 음성이 반영된 것은 아닐 수 있다. 따라서, 프로세서(120)는 사용자의 최근 음성을 반영한 업데이트 동작이 필요할 수 있다. 따라서, 사용자 인식이 성공하면, 수신된 발화 음성에 기초하여 제2 성문 클러스터를 업데이트 할 수 있다. 전자 장치(100)는 시간 정보뿐 아니라 최근 사용자 음성을 반영하여 성문 클러스터를 업데이트하므로, 오인식률을 더 낮출 수 있다.
한편, 프로세서(120)는 사용자 인식이 성공하면, 외부 장치로부터 사용자 활동 정보 또는 사용자 신체 정보 중 적어도 하나를 수신할 수 있고, 수신된 사용자 활동 정보 또는 사용자 신체 정보 중 적어도 하나에 기초하여 제2 성문 클러스터를 업데이트할 수 있다.
여기서, 외부 장치는 각종 정보를 센싱하는 센서를 포함하는 전자 기기를 의미할 수 있다. 예를 들어, 외부 장치는 스마트 워치일 수 있다. 외부 장치는 센서를 통하여 사용자의 활동 정보 또는 사용자의 신체 정보를 획득할 수 있다. 그리고, 외부 장치는 획득된 활동 정보 또는 신체 정보 중 적어도 하나를 전자 장치(100)에 전송할 수 있다. 그리고, 프로세서(120)는 수신된 정보에 기초하여 제2 성문 클러스터를 업데이트할 수 있다.
한편, 프로세서(120)는 사용자 인식이 실패하면, 사용자의 권한을 검증할 수 있고, 사용자의 권한이 검증되면, 수신된 사용자의 발화 음성에 기초하여 사용자의 건강 상태를 식별할 수 있고, 식별된 사용자의 건강 상태에 기초하여 제2 성문 클러스터를 업데이트할 수 있다.
사용자 인식이 실패했다는 것은, 음성을 발화한 사용자가 기존에 등록되지 않은 사람인 것으로 의미할 수 있다. 따라서, 일반적으로 사용자 인식이 실패하면 프로세서(120)는 전자 장치(100)에 대하여 음성을 발화한 사용자의 접근을 거부할 수 있다. 다만, 사용자의 목소리가 변경되는 경우 음성을 통한 사용자 인식이 실패할 수 있다. 예를 들어, 사용자의 신체 컨디션이 나빠 목이 잠기는 상황이 생길 수 있다. 전자 장치(100)는 이러한 상황을 추가적으로 고려하여 제2 성문 클라스터를 업데이트할 수 있다.
구체적으로, 사용자 인식이 실패하면, 프로세서(120)는 추가적으로 음성을 발화한 사용자에게 사용자 권한 검증을 요청할 수 있다. 여기서, 사용자 권한 검증은 별도의 인증 방식일 수 있다. 예를 들어, 사용자 권한 검증은, 아이디 및 비빌번호 입력, 공인 인증서, 핸드폰 문자 인증, 주민등록증 스캔, 지문 인식 중 적어도 하나일 수 있다.
그리고, 사용자 인식 실패 후 추가 검증 수단에 의하여 사용자 권한이 검증되면, 프로세서(120)는 수신된 사용자의 발화 음성에 기초하여 사용자의 건강 상태를 식별할 수 있다. 그리고, 식별된 사용자의 건강 상태에 기초하여 제2 성문 클러스터를 업데이트할 수 있다.
한편, 프로세서(120)는 사용자의 발화 음성을 수신할 수 있고, 수신된 발화 음성에서 음성 특징을 획득하고, 획득된 음성 특징이 기 등록된 적어도 하나의 성문 및 변경된 적어도 하나의 성문과 일치하지 않으면, 사용자 인식이 실패한 것으로 결정할 수 있고 사용자의 권한을 검증하고, 사용자의 권한이 검증되면, 획득된 음성 특징에 기초하여 제2 성문 클러스터(또는 클러스터)를 업데이트하고 업데이트된 제2 성문 클러스터에 기초하여 사용자 인식을 수행하는 프로세서(120)를 더 포함한다.
여기서, 프로세서(120)는 전자 장치(100) 의 마이크(미도시)를 통하여 사용자의 발화 음성을 수신할 수 있다. 다른 구현 예에 따라, 전자 장치(100)는 외부 장치에서 획득된 사용자 발화 음성에 대응되는 음성 데이터를 외부 장치로부터 수신할 수 있다.
여기서, 프로세서(120)는 수신된 발화 음성에서 음성 특징(feature)를 획득할 수 있다. 구체적으로, 프로세서(120)는 발화 음성에 대응되는 오디오 데이터에서 기 결정된 방식에 의하여 음성 특징을 획득할 수 있다. 여기서, 음성 특징이란 발화 음성에서 특정 사용자에 대응되는지 여부를 판단하기 위한 특성 정보를 의미할 수 있다.
여기서, 프로세서(120)는 획득된 음성 특징에 기초하여 사용자 인식 동작을 수행할 수 있다. 구체적으로, 프로세서(120)는 사용자의 발화 음성에 기초하여 사용자가 기 저장된 사용자로서 인식 되는지 여부를 식별할 수 있다. 프로세서(120)는 발화 음성에서 획득한 음성 특징이 메모리(110)에 기 등록된 적어도 하나의 성문과 일치하는지 여부를 식별할 수 있다. 획득된 음성 특징이 기 등록된 적어도 하나의 성문과 일치하면, 프로세서(120)는 사용자 인식이 성공한 것으로 식별할 수 있다. 또한, 획득된 음성 특징이 기 등록된 적어도 하나의 성문 및 변경된 적어도 하나의 성문과 일치하지 않으면, 프로세서(120)는 사용자 인식이 실패한 것으로 식별할 수 있다.
여기서, 사용자 인식이 실패한 것으로 식별되면, 프로세서(120)는 사용자 인식 동작과 별개로 사용자 권한을 검증할 수 있다. 프로세서(120)는 기 결정된 방식에 따라 사용자 권한을 검증할 수 있다.
여기서, 사용자의 권한을 검증하는 동작은 사용자 인식 동작과 동일한 취지에 해당하므로, 다른 방식의 사용자 인식 동작에 해당할 수 있다.
일 실시 예에 따라, 프로세서(120)는 발화 음성을 이용하여 사용자의 권한을 검증할 수 있다.
한편, 프로세서(120)는 획득된 음성 특징에 대응되는 컨텍스트를 식별할 수 있고, 식별된 컨텍스트에 대응되는 음성 템플릿을 식별할 수 있고, 획득된 음성 특징이 기 등록된 적어도 하나의 성문 및 변경된 적어도 하나의 성문과 일치하지 않으면, 획득된 음성 특징 및 식별된 음성 템플릿에 기초하여 사용자의 권한을 검증할 수 있고, 사용자의 권한이 검증되면, 획득된 음성 특징, 식별된 컨텍스트, 식별된 음성 템플릿 또는 기 등록된 적어도 하나의 성문 중 사용자에 대응되는 성문 중 적어도 하나에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득할 수 있고, 획득된 클러스터 구성 정보에 기초하여 제2 성문 클러스터를 업데이트할 수 있다.
여기서, 프로세서(120)는 음성 특징에 대응되는 컨텍스트를 식별할 수 있다. 여기서, 컨텍스트는 취한 상태, 아픈 상태, 피곤한 상태, 기상 상태, 외치는 상태, 중얼거리는 상태, 속삭이는 상태, 흥분 상태, 목이 막힌 상태, 흥얼거리는 상태, 활기찬 상태, 익살스러운 상태 중 적어도 하나의 상태를 포함할 수 있다.
그리고, 프로세서(120)는 식별된 컨텍스트에 대응되는 음성 템플릿을 식별할 수 있다. 여기서, 음성 템플릿은 사용자가 다양한 상황에서 발화한 음성 샘플 데이터를 의미할 수 있다. 예를 들어, 음성 템플릿은 사용자가 취한 상태에서 발화한 음성 데이터, 아픈 상태에서 발화한 음성 데이터, 피곤한 상태에서 발화한 음성 데이터, 기상 상태에서 발화한 음성 데이터, 외치는 상태에서 발화한 음성 데이터, 중얼거리는 상태에서 발화한 음성 데이터, 속삭이는 상태에서 발화한 음성 데이터, 흥분 상태에서 발화한 음성 데이터, 목이 막힌 상태에서 발화한 음성 데이터, 흥얼거리는 상태에서 발화한 음성 데이터, 활기찬 상태에서 발화한 음성 데이터, 익살스러운 상태에서 발화한 음성 데이터 중 적어도 하나의 음성 데이터를 의미할 수 있다. 전자 장치(100)는 사용자에 대응되는 다양한 컨텍스트에 대응되는 음성 템플릿(또는 음성 샘플 데이터 또는 음성 데이터)를 저장하고 있을 수 있다.
음성 템플릿은 성문과 상이할 수 있다. 성문은 사용자의 모든 발화 음성 중 등록을 위한 특정 발화 음성에 기초하여 등록될 수 있다. 하지만, 음성 템플릿은 사용자의 모든 발화 음성에 해당할 수 있다. 따라서, 음성 템플릿은 성문을 통한 사용자 인식이 실패하였을 때 보조적으로 이용되는 데이터일 수 있다.
사용자 권한을 검증하는 동작에서, 프로세서(120)는 발화 음성에 대응되는 컨텍스트 및 컨텍스트에 대응되는 음성 템플릿을 식별할 수 있다. 그리고, 프로세서(120)는 획득한 음성 특징이 식별된 음성 템플릿과 일치 여부를 비교할 수 있다. 그리고, 획득한 음성 특징이 식별된 음성 템플릿과 일치하면, 프로세서(120)는 발화 음성에 대응되는 사용자가 권한이 있는 것으로 검증할 수 있다. 만약, 획득한 음성 특징이 식별된 음성 템플릿과 일치하지 않으면, 발화 음성에 대응되는 사용자가 권한이 없는 것으로 검증할 수 있다.
사용자 권한이 있는 것으로 식별되면, 프로세서(120)는 발화 음성과 관련된 정보에 기초하여 클러스터 구성 정보를 획득할 수 있다. 여기서, 발화 음성과 관련된 정보는 획득된 음성 특징, 식별된 컨텍스트, 식별된 음성 템플릿 또는 기 등록된 적어도 하나의 성문 중 사용자에 대응되는 성문 중 적어도 하나를 포함할 수 있다. 여기서, 클러스터 구성 정보는 클러스터를 범위를 정의하기 위한 클러스터의 중심값(또는 중심점) 및 클러스터의 임계값을 포함할 수 있다. 일 실시 예에 따라, 클러스터의 임계값은 클러스터에 포함된 성문 중 클러스터의 중심값으로부터 가장 멀리 떨어진 성문까지의 거리값을 의미할 수 있다. 다른 실시 예에 따라, 클러스터의 임계값은 클러스터에 포함된 성문 중 클러스터의 중심값으로부터 가장 멀리 떨어진 성문을 포함할 수 있는 기 결정된 거리값을 의미할 수 있다.
사용자의 권한이 검증되면, 프로세서(120)는 다음 사용자 인식 동작에서는 발화 음성에 대한 사용자 인식이 실패하지 않도록 제2 성문 클러스터를 업데이트할 수 있다. 구체적으로, 사용자의 권한이 검증되면, 프로세서(120)는 발화 음성에 대한 음성 특징에 기초하여 새로운 성문을 생성할 수 있고, 생성된 성문을 포함하도록 기존 클러스터의 중심값 또는 임계값 중 적어도 하나를 변경할 수 있다. 그리고, 변경된 클러스터 구성 정보에 기초하여 기존 클러스터를 업데이트할 수 있다.
다른 실시 예에 따라, 프로세서(120)는 발화 음성 이외에 정보를 이용하여 사용자의 권한을 검증할 수 있다.
한편, 프로세서(120)는 획득된 음성 특징이 기 등록된 적어도 하나의 성문 및 변경된 적어도 하나의 성문과 일치하지 않으면, 수신된 발화 음성 이외의 파라미터를 획득할 수 있고, 획득된 파라미터에 기초하여 사용자의 권한을 검증할 수 있고, 사용자의 권한이 검증되면, 획득된 음성 특징 또는 기 등록된 적어도 하나의 성문 중 사용자에 대응되는 성문 중 적어도 하나에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득할 수 있고, 획득된 클러스터 구성 정보에 기초하여 제2 성문 클러스터를 업데이트할 수 있다.
획득된 음성 특징이 기 등록된 적어도 하나의 성문 및 변경된 적어도 하나의 성문과 일치하지 않으면, 프로세서(120)는 사용자 인식에 실패한 것으로 식별할 수 있다. 그리고, 프로세서(120)는 추가적으로 사용자 권한을 검증할 수 있다. 여기서, 프로세서(120)는 발화 음성 이외에 다른 종류의 데이터를 이용하여 사용자 권한을 검증할 수 있다.
한편, 파라미터(발화 음성 이외의 다른 종류의 데이터)는 전자 장치(100)에서 수행되는 사용자의 조작에 대응되는 동작 파라미터, 외부 장치에서 수행되는 사용자의 조작에 대응되는 동작 파라미터, 사용자에 대응되는 생체 측정 파라미터 또는 사용자가 전자 장치(100)에 액세스하는 시간 파라미터 중 적어도 하나를 포함할 수 있다.
여기서, 전자 장치(100)에서 수행되는 사용자의 조작에 대응되는 동작 파라미터는 전자 장치(100)에 포함된 센서를 통해 획득되는 기 결정된 이벤트를 의미할 수 있다. 예를 들어, 기 결정된 이벤트는 사용자가 패스워드를 입력하는 이벤트, 사용자가 서명을 입력하는 이벤트, 사용자가 인증서를 통해 인증에 성공하는 이벤트, 사용자가 특정 암호 해제 패턴을 입력하는 이벤트, 사용자가 특정 제스쳐를 취하는 이벤트 중 적어도 하나를 포함할 수 있다. 프로세서(120)는 기 설정된 이벤트가 전자 장치(100)로부터 식별되면, 사용자가 권한이 있다고 식별할 수 있다.
여기서, 외부 장치에서 수행되는 사용자의 조작에 대응되는 동작 파라미터는 외부 장치에 포함된 센서를 통해 획득되는 기 결정된 이벤트를 의미할 수 있다. 기 결정된 이벤트는 전자 장치(100)에서 수행되는 사용자의 조작에 대응되는 동작 파라미터와 동일할 수 있다. 다만, 각각의 이벤트가 전자 장치(100)가 아닌 외부 장치를 통해 수신되는 형태로 구현될 수 있다. 프로세서(120)는 기 설정된 이벤트가 외부 장치에서 식별되면, 사용자가 권한이 있다고 식별할 수 있다.
여기서, 사용자에 대응되는 생체 측정 파라미터는 전자 장치(100) 또는 외부 장치에 의해 수신되는 사용자의 생체 정보를 의미할 수 있다. 예를 들어, 생체 정보는 사용자의 체온, 사용자의 혈압, 사용자의 심장박동수 중 적어도 하나를 포함할 수 있다. 프로세서(120)는 측정된 사용자의 생체 정보가 기 결정된 생체 정보와 일치하면, 사용자가 권한이 있다고 식별할 수 있다.
여기서, 사용자가 전자 장치(100)에 액세스하는 시간 파라미터는 전자 장치(100)가 사용자의 발화 음성을 수신한 시간 정보를 의미할 수 있다. 프로세서(120)는 사용자의 발화 음성이 수신된 시간 정보가 기 결정된 시간 정보와 일치하면, 사용자가 권한이 있다고 식별할 수 있다.
프로세서(120)는 상술한 다양한 파라미터 중 적어도 하나의 파라미터에 기초하여 사용자 권한을 검증할 수 있다.
한편, 사용자가 발화한 발화 음성을 수신하는 음향 센서를 더 포함할 수 있고, 프로세서(120)는 수신된 발화 음성을 음성 프로세싱 기준에 기초하여 피치(pitch), 톤(tone), 데시벨 또는 주파수 중 적어도 하나로 분해할 수 있다.
여기서, 프로세서(120)는 분해된 피치(pitch), 톤(tone), 데시벨 또는 주파수 중 적어도 하나에 기초하여 음성 특징을 획득할 수 있다.
한편, 프로세서(120)는 획득된 음성 특징에 기초하여 발화 음성에 대응되는 발화 성문을 획득할 수 있고, 획득된 발화 성문과 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과의 유사도값을 획득할 수 있고, 획득된 유사도값이 임계값 이하면, 사용자 인식이 실패한 것으로 결정할 수 있고, 획득된 유사도값이 임계값을 초과하면, 사용자 인식이 성공한 것으로 결정할 수 있고, 기 등록된 적어도 하나의 성문은 사용자 식별 정보이며, 기 등록된 적어도 하나의 성문은 제1 성문 클러스터에 포함될 수 있으며, 제1 성문 클러스터는 기 결정된 중앙값 및 임계값을 포함하는 클러스터 구성 정보를 포함할 수 있다.
여기서, 발화 성문이란 사용자가 발화한 음성에 대응되는 성문 데이터를 의미할 수 있다. 그리고, 프로세서(120)는 발화 성문과 기 등록된 성문을 비교하여 사용자 인식 동작을 수행할 수 있다. 구체적으로, 발화 성문과 기 등록된 성문의 유사도값을 획득하여 사용자 인식 여부를 결정할 수 있다. 예를 들어, 유사도값이 임계값을 초과하는 경우에 프로세서(120)는 사용자 인식이 성공한 것으로 결정할 수 있다.
전자 장치(100)는 복수의 성문 클러스터를 저장할 수 있다. 여기서, 복수의 성문 클러스터 중 하나의 성문 클러스터는 복수의 성문을 포함할 수 있다. 사용자별로 적어도 하나의 성문 클러스터를 포함할 수 있다. 구현 예에 따라, 하나의 사용자에 두 개 이상의 성문 클러스터가 등록될 수 있다.
한편, 프로세서(120)는 획득된 음성 특징이 기 등록된 적어도 하나의 성문 및 변경된 적어도 하나의 성문과 일치하지 않으면, 센서로부터 획득되는 센싱 데이터 또는 사용자 인터페이스를 통해 획득되는 입력 데이터에 기초하여 사용자의 권한을 검증할 수 있다.
획득된 음성 특징이 기 등록된 적어도 하나의 성문 및 변경된 적어도 하나의 성문과 일치하지 않으면, 프로세서(120)는 사용자 인식이 실패한 것으로 결정할 수 있으며, 보조 수단을 통해 사용자의 권한을 검증할 수 있다.
일 실시 예에 따라, 프로세서(120)는 센서로부터 획득되는 센싱 데이터에 기초하여 사용자의 권한을 검증할 수 있다. 구체적으로, 프로세서(120)는 전자 장치(100) 또는 외부 장치에 포함되는 센서를 통해 센싱 데이터를 획득할 수 있으며, 센싱 데이터가 기 결정된 이벤트에 해당하면 프로세서(120)는 사용자가 권한이 있는 것으로 식별할 수 있다. 여기서, 센서는 카메라, 생체 센서, 조도 센서, 음향 센서 또는 3D 센서 중 적어도 하나일 수 있다.
다른 실시 예에 따라, 프로세서(120)는 사용자 인터페이스를 통해 획득되는 입력 데이터에 기초하여 사용자의 권한을 검증할 수 있다. 여기서, 사용자 인터페이스는 조작 입력부를 의미할 수 있으며, 사용자의 특정 입력을 수신하기 위한 버튼 또는 터치 패드 중 하나를 의미할 수 있다. 사용자가 사용자 인터페이스를 통해 기 결정된 이벤트를 입력하면, 프로세서(120)는 사용자가 권한이 있는 것으로 식별할 수 있다.
한편, 메모리(110)는 적어도 하나의 음성 템플릿을 포함하는 적어도 하나의 음성 가변성 식별자(클러스터 ID)를 저장할 수 있고, 프로세서(120)는 획득된 음성 특징에 기초하여 발화 음성에 대응되는 발화 성문을 획득할 수 있고, 획득된 발화 성문과 적어도 하나의 음성 템플릿을 비교하여, 발화 성문에 대응되는 음성 가변성 식별자를 식별할 수 있고, 식별된 음성 가변성 식별자에 기초하여 발화 성문에 대응되는 컨텍스트를 식별할 수 있고, 컨텍스트는 취한 상태, 아픈 상태, 피곤한 상태, 기상 상태, 외치는 상태, 중얼거리는 상태, 속삭이는 상태, 흥분 상태, 목이 막힌 상태, 흥얼거리는 상태, 활기찬 상태, 익살스러운 상태 중 적어도 하나의 상태를 포함할 수 있다.
전자 장치(100)는 사용자에 대응되는 적어도 하나의 클러스터를 저장할 수 있으며, 각 클러스터는 클러스터를 특정하기 위한 클러스터 식별정보(ID)(음성 가변성 식별자)를 포함할 수 있다. 따라서, 프로세서(120)는 발화 성문과 일치하지는 않지만 발화 성문과 가장 유사한 성문을 포함하는 클러스터를 식별할 수 있다. 그리고, 프로세서(120)는 식별된 클러스터에 기초하여 발화 음성(또는 발화 성문)에 대응되는 컨텍스트를 식별할 수 있다. 그리고, 프로세서(120)는 발화 성문 및 식별된 컨텍스트에 기초하여 사용자의 권한을 검증할 수 있다.
한편, 프로세서(120)는 발화 성문을 기 결정된 방법으로 임베딩하여 임베딩값을 획득할 수 있고, 획득된 임베딩값과 제1 성문 클러스터의 제1 중심값 사이의 차이값이 제1 임계값을 초과하고 획득된 임베딩값과 제2 성문 클러스터의 제2 중심값사이의 차이값이 제2 임계값을 초과하면, 사용자 인식이 실패한 것으로 결정할 수 있다. 그리고, 프로세서(120)는 사용자의 권한을 추가적으로 검증할 수 있다.
여기서, 임베딩은 데이터를 동일한 수준에서 비교하기 위하여 데이터를 변환하는 동작을 의미할 수 있다. 구체적으로, 발화 성문이 기존 클러스터의 중심값으로부터 어느 정도 떨어져 있는지를 비교할 수 있도록, 프로세서(120)는 발화 성문을 기 결정된 방식에 의하여 변환(또는 임베딩)할 수 있다. 그리고, 프로세서(120)는 비교 기준인 사용자에 대응되는 클러스터의 제1 중심값 및 제1 임계값을 획득할 수 있다. 그리고, 프로세서(120)는 변환값(또는 임베딩값)과 사용자에 대응되는 클러스터의 제1 중심값 사이의 거리값(또는 차이값) 획득할 수 있다. 그리고, 프로세서(120)는 획득된 거리값(또는 차이값)이 제1 임계값을 초과하는지 식별할 수 있다. 여기서, 획득된 거리값(또는 차이값)이 제1 임계값을 초과하면, 프로세서(120)는 사용자 인식이 실패한 것으로 결정할 수 있다. 여기서, 획득된 거리값(또는 차이값)이 제1 임계값 미만이면, 프로세서(120)는 사용자 인식이 성공한 것으로 결정할 수 있다.
한편, 프로세서(120)는 사용자의 권한이 검증되면, 발화 성문에 대응되는 제3 중심값 및 제3 임계값을 획득할 수 있고, 제1 중심값, 제1 임계값, 제2 중심값, 제2 임계값, 제3 중심값 및 제3 임계값에 기초하여 제4 중심값 및 제4 임계값을 포함하는 클러스터 구성 정보를 획득할 수 있고, 획득된 클러스터 구성 정보에 기초하여 제2 성문 클러스터를 업데이트할 수 있다.
여기서, 필요에 따라 프로세서(120)는 제1 성문 클러스터에 대한 정보(제1 중심값 및 제1 임계값)은 생략하여 제4 중심값 및 제4 임계값을 획득할 수 있다.
프로세서(120)는 사용자의 권한이 검증되면, 검증된 사용자에 대응되는 제2 성문 클러스터를 식별할 수 있고, 식별된 제2 성문 클러스터의 구성 정보인 제2 중심값 및 제2 임계값을 획득할 수 있다. 그리고, 프로세서(120)는 발화 음성에 기초하여 발화 성문에 대응되는 제3 중심값 및 제3 임계값을 획득할 수 있다. 예를 들어, 발화 성문이 복수개이면 프로세서(120)는 복수의 발화 성문의 위치 정보에 기초하여 평균 위치 정보인 제3 중심값을 획득할 수 있다. 또한, 프로세서(120)는 복수의 발화 성문 중 제3 중심값으로부터 가장 먼 발화 성문을 식별하고, 제3 중심값으로부터 가장 먼 발화 성문까지의 거리 정보를 제3 임계값으로 획득할 수 있다. 그리고, 프로세서(120)는 제2 클러스터 구성 정보(제2 중심값 및 제2 임계값) 및 발화 성문에 대응되는 정보(제3 중심값 및 제3 임계값)에 기초하여 제4 중심값 및 제4 임계값을 획득할 수 있다. 그리고, 획득된 제4 중심값 및 제4 임계값을 이용하여 기존 클러스터 정보를 변경할 수 있다. 구체적으로, 제2 성문 클러스터의 구성 정보 중 제2 중심값 및 제12임계값에서 제4 중심값 및 제4 임계값으로 변경(또는 업데이트)할 수 있다.
한편, 프로세서(120)는 획득된 임베딩값과 제1 성문 클러스터의 제1 중심값 사이의 차이값이 제5 임계값을 초과하고, 획득된 임베딩값과 제2 성문 클러스터의 제2 중심값 사이의 차이값이 제5 임계값을 초과하면, 획득된 제3 중심값 및 제3 임계값에 기초하여 제3 성문 클러스터를 생성할 수 있고, 사용자에 대응되는 성문 클러스터에 생성된 제3 성문 클러스터를 추가 등록할 수 있다.
프로세서(120)는 기존 클러스터(제1 성문 클러스터 및 제2 성문 클러스터)와 획득된 임베딩값이 제5 임계값을 초과하면, 기존 클러스터를 변경하지 않고 새로운 클러스터를 생성할 수 있다. 그리고, 사용자에 대응되는 클러스터에 생성된 클러스터를 추가할 수 있다.
도 18은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
또 18을 참조하면, 본 개시의 일 실시 예에 따른 기 등록된 적어도 하나의 성문 및 기 등록된 적어도 하나의 성문을 포함하는 제1 성문 클러스터를 저장하는 전자 장치(100)의 제어 방법은 사용자 인식 명령이 수신되면, 사용자 인식 명령이 수신된 시간 정보를 획득하는 단계 (S1805), 획득된 시간 정보에 기초하여 제1 성문 클러스터에 포함된 기 등록된 적어도 하나의 성문을 변경하는 단계 (S1810), 변경된 적어도 하나의 성문에 기초하여 제2 성문 클러스터를 생성하는 단계 (S1815) 및 사용자의 발화 음성이 수신되면, 제1 성문 클러스터 및 제2 성문 클러스터에 기초하여 수신된 사용자의 발화 음성에 대한 사용자 인식을 수행하는 단계 (S1820)를 포함한다.
한편, 제어 방법은 사용자 인식이 성공하면, 수신된 사용자의 발화 음성에 기초하여 제2 성문 클러스터를 업데이트하는 단계를 더 포함할 수 있다.
한편, 제어 방법은 사용자 인식이 성공하면, 외부 장치로부터 사용자 활동 정보 또는 사용자 신체 정보 중 적어도 하나를 수신하는 단계 및 수신된 사용자 활동 정보 또는 사용자 신체 정보 중 적어도 하나에 기초하여 제2 성문 클러스터를 업데이트하는 단계를 더 포함할 수 있다.
한편, 제어 방법은 사용자 인식이 실패하면, 사용자의 권한을 검증하는 단계, 사용자의 권한이 검증되면, 수신된 사용자의 발화 음성에 기초하여 사용자의 건강 상태를 식별하는 단계 및 식별된 사용자의 건강 상태에 기초하여 제2 성문 클러스터를 업데이트하는 단계를 더 포함할 수 있다.
한편, 제어 방법은 수신된 발화 음성에서 음성 특징을 획득하는 단계, 획득된 음성 특징이 기 등록된 적어도 하나의 성문 및 변경된 적어도 하나의 성문과 일치하지 않으면, 사용자 인식이 실패한 것으로 결정할 수 있고 사용자의 권한을 검증하는 단계, 사용자의 권한이 검증되면, 획득된 음성 특징에 기초하여 제2 성문 클러스터를 업데이트하는 단계 및 업데이트된 제2 성문 클러스터에 기초하여 사용자 인식을 수행하는 단계를 더 포함할 수 있다.
한편, 제어 방법은 획득된 음성 특징에 대응되는 컨텍스트를 식별하는 단계, 식별된 컨텍스트에 대응되는 음성 템플릿을 식별하는 단계, 획득된 음성 특징이 기 등록된 적어도 하나의 성문 및 변경된 적어도 하나의 성문과 일치하지 않으면, 획득된 음성 특징 및 식별된 음성 템플릿에 기초하여 사용자의 권한을 검증하는 단계, 사용자의 권한이 검증되면, 획득된 음성 특징, 식별된 컨텍스트, 식별된 음성 템플릿 또는 기 등록된 적어도 하나의 성문 중 사용자에 대응되는 성문 중 적어도 하나에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득하는 단계 및 획득된 클러스터 구성 정보에 기초하여 제2 성문 클러스터를 업데이트하는 단계를 더 포함할 수 있다.
한편, 제어 방법은 획득된 음성 특징이 기 등록된 적어도 하나의 성문 및 변경된 적어도 하나의 성문과 일치하지 않으면, 수신된 발화 음성 이외의 파라미터를 획득하는 단계, 획득된 파라미터에 기초하여 사용자의 권한을 검증하는 단계, 사용자의 권한이 검증되면, 획득된 음성 특징 또는 기 등록된 적어도 하나의 성문 중 사용자에 대응되는 성문 중 적어도 하나에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득하는 단계 및 획득된 클러스터 구성 정보에 기초하여 제2 성문 클러스터를 업데이트하는 단계를 더 포함할 수 있다.
한편, 파라미터는 전자 장치(100)에서 수행되는 사용자의 조작에 대응되는 동작 파라미터, 외부 장치에서 수행되는 사용자의 조작에 대응되는 동작 파라미터, 사용자에 대응되는 생체 측정 파라미터 또는 사용자가 전자 장치(100)에 액세스하는 시간 파라미터 중 적어도 하나를 포함할 수 있다.
한편, 제어 방법은 사용자가 발화한 발화 음성을 수신하는 단계 및 수신된 발화 음성을 음성 프로세싱 기준에 기초하여 피치(pitch), 톤(tone), 데시벨 또는 주파수 중 적어도 하나로 분해하는 단계를 더 포함할 수 있다.
한편, 제어 방법은 획득된 음성 특징에 기초하여 발화 음성에 대응되는 발화 성문을 획득하는 단계, 획득된 발화 성문과 기 등록된 적어도 하나의 성문 및 변경된 적어도 하나의 성문과의 유사도값을 획득하는 단계, 획득된 유사도값이 임계값 이하면, 사용자 인식이 실패한 것으로 결정하는 단계 및 획득된 유사도값이 임계값을 초과하면, 사용자 인식이 성공한 것으로 결정하는 단계를 더 포함할 수 있고, 기 등록된 적어도 하나의 성문은 사용자 식별 정보이며, 기 등록된 적어도 하나의 성문은 제1 성문 클러스터에 포함될 수 있으며, 제1 성문 클러스터는 기 결정된 중앙값 및 임계값을 포함하는 클러스터 구성 정보를 포함할 수 있다.
한편, 제어 방법은 획득된 음성 특징이 기 등록된 적어도 하나의 성문 및 변경된 적어도 하나의 성문과 일치하지 않으면, 센서로부터 획득되는 센싱 데이터 또는 사용자 인터페이스를 통해 획득되는 입력 데이터에 기초하여 사용자의 권한을 검증하는 단계를 더 포함할 수 있다.
한편, 전자 장치(100)는 적어도 하나의 음성 템플릿을 포함하는 적어도 하나의 음성 가변성 식별자(클러스터 ID)를 저장할 수 있고, 제어 방법은 획득된 음성 특징에 기초하여 발화 음성에 대응되는 발화 성문을 획득하는 단계, 획득된 발화 성문과 적어도 하나의 음성 템플릿을 비교하여, 발화 성문에 대응되는 음성 가변성 식별자를 식별하는 단계 및 식별된 음성 가변성 식별자에 기초하여 발화 성문에 대응되는 컨텍스트를 식별하는 단계를 더 포함할 수 있고, 컨텍스트는 취한 상태, 아픈 상태, 피곤한 상태, 기상 상태, 외치는 상태, 중얼거리는 상태, 속삭이는 상태, 흥분 상태, 목이 막힌 상태, 흥얼거리는 상태, 활기찬 상태, 익살스러운 상태 중 적어도 하나의 상태를 포함할 수 있다.
한편, 제어 방법은 발화 성문을 기 결정된 방법으로 임베딩하여 임베딩값을 획득하는 단계 및 획득된 임베딩값과 제1 성문 클러스터의 제1 중심값 사이의 차이값이 제1 임계값을 초과할 수 있고 획득된 임베딩값과 제2 성문 클러스터의 제2 중심값사이의 차이값이 제2 임계값을 초과하면, 사용자 인식이 실패한 것으로 결정할 수 있고 사용자의 권한을 검증하는 단계를 더 포함할 수 있다.
한편, 제어 방법은 사용자의 권한이 검증되면, 발화 성문에 대응되는 제3 중심값 및 제3 임계값을 획득하는 단계, 제1 중심값, 제1 임계값, 제2 중심값, 제2 임계값, 제3 중심값 및 제3 임계값에 기초하여 제4 중심값 및 제4 임계값을 포함하는 클러스터 구성 정보를 획득하는 단계 및 획득된 클러스터 구성 정보에 기초하여 제2 성문 클러스터를 업데이트하는 단계를 더 포함할 수 있다.
한편, 제어 방법은 획득된 임베딩값과 제1 성문 클러스터의 제1 중심값 사이의 차이값이 제5 임계값을 초과할 수 있고 획득된 임베딩값과 제2 성문 클러스터의 제2 중심값 사이의 차이값이 제5 임계값을 초과하면, 획득된 제3 중심값 및 제3 임계값에 기초하여 제3 성문 클러스터를 생성하는 단계 및 생성된 제3 성문 클러스터를 추가 등록하는 단계를 포함할 수 있다.
한편, 도 18과 같은 전자 장치의 제어 방법은 도 17의 구성을 가지는 전자 장치 상에서 실행될 수 있으며, 그 밖의 구성을 가지는 전자 장치 상에서도 실행될 수 있다.
도 19는 본 개시의 일 실시 예에 따른 전자 장치 및 서버를 포함하는 시스템을 설명하기 위한 흐름도이다.
도 19를 참조하면, 본 개시의 일 실시 예에 따른 전자 장치(100) 및 서버(1002)를 포함하는 시스템은 전자 장치(100)는 기 등록된 적어도 하나의 성문 및 기 등록된 적어도 하나의 성문에 대응되는 적어도 하나의 성문 클러스터를 저장하고 (S1905), 기 설정된 이벤트에 기초하여 적어도 하나의 성문 클러스터에 관한 품질 파라미터를 획득하고 (S1910), 획득된 품질 파라미터에 기초하여 사용자 인식 모듈을 업데이트할지 여부를 결정하고 (S1915), 사용자 인식 모듈을 업데이트하는 것으로 결정하면, 기 등록된 적어도 하나의 성문, 기 등록된 적어도 하나의 성문 클러스터, 적어도 하나의 성문 클러스터에 대응되는 음성 특징, 사용자 식별 정보, 성문 클러스터 속성 정보, 사용자 인식 모듈에 대한 정보 중 적어도 하나를 포함하는 대상 정보를 서버(1002)에 전송하고 (S1920), 성문 클러스터 속성 정보는 고정성 클러스터 또는 가변성 클러스터 중 적어도 하나의 속성을 포함하고, 서버(1002)는 전자 장치(100)로부터 전송된 대상 정보에 기초하여 사용자에 대응되는 성문을 생성하고 (S1925), 생성된 성문에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득하고 (S1930), 획득된 클러스터 구성 정보에 기초하여 성문 클러스터를 생성하고 (S1935), 생성된 성문 또는 생성된 성문 클러스터 중 적어도 하나에 기초하여 사용자 인식 모듈을 업데이트하고 (S1940), 업데이트된 사용자 인식 모듈을 전자 장치(100)에 전송하고 (S1945), 전자 장치(100)는 서버(1002)로부터 업데이트된 사용자 인식 모델을 수신하고 (S1950), 업데이트된 사용자 인식 모델에 기초하여 사용자 인식을 수행한다 (S1955).
여기서, 기 설정된 이벤트는 품질 파라미터를 획득하기 위한 제어 명령이 획득되는 이벤트를 의미할 수 있다. 일 예로, 제어 명령은 사용자에 의해 직접 입력될 수 있다. 다른 예로, 제어 명령은 기 결정된 주기마다 자동으로 생성될 수 있다.
전자 장치(100)는 기 설정된 이벤트에 기초하여 품질 파라미터를 획득할 수 있다. 품질 파라미터에 관련된 획득 동작은 도 20 및 도 21에서 후술한다.
그리고, 전자 장치(100)는 획득된 품질 파라미터가 기 결정된 임계 범위에 해당하면 사용자 인식 모듈을 업데이트하는 것으로 결정할 수 있다. 구체적으로, 전자 장치(100)는 획득된 품질 파라미터가 기 결정된 임계값보다 낮으면, 사용자 인식 모듈을 업데이트하는 것으로 결정할 수 있다.
그리고, 사용자 인식 모듈을 업데이트하는 것으로 결정되면, 대상 정보를 외부 서버에 전송할 수 있다. 여기서, 전자 장치(100)는 외부 서버에 정보를 전송하거나 외부 서버로부터 정보를 수신하기 위하여 통신 인터페이스를 이용할 수 있다. 여기서, 대상 정보란, 기 등록된 적어도 하나의 성문, 기 등록된 적어도 하나의 성문 클러스터, 적어도 하나의 성문 클러스터에 대응되는 음성 특징, 사용자 식별 정보, 성문 클러스터 속성 정보, 사용자 인식 모듈에 대한 정보 중 적어도 하나를 포함할 수 있다.
여기서, 사용자에 대응되는 성문은 발화 성문을 의미할 수 있다.
여기서, S1925 내지 S1940 단계는 도 18의 S1820 단계에 대응될 수 있다. 따라서, 도 18 내지 도 19에서 설명한 동작들이 동일하게 적용될 수 있다.
한편, 전자 장치(100)는 기 등록된 적어도 하나의 성문 클러스터 중 하나의 클러스터에 대응되는 중심값 및 하나의 클러스터에 포함된 적어도 하나의 성문 사이의 성문 거리 평균값(도 20의 실시 예(2010) 참조) 또는 하나의 클러스터와 나머지 클러스터 각각의 클러스터 거리값(도 20의 실시 예(2020) 참조) 중 최소 거리값 (도 21의 식(2105) 참조) 중 적어도 하나에 기초하여 품질 파라미터를 획득할 수 있다.
한편, 서버(1002)는 생성된 성문 클러스터에 기초하여 클러스터 맵을 생성할 수 있고, 생성된 클러스터 맵에 기초하여 사용자 인식 모듈을 업데이트할 수 있다.
여기서, 클러스터 맵이란, 복수의 클러스터를 종합하는 정보를 의미할 수 있다.
한편, 서버(1002)는 전자 장치(100)로부터 수신된 대상 정보 중 기 등록된 적어도 하나의 성문 클러스터 중 적어도 하나를 삭제할 수 있고, 삭제된 성문 클러스터에 대응되는 음성 특징에 기초하여 사용자에 대응되는 성문을 생성할 수 있고, 생성된 성문에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득할 수 있고, 획득된 클러스터 구성 정보에 기초하여 성문 클러스터를 생성할 수 있다.
한편, 서버(1002)는 복수의 전자 장치(100)로부터 각각 대상 정보를 수신할 수 있고, 복수의 전자 장치(100) 각각으로부터 수신된 복수의 사용자 인식 모듈 중 기 저장된 리스팅 정보에 기초하여 적어도 하나 이상의 사용자 인식 모듈을 쇼트리스팅(shortlisting)할 수 있고, 기 저장된 리스팅 정보는 기 결정된 영역 또는 기 결정된 카테고리 중 적어도 하나를 포함할 수 있다.
도 20은 클러스터에 대응되는 품질 파라미터를 획득하는데 이용되는 계산 과정을 설명하기 위한 도면이다.
도 20을 참조하면, 일 실시 예(2010)에서 전자 장치(100)는 제1 클러스터(2001)의 구성 정보 중 제1 클러스터(2001)의 중심값(p1)을 획득할 수 있다. 그리고, 제1 클러스터(2001)는 복수의 성문(c11, c12, c13, c14, c15)을 포함할 수 있다. 그리고, 전자 장치(100)는 제1 클러스터(2001)의 중심값(p1)으로부터 각 성문까지의 거리 정보(d1, d2, d3, d4, d5)를 획득할 수 있다. 예를 들어, 제1 클러스터(2001)의 중심값(p1)로부터 성문(c11)까지의 거리는 d1이고, 제1 클러스터(2001)의 중심값(p1)로부터 성문(c12)까지의 거리는 d2이고, 제1 클러스터(2001)의 중심값(p1)로부터 성문(c13)까지의 거리는 d3이고, 제1 클러스터(2001)의 중심값(p1)로부터 성문(c14)까지의 거리는 d4이고, 제1 클러스터(2001)의 중심값(p1)로부터 성문(c15)까지의 거리는 d5일 수 있다.
그리고, 전자 장치(100)는 제1 클러스터(2001)의 중심값(p1)로부터 각 성문까지의 거리 평균값을 식(2015)에 기초하여 획득할 수 있다. 구체적으로, 거리 평균값(Ac1)은 (d11+d12+d13+d14+d15)/5일 수 있다.
다른 실시 예(2020)에서 전자 장치(100)는 제1 클러스터(2001)를 기준으로 다른 클러스터까지의 거리값을 획득할 수 있다. 여기서, 다른 클러스터는 적어도 하나일 수 있으며, 실시 예(2020)에서는 다른 클러스터가 2개(2002, 2003)인 것으로 가정한다.
제2 클러스터(2002)는 복수의 성문(c21, c22, c23, c24, c25)을 포함하며, 제3 클러스터(2003)는 복수의 성문(c31, c32, c33, c34, c35)을 포함한다고 가정한다.
전자 장치(100)는 클러스터와 클러스터 사이의 거리값을 획득할 수 있다. 일 예로, 각 클러스터의 중심값에 기초하여 클러스터 간 거리값을 획득할 수 있다. 다른 예로, 기준 클러스터의 중심값으로부터 다른 클러스터에 포함된 성문까지의 거리 평균값에 기초하여 클러스터 간 거리값을 획득할 수 있다.
여기서, 다른 실시 예(2020)는 두번째 방식에 따른 거리값 획득 방법을 설명하기 위한 것이다.
또한, 제1 클러스터(2001)의 중심값(p1)으로부터 제2 클러스터(2002)에 포함된 성문(c21)까지의 거리는 d21이고, 제1 클러스터(2001)의 중심값(p1)으로부터 제2 클러스터(2002)에 포함된 성문(c22)까지의 거리는 d22이고, 제1 클러스터(2001)의 중심값(p1)으로부터 제2 클러스터(2002)에 포함된 성문(c23)까지의 거리는 d23이고, 제1 클러스터(2001)의 중심값(p1)으로부터 제2 클러스터(2002)에 포함된 성문(c24)까지의 거리는 d24이고, 제1 클러스터(2001)의 중심값(p1)으로부터 제2 클러스터(2002)에 포함된 성문(c25)까지의 거리는 d25인 것으로 가정한다.
또한, 제1 클러스터(2001)의 중심값(p1)으로부터 제3 클러스터(2003)에 포함된 성문(c31)까지의 거리는 d31이고, 제1 클러스터(2001)의 중심값(p1)으로부터 제3 클러스터(2003)에 포함된 성문(c32)까지의 거리는 d32이고, 제1 클러스터(2001)의 중심값(p1)으로부터 제3 클러스터(2003)에 포함된 성문(c33)까지의 거리는 d33이고, 제1 클러스터(2001)의 중심값(p1)으로부터 제3 클러스터(2003)에 포함된 성문(c34)까지의 거리는 d34이고, 제1 클러스터(2001)의 중심값(p1)으로부터 제3 클러스터(2003)에 포함된 성문(c35)까지의 거리는 d35인 것으로 가정한다.
한편, 전자 장치(100)는 제1 클러스터(2001) 및 제2 클러스터(2002)의 거리값을 식(2025)에 기초하여 획득할 수 있다. 구체적으로, 전자 장치(100)는 제1 클러스터(2001)의 중심값(p1)으로부터 제2 클러스터(2002)에 포함된 각 성문까지의 거리 평균값을 식(2025)에 기초하여 획득할 수 있다. 제1 클러스터(2001)의 중심값(p1)으로부터 제2 클러스터(2002)에 포함된 각 성문까지의 거리 평균값(d(p1,c1)_c2)은 (d21+d22+d23_d24+d25)/5일 수 있다.
한편, 전자 장치(100)는 제1 클러스터(2001) 및 제3 클러스터(2003)의 거리값을 식(2026)에 기초하여 획득할 수 있다. 구체적으로, 전자 장치(100)는 제1 클러스터(2001)의 중심값(p1)으로부터 제3 클러스터(2003)에 포함된 각 성문까지의 거리 평균값을 식(2026)에 기초하여 획득할 수 있다. 제1 클러스터(2001)의 중심값(p1)으로부터 제3 클러스터(2003)에 포함된 각 성문까지의 거리 평균값(d(p1,c1)_c3)은 (d31+d32+d33_d34+d35)/5일 수 있다.
도 21은 클러스터에 대응되는 품질 파라미터를 획득하는데 이용되는 계산 과정을 설명하기 위한 도면이다.
도 21을 참조하면, 전자 장치(100)는 식(2105)에 기초하여 제1 클러스터(2001)에서 가장 가까운 클러스터를 식별할 수 있다. 도 20의 가정에서와 같이 제1 클러스터(2001)와 다른 클러스터가 제2 클러스터(2002) 및 제3 클러스터(2003)인 것으로 가정한다.
제1 클러스터(2001)와 가장 가까운 클러스터를 식별하기 위하여 전자 장치(100)는 제1 클러스터(2001)와 다른 클러스터 각각에 대한 거리값을 획득할 수 있다. 클러스터 간 거리값은 도 20의 실시 예(2020)를 통해 획득할 수 있다. 구체적으로, 클러스터 ci를 기준으로 가장 가까운 클러스터까지의 거리값(Bi)은 min d(p,ci)_cj 일 수 있다. 여기서, cj는 기준 클러스터 ci를 제외한 다른 클러스터를 의미할 수 있다.
도 20의 실시 예(2020)에서 다른 클러스터가 2개인 것으로 가정하였다. 제1 클러스터를 기준으로 가장 가까운 클러스터까지의 거리값(B1)은 min{d(p1,c1)_c2, d(p1,c1)_c3)}일 수 있다. 여기서, d(p1,c1)_c2는 제1 클러스터(2001)의 중심값(p1)로부터 제2 클러스터(2002)에 포함된 성문까지의 거리 평균값일 수 있으며, d(p1,c1)_c3은 제1 클러스터(2001)의 중심값(p1)로부터 제3 클러스터(2003)에 포함된 성문까지의 거리 평균값일 수 있다.
도 20에서 기재된 바와 같이 제1 클러스터(2001)의 중심값(p1)로부터 제2 클러스터(2002)에 포함된 성문까지의 거리 평균값이 제1 클러스터(2001)의 중심값(p1)로부터 제3 클러스터(2003)에 포함된 성문까지의 거리 평균값보다 작을 수 있다. 여기서, 전자 장치(100)는 제1 클러스터(2001)로부터 가장 가까운 클러스터까지의 거리값이 d(p1,c1)_c2 로 획득할 수 있다.
한편, 전자 장치(100)는 식(2110)에 기초하여 클러스터 ci의 품질 파라미터를 획득할 수 있다. 구체적으로, 클러스터 ci의 품질 파라미터(Qci)는 (Bi-Aci)/(max{Bi,Aci})일 수 있다.
도 20의 실시 예(2020)에 적용하면, 제1 클러스터(2001)에 대한 품질 지수(Qc1)는 (d(p1,c1)_c2-Ac1)/(max{ d(p1,c1)_c2, Ac1})일 수 있다.
여기서, d(p1,c1)_c2는 제1 클러스터(2001)의 중심값(p1)로부터 제2 클러스터(2002)에 포함된 성문까지의 거리 평균값일 수 있으며, Ac1은 제1 클러스터(2001)의 중심값(p1)로부터 제1 클러스터(2001)에 포함된 성문까지의 거리 평균값일 수 있다.
도 20의 실시 예(2020)에 따라, 제1 클러스터(2001)의 중심값(p1)로부터 제1 클러스터(2001)에 포함된 성문까지의 거리 평균값이 제1 클러스터(2001)의 중심값(p1)로부터 제2 클러스터(2002)에 포함된 성문까지의 거리 평균값보다 작다고 가정한다. 전자 장치(100)는 최종적으로 제1 클러스터(2001)에 대한 품질 지수(Qc1)를 (d(p1,c1)_c2-Ac1)/( d(p1,c1)_c2)으로 획득할 수 있다.
여기서, 제1 클러스터(2001)의 중심값(p1)로부터 제1 클러스터(2001)에 포함된 성문까지의 거리 평균값(Ac1)이 작을수록(0에 가까울 수록) 제1 클러스터(2001)의 품질 지수(Qc1)는 1에 가까울 수 있다.
또한, 제1 클러스터(2001)의 중심값(p1)로부터 제1 클러스터(2001)에 포함된 성문까지의 거리 평균값(Ac1)이 커질수록 제1 클러스터(2001)의 품질 지수(Qc1)는 0에 가까울 수 있다.
여기서, 제1 클러스터(2001)의 중심값(p1)로부터 제1 클러스터(2001)에 포함된 성문까지의 거리 평균값(Ac1)이 커진다는 의미는 제1 클러스터(2001)의 중심값(p1)로부터 제2 클러스터(2002)에 포함된 성문까지의 거리 평균값에 가까워지는 것을 의미할 수 있다.
결론적으로, 클러스터에 대한 품질 지수는 1에 가까울수록 클러스터에 포함된 성문이 밀집되어 있는 형태일 수 있다. 전자 장치(100)는 특정 클러스터에 대한 품질 지수가 1에 가까울수록 더 좋은 품질인 것으로 식별할 수 있다.
또한, 전자 장치(100)는 특정 클러스터에 대한 품질 지수가 기 결정된 임계값보다 작으면, 특정 클러스터에 대한 품질이 좋지 않다고 식별하고 사용자 인식 모듈을 업데이트하는 것으로 결정할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치 및 디스플레이 장치 중 적어도 하나의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100: 전자 장치 110: 메모리
120: 프로세서 1002: 서버

Claims (30)

  1. 기 등록된 적어도 하나의 성문 및 상기 기 등록된 적어도 하나의 성문을 포함하는 제1 성문 클러스터를 저장하는 메모리; 및
    사용자 인식 명령이 수신되면, 상기 사용자 인식 명령이 수신된 시간 정보를 획득하고,
    상기 획득된 시간 정보에 기초하여 상기 제1 성문 클러스터에 포함된 상기 기 등록된 적어도 하나의 성문을 변경하고,
    상기 변경된 적어도 하나의 성문에 기초하여 제2 성문 클러스터를 생성하고,
    사용자의 발화 음성이 수신되면, 상기 제1 성문 클러스터 및 상기 제2 성문 클러스터에 기초하여 상기 수신된 사용자의 발화 음성에 대한 사용자 인식을 수행하는 프로세서;를 포함하는, 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 사용자 인식이 성공하면, 상기 수신된 사용자의 발화 음성에 기초하여 상기 제2 성문 클러스터를 업데이트하는, 전자 장치.
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 사용자 인식이 성공하면, 외부 장치로부터 사용자 활동 정보 또는 사용자 신체 정보 중 적어도 하나를 수신하고,
    상기 수신된 사용자 활동 정보 또는 사용자 신체 정보 중 적어도 하나에 기초하여 상기 제2 성문 클러스터를 업데이트하는, 전자 장치.
  4. 제2항에 있어서,
    상기 프로세서는,
    상기 사용자 인식이 실패하면, 상기 사용자의 권한을 검증하고,
    상기 사용자의 권한이 검증되면, 상기 수신된 사용자의 발화 음성에 기초하여 사용자의 건강 상태를 식별하고,
    상기 식별된 사용자의 건강 상태에 기초하여 상기 제2 성문 클러스터를 업데이트하는, 전자 장치.
  5. 제1항에 있어서,
    상기 프로세서는,
    상기 수신된 발화 음성에서 음성 특징을 획득하고,
    상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 사용자 인식이 실패한 것으로 결정하고 상기 사용자의 권한을 검증하고,
    상기 사용자의 권한이 검증되면, 상기 획득된 음성 특징에 기초하여 상기 제2 성문 클러스터를 업데이트하고,
    상기 업데이트된 제2 성문 클러스터에 기초하여 사용자 인식을 수행하는, 전자 장치.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 획득된 음성 특징에 대응되는 컨텍스트를 식별하고,
    상기 식별된 컨텍스트에 대응되는 음성 템플릿을 식별하고,
    상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 상기 획득된 음성 특징 및 상기 식별된 음성 템플릿에 기초하여 상기 사용자의 권한을 검증하고,
    상기 사용자의 권한이 검증되면, 상기 획득된 음성 특징, 상기 식별된 컨텍스트, 상기 식별된 음성 템플릿 또는 상기 기 등록된 적어도 하나의 성문 중 상기 사용자에 대응되는 성문 중 적어도 하나에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득하고,
    상기 획득된 클러스터 구성 정보에 기초하여 상기 제2 성문 클러스터를 업데이트하는, 전자 장치.
  7. 제5항에 있어서,
    상기 프로세서는,
    상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 상기 수신된 발화 음성 이외의 파라미터를 획득하고,
    상기 획득된 파라미터에 기초하여 상기 사용자의 권한을 검증하고,
    상기 사용자의 권한이 검증되면, 상기 획득된 음성 특징 또는 상기 기 등록된 적어도 하나의 성문 중 상기 사용자에 대응되는 성문 중 적어도 하나에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득하고,
    상기 획득된 클러스터 구성 정보에 기초하여 상기 제2 성문 클러스터를 업데이트하는, 전자 장치.
  8. 제7항에 있어서,
    상기 파라미터는,
    상기 전자 장치에서 수행되는 사용자의 조작에 대응되는 동작 파라미터, 외부 장치에서 수행되는 사용자의 조작에 대응되는 동작 파라미터, 상기 사용자에 대응되는 생체 측정 파라미터 또는 상기 사용자가 상기 전자 장치에 액세스하는 시간 파라미터 중 적어도 하나를 포함하는, 전자 장치.
  9. 제5항에 있어서,
    상기 사용자가 발화한 발화 음성을 수신하는 음향 센서;를 더 포함하고,
    상기 프로세서는,
    상기 수신된 발화 음성을 음성 프로세싱 기준에 기초하여 피치(pitch), 톤(tone), 데시벨 또는 주파수 중 적어도 하나로 분해하는, 전자 장치.
  10. 제5항에 있어서,
    상기 프로세서는,
    상기 획득된 음성 특징에 기초하여 상기 발화 음성에 대응되는 발화 성문을 획득하고,
    상기 획득된 발화 성문과 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과의 유사도값을 획득하고,
    상기 획득된 유사도값이 임계값 이하면, 상기 사용자 인식이 실패한 것으로 결정하고,
    상기 획득된 유사도값이 임계값을 초과하면, 상기 사용자 인식이 성공한 것으로 결정하고,
    상기 기 등록된 적어도 하나의 성문은 사용자 식별 정보이며,
    상기 기 등록된 적어도 하나의 성문은 상기 제1 성문 클러스터에 포함될 수 있으며,
    상기 제1 성문 클러스터는 기 결정된 중앙값 및 임계값을 포함하는 클러스터 구성 정보를 포함하는, 전자 장치.
  11. 제5항에 있어서,
    상기 프로세서는,
    상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 센서로부터 획득되는 센싱 데이터 또는 사용자 인터페이스를 통해 획득되는 입력 데이터에 기초하여 상기 사용자의 권한을 검증하는, 전자 장치.
  12. 제5항에 있어서,
    상기 메모리는
    적어도 하나의 음성 템플릿을 포함하는 적어도 하나의 음성 가변성 식별자(클러스터 ID)를 저장하고,
    상기 프로세서는,
    상기 획득된 음성 특징에 기초하여 상기 발화 음성에 대응되는 발화 성문을 획득하고,
    상기 획득된 발화 성문과 상기 적어도 하나의 음성 템플릿을 비교하여, 상기 발화 성문에 대응되는 음성 가변성 식별자를 식별하고,
    상기 식별된 음성 가변성 식별자에 기초하여 상기 발화 성문에 대응되는 컨텍스트를 식별하고,
    상기 컨텍스트는,
    취한 상태, 아픈 상태, 피곤한 상태, 기상 상태, 외치는 상태, 중얼거리는 상태, 속삭이는 상태, 흥분 상태, 목이 막힌 상태, 흥얼거리는 상태, 활기찬 상태, 익살스러운 상태 중 적어도 하나의 상태를 포함하는, 전자 장치.
  13. 제10항에 있어서,
    상기 프로세서는,
    상기 발화 성문을 기 결정된 방법으로 임베딩하여 임베딩값을 획득하고,
    상기 획득된 임베딩값과 상기 제1 성문 클러스터의 제1 중심값 사이의 차이값이 제1 임계값을 초과하고 상기 획득된 임베딩값과 상기 제2 성문 클러스터의 제2 중심값사이의 차이값이 제2 임계값을 초과하면, 사용자 인식이 실패한 것으로 결정하고 사용자의 권한을 검증하고,
  14. 제13항에 있어서,
    상기 프로세서는,
    상기 사용자의 권한이 검증되면, 상기 발화 성문에 대응되는 제3 중심값 및 제3 임계값을 획득하고,
    상기 제1 중심값, 상기 제1 임계값, 상기 제2 중심값, 상기 제2 임계값, 상기 제3 중심값 및 상기 제3 임계값에 기초하여 제4 중심값 및 제4 임계값을 포함하는 클러스터 구성 정보를 획득하고,
    상기 획득된 클러스터 구성 정보에 기초하여 상기 제2 성문 클러스터를 업데이트하는, 전자 장치.
  15. 제14항에 있어서,
    상기 프로세서는,
    상기 획득된 임베딩값과 상기 제1 성문 클러스터의 제1 중심값 사이의 차이값이 제5 임계값을 초과하고 상기 획득된 임베딩값과 상기 제2 성문 클러스터의 제2 중심값 사이의 차이값이 제5 임계값을 초과하면, 상기 획득된 제3 중심값 및 제3 임계값에 기초하여 제3 성문 클러스터를 생성하고,
    상기 생성된 제3 성문 클러스터를 추가 등록하는, 전자 장치.
  16. 기 등록된 적어도 하나의 성문 및 상기 기 등록된 적어도 하나의 성문을 포함하는 제1 성문 클러스터를 저장하는 전자 장치의 제어 방법에 있어서,
    사용자 인식 명령이 수신되면, 상기 사용자 인식 명령이 수신된 시간 정보를 획득하는 단계;
    상기 획득된 시간 정보에 기초하여 상기 제1 성문 클러스터에 포함된 상기 기 등록된 적어도 하나의 성문을 변경하는 단계;
    상기 변경된 적어도 하나의 성문에 기초하여 제2 성문 클러스터를 생성하는 단계; 및
    사용자의 발화 음성이 수신되면, 상기 제1 성문 클러스터 및 상기 제2 성문 클러스터에 기초하여 상기 수신된 사용자의 발화 음성에 대한 사용자 인식을 수행하는 단계;를 포함하는, 제어 방법.
  17. 제16항에 있어서,
    상기 제어 방법은,
    상기 사용자 인식이 성공하면, 상기 수신된 사용자의 발화 음성에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계;를 더 포함하는, 제어 방법.
  18. 제16항에 있어서,
    상기 제어 방법은,
    상기 사용자 인식이 성공하면, 외부 장치로부터 사용자 활동 정보 또는 사용자 신체 정보 중 적어도 하나를 수신하는 단계; 및
    상기 수신된 사용자 활동 정보 또는 사용자 신체 정보 중 적어도 하나에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계;를 더 포함하는, 제어 방법.
  19. 제17항에 있어서,
    상기 제어 방법은,
    상기 사용자 인식이 실패하면, 상기 사용자의 권한을 검증하는 단계;
    상기 사용자의 권한이 검증되면, 상기 수신된 사용자의 발화 음성에 기초하여 사용자의 건강 상태를 식별하는 단계; 및
    상기 식별된 사용자의 건강 상태에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계;를 더 포함하는, 제어 방법.
  20. 제16항에 있어서
    상기 제어 방법은,
    상기 수신된 발화 음성에서 음성 특징을 획득하는 단계;
    상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 사용자 인식이 실패한 것으로 결정하고 상기 사용자의 권한을 검증하는 단계;
    상기 사용자의 권한이 검증되면, 상기 획득된 음성 특징에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계; 및
    상기 업데이트된 제2 성문 클러스터에 기초하여 사용자 인식을 수행하는 단계;를 더 포함하는, 제어 방법.
  21. 제20항에 있어서,
    상기 제어 방법은,
    상기 획득된 음성 특징에 대응되는 컨텍스트를 식별하는 단계;
    상기 식별된 컨텍스트에 대응되는 음성 템플릿을 식별하는 단계;
    상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 상기 획득된 음성 특징 및 상기 식별된 음성 템플릿에 기초하여 상기 사용자의 권한을 검증하는 단계;
    상기 사용자의 권한이 검증되면, 상기 획득된 음성 특징, 상기 식별된 컨텍스트, 상기 식별된 음성 템플릿 또는 상기 기 등록된 적어도 하나의 성문 중 상기 사용자에 대응되는 성문 중 적어도 하나에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득하는 단계; 및
    상기 획득된 클러스터 구성 정보에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계;를 더 포함하는, 제어 방법.
  22. 제20항에 있어서,
    상기 제어 방법은,
    상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 상기 수신된 발화 음성 이외의 파라미터를 획득하는 단계;
    상기 획득된 파라미터에 기초하여 상기 사용자의 권한을 검증하는 단계;
    상기 사용자의 권한이 검증되면, 상기 획득된 음성 특징 또는 상기 기 등록된 적어도 하나의 성문 중 상기 사용자에 대응되는 성문 중 적어도 하나에 기초하여 중심값 및 임계값을 포함하는 클러스터 구성 정보를 획득하는 단계; 및
    상기 획득된 클러스터 구성 정보에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계;를 더 포함하는, 제어 방법.
  23. 제22항에 있어서,
    상기 파라미터는,
    상기 전자 장치에서 수행되는 사용자의 조작에 대응되는 동작 파라미터, 외부 장치에서 수행되는 사용자의 조작에 대응되는 동작 파라미터, 상기 사용자에 대응되는 생체 측정 파라미터 또는 상기 사용자가 상기 전자 장치에 액세스하는 시간 파라미터 중 적어도 하나를 포함하는, 제어 방법.
  24. 제20항에 있어서,
    상기 제어 방법은,
    상기 사용자가 발화한 발화 음성을 수신하는 단계; 및
    상기 수신된 발화 음성을 음성 프로세싱 기준에 기초하여 피치(pitch), 톤(tone), 데시벨 또는 주파수 중 적어도 하나로 분해하는 단계;를 더 포함하는, 제어 방법.
  25. 제20항에 있어서,
    상기 제어 방법은,
    상기 획득된 음성 특징에 기초하여 상기 발화 음성에 대응되는 발화 성문을 획득하는 단계;
    상기 획득된 발화 성문과 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과의 유사도값을 획득하는 단계;
    상기 획득된 유사도값이 임계값 이하면, 상기 사용자 인식이 실패한 것으로 결정하는 단계; 및
    상기 획득된 유사도값이 임계값을 초과하면, 상기 사용자 인식이 성공한 것으로 결정하는 단계;를 더 포함하고,
    상기 기 등록된 적어도 하나의 성문은 사용자 식별 정보이며,
    상기 기 등록된 적어도 하나의 성문은 상기 제1 성문 클러스터에 포함될 수 있으며,
    상기 제1 성문 클러스터는 기 결정된 중앙값 및 임계값을 포함하는 클러스터 구성 정보를 포함하는, 제어 방법.
  26. 제20항에 있어서,
    상기 제어 방법은,
    상기 획득된 음성 특징이 상기 기 등록된 적어도 하나의 성문 및 상기 변경된 적어도 하나의 성문과 일치하지 않으면, 센서로부터 획득되는 센싱 데이터 또는 사용자 인터페이스를 통해 획득되는 입력 데이터에 기초하여 상기 사용자의 권한을 검증하는 단계;를 더 포함하는, 제어 방법.
  27. 제20항에 있어서,
    상기 전자 장치는 적어도 하나의 음성 템플릿을 포함하는 적어도 하나의 음성 가변성 식별자(클러스터 ID)를 저장하고,
    상기 제어 방법은,
    상기 획득된 음성 특징에 기초하여 상기 발화 음성에 대응되는 발화 성문을 획득하는 단계;
    상기 획득된 발화 성문과 상기 적어도 하나의 음성 템플릿을 비교하여, 상기 발화 성문에 대응되는 음성 가변성 식별자를 식별하는 단계; 및
    상기 식별된 음성 가변성 식별자에 기초하여 상기 발화 성문에 대응되는 컨텍스트를 식별하는 단계;를 더 포함하고,
    상기 컨텍스트는,
    취한 상태, 아픈 상태, 피곤한 상태, 기상 상태, 외치는 상태, 중얼거리는 상태, 속삭이는 상태, 흥분 상태, 목이 막힌 상태, 흥얼거리는 상태, 활기찬 상태, 익살스러운 상태 중 적어도 하나의 상태를 포함하는, 제어 방법.
  28. 제25항에 있어서,
    상기 제어 방법은,
    상기 발화 성문을 기 결정된 방법으로 임베딩하여 임베딩값을 획득하는 단계; 및
    상기 획득된 임베딩값과 상기 제1 성문 클러스터의 제1 중심값 사이의 차이값이 제1 임계값을 초과하고 상기 획득된 임베딩값과 상기 제2 성문 클러스터의 제2 중심값사이의 차이값이 제2 임계값을 초과하면, 사용자 인식이 실패한 것으로 결정하고 사용자의 권한을 검증하는 단계;를 더 포함하는, 제어 방법.
  29. 제28항에 있어서,
    상기 제어 방법은,
    상기 사용자의 권한이 검증되면, 상기 발화 성문에 대응되는 제3 중심값 및 제3 임계값을 획득하는 단계;
    상기 제1 중심값, 상기 제1 임계값, 상기 제2 중심값, 상기 제2 임계값, 상기 제3 중심값 및 상기 제3 임계값에 기초하여 제4 중심값 및 제4 임계값을 포함하는 클러스터 구성 정보를 획득하는 단계; 및
    상기 획득된 클러스터 구성 정보에 기초하여 상기 제2 성문 클러스터를 업데이트하는 단계;를 더 포함하는, 제어 방법.
  30. 제29항에 있어서,
    상기 제어 방법은,
    상기 획득된 임베딩값과 상기 제1 성문 클러스터의 제1 중심값 사이의 차이값이 제5 임계값을 초과하고 상기 획득된 임베딩값과 상기 제2 성문 클러스터의 제2 중심값 사이의 차이값이 제5 임계값을 초과하면, 상기 획득된 제3 중심값 및 제3 임계값에 기초하여 제3 성문 클러스터를 생성하는 단계; 및
    상기 생성된 제3 성문 클러스터를 추가 등록하는 단계;를 포함하는, 제어 방법.

KR1020200133183A 2020-06-15 2020-10-15 전자 장치 및 그 제어 방법 KR20210155321A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/158,669 US11664033B2 (en) 2020-06-15 2021-01-26 Electronic apparatus and controlling method thereof
EP21824961.3A EP4082007B1 (en) 2020-06-15 2021-01-27 Electronic apparatus and controlling method thereof
PCT/KR2021/001065 WO2021256652A1 (en) 2020-06-15 2021-01-27 Electronic apparatus and controlling method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN202011024998 2020-06-15
IN202011024998 2020-06-15

Publications (1)

Publication Number Publication Date
KR20210155321A true KR20210155321A (ko) 2021-12-22

Family

ID=79164394

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200133183A KR20210155321A (ko) 2020-06-15 2020-10-15 전자 장치 및 그 제어 방법

Country Status (1)

Country Link
KR (1) KR20210155321A (ko)

Similar Documents

Publication Publication Date Title
EP4082007B1 (en) Electronic apparatus and controlling method thereof
US11978440B2 (en) Wakeword detection
CN110770772B (zh) 被配置为自动定制动作组的虚拟助手
US10438595B2 (en) Speaker identification and unsupervised speaker adaptation techniques
EP3525205B1 (en) Electronic device and method of performing function of electronic device
US10467509B2 (en) Computationally-efficient human-identifying smart assistant computer
US11762494B2 (en) Systems and methods for identifying users of devices and customizing devices to users
US11790912B2 (en) Phoneme recognizer customizable keyword spotting system with keyword adaptation
JP2021533397A (ja) 話者埋め込みと訓練された生成モデルとを使用する話者ダイアライゼーション
US11302325B2 (en) Automatic dialogue design
CN112840313B (zh) 电子设备及其控制方法
US11514900B1 (en) Wakeword detection
US11568878B2 (en) Voice shortcut detection with speaker verification
US11776550B2 (en) Device operation based on dynamic classifier
US10923113B1 (en) Speechlet recommendation based on updating a confidence value
US11893999B1 (en) Speech based user recognition
KR20210155321A (ko) 전자 장치 및 그 제어 방법
WO2020087534A1 (en) Generating response in conversation
US11769496B1 (en) Predictive deletion of user input
CN113626788A (zh) 数据处理方法、系统及智能安防设备、存储介质
JP2021047507A (ja) 通知システム、通知制御装置、通知制御方法、及び通知制御プログラム

Legal Events

Date Code Title Description
A201 Request for examination