KR20190118995A - 음성 처리 방법 및 음성 처리 장치 - Google Patents

음성 처리 방법 및 음성 처리 장치 Download PDF

Info

Publication number
KR20190118995A
KR20190118995A KR1020190121831A KR20190121831A KR20190118995A KR 20190118995 A KR20190118995 A KR 20190118995A KR 1020190121831 A KR1020190121831 A KR 1020190121831A KR 20190121831 A KR20190121831 A KR 20190121831A KR 20190118995 A KR20190118995 A KR 20190118995A
Authority
KR
South Korea
Prior art keywords
user
voice
spoken
slot
text
Prior art date
Application number
KR1020190121831A
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 KR1020190121831A priority Critical patent/KR20190118995A/ko
Publication of KR20190118995A publication Critical patent/KR20190118995A/ko
Priority to US16/695,094 priority patent/US11386895B2/en

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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • 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/02Feature extraction for speech recognition; Selection of recognition unit
    • 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
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • 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/225Feedback of the input speech

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Probability & Statistics with Applications (AREA)
  • Machine Translation (AREA)

Abstract

탑재된 인공지능(artificial intelligence, AI) 알고리즘 및/또는 기계학습(machine learning) 알고리즘을 실행하여 음성 처리를 수행함으로써 5G 통신 환경에서 음성 처리 장치와 사용자 단말기와 서버가 통신할 수 있는 음성 처리 방법 및 음성 처리 장치가 개시된다. 본 발명의 일 실시 예에 따른 음성 처리 방법은, 사용자의 발화 음성을 사용자 발화 텍스트로 변환하는 단계와, 사용자 발화 텍스트에 대하여 문법적 분석 또는 의미적 분석을 수행하여, 사용자 발화 텍스트의 도메인, 의도 및 하나 이상의 개체명을 탐색하는 단계와, 도메인과, 의도와, 개체명에 대한 탐색 결과에 대응하여 사용자의 발화 음성이 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단하는 단계와, 사용자의 발화 음성이 불완전한 발화 음성인 경우, 쿼리 발화 음성을 생성하여 사용자에게 피드백 하는 단계와, 쿼리 발화 음성에 대응하는 사용자의 응답 발화 음성을 수신하여 완전한 발화 음성을 완성하는 단계를 포함한다. 본 발명에 의하면, 사용자로부터 불완전한 발화 음성을 수신한 경우, 완전한 발화 음성으로 완성하여, 복수의 전자 디바이스 중 어느 한 디바이스를 결정하고 동작시킴으로써 신속하고 정확한 음성 인식 처리를 수행할 수 있다.

Description

