KR102051011B1 - 학습 기반 음성 인식 단말을 제어하는 서버 및 제어 방법 - Google Patents

학습 기반 음성 인식 단말을 제어하는 서버 및 제어 방법 Download PDF

Info

Publication number
KR102051011B1
KR102051011B1 KR1020180149053A KR20180149053A KR102051011B1 KR 102051011 B1 KR102051011 B1 KR 102051011B1 KR 1020180149053 A KR1020180149053 A KR 1020180149053A KR 20180149053 A KR20180149053 A KR 20180149053A KR 102051011 B1 KR102051011 B1 KR 102051011B1
Authority
KR
South Korea
Prior art keywords
voice
information
user
terminal
terminal devices
Prior art date
Application number
KR1020180149053A
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 KR1020180149053A priority Critical patent/KR102051011B1/ko
Application granted granted Critical
Publication of KR102051011B1 publication Critical patent/KR102051011B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/93Discriminating between voiced and unvoiced parts of speech signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Circuit For Audible Band Transducer (AREA)

Abstract

서버가 개시된다. 본 개시의 서버는 통신부 및 프로세서를 포함하고, 프로세서는 사용자 음성을 수신한 단말 장치들 각각으로부터 통신부를 통해 사용자 음성에 대한 정보가 수신되면, 수신된 정보에 기초하여 음성의 수신 방향 정보, 음성의 크기 정보 및 음성의 위상 정보를 획득하고, 획득된 수신 방향 정보, 음성의 크기 정보 및 음성의 위상 정보 중 적어도 하나를 이용하여 단말 장치들 중 사용자가 발화하는 대상이 되는 단말 장치를 식별하는 프로세서를 포함한다.

Description

