이하, 본 문서의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 문서의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 문서에서 사용된 "제1," "제2," "첫째," 또는 "둘째," 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.
본 문서에서 사용된 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.
본 개시의 다양한 실시 예들에 따른 전자 장치(제어 디바이스와 피제어 디바이스를 포함)는, 예를 들면, 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에 따르면, 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드(skin pad) 또는 문신), 또는 생체 이식형(예: implantable circuit) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에서, 전자 장치는 가전 제품(home appliance)일 수 있다. 가전 제품은, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성 HomeSync™애플TV™또는 구글 TV™게임 콘솔(예: Xbox™PlayStation™전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시 예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션(navigation) 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller's machine), 상점의 POS(point of sales), 또는 사물 인터넷 장치(internet of things)(예: 전구, 각종 센서, 전기 또는 가스 미터기, 스프링클러 장치, 화재경보기, 온도조절기(thermostat), 가로등, 토스터(toaster), 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예에 따르면, 전자 장치는 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에서, 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 어떤 실시예에 따른 전자 장치는 플렉서블 전자 장치일 수 있다. 또한, 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않으며, 기술 발전에 따른 새로운 전자 장치를 포함할 수 있다.
본 개시의 일 목적은 상대방과의 대화에서 의미 있는 정보를 획득하여 이를 다양한 기능에 활용할 수 있는 전자 장치 및 이의 제어방법을 제공함에 있다. 이하 도면을 참조하여 본 개시에 대해 더욱 상세히 설명하도록 한다.
도 1은 상대방과의 대화에서 의미있는 정보를 획득하는 본 개시의 일 실시 예에 따른 전자 장치를 설명하기 위한 도면이다.
도 1을 참고하면, 사용자는 전자 장치(100)를 이용해 다른 전자 장치의 사용자(상대방)와 대화를 수행할 수 있다. 예컨대, 채팅 애플리케이션을 이용하여 대화를 수행할 수 있다. 전자 장치(100)는 상대방과 나눈 대화에서 상대방을 지칭하는 명칭을 획득할 수 있다. 이 경우, 인공지능 알고리즘에 의해 학습된 인공지능 모델을 이용하여 대화 내에서 상대방을 지칭하는 명칭이 식별될 수 있다.
도 1을 참고하면, 전자 장치(100)는 상대방과의 대화에서 상대방을 지칭하는 명칭 "불독"을 획득할 수 있다.
전자 장치(100)는 대화 상대방을 지칭하는 명칭이 획득되면 획득된 명칭을 상대방의 연락처 정보와 연관하여 저장할 수 있다. 예컨대, 도 1에 도시한 바와 같이 미리 저장된 상대방의 연락처의 별명 항목에 "불독"을 추가할 수 있다. 즉, 연락처 정보에 기 등록된 "홍길동"이라는 이름 이외에, 상대방을 지칭할 수 있는 또 다른 명칭이 연락처 정보에 추가되는 것이다.
상대방을 지칭하는 명칭 이외에도, 대화에서 상대방과의 관계를 나타내는 키워드, 상대방의 주소 등이 획득될 수 있고, 이것이 상대방의 연락처 정보에 저장될 수 있다.
본 개시의 다양한 실시 예에 따르면 이와 같이 대화에서 획득된 의미 있는 정보들이 활용될 수 있다. 예컨대, 도 1에서 설명한 예시에서 획득된 "불독"이라는 명칭은, 음성으로 홍길동에게 전화를 거는데 사용될 수 있다. 전자 장치(100)는 "불독에게 전화걸어줘"라는 사용자 음성을 수신하면, 홍길동의 연락처를 기초로 전화 연결을 수행할 수 있다. 따라서 사용자는 연락처 정보에 상대방의 이름이 "홍길동"으로 저장되어 있다는 사실을 기억하지 못하더라도, 평소에 상대방을 자주 부르던 "불독"으로 전화를 걸 수 있다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치(100)의 구성을 설명하기 위한 블럭도이다.
도 2를 참고하면, 전자 장치(100)는 통신부(110), 메모리(120) 및 프로세서(130)를 포함한다. 실시 형태에 따라 구성들 중 일부는 생략될 수 있고, 도시되지 않았더라도 당업자에게 자명한 수준의 적절한 하드웨어/소프트웨어 구성들이 전자 장치(100)에 추가로 포함될 수 있다.
통신부(110)는 예를 들면 무선 통신 또는 유선 통신을 통해서 네트워크에 연결되어 외부 장치와 통신할 수 있다. 무선 통신은, 예를 들면, 셀룰러 통신 프로토콜로서, 예를 들면, LTE(long-term evolution), 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 direct), 블루투스(Bluetooth), NFC(near field communication), 직비(Zigbee) 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크는 통신 네트워크(telecommunications network), 예를 들면, 컴퓨터 네트워크(computer network)(예: LAN 또는 WAN), 인터넷, 또는 전화 망(telephone network) 중 적어도 하나를 포함할 수 있다.
통신부(110)는 예를 들면, 셀룰러 모듈, WiFi 모듈, 블루투스 모듈, GNSS 모듈(예: GPS 모듈, Glonass 모듈, Beidou 모듈, 또는 Galileo 모듈), NFC 모듈 및 RF(radio frequency) 모듈를 포함할 수 있다.
셀룰러 모듈은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시예에 따르면, 셀룰러 모듈은 가입자 식별 모듈(예: SIM 카드)을 이용하여 통신 네트워크 내에서 전자 장치의 구별 및 인증을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈은 프로세서가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈은 커뮤니케이션 프로세서(CP: communication processor)를 포함할 수 있다.
WiFi 모듈, 블루투스 모듈, GNSS 모듈 또는 NFC 모듈 각각은, 예를 들면, 해당하는 모듈을 통해서 송수신되는 데이터를 처리하기 위한 프로세서를 포함할 수 있다. 어떤 실시예에 따르면, 셀룰러 모듈, WiFi 모듈, 블루투스 모듈, GNSS 모듈 또는 NFC 모듈 중 적어도 일부(예: 두 개 이상)는 하나의 Integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다.
RF 모듈은, 예를 들면, 통신 신호(예: RF 신호)를 송수신할 수 있다. RF 모듈은, 예를 들면, 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter), LNA(low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시예에 따르면, 셀룰러 모듈, WiFi 모듈, 블루투스 모듈, GNSS 모듈 또는 NFC 모듈 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다.
메모리(120)는 예를 들면, 내장 메모리 또는 외장 메모리를 포함할 수 있다. 내장 메모리는, 예를 들면, 휘발성 메모리(예: 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) 등을 포함할 수 있다.
메모리(120)는 프로세서(130)에 의해 액세스되며, 프로세서(130)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
본 개시에서 메모리라는 용어는 프로세서(130)와 별도로 마련된 메모리, 프로세서(130) 내 롬(미도시) 및 램(미도시) 중 적어도 하나를 포함할 수 있다.
프로세서(130)는 전자 장치(100)의 전반적인 동작을 제어하기 위한 구성이다. 예를 들면, 프로세서(130)는 운영 체제, 애플리케이션을 구동하여 프로세서(130)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서(130)는 CPU(central processing unit) 또는 GPU(graphics-processing unit)이거나 둘 다일 수 있다. 프로세서(250)는 적어도 하나의 범용 프로세서(general processor), 디지털 신호 프로세서(digital signal processor), ASIC(Application specific integrated circuit), SoC(system on chip), MICOM(Microcomputer) 등으로 구현될 수 있다.
프로세서(130)는 인공지능 알고리즘에 의해 학습된 인공지능 모델을 이용하여 다양한 연산을 수행할 수 있다. 예컨대 프로세서(130)는 인공지능 알고리즘에 의해 학습된 인공지능 모델을 이용하여 전자 장치(100)를 이용해 수행되는 상대방과의 대화에서 의미있는 정보를 획득할 수 있다.
인공지능 모델은 인공지능 알고리즘 기반으로 학습된 판단 모델로서, 예로, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 학습된 인공지능 모델은 인간의 뇌 구조를 컴퓨터상에서 모의하도록 설계될 수 있으며 인간의 신경망의 뉴런(neuron)을 모의하는, 가중치를 가지는 복수의 네트워크 노드들을 포함할 수 있다. 복수의 네트워크 노드들은 뉴런이 시냅스(synapse)를 통하여 신호를 주고받는 뉴런의 시냅틱(synaptic) 활동을 모의하도록 각각 연결 관계를 형성할 수 있다. 또한, 학습된 인공지능 모델은, 일 예로, 신경망 모델, 또는 신경망 모델에서 발전한 딥 러닝 모델을 포함할 수 있다. 딥 러닝 모델에서 복수의 네트워크 노드들은 서로 다른 깊이(또는, 레이어)에 위치하면서 컨볼루션(convolution) 연결 관계에 따라 데이터를 주고받을 수 있다. 학습된 인공지능 모델의 예에는 DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 등이 있을 수 있으나 이에 한정되지 않는다.
전자 장치(100)는 인공지능 전용 프로그램(또는 인공지능 에이전트, Artificial intelligence agent)인 개인 비서 프로그램(ex. Bixby™)을 이용할 수 있다. 개인 비서 프로그램은 AI(Artificial Intelligence) 기반의 서비스를 제공하기 위한 전용 프로그램이다. 인공 지능 처리를 위해 기존의 범용 프로세서(예를 들어, CPU)가 이용될 수 있거나, 또는 단일 목적 프로세서(예를 들어, GPU, FPGA, ASIC 등)가 이용될 수 있다. 전자 장치(100)는 복수의 프로세서를 포함할 수 있는데, 예컨대, 인공 지능 전용의 프로세서와 그 밖의 다른 처리를 담당하는 프로세서를 포함할 수 있다.
본 개시의 일 실시 예에 따르면, 기설정된 사용자 입력(예를 들어, 개인 비서 챗봇에 대응되는 아이콘 터치, 기설정된 단어를 포함하는 사용자 음성 등)이 입력되거나 전자 장치(100)에 구비된 버튼(예를 들어, 인공지능 에이전트를 실행하기 위한 버튼)이 눌러지는 경우, 인공지능 에이전트가 동작(또는 실행)할 수 있다. 또는, 인공지능 에이전트는 기설정된 사용자 입력이 감지되거나 전자 장치(100)에 구비된 버튼이 선택되기 이전에 대기 상태일 수 있다. 여기서, 대기 상태란, 인공지능 에이전트의 동작 시작을 제어하기 위해 미리 정의된 사용자 입력(예컨대, 기 설정된 키워드(ex. 빅스비)를 포함하는 사용자 음성이 입력되는 경우)이 수신되는 것을 감지하는 상태이다. 인공지능 에이전트가 대기 상태인 동안 기설정된 사용자 입력이 감지되거나 전자 장치(100)에 구비된 버튼이 선택되면, 전자 장치(100)는 인공지능 에이전트를 동작시킬 수 있다. 그리고, 인공지능 에이전트는 사용자 음성이 수신되면 음성을 바탕으로 전자 장치(100)의 기능을 수행할 수 있고, 음성이 문의하는 음성이면 답변을 출력할 수 있다.
인공 지능을 기반으로 한 연산은 전자 장치(100) 내에서 수행될 수 있고, 외부 서버를 통해 수행되는 것도 가능하다. 전자의 경우, 예컨대 전자 장치(100)는 상대방과의 대화에서 의미있는 정보를 인공지능 모델을 이용하여 획득할 수 있다. 후자의 경우, 예컨대 전자 장치(100)는 상대방과의 대화를 외부 서버로 전송하고, 외부 서버에서 인공지능 모델을 이용하여 대화로부터 의미 있는 정보를 획득할 수 있고, 이를 전자 장치(100)로 제공할 수 있다.
본 개시에 따른 인공지능과 관련된 기능은 프로세서와 메모리를 통해 동작된다.
프로세서는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP 등과 같은 범용 프로세서, GPU. VPU 등과 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서일 수 있다.
하나 또는 복수의 프로세서는, 메모리에 저장된 기정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 기정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다.
여기서, 학습을 통해 만들어진다는 것은, 다수의 학습 데이터들에 학습 알고리즘을 적용함으로써, 원하는 특성의 기정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버/시스템을 통해 이루어 질 수도 있다.
인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 각 레이어는 복수의 가중치(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치의 연산을 통해 레이어의 연산을 수행한다. 신경망의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks)이 있으며, 본 개시에서의 신경망은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
학습 알고리즘은, 다수의 학습 데이터들을 이용하여 소정의 대상 기기(예컨대, 로봇)을 훈련시켜 소정의 대상 기기 스스로 결정을 내리거나 예측을 할 수 있도록 하는 방법이다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으며, 본 개시에서의 학습 알고리즘은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
도 3은 본 개시의 다른 실시예에 따른, 전자 장치(100)의 구성을 도시한 블록도이다. 도 3에 도시된 바와 같이, 전자 장치(100)는 통신부(110), 메모리(120), 프로세서(130), 마이크(140), 입력부(150), 음향출력부(160), 디스플레이(170)를 포함할 수 있다. 실시 형태에 따라 구성들 중 일부는 생략될 수 있고, 도시되지 않았더라도 당업자에게 자명한 수준의 적절한 하드웨어/소프트웨어 구성들이 전자 장치(100)에 추가로 포함될 수 있다. 한편, 통신부(110), 메모리(120), 프로세서(130)는 도 2에서 설명하였으므로, 중복되는 설명은 생략하기로 한다.
마이크(140)는 사용자 음성이나 기타 소리를 입력받아 디지털 신호로 변환하기 위한 구성이다. 프로세서(130)는 마이크(140)를 통해 입력되는 음성 대화에서 의미 있는 정보, 예컨대 상대방을 지칭하는 명칭, 상대방과의 관계, 상대방의 주소 등을 획득할 수 있다. 마이크(140)는 전자 장치(100) 내부에 구비될 수 있으나, 이는 일 실시예에 불과할 뿐, 전자 장치(100)의 외부에 구비되어 전자 장치(100)와 전기적으로 연결될 수 있다.
입력부(150)는 사용자 입력을 수신하여 프로세서(130)로 전달할 수 있다. 입력부(150)는 예컨대, 터치 센서, (디지털) 펜 센서, 압력 센서, 키, 또는 마이크를 포함할 수 있다. 터치 센서는, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. (디지털) 펜 센서는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다. 키는, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다.
음향출력부(160)는 오디오 신호를 출력할 수 있다. 예컨대, 음향출력부(160)통신부(110)를 통해 수신되는 상대방의 음성을 출력할 수 있다. 또한 음향출력부(160)는 메모리(120)에 저장된 오디어 데이터를 출력할 수 있다. 예컨대, 음향출력부(160)는 각종 알림음을 출력할 수 있고, 인공지능 비서의 음성을 출력할 수 있다. 음향출력부(160)는 리시버, 스피커, 부저(buzzer) 등을 포함할 수 있다.
디스플레이(170)는 영상을 출력하기 위한 구성이다. 디스플레이(170)는 예를 들면, 액정 디스플레이(liquid crystal display(LCD)), 발광 다이오드(light-emitting diode(LED)) 디스플레이, 유기 발광 다이오드(organic light-emitting diode(OLED)) 디스플레이(예컨대 AMOLED(active-matrix organic light-emitting diode), PMOLED(passive-matrix OLED)), 또는 마이크로 전자기계 시스템(microelectromechanical systems(MEMS)) 디스플레이, 또는 전자종이(electronic paper) 디스플레이로 구현될 수 있다. 디스플레이(170)와 입력부(150)의 터치 센서가 상호 레이어 구조를 이루어 터치 스크린으로 구현될 수 있다.
메모리(120)는 컴퓨터 실행가능 명령어(computer executable instructions)를 저장하고, 이것이 프로세서(130)에 의해 실행되었을 때 본 개시에서 설명되는 전자 장치(100)의 제어방법이 수행될 수 있다.
예컨대 프로세서(130)는 컴퓨터 실행가능 명령어를 실행함으로써, 통신부(110)를 통해 다른 전자 장치의 사용자와 대화를 수행하는 동안, 인공지능 알고리즘에 의해 학습된 인공지능 모델을 이용하여 상기 다른 전자 장치의 사용자와의 대화에서 상기 다른 전자 장치의 사용자를 지칭하는 명칭을 획득하고, 상기 획득된 명칭을 상기 다른 전자 장치의 사용자의 연락처 정보에 연관하여 메모리(120)에 저장할 수 있다.
또한 프로세서(130)는 컴퓨터 실행가능 명령어를 실행함으로써, 마이크(140)를 통해 음성 대화가 수행되는 동안 인공지능 모델을 이용하여 음성 대화에서 상기 다른 전자 장치의 사용자를 지칭하는 명칭을 획득할 수 있다.
또한, 프로세서(140)는 획득된 명칭을 포함하는 전화를 걸기 위한 사용자 음성이 마이크(140)를 통해 입력되면, 상기 다른 전자 장치의 사용자의 연락처 정보를 기초로 전화 연결을 수행할 수 있다.
또한 프로세서(140)는 다양한 UI를 디스플레이(170)를 통해 제공할 수 있다. 예컨대 대화를 위한 UI, 전화 연결 수행 여부를 문의하는 UI, 연락처 정보 UI 등을 디스플레이(170)를 통해 제공할 수 있다.
도 4는 본 개시의 일 실시 예에 따른 전자 장치(100)의 제어방법을 설명하기 위한 흐름도이다.
도 4를 참고하면, 전자 장치(100)를 이용하여 다른 전자 장치의 사용자와 대화를 수행하는 동안, 인공지능 알고리즘에 의해 학습된 인공지능 모델을 이용하여 상기 다른 전자 장치의 사용자와의 대화에서 상기 다른 전자 장치의 사용자를 지칭하는 명칭을 획득한다(S410).
상대방을 지칭하는 명칭 이외에도, 대화에서 상대방과의 관계를 나타내는 키워드, 상대방의 주소, 상대방과 관련된 스케줄 정보 등과 같이 의미있는 다양한 정보들이 획득될 수 있다.
전자 장치(100)는 문자 대화 기능, 음성 대화 기능을 지원할 수 있고, 문자 대화와 음성 대화에서 인공지능 모델을 이용해 의미있는 정보를 획득할 수 있다.
전자 장치(100)는 자연어 처리(Natural Language Processing, NLP)를 위한 인공지능 모델을 이용해서 텍스트에서 의미있는 정보를 획득하고 이해할 수 있다. 음성이 입력된 경우 전자 장치(100)는 먼저 음성을 텍스트로 변환하는 STT(Speech to Text) 기술을 이용할 수 있다. 상대방과의 대화를 분석하기 위한 인공지능 모델은 전자 장치(100) 내에 자체적으로 구비되거나, 또는 인공지능 모델이 외부 서버에 구비되어 있어 전자 장치(100)가 대화를 외부 서버로 전송하여 외부 서버로부터 대화에 대한 분석 결과를 제공받는 것도 가능하다. 또는 대화 분석의 일부 과정은 전자 장치(100)에서, 또 다른 과정은 외부 서버에서 이루어지는 것이 가능하다. 예컨대, 전자 장치(100)가 음성 대화를 외부 서버로 전송하고 외부 서버는 음성을 텍스트로 변환하여 전자 장치(100)로 제공하고, 전자 장치(100)에서는 변환된 텍스트에 대한 자연어 처리를 수행할 수 있다.
문자 대화는 예컨대 메시지 애플리케이션을 통해 수행될 수 있다. 메시지 애플리케이션은 전자 장치(100)에 기본적으로 탑재된 것 또는 Google Play™, Samsung Apps™ 와 같은 애플리케이션 스토어에서 다운로드받은 메시지 애플리케이션(ex. 카카오톡™, 라인™, WhatsApp™ 등)을 포함할 수 있다. 문자 대화는 SMS, MMS, 메일 등 다양한 형태로 이루어질 수 있다.
전자 장치(100)는 다른 전자 장치의 사용자와 대화를 수행하기 위한 대화 UI를 제공할 수 있다. 대화 UI는 메시지 애플리케이션을 실행시킴으로써 제공될 수 있으며, 대화 텍스트를 입력하는 영역, 자신이 입력한 대화 및 상대방이 입력한 대화가 표시되는 영역을 포함할 수 있다. 예컨대 전자 장치(100)는 도 1에 도시한 것과 같은 대화 UI(10)를 제공할 수 있다.
그리고 전자 장치(100)는 인공지능 모델을 이용하여, 대화 UI를 통해 입력되는 대화에서, 다른 전자 장치의 사용자를 지칭하는 명칭, 관계, 주소 등과 같은 의미 있는 정보를 획득할 수 있다. 예컨대 전자 장치(100)는 도 1의 대화 UI(10)에 입력되는 대화에서 상대방 홍길동을 지칭하는 명칭 불독을 획득할 수 있다.
음성 대화는 일반 전화 또는 VoIP (Voice over Internet Protocol) 기반의 인터넷 전화(ex. 스카이프™, 페이스타임™ 등)를 통해 수행될 수 있다.
전자 장치(100)는 다른 전자 장치의 사용자와 음성 대화가 수행되는 동안 인공지능 모델을 이용하여 음성 대화에서 다른 전자 장치의 사용자를 지칭하는 명칭, 관계, 주소 등과 같은 의미 있는 정보를 획득할 수 있다. 예컨대 전자 장치(100)는 인공지능 모델을 이용해서, 음성 대화를 텍스트로 변환하고 변환된 텍스트를 인공지능 모델에 입력하여 대화 다른 전자 장치의 사용자를 지칭하는 명칭을 획득할 수 있다.
전자 장치(100)는 다른 전자 장치의 사용자의 연락처 정보에 제1 명칭이 기 등록되어 있는 경우, 인공지능 모델을 이용하여 상기 다른 전자 장치의 사용자와의 대화에서 상기 제1 명칭과는 다른 제2 명칭을 획득할 수 있다. 즉, 미리 저장되어 있는 명칭과는 다른 명칭을 획득하는 것이다. 기 등록되어 있는 명칭이 없다면 대화에서 새로운 명칭을 획득할 수 있다.
명칭이 획득되면, 전자 장치(100)는 획득된 명칭을 다른 전자 장치의 사용자의 연락처 정보에 연관하여 저장한다(420). 예컨대, 도 1을 참고하여 설명한 것과 같이 홍길동과의 대화에서 홍길동을 지칭하는 불독이 홍길동의 연락처 정보에 연관하여 저장될 수 있다. 상대방을 지칭하는 명칭 이외에도, 대화에서 상대방과의 관계를 나타내는 키워드, 상대방의 주소 등과 같이 의미있는 다양한 정보들이 획득된 경우 이것이 연락처 정보에 연관되어 저장될 수 있다.
한편, 전자 장치(100)는 다른 전자 장치의 사용자와의 대화에서 다른 전자 장치의 사용자를 지칭하는 명칭이 기 설정된 횟수 이상 획득되면 상기 명칭을 다른 전자 장치의 사용자의 연락처 정보에 연관하여 저장할 수 있다. 즉, 명칭이 일정 횟수 이상 반복 사용된 경우에 한해 해당 명칭이 상대방을 지칭하는 것으로 판단하는 것이다.
전자 장치(100)는 상대방의 연락처를 열람하기 위한 사용자 입력이 수신되면, 상대방의 전화번호, 상대방을 지칭하는 명칭들이 포함된 연락처 정보 UI(User interface)를 제공할 수 있다. 예컨대 상대방의 연락처를 열람하기 위한 사용자 입력이 수신되면 전자 장치(100)는 도 1에 도시한 바와 같이 상대방의 이름 '홍길동', 전화번호 '010-0000-0000', 별명 '불독' 등이 포함된 연락처 정보 UI(20)를 제공할 수 있다.
연락처 정보에 기 등록되어 있던 명칭인 '홍길동'을 이용하여 수행할 수 있던 기능들은, 대화를 통해 획득된 또 다른 명칭인 '불독'을 이용하여서도 동일하게 수행될 수 있다. 일 실시 예에 따르면, 대화에서 획득된 명칭은 전화 걸기 기능에 이용될 수 있다.
도 5는 대화에서 획득된 상대방의 명칭을 전화 걸기 기능에 활용하는 본 개시의 일 실시 예를 설명하기 위한 도면이다.
도 5를 참고하면, 사용자로부터 "불독에게 전화 해줘"라는 음성이 입력되면, 전자 장치(100)는 모든 연락처의 이름, 별명 항목들에서 불독을 포함하고 있는 것을 검색하고, 별명을 불독으로 가지고 있는 홍길동의 연락처 정보를 기초로 전화 연결을 수행할 수 있다.
종래의 인공 지능 비서는 저장된 이름에 기초해서만 전화 연결 기능을 수행하였기 때문에 "불독에게 전화 해줘"라는 음성이 입력될 경우 전화 연결에 실패하지만, 본 개시의 실시 예에 따르면 전화 연결에 성공할 수 있다.
한편, 바로 전화 연결을 하는 대신, 사용자에게 확인받고 전화 연결을 수행할 수 있다. 예컨대, 전자 장치(100)는 대화를 통해 획득된 명칭을 포함하는 전화를 걸기 위한 사용자 음성이 입력되면, 기 등록되어 있는 다른 명칭의 상대방과 전화 연결을 수행할 것인지를 문의하는 메시지 UI(User interface)를 제공할 수 있다. 이와 관련한 실시 예에 대해선 도 6을 참고하여 설명하도록 한다.
도 6은 전화 걸기 기능과 관련한 본 개시의 또 다른 실시 예를 설명하기 위한 도면이다.
도 6을 참고하면, 사용자로부터 "불독에게 전화 해줘"라는 음성이 입력되면, 전자 장치(100)의 인공 지능 비서는 불독과 연관된 연락처 정보에 등록된 다른 명칭, 즉 '홍길동'에게 전화 연결을 할 것인지를 문의하는 메시지 UI(610)를 제공할 수 있다. 그리고 메시지 UI(610)에 대해 사용자가 동의하는 음성, 예컨대 "응"이 입력되면 불독에 대응하는 홍길동의 연락처 정보를 기초로 전화 연결을 수행할 수 있다. 만약 메시지 UI(610)에 대해 사용자가 동의하지 않는 음성, 예컨대 "아니"가 입력되면 전자 장치(100)는 전화 연결을 수행하지 않을 수 있다.
대화를 통해 획득된 상대방을 지칭하는 명칭은 전화 걸기 기능 이외에도 메시지 보내기 기능에도 사용될 수 있다. 예컨대 사용자로부터 "불독에게 오늘 공원에서 만나라고 문자 보내줘"라는 음성이 입력되면, 전자 장치(100)는 불독에 대응하는 홍길동의 연락처를 찾아서 해당 연락처로 "오늘 공원에서 만나"라는 메시지를 전송할 수 있다.
도 7은 메시지 보내기 기능과 관련한 본 개시의 또 다른 실시 예를 설명하기 위한 도면이다.
전자 장치(100)는 다른 전자 장치의 사용자와의 대화에서 획득한 명칭을 이용하여 메시지를 전송할 수 있는데, 구체적으로 메시지를 전송하기 위한, 상기 획득된 명칭을 포함하는 사용자 음성이 입력되면, 상기 명칭이 서두에 포함되는 메시지를 다른 전자 장치의 사용자의 연락처 정보에 기초하여 전송할 수 있다.
예컨대, 도 7을 참고하면, 사용자로부터 "홍길동한테 오늘 공원에서 만나자고 문자 보내줘"라는 음성이 입력되면, 홍길동과의 평소 대화에서 '불독'을 획득하여 홍길동의 연락처에 저장해 두었으므로, 홍길동의 연락처에서 획득된 별명 '불독'을 메시지의 서두에 포함시켜 전송할 수 있다. 즉, 도 7에 도시한 것처럼 "불독. 오늘 공원에서 만나."라는 메시지를 전송할 수 있다. 본 실시 예에 따르면, 평소 대화에서 많이 사용하는 명칭으로 상대방을 부르면서 메시지를 전송할 수 있다는 장점이 있다.
한편, 동일한 명칭이 여러 사람을 지칭하는데 사용될 수 있다. 예를 들어, 다른 전자 장치의 제1 사용자의 연락처 정보에 연관되어 저장된 명칭과, 또 다른 전자 장치의 제2 사용자의 연락처 정보에 연관되어 저장된 명칭이 동일할 수 있다.
도 8은 동일 명칭이 여러 상대방을 지칭하는데 사용되는 경우에 있어서 전화 연결을 수행하는 본 개시의 일 실시 예를 설명하기 위한 도면이다.
도 8을 참고하면, "여보"라는 명칭이 2 개의 연락처 정보와 연관되어 저장된 경우에 있어서, 사용자로부터 "여보에게 전화해줘"라는 음성을 수신하면, 전자 장치(100)는 "여보"를 가지고 있는 연락처가 복수개 있음을 알리는 UI(810)를 제공할 수 있다. 사용자가 복수의 연락처 중 어느 하나를 선택하는 음성을, 예컨대 "재인에게 걸어줘"를 발화하면 전자 장치(100)는 재인의 연락처를 기초로 전화 연결을 수행할 수 있다.
본 개시의 또 다른 실시 예에 따르면, 복수의 연락처 정보에 동일한 명칭이 저장되어 있는 경우에 해당 명칭의 사용 빈도수를 기초로 우선순위를 매겨 이용할 수 있다.
예컨대 전자 장치(100)는 대화에서 다른 전자 장치의 사용자를 지칭하는 명칭이 사용된 빈도수를 저장할 수 있다. 즉, 제1 사용자를 지칭하는 명칭이 사용된 빈도수, 제2 사용자를 지칭하는 명칭이 사용된 빈도수를 각각 저장할 수 있다. 그리고 전자 장치(100)는 상기 명칭을 포함하는 전화를 걸기 위한 사용자 음성이 입력되면, 상기 명칭이 사용된 빈도수가 더 높은 사용자의 연락처 정보를 기초로 전화 연결을 수행할 수 있다. 본 실시예와 관련해선 도 9를 참고하여 설명하도록 한다.
도 9를 참고하면, 사용자로부터 "여보에게 전화해줘"라는 음성을 수신하면, 전자 장치(100)는 "여보"를 가지고 있는 사람의 연락처 정보를 검색하고, 검색된 연락처 정보가 복수 개인 경우, "여보"라는 명칭이 사용된 빈도수가 가장 높은 사람의 연락처 정보를 기초로 전화 연결을 수행할 수 있다. 이 경우, 빈도수가 가장 높은 사람의 연락처 정보로 전화 연결을 수행한다는 점을 안내하는 UI(910)가 제공될 수 있다.
한편, 한 사람에 대해서 여러 가지 별명으로도 부를 수 있으므로, 연락처 정보에는 2 이상의 별명이 저장되는 것도 가능하다.
대화로부터 상대방을 지칭하는 명칭뿐만 아니라, 다른 의미 있는 정보도 획득할 수 있다. 예컨대, 상대방과의 약속, 스케줄과 관련한 정보를 획득할 수 있다.
본 개시의 일 실시 예에 따르면, 전자 장치(100)는 인공지능 모델을 이용하여 다른 전자 장치의 사용자와의 대화에서 다른 전자 장치의 사용자와 연관된 스케줄 정보를 획득하고 획득된 스케줄 정보를 다른 전자 장치의 사용자의 연락처 정보에 연관하여 저장할 수 있다. 본 실시 예와 관련하여선 도 10을 참고하여 설명하도록 한다.
도 10은 대화에서 스케줄 정보를 획득하는 본 개시의 일 실시 예를 설명하기 위한 도면이다.
도 10을 참고하면, 전자 장치(100)의 사용자(사용자 1)가 다른 전자 장치의 사용자(사용자 2)와 전자 장치(100)를 이용해서 음성 대화를 하는 상황을 도시한 것이다. 전자 장치(100)는 인공지능 모델을 이용해서, 대화에서 사용자 2를 지칭하는 명칭, 즉 '그릴 앤 치킨'을 획득하고, 스케줄 정보(시간 정보)를 획득할 수 있다. 이와 같이 획득된 정보는 사용자 2의 연락처 정보와 연관하여 저장될 수 있고, 추후 다양한 기능들에서 활용될 수 있다.
한편, 본 개시의 일 실시 예에 따르면, 대화에서 획득된 정보는 대화가 일어난 시점과 연관되어 저장될 수 있다. 예컨대, 사용자로부터 "불독이랑 내가 언제 통화 했었지?", "3시에 통화한 사람이 누구였지?" 등과 같은 음성을 입력받은 경우, 인공지능 비서가 이에 대한 답변을 할 때 대화가 일어난 시간에 대한 정보가 사용될 수 있다.
대화 서비스를 제공하는 메시지 애플리케이션이나 전화 애플리케이션 등에서는 대화가 언제 일어났는지에 대한 시간 정보도 기록해두므로, 이를 이용할 수 있다. 예컨대, 전화 애플리케이션이 제공하는 최근 연락 기록에 대한 정보가 이용될 수 있다.
일 실시 예에 따르면, 전자 장치(100)를 이용해서 다른 전자 장치의 사용자와 대화(문자 대화 또는 음성 대화)가 수행되면, 최근 연락 기록에 상기 다른 전자 장치의 사용자와의 연락 기록을 추가할 수 있다. 그리고 최근 연락 기록에 추가된 연락 기록에, 대화에서 획득된 정보(상대방을 지칭하는 명칭, 스케줄 정보 등)를 태그할 수 있다. 본 실시 예와 관련해선 도 11a를 참고하여 설명하도록 한다.
도 11a는 최근 연락 기록을 활용하는 본 개시의 일 실시 예를 설명하기 위한 도면이다. 도 10의 대화와 연관시켜 도 11a를 설명하도록 한다.
도 11a를 참고하면, 전자 장치(100)는 도 10에서 설명한 사용자 2와 대화를 한 시간, 사용자 2의 연락처를 최근 연락 기록에 추가할 수 있다. 사용자 2의 연락처가 기 등록된 연락처가 아닌 경우에는 전화번호(02-1234-9876)로 연락 기록이 표현될 수 있다. 그리고 추가된 연락 기록에, 대화에서 획득된 정보, 즉 상대방을 지칭하는 명칭에 대한 정보, 스케줄 정보가 태그 형태로 추가될 수 있다. 예컨대 도 11a에 도시한 바와 같이, 연락 기록 근처에 태그 정보(1110)가 표시될 수 있다.
또 다른 실시 예에 따르면, 대화에서 획득된 정보는 스케줄 관리 애플리케이션(ex. 캘린더 애플리케이션)에 제공될 수 있다. 예를 들어, '그릴 앤 치킨', '19시', '예약' 이라는 정보가 스케줄 관리 애플리케이션에서 2018년 4월 20일자 스케줄에 포함될 수 있다.
본 개시의 일 실시 예에 따르면, 전자 장치(100)는 대화 상대방이 특정 인물인지, 아니면 상호인지를 구분하여, 특정 인물인 경우에는 대화에서 획득된 정보들을 연락처 정보에 저장하고, 상호인 경우에는 최근 연락 기록에 태그 형식으로 저장할 수 있다. 예를 들어, 도 1을 참고하면, 대화 상대방이 사람인 경우에는 연락처 애플리케이션의 연락처 정보에 대화에서 획득한 정보를 저장하고, 도 11a를 참고하면, 대화 상대방이 특정 가게인 경우에는 최근 연락 기록에 대화에서 획득한 정보를 태그 형식으로 저장할 수 있다.
대화에서 획득된 스케줄 정보는 다양한 상황에서 사용될 수 있다. 예컨대, 대화에서 획득된 스케줄 정보와 연관된 대화 상대방에 대한 정보를 요청하는 사용자 음성이 입력되면, 전자 장치(100)는 다른 전자 장치의 사용자를 지칭하는 명칭을 포함하는 답변 메시지 UI를 제공할 수 있다. 이와 관련하여 도 12 내지 도 14를 참고하여 설명하도록 한다.
도 12는 대화에서 획득된 스케줄 정보를 활용하는 본 개시의 일 실시 예를 설명하기 위한 도면이다. 도 11a에서 설명한 실시 예와 연관하여 도 12를 설명하도록 한다.
도 12를 참고하면, 사용자로부터 "빅스비! 4월 20일 19시로 예약한 가게 이름이 뭐였지?"라는 음성이 수신되면, 전자 장치(100)는 인공지능 비서를 활성화시키는 트리거 키워드 "빅스비"를 인식하고, 음성에서 시간 정보를 획득하여 획득된 시간 정보에 대응하는 가게 이름을 연락 기록에 태그된 정보로부터 검색할 수 있다.
전자 장치(100)는 사용자 음성에서 획득한 시간 정보 '4월 20일 19시'를 포함하는 태깅 정보를 갖고 있는 연락 기록을 최근 연락 기록에서 검색할 수 있다. 도 11a를 참고하면, 전자 장치(100)는 연락 기록에 태그되어 있는 정보를 기초로 상대방을 지칭하는 명칭 "그릴 앤 치킨"을 이용하여 "4월 20일 19시로 예약한 상호명은 '그릴 앤 치킨'입니다"를 포함하는 답변 메시지 UI(1210)을 제공할 수 있다.
도 13은 대화에서 획득된 스케줄 정보를 활용하는 본 개시의 또 다른 실시 예를 설명하기 위한 도면이다. 도 11a에서 설명한 실시 예와 연관하여 도 13을 설명하도록 한다.
도 13을 참고하면, 사용자로부터 "빅스비! 다음주 금요일로 예약한 그릴 앤 치킨에 전화 해줘"라는 음성이 수신되면, 전자 장치(100)는 인공지능 비서를 활성화시키는 트리거 키워드 "빅스비"를 인식하고, 시간 정보와 상호명을 획득하여 이에 대응하는 전화번호를 최근 연락 기록으로부터 검색할 수 있다.
전자 장치(100)는 사용자 음성에서 획득한 시간 정보 '다음주 금요일'에 대응하는 '2018년 4월 20일'과 '그릴 앤 치킨'을 태깅 정보로 갖고 있는 연락 기록을 최근 연락 기록에서 검색할 수 있다. 도 11a를 참고하면, 전자 장치(100)는 '2018년 4월 20일'과 '그릴 앤 치킨'을 태깅 정보로 갖고 있는 연락 기록 "02-1234-9876"을 찾을 수 있다. 그리고 전자 장치(100)는 연락 기록 "02-1234-9876"으로 전화 연결을 수행할 수 있다.
도 14는 대화에서 획득된 스케줄 정보를 활용하는 본 개시의 또 다른 실시 예를 설명하기 위한 도면이다. 도 11a에서 설명한 실시 예와 연관하여 도 14를 설명하도록 한다.
도 14를 참고하면, 사용자로부터 "빅스비! 다음주 금요일로 예약한 그릴 앤 치킨에 예약 시간 30분만 늦춰달라고 문자해줘"라는 음성이 수신되면, 전자 장치(100)는 인공지능 비서를 활성화시키는 트리거 키워드 "빅스비"를 인식하고, 시간 정보와 상호명을 획득하여 이에 대응하는 전화번호를 최근 연락 기록으로부터 검색할 수 있다.
전자 장치(100)는 사용자 음성에서 획득한 시간 정보 '다음주 금요일'에 대응하는 '2018년 4월 20일'과 '그릴 앤 치킨'을 태깅 정보로 갖고 있는 연락 기록을 최근 연락 기록에서 검색할 수 있다. 도 11a를 참고하면, 전자 장치(100)는 '2018년 4월 20일'과 '그릴 앤 치킨'을 태깅 정보로 갖고 있는 연락 기록 "02-1234-9876"을 찾을 수 있다. 그리고 전자 장치(100)는 연락 기록에 태깅된 정보로부터 예약 시간이 19시임을 확인하고, 사용자가 변경을 원하는 시간을 계산하여, "02-1234-9876"으로 예약 변경을 요청하는 문자를 전송할 수 있다.
최근 연락 기록에 태그된 정보는 사용자에 의해 연락 기록이 삭제되면 같이 삭제될 수 있고, 또한 연락 기록의 보유 기간이 지나면 자동으로 함께 삭제될 수 있다.
최근 연락 기록에 대화에서 획득된 정보를 태그하는 방법 이외에도, 전자 장치(100)는 대화에서 획득된 정보를 스케줄 관리 애플리케이션에 제공하고, 개인비서는 사용자 요청에 따라 스케줄 관리 애플리케이션에 있는 정보를 이용하여 사용자에게 답변을 할 수 있다.
한편, 본 개시의 또 다른 실시 예에 따르면, 전자 장치(100)는 대화에서 획득한 정보들을 연락처 리스트에 추가할 수 있다. 이에 대해선 도 11b를 참고하여 설명하도록 한다.
도 11b는 본 개시의 일 실시 예에 따른 전자 장치(100)가 제공하는 연락처 리스트 UI(1100)를 도시한 도면이다.
전자 장치(100)는 전자 장치(100)에 저장된 연락처 정보에 대한 연락처 리스트 UI(1100)를 제공할 수 있다. 연락처 리스트 UI(1100)는 저장된 연락처들을 나타내는 UI 아이템들을 포함할 수 있다. UI 아이템이 선택되면 전자 장치(100)는 선택된 UI 아이템에 대응하는 연락처의 상세 정보(전화 번호, 이메일 등)를 포함하는 UI를 제공할 수 있다.
전자 장치(100)는 다양한 대화 수단(ex. 전화, 문자 메시지, 메시지 애플리케이션, 채팅 애플리케이션, SNS 애플리케이션 등)에서 획득한 정보(예컨대, 상대방을 지칭하는 명칭, 상대방과의 관계를 나타내는 키워드, 상대방의 주소, 상대방과 관련된 스케줄 정보 등)를 연락처 리스트에 추가할 수 있다. 예컨대, 전자 장치(100)는 재인과 나눈 대화에서 재인을 지칭하는 명칭인 '여보'를 획득하고, 홍길동과 나눈 대화에서 홍길동을 지칭하는 명칭인 '불독'을 획득하고 획득된 정보를 연락처 리스트에 추가할 수 있다. 이 경우, 전자 장치(100)는 도 11b에 도시한 바와 같이 '재인'의 UI 아이템에 '여보'(1110)를 포함시키고 '홍길동'의 UI 아이템에 '불독'(1120)을 포함시킨 연락처 리스트 UI(1100)를 제공할 수 있다.
한편, 본 개시의 또 다른 실시 예에 따르면, 연락처 리스트에서 연락처를 검색하고자 할 경우, 기존 이름이 아닌 대화를 통해 획득한 명칭으로 검색하더라도 연락처가 검색될 수 있다. 예컨대 도 11b를 참고하면, 연락처 리스트 UI(1100)에서 검색어를 입력하여 연락처를 검색할 수 있고, 이 경우'불독'을 검색어로 하여 연락처를 검색하면 홍길동에 대한 연락처가 검색 결과로서 제공될 수 있다.
도 15는 SNS 애플리케이션과 연동하여 연락처를 등록하는 본 개시의 일 실시 예를 설명하기 위한 도면이다.
도 15를 참고하면, 전자 장치(100)는 SNS 애플리케이션(ex. 카카오톡™, 페이스북™ 등)의 주소록(또는 친구 목록)에는 있지만 전자 장치(100)의 기본 연락처 애플리케이션에는 없는 연락처를 찾아서 등록할 수 있다. 예컨대, 도 15에 도시한 바와 같이, SNS 애플리케이션의 친구 목록에는 있지만 전자 장치(100)의 기본 연락처 애플리케이션에는 없는 사람인 이기백에 대한 연락처를 전자 장치(100)의 기본 연락처 애플리케이션에 새롭게 등록할 수 있다. 이 경우, 연락처를 구성하는 항목들이 SNS 애플리케이션이 제공하는 정보들로 채워질 수 있다. 예컨대, SNS 애플리케이션이 제공하는 정보를 바탕으로 전화번호 항목(1510), 이메일 주소 항목(1520), SNS ID 항목(1530) 등이 채워질 수 있다.
한편, SNS 애플리케이션으로부터 제공된 정보를 기초로 연락처를 새롭게 등록할 수 있을 뿐만 아니라, 기존에 있는 연락처를 구성하는 항목들 중 비어 있는 항목들을 채우는 것도 가능하다. 예컨대, 전자 장치(100)의 기본 연락처 애플리케이션에 이기백의 연락처가 이미 등록되어 있고, 이기백의 연락처를 구성하는 항목들 중 이메일 주소 항목이 비어있는 경우, SNS 애플리케이션으로부터 이기백의 이메일 주소를 제공받아, 이메일 주소 항목을 채워 넣을 수 있다.
또한 전자 장치(100)는 SNS 애플리케이션을 통해 이루어진 대화에서 상대방과 관련된 정보(상대방을 지칭하는 명칭, 상대방과의 관계, 상대방과의 스케줄 등)를 앞서 설명한 바와 같이 획득할 수 있고, 이를 연락처 정보에 포함시킬 수 있다. 예컨대, 전자 장치(100)는 SNS 애플리케이션을 통해 이루어진 이기백과의 대화에서 이기백을 지칭하는 명칭인 '허스키'를 획득하여, 획득된 명칭을 기본 연락처 애플리케이션의 이기백 연락처 내의 별명 항목(1540)에 채워 넣을 수 있다..
이와 같이 연락처 정보에 추가된 정보들을 앞서 설명한 것과 같은 전화 걸기 기능, 메시지 전송 기능, 사용자 음성 문의에 대한 답변 등 다양한 기능에 활용할 수 있다.
상술한 바와 같이, 본 개시의 다양한 실시 예들에 따르면, 여러 가지 대화 수단에서 획득한 정보를 바탕으로 새롭게 연락처 정보를 등록하거나, 또는 여러 가지 대화 수단(ex. 전화, 문자 메시지, 메시지 애플리케이션, 채팅 애플리케이션, SNS 애플리케이션 등)에서 획득한 정보를 기존의 연락처 정보와 연관하여 저장할 수 있고, 이를 다양한 기능에 활용할 수 있다.
도 16은 본 개시의 다양한 실시 예에 따른, 인공지능 모델을 이용하는 네트워크 시스템의 흐름도이다.
도 16에서, 인공지능 모델을 이용하는 네트워크 시스템은 제1 구성 요소(2010) 및 제2 구성 요소(2020)를 포함할 수 있다.
여기서, 제1 구성 요소(2010)는 전자 장치(100)일 수 있다. 그리고 제2 구성 요소(2020)는 인공지능 모델이 저장된 서버가 될 수 있다. 또는, 제1 구성 요소(2010)는 범용 프로세서이고, 제2 구성 요소(2020)는 인공 지능 전용 프로세서가 될 수 있다. 또는, 제1 구성 요소(2010)는 적어도 하나의 어플리케이션이 될 수 있고, 제2 구성 요소(2020)는 운영 체제(operating system, OS)가 될 수 있다. 즉, 제2 구성 요소(2020)는 제1 구성 요소(2010)보다 더 집적화되거나, 전용화되거나, 딜레이(delay)가 작거나, 성능이 우세하거나 또는 많은 리소스를 가진 구성 요소로서 모델의 생성, 갱신 또는 적용 시에 요구되는 많은 연산을 제1 구성 요소(2010)보다 신속하고 효과적으로 처리 가능한 구성 요소가 될 수 있다.
제1 구성 요소(2010) 및 제2 구성 요소(2020) 간에 데이터를 송/수신하기 위한 인터페이스가 정의될 수 있다.
일 예로, 모델에 적용할 학습 데이터를 인자 값(또는, 매개 값 또는 전달 값)으로 갖는 API(application program interface)가 정의될 수 있다. API는 어느 하나의 프로토콜(예로, 전자 장치(100)에서 정의된 프로토콜)에서 다른 프로토콜(예로, 전자 장치(100)의 외부 서버에서 정의된 프로토콜)의 어떤 처리를 위해 호출할 수 있는 서브 루틴 또는 함수의 집합으로 정의될 수 있다. 즉, API를 통하여 어느 하나의 프로토콜에서 다른 프로토콜의 동작이 수행될 수 있는 환경을 제공될 수 있다.
도 16을 참고하면, 제1 구성 요소(2010)를 이용하여 사용자는 상대방과 대화를 수행할 수 있다(S2001). 예컨대 제1 구성 요소(2010)는 상술한 바와 같이 채팅 애플리케이션 또는 전화를 통해 대화를 수행할 수 있다.
제1 구성 요소(2010)는 사용자와 상대방 간의 대화를 제2 구성 요소(2020)로 전송할 수 있다(S2003). 텍스트 기반의 대화의 경우 대화 텍스트가 제2 구성 요소(2020)로 전송될 수 있고, 음성 기반의 대화의 경우 음성을 포함한 오디오 데이터가 제2 구성 요소(2020)로 전송되거나, 또는 제1 구성 요소(2010)에서 음성을 텍스트로 변환하는 처리를 하여 제2 구성 요소(2020)로 변환된 텍스트를 전송할 수 있다.
제2 구성 요소(2020)는 학습된 인공지능 모델을 이용하여 대화에서 상대방과 관련 있는 정보를 획득할 수 있다(S2005). 상대방과 관련 있는 정보는 예컨대 상대방을 지칭하는 명칭, 상대방과의 관계, 상대방의 주소, 상대방과의 스케줄 등과 같은 정보를 포함할 수 있다. 이때, 인공지능 모델은 대화를 입력 데이터로 이용하여 대화에서 상대방과 관련된 정보를 결정하도록 학습된 모델일 수 있다.
제2 구성 요소(2020)는 대화에서 획득한 상대방과 관련 있는 정보를 제1 구성 요소(2010)로 전송할 수 있다(S2007).
제1 구성 요소(2010)는 대화에서 획득된 상대방과 관련 있는 정보를 상대방의 연락처 정보와 연관하여 저장할 수 있다(S2009).
그리고 제1 구성 요소(2010)는 연락처 정보와 연관하여 저장된 상대방과 관련 있는 정보를 다양한 경우에 활용할 수 있다. 예컨대, 상술한 예시에서와 같이, 제1 구성 요소(2010)는 사용자로부터 전화 요청을 위한 음성이 입력되는 경우, 음성에 포함되어 있는 상대방을 지칭하는 명칭과 대응되는 연락처 정보를 검색하여, 해당 연락처 정보를 기초로 전화 연결을 수행할 수 있다.
상술한 실시 예들에 따르면 개인의 사생활 대화에서 의미 있는 정보를 획득하여 이를 여러 기능들에 활용할 수 있으므로, 기존에 미리 정해진 명칭 등에 구애되지 않는 다양한 사용자 경험이 가능하며, 또한 개인의 사생활 대화에서는 상대방에 관련한 정보들을 더 많이 갖고 있기 때문에 이를 활용할 수 있다는 장점이 있다.
이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합으로 구현될 수 있다. 하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 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) 중 적어도 하나를 이용하여 구현될 수 있다. 특히, 이상에서 설명된 다양한 실시 예들은 전자 장치(100)의 프로세서(130)에 의해 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장될 수 있는 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기(machine)는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들의 제어 디바이스(200)를 포함할 수 있다.
이러한 명령어가 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령어에 해당하는 기능을 수행할 수 있다. 명령어는 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 예컨대, 저장매체에 저장된 명령어가 프로세서에 의해 실행됨으로써, 상술한 전자 장치(100)의 제어방법이 실행될 수 있다. 일 예로, 저장매체에 저장된 명령어가 기기(또는 전자 장치)의 프로세서에 의해 실행됨으로써, 전자 장치를 이용하여 다른 전자 장치의 사용자와 대화를 수행하는 동안, 인공지능 알고리즘에 의해 학습된 인공지능 모델을 이용하여 상기 다른 전자 장치의 사용자와의 대화에서 상기 다른 전자 장치의 사용자를 지칭하는 명칭을 획득하는 단계 및 상기 획득된 명칭을 상기 다른 전자 장치의 사용자의 연락처 정보에 연관하여 저장하는 단계를 포함하는 제어방법이 수행될 수 있다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어™, 앱스토어™)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.