음성 처리 방법 및 음성 처리 장치{SPEECH PROCESSING METHOD AND APPARATUS THEREFOR}
본 발명은 음성 처리 방법 및 음성 처리 장치에 관한 것으로, 더욱 상세하게는 사용자의 발화 음성에 포함된 음성 명령어를 복수의 전자 디바이스가 처리할 수 있을 경우, 사용자에게 피드백 한 쿼리 발화 음성에 대응하는 응답 발화 음성을 수신하여, 동작시킬 어느 한 전자 디바이스를 결정하고 동작시키는 음성 처리 방법 및 음성 처리 장치에 관한 것이다.
기술이 발달함에 따라 최근 많은 분야에서 음성 인식 기술을 적용한 각종 서비스들이 소개되고 있다. 음성 인식 기술은 사람이 발성하는 음성을 이해하여 컴퓨터가 다룰 수 있는 문자 정보로 변환하는 일련의 과정이라 할 수 있으며, 음성 인식 기술을 이용하는 음성 인식 서비스는 사용자의 음성을 인식하고 이에 해당하는 적합한 서비스를 제공하는 일련의 과정을 포함할 수 있다
선행기술 1은 대화 상대와 대화하기 위한 기능을 가지는 음성 대화 장치에 있어서, 대화 상대의 발화를 음성 인식하는 음성 인식 수단과, 음성 인식 수단의 인식 결과에 따라, 대화 상대와의 대화를 제어하는 대화 제어 수단과, 대화 상대의 얼굴을 화상 인식하는 화상 인식 수단과, 화상 인식 수단의 인식 결과 및 음성 인식 수단의 인식 결과의 쌍방 또는 일방에 따라, 대화 상대의 존재를 추적하는 트래킹 제어 수단을 설치하고, 대화 제어 수단은 트래킹 제어 수단에 의한 추적에 맞춰, 대화를 계속하도록 제어하는 음성 대화 장치 및 방법 및 로봇 장치를 개시하고 있다.
선행기술 2는사용자에 관한 인물 속성 및 그 인물 속성의 신뢰도 중 적어도 하나에 기초하여 사용자와의 친밀도 높은 대화 서비스를 제공하는 자율 행동 로봇을 이용하여 대화 서비스를 제공하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체를 개시하고 있다.
상술한 선행기술 1 및 선행기술 2는 대화 상대와 원활하게 음성 대화를 수행할 수 있도록 하는 내용을 개시하고 있을 뿐, 사용자의 발화 음성에 포함된 음성 명령어를 여러 전자 디바이스가 처리할 수 있을 경우, 동작시킬 전자 디바이스의 결정이 불가능한 문제점이 있다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
선행기술 1: 한국 등록특허공보 제10-1057705호(2011.08.11) 선행기술 2: 한국 등록특허공보 제10-1985793호(2019.05.29)
본 발명의 일 과제는, 사용자의 발화 음성에 포함된 음성 명령어를 복수의 전자 디바이스가 처리할 수 있을 경우, 동작시킬 어느 한 전자 디바이스의 결정이 불가능한 종래 기술의 문제점을 해결하는 것이다.
본 발명의 일 과제는, 사용자로부터 불완전한 발화 음성을 수신한 경우, 사용자에게 피드백 한 쿼리 발화 음성에 대응하는 응답 발화 음성을 수신하여, 완전한 발화 음성으로 완성하는데 있다.
본 발명의 일 과제는, 사용자로부터 불완전한 발화 음성을 수신한 경우, 사용자에게 피드백 한 쿼리 발화 음성에 대응하는 응답 발화 음성을 수신하여, 완전한 발화 음성으로 완성하여, 복수의 전자 디바이스 중 어느 한 디바이스를 결정하고 동작시키는데 있다.
본 발명의 일 과제는, 사용자의 발화 음성에 포함된 음성 명령어를 복수의 전자 디바이스가 처리할 수 있을 경우, 동작시킬 어느 한 전자 디바이스의 결정이 불가능한 종래 기술의 문제점을 최적의 프로세스 자원을 사용하면서 해결하는 것이다.
본 발명의 일 실시 예에 따른 음성 처리 방법은, 사용자의 발화 음성에 포함된 음성 명령어를 복수의 전자 디바이스가 처리할 수 있을 경우, 사용자에게 피드백 한 쿼리 발화 음성에 대응하는 응답 발화 음성을 수신하여, 동작시킬 어느 한 전자 디바이스를 결정하고 동작시키는 단계를 포함할 수 있다.
구체적으로 본 발명의 일 실시 예에 따른 음성 처리 방법은, 음성 명령어를 포함하는 사용자의 발화 음성을 사용자 발화 텍스트로 변환하는 단계와, 사용자 발화 텍스트에 대하여 문법적 분석 또는 의미적 분석을 수행하여, 사용자 발화 텍스트가 속하는 도메인(domain), 사용자 발화 텍스트가 가지는 의도(intent)를 탐색하고, 사용자 발화 텍스트가 포함하는 개체명 인식의 결과로 하나 이상의 개체명(named entity)을 탐색하는 단계와, 도메인과, 의도와, 개체명에 대한 탐색 결과에 대응하여 사용자의 발화 음성이 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단하는 단계와, 사용자의 발화 음성이 불완전한 발화 음성인 경우, 불완전한 발화 음성을 완전한 발화 음성으로 완성하기 위한 정보를 요구하는 쿼리 발화 음성을 생성하여 사용자에게 피드백 하는 단계와, 쿼리 발화 음성에 대응하는 사용자의 응답 발화 음성을 수신하여 완전한 발화 음성을 완성하는 단계를 포함할 수 있다.
본 실시 예에 따른 음성 처리 방법을 통하여, 사용자로부터 불완전한 발화 음성을 수신한 경우, 사용자에게 피드백 한 쿼리 발화 음성에 대응하는 응답 발화 음성을 수신하여, 완전한 발화 음성으로 완성하여, 복수의 전자 디바이스 중 어느 한 디바이스를 결정하고 동작시킴으로써 신속하고 정확한 음성 인식 처리를 수행할 수 있다.
또한, 변환하는 단계는, 복수의 전자 디바이스 중 적어도 어느 하나의 전자 디바이스의 동작을 지시하는 음성 명령어를 포함하는 사용자의 발화 음성을 사용자 발화 텍스트로 변환하는 단계를 포함할 수 있다.
또한, 탐색하는 단계는, 사용자가 동작시키려고 하는 전자 디바이스의 종류를 지정하는 도메인과, 전자 디바이스를 어떻게 동작시킬 것인지를 나타내는 의도와, 사용자 발화 텍스트에 나타나는 고유한 의미를 가지는 명사 또는 숫자를 포함하는 개체명을 탐색하는 단계를 포함할 수 있다.
또한, 판단하는 단계는, 사용자 발화 텍스트로부터 도메인과 관련된 제1 슬롯과, 의도와 관련된 제2 슬롯과, 수량 개체명과 관련된 제3 슬롯을 포함하는 필수 슬롯을 결정하는 단계와, 사용자 발화 텍스트 중 필수 슬롯이 개체명으로 모두 채워진 경우 사용자의 발화 음성을 완전한 발화 음성으로 판단하는 단계와, 사용자 발화 텍스트 중 개체명이 누락된 필수 슬롯이 존재하는 경우, 사용자의 발화 음성을 불완전한 발화 음성으로 판단하는 단계를 포함할 수 있다.
또한, 피드백 하는 단계는, 도메인 및 의도에 따라 사용자 명령 텍스트에서 필요한 슬롯과, 필요한 슬롯에 대응하여 요청해야 할 쿼리 텍스트를 포함하는 기구축된 상태 테이블에 기초하여, 사용자 발화 텍스트에서 필요한 슬롯 중 개체명이 누락된 슬롯을 판단하는 단계와, 상태 테이블에 기초하여 누락된 슬롯에 대응하는 쿼리 텍스트를 생성하는 단계와, 생성한 쿼리 텍스트를 쿼리 발화 음성으로 변환하여 사용자에게 피드백 하는 단계를 포함할 수 있다.
또한, 본 실시 예에 따른 음성 처리 방법에서, 사용자 발화 텍스트에서 필요한 슬롯 중 제1 슬롯은 도메인에 관련되고, 사용자 발화 텍스트에서 필요한 슬롯 중 제2 슬롯은 의도에 관련되고, 사용자 발화 텍스트에서 필요한 슬롯 중 제3 슬롯은 수량 개체명과 관련되며, 개체명이 누락된 슬롯을 판단하는 단계는, 사용자 발화 텍스트에서 필요한 슬롯 중 제1 슬롯, 제2 슬롯, 제3 슬롯 순으로 개체명이 누락된 슬롯을 판단하는 단계를 포함할 수 있다.
또한, 쿼리 텍스트를 생성하는 단계는, 제1 슬롯에 개체명이 누락된 경우, 도메인과 관련한 쿼리 텍스트를 생성하는 단계와, 제1 슬롯에 개체명이 채워진 후, 제2 슬롯에 개체명이 누락된 경우, 의도와 관련한 쿼리 텍스트를 생성하는 단계와, 제2 슬롯에 개체명이 채워진 후, 제3 슬롯에 개체명이 누락된 경우, 수량 개체명이 누락된 슬롯에 관련한 쿼리 텍스트를 생성하는 단계를 포함할 수 있다.
또한, 완성하는 단계는, 쿼리 발화 음성의 피드백과 사용자의 응답 발화 음성의 수신 반복을 통하여, 개체명이 누락된 필수 슬롯을 개체명으로 채우는 단계와, 개체명이 누락된 필수 슬롯이 개체명으로 모두 채워진 경우의 사용자의 발화 음성을, 완전한 발화 음성으로 완성하는 단계를 포함할 수 있다.
또한, 본 실시 예에 따른 음성 처리 방법은, 사용자의 발화 음성이 완전한 발화 음성으로 완성되면, 완전한 발화 음성에 포함된 명령어에 대응하여 복수의 전자 디바이스 중 어느 한 전자 디바이스를 결정하고 동작시키는 단계를 더 포함할 수 있다.
본 발명의 일 실시 예에 따른 음성 처리 장치는, 하나 이상의 프로세서를 포함하는 음성 처리 장치로서, 하나 이상의 프로세서는, 음성 명령어를 포함하는 사용자의 발화 음성을 사용자 발화 텍스트로 변환하고, 사용자 발화 텍스트에 대하여 문법적 분석 또는 의미적 분석을 수행하여, 사용자 발화 텍스트가 속하는 도메인(domain), 사용자 발화 텍스트가 가지는 의도(intent)를 탐색하고, 사용자 발화 텍스트가 포함하는 개체명 인식의 결과로 하나 이상의 개체명(named entity)을 탐색하고, 도메인과, 의도와, 개체명에 대한 탐색 결과에 대응하여 사용자의 발화 음성이 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단하고, 사용자의 발화 음성이 불완전한 발화 음성인 경우, 불완전한 발화 음성을 완전한 발화 음성으로 완성하기 위한 정보를 요구하는 쿼리 발화 음성을 생성하여 사용자에게 피드백 하고, 쿼리 발화 음성에 대응하는 사용자의 응답 발화 음성을 수신하여 완전한 발화 음성을 완성하도록 구성될 수 있다.
또한, 하나 이상의 프로세서는, 사용자 발화 텍스트로 변환 시에, 복수의 전자 디바이스 중 적어도 어느 하나의 전자 디바이스의 동작을 지시하는 음성 명령어를 포함하는 사용자의 발화 음성을 사용자 발화 텍스트로 변환하도록 구성될 수 있다.
또한, 하나 이상의 프로세서는, 도메인과, 의도와, 개체명 탐색 시에, 사용자가 동작시키려고 하는 전자 디바이스의 종류를 지정하는 도메인과, 전자 디바이스를 어떻게 동작시킬 것인지를 나타내는 의도와, 사용자 발화 텍스트에 나타나는 고유한 의미를 가지는 명사 또는 숫자를 포함하는 개체명을 탐색하도록 구성될 수 있다.
또한, 하나 이상의 프로세서는, 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단 시에, 사용자 발화 텍스트로부터 도메인과 관련된 제1 슬롯과, 의도와 관련된 제2 슬롯과, 수량 개체명과 관련된 제3 슬롯을 포함하는 필수 슬롯을 결정하고, 사용자 발화 텍스트 중 필수 슬롯이 개체명으로 모두 채워진 경우 사용자의 발화 음성을 완전한 발화 음성으로 판단하고, 사용자 발화 텍스트 중 개체명이 누락된 필수 슬롯이 존재하는 경우, 사용자의 발화 음성을 불완전한 발화 음성으로 판단하도록 구성될 수 있다.
또한, 하나 이상의 프로세서는, 사용자에게 피드백 시에, 도메인 및 의도에 따라 사용자 명령 텍스트에서 필요한 슬롯과, 필요한 슬롯에 대응하여 요청해야 할 쿼리 텍스트를 포함하는 기구축된 상태 테이블에 기초하여, 사용자 발화 텍스트에서 필요한 슬롯 중 개체명이 누락된 슬롯을 판단하고, 상태 테이블에 기초하여 누락된 슬롯에 대응하는 쿼리 텍스트를 생성하고, 생성한 쿼리 텍스트를 쿼리 발화 음성으로 변환하여 사용자에게 피드백 하도록 구성될 수 있다.
또한 본 실시 예에 따른 음성 처리 장치에서, 사용자 발화 텍스트에서 필요한 슬롯 중 제1 슬롯은 도메인에 관련되고, 사용자 발화 텍스트에서 필요한 슬롯 중 제2 슬롯은 의도에 관련되고, 사용자 발화 텍스트에서 필요한 슬롯 중 제3 슬롯은 수량 개체명과 관련되며, 하나 이상의 프로세서는, 개체명이 누락된 슬롯을 판단 시에, 사용자 발화 텍스트에서 필요한 슬롯 중 제1 슬롯, 제2 슬롯, 제3 슬롯 순으로 개체명이 누락된 슬롯을 판단하도록 구성될 수 있다.
또한, 하나 이상의 프로세서는, 쿼리 텍스트를 생성 시에, 제1 슬롯에 개체명이 누락된 경우, 도메인과 관련한 쿼리 텍스트를 생성하고, 제1 슬롯에 개체명이 채워진 후, 제2 슬롯에 개체명이 누락된 경우, 의도와 관련한 쿼리 텍스트를 생성하고, 제2 슬롯에 개체명이 채워진 후, 제3 슬롯에 개체명이 누락된 경우, 수량 개체명이 누락된 슬롯에 관련한 쿼리 텍스트를 생성하도록 구성될 수 있다.
또한, 하나 이상의 프로세서는, 완전한 발화 음성을 완성 시에, 쿼리 발화 음성의 피드백과 사용자의 응답 발화 음성의 수신 반복을 통하여, 개체명이 누락된 필수 슬롯을 개체명으로 채우고, 개체명이 누락된 필수 슬롯이 개체명으로 모두 채워진 경우의 사용자의 발화 음성을, 완전한 발화 음성으로 완성하도록 구성될 수 있다.
또한, 하나 이상의 프로세서는, 사용자의 발화 음성이 완전한 발화 음성으로 완성되면, 완전한 발화 음성에 포함된 명령어에 대응하여 복수의 전자 디바이스 중 어느 한 전자 디바이스를 결정하고 동작시키도록 추가로 구성될 수 있다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램이 저장된 컴퓨터로 판독 가능한 기록매체가 더 제공될 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 발명에 의하면, 사용자로부터 불완전한 발화 음성을 수신한 경우, 사용자에게 피드백 한 쿼리 발화 음성에 대응하는 응답 발화 음성을 수신하여, 완전한 발화 음성으로 완성함으로써 음성 인식 성능을 향상시킬 수 있다.
또한, 사용자로부터 불완전한 발화 음성을 수신한 경우, 사용자에게 피드백 한 쿼리 발화 음성에 대응하는 응답 발화 음성을 수신하여, 완전한 발화 음성으로 완성하여, 복수의 전자 디바이스 중 어느 한 디바이스를 결정하고 동작시킴으로써 신속하고 정확한 음성 인식 처리를 수행할 수 있다.
또한, 음성 처리 장치 자체는 대량 생산된 획일적인 제품이지만, 사용자는 음성 처리 장치를 개인화된 장치로 인식하므로 사용자 맞춤형 제품의 효과를 낼 수 있다.
또한, 음성 인식 처리를 통한 여러 가지 서비스를 제공함에 있어서 사용자의 만족도를 높일 수 있으며, 신속하고 정확한 음성 인식 처리를 수행할 수 있다.
또한, 최적의 프로세서 자원만을 사용하여 사용자의 발화 음성에 포함된 음성 명령어를 복수의 전자 디바이스가 처리할 수 있을 경우, 어느 한 전자 디바이스의 결정하고 동작시킴으로써 음성 처리 장치의 전력 효율을 향상시킬 수 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시 예에 따른 음성 처리 장치를 포함하는 전자 디바이스, 서버 및 이들을 서로 연결하는 네트워크를 포함하는 음성 처리 환경의 예시도이다.
도 2는 본 발명의 일 실시 예에 따른 음성 처리 장치의 개략적인 블록도이다.
도 3은 도 2의 음성 처리 장치 중 일 실시 예에 따른 정보 처리부의 개략적인 블록도이다.
도 4는 도 3 중 사용자의 불완전한 발화 음성을 완전한 발화 음성으로 완성하는 실시 예를 설명하는 예시도이다.
도 5는 도 3 중 사용자의 불완전한 발화 음성에 대한 상태 테이블 매칭을 통하여 피드백할 쿼리 텍스트를 설명하는 예시도이다.
도 6은 본 발명의 일 실시 예에 따른 음성 처리 방법을 설명하기 위한 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 설명되는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 아래에서 제시되는 실시 예들로 한정되는 것이 아니라, 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 아래에 제시되는 실시 예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
이하, 본 발명에 따른 실시 예들을 첨부된 도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 일 실시 예에 따른 음성 처리 장치를 포함하는 전자 디바이스, 서버 및 이들을 서로 연결하는 네트워크를 포함하는 음성 처리 환경의 예시도이다. 도 1을 참조하면, 음성 처리 환경(1)은, 음성 처리 장치(100)를 포함하는 전자 디바이스(200), 서버(300) 및 네트워크(400)를 포함할 수 있다. 음성 처리 장치(100)를 포함하는 전자 디바이스(200)) 및 서버(300)는 5G 통신 환경에서 서로 연결될 수 있다.
음성 처리 장치(100)는 사용자의 발화 정보를 수신하고, 인식 및 분석을 통하여 음성 인식 서비스를 제공할 수 있다. 여기서 음성 인식 서비스라 함은, 사용자의 발화 정보를 수신하여 기동어 및 발화 음성을 구별하고, 발화 음성에 대한 음성 인식 처리 결과를 사용자가 인지할 수 있도록 출력하는 것을 포함할 수 있다.
본 실시 예에서, 발화 정보는 기동어와 발화 음성을 포함할 수 있다. 기동어는 음성 처리 장치(100)의 음성 인식 기능을 활성화 시키는 특정 명령어로서, 웨이크업 워드(wake-up word)로 명명될 수 있다. 발화 정보에 기동어가 포함되어 있어야 음성 인식 기능이 활성화 될 수 있고, 발화 정보에 기동어가 포함되어 있지 않은 경우 음성 인식 기능이 비활성화(예를 들어, 슬립 모드) 상태를 유지한다. 이러한 기동어는 기설정되어 후술하는 메모리(도 2의 160)에 저장될 수 있다.
또한 발화 음성은 기동어에 의해 음성 처리 장치(100)의 음성 인식 기능이 활성화된 후에 처리되는 것으로서, 음성 처리 장치(100)가 실질적으로 처리하여 출력을 생성할 수 있는 음성 명령어를 포함할 수 있다. 예를 들어, 사용자의 발화 정보가 "하이 엘지, 에어컨을 켜줘"인 경우, 기동어는 "하이 엘지"일 수 있고, 발화 음성은 "에어컨을 켜줘"일 수 있다. 음성 처리 장치(100)는 사용자의 발화 정보로부터 기동어의 존재를 판단하고, 발화 음성을 분석하여 전자 디바이스(200)로서의 에어컨(205)을 제어할 수 있다.
본 실시 예에서 음성 처리 장치(100)는 기동어를 수신한 후 음성 인식 기능을 활성화시킨 상태에서, 사용자의 발화 음성에 포함된 음성 명령어를 복수의 전자 디바이스(200)가 처리할 수 있을 경우, 어느 한 전자 디바이스(200)를 결정하고 결정한 전자 디바이스(200)를 동작시킬 수 있다.
이를 위해 음성 처리 장치(100)는 음성 명령어를 포함하는 사용자의 발화 음성을 사용자 발화 텍스트로 변환할 수 있다. 음성 처리 장치(100)는 사용자 발화 텍스트에 대하여 문법적 분석 또는 의미적 분석을 수행하여, 사용자 발화 텍스트가 속하는 도메인(domain), 사용자 발화 텍스트가 가지는 의도를 탐색하고, 사용자 발화 텍스트가 포함하는 개체명 인식의 결과로 하나 이상의 개체명(named entity)을 탐색할 수 있다. 음성 처리 장치(100)는 도메인과, 의도와, 개체명에 대한 탐색 결과에 대응하여 사용자의 발화 음성이 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단할 수 있다. 음성 처리 장치(100)는 사용자의 발화 음성이 불완전한 발화 음성인 경우, 불완전한 발화 음성을 완전한 발화 음성으로 완성하기 위한 정보를 요구하는 쿼리 발화 음성을 생성하여 사용자에게 피드백 할 수 있다. 음성 처리 장치(100)는 쿼리 발화 음성에 대응하는 사용자의 응답 발화 음성을 수신하여 완전한 발화 음성을 완성할 수 있다. 음성 처리 장치(100)는 사용자의 발화 음성이 완전한 발화 음성으로 완성되면, 완전한 발화 음성에 포함된 명령어에 대응하여 복수의 전자 디바이스 중 어느 한 전자 디바이스를 결정하고 동작시킬 수 있다.
본 실시 예에서 음성 처리 장치(100)는 전자 디바이스(200)에 포함될 수 있다. 전자 디바이스(200)는 사용자 단말기(201), 타 전자 디바이스를 네트워크(400)에 연결시키는 허브 역할을 하는 인공지능 스피커(202), 세탁기(203), 로봇 청소기(204), 에어컨(205) 및 냉장고(206)와 같은 사물인터넷(IoT)에 해당하는 각종 디바이스를 포함할 수 있다. 다만, 전자 디바이스(200)의 예가 도 1에 묘사된 것에 한정되는 것은 아니다.
이러한 전자 디바이스(200) 중 사용자 단말기(201)는 음성 처리 장치 구동 어플리케이션 또는 음성 처리 장치 구동 사이트에 접속한 후 인증 과정을 통하여 음성 처리 장치(100)의 구동 또는 제어를 위한 서비스를 제공받을 수 있다. 본 실시 예에서 인증 과정을 마친 사용자 단말기(201)는 음성 처리 장치(100)를 구동하고, 음성 처리 장치(100)의 동작을 제어할 수 있다.
본 실시 예에서 사용자 단말기(201)는 사용자가 조작하는 데스크 탑 컴퓨터, 스마트폰, 노트북, 태블릿 PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 사용자 단말기(201)는 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 단말기 일 수 있다. 사용자 단말기(201)는 상술한 내용에 제한되지 아니하며, 웹 브라우징이 가능한 단말기는 제한 없이 차용될 수 있다.
서버(300)는 각종 인공지능 알고리즘을 적용하는데 필요한 빅데이터 및 음성 처리 장치(100)를 동작시키는 데이터를 제공하는 데이터베이스 서버일 수 있다. 그 밖에 서버(300)는 사용자 단말기(201)에 설치된 음성 처리 장치 구동 어플리케이션 또는 음성 처리 장치 구동 웹 브라우저를 이용하여 음성 처리 장치(100)의 동작을 원격에서 제어할 수 있도록 하는 웹 서버 또는 애플리케이션 서버를 포함할 수 있다.
여기서 인공 지능(artificial intelligence, AI)은, 인간의 지능으로 할 수 있는 사고, 학습, 자기계발 등을 컴퓨터가 할 수 있도록 하는 방법을 연구하는 컴퓨터 공학 및 정보기술의 한 분야로, 컴퓨터가 인간의 지능적인 행동을 모방할 수 있도록 하는 것을 의미할 수 있다.
또한, 인공지능은 그 자체로 존재하는 것이 아니라, 컴퓨터 과학의 다른 분야와 직간접으로 많은 관련을 맺고 있다. 특히 현대에는 정보기술의 여러 분야에서 인공지능적 요소를 도입하여, 그 분야의 문제 풀이에 활용하려는 시도가 매우 활발하게 이루어지고 있다.
머신 러닝(machine learning)은 인공지능의 한 분야로, 컴퓨터에 명시적인 프로그램 없이 배울 수 있는 능력을 부여하는 연구 분야를 포함할 수 있다. 구체적으로 머신 러닝은, 경험적 데이터를 기반으로 학습을 하고 예측을 수행하고 스스로의 성능을 향상시키는 시스템과 이를 위한 알고리즘을 연구하고 구축하는 기술이라 할 수 있다. 머신 러닝의 알고리즘들은 엄격하게 정해진 정적인 프로그램 명령어들을 수행하는 것이라기보다, 입력 데이터를 기반으로 예측이나 결정을 이끌어내기 위해 특정한 모델을 구축하는 방식을 취할 수 있다.
서버(300)는 음성 처리 장치(100)로부터 사용자의 발화 음성을 수신하여 발화 텍스트로 변환할 수 있다. 서버(300)는 사용자 발화 텍스트에 대하여 문법적 분석 또는 의미적 분석을 수행하여, 사용자 발화 텍스트가 속하는 도메인, 사용자 발화 텍스트가 가지는 의도를 탐색하고, 사용자 발화 텍스트가 포함하는 개체명 인식의 결과로 하나 이상의 개체명을 탐색할 수 있다. 여기서 서버(300)는 사용자 발화 텍스트에 대하여 문법적 분석 또는 의미적 분석을 수행하기 위해 머신 러닝을 알고리즘을 실행할 수 있다. 서버(300)는 도메인과, 의도와, 개체명에 대한 탐색 결과에 대응하여 사용자의 발화 음성이 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단할 수 있다. 서버(300)는 사용자의 발화 음성이 불완전한 발화 음성인 경우, 불완전한 발화 음성을 완전한 발화 음성으로 완성하기 위한 정보를 요구하는 쿼리 발화 음성을 생성할 수 있다. 서버(300)는 음성 처리 장치(100)로부터 쿼리 발화 음성에 대응하는 사용자의 응답 발화 음성을 수신하여 완전한 발화 음성을 완성할 수 있다. 본 실시 예에서 서버(300)는 상술한 바와 같은 처리 정보를 음성 처리 장치(100)로 전송할 수 있다.
음성 처리 장치(100)의 프로세싱 능력에 따라, 상술한 사용자 발화 텍스트로의 변환, 도메인과 의도와 개체명의 탐색, 사용자의 발화 음성이 완전한 발화 음성인지 또는 불완전한 발화 음성인지의 판단, 사용자의 발화 음성이 불완전한 발화 음성인 경우 쿼리 발화 음성을 생성하여 사용자에게 피드백, 사용자의 응답 발화 음성을 수신하여 완전한 발화 음성의 완성 중 적어도 일부는 음성 처리 장치(100)에 의해 수행될 수 있다.
네트워크(400)는 음성 처리 장치(100)를 포함하는 전자 디바이스(200)와, 서버(300)를 연결하는 역할을 수행할 수 있다. 이러한 네트워크(400)는 예컨대 LANs(local area networks), WANs(wide area networks), MANs(metropolitan area networks), ISDNs(integrated service digital networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 또한 네트워크(400)는 근거리 통신 및/또는 원거리 통신을 이용하여 정보를 송수신할 수 있다. 여기서 근거리 통신은 블루투스(bluetooth), RFID(radio frequency identification), 적외선 통신(IrDA, infrared data association), UWB(ultra-wideband), ZigBee, Wi-Fi (wireless fidelity) 기술을 포함할 수 있고, 원거리 통신은 CDMA(code division multiple access), FDMA(frequency division multiple access), TDMA(time division multiple access), OFDMA(orthogonal frequency division multiple access), SC-FDMA(single carrier frequency division multiple access) 기술을 포함할 수 있다.
네트워크(400)는 허브, 브리지, 라우터, 스위치 및 게이트웨이와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(400)는 인터넷과 같은 공용 네트워크 및 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 네트워크(400)에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다. 더 나아가 네트워크(400)는 사물 등 분산된 구성 요소들 간에 정보를 주고 받아 처리하는 IoT(Internet of Things, 사물인터넷) 망 및/또는 5G 통신을 지원할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 음성 처리 장치의 개략적인 블록도이다. 이하의 설명에서 도 1에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다. 도 2를 참조하면, 음성 처리 장치(100)는 통신부(110), 디스플레이부(121) 및 조작부(122)를 포함하는 사용자 인터페이스부(120), 센싱부(130), 오디오 입력부(141) 및 오디오 출력부(142)를 포함하는 오디오 처리부(140), 정보 처리부(150), 메모리(160) 및 제어부(170)를 포함할 수 있다.
통신부(110)는 네트워크(400)와 연동하여 음성 처리 장치(100) 및/또는 전자 디바이스(200) 및/또는 서버(300) 간의 송수신 신호를 패킷 데이터 형태로 제공하는 데 필요한 통신 인터페이스를 제공할 수 있다. 나아가, 통신부(110)는 전자 디바이스(200)로부터 소정의 정보 요청 신호를 수신하는 역할을 할 수 있고, 음성 처리 장치(100)가 처리한 정보를 전자 디바이스(200)로 전송하는 역할을 수행할 수 있다. 또한 통신부(110)는 전자 디바이스(200)로부터 소정의 정보 요청 신호를 서버(300)로 전송하고, 서버(300)가 처리한 응답 신호를 수신하여, 전자 디바이스(200)로 전송할 수 있다. 또한 통신부(110)는 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다.
또한, 통신부(110)는 각종 사물 지능 통신(IoT(internet of things), IoE(internet of everything), IoST(internet of small things) 등)을 지원할 수 있으며, M2M(machine to machine) 통신, V2X(vehicle to everything communication) 통신, D2D(device to device) 통신 등을 지원할 수 있다.
사용자 인터페이스부(120) 중 디스플레이부(121)는 제어부(170)의 제어 하에 음성 처리 장치(100)의 구동 상태를 디스플레이 할 수 있다. 실시 예에 따라서, 디스플레이부(121)는 터치패드와 상호 레이어 구조를 이루어 터치스크린으로 구성될 수 있다. 이 경우에, 디스플레이부(121)는 사용자의 터치에 의한 정보의 입력이 가능한 조작부(122)로도 사용될 수 있다. 이를 위해 디스플레이부(121)는 터치 인식 디스플레이 제어기 또는 이외의 다양한 입출력 제어기로 구성될 수 있다. 일 예로, 터치 인식 디스플레이 제어기는 장치와 사용자 사이에 출력 인터페이스 및 입력 인터페이스를 제공할 수 있다. 터치 인식 디스플레이 제어기는 전기 신호를 제어부(170)와 송수신할 수 있다. 또한, 터치 인식 디스플레이 제어기는 사용자에게 시각적인 출력을 표시하며, 시각적 출력은 텍스트, 그래픽, 이미지, 비디오와 이들의 조합을 포함할 수 있다. 이와 같은 디스플레이부(121)는 예를 들어 터치 인식이 가능한 OLED(organic light emitting display) 또는 LCD(liquid crystal display) 또는 LED(light emitting display)와 같은 소정의 디스플레이 부재일 수 있다.
사용자 인터페이스부(120) 중 조작부(122)는 복수의 조작 버튼(미도시)을 구비하여, 입력되는 버튼에 대응하는 신호를 제어부(170)로 전송할 수 있다. 이러한 조작부(122)는 사용자의 터치 또는 누름 조작을 인식할 수 있는 센서 또는 버튼, 스위치 구조로 구성될 수 있다. 본 실시 예에서 조작부(122)는 디스플레이부(121)에 표시되는 음성 처리 장치(100)의 구동과 관련한 각종 정보를 확인하거나, 변경하기 위해 사용자가 조작하는 조작 신호를 제어부(170)로 전송할 수 있다.
센싱부(130)는 음성 처리 장치(100)의 주변 상황을 센싱하는 각종 센서를 포함할 수 있으며, 근접센서(미도시) 및 영상센서(미도시)를 포함할 수 있다. 근접센서는 적외선 등을 활용하여 음성 처리 장치(100) 주변에 위치한 객체(예를 들어 사용자)의 위치 데이터를 획득할 수 있다. 한편, 근접센서가 획득한 사용자의 위치 데이터는 메모리(160)에 저장될 수 있다.
영상센서는 음성 처리 장치(100) 주변을 촬영할 수 있는 카메라(미도시)를 포함할 수 있으며, 촬영 효율을 위해 복수 개가 설치될 수 있다. 예를 들어, 카메라는 적어도 하나의 광학렌즈와, 광학렌즈를 통과한 광에 의해 상이 맺히는 다수개의 광다이오드(photodiode, 예를 들어, pixel)를 포함하여 구성된 이미지센서(예를 들어, CMOS image sensor)와, 광다이오드들로부터 출력된 신호를 바탕으로 영상을 구성하는 디지털 신호 처리기(DSP: digital signal processor)를 포함할 수 있다. 디지털 신호 처리기는 정지영상은 물론이고, 정지영상으로 구성된 프레임들로 이루어진 동영상을 생성할 수 있다. 한편, 영상센서로서의 카메라가 촬영하여 획득된 영상은 메모리(160)에 저장될 수 있다.
본 실시 예에서 센싱부(130)를 근접센서 및 영상센서로 한정하고 있으나, 이에 국한되지 않고, 음성 처리 장치(100)의 주변 상황을 감지할 수 있는 센서 예를 들어, 라이다 센서(Lidar sensor), 무게 감지 센서, 조도 센서(illumination sensor), 터치 센서(touch sensor), 가속도 센서(acceleration sensor), 자기 센서(magnetic sensor), 중력 센서(G-sensor), 자이로스코프 센서(gyroscope sensor), 모션 센서(motion sensor), RGB 센서, 적외선 센서(IR 센서: infrared sensor), 지문인식 센서(finger scan sensor), 초음파 센서(ultrasonic sensor), 광 센서(optical sensor), 마이크로폰(microphone), 배터리 게이지(battery gauge), 환경 센서(예를 들어, 기압계, 습도계, 온도계, 방사능 감지 센서, 열 감지 센서, 가스 감지 센서 등), 화학 센서(예를 들어, 전자 코, 헬스케어 센서, 생체 인식 센서 등) 중 적어도 하나를 포함할 수 있다. 한편, 본 실시 예에서 음성 처리 장치(100)는 이러한 센서들 중 적어도 둘 이상의 센서에서 센싱되는 정보들을 조합하여 활용할 수 있다.
오디오 처리부(140) 중 오디오 입력부(141)는 사용자의 발화 정보(예를 들어 기동어 및 발화 음성)을 입력 받아 제어부(170)로 전송할 수 있고, 제어부(170)는 사용자의 발화 정보를 정보 처리부(150)로 전송할 수 있다. 이를 위해 오디오 입력부(141)는 하나 이상의 마이크로폰(미도시)을 구비할 수 있다. 또한 사용자의 발화 음성을 더 정확하게 수신하기 위해 복수의 마이크로폰(미도시)을 구비할 수 있다. 여기서, 복수의 마이크 각각은 서로 다른 위치에 이격되어 배치될 수 있고, 수신한 사용자의 발화 음성을 전기적인 신호로 처리할 수 있다.
선택적 실시 예로 오디오 입력부(141)는 사용자의 발화 정보를 수신하는 과정에서 발생하는 노이즈를 제거하기 위한 다양한 노이즈 제거 알고리즘을 사용할 수 있다. 선택적 실시 예로 오디오 입력부(141)는 사용자의 발화 정보 수신 시에 노이즈를 제거하는 필터(미도시), 필터에서 출력되는 신호를 증폭하여 출력하는 증폭기(미도시) 등 음성 신호 처리를 위한 각종 구성 요소들을 포함할 수 있다.
오디오 처리부(140) 중 오디오 출력부(142)는 제어부(170)의 제어에 따라 경고음, 동작모드, 동작상태, 에러상태 등의 알림 메시지, 사용자의 발화 정보에 대응하는 응답정보, 사용자의 발화 음성(음성 명령어)에 대응하는 처리 결과 등을 오디오로 출력할 수 있다. 오디오 출력부(142)는 제어부(170)로부터의 전기 신호를 오디오 신호로 변환하여 출력할 수 있다. 이를 위해, 스피커 등을 구비할 수 있다.
정보 처리부(150)는 기동어를 수신한 후 음성 인식 기능을 화성화시킨 상태에서, 음성 명령어를 포함하는 사용자의 발화 음성을 사용자 발화 텍스트로 변환할 수 있다. 정보 처리부(150)는 사용자 발화 텍스트에 대하여 문법적 분석 또는 의미적 분석을 수행하여, 사용자 발화 텍스트가 속하는 도메인, 사용자 발화 텍스트가 가지는 의도를 탐색하고, 사용자 발화 텍스트가 포함하는 개체명 인식의 결과로 하나 이상의 개체명을 탐색할 수 있다. 정보 처리부(150)는 도메인과, 의도와, 개체명에 대한 탐색 결과에 대응하여 사용자의 발화 음성이 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단할 수 있다. 정보 처리부(150)는 사용자의 발화 음성이 불완전한 발화 음성인 경우, 불완전한 발화 음성을 완전한 발화 음성으로 완성하기 위한 정보를 요구하는 쿼리 발화 음성을 생성하여 사용자에게 피드백 할 수 있다. 정보 처리부(150)는 쿼리 발화 음성에 대응하는 사용자의 응답 발화 음성을 수신하여 완전한 발화 음성을 완성할 수 있다. 정보 처리부(150)는 사용자의 발화 음성이 완전한 발화 음성으로 완성되면, 완전한 발화 음성을 제어부(170)로 전송하고, 제어부(170)는 완전한 발화 음성에 포함된 명령어에 대응하여 복수의 전자 디바이스 중 어느 한 전자 디바이스를 결정하고 동작시킬 수 있다.
본 실시 예에서 정보 처리부(150)는 제어부(170)와 연계하여 학습을 수행하거나, 제어부(170)로부터 학습 결과를 수신할 수 있다. 본 실시 예에서 정보 처리부(150)는 도 2에 도시된 바와 같이 제어부(170) 외부에 구비될 수도 있고, 제어부(170) 내부에 구비되어 제어부(170)처럼 동작할 수도 있고, 도 1의 서버(300) 내부에 구비될 수도 있다. 이하 정보 처리부(150)의 상세한 내용은 도 3 내지 도 5를 참조하여 설명하기로 한다.
메모리(160)는 음성 처리 장치(100)의 동작에 필요한 각종 정보들을 저장하고, 음성 처리 장치(100)를 동작시킬 수 있는 제어 소프트웨어를 저장할 수 있는 것으로, 휘발성 또는 비휘발성 기록 매체를 포함할 수 있다. 예를 들어, 메모리(160)에는 사용자의 발화 음성으로부터 기동어의 존재를 판단하기 위한 기설정된 기동어가 저장될 수 있다. 한편, 기동어는 제조사에 의해 설정될 수 있다. 예를 들어, "하이 엘지"가 기동어로 설정될 수 있고, 사용자에 의해 설정 변경할 수 있다. 이러한 기동어는 음성 처리 장치(100)를 활성화시키기 위해 입력되는 것으로, 사용자가 발화한 기동어를 인식한 음성 처리 장치(100)는 음성 인식 활성화 상태로 전환할 수 있다.
또한, 메모리(160)는 오디오 입력부(141)를 통하여 수신되는 사용자의 발화 정보(기동어 및 발화 음성) 저장할 수 있고, 센싱부(130)가 감지한 정보를 저장할 수 있으며, 정보 처리부(150)가 처리한 정보를 저장할 수 있다.
또한 메모리(160)는 정보 처리부(150)가 실행할 명령어 예를 들어, 음성 명령어를 포함하는 사용자의 발화 음성을 사용자 발화 텍스트로 변환하는 명령어, 사용자 발화 텍스트에 대하여 문법적 분석 또는 의미적 분석을 수행하여, 사용자 발화 텍스트가 속하는 도메인, 사용자 발화 텍스트가 가지는 의도를 탐색하고, 사용자 발화 텍스트가 포함하는 개체명 인식의 결과로 하나 이상의 개체명을 탐색하는 명령어, 도메인과, 의도와, 개체명에 대한 탐색 결과에 대응하여 사용자의 발화 음성이 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단하는 명령어, 사용자의 발화 음성이 불완전한 발화 음성인 경우, 불완전한 발화 음성을 완전한 발화 음성으로 완성하기 위한 정보를 요구하는 쿼리 발화 음성을 생성하여 사용자에게 피드백 하는 명령어, 쿼리 발화 음성에 대응하는 사용자의 응답 발화 음성을 수신하여 완전한 발화 음성을 완성하는 명령어 등을 저장할 수 있다. 또한 메모리(160)에는 정보 처리부(150)가 처리하는 각종 정보를 저장할 수 있다.
여기서, 메모리(160)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 이러한 메모리(160)는 내장 메모리 및/또는 외장 메모리를 포함할 수 있으며, DRAM, SRAM, 또는 SDRAM 등과 같은 휘발성 메모리, OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, NAND 플래시 메모리, 또는 NOR 플래시 메모리 등과 같은 비휘발성 메모리, SSD. CF(compact flash) 카드, SD 카드, Micro-SD 카드, Mini-SD 카드, Xd 카드, 또는 메모리 스틱(memory stick) 등과 같은 플래시 드라이브, 또는 HDD와 같은 저장 장치를 포함할 수 있다.
여기서, 간단한 음성 인식은 음성 처리 장치(100)가 수행하고, 자연어 처리 등 고차원의 음성 인식은 서버(300)에서 수행될 수 있다. 예를 들어, 사용자가 발화한 단어가 기설정된 기동어인 경우, 음성 처리 장치(100)는 음성 명령어로서의 발화 음성을 수신하기 위한 상태로 전환할 수 있다. 이 경우에, 음성 처리 장치(100)는 기동어 음성 입력 여부까지의 음성 인식 과정만 수행하고, 이후의 발화문에 대한 음성 인식은 서버(300)를 통하여 수행할 수 있다. 음성 처리 장치(100)의 시스템 자원에는 한계가 있으므로, 복잡한 자연어 인식 및 처리는 서버(300)를 통하여 수행될 수 있다.
제어부(170)는 오디오 입력부(141)를 통하여 수신한 발화 정보를 정보 처리부(150)로 전송하고, 정보 처리부(150)로부터 음성 인식 처리 결과를 디스플레이부(121)를 통하여 시각적 정보로 제공하거나, 오디오 출력부(142)를 통하여 청각적 정보로 제공할 수 있다.
제어부(170)는 일종의 중앙처리장치로서 메모리(160)에 탑재된 제어 소프트웨어를 구동하여 음성 처리 장치(100) 전체의 동작을 제어할 수 있다. 제어부(170)는 프로세서(processor)와 같이 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령어로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
본 실시 예에서 제어부(170)는 음성 처리 장치(100)가 최적의 음성 인식 처리 결과를 출력하도록, 사용자 발화 음성에 대하여 딥러닝(Deep Learning) 등 머신 러닝(machine learning)을 수행할 수 있고, 메모리(160)는, 머신 러닝에 사용되는 데이터, 결과 데이터 등을 저장할 수 있다.
머신 러닝의 일종인 딥러닝(deep learning) 기술은 데이터를 기반으로 다단계로 깊은 수준까지 내려가 학습할 수 있다. 딥러닝은 단계를 높여갈수록 복수의 데이터들로부터 핵심적인 데이터를 추출하는 머신 러닝 알고리즘의 집합을 나타낼 수 있다.
딥러닝 구조는 인공신경망(ANN)을 포함할 수 있으며, 예를 들어 딥러닝 구조는 CNN(convolutional neural network), RNN(recurrent neural network), DBN(deep belief network) 등 심층신경망(DNN)으로 구성될 수 있다. 본 실시 예에 따른 딥러닝 구조는 공지된 다양한 구조를 이용할 수 있다. 예를 들어, 본 발명에 따른 딥러닝 구조는 CNN, RNN, DBN 등을 포함할 수 있다. RNN은, 자연어 처리 등에 많이 이용되고 있으며, 시간의 흐름에 따라 변하는 시계열 데이터(time-series data) 처리에 효과적인 구조로 매 순간마다 레이어를 쌓아올려 인공신경망 구조를 구성할 수 있다. DBN은 딥러닝 기법인 RBM(restricted boltzman machine)을 다층으로 쌓아 구성되는 딥러닝 구조를 포함할 수 있다. RBM 학습을 반복하여, 일정 수의 레이어가 되면 해당 개수의 레이어를 가지는 DBN을 구성할 수 있다. CNN은 사람이 물체를 인식할 때 물체의 기본적인 특징들을 추출되는 다음 뇌 속에서 복잡한 계산을 거쳐 그 결과를 기반으로 물체를 인식한다는 가정을 기반으로 만들어진 사람의 뇌 기능을 모사한 모델을 포함할 수 있다.
한편, 인공신경망의 학습은 주어진 입력에 대하여 원하는 출력이 나오도록 노드간 연결선의 웨이트(weight)를 조정(필요한 경우 바이어스(bias) 값도 조정)함으로써 이루어질 수 있다. 또한, 인공신경망은 학습에 의해 웨이트(weight) 값을 지속적으로 업데이트시킬 수 있다. 또한, 인공신경망의 학습에는 역전파(back propagation) 등의 방법이 사용될 수 있다.
한편, 제어부(170)에는 인공신경망(artificial neural network)이 탑재될 수 있고, 수신되는 음성 입력 신호를 입력 데이터로 하는 머신 러닝 기반의 사용자 인식 및 사용자의 음색 인식을 수행할 수 있다.
제어부(170)는 인공신경망, 예를 들어, CNN, RNN, DBN 등 심층신경망(deep neural network: DNN)을 포함될 수 있고, 심층신경망을 학습할 수 있다. 이러한 인공신경망의 머신 러닝 방법으로는 자율학습(unsupervised learning)과 지도학습(supervised learning)이 모두 사용될 수 있다. 제어부(170)는 설정에 따라 학습 후 음색 인식 인공신경망 구조를 업데이트시키도록 제어할 수 있다.
도 3은 도 2의 음성 인식 장치 중 일 실시 예에 따른 정보 처리부의 개략적인 블록도이다. 이하의 설명에서 도 1 및 도 2에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다. 도 3을 참조하면, 정보 처리부(150)는 자동 음성 인식 처리부(151), 자연어 이해 처리부(152), 대화 관리자 처리부(153), 자연어 생성 처리부(154), 텍스트-음성 변환 처리부(155) 및 제1 데이터베이스(156) 내지 제3 데이터베이스(158)를 포함할 수 있다. 선택적 실시 예로, 정보 처리부(150)는 하나 이상의 프로세서를 포함할 수 있다. 선택적 실시 예로 자동 음성 인식 처리부(151) 내지 제3 데이터베이스(158)는 하나 이상의 프로세서에 대응될 수 있다. 선택적 실시 예로, 자동 음성 인식 처리부(151) 내지 제3 데이터베이스(158)는 하나 이상의 프로세서에 의해 실행되도록 구성된 소프트웨어 구성 요소(components)에 대응될 수 있다.
자동 음성 인식 처리부(151)는 음성 명령어를 포함하는 사용자의 발화 음성을 텍스트로 변환한 사용자 발화 텍스트를 생성할 수 있다. 여기서 사용자의 발화 음성은, 사용자 입장에서 복수의 전자 디바이스(200) 중 어느 한 전자 디바이스(200)의 동작을 지시하는 음성 명령어를 포함할 수 있으나, 음성 처리 장치(100) 입장에서 복수의 전자 디바이스(200)를 동작시킬 수 있는 음성 명령어를 포함할 수 있다. 예를 들어 사용자의 발화 음성이 <켜줘>인 경우, 사용자 입장에서는 복수의 전자 디바이스(200) 중 에어컨(205)의 동작을 지시하는 음성 명령어일 수 있으나, 음성 처리 장치(100) 입장에서는 사용자 단말기(201), 세탁기(203), 로봇 청소기(204), 에어컨(205) 등을 포함하는 복수의 전자 디바이스(200)를 동작시킬 수 있는 음성 명령어일 수 있다.
본 실시 예에서 자동 음성 인식 처리부(151)는 음성 텍스트 변환(STT(speech to text)을 수행할 수 있다. 자동 음성 인식 처리부(151)는 오디오 입력부(141)를 통하여 입력된 사용자 발화 음성을 사용자 발화 텍스트로 변환할 수 있다. 본 실시 예에서, 자동 음성 인식 처리부(151)는 발화 인식부(미도시)를 포함할 수 있다. 발화 인식부는 음향(acoustic) 모델 및 언어(language) 모델을 포함할 수 있다. 예를 들어, 음향 모델은 발성에 관련된 정보를 포함할 수 있고, 언어 모델은 단위 음소 정보 및 단위 음소 정보의 조합에 대한 정보를 포함할 수 있다. 발화 인식부는 발성에 관련된 정보 및 단위 음소 정보에 대한 정보를 이용하여 사용자 발화 음성을 사용자 발화 텍스트로 변환할 수 있다. 음향 모델 및 언어 모델에 대한 정보는, 제1 데이터베이스(156) 즉, 자동 음성 인식 데이터베이스에 저장될 수 있다.
자연어 이해 처리부(152)는 사용자 발화 텍스트에 대하여, 문법적 분석(syntactic analyze) 또는 의미적 분석(semantic analyze)을 수행하여 사용자 발화 음성에 대한 도메인 및 의도를 탐색할 수 있다. 여기서, 문법적 분석은 사용자 발화 텍스트를 문법적 단위(예: 단어, 구, 형태소 등)로 나누고, 나누어진 단위가 어떤 문법적인 요소를 갖는지 파악할 수 있다. 또한 의미적 분석은 의미(semantic) 매칭, 룰(rule) 매칭, 포뮬러(formula) 매칭 등을 이용하여 수행할 수 있다. 본 실시 예에서 도메인은 사용자가 동작시키려고 하는 어느 한 전자 디바이스(200)의 종류(product)를 지정하는 정보를 포함할 수 있다. 또한 본 실시 예에서 의도는 도메인에 포함되는 전자 디바이스(200)를 어떻게 동작시킬 것인지를 나타내는 정보를 포함할 수 있다. 예를 들어, 사용자 발화 텍스트가 <에어컨의 온도를 5도 낮춰줘>인 경우, 자연어 이해 처리부(152)는 도메인으로 에어컨을, 의도로 온도 낮춤을 탐색할 수 있다.
또한 자연어 이해 처리부(152)는 사용자 발화 텍스트에 대한 개체명 인식의 결과로 하나 이상의 개체명(named entity)을 탐색할 수 있다. 개체명 인식을 위해 제2 데이터베이스(157)에 저장된 개체명 사전과 결합 단어 사전 등을 이용하여 규칙 기반의 개체명을 인식하고, 인식의 결과로 하나 이상의 개체명을 획득할 수 있다. 여기서 개체명이란 텍스트에 나타나는 고유한 의미를 가지는 명사 또는 숫자를 의미할 수 있다. 개체명은 크게 인명, 지명, 기관명과 같은 이름 표현, 날짜나 시간과 같은 시간 표현, 금액이나 퍼센트와 같은 수치 표현 등으로 구분될 수 있다. 예를 들어, 텍스트가 <에어컨 온도를 5도 더 낮춰줘>인 경우, 개체명은 에어컨, 온도, 5도를 포함할 수 있다.
또한, 자연어 이해 처리부(152)는 사용자 발화 텍스트로부터 필수 슬롯을 결정할 수 있다. 여기서 필수 슬롯이라 함은, 사용자 발화 텍스트에 대하여 음성 처리 장치(100)가 몇 개의 정보를 알아야 응답을 줄 수 있을 때, 그 몇 개의 정보를 필수 슬롯이라 할 수 있다. 본 실시 예에서 필수 슬롯은 제1 슬롯 내지 제3 슬롯을 포함할 수 있다. 제1 슬롯은 도메인과 관련된 슬롯을 포함할 수 있고, 제2 슬롯은 의도와 관련된 슬롯을 포함할 수 있고, 제3 슬롯은 수량 개체명과 관련된 슬롯을 포함할 수 있다. 예를 들어, 사용자 발화 텍스트가 <에어컨의 온도를 5도 더 낮춰줘>인 경우, 제1 슬롯은 에어컨을 포함할 수 있고, 제2 슬롯은 온도 낮춤을 포함할 수 있고, 제3 슬롯은 5도를 포함할 수 있다. 또한 예를 들어, 사용자 발화 텍스트가 <온도를 더 낮춰줘>인 경우, 제1 슬롯이 존재하지 않고, 제2 슬롯은 온도 낮춤을 포함하고, 제3 슬롯이 존재하지 않음을 알 수 있다. 여기서 필수 슬롯의 결정은 자연어 이해 처리부(152) 이외에 대화 관리자 처리부(153)에서 수행할 수도 있다.
일 실시 예로 자연어 이해 처리부(152)는 도메인 및 의도를 탐색하기 위해, 제2 데이터베이스(157) 즉, 자연어 이해 데이터베이스에 저장된 매칭 규칙을 이용할 수 있다. 자연어 이해 처리부(152)는 형태소, 구 등의 언어적 특징(예: 문법적 요소)을 이용하여 사용자 발화 텍스트로부터 추출된 단어(개체명)의 의미를 파악하고, 파악된 단어의 의미를 도메인 및 의도에 매칭시켜 사용자의 의도를 탐색할 수 있다. 예를 들어, 자연어 이해 처리부(152)는 각각의 도메인 및 의도에 사용자 발화 텍스트에서 추출된 단어(개체명)가 얼마나 포함되어 있는지를 계산하여 도메인 및 의도를 탐색할 수 있다.
일 실시 예로 자연어 이해 처리부(152)는 도메인, 의도 및 개체명을 탐색하기 위해, 통계적 모델을 활용할 수 있다. 통계적 모델은 다양한 형태의 기계 학습 모델을 참조할 수 있다. 본 실시 예에서 자연어 이해 처리부(152)는 도메인을 탐색하기 위해 도메인 분류기(domain classifier) 모델을 참조할 수 있고, 의도를 탐색하기 위해 의도 분류기(intent classifier) 모델을 참조할 수 있고, 개체명을 탐색하기 위해 개체명 인식기(named entity recognizer) 모델을 참조할 수 있다.
대화 관리자 처리부(153)는 사용자와 음성 처리 장치(100) 사이의 대화를 전반적으로 제어하며, 자동 음성 인식 처리부(151)로부터 수신한 사용자 발화 텍스트 이해 결과를 이용하여 생성할 쿼리 텍스트를 결정하거나, 사용자에게 피드백할 쿼리 텍스트 생성 시에 자연어 생성 처리부(154)가 사용자 언어로 된 언어 텍스트를 생성하도록 할 수 있다.
본 실시 예에서 대화 관리자 처리부(153)는 자연어 이해 처리부(152)가 탐색한 도메인, 의도 및 개체명을 수신하여 사용자의 발화 음성이 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단할 수 있다.
대화 관리자 처리부(153)는 사용자 발화 텍스트로부터 도메인과 관련된 제1 슬롯과, 의도와 관련된 제2 슬롯과, 수량 개체명과 관련된 제3 슬롯을 포함하는 필수 슬롯을 결정할 수 있다.
대화 관리자 처리부(153)는 사용자 발화 텍스트 중 필수 슬롯이 개체명으로 모두 채워진 경우 사용자의 발화 음성을 완전한 발화 음성으로 판단할 수 있다. 예를 들어, 사용자 발화 텍스트가 <에어컨의 온도를 5도 더 낮춰줘>인 경우, 도메인과 관련된 제1 슬롯(에어컨), 의도와 관련된 제2 슬롯(온도 낮춤), 수량 개체명과 관련된 제3 슬롯(5도)이 개체명으로 모두 채워져 있으므로, 완전한 발화 음성이라 할 수 있다.
대화 관리자 처리부(153)는 사용자 발화 텍스트 중 누락된 한 개 이상 비어 있는 필수 슬롯이 존재하는 경우, 사용자의 발화 음성을 불완전한 발화 음성으로 판단할 수 있다. 예를 들어, 사용자 발화 텍스트가 <온도를 더 낮춰줘>인 경우, 상술한 완전한 발화 음성과 비교 시에 제1 슬롯(에어컨)과 제3 슬롯(5도)이 누락되어 있다. 상술한 사용자 발화 텍스트 <온도를 더 낮춰줘>는 필수 슬롯 두 개가 누락된 불완전한 발화 음성이라 할 수 있다.
대화 관리자 처리부(153)는 사용자의 발화 음성을 불완전한 발화 음성으로 판단한 경우, 불완전한 발화 음성을 완전한 발화 음성으로 완성하기 위한 정보를 요청하는 쿼리 발화 음성을 생성하여 사용자에게 피드백 할 수 있다.
여기서 대화 관리자 처리부(153)는 쿼리 발화 음성을 생성하여 사용자에게 피드백 하기 위해, 쿼리 텍스트의 생성을 자연어 생성 처리부(154)에 요청할 수 있다. 자연어 생성 처리부(154)는 쿼리 텍스트의 생성 요청에 대응하여 쿼리 텍스트를 생성할 수 있다. 텍스트-음성 변환 처리부(155)는 쿼리 텍스트를 쿼리 발화 음성으로 변환한 후, 오디오 출력부(142)를 통하여 사용자에게 피드백할 수 있다.
본 실시 예에서 대화 관리자 처리부(153)는 제3 데이터베이스(158)에 기구축된 상태 테이블을 이용하여, 자연어 생성 처리부(154)에 쿼리 텍스트의 생성 요청을 수행할 수 있다. 제3 데이터베이스(158)에 기구축된 상태 테이블은 도메인 및 의도에 따라 사용자 명령 텍스트에서 필요한 슬롯과, 필요한 슬롯에 대응하여 요청해야 할 쿼리 텍스트를 나타내는 액션 상태를 포함할 수 있다.
대화 관리자 처리부(153)는 기구축된 상태 테이블에 기초하여 사용자 발화 텍스트 중 개체명이 누락된 슬롯에 대응하는 쿼리 텍스트를 생성할 수 있다. 여기서 누락된 슬롯이 많을 경우, 제1 슬롯, 제2 슬롯, 제3 슬롯 순으로 개체명이 누락된 슬롯을 판단할 수 있다.
먼저, 대화 관리자 처리부(153)는 제1 슬롯에 개체명이 누락된 경우, 상태 테이블에 기초하여 도메인과 관련한 쿼리 텍스트를 생성할 수 있다. 다음에, 대화 관리자 처리부(153)는 제1 슬롯에 개체명이 채워진 후, 제2 슬롯에 개체명이 누락된 경우, 상태 테이블에 기초하여 의도와 관련한 쿼리 텍스트를 생성할 수 있다. 마지막으로, 대화 관리자 처리부(153)는 제2 슬롯에 개체명이 채워진 후, 제3 슬롯에 개체명이 누락된 경우, 상태 테이블에 기초하여 제3 슬롯에 관련한 쿼리 텍스트를 생성할 수 있다.
대화 관리자 처리부(153)는 쿼리 발화 음성에 대응하는 사용자의 응답 발화 음성을 수신하여 완전한 발화 음성을 완성할 수 있다. 대화 관리자 처리부(153)는 쿼리 발화 음성의 피드백과 사용자의 응답 발화 음성의 수신 반복을 통하여, 개체명이 누락된 필수 슬롯을 개체명으로 채울 수 있다. 이후 대화 관리자 처리부(153)는 개체명이 누락된 필수 슬롯이 개체명으로 모두 채워진 경우의 사용자의 발화 음성을, 완전한 발화 음성으로 완성할 수 있다. 사용자의 발화 음성이 완전한 발화 음성으로 완성되면, 제어부(170)는 완전한 발화 음성에 포함된 명령어에 대응하여 복수의 전자 디바이스(200) 중 어느 한 전자 디바이스(200)를 결정하고 동작시킬 수 있다.
자연어 생성 처리부(154)는 대화 관리자 처리부(153)의 요청에 의해 지식 베이스(knowledge- base)를 이용하여 쿼리 텍스트를 생성할 수 있다. 또한 자연어 생성 처리부(154)는 결정된 전자 디바이스(200)의 동작이 완료되면, 전자 디바이스(200)의 동작 완료 텍스트를 생성할 수 있다.
텍스트-음성 변환 처리부(155)는 자연어 생성 처리부(154)가 생성한 쿼리 텍스트를 쿼리 발화 음성으로 변환하고, 쿼리 발화 음성을 오디오 출력부(142)를 통하여 사용자에게 피드백할 수 있다. 또한 텍스트-음성 변환 처리부(155)는 자연어 생성 처리부(154)가 생성한 전자 디바이스(200)의 동작 완료 텍스트를 전자 디바이스(200)의 동작 완료 발화 음성으로 변환하고, 전자 디바이스(200)의 동작 완료 발화 음성을 오디오 출력부(142)를 통하여 사용자에게 피드백 할 수 있다.
도 4는 도 3 중 사용자의 불완전한 발화 음성을 완전한 발화 음성으로 완성하는 실시 예를 설명하는 예시도이다. 이하의 설명에서 도 1 내지 도 3에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다.
도 4a를 참조하면, 사용자가 발화한 <하이 엘지, 온도를 더 낮춰줘>라는 발화 정보(401)가 오디오 입력부(141)를 통하여 정보 처리부(150)로 전송될 수 있다. 이 중 음성 명령어인 <온도를 더 낮춰줘>에 대한 사용자 발화 텍스트 변환이 완료되면, 사용자 발화 텍스트는 자연어 이해 처리부(152)로 입력될 수 있다. 자연어 이해 처리부(152)는 사용자 발화 텍스트에 대하여, 문법적 분석 또는 의미적 분석을 수행하여 도메인, 의도 및 개체명을 탐색(402)할 수 있다.
대화 관리자 처리부(153)는 사용자의 발화 음성이 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단하여, 불완전한 발화 음성인 경우 쿼리 텍스트 생성을 요청할 수 있다. 상술한 사용자 발화 텍스트로부터 제1 슬롯 및 제3 슬롯이 누락되었기 때문에, 대화 관리자 처리부(153)는 상술한 사용자의 발화 음성을 불완전한 발화 음성으로 판단할 수 있다. 대화 관리자 처리부(153)는 기구축된 상태 테이블을 참조하여 우선 순위로, 도메인과 관련한 제1 슬롯을 채우기 위한 제1 쿼리 텍스트 생성을 요청(403)할 수 있다. 자연어 생성 처리부(154)는 제1 쿼리 텍스트로 <어떤 기기에서 낮출까요?>를 생성할 수 있다. 텍스트-음성 변환 처리부(155)는 제1 쿼리 텍스트를 제1 쿼리 발화 음성으로 변환(404)하고, 오디오 출력부(142)를 통하여 사용자에게 피드백 할 수 있다.
도 4b를 참조하면, 제1 쿼리 발화 음성을 수신한 사용자는 응답 발화 음성으로 <에어컨>을 발화(405)하고, 이는 사용자 발화 텍스트로 변환되어 자연어 이해 처리부(152)로 입력될 수 있다. 자연어 이해 처리부(152)는 이전의 사용자 발화 텍스트(온도를 더 낮춰줘)에서 획득한 도메인, 의도 및 개체명에, 현재의 사용자 발화 텍스트(에어컨)에서 획득한 개체명을 더 추가(406)할 수 있다.
대화 관리자 처리부(153)는 이전 및 현재의 사용자 발화 텍스트로부터 도메인이 에어컨으로 획득되었고, 의도는 온도 낮춤으로 획득되었으나, 제3 슬롯이 누락되었기 때문에, 상술한 사용자의 발화 음성을 불완전한 발화 음성으로 판단할 수 있다.
대화 관리자 처리부(153)는 기구축된 상태 테이블을 참조하여 자연어 생성 처리부(154)에 수량을 나타내는 개체명을 나타내는 제3 슬롯을 채우기 위한 제2 쿼리 텍스트 생성을 요청(407)할 수 있다. 자연어 생성 처리부(154)는 제2 쿼리 텍스트로 <에어컨의 온도를 몇 도 낮출까요?>를 생성할 수 있다. 텍스트-음성 변환 처리부(155)는 제2 쿼리 텍스트를 제2 쿼리 발화 음성으로 변환(408)하고, 오디오 출력부(142)를 통하여 사용자에게 피드백 할 수 있다.
도 4c를 참조하면, 제2 쿼리 발화 음성을 수신한 사용자는 응답 발화 음성으로 <5도>를 발화(409)하고, 이는 사용자 발화 텍스트로 변환되어 자연어 이해 처리부(152)로 입력될 수 있다. 자연어 이해 처리부(152)는 이전의 사용자 발화 텍스트(에어컨 온도를 더 낮춰줘)에서 획득한 도메인, 의도 및 개체명에, 현재의 사용자 발화 텍스트(5도)에서 획득한 개체명을 더 추가(410)할 수 있다.
대화 관리자 처리부(153)는 이전 및 현재의 사용자 발화 텍스트로부터 도메인이 에어컨으로 획득되었고, 의도는 온도 낮춤으로 획득되었고, 수량을 나타내는 개체명으로 5도가 획득되었기 때문에, 대화 관리자 처리부(153)는 상술한 사용자의 발화 음성 중 필수 슬롯이 개체명으로 모두 채워져 완전한 발화 음성으로 판단할 수 있다.
대화 관리자 처리부(153)는 완전한 발화 음성의 완성을 제어부(170)로 전송하고, 제어부(170)는 복수의 전자 디바이스(200) 중 에어컨(205)을 결정하고, 에어컨(205)으로 온도를 5도 낮추라고 요청(411)할 수 있다. 제어부(170)는 에어컨(205)이 온도를 5도 낮추었다는 응답 신호를 수신(412)하여 대화 관리자 처리부(153)로 전송할 수 있다. 대화 관리자 처리부(153)는 이 응답 신호에 대응하여 자연어 생성 처리부(154)에 명령 수행 완료 텍스트 생성을 요청(413)할 수 있다. 자연어 생성 처리부(154)는 명령 수행 완료 텍스트로 <에어컨의 온도를 5도 낮추었습니다>를 생성할 수 있다. 텍스트-음성 변환 처리부(155)는 명령 수행 완료 텍스트를 명령 수행 완료 발화 음성으로 변환(414)하고, 오디오 출력부(142)를 통하여 사용자에게 피드백 할 수 있다.
도 5는 도 3 중 사용자의 불완전한 발화 음성에 대한 상태 테이블 매칭을 통하여 피드백할 쿼리 텍스트를 설명하는 예시도이다. 이하의 설명에서 도 1 내지 도 4에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다.
도 5를 참조하면, 510은 사용자 발화 음성에 대한 슬롯의 종류를 나타내고, 520은 제3 데이터베이스(158)에 기구축된 상태 테이블을 나타내고, 530은 대화 관리자 처리부(153)의 요청에 의해 자연어 생성 처리부(154)가 생성한 피드백 할 쿼리 텍스트를 나타내고 있다. 사용자 발화 음성(예를 들어, 에어컨 온도를 5도 더 낮춰줘 )에 대한 슬롯의 종류(510)에서 물음표는 개체명이 누락된 필수 슬롯을 나타내고, 동그라미는 이미 채워져 의미 없는 슬롯을 나타내며, Prd(product)는 도메인과 관련한 제1 슬롯에 개체명이 채워진 상태를, Temp는 의도와 관련한 제2 슬롯에 개체명이 채워진 상태를, Num은 수량을 나타내는 개체명과 관련한 제3 슬롯에 개체명이 채워진 상태를 나타낼 수 있다.
도 5에서 사용자의 완전한 발화 음성이 <에어컨 온도를 5도 더 낮춰줘>라고 가정한 상태에서, 필수 슬롯은 에어컨(제1 슬롯), 온도 낮춤(제2 슬롯), 5도(제3 슬롯)를 포함할 수 있다. 예를 들어 사용자 발화 음성은, <더 낮춰줘>인 제1 사용자 발화 음성(511)과, <에어컨 더 낮춰줘>인 제2 사용자 발화 음성(512)과, <온도를 더 낮춰줘>인 제3 사용자 발화 음성(513)과, <온도를 5도 더 낮춰줘>인 제4 사용자 발화 음성(514)과, <에어컨 온도를 더 낮춰줘>인 제5 발화 음성(515)을 포함할 수 있다.
음성 처리 장치(100)는 제1 사용자 발화 음성(511) 내지 제5 사용자 발화 음성(515) 각각으로부터 개체명이 누락된 필수 슬롯의 존재를 판단하고, 제1 사용자 발화 음성(511) 내지 제5 사용자 발화 음성(515) 각각이 불완전한 발화 음성임을 판단할 수 있다.
음성 처리 장치(100)는 제1 사용자 발화 음성(511)에 대하여 제1 슬롯, 제2 슬롯 및 제3 슬롯에 개체명이 누락되어 불완전한 발화 음성임을 판단할 수 있다. 음성 처리 장치(100)는 제2 사용자 발화 음성(512)에 대하여 제2 슬롯 및 제3 슬롯에 개체명이 누락되어 불완전한 발화 음성임을 판단할 수 있다. 음성 처리 장치(100)는 제3 사용자 발화 음성(513)에 대하여 제1 슬롯과 제3 슬롯에 개체명이 누락되어 불완전한 발화 음성임을 판단할 수 있다. 음성 처리 장치(100)는 제4 사용자 발화 음성(511)에 대하여 제1 슬롯에 개체명이 누락되어 불완전한 발화 음성임을 판단할 수 있다. 음성 처리 장치(100)는 제5 사용자 발화 음성(515)에 대하여 제3 슬롯에 개체명이 누락되어 불완전한 발화음성임을 판단할 수 있다.
상태 테이블(520) 중 제1 열(521)에는 제1 사용자 발화 음성(511)으로부터 획득할 수 있는 복수개의 도메인(불명확한 도메인: 에어컨/세탁기/TV/스마트폰)과, 복수개의 의도(불명확한 의도: 온도 낮춤(Temp_down)/볼륨 낮춤(Volume_down))에 대응하여, 필요한 슬롯으로 우선 순위에 해당하는 도메인(예를 들어, Prd)이 지정되어 있고, 필요한 슬롯인 도메인에 대응하여 요청해야 할 쿼리 텍스트를 나타내는 액션 상태(Request_domain)가 지정되어 있다.
상태 테이블(520) 중 제2 열(522)에는 제2 사용자 발화 음성(512)으로부터 획득할 수 있는 복수개의 의도(불명확한 의도: 온도 낮춤(Temp_down)/볼륨 낮춤(Volume_down))에 대응하여, 필요한 슬롯으로 다음 순위에 해당하는 의도(예를 들어, Temp)가 지정되어 있고, 필요한 슬롯인 의도(Temp, 온도)에 대응하여 요청해야 할 쿼리 텍스트를 나타내는 액션 상태(Request_intent)가 지정되어 있다.
상태 테이블(520) 중 제3 열(523) 및 제4 열(524)에는 제3 사용자 발화 음성(513) 및 제4 사용자 발화 음성(514)로부터 획득할 수 있는 복수개의 도메인(불명확한 도메인: 에어컨/세탁기/TV/스마트폰)에 대응하여, 필요한 슬롯으로 도메인(예를 들어, Prd)이 지정되어 있고, 필요한 슬롯인 도메인에 대응하여 요청해야 할 쿼리 텍스트를 나타내는 액션 상태(Request_domain)가 지정되어 있다.
상태 테이블(520) 중 제5 열(525)에는 제5 사용자 발화 음성(515)으로부터 획득할 수 있는 명확한 도메인 및 명확한 의도에 대응하여, 필요한 슬롯으로 수량에 해당하는 몇 도(예를 들어, Num)가 지정되어 있고, 필요한 슬롯인 수량(Num)에 대응하여 요청해야 할 쿼리 텍스트를 나타내는 액션 상태(Request_entity)가 지정되어 있다.
음성 처리 장치(100)는 제1 열(521)의 액션 상태(Request_domain)를 이용하여 사용자에게 피드백할 제1 쿼리 텍스트(531)로서 <어떤 기기에서 낮출까요?>를 생성할 수 있다. 음성 처리 장치(100)는 제2 열(522)의 액션 상태(Request_intent)를 이용하여 사용자에게 피드백할 제2 쿼리 텍스트(532)로서 <에어컨의 무엇을 낮출까요?>를 생성할 수 있다.
음성 처리 장치(100)는 제3 열(523) 및 제4 열(524)의 액션 상태(Request_domain)를 이용하여 사용자에게 피드백할 제3 쿼리 텍스트(533) 및 제4 쿼리 텍스트(534)로서 <어떤 기기에서 낮출까요?>를 생성할 수 있다.
음성 처리 장치(100)는 제5 열(525)의 액션 상태(Request_entity)를 이용하여 사용자에게 피드백할 제5 쿼리 텍스트(535)로서 <에어컨 온도를 몇도 낮출까요?>를 생성할 수 있다.
음성 처리 장치(100)는 제1 쿼리 텍스트(531) 내지 제5 쿼리 텍스트(535)를 제1 쿼리 발화 음성 내지 제5 쿼리 발화 음성으로 변환하여 사용자에게 피드백할 수 있다. 이후, 음성 처리 장치(100)는 사용자로부터 쿼리 발화 음성에 대응하는 응답 발화 음성을 수신하여 완전환 발화 음성을 완성할 수 있다. 완전한 발화음성으로 완성되지 않은 경우, 계속하여 쿼리 발화 음성의 피드백과 사용자의 응답 발화 음성 수신을 반복하여 완전한 발화음성을 완성할 수 있다.
도 6은 본 발명의 일 실시 예에 따른 음성 처리 방법을 설명하기 위한 흐름도이다. 이하의 설명에서 도 1 내지 도 5에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다.
도 6을 참조하면, S610단계에서, 음성 처리 장치(100)는 음성 명령어를 포함하는 사용자의 발화 음성을 사용자 발화 텍스트로 변환한다. 여기서 사용자의 발화 음성은, 사용자 입장에서 복수의 전자 디바이스(200) 중 어느 한 전자 디바이스(200)의 동작을 지시하는 음성 명령어를 포함할 수 있으나, 음성 처리 장치(100) 입장에서 복수의 전자 디바이스(200)를 동작시킬 수 있는 음성 명령어를 포함할 수 있다.
S620단계에서, 음성 처리 장치(100)는 사용자 발화 텍스트에 대하여 문법적 분석 또는 의미적 분석을 수행하여, 사용자 발화 텍스트가 속하는 도메인(domain), 사용자 발화 텍스트가 가지는 의도(intent)를 탐색하고, 사용자 발화 텍스트가 포함하는 개체명 인식의 결과로 하나 이상의 개체명(named entity)을 탐색한다. 음성 처리 장치(100)는 사용자가 동작시키려고 하는 전자 디바이스의 종류를 지정하는 도메인과, 전자 디바이스를 어떻게 동작시킬 것인지를 나타내는 의도와, 사용자 발화 텍스트에 나타나는 고유한 의미를 가지는 명사 또는 숫자를 포함하는 개체명을 탐색할 수 있다.
S630단계에서, 음성 처리 장치(100)는 도메인과, 의도와, 개체명에 대한 탐색 결과에 대응하여 사용자의 발화 음성이 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단한다. 음성 처리 장치(100)는 사용자 발화 텍스트로부터 도메인과 관련된 제1 슬롯과, 의도와 관련된 제2 슬롯과, 수량 개체명과 관련된 제3 슬롯을 포함하는 필수 슬롯을 결정할 수 있다. 음성 처리 장치(100)는 사용자 발화 텍스트 중 필수 슬롯이 개체명으로 모두 채워진 경우 사용자의 발화 음성을 완전한 발화 음성으로 판단하고, 사용자 발화 텍스트 중 개체명이 누락된 필수 슬롯이 존재하는 경우, 사용자의 발화 음성을 불완전한 발화 음성으로 판단할 수 있다.
S640단계에서, 음성 처리 장치(100)는 사용자의 발화 음성이 불완전한 발화 음성인 경우, 불완전한 발화 음성을 완전한 발화 음성으로 완성하기 위한 정보를 요구하는 쿼리 발화 음성을 생성하여 사용자에게 피드백 한다.
음성 처리 장치(100)는 도메인 및 의도에 따라 사용자 명령 텍스트에서 필요한 슬롯과, 필요한 슬롯에 대응하여 요청해야 할 쿼리 텍스트를 포함하는 기구축된 상태 테이블에 기초하여, 사용자 발화 텍스트에서 필요한 슬롯 중 개체명이 누락된 슬롯을 판단할 수 있다. 음성 처리 장치(100)는 상태 테이블에 기초하여 누락된 슬롯에 대응하는 쿼리 텍스트를 생성할 수 있다. 음성 처리 장치(100)는 생성한 쿼리 텍스트를 쿼리 발화 음성으로 변환하여 사용자에게 피드백할 수 있다.
음성 처리 장치(100)는 개체명이 누락된 슬롯을 판단 시에 사용자 발화 텍스트에서 필요한 슬롯 중 제1 슬롯, 제2 슬롯, 제3 슬롯 순으로 개체명이 누락된 슬롯을 판단할 수 있다.
음성 처리 장치(100)는 쿼리 텍스트 생성 시에, 제1 슬롯에 개체명이 누락된 경우, 도메인과 관련한 쿼리 텍스트를 생성하고, 제1 슬롯에 개체명이 채워진 후, 제2 슬롯에 개체명이 누락된 경우, 의도와 관련한 쿼리 텍스트를 생성하며, 제2 슬롯에 개체명이 채워진 후, 제3 슬롯 중 어느 하나에 개체명이 누락된 경우, 개체명이 누락된 슬롯에 관련한 쿼리 텍스트를 생성할 수 있다.
S650단계에서, 음성 처리 장치(100)는 쿼리 발화 음성에 대응하는 사용자의 응답 발화 음성을 수신하여 완전한 발화 음성을 완성한다. 음성 처리 장치(100)는 쿼리 발화 음성의 피드백과 사용자의 응답 발화 음성의 수신 반복을 통하여, 개체명이 누락된 필수 슬롯을 개체명으로 채우고, 개체명이 누락된 필수 슬롯이 개체명으로 모두 채워진 경우의 사용자의 발화 음성을, 완전한 발화 음성으로 완성할 수 있다.
이후, 음성 처리 장치(100)는 사용자의 발화 음성이 완전한 발화 음성으로 완성되면, 완전한 발화 음성에 포함된 명령어에 대응하여 복수의 전자 디바이스 중 어느 한 전자 디바이스를 결정하고 동작시킬 수 있다.
이상 설명된 본 발명에 따른 실시 예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다.
본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
100: 음성 처리 장치
200: 전자 디바이스
300: 서버
400: 네트워크

Claims (19)

  1. 음성 처리 방법으로서,
    음성 명령어를 포함하는 사용자의 발화 음성을 사용자 발화 텍스트로 변환하는 단계;
    상기 사용자 발화 텍스트에 대하여 문법적 분석 또는 의미적 분석을 수행하여, 상기 사용자 발화 텍스트가 속하는 도메인(domain), 상기 사용자 발화 텍스트가 가지는 의도(intent)를 탐색하고, 상기 사용자 발화 텍스트가 포함하는 개체명 인식의 결과로 하나 이상의 개체명(named entity)을 탐색하는 단계;
    상기 도메인과, 상기 의도와, 상기 개체명에 대한 탐색 결과에 대응하여 상기 사용자의 발화 음성이 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단하는 단계;
    상기 사용자의 발화 음성이 상기 불완전한 발화 음성인 경우, 상기 불완전한 발화 음성을 상기 완전한 발화 음성으로 완성하기 위한 정보를 요구하는 쿼리 발화 음성을 생성하여 상기 사용자에게 피드백 하는 단계; 및
    상기 쿼리 발화 음성에 대응하는 상기 사용자의 응답 발화 음성을 수신하여 상기 완전한 발화 음성을 완성하는 단계를 포함하는,
    음성 처리 방법.
  2. 제 1 항에 있어서,
    상기 변환하는 단계는,
    복수의 전자 디바이스 중 적어도 어느 하나의 전자 디바이스의 동작을 지시하는 음성 명령어를 포함하는 상기 사용자의 발화 음성을 상기 사용자 발화 텍스트로 변환하는 단계를 포함하는,
    음성 처리 방법.
  3. 제 2 항에 있어서,
    상기 탐색하는 단계는,
    사용자가 동작시키려고 하는 전자 디바이스의 종류를 지정하는 도메인과, 상기 전자 디바이스를 어떻게 동작시킬 것인지를 나타내는 의도와, 상기 사용자 발화 텍스트에 나타나는 고유한 의미를 가지는 명사 또는 숫자를 포함하는 개체명을 탐색하는 단계를 포함하는,
    음성 처리 방법.
  4. 제 1 항에 있어서,
    상기 판단하는 단계는,
    상기 사용자 발화 텍스트로부터 상기 도메인과 관련된 제1 슬롯과, 상기 의도와 관련된 제2 슬롯과, 수량 개체명과 관련된 제3 슬롯을 포함하는 필수 슬롯을 결정하는 단계;
    상기 사용자 발화 텍스트 중 상기 필수 슬롯이 개체명으로 모두 채워진 경우 상기 사용자의 발화 음성을 완전한 발화 음성으로 판단하는 단계; 및
    상기 사용자 발화 텍스트 중 개체명이 누락된 상기 필수 슬롯이 존재하는 경우, 사용자의 발화 음성을 불완전한 발화 음성으로 판단하는 단계를 포함하는,
    음성 처리 방법.
  5. 제 1 항에 있어서,
    상기 피드백 하는 단계는,
    도메인 및 의도에 따라 사용자 명령 텍스트에서 필요한 슬롯과, 상기 필요한 슬롯에 대응하여 요청해야 할 쿼리 텍스트를 포함하는 기구축된 상태 테이블에 기초하여, 상기 사용자 발화 텍스트에서 필요한 슬롯 중 개체명이 누락된 슬롯을 판단하는 단계;
    상기 상태 테이블에 기초하여 상기 누락된 슬롯에 대응하는 쿼리 텍스트를 생성하는 단계; 및
    생성한 상기 쿼리 텍스트를 상기 쿼리 발화 음성으로 변환하여 상기 사용자에게 피드백 하는 단계를 포함하는,
    음성 처리 방법.
  6. 제 5 항에 있어서,
    상기 사용자 발화 텍스트에서 필요한 슬롯 중 제1 슬롯은 도메인에 관련되고, 상기 사용자 발화 텍스트에서 필요한 슬롯 중 제2 슬롯은 의도에 관련되고, 상기 사용자 발화 텍스트에서 필요한 슬롯 중 제3 슬롯은 수량 개체명과 관련되며,
    상기 개체명이 누락된 슬롯을 판단하는 단계는,
    상기 사용자 발화 텍스트에서 필요한 슬롯 중 상기 제1 슬롯, 상기 제2 슬롯, 상기 제3 슬롯 순으로 상기 개체명이 누락된 슬롯을 판단하는 단계를 포함하는,
    음성 처리 방법.
  7. 제 6 항에 있어서,
    상기 쿼리 텍스트를 생성하는 단계는,
    상기 제1 슬롯에 개체명이 누락된 경우, 상기 도메인과 관련한 쿼리 텍스트를 생성하는 단계;
    상기 제1 슬롯에 개체명이 채워진 후, 상기 제2 슬롯에 개체명이 누락된 경우, 상기 의도와 관련한 쿼리 텍스트를 생성하는 단계; 및
    상기 제2 슬롯에 개체명이 채워진 후, 상기 제3 슬롯에 개체명이 누락된 경우, 상기 수량 개체명이 누락된 슬롯에 관련한 쿼리 텍스트를 생성하는 단계를 포함하는,
    음성 처리 방법.
  8. 제 6 항에 있어서,
    상기 완성하는 단계는,
    상기 쿼리 발화 음성의 피드백과 상기 사용자의 응답 발화 음성의 수신 반복을 통하여, 상기 개체명이 누락된 필수 슬롯을 개체명으로 채우는 단계; 및
    상기 개체명이 누락된 필수 슬롯이 개체명으로 모두 채워진 경우의 사용자의 발화 음성을, 상기 완전한 발화 음성으로 완성하는 단계를 포함하는
    음성 처리 방법.
  9. 제 8 항에 있어서,
    상기 사용자의 발화 음성이 상기 완전한 발화 음성으로 완성되면, 상기 완전한 발화 음성에 포함된 명령어에 대응하여 복수의 전자 디바이스 중 어느 한 전자 디바이스를 결정하고 동작시키는 단계를 더 포함하는,
    음성 처리 방법.
  10. 컴퓨터를 이용하여 제 1 항 내지 제 9 항의 방법 중 어느 한 항의 방법을 실행시키기 위한 컴퓨터 프로그램이 저장된 컴퓨터로 판독 가능한 기록매체.
  11. 하나 이상의 프로세서를 포함하는 음성 처리 장치로서,
    상기 하나 이상의 프로세서는,
    음성 명령어를 포함하는 사용자의 발화 음성을 사용자 발화 텍스트로 변환하고,
    상기 사용자 발화 텍스트에 대하여 문법적 분석 또는 의미적 분석을 수행하여, 상기 사용자 발화 텍스트가 속하는 도메인(domain), 상기 사용자 발화 텍스트가 가지는 의도(intent)를 탐색하고, 상기 사용자 발화 텍스트가 포함하는 개체명 인식의 결과로 하나 이상의 개체명(named entity)을 탐색하고,
    상기 도메인과, 상기 의도와, 상기 개체명에 대한 탐색 결과에 대응하여 상기 사용자의 발화 음성이 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단하고,
    상기 사용자의 발화 음성이 상기 불완전한 발화 음성인 경우, 상기 불완전한 발화 음성을 상기 완전한 발화 음성으로 완성하기 위한 정보를 요구하는 쿼리 발화 음성을 생성하여 상기 사용자에게 피드백 하고,
    상기 쿼리 발화 음성에 대응하는 상기 사용자의 응답 발화 음성을 수신하여 상기 완전한 발화 음성을 완성하도록 구성되는,
    음성 처리 장치.
  12. 제 11 항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 사용자 발화 텍스트로 변환 시에,
    복수의 전자 디바이스 중 적어도 어느 하나의 전자 디바이스의 동작을 지시하는 음성 명령어를 포함하는 상기 사용자의 발화 음성을 상기 사용자 발화 텍스트로 변환하도록 구성되는, 음성 처리 장치.
  13. 제 12 항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 도메인과, 상기 의도와, 상기 개체명 탐색 시에,
    사용자가 동작시키려고 하는 전자 디바이스의 종류를 지정하는 도메인과, 상기 전자 디바이스를 어떻게 동작시킬 것인지를 나타내는 의도와, 상기 사용자 발화 텍스트에 나타나는 고유한 의미를 가지는 명사 또는 숫자를 포함하는 개체명을 탐색하도록 구성되는,
    음성 처리 장치.
  14. 제 11 항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 완전한 발화 음성인지 또는 불완전한 발화 음성인지 판단 시에,
    상기 사용자 발화 텍스트로부터 상기 도메인과 관련된 제1 슬롯과, 상기 의도와 관련된 제2 슬롯과, 수량 개체명과 관련된 제3 슬롯을 포함하는 필수 슬롯을 결정하고,
    상기 사용자 발화 텍스트 중 상기 필수 슬롯이 개체명으로 모두 채워진 경우 상기 사용자의 발화 음성을 완전한 발화 음성으로 판단하고,
    상기 사용자 발화 텍스트 중 개체명이 누락된 상기 필수 슬롯이 존재하는 경우, 사용자의 발화 음성을 불완전한 발화 음성으로 판단하도록 구성되는,
    음성 처리 장치.
  15. 제 11항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 사용자에게 피드백 시에,
    도메인 및 의도에 따라 사용자 명령 텍스트에서 필요한 슬롯과, 상기 필요한 슬롯에 대응하여 요청해야 할 쿼리 텍스트를 포함하는 기구축된 상태 테이블에 기초하여, 상기 사용자 발화 텍스트에서 필요한 슬롯 중 개체명이 누락된 슬롯을 판단하고,
    상기 상태 테이블에 기초하여 상기 누락된 슬롯에 대응하는 쿼리 텍스트를 생성하고,
    생성한 상기 쿼리 텍스트를 상기 쿼리 발화 음성으로 변환하여 상기 사용자에게 피드백 하도록 구성되는,
    음성 처리 장치.
  16. 제 15 항에 있어서,
    상기 사용자 발화 텍스트에서 필요한 슬롯 중 제1 슬롯은 도메인에 관련되고, 상기 사용자 발화 텍스트에서 필요한 슬롯 중 제2 슬롯은 의도에 관련되고, 상기 사용자 발화 텍스트에서 필요한 슬롯 중 제3 슬롯은 수량 개체명과 관련되며,
    상기 하나 이상의 프로세서는,
    상기 개체명이 누락된 슬롯을 판단 시에,
    상기 사용자 발화 텍스트에서 필요한 슬롯 중 상기 제1 슬롯, 상기 제2 슬롯, 상기 제3 슬롯 순으로 상기 개체명이 누락된 슬롯을 판단하도록 구성되는,
    음성 처리 장치.
  17. 제 16 항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 쿼리 텍스트를 생성 시에,
    상기 제1 슬롯에 개체명이 누락된 경우, 상기 도메인과 관련한 쿼리 텍스트를 생성하고,
    상기 제1 슬롯에 개체명이 채워진 후, 상기 제2 슬롯에 개체명이 누락된 경우, 상기 의도와 관련한 쿼리 텍스트를 생성하고,
    상기 제2 슬롯에 개체명이 채워진 후, 상기 제3 슬롯에 개체명이 누락된 경우, 상기 수량 개체명이 누락된 슬롯에 관련한 쿼리 텍스트를 생성하도록 구성되는,
    음성 처리 장치.
  18. 제 16 항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 완전한 발화 음성을 완성 시에,
    상기 쿼리 발화 음성의 피드백과 상기 사용자의 응답 발화 음성의 수신 반복을 통하여, 상기 개체명이 누락된 필수 슬롯을 개체명으로 채우고,
    상기 개체명이 누락된 필수 슬롯이 개체명으로 모두 채워진 경우의 사용자의 발화 음성을, 상기 완전한 발화 음성으로 완성하도록 구성되는,
    음성 처리 장치.
  19. 제 18 항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 사용자의 발화 음성이 상기 완전한 발화 음성으로 완성되면, 상기 완전한 발화 음성에 포함된 명령어에 대응하여 복수의 전자 디바이스 중 어느 한 전자 디바이스를 결정하고 동작시키도록 추가로 구성되는,
    음성 처리 장치.
KR1020190121831A 2019-10-01 2019-10-01 음성 처리 방법 및 음성 처리 장치 KR20190118995A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190121831A KR20190118995A (ko) 2019-10-01 2019-10-01 음성 처리 방법 및 음성 처리 장치
US16/695,094 US11386895B2 (en) 2019-10-01 2019-11-25 Speech processing method and apparatus therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190121831A KR20190118995A (ko) 2019-10-01 2019-10-01 음성 처리 방법 및 음성 처리 장치

Publications (1)

Publication Number Publication Date
KR20190118995A true KR20190118995A (ko) 2019-10-21

Family

ID=68460239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190121831A KR20190118995A (ko) 2019-10-01 2019-10-01 음성 처리 방법 및 음성 처리 장치

Country Status (2)

Country Link
US (1) US11386895B2 (ko)
KR (1) KR20190118995A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210084207A (ko) * 2019-12-27 2021-07-07 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 음성 언어 이해에서의 분석 오류 정보를 출력하는 방법과 장치
KR20220039340A (ko) * 2020-09-22 2022-03-29 에스케이플래닛 주식회사 블록 컴포넌트를 이용한 챗봇 서비스 제공 방법 및 장치
WO2022102893A1 (ko) * 2020-11-11 2022-05-19 삼성전자주식회사 전자 장치, 시스템 및 그 제어 방법
CN114582333A (zh) * 2022-02-21 2022-06-03 中国第一汽车股份有限公司 语音识别方法、装置、电子设备及存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021086445A (ja) * 2019-11-28 2021-06-03 株式会社リコー 情報処理システム、情報処理方法及び情報処理装置
CN111681647B (zh) * 2020-06-10 2023-09-05 北京百度网讯科技有限公司 用于识别词槽的方法、装置、设备以及存储介质
WO2023042988A1 (en) * 2021-09-14 2023-03-23 Samsung Electronics Co., Ltd. Methods and systems for determining missing slots associated with a voice command for an advanced voice interaction

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101057705B1 (ko) 2003-07-03 2011-08-18 소니 주식회사 음성 대화 장치 및 방법 및 로봇 장치
KR101985793B1 (ko) 2017-09-29 2019-06-04 주식회사 토룩 자율 행동 로봇을 이용하여 대화 서비스를 제공하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10304444B2 (en) * 2016-03-23 2019-05-28 Amazon Technologies, Inc. Fine-grained natural language understanding
US11270074B2 (en) * 2018-01-16 2022-03-08 Sony Corporation Information processing apparatus, information processing system, and information processing method, and program
US10496382B2 (en) * 2018-02-22 2019-12-03 Midea Group Co., Ltd. Machine generation of context-free grammar for intent deduction
KR20210062428A (ko) * 2019-11-21 2021-05-31 엘지전자 주식회사 영상 촬영 장치의 원격 제어 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101057705B1 (ko) 2003-07-03 2011-08-18 소니 주식회사 음성 대화 장치 및 방법 및 로봇 장치
KR101985793B1 (ko) 2017-09-29 2019-06-04 주식회사 토룩 자율 행동 로봇을 이용하여 대화 서비스를 제공하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210084207A (ko) * 2019-12-27 2021-07-07 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 음성 언어 이해에서의 분석 오류 정보를 출력하는 방법과 장치
US11482211B2 (en) 2019-12-27 2022-10-25 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for outputting analysis abnormality information in spoken language understanding
KR20220039340A (ko) * 2020-09-22 2022-03-29 에스케이플래닛 주식회사 블록 컴포넌트를 이용한 챗봇 서비스 제공 방법 및 장치
WO2022102893A1 (ko) * 2020-11-11 2022-05-19 삼성전자주식회사 전자 장치, 시스템 및 그 제어 방법
EP4141864A4 (en) * 2020-11-11 2023-11-22 Samsung Electronics Co., Ltd. ELECTRONIC DEVICE, ASSOCIATED CONTROL SYSTEM AND METHOD
US11915697B2 (en) 2020-11-11 2024-02-27 Samsung Electronics Co., Ltd. Electronic device, system and control method thereof
CN114582333A (zh) * 2022-02-21 2022-06-03 中国第一汽车股份有限公司 语音识别方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US11386895B2 (en) 2022-07-12
US20210097989A1 (en) 2021-04-01

Similar Documents

Publication Publication Date Title
KR20190118995A (ko) 음성 처리 방법 및 음성 처리 장치
KR102246936B1 (ko) 음성 인식 방법 및 음성 인식 장치
KR20210050747A (ko) 음성 처리 방법 및 음성 처리 장치
US11302324B2 (en) Speech processing method and apparatus therefor
US11790912B2 (en) Phoneme recognizer customizable keyword spotting system with keyword adaptation
US11030991B2 (en) Method and device for speech processing
US11437034B2 (en) Remote control method and apparatus for an imaging apparatus
US11328718B2 (en) Speech processing method and apparatus therefor
KR20190019401A (ko) 전자 장치 및 그 제어 방법
US20210082421A1 (en) Method and device for speech processing
US11373656B2 (en) Speech processing method and apparatus therefor
CN112639962A (zh) 处理用户话语的电子设备及其控制方法
US11514902B2 (en) Speech recognition method and apparatus therefor
KR20190090746A (ko) 디스플레이 장치 및 그의 구동 방법
US11705110B2 (en) Electronic device and controlling the electronic device
US11322144B2 (en) Method and device for providing information
KR20210079061A (ko) 정보 처리 방법 및 정보 처리 장치
US11217249B2 (en) Information processing method and apparatus therefor
KR20210044606A (ko) 웨이크업 모델 생성 방법 및 이를 위한 전자 장치
US20230360648A1 (en) Electronic device and method for controlling electronic device
KR20220125566A (ko) 전자 장치 및 전자 장치의 기기 연결 방법

Legal Events

Date Code Title Description
A201 Request for examination