학습 기반 음성 인식 단말을 제어하는 서버 및 제어 방법{SERVER AND METHOD FOR CONTROLLING LEARNING-BASED SPEECH RECOGNITION APPARATUS}
본 개시는 서버 및 이의 제어 방법에 관한 것으로, 보다 상세하게는, 사용자 음성을 수신한 적어도 하나의 단말 장치 중 사용자 음성에 대응되는 동작을 수행할 단말 장치를 결정하는 서버 및 이의 제어 방법에 관한 것이다.
인공 지능 기술은 기계학습(예로, 딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
한 공간 내에 인공지능 에이전트를 탑재한 복수의 장치가 존재하는 경우, 사용자의 음성을 수신한 복수의 장치가 응답을 제공하는 등 혼란이 존재하였다.
한편, 근래에는 사용자의 음성을 인식하는 허브에 음성 명령을 제공하고, 허브가 공간 내에 존재하는 다양한 IOT기기를 제어하는 기술을 통해 다양한 서비스들이 제공된다.
본 개시는 상술한 필요성에 따라 안출된 것으로, 본 개시의 목적은 사용자의 발화 방향을 고려하여, 사용자 음성을 수신한 적어도 하나의 단말 장치 중 사용자 음성에 대응되는 동작을 수행할 장치를 결정하는 서버 및 이의 제어 방법을 제공하는 데 있다.
본 개시의 일 실시 예에 따른 서버는, 통신부 및 프로세서를 포함하고, 상기 프로세서는 사용자 음성을 수신한 적어도 하나의 단말 장치 각각으로부터 상기 통신부를 통해 상기 사용자 음성에 대한 정보가 수신되면, 상기 수신된 정보에 기초하여 상기 적어도 하나의 단말 장치 중 상기 사용자 음성에 대응되는 동작을 수행할 단말 장치를 식별할 수 있다.
이 경우, 상기 프로세서는 상기 음성의 수신 방향 정보, 상기 음성의 크기 정보 및 상기 음성의 위상 정보를 획득하고, 상기 획득된 수신 방향 정보, 상기 음성의 크기 정보 및 상기 음성의 위상 정보 중 적어도 하나를 이용하여 상기 적어도 하나의 단말 장치 중 상기 사용자 음성에 대응되는 동작을 수행할 단말 장치를 식별할 수 있다.
한편, 상기 프로세서는 상기 획득된 수신 방향 정보, 상기 음성의 크기 정보 및 상기 음성의 위상 정보 중 적어도 하나를 이용하여, 사용자의 위치 정보를 획득할 수 있다.
또한, 상기 프로세서는 상기 사용자 음성에 대한 정보에 기초하여, 상기 적어도 하나의 단말 장치의 음성 수신을 위한 지향성 빔의 지향 방향을 조절할 수 있다.
한편, 서버는 메모리를 더 포함하고, 상기 프로세서는 상기 메모리에 저장된 인공지능 모델에 상기 음성의 수신 방향 정보, 상기 음성의 크기 정보 및 상기 음성의 위상 정보 중 적어도 하나를 입력하여 상기 사용자의 좌표 값을 획득할 수 있다. 또한, 프로세서는 상기 메모리에 저장된 인공지능 모델에 상기 음성의 수신 방향 정보, 상기 음성의 크기 정보 및 상기 음성의 위상 정보 중 적어도 하나를 입력하여 상기 사용자의 발화 방향에 대한 정보를 획득할 수 있다.
서버는 상기 단말 장치들로부터 상기 사용자 음성을 감지한 이벤트 정보들을 수신하고, 상기 이벤트 정보들에 대응하는 타임 스탬프들을 획득하고, 상기 타임 스탬프들이 미리 정의된 시간 범위 내에 있는지 여부를 판단하고, 상기 판단의 결과에 기초하여 상기 이벤트 정보들과 관련된 상기 사용자 음성의 동일성 여부를 판단할 수 있다.
서버는 상기 동일성 여부의 판단 결과에 기초하여, 상기 사용자 음성을 수신한 상기 단말 장치들을 미리 등록된 단말 장치들로부터 식별할 수 있다. 서버는 상기 식별된 단말 장치들이 미리 정의된 범위 내에 위치하는 그룹에 속하는지 여부를 판단할 수 있다. 서버는 상기 그룹에 속하는 상기 단말 장치들이 분포하는 영역과 상기 영역 내 위치하는 상기 단말 장치들의 위치들을 포함하는 단말 맵을 획득할 수 있다. 서버는 상기 단말 맵, 상기 획득된 수신 방향 정보, 상기 음성의 크기 정보 및 상기 음성의 위상 정보에 기초하여 상기 사용자가 발화하는 대상이 되는 단말 장치를 식별할 수 있다.
서버는 상기 단말 장치들이 위치한 영역의 형태 및 크기와 상기 단말 장치들의 위치들에 기초하여 제1 입력 벡터를 생성하고, 상기 획득된 수신 방향 정보, 상기 음성의 크기 정보 및 상기 음성의 위상 정보에 기초하여 제2 입력 벡터를 생성하고, 상기 제1 입력 벡터와 상기 제2 입력 벡터 사이의 연산을 통해 제3 입력 벡터를 생성하고, 상기 제3 입력 벡터를 기 학습된 뉴럴 네트워크로 인가하여 출력 벡터를 획득하고, 상기 출력 벡터에 기초하여 상기 사용자가 발화하는 대상이 되는 단말 장치를 식별할 수 있다.
본 개시의 일 실시 예에 따른 서버의 제어 방법은 사용자 음성을 수신한 적어도 하나의 단말 장치 각각으로부터 상기 사용자 음성에 대한 정보를 수신하는 단계, 상기 수신한 음성에 대한 정보에 기초하여 상기 적어도 하나의 단말 장치 중 상기 사용자 음성에 대응되는 동작을 수행할 단말 장치를 식별하는 단계를 포함할 수 있다.
여기서, 상기 사용자 음성에 대응되는 동작을 수행할 단말 장치를 식별하는 단계는 상기 수신된 정보에 기초하여 상기 음성의 수신 방향 정보, 상기 음성의 크기 정보 및 상기 음성의 위상 정보를 획득하는 단계 및 상기 획득된 수신 방향 정보, 상기 음성의 크기 정보 및 상기 음성의 위상 정보 중 적어도 하나를 이용하여 상기 적어도 하나의 단말 장치 중 상기 사용자 음성에 대응되는 동작을 수행할 단말 장치를 식별하는 단계를 포함할 수 있다.
또한, 서버의 제어 방법은 상기 획득된 수신 방향 정보, 상기 음성의 크기 정보 및 상기 음성의 위상 정보 중 적어도 하나를 이용하여, 사용자의 위치 정보를 획득하는 단계를 더 포함할 수 있다.
서버의 제어 방법은 메모리에 저장된 인공지능 모델에 상기 음성의 수신 방향 정보, 상기 음성의 크기 정보 및 상기 음성의 위상 정보 중 적어도 하나를 입력하여 상기 사용자의 위치 좌표 값을 획득하는 단계를 더 포함할 수 있다.
서버는 상기 단말 장치들이 위치한 영역의 형태 및 크기와 상기 단말 장치들의 위치들에 기초하여 제1 입력 벡터를 생성하고, 상기 획득된 수신 방향 정보, 상기 음성의 크기 정보 및 상기 음성의 위상 정보에 기초하여 제2 입력 벡터를 생성하고, 상기 제1 입력 벡터와 상기 제2 입력 벡터 사이의 연산을 통해 제3 입력 벡터를 생성하고, 상기 제3 입력 벡터를 기 학습된 뉴럴 네트워크로 인가하여 출력 벡터를 획득하고, 상기 출력 벡터에 기초하여 상기 사용자의 위치 좌표 값을 생성할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 음성 인식 시스템을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 서버의 구성을 설명하기 위한 블록도이다.
도 3은 본 개시의 일 실시 예에 따른 서버가 사용자 음성에 대응되는 동작을 수행할 단말 장치를 결정하는 방법을 설명하기 위한 흐름도이다.
도 4는 본 개시의 일 실시 예에 따른 사용자의 음성이 발화된 방향을 식별하는 방법을 설명하기 위한 도면이다.
도 5는 단말 장치에서 서버로 제공되는 데이터 패킷의 예시적인 형태 및, 각각의 단말 장치를 통해 획득되는 사용자 음성에 대한 정보의 일례를 도시하는 도면이다.
도 6은 본 개시의 일 실시 예에 따른 인공지능 모델을 설명하기 위한 도면이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 발명된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시의 실시 예에서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
이하에서는 도면을 참조하여 본 발명에 대해 더욱 상세히 설명하기로 한다.
도 1은 본 개시의 일 실시 예에 따른 음성 인식 시스템을 설명하기 위한 도면이다.
도 1의 (a)를 참조하면, 음성 인식 시스템은 사용자의 음성에 기초하여 복수의 단말 장치(200-1, 200-2, …, 200-n) 중 타겟 단말 장치를 결정할 수 있다. 타겟 단말 장치는 사용자의 음성을 통해 제어될 단말 장치를 의미할 수 있다. 타겟 단말 장치는 사용자가 바라보고 발화하는 대상이 되는 단말 장치로써, 사용자의 발화 방향에 기초하여 결정될 수 있다. 각각의 단말 장치(200-1, 200-2, …, 200-n)는 음성 인식을 통해 사용자의 명령을 인식하고, 명령에 대응되는 동작을 수행할 수 있는 장치들일 수 있다.
본 개시에 따른 음성 인식 시스템은 (b)에 개시된 바와 같이, 서버(100) 및 복수의 단말 장치(200-1, 200-2, …, 200-n)를 포함할 수 있다. 여기서, 서버(100)는 네트워크(10)를 통해 복수의 단말 장치(200-1, 200-2, …, 200-n)와 통신한다. 그리고, 복수의 단말 장치(200-1, 200-2, …, 200-n)도 네트워크(10)를 통해 상호간 통신할 수 있다. 한편, 이에 한정되지는 않으며, 복수의 단말 장치(200-1, 200-2, …, 200-n)는 네트워크(10)와는 다른 적어도 하나의 네트워크를 통해 상호 통신할 수도 있다.
사용자가 음성을 발화함에 따라, 복수의 단말 장치(200-1, 200-2, …, 200-n) 중 적어도 하나의 단말 장치가 사용자 음성을 수신할 수 있다. 이때, 사용자 음성을 수신한 적어도 하나의 단말 장치는 수신된 사용자 음성에 대한 정보를 서버(100)에 전송할 수 있다.
서버(100)는 사용자 음성을 수신한 적어도 하나의 단말 장치로부터 사용자 음성에 대한 정보를 수신하여 적어도 하나의 단말 장치 중 사용자가 발화하는 대상이 되는 단말 장치를 결정할 수 있다. 구체적으로, 서버(100)는 적어도 하나의 단말 장치 각각으로부터 수신된 사용자 음성에 대한 정보에 기초하여 음성의 수신 방향, 음성의 크기 및 음성의 위상을 획득할 수 있다. 그리고, 서버(100)는 획득된 음성의 수신 방향, 크기 및 위상 중 적어도 하나를 이용하여 사용자가 발화하는 대상이 되는 단말 장치를 결정할 수 있다. 수신 방향에 대한 정보는 시스템의 기준 방향으로부터의 각도로 표현될 수 있다..
서버(100)는 획득된 음성의 수신 방향, 크기 및 위상 중 적어도 하나를 이용하여 사용자의 위치 및 사용자의 발화 방향 중 적어도 하나를 획득할 수 있다. 그리고, 서버(100)는 이를 저장하여 데이터베이스화할 수 있다. 구체적인 서버(100)의 동작은 이하 도 2 내지 도 6을 참조하여 자세히 설명하기로 한다.
그리고, 서버(100)는 사용자 음성에 대응되는 명령을 생성하고, 생성된 명령을 사용자 음성에 대응되는 동작을 수행하는 것으로 결정된 단말 장치에 전송할 수 있다.
복수의 단말 장치(200-1, 200-2, …, 200-n)는 서버(100)와는 별개의 구성으로, 사용자가 직접 사용하는 장치들을 의미할 수 있다. 또한, 복수의 단말 장치(200-1, 200-2, …, 200-n)는 음성 인식을 통해 관련된 기기의 동작을 제어하는 임의의 장치를 포함할 수 있다. 예를 들어, 복수의 단말 장치(200-1, 200-2, …, 200-n)는 TV, 휴대폰, 스마트폰, PDA, 노트북 PC, 데스크탑, 태블릿 PC, 전자 책, 전자 액자, 키오스크, 냉장고, 세탁기, 스마트 스피커, 스마트 워치, 에어컨, 오디오, DVD(digital video disk) 플레이어, 전자레인지, 공기 청정기, 도어락, 보일러, CCTV, 화재 경보기 등 다양한 전자 장치일 수 있다.
복수의 단말 장치(200-1, 200-2, …, 200-n)는 사용자로부터 발화된 음성을 입력받으면, 사용자 음성에 대한 정보를 서버(100)로 전송할 수 있다.
복수의 단말 장치(200-1, 200-2, …, 200-n)는 원시적으로 저전력 상태를 유지할 수 있다. 저전력 상태는 단말 장치의 일부 기능에 대한 비활성화를 통해 소비 전력이 저감되는 상태를 의미할 수 있다. 복수의 사용자 단말 장치(200-1, 200-2, …, 200-n)는 사용자로부터 발화된 트리거 음성을 수신하는 경우, 활성화 상태로 변경될 수 있다. 이때, 트리거 음성은 단말 장치를 활성화하기 위한 호출어 또는 임계 수준 이상의 음성을 의미할 수 있다. 예시적으로, 호출어는 '하이 빅스비', '시리야', '오케이 구글', '알렉사'와 같이 복수의 사용자 단말 장치(200-1, 200-2, …, 200-n)에 내장된 인공지능의 비서 기능을 활성화하는 음성을 포함할 수 있다. 활성화 상태는 정상적인 전력 공급을 통해 단말 장치의 모든 기능이 활성화된 상태를 의미할 수 있다.
복수의 단말 장치(200-1, 200-2, …, 200-n)는 활성화 상태로 전환된 이후에 수신한 사용자의 음성의 수신 방향에 대한 정보에 기초하여 음성 인식을 위해 형성되는 빔의 지향성을 조절할 수 있다. 복수의 단말 장치(200-1, 200-2, …, 200-n)는 저전력 상태에서 활성화 상태로 변경되는 경우, 음성 인식을 위한 무지향성 빔을 형성할 수 있다. 복수의 단말 장치(200-1, 200-2, …, 200-n)는 형성된 빔의 지향성을 활성화 상태 이후에 수신한 사용자 음성의 수신 방향에 대응되도록 조절할 수 있다. 복수의 단말 장치(200-1, 200-2, …, 200-n)는 지향성이 조절된 빔을 통해 사용자의 음성을 보다 효과적으로 수신할 수 있다. 설명된 지향성 빔의 조절 과정은 음성 인식 과정에서 지속적으로 수행될 수 있고, 수행 결과에 기초하여 지향성은 갱신될 수 있다.
앞서 설명된 음성 인식 과정은 복수의 단말 장치(200-1, 200-2, …, 200-n)에 내장된 음성 인식 장치(예를 들어 지향성 마이크 등)를 통해 획득한 음성 정보에 기초하여 수행될 수 있다.
여기서, 지향성 마이크는 마이크의 중심을 축으로 하여 소리를 받아들이는 마이크를 의미하는 것으로, 마이크 정면의 소리만을 받아들이는 단일 지향성, 전후방에서 오는 소리에 민감한 양방향형, 특정 공간이나 세밀한 소리만을 받아들이는 초지향성 등이 있다.
지향성 마이크는 포함된 마이크 어레이를 통해 획득한 음성의 크기 정보 등에 기초하여 음성의 수신 방향을 추정할 수 있다.
한편, 사용자의 발화 방향을 식별하는 동작은 상술한 예시에 한정되지 않으며, 단말 장치에 구비된 카메라를 이용한 얼굴 인식, 초음파 방사, 적외선 방사, 모션 센서를 이용한 사용자 감지 등 다양한 방식에 의해 수행될 수 있다.
도 2는 본 개시의 일 실시 예에 따른 서버의 구성을 설명하기 위한 블록도이다.
도 2를 참조하면, 서버(100)는 통신부(110), 메모리(120) 및 프로세서(130)를 포함한다.
통신부(110)는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 구체적으로, 통신부(110)는 네트워크에 접속된 적어도 하나의 단말 장치와 통신을 수행할 수 있다. 통신부(110)는 사용자 음성을 입력받은 적어도 하나의 단말 장치로부터, 단말 장치의 식별 정보, 사용자 음성에 대한 정보를 수신할 수 있다. 그리고, 프로세서(130)에 의해 생성된 사용자 음성에 대응되는 명령이 적어도 하나의 단말 장치 중 식별된 단말 장치로 통신부(110)를 통해 전송될 수 있다.
통신부(110)가 외부 장치와 통신 연결되는 것은 제3 기기(예로, 중계기, 허브, 엑세스 포인트, 서버 또는 게이트웨이 등)를 거쳐서 통신하는 것을 포함할 수 있다. 무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 일 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 무선 통신 또는 유선 통신이 수행되는 네트워크는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
메모리(120)는 서버(100)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 구체적으로, 메모리(120)에는 적어도 하나의 명령어가 저장될 수 있다. 프로세서(130)는 메모리(120)에 저장된 명령어를 실행함으로써 상술한 동작을 수행할 수 있다. 메모리(120)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다.
그리고, 메모리(120)에는 학습된 인공 지능 모델이 저장될 수 있다. 여기서, 학습된 인공 지능 모델은 사용자의 위치 및 발화 방향을 파악하고, 파악 결과에 기초하여 사용자가 음성을 통해 동작을 제어하고자 하는 타겟 단말 장치 파악하도록 학습된 것일 수 있다.
그리고, 메모리(120)에는 입력된 음성을 인식하여 텍스트로 변환하거나, 발화된 음성의 의도를 파악하도록 학습된 인공 지능 모델을 더 포함할 수 있다. 이와 같이, 메모리(120)에 음성 인식을 위한 학습된 인공 지능 모델이 저장되어 있으면, 프로세서(130)는 수신된 음성 신호를 음성 인식을 수행하기 위한 외부 서버에 전송하지 않고, 저장된 인공 지능 모델을 이용하여 음성 인식을 수행할 수 있다.
그리고, 메모리(120)에는 연결된 복수의 단말 장치에 대한 식별 정보, 위치 정보 등이 저장될 수 있다.
프로세서(130)는 서버(100)의 동작을 전반적으로 제어한다.
일 실시 예에 따라 프로세서(130)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(130)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
프로세서(130)는 사용자 음성을 수신한 적어도 하나의 단말 장치 각각으로부터 통신부(110)를 통해 사용자 음성에 대한 정보가 수신되면, 수신된 정보에 기초하여 음성의 수신 방향 정보, 음성의 크기 정보 및 음성의 위상 정보를 획득할 수 있다.
예를 들어, 수신 방향 정보는, 단말 장치에 구비된 마이크 어레이 각각을 통해 획득한 음성의 세기를 비교함으로써 획득될 수 있다.
이때, 수신된 사용자 음성에 대한 정보는 적어도 하나의 단말 장치가 입력받은 음성을 이용하여 획득한 정보(예를 들어, 연산을 통해 획득한 음성의 크기, 방향, 위상 정보)이거나, 적어도 하나의 단말 장치 각각에 입력된 음성 신호 자체일 수도 있다.
서버(100)는 음성 신호 자체를 수신하는 경우, 음성 신호 자체에 대한 추가적인 연산을 통해 음성 신호의 수신 방향에 대한 정보, 크기에 대한 정보, 위상에 대한 정보를 획득할 수 있다.
서버(100)는 사용자 음성을 감지한 단말 장치들로부터 동일한 사용자 음성을 감지한 이벤트 정보들을 수신할 수 있다. 서버(100)는 단말 장치들로부터 수신한 사용자 음성 정보들에 대한 타임 스탬프들을 획득할 수 있다. 서버(100)는 단말 장치들로부터 수신한 사용자 음성 정보들의 동일성 여부를 판단할 수 있다. 서버(100)는 미리 정의된 범위 내의 타임 스탬프들에 대응하는 이벤트 정보들을 매칭시킬 수 있다. 서버(100)는 매칭된 이벤트 정보들에 대응하는 사용자 음성 정보들의 파형들에 기초하여, 사용자 음성 정보들의 동일성 여부를 판단할 수 있다. 서버(100)는 사용자 음성들의 주파수, 파장, 진폭, 속도 등 다양한 변수에 기초하여, 사용자 음성들의 동일성 여부를 판단할 수 있다.
서버(100)는 서로 동일한 사용자 음성을 감지한 단말 장치들을 미리 등록된 단말 장치들로부터 식별할 수 있다. 서버(100)는 데이터베이스로부터 미리 등록된 단말 장치들에 대한 정보를 로딩하고, 로딩된 정보 내에서 서로 동일한 사용자 음성을 감지한 단말 장치들을 식별할 수 있다. 서버(100)는 식별된 단말 장치들이 미리 정의된 범위 내에 위치하는지 여부를 판단할 수 있다. 서버(100)는 데이터베이스로부터 미리 등록된 단말 장치들의 단말 맵들을 획득할 수 있다. 데이터베이스 내 정보는 단말 장치들을 그룹 별로 분류하고, 단말 맵은 그룹 내 단말 장치들의 위치 관계를 포함한다. 예를 들어, 단말 맵은 특정 영역 내에 위치한 단말 장치들의 분포를 표현하는 위치 관계를 포함할 수 있다. 단말 장치들은 적어도 하나의 게이트웨이와 대응할 수 있다. 게이트웨이-단말 장치들의 단위의 그룹들로 데이터베이스 내 단말 장치들은 분류될 수 있다. 서버(100)는 단말 장치들로부터 수신한 이벤트 정보들이 동일한 게이트웨이와 매칭되는지 여부를 판단하고, 판단 결과에 따라 단말 장치들을 하나의 그룹으로 식별할 수 있다.
서버(100)는 서로 동일한 사용자 음성을 감지한 단말 장치들의 단말 맵을 획득할 수 있다. 서버(100)는 서로 동일한 사용자 음성을 감지한 것으로 식별된 단말 장치들의 단말 맵을 데이터베이스로부터 획득할 수 있다. 서버(100)는 서로 동일한 사용자 음성을 감지한 것으로 식별된 단말 장치들의 단말 맵, 음성의 수신 방향 정보, 음성의 크기 정보 및 음성의 위상 정보의 조합에 기초하여 사용자가 발화하는 대상이 되는 단말 장치를 식별할 수 있다.
서로 동일한 사용자 음성을 감지한 것으로 식별된 단말 장치들의 단말 맵은 식별된 단말 장치들이 위치한 영역의 범위를 포함할 수 있다. 예를 들어, 단말 맵은 식별된 단말 장치들이 분포하는 영역의 형태와 크기를 포함할 수 있다. 단말 맵은 특정 영역 내 있는 단말 장치들의 위치들을 포함할 수 있다. 예를 들어, 단말 맵은 타원형 영역 내에 있는 단말 장치들 각각의 위치들을 포함할 수 있다. 여기서, 특정 영역은 좌표 영역으로 표현되고, 위치들은 좌표들로 표현될 수 있다.
서버(100)는 단말 맵 내 단말 장치들 각각의 위치들과 단말 장치들에 대응하는 음성의 수신 방향 정보, 크기 정보 및 위상 정보를 서로 대응시킬 수 있다. 서버(100)는 단말 장치들의 위치들, 수신 방향 정보, 크기 정보 및 위상 정보에 기초하여, 사용자가 발화하는 대상이 되는 단말 장치를 식별할 수 있다.
서버(100)가 단말 장치로부터 수신된 음성에 대한 정보를 이용하여 음성의 발화 방향을 판단하는 경우, 프로세서(130)는 메모리(120)에 저장된 학습된 인공지능 모델을 이용하여 음성의 발화 방향을 판단할 수 있다. 이때, 학습된 인공지능 모델은 지향성 마이크로부터 수신된 음성 신호에 대한 정보를 입력하면, 사용자의 발화 방향을 출력하도록 학습된 것일 수 있다.
한편, 프로세서(130)는 음성의 발화 방향 정보, 음성의 크기 정보 및 음성의 위상 정보 중 적어도 하나를 이용하여 사용자의 위치 정보를 식별할 수 있다. 예를 들어, 적어도 하나의 단말 장치 각각에서 획득된 음성의 크기 정보 및 사용자의 발화 방향 정보를 이용하여 사용자의 위치 정보를 획득할 수 있다. 구체적으로, 프로세서(130)는 음성의 크기 정보를 통해 각 단말 장치로부터 사용자의 거리 정보를 획득할 수 있다. 프로세서(130)는 획득된 사용자 발화 방향 및 거리 정보에 기초하여, 각 단말 장치와 사용자의 위치 관계를 파악할 수 있다.
한편, 프로세서(130)는 적어도 하나의 단말 장치 각각에서 획득된 음성의 위상 정보 및 음성의 발화 방향 정보를 이용하여 사용자의 위치 정보를 획득할 수 있다. 구체적으로, 프로세서(130)는 각 단말 장치의 동일한 시간 대의 음성의 위상 정보의 차이를 통해 각 단말 장치로부터 사용자의 거리 정보를 획득할 수 있다. 프로세서(130)는 획득된 사용자 발화 방향 및 거리 정보에 기초하여, 각 단말 장치와 사용자의 위치 관계를 파악할 수 있다.
한편, 프로세서(130)는 메모리(120)에 저장된 학습된 인공지능 모델을 이용하여 상대적인 위치 정보를 판단할 수 있다. 이때, 학습된 인공지능 모델은 음성의 발화 방향 정보, 음성의 크기 정보 또는 음성의 위상 정보를 입력하면, 사용자 및 적어도 하나의 단말 장치의 상대적인 위치 정보를 출력하도록 학습된 것일 수 있다.
프로세서(130)는 기 학습된 인공지능 모델을 이용하여 사용자가 발화하는 대상이 되는 단말 장치를 식별할 수 있다. 인공지능 모델은 기 학습된 뉴럴 네트워크를 포함할 수 있다. 프로세서(130)는 사용자 음성의 동일성 여부의 판단 결과에 따라 식별된 단말 장치들의 단말 맵을 획득할 수 있다. 프로세서(130)는 단말 맵 내 포함된 단말 장치들이 위치한 영역의 형태 및 크기와 단말 장치들의 위치들을 획득할 수 있다. 프로세서(130)는 단말 장치들이 위치한 영역의 형태 및 크기와 단말 장치들의 위치들에 기초하여 제1 입력 벡터를 생성할 수 있다. 프로세서(130)는 음성의 수신 방향 정보, 크기 정보 및 위상 정보에 기초하여 제2 입력 벡터를 생성할 수 있다.
프로세서(130)는 단말 장치들과 음성 정보를 결합시키기 위해, 제1 입력 벡터와 제2 입력 벡터 사이의 연산을 통한 제3 입력 벡터를 생성할 수 있다. 프로세서(130)는 기 학습된 뉴럴 네트워크로 제3 입력 벡터를 인가할 수 있다. 프로세서(130)는 뉴럴 네트워크로부터 생성된 출력 벡터에 기초하여, 사용자가 발화하는 대상이 되는 단말 장치를 식별할 수 있다. 여기서, 뉴럴 네트워크는 단말 장치들이 위치한 영역의 형태 및 크기와 단말 장치들의 위치들에 기초하여 생성된 벡터와 음성의 수신 방향 정보, 크기 정보 및 위상 정보에 기초하여 생성된 벡터 사이의 연산을 통해 생성된 벡터로부터 출력 벡터를 생성하도록 미리 학습될 수 있다.
이때, 사용자 및 복수의 단말 장치가 위치하는 공간 내에 좌표 값을 알고 있는 기준점이 있다면, 프로세서(130)는 기준점 및 상대적인 위치 정보에 기초하여 사용자 및 적어도 하나의 단말 장치의 위치의 좌표 값을 획득할 수 있다. 또한, 각 단말 장치의 위치 좌표에 대한 정보가 메모리(120)에 미리 저장되어 있다면, 사용자의 위치 좌표를 획득할 수 있다.
프로세서(130)는 획득된 상대적인 위치 정보 또는 좌표 값을 메모리(120)에 저장할 수 있다. 이때, 프로세서(130)는 획득된 좌표 값을 이용하여 맵 형태로 적어도 하나의 단말 장치의 위치 정보를 메모리(120)에 저장할 수도 있다.
한편, 프로세서(130)는 단말 장치로부터 수신된 음성에 대한 정보에 기초하여 메모리(120)에 저장된 사용자의 위치 정보 및 단말 장치의 위치 정보와 다른 위치 정보가 획득되면, 메모리(120)에 저장된 정보를 새로운 위치 정보로 업데이트할 수 있다.
그리고, 프로세서(130)는 상기 획득된 음성의 수신 방향 정보, 음성의 크기 정보 및 음성의 위상 정보 중 적어도 하나를 이용하여 적어도 하나의 단말 장치 중 사용자 음성에 대응되는 동작을 수행할 단말 장치를 식별할 수 있다.
한편, 프로세서(130)는 음성 인식 결과에 포함된 단어의 도메인 정보를 더 고려하여 사용자 음성에 대응되는 동작을 수행할 단말 장치를 결정할 수 있다. 예를 들어, 사용자 음성을 인식한 결과가 "15번 채널 틀어줘"라면, 프로세서(130)는 '채널'이라는 단어가 'TV' 도메인에 포함됨을 식별하고, TV를 사용자 음성에 대응되는 동작을 수행할 단말 장치로 결정할 수 있다. 이 과정에서 프로세서(130)는 발화 방향 정보 및 음성 인식 결과에 대한 정보에 가중치를 부여하고, 가중치가 부여된 결과에 기초하여 사용자 음성에 대응되는 동작을 수행할 단말 장치를 결정할 수 있다.
그리고, 프로세서(130)는 음성 인식 결과에 대응되는 명령을 생성하고, 통신부(110)를 통해 생성된 명령을 결정된 단말 장치에 전송할 수 있다.
도 3은 본 개시의 일 실시 예에 따른 서버가 사용자 음성에 대응되는 동작을 수행할 단말 장치를 결정하는 방법을 설명하기 위한 흐름도이다.
도 3을 참조하면, 우선 서버는 적어도 하나의 단말 장치로부터 사용자 음성에 대한 정보를 수신할 수 있다(S310). 이때, 적어도 하나의 단말 장치는 서버와 통신하는 복수의 단말 장치 중 사용자의 음성을 입력받은 단말 장치일 수 있다. 서버는 적어도 하나의 단말 장치 각각으로부터 사용자 음성에 대한 정보를 수신할 수 있다.
그리고, 서버는 사용자 음성에 대한 정보에 기초하여 음성의 발화 방향 정보, 음성의 크기 정보 및 음성의 위상 정보 획득할 수 있다(S320). 구체적으로, 단말 장치로부터 수신한 사용자 음성에 대한 정보는 음성의 수신 방향 정보, 음성의 크기 정보 및 음성의 위상 정보가 포함될 수 있다. 다른 실시 예로, 서버는 단말 장치로부터 음성 신호에 그 자체를 수신하고, 수신된 음성 신호를 분석하여 음성의 수신 방향 정보, 음성의 크기 정보 및 음성의 위상 정보 중 적어도 하나를 획득할 수 있다.
그리고, 서버는 사용자 음성에 대응되는 동작을 수행할 단말 장치를 식별할 수 있다(S330). 구체적으로, 서버는 사용자 음성을 수신한 적어도 하나의 단말 장치 각각에 대응되는 음성의 수신 방향 정보, 음성의 크기 정보 및 음성의 위상 정보 중 적어도 하나에 기초하여, 사용자 음성에 대응되는 동작을 수행할 단말 장치를 결정할 수 있다. 이때, 서버는 수신된 사용자 음성에 대한 음성 인식 결과에 포함된 단어의 도메인 정보를 더 고려하여 사용자 음성에 대응되는 동작을 수행할 단말 장치를 결정할 수도 있다.
도시되지는 않았지만, 서버는 수신된 사용자 음성에 대한 정보를 이용하여 음성 인식을 수행하고, 음성 인식 결과에 따라 동작 명령을 생성할 수 있다. 그리고, 서버는 생성된 동작 명령을 식별된 단말 장치에 전송하여 식별된 단말 장치가 사용자 음성에 대응되는 동작을 수행하도록 할 수 있다.
도 4는 본 개시의 일 실시 예에 따른 사용자의 음성이 발화된 방향을 식별하는 방법을 설명하기 위한 도면이다.
도 4의 (a)는 복수의 단말 장치(200-1, 200-2, …, 200-n) 중 일부가 트리거 음성에 기초하여 저전력 상태에서 활성화 상태로 변경된 상황을 도시한다.
저전력 상태는 단말 장치를 사용하지 않는 동안은 전력의 절약을 위해 단말 장치의 일부 구성에만 전력을 공급하는 상태를 의미한다. 저전력 상태에서 복수의 단말 장치(200-1, 200-2, …, 200-n)는 사용자 음성 수신과 관련된 구성의 수신 성능이 일부 제한될 수 있다. 복수의 단말 장치(200-1, 200-2, …, 200-n)는 트리거 음성에 기초하여 활성화 상태로 전환될 수 있다. 활성화 상태란 저전력 상태에서 전력 제공이 정상화되어 일부 제한된 음성 수신 기능이 정상 상태로 전환된 상태를 의미할 수 있다.
트리거 음성의 크기, 발화 방향 등에 기초하여 트리거 음성은 일부 단말 장치(200-1, 200-2)에 수신될 수 있다. 트리거 음성을 수신한 일부 단말 장치(200-1, 200-2)는 활성화 상태로 전환되어 음성 수신을 위한 무지향 빔(200-1, 200-2)을 형성할 수 있고, 일부 장치(200-n)는 저전력 상태를 유지할 수 있다.
(b)에 도시된 바와 같이, 활성화 상태의 단말 장치(200-1, 200-2)가 존재하는 상황에서 사용자가 음성을 발화한 경우, 활성화된 단말 장치(200-1, 200-2)는 저전력 상태의 단말 장치(200-n)보다 향상된 수신 성능으로 사용자 음성을 수신할 수 있다. 단말 장치(200-1, 200-2)는 수신한 사용자 음성의 수신 방향 정보를 식별하고, 수신 방향에 대응되는 지향성 빔(403, 404)을 적응적으로 형성할 수 있다. 지향성 빔(403, 404)를 수신한 단말 장치(200-1, 200-2)는 무지향 빔(401, 402)가 형성된 상황보다 향상된 수신 성능으로 사용자 음성을 수신할 수 있다. 또한, 서버는 수신한 사용자 음성에 대한 정보에 기초하여 지향성 빔(403, 404)의 지향 방향을 조절할 수 있도록 단말 장치(200-1, 200-2)를 제어할 수 있다.
(b)에서 형성된 지향성 빔(403, 404)의 지향 방향은 수신되는 사용자 음성의 수신 방향에 기초하여 지속적으로 갱신됨으로써 단말 장치(200-1, 200-2)의 수신 성능이 유지될 수 있다.
이와 같이 트리거 음성이 입력됨에 따라 저전력 상태에서 활성화 상태로 전환되므로 단말 장치의 구동 전력을 감소시킬 수 있게 된다.
단말 장치(200-1, 200-2)는 지향성 빔(403, 404)에 기초하여 사용자 음성을 수신할 수 있고, 음성의 수신 방향 정보, 음성의 크기 정보 및 음성의 위상 정보를 포함하는 사용자 음성에 대한 정보를 서버에 전송할 수 있다.
서버(100)는 단말 장치(200-1, 200-2) 각각으로부터 수신한 사용자 음성에 대한 정보에 기초하여 사용자 음성의 타겟이 되는 타겟 단말 장치(200-2)를 결정하고, 결정된 타겟 단말 장치(200-2)의 동작을 제어할 수 있다.
예를 들어, 서버(100)는 단말 장치(200-1, 200-2) 각각으로부터 수신한 사용자 음성에 대한 정보에 포함된 음성의 수신 "?* 정보, 크기 정보, 위상 정보에 기초하여 사용자가 단말 장치(200-2)를 바라보고 명령을 내리는 것을 판단할 수 있고, 단말 장치(200-2)를 타겟 단말 장치로 결정할 수 있다. 서버(100)는 음악이 재생되도록 단말 장치(200-2)를 제어할 수 있다.
또한, 타겟 단말 장치를 결정하는 과정에서 사용자 음성에 대응되는 텍스트("음악 틀어줘")가 사용자 음성에 대한 정보와 더불어 고려될 수 있다.
도 5는 단말 장치에서 서버로 제공되는 데이터 패킷의 예시적인 형태 및, 각각의 단말 장치를 통해 획득되는 사용자 음성에 대한 정보의 일례를 도시하는 도면이다.
도 5의 (a)는 단말 장치에서 서버에 제공되는 데이터 패킷(500)을 도시한다. 데이터 패킷은 단말 장치의 식별 정보(501), 사용자 음성의 음성 크기 정보(502), 음성 방향 정보(503), 음성 위상 정보(504)를 포함할 수 있다.
복수의 단말로부터 (a)에 예시된 형태의 데이터 패킷을 수신한 서버는 (b)에 도시된 데이터(510)에 기초하여 사용자 음성에 대응되는 동작을 수행할 타겟 단말 장치를 결정할 수 있다. 데이터(510)에는 각각의 단말 장치에서 수신한 사용자 음성의 음성 크기 정보, 음성 방향 정보, 음성 위상 정보를 포함할 수 있다. 서버는 복수의 단말 장치 중 음성 크기 정보가 가장 큰 단말 장치를 사용자가 바라보고 있는 타겟 단말 장치로 결정하거나, 각각의 음성 방향 정보 모두를 고려하여 사용자가 바라보고 있는 타겟 단말 장치를 결정할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 인공지능 모델을 설명하기 위한 도면이다.
도 6을 참조하면, 프로세서(130)는 음성에 대한 정보(61)를 입력받아 사용자의 발화 방향 정보, 사용자 위치 정보 중 적어도 하나를 출력값(62)으로 획득할 수 있다. 구체적으로, 프로세서(130)는 학습부(610) 및 획득부(620) 중 적어도 하나를 포함할 수 있다. 도 6에서는 설명의 편의를 위하여 하나의 인공지능 모델만을 도시하였으나, 실제 구현시에는 하나 이상의 인공지능 모델이 포함될 수 있다.
학습부(610)는 사용자 음성에 대한 정보에서 사용자의 발화 방향 및 사용자의 위치 중 적어도 하나를 식별하기 위한 모델을 생성 또는 학습시킬 수 있다. 학습부(610)는 수집된 학습 데이터를 이용하여 사용자의 발화 방향, 사용자의 위치 중 적어도 하나를 식별하기 위한 인공 지능 모델을 생성할 수 있다. 학습부(610)는 수집된 학습 데이터를 이용하여 사용자의 발화 방향 및 사용자의 위치 중 적어도 하나를 식별하기 위한 기준을 갖는 학습된 모델을 생성할 수 있다.
학습부(610)는 복수의 단말 장치로부터 수신한 사용자 음성에 대한 정보를 통해 결정되는 학습 데이터에 기초하여 학습을 수행할 수 있다.
구체적으로, 학습부(610)는 학습 데이터를 이용하여 획득된 사용자의 발화 "?* 또는 사용자의 위치 결과와 실제 사용자의 발화 방향, 위치의 차이를 어떻게 보정할지에 관해 학습시킬 수 있다. 예로, 학습부(610)는 학습 데이터 중 적어도 일부를 판단 기준으로 이용하는 지도 학습(supervised learning)을 통하여, 인공 지능 모델을 학습시킬 수 있다. 또는, 학습부(610)는, 예를 들어, 별다른 지도 없이 학습 데이터를 이용하여 스스로 학습함으로써, 상황의 판단을 위한 판단 기준을 발견하는 비지도 학습(unsupervised learning)을 통하여, 인공 지능 모델을 학습시킬 수 있다. 또한, 학습부(610)는, 예를 들어, 학습에 따른 상황 판단의 결과가 올바른 지에 대한 피드백을 이용하는 강화 학습(reinforcement learning)을 통하여, 인공 지능 모델을 학습시킬 수 있다. 또한, 학습부(610)는, 예를 들어, 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient descent)을 포함하는 학습 알고리즘 등을 이용하여 인공 지능 모델을 학습시킬 수 있다
일 예로, 학습부(610)는 사용자 음성에 대한 정보에서 사용자의 발화 방향을 식별하기 위한 모델을 생성, 학습 또는 갱신시킬 수 있다. 보다 구체적으로, 학습부(610)는 식별된 음성의 수신 방향 정보, 음성의 크기 정보 및 음성의 위상 정보 중 적어도 하나를 이용하여 사용자의 위치 또는 사용자의 발화 방향을 식별하기 위한 모델을 생성, 학습 또는 갱신시킬 수 있다.
획득부(620)는 소정의 데이터를 학습된 모델의 입력 데이터로 사용하여, 다양한 정보를 획득할 수 있다.
일 예로, 획득부(620)는 음성의 수신 방향 정보, 음성의 크기 정보 및 음성의 위상 정보 중 적어도 하나가 입력되면, 사용자의 위치 정보 또는 사용자의 발화 방향 정보를 획득(또는, 인식, 추정, 추론)할 수 있다.
학습부(610)의 적어도 일부 및 획득부(620)의 적어도 일부는, 소프트웨어 모듈로 구현되거나 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 학습부(610) 및 획득부(620) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다. 이때, 인공 지능을 위한 전용 하드웨어 칩은 확률 연산에 특화된 전용 프로세서로서, 기존의 범용 프로세서보다 병렬처리 성능이 높아 기계 학습과 같은 인공 지능 분야의 연산 작업을 빠르게 처리할 수 있다. 학습부(610) 및 획득부(620)가 소프트웨어 모듈(또는, 인스트럭션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 이 경우, 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
상술한 바와 같이, 본 개시의 다양한 실시 예에 따르면, 복수의 단말 장치가 사용자의 음성을 수신하였음에도, 음성의 수신 방향, 음성 크기 및 위상을 이용하여 식별된 하나의 단말 장치에만 동작 수행 명령을 전송하는 바, 불필요한 리소스 소모를 줄이고, 사용자의 음성 명령에 대한 동작 수행에 있어서 장치 간 충돌을 방지할 수 있다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법은 비일시적 판독 가능 매체(non-transitory readable medium) 에 저장될 수 있다. 이러한 비일시적 판독 가능 매체는 다양한 장치에 탑재되어 사용될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 방법을 수행하기 위한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100 : 서버 110 : 통신부
120 : 메모리 130 : 프로세서

Claims (8)

  1. 서버에 있어서,
    통신부; 및
    프로세서를 포함하고,
    상기 프로세서는
    사용자 음성을 수신한 단말 장치들 각각으로부터 상기 통신부를 통해 상기 사용자 음성에 대한 정보가 수신되면, 상기 수신된 정보에 기초하여 상기 단말 장치들 중 사용자가 발화하는 대상이 되는 단말 장치를 식별하고,
    상기 프로세서는
    상기 단말 장치들로부터 상기 사용자 음성을 감지한 이벤트 정보들을 수신하고, 상기 이벤트 정보들에 대응하는 타임 스탬프들을 획득하고, 상기 타임 스탬프들이 미리 정의된 시간 범위 내에 있는지 여부를 판단하고, 상기 판단의 결과에 기초하여 상기 이벤트 정보들과 관련된 상기 사용자 음성의 동일성 여부를 판단하고,
    데이터베이스로부터 게이트웨이 및 단말 장치 그룹을 포함하는 단위의 그룹들의 정보를 로딩하고, 상기 로딩된 정보 내에서 상기 동일한 사용자 음성을 수신한 상기 단말 장치들을 식별하고,
    상기 식별된 단말 장치들로부터 수신한 이벤트 정보들이 동일한 게이트웨이와 매칭되는지 여부를 판단하여, 상기 식별된 단말 장치들을 하나의 그룹으로 식별하고,
    상기 식별된 데이터베이스로부터 단말 맵들 중 상기 게이트웨이에 대응하는 상기 그룹에 속하는 상기 단말 장치들이 위치하는 영역의 형태와 크기를 포함하는 단말 맵을 획득하고,
    상기 단말 장치들로부터 상기 사용자 음성에 대응하는 데이터 패킷들-상기 데이터 패킷들은 상기 단말 장치들의 식별 정보들, 상기 사용자 음성의 음성 크기 정보들, 음성 방향 정보들, 음성 위상 정보들을 포함하고, 상기 음성 방향 정보들은 상기 단말 장치들의 지향성 마이크로부터 수신된 상기 사용자 음성으로부터 음성 방향 정보를 추정하도록 기 학습된 제1 뉴럴 네트워크에 의해 생성됨-을 각각 수신하고,
    상기 데이터 패킷들로부터 상기 단말 장치들에 대응하는 음성 크기 정보들 및 음성 위상 정보들을 추출하여, 제2 뉴럴 네트워크-상기 제2 뉴럴 네트워크는 동일 시간 대의 음성 크기와 음성 위상으로부터 단말 장치로부터의 거리를 추정하도록 기 학습되고, 단말 장치 식별 정보, 음성 크기 정보 및 음성 위상 정보에 대응하는 입력 레이어와 단말 장치로부터의 거리에 대응하는 출력 레이어를 포함함-로 인가하고,
    상기 제2 뉴럴 네트워크의 출력으로부터 상기 단말 장치들과 상기 사용자 사이의 거리 정보들을 획득하고,
    상기 단말 맵, 상기 거리 정보들 및 상기 음성 방향 정보들을 제3 뉴럴 네트워크-상기 제3 뉴럴 네트워크는 단말 장치들의 그룹에 대응하는 단말 맵, 단말 장치의 거리 정보, 음성 방향 정보로부터 사용자 및 단말 장치 사이의 위치를 추정하도록 기 학습되고, 단말 맵, 거리 정보 및 음성 방향 정보에 대응하는 입력 레이어와 단말 장치의 위치에 대응하는 출력 레이어를 포함함-로 인가하고,
    상기 제3 뉴럴 네트워크의 출력으로부터 상기 단말 맵 상의 상기 사용자 및 단말 장치들 사이의 위치들을 획득하고,
    상기 위치들, 상기 음성 방향 정보들 및 상기 단말 장치들의 음성 인식 결과들에 포함된 단어의 도메인 정보에 가중치를 부여하고, 가중치가 부여된 결과로부터 상기 사용자가 발화하는 대상이 되는 단말 장치를 식별하는,
    서버.
  2. 삭제
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 제3 뉴럴 네트워크의 출력 벡터에 기초하여 상기 사용자의 위치 좌표 값을 생성하고, 상기 위치 좌표 값에 기초하여, 상기 사용자의 위치 정보를 결정하는 서버.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 사용자 음성에 대한 정보에 기초하여, 상기 단말 장치들의 음성 수신을 위한 지향성 빔의 지향 방향을 조절하는, 서버.
  5. 삭제
  6. 삭제
  7. 서버의 제어 방법에 있어서,
    사용자 음성을 수신한 단말 장치들 각각으로부터 상기 사용자 음성에 대한 정보를 수신하는 단계; 및
    상기 수신된 정보에 기초하여 상기 단말 장치들 중 사용자가 발화하는 대상이 되는 단말 장치를 식별하는 단계
    를 포함하고,
    상기 식별하는 단계는
    상기 단말 장치들로부터 상기 사용자 음성을 감지한 이벤트 정보들을 수신하고, 상기 이벤트 정보들에 대응하는 타임 스탬프들을 획득하고, 상기 타임 스탬프들이 미리 정의된 시간 범위 내에 있는지 여부를 판단하고, 상기 판단의 결과에 기초하여 상기 이벤트 정보들과 관련된 상기 사용자 음성의 동일성 여부를 판단하는 단계;
    데이터베이스로부터 게이트웨이 및 단말 장치 그룹을 포함하는 단위의 그룹들의 정보를 로딩하고, 상기 로딩된 정보 내에서 상기 동일한 사용자 음성을 수신한 상기 단말 장치들을 식별하는 단계;
    상기 식별된 단말 장치들로부터 수신한 이벤트 정보들이 동일한 게이트웨이와 매칭되는지 여부를 판단하여, 상기 식별된 단말 장치들을 하나의 그룹으로 식별하는 단계;
    상기 식별된 데이터베이스로부터 단말 맵들 중 상기 게이트웨이에 대응하는 상기 그룹에 속하는 상기 단말 장치들이 위치하는 영역의 형태와 크기를 포함하는 단말 맵을 획득하는 단계;
    상기 단말 장치들로부터 상기 사용자 음성에 대응하는 데이터 패킷들-상기 데이터 패킷들은 상기 단말 장치들의 식별 정보들, 상기 사용자 음성의 음성 크기 정보들, 음성 방향 정보들, 음성 위상 정보들을 포함하고, 상기 음성 방향 정보들은 상기 단말 장치들의 지향성 마이크로부터 수신된 상기 사용자 음성으로부터 음성 방향 정보를 추정하도록 기 학습된 제1 뉴럴 네트워크에 의해 생성됨-을 각각 수신하는 단계;
    상기 데이터 패킷들로부터 상기 단말 장치들에 대응하는 음성 크기 정보들 및 음성 위상 정보들을 추출하여, 제2 뉴럴 네트워크-상기 제2 뉴럴 네트워크는 동일 시간 대의 음성 크기와 음성 위상으로부터 단말 장치로부터의 거리를 추정하도록 기 학습되고, 단말 장치 식별 정보, 음성 크기 정보 및 음성 위상 정보에 대응하는 입력 레이어와 단말 장치로부터의 거리에 대응하는 출력 레이어를 포함함-로 인가하는 단계;
    상기 제2 뉴럴 네트워크의 출력으로부터 상기 단말 장치들과 상기 사용자 사이의 거리 정보들을 획득하는 단계;
    상기 단말 맵, 상기 거리 정보들 및 상기 음성 방향 정보들을 제3 뉴럴 네트워크-상기 제3 뉴럴 네트워크는 단말 장치들의 그룹에 대응하는 단말 맵, 단말 장치의 거리 정보, 음성 방향 정보로부터 사용자 및 단말 장치 사이의 위치를 추정하도록 기 학습되고, 단말 맵, 거리 정보 및 음성 방향 정보에 대응하는 입력 레이어와 단말 장치의 위치에 대응하는 출력 레이어를 포함함-로 인가하는 단계;
    상기 제3 뉴럴 네트워크의 출력으로부터 상기 단말 맵 상의 상기 사용자 및 단말 장치들 사이의 위치들을 획득하는 단계; 및
    상기 위치들, 상기 음성 방향 정보들 및 상기 단말 장치들의 음성 인식 결과들에 포함된 단어의 도메인 정보에 가중치를 부여하고, 가중치가 부여된 결과로부터 상기 사용자가 발화하는 대상이 되는 단말 장치를 식별하는 단계
    를 포함하는,
    서버의 제어 방법.
  8. 하드웨어와 결합되어 제7항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.

KR1020180149053A 2018-11-27 2018-11-27 학습 기반 음성 인식 단말을 제어하는 서버 및 제어 방법 KR102051011B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180149053A KR102051011B1 (ko) 2018-11-27 2018-11-27 학습 기반 음성 인식 단말을 제어하는 서버 및 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180149053A KR102051011B1 (ko) 2018-11-27 2018-11-27 학습 기반 음성 인식 단말을 제어하는 서버 및 제어 방법

Publications (1)

Publication Number Publication Date
KR102051011B1 true KR102051011B1 (ko) 2019-12-02

Family

ID=68847731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180149053A KR102051011B1 (ko) 2018-11-27 2018-11-27 학습 기반 음성 인식 단말을 제어하는 서버 및 제어 방법

Country Status (1)

Country Link
KR (1) KR102051011B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022108075A1 (ko) * 2020-11-20 2022-05-27 삼성전자주식회사 전자 장치, 그 제어 방법 및 전자 시스템
CN115280077A (zh) * 2020-03-27 2022-11-01 三菱电机株式会社 空调控制的学习装置以及推理装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182688A (ja) * 2000-12-18 2002-06-26 Seiko Epson Corp 音声認識を用いた機器制御方法および音声認識を用いた機器制御システム
JP2009210956A (ja) * 2008-03-06 2009-09-17 National Institute Of Advanced Industrial & Technology 操作方法およびそのための操作装置、プログラム
KR20150103586A (ko) * 2014-03-03 2015-09-11 삼성전자주식회사 음성 입력을 처리하는 방법 및 이를 수행하는 전자 장치
JP2017010176A (ja) * 2015-06-18 2017-01-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 機器特定方法、機器特定装置及びプログラム
KR20180039135A (ko) * 2015-09-11 2018-04-17 아마존 테크놀로지스, 인크. 음성-인에이블 디바이스들 간 중재

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182688A (ja) * 2000-12-18 2002-06-26 Seiko Epson Corp 音声認識を用いた機器制御方法および音声認識を用いた機器制御システム
JP2009210956A (ja) * 2008-03-06 2009-09-17 National Institute Of Advanced Industrial & Technology 操作方法およびそのための操作装置、プログラム
KR20150103586A (ko) * 2014-03-03 2015-09-11 삼성전자주식회사 음성 입력을 처리하는 방법 및 이를 수행하는 전자 장치
JP2017010176A (ja) * 2015-06-18 2017-01-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 機器特定方法、機器特定装置及びプログラム
KR20180039135A (ko) * 2015-09-11 2018-04-17 아마존 테크놀로지스, 인크. 음성-인에이블 디바이스들 간 중재

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115280077A (zh) * 2020-03-27 2022-11-01 三菱电机株式会社 空调控制的学习装置以及推理装置
CN115280077B (zh) * 2020-03-27 2024-03-08 三菱电机株式会社 空调控制的学习装置以及推理装置
WO2022108075A1 (ko) * 2020-11-20 2022-05-27 삼성전자주식회사 전자 장치, 그 제어 방법 및 전자 시스템

Similar Documents

Publication Publication Date Title
US11978440B2 (en) Wakeword detection
EP3219070B1 (en) Mobile device to provide enhanced security based upon contextual sensor inputs
KR102513297B1 (ko) 전자 장치 및 전자 장치의 기능 실행 방법
US11348581B2 (en) Multi-modal user interface
US11094323B2 (en) Electronic device and method for processing audio signal by electronic device
CN111063345B (zh) 电子装置、其控制方法、以及该电子装置的声音输出控制***
US20190081949A1 (en) Proactively limiting functionality
KR102051016B1 (ko) 학습 기반 음성 인식 단말을 제어하는 서버 및 제어 방법
WO2016160123A1 (en) Controlling electronic device based on direction of speech
US11605179B2 (en) System for determining anatomical feature orientation
US10825451B1 (en) Wakeword detection
KR102051011B1 (ko) 학습 기반 음성 인식 단말을 제어하는 서버 및 제어 방법
CN113330392A (zh) 用于确定包括多个动作的任务的电子装置和方法
JP6911938B2 (ja) 装置及び方法
US11783809B2 (en) User voice activity detection using dynamic classifier
KR102429891B1 (ko) 음성 인식 장치 및 그것의 동작 방법
TWI840587B (zh) 多模態使用者介面
US20220004633A1 (en) Apparatus, method and computer program for detecting malware
KR102304342B1 (ko) 음성 인식 방법 및 이에 사용되는 장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant