KR20190102509A - 음성 명령을 수행하는 방법 및 시스템 - Google Patents

음성 명령을 수행하는 방법 및 시스템 Download PDF

Info

Publication number
KR20190102509A
KR20190102509A KR1020180022969A KR20180022969A KR20190102509A KR 20190102509 A KR20190102509 A KR 20190102509A KR 1020180022969 A KR1020180022969 A KR 1020180022969A KR 20180022969 A KR20180022969 A KR 20180022969A KR 20190102509 A KR20190102509 A KR 20190102509A
Authority
KR
South Korea
Prior art keywords
user
voice data
voice
authentication
control command
Prior art date
Application number
KR1020180022969A
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 KR1020180022969A priority Critical patent/KR20190102509A/ko
Priority to CN201980015595.9A priority patent/CN111771185A/zh
Priority to EP19756613.6A priority patent/EP3736684A4/en
Priority to US16/975,993 priority patent/US20210043189A1/en
Priority to PCT/KR2019/001292 priority patent/WO2019164148A1/ko
Publication of KR20190102509A publication Critical patent/KR20190102509A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1845Arrangements for providing special services to substations for broadcast or conference, e.g. multicast broadcast or multicast in a specific location, e.g. geocast
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C2201/00Transmission systems of control signals via wireless link
    • G08C2201/30User interface
    • G08C2201/31Voice input

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

제 1 디바이스가 음성 명령을 수행하는 방법이 개시된다. 예를 들어, 제 1 디바이스가 제 2 디바이스로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 단계; 패킷에 포함된 음성 데이터를 이용하여, 사용자에 대한 인증을 수행하는 단계; 사용자에 대한 인증에 성공한 경우, 음성 데이터로부터 제어 명령을 검출하는 단계; 및 제어 명령에 대응하는 제어 동작을 수행하는 단계를 포함하는 제 1 디바이스의 음성 명령 수행 방법이 개시된다.

Description

음성 명령을 수행하는 방법 및 시스템 {METHOD AND SYSTEM FOR PERFORMING VOICE COMMANDS}
외부에서 브로드캐스팅되는 음성 명령을 수행하는 방법 및 복수의 기기를 제어하는 시스템이 개시된다.
모바일 단말은 다양한 기능을 수행할 수 있도록 구성될 수 있다. 그러한 다양한 기능들의 예로 데이터 및 음성 통신 기능, 카메라를 통해 사진이나 동영상을 촬영하는 기능, 음성 저장 기능, 스피커 시스템을 통한 음악 파일의 재생 기능, 이미지나 비디오의 디스플레이 기능 등이 있다.
일부 모바일 단말은 게임을 실행할 수 있는 추가적 기능을 포함하고, 다른 일부 모바일 단말은 멀티미디어 기기로서 구현되기도 한다. 또한, 모바일 단말은 다른 기기를 원격 제어하는 리모컨 기능을 제공하기도 한다. 하지만, 기기 별로 제어 인터페이스가 상이하기 때문에, 사용자가 모바일 단말을 통해 다른 기기를 제어하는데 불편이 따른다.
일 실시예에 의하면, 제 1 디바이스와 제 2 디바이스 간의 통신 연결 과정 없이, 제 2 디바이스에서 입력된 사용자의 음성 명령을 제 1 디바이스가 수행하는 방법 및 시스템이 제공될 수 있다.
일 실시예에 따르는 제 1 디바이스가 음성 명령을 수행하는 방법은, 제 2 디바이스로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 단계; 패킷에 포함된 음성 데이터를 이용하여, 사용자에 대한 인증을 수행하는 단계; 사용자에 대한 인증에 성공한 경우, 음성 데이터로부터 제어 명령을 검출하는 단계; 및 제어 명령에 대응하는 제어 동작을 수행하는 단계를 포함할 수 있다.
일 실시예에 따르는 제 1 디바이스는, 제 2 디바이스로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 통신부; 및 패킷에 포함된 음성 데이터를 이용하여, 사용자에 대한 인증을 수행하고, 사용자에 대한 인증에 성공한 경우, 음성 데이터로부터 제어 명령을 검출하고, 제어 명령에 대응하는 제어 동작을 수행하는 프로세서를 포함할 수 있다.
일 실시예에 따르는 컴퓨터로 읽을 수 있는 저장 매체를 포함하는 컴퓨터 프로그램 제품에 있어서, 저장 매체는, 외부로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 단계; 패킷에 포함된 음성 데이터를 이용하여, 사용자에 대한 인증을 수행하는 단계; 사용자에 대한 인증에 성공한 경우, 음성 데이터로부터 제어 명령(control command)을 검출하는 단계; 및 제어 명령에 대응하는 제어 동작을 수행하는 단계를 수행하는 명령어들(instructions)을 포함할 수 있다.
일 실시예에 따르는 제 1 디바이스가 음성 명령을 수행하는 방법은, 제 2 디바이스로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 단계; 음성 데이터를 서버 장치에 전송하는 단계; 음성 데이터에 기초하여 사용자에 대한 인증을 수행한 결과 및 음성 데이터로부터 검출된 제어 명령에 관한 정보를 서버 장치로부터 수신하는 단계; 및 사용자에 대한 인증이 성공한 경우, 제어 명령에 대응하는 제어 동작을 수행하는 단계를 포함할 수 있다.
일 실시예에 따르는 제 1 디바이스는, 제 2 디바이스로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 제 1 통신부; 음성 데이터를 서버 장치에 전송하고, 음성 데이터에 기초하여 사용자에 대한 인증을 수행한 결과 및 음성 데이터로부터 검출된 제어 명령에 관한 정보를 서버 장치로부터 수신하는 제 2 통신부; 및 사용자에 대한 인증이 성공한 경우, 제어 명령에 대응하는 제어 동작을 수행하는 프로세서를 포함할 수 있다.
일 실시예에 따르는 컴퓨터로 읽을 수 있는 저장 매체를 포함하는 컴퓨터 프로그램 제품에 있어서, 상기 저장 매체는, 외부로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 단계; 음성 데이터를 서버 장치에 전송하는 단계; 음성 데이터에 기초하여 사용자에 대한 인증을 수행한 결과 및 음성 데이터로부터 검출된 제어 명령에 관한 정보를 서버 장치로부터 수신하는 단계; 및 사용자에 대한 인증이 성공한 경우, 제어 명령에 대응하는 제어 동작을 수행하는 단계를 수행하는 명령어들(instructions)을 포함할 수 있다.
도 1a는 일반적인 기기 제어 시스템을 설명하기 위한 도면이다.
도 1b는 일 실시예에 따른 음성 명령을 통한 디바이스 제어 시스템을 간략히 설명하기 위한 도면이다.
도 2는 일 실시예에 따르는 기기 제어 시스템을 설명하기 위한 블록도이다.
도 3은 일 실시예에 따르는 제 1 디바이스가 음성 명령을 수행하는 방법을 설명하기 위한 도면이다.
도 4는 일 실시예에 따르는 음성 데이터를 포함하는 패킷을 설명하기 위한 도면이다.
도 5는 일 실시예에 따르는 제 1 디바이스에서 사용자에 대한 인증을 수행하는 방법을 설명하기 위한 순서도이다.
도 6은 일 실시예에 따르는 제 1 디바이스가 서버 장치와 연계하여 음성 명령을 수행하는 방법을 설명하기 위한 순서도이다.
도 7은 다른 실시예에 따르는 제 1 디바이스가 서버 장치와 연계하여 음성 명령을 수행하는 방법을 설명하기 위한 순서도이다.
도 8은 일 실시예에 따르는 제 1 디바이스의 제 1 음성 인식 모델과 서버 장치의 제 2 음성 인식 모델을 설명하기 위한 도면이다.
도 9는 일 실시예에 따르는 제 1 디바이스가 음성 명령을 수행하는 방법을 설명하기 위한 순서도이다.
도 10은 일 실시예에 따르는 제 1 디바이스가 동작 모드에 따라 음성 명령을 수행하는 방법을 설명하기 위한 순서도이다.
도 11은 일 실시예에 따르는 제 1 디바이스와 서버 장치 간의 연결 상태 정보에 기초하여 제 1 디바이스의 동작 모드를 식별하는 방법을 설명하기 위한 순서도이다.
도 12는 일 실시예에 따르는 제 1 디바이스가 패킷에 포함된 정보에 기초하여 제 1 디바이스의 동작 모드를 식별하는 방법을 설명하기 위한 순서도이다.
도 13은 일 실시예에 따르는 제 1 디바이스가 동작 모드를 전환하는 방법을 설명하기 위한 순서도이다.
도 14는 일 실시예에 따르는 복수의 디바이스들이 각각 음성 명령을 수행하는 동작을 설명하기 위한 도면이다.
도 15는 일 실시예에 따르는 제 1 디바이스(명령 수행 장치)의 구성을 설명하기 위한 블록도이다.
도 16은 일 실시예에 따르는 제 2 디바이스(명령 입력 장치)의 구성을 설명하기 위한 블록도이다.
도 17은 일 실시예에 따르는 서버 장치의 구성을 설명하기 위한 블록도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1a는 일반적인 기기 제어 시스템을 설명하기 위한 도면이다.
일반적으로 복수의 기기들을 제어하는 시스템을 살펴보면, 사용자가 사용자 단말(20)(예컨대, 모바일 폰)을 이용하여, 복수의 기기들 각각을 하나씩 제어할 수 있다. 이때, 사용자 단말(20)은 복수의 기기들 각각과 통신 연결을 형성(establish)하는 절차를 미리 거쳐야 한다. 예를 들어, 사용자가 외출하고자 하는 경우, 사용자는 사용자 단말(20)(예컨대, 모바일 폰)을 이용하여, 에어컨(11)의 전원을 끄고, TV(12)의 전원도 끄고, 조명(13)도 끄고, 로봇 청소기(14)의 동작 모드를 외출 모드로 설정할 수 있다. 다만, 사용자 단말(20)이 에어컨(11), TV(12), 조명(13), 로봇 청소기(14)를 제어하기 위해서는 에어컨(11), TV(12), 조명(13), 로봇 청소기(14) 각각과 미리 채널을 형성하고 있어야 한다.
즉, 일반적으로, 사용자 단말(20)이 복수의 기기를 제어하기 위해서 제어하고자 하는 전체 기기 수만큼의 연결된 채널이 필요하다. 또한, 채널 생성을 위해서는 장치 검색, 인증 절차, 연결 과정이 필요하다. 따라서, 제어하고자 하는 기기의 수가 많아질 경우, 실제 데이터를 전달하는 시간보다 채널 생성을 위한 과정에 소요되는 시간이 더 오래 걸리는 문제가 생길 수 있다.
한편, 블루투스(예컨대, BR/EDR(Basic Rate/Enhanced Data Rate))을 사용하여, 복수의 기기를 제어하는 방식의 경우, 동시에 연결 가능한 최대 기기수가 7개(예컨대, 1 master and 7 slaves)로 정해져 있다. 따라서, 사용자 단말(20)이 7개 이상의 장치와 동시에 연결 후 명령을 전달할 수가 없는 기술적 제약이 있다.
따라서, 사용자 단말(20)이 복수의 기기와 통신 채널을 형성하는 과정 없이 복수의 기기를 제어할 수 있는 시스템이 필요하다. 이하에서는, 제 1 디바이스(명령 수행 장치)와 제 2 디바이스(명령 입력 장치) 간의 통신 연결 과정 없이, 제 2 디바이스에 입력된 사용자의 음성 명령을 제 1 디바이스가 수행하는 시스템에 대해서 자세히 살펴보기로 한다. 본 명세서에서 "음성 명령"은 사용자의 음성으로 입력되는 제어 명령을 의미할 수 있다.
도 1b는 일 실시예에 따른 음성 명령을 통한 디바이스 제어 시스템을 간략히 설명하기 위한 도면이다.
도 1b를 참조하면, 사용자가 제 2 디바이스(명령 입력 장치)(200)에 음성 명령(예컨대, "외출 모드로 해줘")을 입력하는 경우, 제 2 디바이스(200)는 음성 명령을 포함하는 패킷을 브로드캐스팅 할 수 있다. 이때, 제 2 디바이스(200)로부터 소정 거리 내에 있는 복수의 기기들(예컨대, 에어컨(11), TV(12), 조명(13), 로봇 청소기(14))은 음성 명령을 포함하는 패킷을 수신할 수 있다. 패킷을 수신한 복수의 기기들(예컨대, 에어컨(11), TV(12), 조명(13), 로봇 청소기(14)) 각각은 음성 명령을 직접 또는 서버 장치를 통해 분석함으로써, 음성 명령에 대응하는 동작을 수행할 수 있다.
따라서, 일 실시예에 의하면, 사용자가 기기들을 하나씩 제어하지 않더라도, 음성 입력이 가능한 제 2 디바이스(200)를 통해서, 복수의 기기들을 한번에 제어할 수 있다. 또한, 제 2 디바이스(200)가 복수의 기기들과 통신 연결을 형성하는 과정을 거치지 않을 수 있으므로, 채널 형성에 드는 불필요한 시간을 절약할 수 있다. 한편, 특정 통신 기술(예컨대, 블루투스)을 이용할 때, 제어 대상 기기의 수가 한정되는 기술적 제약을 감소시킬 수 있다.
이하에서는, 도 2를 참조하여, 일 실시예에 따른 제 2 디바이스에 입력된 사용자의 음성 명령을 제 1 디바이스가 수행하는 시스템에 대해서 좀 더 자세히 살펴보기로 한다.
도 2는 일 실시예에 따르는 기기 제어 시스템을 설명하기 위한 블록도이다.
도 2를 참조하면, 일 실시예에 따르는 기기 제어 시스템은 명령 수행 장치(이하, 제 1 디바이스라 함)(100), 명령 입력 장치(이하, 제 2 디바이스라 함)(200), 서버 장치(300)를 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 기기 제어 시스템이 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 기기 제어 시스템이 구현될 수 있다. 예를 들어, 기기 제어 시스템은 서버 장치(300)없이 제 1 디바이스(100) 및 제 2 디바이스(200)만으로 구현될 수도 있다. 각 구성에 대해서 살펴보기로 한다.
제 2 디바이스(명령 입력 장치)(200)는, 외부 기기(예컨대, 제 1 디바이스(100))를 제어하기 위한 음성을 사용자로부터 입력 받을 수 있는 장치일 수 있다. 예를 들어, 제 2 디바이스(200)는 마이크로폰(211)을 통해 사용자의 음성을 감지할 수 있다. 또한, 제 2 디바이스(200)는 프로세서(220) 및 통신부(230)를 더 포함할 수 있다. 제 2 디바이스(200)의 프로세서(220)는 마이크로폰(211)을 통해 수신되는 음성과 관련된 데이터(이하, 음성 데이터)를 기 정의된 데이터 포맷에 따라 패킷에 삽입할 수 있다. 또한, 제 2 디바이스(200)의 통신부(230)는 음성 데이터(예컨대, 음성 명령)를 포함하는 패킷을 외부로 브로드캐스팅할 수 있다.
일 실시예에 의하면, 제 2 디바이스(200)는 근거리 통신을 통해 패킷을 브로드캐스팅할 수 있다. 예를 들어, 제 2 디바이스(200)는 무선 랜(Wi-Fi), 3G, 4G, LTE, 블루투스, 지그비, WFD((Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), BLE(Bluetooth Low Energy), NFC(Near Field Communication), 사운드 통신, Ant+ 중 적어도 하나를 이용하여, 음성 데이터를 포함하는 패킷을 브로드캐스팅할 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에 따른 제 2 디바이스(200)는 다양한 형태로 구현될 수 있다. 예를 들어, 제 2 디바이스(200)는, 디지털 카메라, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 태블릿 PC, 전자북 단말기, 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable MultimediaPlayer), 네비게이션, MP3 플레이어 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
한편, 제 2 디바이스(200)는 사용자에 의해 착용될 수 있는 장치(wearable device)일 수도 있다. 예를 들어, 제 2 디바이스(200)는 액세서리 형 장치(예컨대, 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈), 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형 장치(예: 전자 의복), 신체 부착형 장치(예컨대, 스킨 패드(skin pad)), 또는 생체 이식형 장치(예: implantable circuit) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 하지만, 이하에서는, 설명의 편의상 제 2 디바이스(200)가 모바일 단말인 경우를 예로 들어 설명하기로 한다.
제 1 디바이스(명령 수행 장치)(100)는, 외부에서 브로드캐스팅되는 음성 데이터(예컨대, 음성 명령)를 포함하는 패킷을 수신하고, 음성 명령에 대응하는 제어 동작을 수행할 수 있는 장치일 수 있다. 예를 들어, 제 1 디바이스(100)는, 디스플레이 장치(예컨대, TV), 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 태블릿 PC, 전자북 단말기, 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable MultimediaPlayer), 네비게이션, MP3 플레이어, CE 기기(예컨대, 조명 장치, 냉장고, 에어컨, 정수기, 제습기, 가습기, 커피 머신, 오븐, 로봇 청소기, 체중기 등), 웨어러블 디바이스(예컨대, 밴드, 시계, 안경, VR, 신발, 벨트, 장갑, 반지, 목걸이 등), 여러 종류의 센서들(예컨대, 온도 센서, 습도 센서, 먼지 센서, 혈당 센서 등)일 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에 의하면, 제 1 디바이스(100)는 통신부(110) 및 프로세서(120)를 포함할 수 있다. 이때, 통신부(110)는 제 2 디바이스(200)로부터 브로드캐스팅되는 패킷을 수신하기 위한 제 1 통신부(101) 및 서버 장치(300)와 데이터를 송수신하기 위한 제 2 통신부(102)를 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 제 1 디바이스(100)는 저장부(130)를 더 포함할 수도 있다.
일 실시예에 의하면, 제 1 디바이스(100)의 저장부(130)는 사용자 인증 모델, 음성 인식 모델을 저장할 수 있다. 이 경우, 제 1 디바이스(100)는 음성 데이터에 기반한 사용자 인증 기능 및 음성 인식 기능을 제공할 수 있다. 일 실시예에 의하면, 사용자 인증 모델은, 사용자가 미리 등록한 음성의 특성 정보에 기초하여, 사용자를 인증하는 학습 모델일 수 있다. 예를 들어, 사용자 인증 모델은 음성 패턴 매칭 기술에 기반하여 사용자를 인증하는 모델일 수 있다. 또한, 음성 인식 모델은 패킷에 포함된 음성 데이터를 분석하여, 음성 데이터에 포함된 제어 명령을 검출(획득)하는 모델일 수 있다. 예를 들어, 음성 인식 모델은 자연어 처리 기술을 이용하여 사용자의 음성을 인식하는 모델일 수 있다.
한편, 일 실시예에 의하면, 제 1 디바이스(100)의 저장부(130)는 사용자 인증 모델만 포함하고, 음성 인식 모델은 포함하지 않을 수도 있다. 이 경우, 음성 데이터에 기반한 사용자 인증은 제 1 디바이스(100)에서 수행되고, 음성 인식을 통해 제어 명령을 검출하는 동작은 서버 장치(300)에서 수행될 수 있다.
일 실시예에 의하면, 제 1 디바이스(100)의 저장부(130)는 사용자 인증 모델 및 음성 인식 모델 모두를 포함하지 않을 수 있다. 이 경우, 제 1 디바이스(100)는 음성 데이터를 서버 장치(300)에 전송하면서, 사용자 인증 및 제어 명령에 관한 정보를 요청할 수 있다.
서버 장치(300)는 제 2 디바이스(200)로부터 음성 데이터를 수신하고, 제 2 디바이스(200)의 요청에 따라 사용자 인증 또는 음성 인식을 수행할 수 있다. 예를 들어, 서버 장치(300)는 기 생성된 사용자 인증 모델을 이용하여 음성 데이터에 기반한 사용자 인증을 수행할 수 있다. 또한, 서버 장치(300)는, 사용자 인증에 성공한 경우, 음성 인식 모델을 이용하여 음성 데이터로부터 제어 명령을 나타내는 동작 코드를 검출하고, 검출된 동작 코드를 제 2 디바이스(200)로 전송할 수 있다.
일 실시예에 의하면, 서버 장치(300)는 AI 프로세서를 포함할 수 있다. AI 프로세서는 인공신경망을 학습시켜, 집중 검사 영역을 결정하는 AI 모델(예컨대, 사용자 인증 모델, 음성 인식 모델)을 생성할 수 있다. 인공신경망을 ‘학습’시킨다는 것은 데이터를 바탕으로 가중치를 적절히 바꿔주면서 인공신경망을 구성하는 뉴런들의 연결이 최적의 의사결정을 할 수 있는 수학적 모델을 만드는 것을 의미할 수 있다.
이하에서는 제 1 디바이스(100)가 음성 인식 기능을 제공하는 실시예에 대해서 도 3 내지 도 8을 참조하여 먼저 살펴보고, 제 1 디바이스(100)가 음성 인식 기능을 제공하지 않는 실시예에 대해서 도 9 내지 도 14를 참조하여 후에 살펴보기로 한다.
도 3은 일 실시예에 따르는 제 1 디바이스가 음성 명령을 수행하는 방법을 설명하기 위한 도면이다.
단계 S310에서, 제 1 디바이스(100)는 제 2 디바이스(200)로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신할 수 있다. 예를 들어, 제 2 디바이스(200)는 사용자로부터 발화된 음성 명령을 수신하고, 음성 명령을 포함하는 음성 데이터를 패킷에 삽입할 수 있다. 그리고 제 2 디바이스(200)가 패킷을 브로드캐스팅하는 경우, 제 2 디바이스(200)로부터 소정 거리에 위치하는 제 1 디바이스(100)는 근거리 통신을 통해 패킷을 검색할 수 있다.
도 4를 참조하면, 일 실시예에 따른 패킷(400)은 비콘 타입을 나타내는 제 1 필드(401), 패킷 번호를 나타내는 제 2 필드(402), 음성 길이를 나타내는 제 3 필드(403), 음성 데이터를 포함하는 제 4 필드(404)를 포함할 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 패킷(400)은 선택 필드 플래그를 포함하는 제 5 필드(405), 식별키를 포함하는 제 6 필드(406), 동작 코드(OP code: Operation code) 포함하는 제 7 필드(407)를 더 포함할 수 있다. 패킷(400)이 식별키 및 동작 코드를 더 포함하는 경우, 선택 필드 플래그는 'TRUE'로 표시될 수 있다.
단계 S320에서, 제 1 디바이스(100)는, 패킷(400)에 포함된 음성 데이터를 이용하여, 사용자에 대한 인증을 수행할 수 있다.
일 실시예에 의하면, 제 1 디바이스(100)는 패턴 매칭 기술을 이용하여, 사용자에 대한 인증을 수행할 수 있다. 예를 들어, 제 1 디바이스(100)는 패킷(400)에 포함된 음성 데이터로부터 제 1 음성 특징 정보를 검출하고, 제 1 음성 특징 정보를 기 저장된(또는 기 등록된) 제 2 음성 특징 정보와 비교할 수 있다. 제 2 음성 특징 정보는 사용자가 인증을 위해 미리 제 1 디바이스(100)에 등록한 음성으로부터 검출된 특징 정보일 수 있다. 제 1 디바이스(100)는 선형예측계수(Linear Predictive Coefficient) 기술, 켑스트럼(Cepstrum) 기술, 멜프리퀀시켑스트럼(Mel Frequency Cepstral Coefficient, MFCC) 기술, 주파수 대역별 에너지(Filter Bank Energy) 기술 등을 이용하여 음성 데이터로부터 제 1 음성 특징 정보를 검출할 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에 의하면, 제 1 디바이스(100)는, 제 1 음성 특징 정보와 제 2 음성 특징 정보를 비교한 결과에 기초하여, 사용자에 대한 인증을 수행할 수 있다. 예를 들어, 제 1 음성 특징 정보와 제 2 음성 특징 정보 간의 유사도가 임계 값(예컨대, 99%) 이상인 경우, 제 1 디바이스(100)는, 사용자에 대한 인증에 성공했다고 결정할 수 있다. 반면, 제 1 음성 특징 정보와 제 2 음성 특징 정보 간의 유사도가 임계 값보다 작은 경우, 제 1 디바이스(100)는 사용자에 대한 인증에 실패했다고 결정할 수 있다.
일 실시예에 의하면, 제 1 디바이스(100)는 실제 사용자가 발화하는 음성의 특징 정보와 녹음된 음성의 특징 정보를 구별할 수도 있다. 따라서, 제 1 디바이스(100)는, 패킷(400)에 포함된 음성 데이터가 녹음된 음성을 포함하는 경우 사용자에 대한 인증에 실패했다고 판단하고, 패킷(400)에 포함된 음성 데이터가 실시간으로 사용자가 발화한 음성을 포함하는 경우에는 사용자에 대한 인증에 성공했다고 판단할 수 있다.
한편, 일 실시예에 의하면, 제 1 디바이스(100)는 음성 데이터로부터 개인 인증 단어를 식별하고, 식별된 개인 인증 단어로부터 제 1 음성 특징 정보를 검출할 수도 있다. 이 경우, 제 1 디바이스(100)는 짧은 단어로부터 제 1 음성 특징 정보를 검출하게 되므로, 계산량이 줄어들 수 있다. 또한, 음성 데이터에 개인 인증 단어가 포함된 경우에만 사용자에 대한 인증에 성공할 수 있으므로, 보안이 강화될 수 있다.
예를 들어, 사용자가 '팅커벨'을 개인 인증 단어로 미리 등록한 경우, 제 2 디바이스(200)는 사용자의 '팅커벨'을 발화한 음성으로부터 제 2 음성 특징 정보를 추출하고, 제 2 음성 특징 정보를 저장할 수 있다. 따라서, 이후 사용자가 제 1 디바이스(100)를 제어하기 위해서는 '팅커벨'을 포함하는 음성을 발화하여야 한다. 예컨대, 사용자가 "팅커벨, 청소 모드" 라고 발화하는 경우, 제 2 디바이스(200)는 사용자의 음성 명령("팅커벨, 청소 모드")을 감지하고, 기 정의된 포맷에 따라 음성 명령을 포함하는 패킷을 생성하여, 브로드캐스팅할 수 있다. 이 경우, 제 1 디바이스(100)는 음성 명령("팅커벨, 청소 모드")을 포함하는 패킷을 수신하고, 패킷으로부터 '팅커벨'과 관련된 음성 데이터를 식별할 수 있다. 그리고 제 1 디바이스(100)는 '팅커벨'과 관련된 음성 데이터로부터 제 1 음성 특징 정보를 추출할 수 있다. 제 1 디바이스(100)는 제 1 음성 특징 정보와 기 저장된 제 2 음성 특징 정보를 비교한 결과에 기초하여, 사용자 인증을 수행할 수 있다.
한편, 사용자가 개인 인증 단어를 등록한 경우, 제 2 디바이스(200)는 개인 인증 단어가 감지되는 경우, 사용자의 별도 입력이 없더라도, 자동으로 음성 데이터를 포함하는 패킷을 생성해서 브로드캐스팅할 수 있다.
일 실시예에 의하면, 제 1 디바이스(100)가 음성 데이터로부터 제 1 음성 특징 정보를 검출하는데 실패한 경우, 제 1 디바이스(100)는 식별키를 이용하여 사용자에 대한 인증을 수행할 수도 있다. 제 1 디바이스(100)가 식별키를 이용하여 사용자에 대한 인증을 수행하는 동작에 대해서는 도 5를 참조하여 후에 살펴보기로 한다.
단계 S330에서, 제 1 디바이스(100)는, 사용자에 대한 인증에 성공한 경우, 음성 데이터로부터 제어 명령을 검출할 수 있다.
일 실시예에 의하면, 제 1 디바이스(100)는 자연어 처리에 기반하여 음성 데이터를 분석한 결과 데이터를 생성할 수 있다. 예를 들어, 제 1 디바이스(100)는, 음성 데이터를 텍스트 데이터로 변환하고, 자연어 처리(Natural Language Processing)에 기반하여 텍스트 데이터로부터 제어 명령을 검출할 수 있다. 예컨대, 제 1 디바이스(100)는, '청소 모드 시작'이라는 음성을 포함하는 음성 데이터를 분석하여, 제 1 디바이스(100)가 수행할 수 있는 제어 명령을 검출할 수 있다. 제 1 디바이스(100)가 청소기인 경우, 제 1 디바이스(100)는 '동작 모드를 대기 모드에서 청소 모드로 전환'이라는 제어 명령을 검출할 수 있고, 제 1 디바이스(100)가 창문인 경우, 제 1 디바이스(100)는 '창문 열기'를 제어 명령으로 검출할 수 있고, 제 1 디바이스(100)가 공기 청정기인 경우, 제 1 디바이스(100)는 정화 강도를 '강'으로 조절하는 것을 제어 명령으로 검출할 수 있다.
한편, 일 실시예에 의하면, 제 1 디바이스(100)는 음성 데이터로부터 제어 명령을 나타내는 동작 코드를 검출할 수도 있다. 예를 들어, 제 1 디바이스(100)는, 음성 데이터에 '청소 모드'라는 명령이 포함되어 있는 경우, '동작 코드: 1'을 검출할 수 있고, 음성 데이터에 '외출 모드'라는 명령이 포함되어 있는 경우 '동작 코드: 2'를 검출할 수 있다.
단계 S340에서, 제 1 디바이스(100)는, 제어 명령에 대응하는 제어 동작을 수행할 수 있다.
일 실시예에 의하면, 제어 동작은, 제 1 디바이스(100)의 일부를 움직이는 동작, 제 1 디바이스(100)의 모드를 설정 또는 전환하는 동작, 전원을 온 또는 오프하는 동작, 소정 애플리케이션을 실행하는 동작 등일 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에 의하면, 제 1 디바이스(100)는 검출된 제어 명령이 제 1 동작 코드를 포함하는 경우, 제 1 동작 코드에 대응하는 제 1 제어 동작을 제 1 디바이스(100)의 동작 테이블로부터 식별할 수 있다. 그리고 제 1 디바이스(100)는 제 1 제어 동작을 수행할 수 있다. 동작 테이블은 동작 코드와 제어 동작을 맵핑한 테이블일 수 있다. 동작 테이블은 디바이스에서 제공하는 기능에 따라 디바이스 별로 상이할 수 있다. 예를 들어, 동일한 동작 코드에 대해서도 디바이스 별로 상이한 제어 동작이 맵핑되어 있을 수 있다.
예를 들어, 제 1 디바이스(100)가 청소기이고, 음성 데이터로부터 '동작 코드: 1'이 검출된 경우, 제 1 디바이스(100)는 청소기의 동작 테이블에서 '동작 코드: 1'에 대응하는 제어 동작을 식별할 수 있다. 예를 들어, '동작 코드: 1'에 대응하는 제어 동작은 '동작 모드를 대기 모드에서 청소 모드로 전환하는 동작'일 수 있다. 이 경우, 제 1 디바이스(100)는 제 1 디바이스(100)의 동작 모드를 대기 모드에서 청소 모드로 전환할 수 있다.
이하에서는 도 5를 참조하여 제 1 디바이스(100)에서 사용자에 대한 인증을 수행하는 동작에 대해서 좀 더 자세히 살펴보기로 한다.
도 5는 일 실시예에 따르는 제 1 디바이스에서 사용자에 대한 인증을 수행하는 방법을 설명하기 위한 순서도이다.
단계 S510에서, 제 2 디바이스(200)는, 마이크로폰(211)을 통해 사용자의 음성을 수신할 수 있다. 예를 들어, 제 2 디바이스(200)는 사용자로부터 제 1 디바이스(100)를 제어하기 위한 제어 명령을 포함하는 음성을 수신할 수 있다.
일 실시예에 의하면, 사용자는 음성 인식 위젯(widget)을 실행하고, 음성 인식 위젯을 통해서 음성 명령을 입력할 수 있다. 예를 들어, 제 1 디바이스(100)에 부착된 특정 하드웨어 키가 소정 시간이상 눌리는 이벤트가 발생하는 경우, 제 1 디바이스(100)는 음성 인식 위젯(10)을 제공할 수 있다.
여기서, 위젯(widget)은 사용자와 응용프로그램 운영체계와의 상호작용을 원활하게 지원해주는 그래픽 유저 인터페이스(GUI; 그래픽을 통해 작업할 수 있는 환경을 뜻하는 말)의 하나인 미니 애플리케이션(응용프로그램, 소프트웨어)을 의미할 수 있다.
일 실시예예 의하면, 사용자가 개인 인증 단어를 발화하는 이벤트가 발생하는 경우, 제 1 디바이스(100)는 개인 인증 단어부터 시작되는 음성을 내부 메모리(또는 외부 메모리)에 저장할 수 있다. 예를 들어, 사용자가 개인 인증 단어인 '피터팬'을 발화한 후 '난 이제 잘래'라고 말하는 경우, 제 1 디바이스(100)는 '피터팬, 난 이제 잘래'라는 음성을 저장할 수 있다.
단계 S520에서, 제 2 디바이스(200)는 수신된 음성에 대응하는 음성 데이터를 포함하는 패킷을 브로드캐스팅할 수 있다.
일 실시예에 의하면, 제 2 디바이스(200)는 기 정의된 데이터 포맷에 따라 패킷을 생성할 수 있다. 예컨대, 도 4를 참조하면, 제 2 디바이스(200)는, 비콘 타입을 포함하는 제 1 필드(401), 패킷 번호를 포함하는 제 2 필드(402), 음성 길이를 나타내는 제 3 필드(403), 음성 데이터를 포함하는 제 4 필드(404)를 포함하는 패킷을 생성할 수 있다.
한편, 일 실시예에 의하면, 제 2 디바이스(200)는 선택 필드 플래그를 포함하는 제 5 필드(405), 식별키를 포함하는 제 6 필드(406), 동작 코드(OP code: Operation code) 포함하는 제 7 필드(407)를 더 포함하여, 패킷을 생성할 수도 있다.
일 실시예에 의하면, 제 2 디바이스(200)가 음성 인식 모델 및 제어 명령 테이블(또는 명령어 데이터베이스)을 내부 메모리에 저장하고 있는 경우, 제 2 디바이스(200)는, 음성 인식 모델 및 동작 테이블을 통해 동작 코드를 획득할 수 있다. 예를 들어, 제 2 디바이스(200)는 음성 인식 모델을 통해 음성 데이터로부터 제어 명령을 검출하고, 검출된 제어 명령에 맵핑되어 있는 동작 코드를 동작 테이블로부터 획득할 수 있다. 제 2 디바이스(200)는 획득된 동작 코드를 제 7 필드(407)에 삽입할 수 있다.
다른 실시예에 의하면, 제 2 디바이스(200)는 서버 장치(300)에 음성 데이터를 전송하면서 동작 코드를 요청할 수도 있다. 이 경우, 서버 장치(300)는 음성 인식 모델 및 동작 테이블에 기초하여, 음성 데이터로부터 동작 코드를 검출할 수 있다. 서버 장치(300)가 동작 코드에 관한 정보를 제 2 디바이스(200)에 전송하는 경우, 제 2 디바이스(200)는 수신한 동작 코드를 제 7 필드(407)에 삽입할 수 있다.
일 실시예에 의하면, 제 2 디바이스(200)는 제 1 디바이스(100)와 공유하고 있는 식별키를 제 6 필드(406)에 삽입할 수도 있다. 제 6 필드(406) 또는 제 7 필드(407)에 추가 정보가 포함되는 경우, 제 2 디바이스(200)는 제 5 필드(405)의 선택 필드 플래그를 'TRUE'로 설정하여, 제 1 디바이스(100)가 추가 정보(예컨대, 식별키, 동작 코드)의 포함 여부를 알 수 있도록 할 수 있다.
한편, 일 실시예에 의하면, 사용자가 개인 인증 단어를 발화한 경우, 제 2 디바이스(200)는 개인 인증 단어에 대한 데이터를 음성 데이터와 분리하여 패킷에 삽입할 수도 있으나, 이에 한정되는 것은 아니다.
일 실시예에 의하면, 제 2 디바이스(200)는 패킷을 1회 브로드캐스팅할 수도 있고, 일정 시간 동안 반복적으로 패킷을 브로드캐스팅할 수도 있다.
단계 S530에서, 제 1 디바이스(100)는, 사용자의 음성 데이터를 포함하는 패킷을 수신할 수 있다. 예를 들어, 제 1 디바이스(100)는 근거리 통신을 통해 패킷을 검색할 수 있다. 단계 S530은 도 3의 단계 S310에 대응하므로, 구체적인 설명은 생략하기로 한다.
단계 S540 및 단계 S550에서, 제 1 디바이스(100)는, 음성 데이터로부터 제 1 음성 특징 정보를 검출하고, 제 1 음성 특징 정보를 이용하여, 사용자에 대한 인증을 수행할 수 있다. 예를 들어, 제 1 디바이스(100)는, 제 1 음성 특징 정보를 기 저장된 제 2 음성 특징 정보와 비교하고, 제 1 음성 특징 정보 및 제 2 음성 특징 정보 간의 유사도가 임계 값 이상인 경우 사용자에 대한 인증에 성공했다고 판단할 수 있다. 제 1 디바이스(100)는, 사용자에 대한 인증에 성공한 경우, 도 3의 단계 S330을 수행할 수 있다. 반면, 제 1 음성 특징 정보 및 제 2 음성 특징 정보 간의 유사도가 임계 값보다 작은 경우, 제 1 디바이스(100)는, 사용자에 대한 인증에 실패했다고 판단할 수 있다.
단계 S540 및 단계 S560에서, 제 1 디바이스(100)는, 음성 데이터로부터 제 1 음성 특징 정보 검출하지 못한 경우, 패킷에 포함된 식별키를 검출할 수 있다. 예를 들어, 제 1 디바이스(100) 내부의 음성 인식 모델이 음성 데이터로부터 제 1 음성 특징 정보를 검출하지 못할 수 있다. 이 경우, 제 1 디바이스(100)는, 패킷에 포함된 선택 필드 플래그가 TRUE 인지 확인하고, 선택 필드 플래그가 TRUE 인 경우, 제 6 필드(406)에 삽입된 식별키를 추출할 수 있다.
단계 S570에서, 제 1 디바이스(100)는 식별키가 검출된 경우, 식별키를 이용하여, 사용자에 대한 인증을 수행할 수 있다. 예를 들어, 제 1 디바이스(100)는 제 1 식별키를 패킷으로부터 획득한 경우, 제 2 디바이스(200)와 공유하고 있는 제 2 식별키와 제 1 식별키가 일치하는지 확인할 수 있다. 제 1 식별키가 제 2 식별키와 일치하는 경우, 제 1 디바이스(100)는 사용자에 대한 인증이 성공했다고 판단하고, 도 3의 단계 S330으로 진행할 수 있다. 반면, 제 1 디바이스(100)는 제 1 식별키가 제 2 식별키와 상이한 경우, 사용자에 대한 인증에 실패했다고 판단할 수 있다.
한편, 일 실시예에 의하면, 제 1 디바이스(100)는, 패킷에 포함된 선택 필드 플래그가 'TRUE'가 아니거나, 제 6 필드(406)에 식별키가 삽입되어 있지 않은 경우, 사용자에 대한 인증 수행이 불가능하다고 판단할 수 있다.
이하에서는, 도 6을 참조하여, 사용자에 대한 인증에 성공한 경우, 제 1 디바이스(100)가 서버 장치와 연계하여 음성 명령을 수행하는 동작에 대해서 자세히 살펴보기로 한다.
도 6은 일 실시예에 따르는 제 1 디바이스가 서버 장치와 연계하여 음성 명령을 수행하는 방법을 설명하기 위한 순서도이다.
단계 S605에서, 제 2 디바이스(200)는, 마이크로폰(211)을 통해 사용자의 음성을 수신할 수 있다. 단계 S610에서, 제 2 디바이스(200)는 수신된 음성에 대응하는 음성 데이터를 포함하는 패킷을 브로드캐스팅할 수 있다. 단계 S615에서, 제 1 디바이스(100)는, 사용자의 음성 데이터를 포함하는 패킷을 수신할 수 있다. 단계 S605 내지 S615는, 도 5의 단계 S510 내지 S530에 대응하므로, 구체적인 설명은 생략하기로 한다.
단계 S620에서, 제 1 디바이스(100)는 사용자에 대한 인증을 수행할 수 있다. 일 실시예에 의하면, 제 1 디바이스(100)는 음성 데이터로부터 제 1 음성 특징 정보를 검출하고, 검출된 제 1 음성 특징 정보와 기 저장된 제 2 음성 특징 정보를 비교한 결과에 기초하여 사용자에 대한 인증을 수행할 수 있다. 또는, 제 1 디바이스(100)는, 제 1 디바이스(100)와 제 2 디바이스(200) 간에 공유하는 식별키를 이용하여, 사용자에 대한 인증을 수행할 수도 있다. 제 1 디바이스(100)가 사용자에 대한 인증을 수행하는 동작에 대해서는 도 5에서 자세히 살펴봤으므로, 여기서는 중복되는 설명은 생략하기로 한다.
단계 S625 및 단계 S630에서, 제 1 디바이스(100)는, 사용자에 대한 인증에 성공한 경우, 음성 데이터를 서버 장치(300)에 전송하면서, 음성 데이터에 포함된 제어 명령에 관한 정보를 요청할 수 있다. 일 실시예에 의하면, 제 1 디바이스(100)는 음성 데이터를 분석하여 제어 명령을 검출할 수 있는 음성 인식 모델을 가지고 있지 않을 수 있다. 따라서, 제 1 디바이스(100)는 제 1 디바이스(100)에 연결된 서버 장치(300)에 음성 데이터에 대한 분석을 요청할 수 있다.
단계 S635에서, 서버 장치(300)는 음성 데이터를 분석하여, 제어 명령을 검출할 수 있다.
일 실시예에 의하면, 서버 장치(300) 자연어 처리에 기반하여, 제 1 디바이스(100)로부터 수신된 음성 데이터를 분석할 수 있다. 예를 들어, 서버 장치(300)는, 음성 데이터를 텍스트 데이터로 변환하고, 자연어 처리(Natural Language Processing)에 기반하여 텍스트 데이터로부터 제어 명령을 검출할 수 있다. 예컨대, 서버 장치(300)는, '청소 모드 시작'이라는 음성을 포함하는 음성 데이터를 분석하여, 제 1 디바이스(100)가 수행할 수 있는 제어 명령을 검출할 수 있다.
일 실시예에 의하면, 서버 장치(300)는 음성 데이터로부터 제어 명령을 나타내는 동작 코드를 검출할 수 있다. 예를 들어, 서버 장치(300)는, 음성 데이터에 '청소 모드'라는 명령이 포함되어 있는 경우, 제어 명령과 동작 코드를 맵핑한 테이블에 기초하여, '동작 코드: 1'을 검출할 수 있고, 음성 데이터에 '외출 모드'라는 명령이 포함되어 있는 경우 '동작 코드: 2'를 검출할 수 있다.
단계 S640에서, 서버 장치(300)는 검출된 제어 명령에 관한 정보를 제 1 디바이스(100)에 전송할 수 있다. 예를 들어, 서버 장치(300)는 제어 명령을 나타내는 동작 코드를 제 1 디바이스(100)로 전송할 수 있다.
단계 S645에서, 제 1 디바이스(100)는 제어 명령에 대응하는 제어 동작을 수행할 수 있다. 예를 들어, 제 1 디바이스(100)는 서버 장치(300)로부터 제 1 동작 코드를 수신한 경우, 제 1 동작 코드에 대응하는 제 1 제어 동작을 제 1 디바이스(100)의 동작 테이블로부터 식별할 수 있다. 그리고 제 1 디바이스(100)는 제 1 제어 동작을 수행할 수 있다. 단계 S645 는 도 3의 단계 S340에 대응하므로 구체적인 설명은 생략하기로 한다.
단계 S650에서, 일 실시예에 의하면, 제 1 디바이스(100)는, 제 2 디바이스(200)와 통신 링크가 형성되어 있는 경우, 제어 동작을 수행한 결과를 제 2 디바이스(200)에 전송할 수도 있다. 예를 들어, 제 1 디바이스(100)는 동작 모드를 전환한 결과, 설정 값을 변경한 결과, 기계적인 동작을 수행한 결과 등을 근거리 통신 링크를 통해 제 2 디바이스(200)로 전달할 수 있다.
이 경우, 제 2 디바이스(200)는 제어 동작 수행 결과를 사용자 인터페이스를 통해 제공할 수 있다. 예를 들어, "청소 모드"라는 사용자 음성이 입력된 경우, 제 2 디바이스(200)는, '로봇 청소기: 대기 모드에서 청소 모드로 전환, 창문: OPEN, 공기 청정기: ON" 등의 정보를 디스플레이부에 표시하거나, 스피커를 통해 음성으로 출력할 수 있다.
일 실시예에 의하면, 사용자에 대한 인증을 수행하는 동작은 제 1 디바이스(100)에서 수행하고, 음성 인식을 수행하여 제어 명령을 획득하는 동작은 서버 장치(300)에서 수행할 수 있다.
한편, 일 실시예에 의하면, 단계 S605 내지 단계 S650 중의 일부 단계가 생략될 수도 있고, 일부 단계들의 순서가 변경될 수도 있다.
도 7은 다른 실시예에 따르는 제 1 디바이스가 서버 장치와 연계하여 음성 명령을 수행하는 방법을 설명하기 위한 순서도이다.
단계 S705에서, 일 실시예에 따른 제 1 디바이스(100)는, 사용자의 음성 데이터를 포함하는 패킷을 수신할 수 있다. 단계 S710에서, 제 1 디바이스(100)는 음성 데이터에 기반하여 사용자에 대한 인증을 수행할 수 있다. 단계 S705 및 단계 S710은 도 6의 단계 S615 및 단계 S620에 대응되므로, 구체적인 설명은 생략하기로 한다.
단계 S715 및 단계 S720에서, 제 1 디바이스(100)는, 사용자에 대한 인증에 성공한 경우, 제 1 디바이스(100) 내에 저장되어 있는 제 1 음성 인식 모델을 이용하여, 음성 데이터로부터 제어 명령을 검출할 수 있다. 제 1 디바이스(100)가 음성 데이터로부터 제어 명령을 검출한 경우, 제 1 디바이스(100)는 제어 명령에 대응하는 제어 동작을 수행할 수 있다(단계 S740).
단계 S720 및 단계 S725에서, 제 1 디바이스(100)는, 제 1 음성 인식 모델을 이용하여 제어 명령을 검출하는데 실패한 경우, 음성 데이터를 서버 장치(300)로 전송하면서, 음성 데이터에 대한 분석을 요청할 수 있다.
단계 S730에서, 서버 장치(100)는, 제 2 음성 인식 모델을 이용하여, 음성 데이터로부터 제어 명령을 검출할 수 있다. 예를 들어, 서버 장치(300)는, 음성 데이터를 텍스트 데이터로 변환하고, 자연어 처리(Natural Language Processing)에 기반하여 텍스트 데이터로부터 제어 명령을 검출할 수 있다.
일 실시예에 의하면, 서버 장치(300)는 음성 데이터를 분석하여, 제어 명령을 나타내는 동작 코드를 획득할 수 있다. 예를 들어, 서버 장치(300)는, 음성 데이터에 '청소 모드'라는 명령이 포함되어 있는 경우, 제어 명령과 동작 코드를 맵핑한 테이블에 기초하여 '동작 코드: 1'을 검출할 수 있고, 음성 데이터에 '외출 모드'라는 명령이 포함되어 있는 경우, '동작 코드: 2'를 검출할 수 있다.
일 실시예에 의하면, 제 1 디바이스(100)의 제 1 음성 인식 모델보다는 서버 장치(300)의 제 2 음성 인식 모델의 성능이 더 뛰어날 수 있다. 예를 들어, 제 2 음성 인식 모델의 자연어 처리 능력이 제 1 음성 인식 모델에 비해 뛰어날 수 있다. 따라서, 제 1 디바이스(100) 대신에 서버 장치(300)에서 음성 데이터를 분석할 수 있다.
단계 S735에서, 서버 장치(300)는 제어 명령에 관한 정보를 제 1 디바이스(100)로 전송할 수 있다. 예를 들어, 서버 장치(300)는 제어 명령을 나타내는 동작 코드를 제 1 디바이스(100)로 전송할 수 있다.
단계 S740에서, 제 1 디바이스(100)는, 제어 명령에 대응하는 제어 동작을 수행할 수 있다. 예를 들어, 제 1 디바이스(100)는 서버 장치(300)로부터 제 1 동작 코드를 수신한 경우, 제 1 동작 코드에 대응하는 제 1 제어 동작을 제 1 디바이스(100)의 동작 테이블로부터 식별할 수 있다. 그리고 제 1 디바이스(100)는 제 1 제어 동작을 수행할 수 있다. 단계 S740은 도 3의 단계 S340에 대응하므로 구체적인 설명은 생략하기로 한다.
도 8은 일 실시예에 따르는 제 1 디바이스의 제 1 음성 인식 모델과 서버 장치의 제 2 음성 인식 모델을 설명하기 위한 도면이다. 도 8에서는 제 1 디바이스(100)가 에어컨(800)인 경우를 예로 들어 설명하기로 한다.
일 실시예에 의하면, 제 2 디바이스(200)는 "너무 추워"라는 제 1 음성 명령(810)을 마이크로폰(211)을 통해 획득할 수 있다. 이 경우, 제 2 디바이스(200)는 "너무 추워"라는 제 1 음성 데이터가 삽입된 패킷을 생성하고, 생성된 패킷을 브로드캐스팅할 수 있다. 이때, 에어컨(800)은 패킷을 검색하고, 검색된 패킷에 포함된 제 1 음성 데이터를 제 1 음성 인식 모델(801)을 이용하여 분석해 볼 수 있다. 하지만, 제 1 음성 인식 모델(801)이 제 1 음성 데이터(예컨대, 너무 추워)로부터 제어 명령(예컨대, 에어컨(800)의 설정 온도를 20℃에서 25℃로 변경)을 정확히 검출하지 못하는 경우, 에어컨(800)은 제 1 음성 데이터(예컨대, 너무 추워)를 서버 장치(300)로 전송할 수 있다. 서버 장치(300)는 제 2 음성 인식 모델(802)을 이용하여, 제 1 음성 데이터(예컨대, 너무 추워)를 분석할 수 있다. 서버 장치(300)는 제 1 음성 데이터(예컨대, 너무 추워)로부터 제어 명령(예컨대, 에어컨(800)의 설정 온도를 20℃에서 25℃로 변경)을 검출할 수도 있고, 제어 명령에 대응하는 동작 코드로서 'aaa'를 검출할 수도 있다. 서버 장치(300)가 제어 명령(예컨대, 에어컨(800)의 설정 온도를 20℃에서 25℃로 변경) 또는 동작 코드(예컨대, aaa)를 에어컨(800)으로 전송하는 경우, 에어컨(800)은 설정 온도를 20℃에서 25℃로 변경할 수 있다.
일 실시예에 의하면, 제 2 디바이스(200)는, "실내 온도를 조금 높여줘"라는 제 2 음성 명령(820)을 마이크로폰(211)을 통해 획득할 수 있다. 이 경우, 제 2 디바이스(200)는 "실내 온도를 조금 높여줘"라는 제 2 음성 데이터가 삽입된 패킷을 생성하고, 생성된 패킷을 브로드캐스팅할 수 있다. 이때, 에어컨(800)은 패킷을 검색하고, 제 1 음성 인식 모델(801)을 이용하여 패킷에 포함된 제 2 음성 데이터에 대한 분석을 시도해 볼 수 있다. 하지만, 제 1 음성 인식 모델(801)이 제 2 음성 데이터(예컨대, 실내 온도를 조금 높여줘)로부터 제어 명령(예컨대, 에어컨(800)의 설정 온도를 20℃에서 25℃로 변경)을 정확히 검출하지 못하는 경우, 에어컨(800)은 제 2 음성 데이터(예컨대, 실내 온도를 조금 높여줘)를 서버 장치(300)로 전송할 수 있다. 서버 장치(300)는 제 2 음성 인식 모델(802)을 이용하여, 제 2 음성 데이터(예컨대, 실내 온도를 조금 높여줘)를 분석할 수 있다. 서버 장치(300)는 제 2 음성 데이터(예컨대, 실내 온도를 조금 높여줘)로부터 제어 명령(예컨대, 에어컨(800)의 설정 온도를 20℃에서 25℃로 변경)을 검출할 수도 있고, 제어 명령에 대응하는 동작 코드로서 'aaa'를 검출할 수도 있다. 서버 장치(300)가 제어 명령(예컨대, 에어컨(800)의 설정 온도를 20℃에서 25℃로 변경) 또는 동작 코드(예컨대, aaa)를 에어컨(800)으로 전송하는 경우, 에어컨(800)은 설정 온도를 20℃에서 25℃로 변경할 수 있다.
한편, 일 실시예에 의하면, 제 2 디바이스(200)는 "외출 모드"라는 제 3 음성 명령(830)을 마이크로폰(211)을 통해 획득할 수 있다. 이 경우, 제 2 디바이스(200)는 "외출 모드"라는 제 3 음성 데이터가 삽입된 패킷을 생성하고, 생성된 패킷을 브로드캐스팅할 수 있다. 이때, 에어컨(800)은 패킷을 검색하고, 검색된 패킷에 포함된 제 3 음성 데이터를 제 1 음성 인식 모델(801)을 이용하여 분석해 볼 수 있다. 제 1 음성 인식 모델(801)이 제 3 음성 데이터(예컨대, 외출 모드)로부터 정확히 제어 명령(예컨대, 에어컨(800)의 동작 모드를 외출 모드로 설정) 또는 제어 명령을 나타내는 동작 코드(예컨대, 'bbb')를 검출하는 경우, 에어컨(800)는 서버 장치(300)에 제 3 음성 데이터에 대한 분석을 요청하지 않고, 에어컨(800)의 동작 모드를 외출 모드로 설정할 수 있다.
도 3 내지 도 8에서는 제 1 디바이스(100)가 음성 인식 모델을 가지는 경우를 예로 들어 설명하였으나, 이하에서는 제 1 디바이스(100)가 음성 인식 모델을 가지지 않는 경우를 도 9 내지 도 14를 참조하여, 자세히 살펴보기로 한다.
도 9는 일 실시예에 따르는 제 1 디바이스가 음성 명령을 수행하는 방법을 설명하기 위한 순서도이다.
단계 S910에서, 제 1 디바이스(100)는, 제 2 디바이스(200)로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신할 수 있다. 예를 들어, 제 2 디바이스(200)는 사용자로부터 발화된 음성 명령을 수신하고, 음성 명령을 포함하는 음성 데이터를 패킷에 삽입할 수 있다. 그리고 제 2 디바이스(200)가 패킷을 브로드캐스팅하는 경우, 제 2 디바이스(200)로부터 소정 거리에 위치하는 제 1 디바이스(100)는 근거리 통신을 통해 패킷을 검색할 수 있다.
일 실시예에 따른 패킷은, 비콘 타입을 나타내는 제 1 필드(401), 패킷 번호를 나타내는 제 2 필드(402), 음성 길이를 나타내는 제 3 필드(403), 음성 데이터를 포함하는 제 4 필드(404)를 포함할 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 패킷은 선택 필드 플래그를 포함하는 제 5 필드, 식별키를 포함하는 제 6 필드(406), 동작 코드(OP code: Operation code) 포함하는 제 7 필드(407)를 더 포함할 수 있다. 패킷이 식별키 및 동작 코드를 더 포함하는 경우, 선택 필드 플래그는 'TRUE'로 표시될 수 있다.
단계 S920에서, 제 1 디바이스(100)는, 음성 데이터를 서버 장치(300)에 전송할 수 있다. 예를 들어, 제 1 디바이스(100)는 패킷이 수신된 경우, 패킷으로부터 음성 데이터를 추출하고, 추출된 음성 데이터를 서버 장치(300)에 전송할 수 있다. 이때, 제 1 디바이스(100)는 서버 장치(300)에 음성 데이터에 기반한 사용자 인증 및 제어 명령에 관한 정보를 요청할 수 있다.
일 실시예에 의하면, 제 1 디바이스(100)는, 패킷이 수신되는 경우, 소정 조건에 기초하여, 보안 모드 및 비보안 모드 중 하나를 제 1 디바이스(100)의 동작 모드로 식별할 수 있다. 보안 모드는 서버 장치(100)에서 사용자에 대한 인증 및 음성 데이터에 대한 분석을 수행하는 모드이고, 비보안 모드는 제 1 디바이스(100)에서 사용자에 대한 인증 및 음성 데이터에 대한 분석을 수행하는 모드일 수 있다. 일 실시예에 의하면, 제 1 디바이스(100)는, 식별된 제 1 디바이스(100)의 동작 모드가 보안 모드인 경우에 음성 데이터를 서버 장치(300)로 전송하고, 제 1 디바이스(100)의 동작 모드가 비보안 모드인 경우 음성 데이터를 서버 장치(300)로 전송하지 않을 수 있다. 제 1 디바이스(100)가 동작 모드를 식별하는 방법에 대해서는 도 10 내지 도 13을 참조하여 후에 자세히 살펴보기로 한다.
단계 S930에서, 제 1 디바이스(100)는, 음성 데이터에 기초하여 사용자에 대한 인증을 수행한 결과 및 음성 데이터로부터 검출된 제어 명령에 관한 정보를 서버 장치(300)로부터 수신할 수 있다.
일 실시예에 의하면, 서버 장치(300)는 패턴 매칭 기술을 이용하여, 사용자에 대한 인증을 수행할 수 있다. 예를 들어, 서버 장치(300)는 제 1 디바이스(100)로부터 수신된 음성 데이터로부터 제 1 음성 특징 정보를 검출하고, 제 1 음성 특징 정보를 기 저장된(또는 기 등록된) 제 2 음성 특징 정보와 비교할 수 있다. 제 2 음성 특징 정보는 사용자가 인증을 위해 미리 서버 장치(300)에 등록한 음성으로부터 검출된 특징 정보일 수 있다. 서버 장치(300)는 선형예측계수(Linear Predictive Coefficient) 기술, 켑스트럼(Cepstrum) 기술, 멜프리퀀시켑스트럼(Mel Frequency Cepstral Coefficient, MFCC) 기술, 주파수 대역별 에너지(Filter Bank Energy) 기술 등을 이용하여 음성 데이터로부터 제 1 음성 특징 정보를 검출할 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에 의하면, 서버 장치(300)는, 제 1 음성 특징 정보와 제 2 음성 특징 정보를 비교한 결과에 기초하여, 사용자에 대한 인증을 수행할 수 있다. 예를 들어, 제 1 음성 특징 정보와 제 2 음성 특징 정보 간의 유사도가 임계 값(예컨대, 99%) 이상인 경우, 서버 장치(300)는, 사용자에 대한 인증에 성공했다고 결정할 수 있다. 반면, 제 1 음성 특징 정보와 제 2 음성 특징 정보 간의 유사도가 임계 값보다 작은 경우, 서버 장치(300)는 사용자에 대한 인증에 실패했다고 결정할 수 있다.
일 실시예에 의하면, 서버 장치(300)는 실제 사용자가 발화하는 음성의 특징 정보와 녹음된 음성의 특징 정보를 구별할 수도 있다. 따라서, 서버 장치(300)는, 음성 데이터가 녹음된 음성에 관한 것인 경우 사용자에 대한 인증에 실패했다고 판단하고, 음성 데이터가 실시간으로 사용자가 발화한 음성에 관한 것인 경우에는 사용자에 대한 인증에 성공했다고 판단할 수 있다.
한편, 일 실시예에 의하면, 서버 장치(300)는 음성 데이터로부터 개인 인증 단어를 식별하고, 식별된 개인 인증 단어로부터 제 1 음성 특징 정보를 검출할 수도 있다. 이 경우, 서버 장치(300)는 짧은 단어로부터 제 1 음성 특징 정보를 검출하게 되므로, 계산량이 줄어들 수 있다. 또한, 음성 데이터에 개인 인증 단어가 포함된 경우에만 사용자에 대한 인증에 성공할 수 있으므로, 보안이 강화될 수 있다.
예를 들어, 사용자가 '피터팬'을 개인 인증 단어로 미리 등록한 경우, 제 2 디바이스(200)는 사용자의 '피터팬'을 발화한 음성으로부터 제 2 음성 특징 정보를 추출하고, 제 2 음성 특징 정보를 저장할 수 있다. 따라서, 이후 사용자가 제 1 디바이스(100)를 제어하기 위해서는 '피터팬'을 포함하는 음성을 발화하여야 한다. 예컨대, 사용자가 "피터팬, 청소 모드" 라고 발화하는 경우, 제 2 디바이스(200)는 사용자의 음성 명령("피터팬, 청소 모드")을 감지하고, 기 정의된 포맷에 따라 음성 명령을 포함하는 패킷을 생성하여, 브로드캐스팅할 수 있다. 이 경우, 제 1 디바이스(100)는 음성 명령("피터팬, 청소 모드")을 포함하는 패킷을 수신하고, 패킷으로부터 '피터팬'과 관련된 음성 데이터를 식별할 수 있다. 그리고 제 1 디바이스(100)는 서버 장치(300)로 '피터팬'과 관련된 음성 데이터를 전송할 수 있다. 서버 장치(300)는 '피터팬'과 관련된 음성 데이터로부터 제 1 음성 특징 정보를 추출할 수 있다. 서버 장치(300)는 제 1 음성 특징 정보와 기 저장된 제 2 음성 특징 정보를 비교한 결과에 기초하여, 사용자 인증을 수행할 수 있다.
일 실시예에 의하면, 서버 장치(300)는 사용자에 대한 인증을 수행한 결과를 제 1 디바이스(100)로 전송할 수 있다. 예를 들어, 서버 장치(100)는 사용자에 대한 인증 성공 메시지 또는 사용자에 대한 인증 실패 메시지를 제 1 디바이스(100)로 전송할 수 있다.
일 실시예에 의하면, 서버 장치(300)는 자연어 처리에 기반하여 음성 데이터를 분석한 결과 데이터를 생성할 수 있다. 예를 들어, 서버 장치(300)는, 음성 데이터를 텍스트 데이터로 변환하고, 자연어 처리(Natural LanguageProcessing)에 기반하여 텍스트 데이터로부터 제어 명령을 검출할 수 있다. 이때, 일 실시예에 의하면, 서버 장치(300)는 음성 데이터로부터 제어 명령을 나타내는 동작 코드를 검출할 수도 있다. 예를 들어, 서버 장치(300)는, 음성 데이터에 '청소 모드'라는 명령이 포함되어 있는 경우, '동작 코드: 1'을 검출할 수 있고, 음성 데이터에 '외출 모드'라는 명령이 포함되어 있는 경우 '동작 코드: 2'를 검출할 수 있다.
일 실시예에 의하면, 서버 장치(300)는 음성 데이터를 전송한 제 1 디바이스(100)의 식별 정보에 기초하여, 제 1 디바이스(100)가 수행할 수 있는 제어 명령을 검출할 수 있다. 예를 들어, 제 1 디바이스(100)가 청소기인 경우, 서버 장치(300)는 '동작 모드를 대기 모드에서 청소 모드로 전환'이라는 제어 명령을 검출할 수 있고, 제 1 디바이스(100)가 창문인 경우, 서버 장치(300)는 '창문 열기'를 제어 명령으로 검출할 수 있고, 제 1 디바이스(100)가 공기 청정기인 경우, 서버 장치(300)는 정화 강도를 '강'으로 설정하는 것을 제어 명령으로 검출할 수 있다.
일 실시예에 의하면, 서버 장치(300)는 음성 데이터로부터 검출된 제어 명령에 관한 정보를 제 1 디바이스(100)로 전송할 수 있다. 예를 들어, 서버 장치(300)는 검출된 동작 코드에 대한 정보를 제 1 디바이스(100)로 전송할 수 있다.
일 실시예에 의하면, 서버 장치(300)는 사용자에 대한 인증을 수행한 결과와 검출된 제어 명령에 관한 정보를 함께 제 1 디바이스(100)로 전송할 수도 있고, 사용자에 대한 인증을 수행한 결과와 검출된 제어 명령에 관한 정보를 따로 제 1 디바이스(100)로 전송할 수도 있다. 일 실시예에 의하면, 사용자에 대한 인증에 실패한 경우, 서버 장치(300)는 사용자에 대한 인증에 실패했다는 결과 메시지만을 제 1 디바이스(100)로 전송하고, 검출된 제어 명령에 관한 정보는 제 1 디바이스(100)에 전송하지 않을 수도 있다.
단계 S940에서, 제 1 디바이스(100)는, 사용자에 대한 인증이 성공한 경우, 제어 명령에 대응하는 제어 동작을 수행할 수 있다.
일 실시예에 의하면, 제 1 디바이스(100)는, 서버 장치(300)로부터 수신된 사용자에 대한 인증을 수행한 결과가 성공인 경우, 서버 장치(300)로부터 수신된 정보에 포함된 제어 명령에 대응하는 제어 동작을 수행할 수 있다. 일 실시예에 의하면, 제어 동작은, 제 1 디바이스(100)의 일부를 움직이는 동작, 제 1 디바이스(100)의 모드를 설정 또는 전환하는 동작, 전원을 온 또는 오프하는 동작, 소정 애플리케이션을 실행하는 동작 등일 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에 의하면, 서버 장치(300)로부터 수신된 제어 명령에 관한 정보가 제어 명령을 나타내는 제 1 동작 코드를 포함하는 경우, 제 1 디바이스(100)는, 제 1 동작 코드에 대응하는 제 1 제어 동작을 제 1 디바이스(100)의 동작 테이블로부터 식별할 수 있다. 그리고 제 1 디바이스(100)는 제 1 제어 동작을 수행할 수 있다. 일 실시에에 의하면, 동작 테이블은 동작 코드와 제어 동작을 맵핑한 테이블일 수 있다. 동작 테이블은 디바이스에서 제공하는 기능에 따라 디바이스 별로 상이할 수 있다. 예를 들어, 동일한 동작 코드에 대해서도 디바이스 별로 상이한 제어 동작이 맵핑되어 있을 수 있다. 동작 코드에 대해서는 도 14를 참조하여 후에 좀 더 살펴보기로 한다.
도 10은 일 실시예에 따르는 제 1 디바이스가 동작 모드에 따라 음성 명령을 수행하는 방법을 설명하기 위한 순서도이다.
단계 S1005에서, 제 1 디바이스(100)는, 제 2 디바이스(200)로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신할 수 있다. 단계 S1005는 도 9의 단계 S910에 대응하므로, 구체적인 설명은 생략하기로 한다.
단계 S1005에서, 제 1 디바이스(100)는, 소정 조건에 기초하여, 보안 모드 및 비보안 모드 중 하나를 제 1 디바이스(100)의 동작 모드로 식별할 수 있다. 일 실시예에 의하면, 보안 모드는 서버 장치(300)에서 사용자에 대한 인증을 수행하는 모드이고, 비보안 모드는 제 1 디바이스(100)에서 사용자에 대한 인증을 수행하는 모드일 수 있다.
일 실시예에 의하면, 사용자 입력에 기초하여, 제 1 디바이스(100)의 동작 모드가 결정될 수 있다. 예를 들어, 사용자가 보안 모드를 기본 모드로 미리 설정한 경우, 제 1 디바이스(100)는 보안 모드를 제 1 디바이스(100)의 동작 모드로 식별할 수 있다.
일 실시예에 의하면, 제 1 디바이스(100)의 동작 모드는, 제 1 디바이스(100)와 서버 장치(300) 간의 연결 상태에 기초하여 결정될 수도 있다. 예를 들어, 제 1 디바이스(100)가 서버 장치(300)에 접속할 수 없는 경우, 제 1 디바이스(100)는 음성 데이터를 서버 장치(300)로 전달할 수 없으므로, 제 1 디바이스(100)의 동작 모드를 비보안 모드로 결정할 수 있다. 제 1 디바이스(100)가 서버 장치(300)와의 연결 상태에 기초하여 동작 모드를 결정하는 동작에 대해서는 도 11을 참조하여 후에 자세히 살펴보기로 한다.
일 실시예에 의하면, 제 1 디바이스(100)는 패킷이 식별키 및 동작 코드를 포함하는지 여부에 기초하여, 제 1 디바이스(100)의 동작 모드를 결정할 수도 있다. 예를 들어, 제 1 디바이스(100)는 패킷에 포함된 선택 필드 플래그가 TRUE 인지 여부에 따라 제 1 디바이스(100)의 동작 모드를 결정할 수 있다. 제 1 디바이스(100)가 패킷이 식별키 및 동작 코드를 포함하는지 여부에 기초하여 제 1 디바이스(100)의 동작 모드를 결정하는 동작에 대해서는 도 12를 참조하여 후에 좀 더 살펴 보기로 한다.
단계 S1015 및 단계 S1020에서, 제 1 디바이스(100)의 동작 모드가 보안 모드인 경우, 제 1 디바이스(100)는, 서버 장치(300)에 음성 데이터를 전송할 수 있다. 단계 S1020은 도 9의 단계 S920에 대응하므로, 구체적인 설명은 생략하기로 한다.
단계 S1025에서, 서버 장치(300)는 수신된 음성 데이터에 기초하여, 사용자에 대한 인증을 수행할 수 있다. 예를 들어, 서버 장치(300)는 제 1 디바이스(100)로부터 수신된 음성 데이터로부터 제 1 음성 특징 정보를 검출하고, 제 1 음성 특징 정보를 기 저장된(또는 기 등록된) 제 2 음성 특징 정보와 비교할 수 있다. 제 2 음성 특징 정보는 사용자가 인증을 위해 미리 서버 장치(300)에 등록한 음성으로부터 검출된 특징 정보일 수 있다. 일 실시예에 의하면, 서버 장치(300)는, 제 1 음성 특징 정보와 제 2 음성 특징 정보를 비교한 결과에 기초하여, 사용자에 대한 인증을 수행할 수 있다. 예를 들어, 제 1 음성 특징 정보와 제 2 음성 특징 정보 간의 유사도가 임계 값(예컨대, 99%) 이상인 경우, 서버 장치(300)는, 사용자에 대한 인증에 성공했다고 결정할 수 있다. 반면, 제 1 음성 특징 정보와 제 2 음성 특징 정보 간의 유사도가 임계 값보다 작은 경우, 서버 장치(300)는 사용자에 대한 인증에 실패했다고 결정할 수 있다.
단계 S1030에서, 서버 장치(300)는, 음성 데이터를 분석하여, 제어 명령을 나타내는 동작 코드를 검출할 수 있다.
일 실시예에 의하면, 서버 장치(300)는 자연어 처리 기술을 이용하여 음성 데이터를 분석함으로써, 음성 데이터로부터 제어 명령을 검출할 수 있다. 일 실시예에 의하면, 서버 장치(300)는 음성 데이터로부터 제어 명령을 나타내는 동작 코드를 검출할 수도 있다. 예를 들어, 서버 장치(300)는, 제어 명령 테이블을 이용하여, 음성 데이터에 '시나리오 1'라는 명령이 포함되어 있는 경우, '동작 코드: 1'을 검출할 수 있고, 음성 데이터에 '시나리오 2'라는 명령이 포함되어 있는 경우 '동작 코드: 2'를 검출할 수 있다. 제어 명령 테이블은 제어 명령과 동작 코드를 맵핑한 테이블일 수 있다.
단계 S1035에서, 서버 장치(100)는 인증 수행 결과 및 동작 코드를 제 1 디바이스(100)에 전송할 수 있다.
일 실시예에 의하면, 서버 장치(300)는 사용자에 대한 인증을 수행한 결과와 검출된 제어 명령에 관한 정보를 함께 제 1 디바이스(100)로 전송할 수도 있고, 사용자에 대한 인증을 수행한 결과와 검출된 제어 명령에 관한 정보를 따로 제 1 디바이스(100)로 전송할 수도 있다. 일 실시예에 의하면, 사용자에 대한 인증에 실패한 경우, 서버 장치(300)는 사용자에 대한 인증에 실패했다는 결과 메시지만을 제 1 디바이스(100)로 전송하고, 검출된 제어 명령에 관한 정보는 제 1 디바이스(100)에 전송하지 않을 수도 있다.
단계 S1025, 단계 S1030 및 단계 S1035는, 도 9의 단계 S930에 대응하므로, 구체적인 설명은 생략하기로 한다.
단계 S1055에서, 제 1 디바이스(100)는 사용자에 대한 인증에 성공한 경우, 동작 코드에 대응하는 제어 동작을 수행할 수 있다. 일 실시예에 의하면, 서버 장치(300)로부터 제 1 동작 코드를 수신한 경우, 제 1 디바이스(100)는, 제 1 동작 코드에 대응하는 제 1 제어 동작을 제 1 디바이스(100)의 동작 테이블로부터 식별할 수 있다. 그리고 제 1 디바이스(100)는 제 1 제어 동작을 수행할 수 있다.
한편, 단계 S1015 및 단계 S1040에서, 제 1 디바이스(100)는, 제 1 디바이스(100)의 동작 모드가 비보안 모드인 경우, 패킷으로부터 식별키 및 제어 명령을 나타내는 동작 코드를 검출할 수 있다. 예를 들어, 제 1 디바이스(100)는, 패킷의 제 6 필드(406)에 삽입된 제 1 식별키를 획득할 수 있다. 또한, 제 1 디바이스(100)는 패킷의 제 7 필드(407)에 삽입된 제 1 동작 코드를 검출할 수 있다.
단계 S1045에서, 제 1 디바이스(100)는, 검출된 식별키에 기초하여, 사용자에 대한 인증을 수행할 수 있다. 예를 들어, 제 1 디바이스(100)는, 검출된 제 1 식별키를 기 저장된 제 2 식별키와 비교할 수 있다. 제 1 디바이스(100)는, 제 1 식별키와 제 2 식별키가 일치하는 경우, 사용자에 대한 인증에 성공한 것으로 판단할 수 있다. 반면, 제 1 식별키와 제 2 식별키가 일치하지 않는 경우, 제 1 디바이스(100)는, 사용자에 대한 인증에 실패한 것으로 판단할 수 있다. 여기서, 제 2 식별키는, 제 1 디바이스(100)와 제 2 디바이스(200)가 이전에 연결된 적이 있는 경우, 서로 교환하여 공유하고 있는 보안키일 수 있다.
단계 S1050 및 단계 S1055에서, 제 1 디바이스(100)는, 식별키에 기초한 사용자에 대한 인증에 성공한 경우, 패킷으로부터 검출된 동작 코드에 대응하는 제어 동작을 수행할 수 있다. 일 실시예에 의하면, 패킷의 제 7 필드(407)로부터 제 1 동작 코드를 검출한 경우, 제 1 디바이스(100)는, 제 1 동작 코드에 대응하는 제 1 제어 동작을 제 1 디바이스(100)의 동작 테이블로부터 식별할 수 있다. 그리고 제 1 디바이스(100)는 제 1 제어 동작을 수행할 수 있다.
도 11은 일 실시예에 따르는 제 1 디바이스와 서버 장치 간의 연결 상태 정보에 기초하여 제 1 디바이스의 동작 모드를 식별하는 방법을 설명하기 위한 순서도이다.
단계 S1110에서, 제 1 디바이스(100)는 제 2 디바이스(200)로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신할 수 있다. 단계 S1110은 도 9의 S910에 대응되므로, 구체적인 설명은 생략하기로 한다.
단계 S1120에서, 제 1 디바이스(100)는, 패킷을 수신한 경우, 제 1 디바이스(100)와 서버 장치(300)와의 연결 상태가 불안정한지 판단할 수 있다. 예를 들어, 제 1 디바이스(100)가 서버 장치(300)에 접속할 수 없거나, 접속하더라도 접속 유지 시간이 임계 값(예컨대, 30초)보다 작은 경우, 제 1 디바이스(100)는, 제 1 디바이스(100)와 서버 장치(300)와의 연결 상태가 불안정하다고 판단할 수 있다.
단계 S1120 및 단계 S1130에서, 제 1 디바이스(100)와 서버 장치(300)와의 연결 상태가 안정한 경우, 제 1 디바이스(100)는 제 1 디바이스(100)의 동작 모드를 보안 모드로 식별할 수 있다. 이때, 제 1 디바이스(100)는 도 10의 단계 S1020을 수행할 수 있다. 즉, 제 1 디바이스(100)는 서버 장치(300)에 음성 데이터를 전송하면서, 음성 데이터에 기반한 사용자 인증 및 제어 명령에 관한 정보를 요청할 수 있다. 그리고 제 1 디바이스(100)는 서버 장치(300)로부터 사용자 인증 결과 및 동작 코드를 수신하고, 사용자에 대한 인증에 성공한 경우 동작 코드에 대응하는 제어 동작을 수행할 수 있다.
단계 S1120 및 단계 S1140에서, 제 1 디바이스(100)와 서버 장치(300)와의 연결 상태가 불안정한 경우, 제 1 디바이스(100)의 동작 모드를 비보안 모드로 식별할 수 있다. 이때, 제 1 디바이스(100)는 도 10의 단계 S1040을 수행할 수 있다. 즉, 제 1 디바이스(100)는, 패킷으로부터 식별키 및 제어 명령을 나타내는 동작 코드를 검출할 수 있다. 그리고 제 1 디바이스(100)는 식별키에 기초하여, 사용자에 대한 인증을 수행하고, 사용자에 대한 인증에 성공한 경우 동작 코드에 대응하는 제어 동작을 수행할 수 있다.
도 12는 일 실시예에 따르는 제 1 디바이스가 패킷에 포함된 정보에 기초하여 제 1 디바이스의 동작 모드를 식별하는 방법을 설명하기 위한 순서도이다.
단계 S1210에서, 제 1 디바이스(100)는 제 2 디바이스(200)로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신할 수 있다. 단계 S1110은 도 9의 S910에 대응되므로, 구체적인 설명은 생략하기로 한다.
단계 S1220에서, 제 1 디바이스(100)는, 패킷을 수신한 경우, 패킷이 식별키 및 동작 코드를 포함하는지 판단할 수 있다. 예를 들어, 제 1 디바이스(100)는 패킷의 제 5 필드(405)에 포함된 선택 필드 플래그가 'TRUE'인지 확인할 수 있다. 선택 필드 플래그가 'TRUE'인 경우, 제 1 디바이스(100)는, 패킷이 식별키 및 동작 코드를 포함한다고 판단할 수 있다. 반면, 선택 필드 플래그가 'TURE'가 아닌 경우, 제 1 디바이스(100)는 패킷이 식별키 및 동작 코드를 포함하지 않는다고 판단할 수 있다.
단계 S1220 및 단계 S1230에서, 패킷이 식별키 및 동작 코드를 포함하지 않는 경우, 제 1 디바이스(100)는 제 1 디바이스(100)의 동작 모드를 보안 모드로 결정할 수 있다. 이때, 제 1 디바이스(100)는 도 10의 단계 S1020을 수행할 수 있다. 예를 들어, 제 1 디바이스(100)는 서버 장치(300)에 음성 데이터를 전송하면서, 음성 데이터에 기반한 사용자 인증 및 동작 코드에 관한 정보를 요청할 수 있다. 그리고 제 1 디바이스(100)는 서버 장치(300)로부터 사용자 인증 결과 및 동작 코드를 수신하고, 사용자에 대한 인증에 성공한 경우 동작 코드에 대응하는 제어 동작을 수행할 수 있다.
단계 S1220 및 단계 S1240에서, 패킷이 식별키 및 동작 코드를 포함하는 경우, 제 1 디바이스(100)는 제 1 디바이스(100)의 동작 모드를 비보안 모드로 결정할 수 있다. 이때, 제 1 디바이스(100)는 도 10의 단계 S1040을 수행할 수 있다. 즉, 제 1 디바이스(100)는, 패킷으로부터 식별키 및 제어 명령을 나타내는 동작 코드를 검출할 수 있다. 그리고 제 1 디바이스(100)는 식별키에 기초하여, 사용자에 대한 인증을 수행하고, 사용자에 대한 인증에 성공한 경우 동작 코드에 대응하는 제어 동작을 수행할 수 있다.
이하에서는, 도 13을 참조하여, 제 1 디바이스(100)가, 제 1 디바이스(100)와 서버 장치(300) 간의 연결 상태 정보에 기초하여, 제 1 디바이스(100)의 동작 모드를 보안 모드에서 비보안 모드로 전환하는 동작에 대해서 살펴보기로 한다.
도 13은 일 실시예에 따르는 제 1 디바이스가 동작 모드를 전환하는 방법을 설명하기 위한 순서도이다.
단계 S1310에서, 제 1 디바이스(100)는 보안 모드를 기본 모드로 설정할 수 있다. 일 실시예에 의하면, 제 1 디바이스(100)는 사용자로부터 보안 모드를 기본 모드로 설정하는 입력을 수신할 수 있다. 또는, 제 1 디바이스(100)가 출시될 때 보안 모드가 기본 모드로 설정되어있을 수도 있다.
단계 S1320에서, 제 1 디바이스(100)는 사용자의 음성 데이터를 포함하는 패킷을 수신할 수 있다. 예를 들어, 제 1 디바이스(100)는, 제 2 디바이스(200)로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 근거리 통신을 통해 검색할 수 있다. 단계 S1320은 도 9의 S910에 대응되므로, 구체적인 설명은 생략하기로 한다.
단계 S1330에서, 제 1 디바이스(100)는, 패킷이 수신된 경우, 제 1 디바이스(100)와 서버 장치(300) 간의 연결 상태가 불안정한지 판단할 수 있다. 예를 들어, 제 1 디바이스(100)가 서버 장치(300)에 접속할 수 없거나, 접속하더라도 접속 유지 시간이 임계 값(예컨대, 30초)보다 작은 경우, 제 1 디바이스(100)는, 제 1 디바이스(100)와 서버 장치(300)와의 연결 상태가 불안정하다고 판단할 수 있다.
단계 S1330 및 단계 S1340에서, 제 1 디바이스(100)와 서버 장치(300) 간의 연결 상태가 안정한 경우, 제 1 디바이스(100)는, 기본 모드인 보안 모드로 동작할 수 있다. 그리고 제 1 디바이스(100)는 도 10의 단계 S1020을 수행할 수 있다. 예를 들어, 제 1 디바이스(100)는 서버 장치(300)에 음성 데이터를 전송하면서, 사용자 인증 및 동작 코드를 요청할 수 있다. 그리고 제 1 디바이스(100)는 서버 장치(300)로부터 사용자 인증 결과 및 동작 코드를 수신하고, 사용자에 대한 인증에 성공한 경우 동작 코드에 대응하는 제어 동작을 수행할 수 있다.
단계 S1330 및 단계 S1350에서, 제 1 디바이스(100)와 서버 장치(300) 간의 연결 상태가 불안정한 경우, 제 1 디바이스(100)는 제 1 디바이스(100)의 동작 모드를 보안 모드에서 비보안 모드로 전환할 수 있다. 그리고 제 1 디바이스(100)는 도 10의 단계 S1040을 수행할 수 있다. 예를 들어, 제 1 디바이스(100)는, 패킷으로부터 식별키 및 제어 명령을 나타내는 동작 코드를 검출할 수 있다. 그리고 제 1 디바이스(100)는 식별키에 기초하여, 사용자에 대한 인증을 수행하고, 사용자에 대한 인증에 성공한 경우 동작 코드에 대응하는 제어 동작을 수행할 수 있다.
도 14는 일 실시예에 따르는 복수의 디바이스들이 각각 음성 명령을 수행하는 동작을 설명하기 위한 도면이다. 도 14에서는 제 1 디바이스(100)가 TV(1400-1), 냉장고(1400-2), 에어컨(1400-3), 세탁기(1400-4)를 포함하는 경우를 예로 들어 설명하기로 한다.
사용자는 음성 명령을 발화할 수 있다. 예를 들어, 사용자는 '청소하자'라는 음성을 제 2 디바이스(200)에 입력할 수 있다. 제 2 디바이스(200)는 사용자의 음성(예컨대, 청소하자)을 마이크로폰(211)을 통해 감지할 수 있다. 이 경우, 제 2 디바이스(200)는 '청소하자'와 관련된 제 1 음성 데이터를 포함하는 제 1 패킷을 생성할 수 있다. 제 2 디바이스(200)는 제 1 패킷을 근거리 통신(예컨대, 와이파이)를 통해 브로드캐스팅할 수 있다. 이때, 제 2 디바이스(200)는 외부의 디바이스들(예컨대, 제 1 디바이스(100))과 통신 링크를 형성하지 않더라도 제 1 패킷을 전달할 수 있다.
제 2 디바이스(200)로부터 소정 거리 내에 위치하는 TV(1400-1), 냉장고(1400-2), 에어컨(1400-3), 세탁기(1400-4) 각각은, 제 2 디바이스(200)로부터 브로드캐스팅되는 제 1 패킷을 수신할 수 있다. 이때, TV(1400-1), 냉장고(1400-2), 에어컨(1400-3), 세탁기(1400-4) 각각은 제 1 패킷에서 제 1 음성 데이터를 추출하고, 추출된 제 1 음성 데이터를 서버 장치(300)로 전송할 수 있다.
서버 장치(300)는 TV(1400-1), 냉장고(1400-2), 에어컨(1400-3), 세탁기(1400-4) 각각으로부터 제 1 음성 데이터를 획득할 수 있다. TV(1400-1), 냉장고(1400-2), 에어컨(1400-3), 세탁기(1400-4)로부터 획득한 음성 데이터가 제 1 음성 데이터로 동일하므로, 제 1 음성 데이터에 기반한 사용자 인증 결과 및 제 1 음성 데이터로부터 추출되는 동작 코드가 동일할 수 있다.
서버 장치(300)는, 제 1 음성 데이터로부터 추출된 제 1 음성 특징 정보(예컨대, 제 1 음성 패턴)가 기 등록된 사용자의 제 2 음성 특징 정보(예컨대, 제 2 음성 패턴)와 유사한 경우, 사용자에 대한 인증에 성공했다고 판단할 수 있다. 또한, 서버 장치(300)는 제 1 음성 데이터(예컨대, '청소하자')에 대응하는 동작 코드로서, '1'을 검출할 수 있다. 서버 장치(300)는 사용자 인증 결과 및 검출된 동작 코드 '1'에 대한 정보를 TV(1400-1), 냉장고(1400-2), 에어컨(1400-3), 세탁기(1400-4) 각각에 전송할 수 있다.
TV(1400-1)는 동작 코드 '1'을 서버 장치(300)로부터 수신하고, TV(1400-1)의 제 1 동작 테이블에서 동작 코드 1에 대응하는 제 1-1 동작을 식별할 수 있다. 예를 들어, 동작 코드 1에 대응하는 제 1-1 동작이 '음악 방송 채널 출력'인 경우, TV(1400-1)는 현재 뉴스 채널을 음악 방송 채널로 전환할 수 있다.
냉장고(1400-2)는 동작 코드 '1'을 서버 장치(300)로부터 수신하고, 냉장고(1400-2)의 제 2 동작 테이블에서 동작 코드 1에 대응하는 제 1-2 동작을 식별할 수 있다. 예를 들어, 동작 코드 1에 대응하는 제 1-2 동작이 '유통기한 지난 음식 표시'인 경우, 냉장고(1400-2)는 보관 중인 음식들 중에서 유통 기한이 지난 음식들의 리스트를 디스플레이에 표시할 수 있다.
에어컨(1400-3)은, 동작 코드 1을 서버 장치(300)로부터 수신하고, 에어컨(1400-3)의 제 3 동작 테이블에서 동작 코드 1에 대응하는 제 1-3 동작을 식별할 수 있다. 예를 들어, 동작 코드 1에 대응하는 제 1-3 동작이 '환기 모드 설정'인 경우, 에어컨(1400-3)은 동작 모드를 환기 모드로 설정할 수 있다.
세탁기(1400-4)는, 동작 코드 1을 서버 자치(300)로부터 수신하고, 세탁기(1400-4)의 제 4 동작 테이블에서 동작 코드 1에 대응하는 제 1-4 동작을 식별할 수 있다. 예를 들어, 제 1-4 동작이 '세탁 및 건조'인 경우, 세탁기(1400-4)는 빨래에 대한 세탁 동작 및 건조 동작을 수행할 수 있다.
따라서, 일 실시예에 의하면, 사용자가 TV(1400-1), 냉장고(1400-2), 에어컨(1400-3), 세탁기(1400-4) 각각에 별도의 제어 명령을 입력하지 않더라도, '청소하자'라는 음성만으로, TV(1400-1)는 현재 뉴스 채널을 음악 방송 채널로 전화하고, 냉장고(1400-2)는, 유통기한이 지난 음식들의 리스트를 디스플레이에 표시하고, 에어컨(1400-3)은 동작 모드를 환기 모드로 설정하고, 세탁기(1400-4)는 빨래에 대한 세탁 동작 및 건조 동작을 수행할 수 있다.
한편, 도 14에 도시되지는 않았지만, 조명 장치가 동작 코드 1을 서버 장치(300)로부터 수신한 경우, 조명 장치는 조명 장치의 제 5 동작 테이블에서 동작 코드 1에 대응하는 제어 동작을 검색해 볼 수 있다. 하지만, 동작 코드 1에 대응하는 제어 동작이 제 5 동작 테이블에 존재하지 않는 경우, 조명 장치는 아무런 동작도 수행하지 않을 수 있다.
도 15는 일 실시예에 따르는 제 1 디바이스(명령 수행 장치)의 구성을 설명하기 위한 블록도이다.
도 15를 참조하면, 제 1 디바이스(100)는, 통신부(110), 프로세서(120), 저장부(130)를 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 제 1 디바이스(100)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 제 1 디바이스(100)는 구현될 수 있다. 예를 들어, 제 1 디바이스(100)는 프로세서(120)와 통신부(110)로 구현될 수도 있고, 프로세서(120)와 통신부(110) 및 출력부(미도시)로 구현될 수도 있으나, 이에 한정되는 것은 아니다.
이하 상기 구성요소들에 대해 차례로 살펴본다.
통신부(110)는, 제 1 디바이스(100)와 제 2 디바이스(200) 또는 제 1 디바이스(100)와 서버 장치(300) 간의 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(110)는, 근거리 통신부(111), 이동 통신부(112)를 포함할 수 있다.
근거리 통신부(short-range wireless communication unit)(121)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 근거리 통신부(121)는 Li-Fi(Light Fidelity) 통신부를 포함할 수도 있다.
Li-Fi(Light Fidelity)는, 발광 다이오드(LED)에서 나오는 빛의 파장을 이용하여 정보를 전달하는 가시광 통신(VLC: Visible Light Communication) 기술의 보조 방식을 의미할 수 있다. Li-Fi(Light Fidelity)는, 조명이 있는 곳이면 어디서나 사용할 수 있으며 인체에 무해하다. 또한, Li-Fi(Light Fidelity)는, 짧은 도달 거리로 인해 안정성, 보안성이 강하며, 저비용, 고속 통신이 가능하다는 장점이 있다.
이동 통신부(112)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
통신부(110)는 제 2 디바이스(200)로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신할 수 있다. 예를 들어, 통신부(110)는 제 1 통신부(예컨대, 근거리 통신부(121))를 통해 사용자의 음성 데이터를 포함하는 패킷을 검색할 수 있다.
통신부(110)는, 사용자의 음성 데이터를 서버 장치(300)로 전송하고, 서버 장치(300)에서 음성 데이터를 분석하여 검출한 제어 명령에 관한 정보를 서버 장치(300)로부터 수신할 수 있다. 이때, 제어 명령에 관한 정보는 제어 명령을 나타내는 동작 코드를 포함할 수 있다.
일 실시예에 의하면, 통신부(110)는 제 2 디바이스(200)로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 제 1 통신부 및 음성 데이터를 서버 장치(300)에 전송하는 제 2 통신부를 포함할 수 있다. 제 2 통신부는, 음성 데이터에 기초하여 사용자에 대한 인증을 수행한 결과 및 음성 데이터로부터 검출된 제어 명령에 관한 정보를 서버 장치(300)로부터 수신할 수도 있다.
프로세서(120)는, 통상적으로 제 1 디바이스(100)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(120)는, 저장부(130)에 저장된 프로그램들을 실행함으로써, 통신부(110), 저장부(130) 등을 전반적으로 제어할 수 있다.
프로세서(120)는 패킷에 포함된 음성 데이터를 이용하여, 사용자에 대한 인증을 수행할 수 있다. 예를 들어, 프로세서(120)는 음성 데이터로부터 제 1 음성 특징 정보를 검출하고, 제 1 음성 특징 정보를 기 저장된 제 2 음성 특징 정보와 비교하고, 비교한 결과에 기초하여, 사용자에 대한 인증을 수행할 수 있다. 일 실시예에 의하면, 프로세서(120)는, 음성 데이터로부터 개인 인증 단어를 식별하고, 개인 인증 단어로부터 제 1 음성 특징 정보를 검출할 수도 있다.
프로세서(120)는 음성 데이터로부터 제 1 음성 특징 정보를 검출하는데 실패한 경우, 패킷으로부터 식별키를 검출하고, 검출된 식별키에 기초하여, 사용자에 대한 인증을 수행할 수도 있다.
프로세서(120)는, 사용자에 대한 인증에 성공한 경우, 음성 데이터로부터 제어 명령을 검출할 수 있다. 예를 들어, 프로세서(120)는, 제 1 디바이스(100)에 저장된 음성 인식 모델을 이용하여, 음성 데이터로부터 제어 명령을 검출할 수 있다.
프로세서(120)는 제어 명령에 대응하는 제어 동작을 수행할 수 있다. 예를 들어, 검출된 제어 명령이 제 1 동작 코드를 포함하는 경우, 프로세서(120)는 제 1 동작 코드에 대응하는 제 1 제어 동작을 제 1 디바이스(100)의 동작 테이블(134)로부터 식별하고, 제 1 제어 동작을 수행할 수 있다.
프로세서(120)는, 소정 조건에 기초하여, 보안 모드 및 비보안 모드 중 하나를 제 1 디바이스(100)의 동작 모드로 식별할 수 있다. 소정 조건은, 사용자 설정, 제 1 디바이스(100)와 서버 장치(300) 간의 연결 상태 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 프로세서(120)는, 제 1 디바이스의 동작 모드가 상기 보안 모드인 경우, 통신부(110)를 통해 서버 장치(300)에 음성 데이터를 전송할 수 있다. 여기서, 보안 모드는 서버 장치(300)에서 사용자에 대한 인증을 수행하는 모드이고, 비보안 모드는 제 1 디바이스(100)에서 사용자에 대한 인증을 수행하는 모드일 수 있다.
프로세서(120)는, 제 1 디바이스(100)와 서버 장치(300) 간의 연결 상태 정보에 기초하여, 제 1 디바이스(100)의 동작 모드를 보안 모드에서 비보안 모드로 전환할 수 있다. 예를 들어, 제 1 디바이스(100)와 서버 장치(300) 간의 연결 상태가 불안정한 경우, 프로세서(120)는, 제 1 디바이스(100)의 동작 모드를 보안 모드에서 비보안 모드로 전환할 수 있다.
프로세서(120)는, 제 1 디바이스(100)의 동작 모드가 비보안 모드인 경우, 패킷으로부터 제 1 식별키를 검출하고, 검출된 제 1 식별키에 기초하여, 사용자에 대한 인증을 수행할 수 있다. 예를 들어, 프로세서(120)는, 제 1 식별키를 기 저장된 제 2 식별키와 비교하고, 제 1 식별키와 제 2 식별키가 일치하는 경우, 사용자에 대한 인증에 성공한 것으로 판단할 수 있다.
프로세서(120)는, 식별키에 기초한 사용자에 대한 인증에 성공한 경우, 패킷으로부터 제어 명령을 나타내는 제 1 동작 코드를 검출할 수 있다. 프로세서(120)는, 제 1 동작 코드에 대응하는 제 1 제어 동작을 제 1 디바이스(100)의 동작 테이블(134)로부터 식별하고, 제 1 제어 동작을 수행할 수 있다.
저장부(130)는, 프로세서(120)의 처리 및 제어를 위한 프로그램을 저장할 수도 있고, 입/출력되는 데이터들(예컨대, 패킷, 음성 데이터, 사용자 인증 수행 결과 등)을 저장할 수도 있다.
저장부(130)는, 예를 들면, 내장 메모리 또는 외장 메모리를 포함할 수 있다. 내장 메모리는, 예를 들면, 휘발성 메모리(예: 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)) 중 적어도 하나를 포함할 수 있다.
외장 메모리는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱(memory stick) 등을 포함할 수 있다. 외장 메모리는 다양한 인터페이스를 통하여 제 1 디바이스(100)와 기능적으로 및/또는 물리적으로 연결될 수 있다. 또한, 제 1 디바이스(100)는 인터넷(internet)상에서 저장부(130)의 저장 기능을 수행하는 웹 스토리지(web storage)를 운영할 수도 있다.
일 실시예에 의하면, 저장부(130)는 사용자 인증 모델(131), 음성 인식 모델(132), 사용자가 인증을 위해 미리 제 1 디바이스(100)에 등록한 음성 특징 정보(133), 동작 테이블(134), 식별키(135) 등을 저장할 수 있으나, 이에 한정되는 것은 아니다. 사용자 인증 모델(131)은, 사용자가 미리 등록한 음성의 특성 정보에 기초하여, 사용자를 인증하는 학습 모델일 수 있다. 예를 들어, 사용자 인증 모델(131)은 음성 패턴 매칭 기술에 기반하여 사용자를 인증하는 모델일 수 있다. 사용자 인증 모델(131)은 선형예측계수(Linear Predictive Coefficient) 기술, 켑스트럼(Cepstrum) 기술, 멜프리퀀시켑스트럼(Mel Frequency Cepstral Coefficient, MFCC) 기술, 주파수 대역별 에너지(Filter Bank Energy) 기술 등을 이용하여 음성 데이터로부터 제 1 음성 특징 정보를 검출할 수 있다.
또한, 음성 인식 모델(132)은 패킷에 포함된 음성 데이터를 분석하여, 음성 데이터에 포함된 제어 명령을 검출(획득)하는 모델일 수 있다. 예를 들어, 음성 인식 모델(132)은 자연어 처리 기술을 이용하여 사용자의 음성을 인식하는 모델일 수 있다.
동작 테이블(134)은 동작 코드와 제 1 디바이스(100)의 제어 동작을 맵핑한 테이블일 수 있다. 동작 테이블(134)은 디바이스에서 제공하는 기능에 따라 디바이스 별로 상이할 수 있다.
식별키(135)는 제 1 디바이스(100)와 제 2 디바이스(200)가 이전에 연결된 적이 있는 경우, 서로 교환하여 공유하고 있는 보안키일 수 있다. 예를 들어, 식별키(135)는 제 2 식별키를 포함할 수 있다.
한편, 도 15에 도시되지는 않았지만, 제 1 디바이스(100)는 출력부, 카메라, 마이크로폰, 사용자 입력부, 센싱부 등을 더 포함할 수도 있다.
도 16은 일 실시예에 따르는 제 2 디바이스(명령 입력 장치)의 구성을 설명하기 위한 블록도이다.
도 16을 참조하면, 제 2 디바이스(200)는, A/V 입력부(210), 프로세서(220), 통신부(230), 사용자 입력부(240), 출력부(250), 저장부(260), 센싱부(270)를 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 제 2 디바이스(200)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 제 2 디바이스(200)는 구현될 수 있다. 예를 들어, 제 2 디바이스(200)는 출력부(250)를 포함하지 않을 수도 있고, 센싱부(270)를 포함하지 않을 수도 있으나, 이에 한정되는 것은 아니다.
이하 상기 구성요소들에 대해 차례로 살펴본다.
A/V(Audio/Video) 입력부(210)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 마이크로폰(211), 카메라(212) 등이 포함될 수 있다.
마이크로폰(211)은, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 예를 들어, 마이크로폰(211)은 외부 디바이스 또는 화자로부터 음향 신호를 수신할 수 있다. 마이크로폰(211)은 외부의 음향 신호를 입력 받는 과정에서 발생 되는 잡음(noise)를 제거하기 위한 다양한 잡음 제거 알고리즘을 이용할 수 있다. 마이크로폰(211)을 통해 수신되는 사용자의 음성 명령은 통신부(230)를 통하여 외부로 전송될 수 있다.
카메라(212)는 화상 통화모드 또는 촬영 모드에서 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 카메라(212)를 통해 캡쳐된 이미지는 프로세서(220) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다.
카메라(212)에서 처리된 화상 프레임은 저장부(260)에 저장되거나 통신부(230)를 통하여 외부로 전송될 수 있다. 카메라(212)는 제 2 디바이스(200)의 구성 태양에 따라 2개 이상이 구비될 수도 있다.
프로세서(220)는, 통상적으로 제 2 디바이스(200)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(220)는, 저장부(150)에 저장된 프로그램들을 실행함으로써, A/V 입력부(210), 통신부(230), 사용자 입력부(240), 출력부(250), 저장부(260), 센싱부(270) 등을 전반적으로 제어할 수 있다.
프로세서(220)는 마이크로폰(211)을 통해 수신된 음성에 대응하는 음성 데이터를 포함하는 패킷을 생성할 수 있다. 일 실시예에 의하면, 프로세서(220)는 기 정의된 데이터 포맷에 따라 패킷을 생성할 수 있다. 예컨대, 도 4를 참조하면, 프로세서(220)는, 비콘 타입을 포함하는 제 1 필드(401), 패킷 번호를 포함하는 제 2 필드(402), 음성 길이를 나타내는 제 3 필드(403), 음성 데이터를 포함하는 제 4 필드(404)를 포함하는 패킷을 생성할 수 있다. 한편, 일 실시예에 의하면, 프로세서(220)는 선택 필드 플래그를 포함하는 제 5 필드(405), 식별키를 포함하는 제 6 필드(406), 동작 코드(OP code: Operation code) 포함하는 제 7 필드(407)를 더 포함하여, 패킷을 생성할 수도 있다.
프로세서(220)는, 음성 인식 모델(261) 및 동작 테이블을 통해 동작 코드를 획득할 수 있다. 예를 들어, 제 2 디바이스(200)는 음성 인식 모델을 통해 음성 데이터로부터 제어 명령을 검출하고, 검출된 제어 명령에 맵핑되어 있는 동작 코드를 제어 명령 테이블(264)로부터 획득할 수 있다. 프로세서(220)는 획득된 동작 코드를 제 7 필드(407)에 삽입할 수 있다.
다른 실시예에 의하면, 프로세서(220)는 서버 장치(300)에 음성 데이터를 전송하면서 동작 코드를 요청할 수도 있다. 이 경우, 서버 장치(300)는 음성 인식 모델 및 제어 명령 테이블에 기초하여, 음성 데이터로부터 동작 코드를 검출할 수 있다. 서버 장치(300)가 동작 코드에 관한 정보를 제 2 디바이스(200)에 전송하는 경우, 프로세서(220)는 수신한 동작 코드를 제 7 필드(407)에 삽입할 수 있다.
일 실시예에 의하면, 프로세서(220)는 제 1 디바이스(100)와 제 2 디바이스(200)가 공유하고 있는 식별키(263)를 제 6 필드(406)에 삽입할 수도 있다. 제 6 필드(406) 또는 제 7 필드(407)에 추가 정보가 포함되는 경우, 프로세서(220)는 제 5 필드(405)의 선택 필드 플래그를 'TRUE'로 설정하여, 제 1 디바이스(100)가 추가 정보(예컨대, 식별키(263), 동작 코드)의 포함 여부를 알 수 있도록 할 수 있다.
한편, 일 실시예에 의하면, 사용자가 개인 인증 단어를 발화한 경우, 프로세서(220)는 개인 인증 단어에 대한 데이터를 음성 데이터와 분리하여 패킷에 삽입할 수도 있으나, 이에 한정되는 것은 아니다.
통신부(230)는, 제 2 디바이스(200)와 외부 디바이스 또는 제 2 디바이스(200)와 서버 장치(300)간의 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(230)는, 근거리 통신부(231), 이동 통신부(232), 방송 수신부(233)를 포함할 수 있다.
근거리 통신부(short-range wireless communication unit)(231)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 근거리 통신부(231)는 Li-Fi(Light Fidelity) 통신부를 포함할 수도 있다.
이동 통신부(232)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
방송 수신부(233)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 제 2 디바이스(200)는 방송 수신부(233)를 포함하지 않을 수도 있다.
일 실시예에 의하면, 통신부(230)는 사용자의 음성 데이터를 포함하는 패킷을 브로드캐스팅할 수 있다. 예를 들어, 통신부(230)는 근거리 통신을 이용하여 패킷을 브로드캐스팅할 수 있다. 통신부(230)는 패킷을 1회 브로드캐스팅할 수도 있고, 소정 주기로 반복적으로 패킷을 브로드캐스팅할 수도 있다.
사용자 입력부(240)는, 사용자가 제 2 디바이스(200)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(240)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
출력부(250)는, 오디오 신호 또는 비디오 신호 또는 진동 신호의 출력을 위한 것으로, 이에는 디스플레이부(251)와 음향 출력부(252), 진동 모터(253) 등이 포함될 수 있다.
디스플레이부(251)는 제 2 디바이스(200)에서 처리되는 정보를 표시 출력할 수 있다. 예를 들어, 디스플레이부(251)는 제 2 디바이스(200)에서 인식된 복수의 객체를 표시할 수 있다.
디스플레이부(251)와 터치패드가 레이어 구조를 이루어 터치스크린으로 구성되는 경우, 디스플레이부(251)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이부(251)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고 제 2 디바이스(200)의 구현 형태에 따라 제 2 디바이스(200)는 디스플레이부(251)를 2개 이상 포함할 수도 있다. 이때, 2개 이상의 디스플레이부(251)는 힌지(hinge)를 이용하여 마주보게 배치될 수 있다.
음향 출력부(252)는 통신부(230)로부터 수신되거나 저장부(260)에 저장된 오디오 데이터를 출력할 수 있다. 또한, 음향 출력부(252)는 제 2 디바이스(200)에서 수행되는 기능(예를 들어, 호신호 수신음, 메시지 수신음, 알림음)과 관련된 음향 신호를 출력할 수 있다. 예를 들어, 음향 출력부(252)에는, 스피커(speaker), 버저(Buzzer) 등이 포함될 수 있으나, 이에 한정되는 것은 아니다.
진동 모터(253)는 진동 신호를 출력할 수 있다. 예를 들어, 진동 모터(253)는 오디오 데이터 또는 비디오 데이터(예컨대, 호신호 수신음, 메시지 수신음 등)의 출력에 대응하는 진동 신호를 출력할 수 있다.
저장부(260)는, 프로세서(220)의 처리 및 제어를 위한 프로그램을 저장할 수도 있고, 입/출력되는 데이터들(예컨대, 음성 명령, 패킷 등)을 저장할 수도 있다.
저장부(260)는, 예를 들면, 내장 메모리 또는 외장 메모리를 포함할 수 있다. 내장 메모리는, 예를 들면, 휘발성 메모리(예: 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)) 중 적어도 하나를 포함할 수 있다.
외장 메모리는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱(memory stick) 등을 포함할 수 있다. 외장 메모리는 다양한 인터페이스를 통하여 제 2 디바이스(200)와 기능적으로 및/또는 물리적으로 연결될 수 있다. 또한, 제 2 디바이스(200)는 인터넷(internet)상에서 저장부(260)의 저장 기능을 수행하는 웹 스토리지(web storage)를 운영할 수도 있다.
저장부(260)는, 음성 인식 모델(261), 패킷 생성 모델(262), 식별키(263), 제어 명령 테이블(264) 등을 저장할 수 있으나, 이에 한정되는 것은 아니다.
음성 인식 모델(132)은 패킷에 포함된 음성 데이터를 분석하여, 음성 데이터에 포함된 제어 명령을 검출(획득)하는 모델일 수 있다. 예를 들어, 음성 인식 모델(132)은 자연어 처리 기술을 이용하여 사용자의 음성을 인식하는 모델일 수 있다. 패킷 생성 모델(262)은 기 정의된 데이터 포맷에 따라 브로드캐스팅하기 위한 패킷을 생성하기 위한 모델일 수 있다.
식별키(263)는, 제 2 디바이스(200)가 외부의 디바이스와 이전에 연결된 적이 있는 경우, 서로 교환하여 공유하고 있는 보안키일 수 있다. 예를 들어, 식별키(263)는 제 2 디바이스(200)가 제 1 디바이스(100)와 공유하는 식별키를 포함할 수 있다. 제어 명령 테이블(264)는 제어 명령과 동작 코드를 맵핑한 테이블일 수 있다. 예를 들어, 제어 명령 테이블(264)에서 제 1 제어 명령('청소 모드')은 동작 코드 1에 맵핑되어 있고, 제 2 제어 명령('외출 모드)은 동작 코드 2에 맵핑되어 있을 수 있다.
센싱부(270)는 제 2 디바이스(200)의 상태 또는 제 2 디바이스(200) 주변의 상태를 감지하고, 감지된 정보를 프로세서(220)로 전달할 수 있다.
센싱부(270)는, 지자기 센서(Magnetic sensor)(271), 가속도 센서(Acceleration sensor)(272), 기울기 센서(273), 적외선 센서(274), 자이로스코프 센서(275), 위치 센서(276), 지문 센서(277), 근접 센서(278), 및 광 센서(279) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
도 17은 일 실시예에 따르는 서버 장치의 구성을 설명하기 위한 블록도이다.
도 17을 참조하면, 서버 장치(300)는 통신부(310), 프로세서(320) 및 저장부(330)을 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 서버 장치(300)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 서버 장치(300)는 구현될 수 있다.
이하 상기 구성요소들에 대해 차례로 살펴본다.
통신부(310)는, 서버 장치(300)와 제 1 디바이스(100) 또는 서버 장치(300)와 제 2 디바이스(200) 간의 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다.
예를 들어, 통신부(310)는, 제 1 디바이스(100) 또는 제 2 디바이스(200)로 음성 데이터를 수신할 수 있다. 통신부(310)는 제 1 디바이스(100)로 사용자 인증을 수행한 결과 및 제어 명령에 관한 정보(예컨대, 동작 코드)를 전송할 수 있다. 또한, 통신부(310)는 제 2 디바이스(200)로 음성 데이터에서 획득된 동작 코드에 관한 정보를 전송할 수도 있다.
프로세서(320)는, 저장부(330)에 저장된 프로그램 또는 정보를 이용하여 서버 장치(300)의 전반적인 동작을 제어할 수 있다. 일 실시예에 의하면, 프로세서(320)는 수신된 음성 데이터에 기초하여, 사용자에 대한 인증을 수행할 수 있다. 예를 들어, 프로세서(320)는, 제 1 디바이스(100)로부터 수신된 음성 데이터로부터 제 1 음성 특징 정보를 검출하고, 제 1 음성 특징 정보를 기 저장된(또는 기 등록된) 제 2 음성 특징 정보와 비교할 수 있다. 제 2 음성 특징 정보는 사용자가 인증을 위해 미리 서버 장치(300)에 등록한 음성으로부터 검출된 특징 정보일 수 있다. 일 실시예에 의하면, 프로세서(320)는, 제 1 음성 특징 정보와 제 2 음성 특징 정보를 비교한 결과에 기초하여, 사용자에 대한 인증을 수행할 수 있다. 예를 들어, 제 1 음성 특징 정보와 제 2 음성 특징 정보 간의 유사도가 임계 값(예컨대, 99%) 이상인 경우, 프로세서(320)는, 사용자에 대한 인증에 성공했다고 결정할 수 있다. 반면, 제 1 음성 특징 정보와 제 2 음성 특징 정보 간의 유사도가 임계 값보다 작은 경우, 프로세서(320)는, 사용자에 대한 인증에 실패했다고 결정할 수 있다.
프로세서(320)는, 음성 데이터를 분석하여, 제어 명령을 나타내는 동작 코드를 검출할 수 있다. 일 실시예에 의하면, 프로세서(320)는, 자연어 처리 기술을 이용하여 음성 데이터를 분석함으로써, 음성 데이터로부터 제어 명령을 검출할 수 있다. 일 실시예에 의하면, 프로세서(320)는, 음성 데이터로부터 제어 명령을 나타내는 동작 코드를 검출할 수도 있다. 예를 들어, 프로세서(320)는, 제어 명령 테이블(334)을 이용하여, 음성 데이터에 '시나리오 1'라는 명령이 포함되어 있는 경우, '동작 코드: 1'을 검출할 수 있고, 음성 데이터에 '시나리오 2'라는 명령이 포함되어 있는 경우 '동작 코드: 2'를 검출할 수 있다. 제어 명령 테이블(334)은 제어 명령과 동작 코드를 맵핑한 테이블일 수 있다.
저장부(330)는, 프로세서(320)의 처리를 위한 프로그램을 저장할 수도 있고, 입/출력되는 데이터들을 저장할 수도 있다. 예를 들어, 저장부(330)는 사용자 인증 모델(331), 음성 인식 모델(332), 음성 특징 정보(333)(예컨대, 제 2 음성 특징 정보), 제어 명령 테이블(334)를 저장할 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.  또한, 일부 실시예는 컴퓨터에 의해 실행되는 컴퓨터 프로그램과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 컴퓨터 프로그램 또는 컴퓨터 프로그램 제품 (computer program product)으로도 구현될 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.

Claims (20)

  1. 제 1 디바이스가 음성 명령을 수행하는 방법에 있어서,
    제 2 디바이스로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 단계;
    상기 패킷에 포함된 상기 음성 데이터를 이용하여, 상기 사용자에 대한 인증을 수행하는 단계;
    상기 사용자에 대한 인증에 성공한 경우, 상기 음성 데이터로부터 제어 명령을 검출하는 단계; 및
    상기 제어 명령에 대응하는 제어 동작을 수행하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서, 상기 사용자에 대한 인증을 수행하는 단계는,
    상기 음성 데이터로부터 제 1 음성 특징 정보를 검출하는 단계;
    상기 제 1 음성 특징 정보를 기 저장된 제 2 음성 특징 정보와 비교하는 단계; 및
    상기 비교한 결과에 기초하여, 상기 사용자에 대한 인증을 수행하는 단계를 포함하는, 방법.
  3. 제 2 항에 있어서, 상기 사용자에 대한 인증을 수행하는 단계는,
    상기 음성 데이터로부터 상기 제 1 음성 특징 정보를 검출하는데 실패한 경우, 상기 패킷으로부터 식별키를 검출하는 단계; 및
    상기 검출된 식별키에 기초하여, 상기 사용자에 대한 인증을 수행하는 단계를 더 포함하는, 방법.
  4. 제 2 항에 있어서, 상기 제 1 음성 특징 정보를 검출하는 단계는,
    상기 음성 데이터로부터 개인 인증 단어를 식별하는 단계; 및
    상기 식별된 개인 인증 단어로부터 상기 제 1 음성 특징 정보를 검출하는 단계를 포함하는, 방법.
  5. 제 1 항에 있어서, 상기 음성 데이터로부터 상기 제어 명령을 검출하는 단계는,
    상기 제 1 디바이스에 저장된 음성 인식 모델을 이용하여, 상기 음성 데이터로부터 상기 제어 명령을 검출하는 단계를 포함하는, 방법.
  6. 제 1 항에 있어서, 상기 제어 동작을 수행하는 단계는,
    상기 검출된 제어 명령이 제 1 동작 코드를 포함하는 경우, 상기 제 1 동작 코드에 대응하는 제 1 제어 동작을 상기 제 1 디바이스의 동작 테이블로부터 식별하는 단계; 및
    상기 제 1 제어 동작을 수행하는 단계를 포함하는, 방법.
  7. 제 1 항에 있어서, 상기 음성 데이터로부터 제어 명령을 검출하는 단계는,
    상기 음성 데이터를 서버 장치로 전송하는 단계; 및
    상기 서버 장치에서 상기 음성 데이터를 분석하여 검출한 상기 제어 명령에 관한 정보를 상기 서버 장치로부터 수신하는 단계를 포함하는, 방법.
  8. 제 7 항에 있어서, 상기 음성 데이터를 상기 서버 장치로 전송하는 단계는,
    상기 제 1 디바이스에서 기 저장된 음성 인식 모델을 이용하여 상기 제어 명령을 검출하는데 실패한 경우, 상기 음성 데이터를 상기 서버 장치로 전송하는 단계를 포함하는, 방법.
  9. 음성 명령을 수행하는 제 1 디바이스에 있어서,
    제 2 디바이스로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 통신부; 및
    상기 패킷에 포함된 상기 음성 데이터를 이용하여, 상기 사용자에 대한 인증을 수행하고, 상기 사용자에 대한 인증에 성공한 경우, 상기 음성 데이터로부터 제어 명령을 검출하고, 상기 제어 명령에 대응하는 제어 동작을 수행하는 프로세서를 포함하는, 제 1 디바이스.
  10. 컴퓨터로 읽을 수 있는 저장 매체를 포함하는 컴퓨터 프로그램 제품에 있어서, 상기 저장 매체는,
    외부로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 단계;
    상기 패킷에 포함된 상기 음성 데이터를 이용하여, 상기 사용자에 대한 인증을 수행하는 단계;
    상기 사용자에 대한 인증에 성공한 경우, 상기 음성 데이터로부터 제어 명령(control command)을 검출하는 단계; 및
    상기 제어 명령에 대응하는 제어 동작을 수행하는 단계를 수행하는 명령어들(instructions)을 포함하는, 컴퓨터 프로그램 제품.
  11. 제 1 디바이스가 음성 명령을 수행하는 방법에 있어서,
    제 2 디바이스로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 단계;
    상기 음성 데이터를 서버 장치에 전송하는 단계;
    상기 음성 데이터에 기초하여 상기 사용자에 대한 인증을 수행한 결과 및 상기 음성 데이터로부터 검출된 제어 명령에 관한 정보를 상기 서버 장치로부터 수신하는 단계; 및
    상기 사용자에 대한 인증이 성공한 경우, 상기 제어 명령에 대응하는 제어 동작을 수행하는 단계를 포함하는, 방법.
  12. 제 11 항에 있어서, 상기 제어 동작을 수행하는 단계는,
    상기 제어 명령에 관한 정보가 상기 제어 명령을 나타내는 제 1 동작 코드를 포함하는 경우, 상기 제 1 동작 코드에 대응하는 제 1 제어 동작을 상기 제 1 디바이스의 동작 테이블로부터 식별하는 단계를 포함하는, 방법.
  13. 제 11 항에 있어서, 상기 음성 데이터를 상기 서버 장치에 전송하는 단계는,
    소정 조건에 기초하여, 보안 모드 및 비보안 모드 중 하나를 상기 제 1 디바이스의 동작 모드로 식별하는 단계; 및
    상기 제 1 디바이스의 동작 모드가 상기 보안 모드인 경우, 상기 서버 장치에 상기 음성 데이터를 전송하는 단계를 포함하고,
    상기 보안 모드는 상기 서버 장치에서 상기 사용자에 대한 인증을 수행하는 모드이고, 상기 비보안 모드는 상기 제 1 디바이스에서 상기 사용자에 대한 인증을 수행하는 모드인, 방법.
  14. 제 13 항에 있어서, 상기 방법은,
    상기 제 1 디바이스와 상기 서버 장치 간의 연결 상태 정보에 기초하여, 상기 제 1 디바이스의 동작 모드를 상기 보안 모드에서 상기 비보안 모드로 전환하는 단계를 더 포함하는, 방법.
  15. 제 13 항에서, 상기 방법은,
    상기 제 1 디바이스의 동작 모드가 비보안 모드인 경우, 상기 패킷으로부터 제 1 식별키를 검출하는 단계; 및
    상기 검출된 제 1 식별키에 기초하여, 상기 사용자에 대한 인증을 수행하는 단계를 더 포함하는, 방법.
  16. 제 15 항에 있어서, 상기 검출된 식별키에 기초하여, 상기 사용자에 대한 인증을 수행하는 단계는,
    상기 검출된 제 1 식별키를 기 저장된 제 2 식별키와 비교하는 단계; 및
    상기 제 1 식별키와 상기 제 2 식별키가 일치하는 경우, 상기 사용자에 대한 인증에 성공한 것으로 판단하는 단계를 포함하는, 방법.
  17. 제 15 항에 있어서, 상기 방법은,
    상기 식별키에 기초한 상기 사용자에 대한 인증에 성공한 경우, 상기 패킷으로부터 상기 제어 명령을 나타내는 제 1 동작 코드를 검출하는 단계;
    상기 제 1 동작 코드에 대응하는 제 1 제어 동작을 상기 제 1 디바이스의 동작 테이블로부터 식별하는 단계; 및
    상기 제 1 제어 동작을 수행하는 단계를 포함하는, 방법.
  18. 음성 명령을 수행하는 제 1 디바이스에 있어서,
    제 2 디바이스로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 제 1 통신부;
    상기 음성 데이터를 서버 장치에 전송하고, 상기 음성 데이터에 기초하여 상기 사용자에 대한 인증을 수행한 결과 및 상기 음성 데이터로부터 검출된 제어 명령에 관한 정보를 상기 서버 장치로부터 수신하는 제 2 통신부; 및
    상기 사용자에 대한 인증이 성공한 경우, 상기 제어 명령에 대응하는 제어 동작을 수행하는 프로세서를 포함하는, 제 1 디바이스.
  19. 제 18 항에 있어서, 상기 프로세서는,
    소정 조건에 기초하여, 보안 모드 및 비보안 모드 중 하나를 상기 제 1 디바이스의 동작 모드로 식별하고, 상기 제 1 디바이스의 동작 모드가 상기 보안 모드인 경우, 상기 제 2 통신부를 통해 상기 서버 장치에 상기 음성 데이터를 전송하고,
    상기 보안 모드는 상기 서버 장치에서 상기 사용자에 대한 인증을 수행하는 모드이고, 상기 비보안 모드는 상기 제 1 디바이스에서 상기 사용자에 대한 인증을 수행하는 모드인, 제 1 디바이스.
  20. 컴퓨터로 읽을 수 있는 저장 매체를 포함하는 컴퓨터 프로그램 제품에 있어서, 상기 저장 매체는,
    외부로부터 브로드캐스팅되는 사용자의 음성 데이터를 포함하는 패킷을 수신하는 단계;
    상기 음성 데이터를 서버 장치에 전송하는 단계;
    상기 음성 데이터에 기초하여 상기 사용자에 대한 인증을 수행한 결과 및 상기 음성 데이터로부터 검출된 제어 명령에 관한 정보를 상기 서버 장치로부터 수신하는 단계; 및
    상기 사용자에 대한 인증이 성공한 경우, 상기 제어 명령에 대응하는 제어 동작을 수행하는 단계를 수행하는 명령어들(instructions)을 포함하는, 컴퓨터 프로그램 제품.
KR1020180022969A 2018-02-26 2018-02-26 음성 명령을 수행하는 방법 및 시스템 KR20190102509A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020180022969A KR20190102509A (ko) 2018-02-26 2018-02-26 음성 명령을 수행하는 방법 및 시스템
CN201980015595.9A CN111771185A (zh) 2018-02-26 2019-01-30 用于执行语音命令的方法及系统
EP19756613.6A EP3736684A4 (en) 2018-02-26 2019-01-30 PROCEDURE AND SYSTEM FOR EXECUTING VOICE COMMANDS
US16/975,993 US20210043189A1 (en) 2018-02-26 2019-01-30 Method and system for performing voice command
PCT/KR2019/001292 WO2019164148A1 (ko) 2018-02-26 2019-01-30 음성 명령을 수행하는 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180022969A KR20190102509A (ko) 2018-02-26 2018-02-26 음성 명령을 수행하는 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20190102509A true KR20190102509A (ko) 2019-09-04

Family

ID=67688197

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180022969A KR20190102509A (ko) 2018-02-26 2018-02-26 음성 명령을 수행하는 방법 및 시스템

Country Status (5)

Country Link
US (1) US20210043189A1 (ko)
EP (1) EP3736684A4 (ko)
KR (1) KR20190102509A (ko)
CN (1) CN111771185A (ko)
WO (1) WO2019164148A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9954996B2 (en) 2007-06-28 2018-04-24 Apple Inc. Portable electronic device with conversation management for incoming instant messages
US9207835B1 (en) 2014-05-31 2015-12-08 Apple Inc. Message user interfaces for capture and transmittal of media and location content
CN111343060B (zh) 2017-05-16 2022-02-11 苹果公司 用于家庭媒体控制的方法和界面
US20220279063A1 (en) 2017-05-16 2022-09-01 Apple Inc. Methods and interfaces for home media control
US10372298B2 (en) 2017-09-29 2019-08-06 Apple Inc. User interface for multi-user communication session
DK201870364A1 (en) 2018-05-07 2019-12-03 Apple Inc. MULTI-PARTICIPANT LIVE COMMUNICATION USER INTERFACE
US11128792B2 (en) 2018-09-28 2021-09-21 Apple Inc. Capturing and displaying images with multiple focal planes
JP7266448B2 (ja) * 2019-04-12 2023-04-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 話者認識方法、話者認識装置、及び話者認識プログラム
US10904029B2 (en) 2019-05-31 2021-01-26 Apple Inc. User interfaces for managing controllable external devices
KR20240049648A (ko) 2019-05-31 2024-04-16 애플 인크. 오디오 미디어 제어를 위한 사용자 인터페이스
US11363071B2 (en) 2019-05-31 2022-06-14 Apple Inc. User interfaces for managing a local network
DK201970533A1 (en) 2019-05-31 2021-02-15 Apple Inc Methods and user interfaces for sharing audio
US11010121B2 (en) 2019-05-31 2021-05-18 Apple Inc. User interfaces for audio media control
US11722485B2 (en) * 2019-09-13 2023-08-08 Jpmorgan Chase Bank, N.A. Method and system for integrating voice biometrics
US11079913B1 (en) * 2020-05-11 2021-08-03 Apple Inc. User interface for status indicators
US11527250B2 (en) * 2020-07-01 2022-12-13 Bank Of America Corporation Method and system for mobile data communication
US11392291B2 (en) 2020-09-25 2022-07-19 Apple Inc. Methods and interfaces for media control with dynamic feedback
US11671697B2 (en) 2021-01-31 2023-06-06 Apple Inc. User interfaces for wide angle video conference
US11893214B2 (en) 2021-05-15 2024-02-06 Apple Inc. Real-time communication user interface
US11907605B2 (en) 2021-05-15 2024-02-20 Apple Inc. Shared-content session user interfaces
US11449188B1 (en) 2021-05-15 2022-09-20 Apple Inc. Shared-content session user interfaces
CN113409786B (zh) * 2021-07-07 2023-12-05 北京京东乾石科技有限公司 语音控制方法、装置、电子设备及计算机可读存储介质
US11770600B2 (en) 2021-09-24 2023-09-26 Apple Inc. Wide angle video conference

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7158871B1 (en) * 1998-05-07 2007-01-02 Art - Advanced Recognition Technologies Ltd. Handwritten and voice control of vehicle components
JP3715584B2 (ja) * 2002-03-28 2005-11-09 富士通株式会社 機器制御装置および機器制御方法
US7835821B2 (en) * 2005-11-17 2010-11-16 Electronics And Telecommunications Research Institute Robot server for controlling robot, system having the same for providing content, and method thereof
US9070282B2 (en) * 2009-01-30 2015-06-30 Altorr Corp. Smartphone control of electrical devices
US20130238326A1 (en) * 2012-03-08 2013-09-12 Lg Electronics Inc. Apparatus and method for multiple device voice control
KR101946364B1 (ko) * 2012-05-01 2019-02-11 엘지전자 주식회사 적어도 하나의 마이크 센서를 갖는 모바일 디바이스 및 그 제어방법
CN102760433A (zh) * 2012-07-06 2012-10-31 广东美的制冷设备有限公司 联网家电用声控遥控器及其控制方法
KR101330671B1 (ko) * 2012-09-28 2013-11-15 삼성전자주식회사 전자장치, 서버 및 그 제어방법
US9460715B2 (en) * 2013-03-04 2016-10-04 Amazon Technologies, Inc. Identification using audio signatures and additional characteristics
MY175230A (en) * 2013-08-29 2020-06-16 Panasonic Ip Corp America Device control method, display control method, and purchase payment method
US9698999B2 (en) * 2013-12-02 2017-07-04 Amazon Technologies, Inc. Natural language control of secondary device
KR102188090B1 (ko) * 2013-12-11 2020-12-04 엘지전자 주식회사 스마트 가전제품, 그 작동방법 및 스마트 가전제품을 이용한 음성인식 시스템
JP6710037B2 (ja) * 2015-10-23 2020-06-17 シャープ株式会社 通信装置
US9653075B1 (en) * 2015-11-06 2017-05-16 Google Inc. Voice commands across devices
KR102642666B1 (ko) * 2016-02-05 2024-03-05 삼성전자주식회사 음성인식 장치 및 방법, 음성인식시스템
TW201732777A (zh) * 2016-03-03 2017-09-16 Tai-An Lu 具有語音控制功能之物聯網系統及其資訊處理方法
CN105974804A (zh) * 2016-05-09 2016-09-28 北京小米移动软件有限公司 控制设备的方法及装置
US10614831B2 (en) * 2017-10-12 2020-04-07 Qualcomm Incorporated Audio activity tracking and summaries
US11037555B2 (en) * 2017-12-08 2021-06-15 Google Llc Signal processing coordination among digital voice assistant computing devices

Also Published As

Publication number Publication date
EP3736684A4 (en) 2021-03-03
CN111771185A (zh) 2020-10-13
EP3736684A1 (en) 2020-11-11
US20210043189A1 (en) 2021-02-11
WO2019164148A1 (ko) 2019-08-29

Similar Documents

Publication Publication Date Title
KR20190102509A (ko) 음성 명령을 수행하는 방법 및 시스템
EP3525205B1 (en) Electronic device and method of performing function of electronic device
KR102453603B1 (ko) 전자 장치 및 그 제어 방법
KR102590914B1 (ko) 전자 장치 및 이의 제어 방법
US11790912B2 (en) Phoneme recognizer customizable keyword spotting system with keyword adaptation
EP3533052B1 (en) Speech recognition method and apparatus
US20150279369A1 (en) Display apparatus and user interaction method thereof
US20190341026A1 (en) Audio analytics for natural language processing
JP2018190413A (ja) ユーザ発話の表現法を把握して機器の動作やコンテンツ提供範囲を調整し提供するユーザ命令処理方法およびシステム
KR101847200B1 (ko) 객체 제어 방법 및 시스템
CN112075086B (zh) 用于提供内容的方法和支持该方法的电子装置
KR102356623B1 (ko) 가상 비서 전자 장치 및 그 제어 방법
KR102209092B1 (ko) 복수의 호출 용어를 이용하여 인공지능 기기를 제어하는 방법 및 시스템
CN111131601B (zh) 一种音频控制方法、电子设备、芯片及计算机存储介质
KR102653450B1 (ko) 전자 장치의 입력 음성에 대한 응답 방법 및 그 전자 장치
WO2021008538A1 (zh) 语音交互方法及相关装置
KR102452314B1 (ko) 컨텐츠 재생 방법 및 이를 지원하는 전자 장치
KR20190118996A (ko) 음성 처리 방법 및 음성 처리 장치
KR102580837B1 (ko) 사용자에 대응하는 사용 패턴 정보에 기반하여 외부 전자 장치를 제어 하기 위한 전자 장치 및 방법
US11514902B2 (en) Speech recognition method and apparatus therefor
JP2019012506A (ja) 機械の自動活性のための方法及びシステム
CN112119372B (zh) 电子设备及其控制方法
WO2019150708A1 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
EP4350690A1 (en) Artificial intelligence device and operating method thereof
CN116686046A (zh) 电子设备及其控制方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X601 Decision of rejection after re-examination