KR20230111480A - 대화형 아바타 서비스를 제공하는 방법 및 장치 - Google Patents

대화형 아바타 서비스를 제공하는 방법 및 장치 Download PDF

Info

Publication number
KR20230111480A
KR20230111480A KR1020220007400A KR20220007400A KR20230111480A KR 20230111480 A KR20230111480 A KR 20230111480A KR 1020220007400 A KR1020220007400 A KR 1020220007400A KR 20220007400 A KR20220007400 A KR 20220007400A KR 20230111480 A KR20230111480 A KR 20230111480A
Authority
KR
South Korea
Prior art keywords
avatar
voice
user
animation
electronic device
Prior art date
Application number
KR1020220007400A
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 KR1020220007400A priority Critical patent/KR20230111480A/ko
Priority to PCT/KR2023/000721 priority patent/WO2023140577A1/ko
Priority to US18/098,428 priority patent/US20230230303A1/en
Publication of KR20230111480A publication Critical patent/KR20230111480A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/50Business processes related to the communications industry
    • G06Q50/30
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • 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
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • G10L21/10Transforming into visible information

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Acoustics & Sound (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Tourism & Hospitality (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Processing Or Creating Images (AREA)
  • Operations Research (AREA)

Abstract

본 개시의 일 실시예에 따른 전자장치가 아바타 서비스를 제공하는 방법은, 사용자 발화 음성 및 사용자가 발화한 공간의 공간 정보를 획득하는 단계; 획득된 사용자 발화 음성 및 공간 정보를 서버로 전송하는 단계; 서버로부터, 사용자 발화 음성 및 공간 정보에 기초하여 결정된, 제1 아바타 음성 답변 및 아바타 제1 음성 정보에 대응되는 아바타 표정 시퀀스를 수신하는 단계; 획득된 제1 아바타 음성 답변 및 아바타 표정 시퀀스에 기초하여, 제1 아바타 표정 데이터를 결정하는 단계; 제1 아바타 음성 답변 및 제1 아바타 표정 데이터에 기초하여 생성된 제1 아바타 애니메이션을 재생 중, 소정의 이벤트를 식별하는 단계; 식별된 소정의 이벤트에 기초하여, 제2 아바타 표정 데이터 또는 제2 아바타 음성 답변을 결정하는 단계; 및 제2 아바타 표정 데이터 또는 제2 아바타 음성 답변에 기초하여 생성된 제2 아바타 애니메이션을 재생하는 단계;를 포함한다.

Description

대화형 아바타 서비스를 제공하는 방법 및 장치 {METHOD AND APPARATUS FOR PROVIDING INTERACTIVE AVATAR SERVICES}
인공지능 기술 발달과 함께 자연어 처리 기술이 발달하면서, 대화형 아바타 또는 AI 챗봇이 널리 활용되고 있다. 대화형 아바타 또는 AI 챗봇은 사용자의 질문에 즉각적이고 직접적인 피드백을 제공함으로써 사용자 경험을 높여가고 있으며 그 활용 영역이 커져가고 있다.
대화형 아바타는, 챗봇의 한 종류로 볼수 있으며 대화 자체가 중요시되므로 사용자들은 일반적으로 아바타를 사람으로 인식하는 경향이 있다. 아바타가 사람다울수록 사용자들은 정서적으로 친밀감과 사회적인 유대감을 느껴 아바타와의 상호작용을 긍정적으로 느끼게 될 수 있다. 이러한 긍정적인 느낌은 아바타에 대한 호감으로 이어져 아바타를 더 자주, 지속적으로 사용하게 되는 요인될 수 있다.
아바타에 대한 호감도는, 시각적, 대화적, 행동적인 측면에서 사람다움이 더해져야 향상될 수 있다. 시각적인 측면에서는 아바타의 캐릭터를 사람으로 설정하여 다양한 감정을 표현하도록 하고, 대화적인 측면에서는 실제 사람과 대화하는 것처럼 대화의 패턴을 적용하는 것이 바람직하다. 행동적인 측면에서는 상대방의 상황과 의도를 파악해 미리 대응하는 선제성(proactivity)을 부여하는 것이 필요하다. 이 때, 상대방의 상황을 인식하는 것에 그치지 않고 인식된 상황에 기초하여 아바타의 음성 또는 표정을 적절히 변경함으로써, 아바타는 지능형 뿐 아니라 감성형 비서로서의 역할을 수행할 수 있다.
본 개시의 일 실시예에 따른 전자장치가 아바타 서비스를 제공하는 방법은, 사용자 발화 음성 및 사용자가 발화한 공간의 공간 정보를 획득하는 단계; 획득된 사용자 발화 음성 및 공간 정보를 서버로 전송하는 단계; 서버로부터, 사용자 발화 음성 및 공간 정보에 기초하여 결정된, 제1 아바타 음성 답변 및 아바타 제1 음성 정보에 대응되는 아바타 표정 시퀀스를 수신하는 단계; 획득된 제1 아바타 음성 답변 및 아바타 표정 시퀀스에 기초하여, 제1 아바타 표정 데이터를 결정하는 단계; 제1 아바타 음성 답변 및 제1 아바타 표정 데이터에 기초하여 생성된 제1 아바타 애니메이션을 재생 중, 소정의 이벤트를 식별하는 단계; 식별된 소정의 이벤트에 기초하여, 제2 아바타 표정 데이터 또는 제2 아바타 음성 답변을 결정하는 단계; 및 제2 아바타 표정 데이터 또는 제2 아바타 음성 답변에 기초하여 생성된 제2 아바타 애니메이션을 재생하는 단계;를 포함한다.
본 개시의 일 실시예에 따른 서버가 전자장치를 통해 아바타 서비스를 제공하는 방법은, 전자장치로부터 사용자 발화 음성 및 사용자가 발화한 공간의 공간 정보를 수신하는 단계; 공간 정보에 기초하여, 사용자 발화 음성에 대한 아바타 응답 모드를 결정하는 단계; 사용자 발화 음성 및 응답 모드에 기초하여, 사용자 발화 음성에 대하여 아바타가 응답하기 위한 제1 아바타 음성 답변 및 아바타 제1 음성 정보에 대응되는 아바타 표정 시퀀스를 생성하는 단계; 및 제1 아바타 애니메이션을 생성하기 위한 제1 아바타 음성 답변 및 아바타 표정 시퀀스를 전자장치로 전송하는 단계;를 포함한다.
본 개시의 일 실시예에 따른 아바타 서비스를 제공하는 전자장치는, 통신부; 적어도 하나의 명령어(instruction)를 포함하는 프로그램을 저장하는 저장부; 및 저장부에 저장된 적어도 하나의 명령어를 실행하는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 적어도 하나의 명령어를 실행함으로써, 사용자 발화 음성 및 사용자가 발화한 공간의 공간 정보를 획득하고, 통신부를 통하여, 획득된 사용자 발화 음성 및 공간 정보를 서버로 전송하고, 서버로부터 사용자 발화 음성 및 공간 정보에 기초하여 결정된, 제1 아바타 음성 답변 및 아바타 제1 음성 정보에 대응되는 아바타 표정 시퀀스를 수신하고, 획득된 제1 아바타 음성 답변 및 아바타 표정 시퀀스에 기초하여, 제1 아바타 표정 데이터를 결정하고, 제1 아바타 음성 답변 및 제1 아바타 표정 데이터에 기초하여 생성된 제1 아바타 애니메이션을 재생 중, 소정의 이벤트를 식별하고, 식별된 소정의 이벤트에 기초하여, 제2 아바타 표정 데이터 또는 제2 아바타 음성 답변을 결정하고, 제2 아바타 표정 데이터 또는 제2 아바타 음성 답변에 기초하여 생성된 제2 아바타 애니메이션을 재생한다.
본 개시의 일 실시예에 따른 전자장치를 통해 아바타 서비스를 제공하는 서버는, 통신부; 적어도 하나의 명령어(instruction)를 포함하는 프로그램을 저장하는 저장부; 및 저장부에 저장된 적어도 하나의 명령어를 실행하는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 적어도 하나의 명령어를 실행함으로써, 통신부를 통해, 전자장치로부터 사용자 발화 음성 및 사용자가 발화한 공간의 공간 정보를 수신하고, 공간 정보에 기초하여, 사용자 발화 음성에 대한 아바타 응답 모드를 결정하고, 사용자 발화 음성 및 응답 모드에 기초하여, 사용자 발화 음성에 대하여 아바타가 응답하기 위한 제1 아바타 음성 답변 및 아바타 제1 음성 정보에 대응되는 아바타 표정 시퀀스를 생성하고, 통신부를 통해 제1 아바타 애니메이션을 생성하기 위한 제1 아바타 음성 답변 및 아바타 표정 시퀀스를 전자장치로 전송한다.
한편, 본 개시의 일 실시예에 따르면, 전술한 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
도 1은 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템의 예시를 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따른 전자장치의 블록도이다.
도 3은 본 개시의 일 실시예에 따른 서버의 블록도이다.
도 4는 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템에서, 시간 흐름 및 상황에 따른 아바타 응답 변화를 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시예에 따른 전자장치가, 아바타를 제공하는 방법의 순서도이다.
도 6은 본 개시의 일 실시예에 따른 서버가, 아바타를 제공하는 방법의 순서도이다.
도 7a 내지 도 7c는 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템에서, 서버의 각 모듈에서 처리된 데이터를 나타내는 도면이다.
도 8은 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템에서, 전자장치가 아바타 애니메이션을 생성하기 위한 데이터를 처리하는 방법을 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템에서, 립싱크 데이터를 생성하기 위한 신경망 모델의 예시를 나타낸다.
도 10은 본 개시의 일 실시예에 따라, 립싱크 데이터를 학습하는 방법을 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시예에 따른 전자장치가, 이벤트를 식별하고 식별된 이벤트에 따라 아바타 애니메이션을 변경하는 방법을 설명하기 위한 도면이다.
도 12는 본 개시의 일 실시예에 따른 아바타 애니메이션 생성 방법을 나타내는 도면이다.
도 13a 및 도 13b는 본 개시의 일 실시예에 따른 대화형 아바타 제공 방법에서, 특정 표정에서 신경망 모델 학습을 위한 표정 데이터 또는 립싱크 데이터를 전처리하고, 추론된 표정 데이터 또는 립싱크 데이터를 후처리하는 방법을 나타내는 도면이다.
도 14a 및 도 14b는 본 개시의 일 실시예에 따른 대화형 아바타 제공 방법에서, 아바타의 표정 및 감정에 따라 추론된 립싱크 데이터를 역정규화하는 방법을 나타내는 도면이다.
도 15는 본 개시의 일 실시예에 따른 대화형 아바타 제공 방법에서, 발화 모드에 기초하여 립싱크 데이터의 가용범위에 대한 가중치를 결정하는 방법을 나타내는 도면이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 실시 예를 설명함에 있어서 본 개시가 속하는 기술 분야에 익히 알려져 있고 본 개시와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 개시의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다. 마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다.
그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다. 또한 실시예에서 ‘~부’는 하나 이상의 프로세서를 포함할 수 있다.
본 개시에 따른 인공지능(artificial intelligence, AI)과 관련된 기능은 프로세서와 메모리를 통해 동작된다. 프로세서는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서일 수 있다. 하나 또는 복수의 프로세서는, 메모리에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다.
기 정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 나타낼 수 있다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.
인공지능 모델은, 복수의 신경망 레이어들을 포함할 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 가질 수 있고, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다. 인공 신경망은 심층 신경망(DNN:Deep Neural Network)를 포함할 수 있으며, 예를 들어, 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) 등이 있으나, 전술한 예에 한정되지 않는다.
본 개시에서 ‘서버(server)’는 사용자 단말(User Equipment, UE) 또는 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로서, 서버 프로그램(server program) 또는 장치(device)를 나타낼 수 있다. 서버는 파일 관리 등 네트워크 전체를 감시 또는 제어하거나, 상기 네트워크를 메인 프레임이나 공중망을 통해 다른 네트워크와 연결할 수 있도록 한다. 서버는 데이터, 프로그램, 파일 등과 같은 소프트웨어 자원이나 모뎀, 팩스, 공유기 등과 같은 하드웨어 자원을 공유할 수 있도록 한다. 서버는 사용자(클라이언트)의 요청에 따라 서비스를 제공할 수 있다. 서버에서는 하나 이상의 응용 프로그램들이 상호 협력적인 환경에서 분산 처리 형태로 운용될 수 있다.
본 명세서에서 아바타는, 사람의 분신으로 사용되는 가상 자아 그래픽을 의미한다. 아바타 서비스는, 사용자와의 대화를 제공하는 대화형 아바타를 이용한 인터랙션을 제공하는 서비스일 수 있다. 대화형 아바타는 사용자의 상황, 전자장치의 상황 등을 고려하여 사람이 사용자와 직접 대화하는 것처럼 사용자에게 응답 메시지를 제공할 수 있다.
사용자 발화 음성은, 아바타 서비스 제공에 사용되는 전자장치 사용자가, 아바타와의 인터랙션을 위해 발화한 음성을 의미한다. 사용자 발화 음성은, 사용자가 발화한 아날로그 음성 데이터 외에도 사용자가 발화한 아날로그 음성이 전자장치 및 서버가 처리할 수 있도록 변환된 디지털 데이터를 포함할 수 있다.
사용자가 발화한 공간의 공간 정보는, 사용자가 발화한 공간 또는 전자장치가 사용되는 공간의 특성에 대한 정보를 의미할 수 있다. 사용자가 발화한 공간의 공간 정보는, 사용자가 발화한 곳이 공공장소인지 아니면 개인적인 공간인지 여부 또는 사용자가 발화한 공간이 조용한지 아니면 잡음이 많은지 여부에 대한 정보를 포함할 수 있다.
전자장치는, 사용자에게 아바타 서비스를 제공하는 장치로, 휴대 전화, 태블릿 PC, 및 증강현실 장치 등의 모바일 장치 뿐 아니라, 디스플레이 장치 등을 포함할 수 있다. 본 개시의 일 실시예에 따른 전자장치는 마이크 등을 이용하여 획득한 사용자 발화 음성 및 카메라 등을 이용하여 획득한 공간 정보를 서버로 전달할 수 있으며, 서버로부터 아바타 음성 정보, 및 아바타 표정 시퀀스를 수신하고, 아바타 표정 데이터 및 아바타 립싱크 데이터에 기초하여 아바타 애니메이션을 생성하여 사용자에게 제공할 수 있다.
서버는, 전자장치로부터 수신된 사용자 발화 음성 정보 및 공간 정보에 기초하여, 아바타 음성 정보, 및 아바타 표정 시퀀스를 결정하고, 결정된 아바타 음성 정보, 및 아바타 표정 시퀀스를 전자장치로 전송할 수 있다.
아바타 음성 정보는, 사용자 발화 음성에 대한 응답으로 아바타가 발화하는 음성에 대한 정보를 의미한다. 사용자 발화 음성은, 음성 인식 기술을 이용하여 STT(speech-to-text) 변환되고, 문맥 및 의미가 파악될 수 있으며, 문맥 및 의미가 파악되면 아바타의 응답 방식(또는, 발화 모드)이 결정될 수 있다. 아바타의 응답 문구는 사용자 발화 음성의 문맥 및 의미 뿐 아니라 아바타의 응답 방식에 기초하여 결정될 수 있다. 아바타 음성 정보는 결정된 아바타의 응답 문구가 TTS(text-to-speech) 변환되어 생성된, 아바타가 발화하는 음성에 대한 정보를 포함할 수 있다.
아바타 표정 시퀀스는, 아바타 음성 정보에 대응되는, 시간에 따른 아바타의 표정 변화를 의미한다. 아바타의 표정은, 아바타의 응답 문구 및 아바타의 응답 방식에 기초하여 결정될 수 있으며, 아바타 응답 문구에 대응하여 시간에 따라 변화할 수 있다.
아바타 표정 데이터는, 아바타의 표정을 렌더링하기 위한 정보를 의미한다. 아바타 표정 데이터는 아바타의 표정을 렌더링하기 위한 레퍼런스 3D 메쉬(mesh) 모델에 대한 정보로, 각 프레임에서 복수의 레퍼런스 3D 메쉬 각각에 대한 계수의 집합 , 또는 계수의 세트를 포함할 수 있다. 예를 들어, 아바타 표정 데이터는 블렌드쉐입(blend shapes), 모프 타겟(morph target) 또는 FACS(facial action coding system) 정보일 수 있다.
아바타 립싱크(lip sync) 정보는, 아바타 표정 데이터 중 입(또는 입술) 및 턱 부위에 대한 정보를 의미한다. 아바타가 같은 음성을 발화하더라도 발화시의 감정 및 표정에 따라 입 모양은 다르게 표현될 수 있으므로, 입 모양을 표현하기 위한 입(또는 입술) 및 턱 부위에 대한 정보가 아바타 립싱크(lip sync) 정보로 정의된다. 예를 들어, 아바타 립싱크 정보는 블렌드쉐입, 모프 타겟 또는 FACS 정보 중, 입(또는 입술) 및 턱 부위에 대한 정보일 수 있다.
아바타 애니메이션은, 시간에 따른 아바타의 움직임(변화)을 의미하며, 아바타 발화 음성과 동기를 맞추어 출력된다.
이벤트 는, 아바타 애니메이션 재생 중, 재생중인 아바타 애니메이션의 변경이 필요한 상황이 발생하는 것을 의미한다. 예를 들어, 아바타 애니메이션 재생 중 사용자의 위치 변경이 식별되면, 전자장치는 사용자의 위치를 따라 아바타의 얼굴(또는 머리)를 회전하거나, 사용자의 얼굴을 따라 아바타의 시선을 변경 할 수 있다. 또는, 아바타 애니메이션 재생 중 사용자의 집중도가 낮아진 것이 식별되면, 전자장치는 재생되던 아바타 애니메이션을 중지한 후 사용자의 주의를 환기시킬 수 있는 애니메이션을 재생하고 이후 기존의 아바타 애니메이션을 이어서 재생할 수 있다. 또는, 아바타 애니메이션 재생 중 전자장치의 스피커 출력을 낮추는 입력(예를 들어, 볼륨 다운(down) 버튼 입력)이 감지되면, 전자장치는 아바타의 발화 모드를 ‘속삭임’ 모드로 결정하고 결정된 발화 모드에 따라 아바타의 표정을 변경할 수 있다.
도 1은 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템의 예시를 나타내는 도면이다.
도 1을 참조하면, 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템은, 전자장치 1000, 및 서버 3000를 포함할 수 있다.
전자장치 1000의 사용자 5000가 아바타 2000와의 인터랙션을 위해 소정의 음성을 발화하면, 전자장치 1000는 사용자 5000가 발화한 음성을 획득하고 분석하여, 서버가 처리할 수 있도록 변환된 디지털 데이터를 포함하는 사용자 발화 음성 정보를 서버 3000로 전송할 수 있다.
전자장치 1000로부터 전송된 사용자 발화 음성 정보를 수신한 서버 3000는 전자장치 1000로부터 수신된 사용자 발화 음성 정보에 기초하여 아바타 음성 답변, 및 아바타 표정 시퀀스를 결정하고, 결정된 아바타 음성 답변, 및 아바타 표정 시퀀스를 전자장치 1000로 전송할 수 있다.
서버 3000로부터 아바타 음성 답변, 및 아바타 표정 시퀀스를 수신한 전자장치 1000는 수신된 아바타 음성 답변, 및 아바타 표정 시퀀스에 기초하여 아바타 애니메이션을 생성하여 사용자 5000에게 제공함으로써 사용자 5000는 아바타 2000와 인터랙션 할 수 있다.
예를 들어, 사용자 5000가 “xx야 이순신 장군에 대해 설명해줘”라는 음성을 발화한 경우, 전자장치 1000는 사용자 발화 음성을 획득하고 획득된 사용자 발화 음성에 대한 정보를 서버 3000로 전송한다. 이 때, xx는 전자장치 1000 또는 사용자 5000가 설정한 아바타의 이름일 수 있다.
서버 3000는 전자장치 1000로부터 수신한 사용자 발화 음성 “xx야 이순신 장군에 대해 설명해줘”에 대한 정보에 기초하여, 아바타 음성 답변, 및 아바타 표정 시퀀스를 결정할 수 있다. 이 때, 아바타 음성 답변은 “네 00님 안녕하세요. 이순신 장군에 대해 설명 드리겠습니다….. 임진왜란은 왜군이 우리나라를 침략하여… 거북선 단 1척 만으로…”와 같이 결정될 수 있다. 또한, 아바타 표정 시퀀스는 {(노말), (화남), (강조),…}와 같이 결정될 수 있으며, 00는 사용자 5000의 이름이거나 또는 사용자 5000가 설정한 사용자의 호칭일 수 있다. 서버 3000는, 결정된 아바타 음성 답변, 및 아바타 표정 시퀀스를 전자장치 1000로 전송할 수 있다.
전자장치 1000는, 서버 3000로부터 수신한 아바타 음성 답변, 및 아바타 표정 시퀀스에 기초하여 아바타 표정 데이터를 생성할 수 있으며, 생성된 아바타 표정 데이터 및 아바타 음성 답변에 기초하여 아바타 애니메이션을 생성할 수 있다. 예를 들어 아바타의 표정을 렌더링하기 위하여 블렌드쉐입을 이용하는 경우, 서버 3000는 {(노말), (화남), (강조),…} 상태의 아바타 표정을 렌더링하기 위한 블렌드쉐입을 아바타 표정 데이터로 결정할 수 있다.
본 개시의 일 실시예에 따르면, 전자장치 1000는 아바타 애니메이션 재생 중 사용자 5000의 상태를 지속적으로 모니터링 할 수 있으며, 모니터링 결과 소정의 이벤트가 발생한 것으로 식별되면 전자장치 1000는 식별된 이벤트에 기초하여 재생 중인 아바타 애니메이션을 변경할 수 있다.
본 개시의 일 실시예에 따르면, 전자장치 1000는 아바타 애니메이션 재생 중 사용자 5000의 상태를 지속적으로 모니터링 할 수 있으며, 모니터링 결과 소정의 이벤트가 발생한 것으로 식별되면 전자장치 1000는 이벤트 식별 결과 및 이벤트 정보를 서버 3000로 전송할 수 있다. 이벤트 식별 결과 및 이벤트 정보를 수신한 서버 3000는 이벤트 정보에 기초하여 변경할 아바타 음성 정보 및 아바타 표정 데이터를 전자장치 1000로 전송하고, 전자장치 1000는 서버 3000로부터 수신한 아바타 음성 정보 및 아바타 표정 데이터에 기초하여 재생 중인 아바타 애니메이션을 변경할 수 있다.
도 1을 참조하면, 전자장치 1000가 사용자 5000의 상태를 모니터링 한 결과 사용자가 졸고 있는 것으로 판단된 경우, 전자장치 1000는 사용자의 주의를 환기시키기 위하여, 재생중인 아바타 애니메이션을 중단하고 대체하여 출력할 아바타 애니메이션을 결정할 수 있다. 이 때, 대체하여 출력한 아바타의 음성 답변은 “00님 피곤하신가요? 잠시 기분전환 후 계속 말씀드릴까요?”와 같이 결정될 수 있으며 결정된 아바타 음성 답변에 기초하여 이에 적합한 표정 시퀀스 및 표정 데이터가 결정될 수 있다. 전자장치 1000는 대체하여 출력한 아바타 애니메이션의 재생이 종료되면, 중단된 아바타 애니메이션을 다시 재생할 수 있다.
도 2는 본 개시의 일 실시예에 따른 전자장치의 블록도이다.
도 2를 참조하면, 본 개시의 일 실시예에 따른 전자장치 1000는 환경 정보 획득부 1100, 출력부 1200, 저장부 1300, 프로세서 1400, 및 통신 인터페이스 1500를 포함할 수 있다.
일 실시 예에 따르면, 프로세서 1400는 적어도 하나의 프로세서로 지칭됨으로써 전자장치 1000의 다른 구성 요소들에 대한 동작을 제어하는 하나의 구성으로 이해될 수도 있다. 다양한 실시 예에 따르면, 전자장치 1000의 구성은 도 2에 도시된 바에 한정되지 않으며, 도 2에 도시되지 않은 구성을 추가로 포함하거나, 도 2에 도시된 구성 중 일부를 생략할 수도 있다. 예를 들면, 전자장치 1000는 인공지능 모델, 예컨대, 적어도 하나의 학습 모델(1355)을 위한 별도의 프로세서, 예컨대, NPU(neural processing unit)를 더 포함할 수도 있다. 또한, 저장부 1300에 포함되는 립싱크 모듈 1353 중 적어도 일부는 저장부 1300에 저장된 소프트웨어 모듈이 아닌 별도의 하드웨어 모듈로 구현될 수도 있다.
환경 정보 획득부 1100는, 전자장치 1000가 사용자에게 아바타 서비스를 제공하기 위하여 필요한 환경 정보를 획득할 수 있는 수단을 의미할 수 있다.
카메라 1110는, 이미지를 획득하기 위한 카메라 또는 카메라 모듈과 동일 또는 유사한 구성으로 이해될 수 있다. 일 실시 예에서, 카메라 1110는 렌즈, 근접 센서 및 이미지 센서를 포함할 수 있다. 다양한 실시 예에 따르면, 카메라 1110는 기능 또는 목적에 따라 하나 이상일 수 있다. 예를 들면, 카메라 1110는 광각 렌즈를 포함하는 제1 카메라 센서 및 망원 렌즈를 포함하는 제2 카메라를 포함할 수 있다.
본 개시의 일 실시예에 따르면, 카메라 1110는 사용자 발화시 사용자 및 주위 환경의 이미지를 캡쳐하고, 캡쳐한 이미지 정보를 장소 정보 식별 모듈 1331로 전달할 수 있다. 또한, 카메라 1110는 아바타 발화(아바타 애니메이션 재생)시 사용자 이미지를 캡쳐하고, 캡쳐한 이미지 정보를 위치 변화 식별 모듈 1333, 및 집중도 확인 모듈 1335로 전달할 수 있다.
본 개시에 따른 대화형 아바타 제공 방법에 있어서, 전자장치 1000는 사용자 발화시 카메라 1110로 캡쳐한 사용자 및 주위 환경의 이미지에 기초하여, 사용자가 발화한 공간의 공간 정보를 획득할 수 있다. 예를 들어, 전자장치 1000는 카메라 1110를 통해 캡쳐된 이미지에 기초하여, 공간 자체를 식별함으로써 공공장소(public place)인지, 개인적인 장소(private place)인지 여부를 판단할 수 있다. 또는, 전자장치 1000는 카메라 1110로 캡쳐한 사용자 및 주위 환경의 이미지 이미지에 기초하여, 사용자 주변에 다른 사람들이 존재하는지 여부를 식별함으로써 공공장소인지, 개인적인 장소인지 여부를 판단할 수 있다.
본 개시의 일 실시예에 따르면, 전자장치 1000는 아바타 애니메이션 재생 중, 카메라 1110로 캡쳐한 사용자의 이미지에 기초하여 재생중인 애니메이션을 변경할 소정의 이벤트 발생 여부를 식별할 수 있다.
예를 들어, 전자장치 1000는 아바타 애니메이션 재생 중, 카메라 1110로 캡쳐한 사용자의 이미지에 기초하여, 사용자의 위치 변경 여부를 식별할 수 있고, 사용자의 위치가 변경된 경우 아바타의 얼굴(또는 머리) 방향 또는 시선이 사용자의 위치를 따라가도록 아바타 애니메이션을 변경할 수 있다.
또는, 전자장치 1000는 아바타 애니메이션 재생 중, 카메라 1110로 캡쳐된 이미지에 기초하여, 사용자의 집중도가 낮아졌는지 여부를 식별할 수 있고, 사용자의 주의를 환기시키도록 아바타 애니메이션을 변경할 수 있다.
마이크 1130는, 사용자 발화 음성 및 사용자 발화시 공간 정보를 획득하기 위한 센서를 의미한다.
본 개시의 일 실시예에 따른 대화형 아바타 제공 방법에 있어서, 전자장치 1000는 사용자 발화시 마이크 1130를 이용하여 아날로그 신호인 사용자 발화 음성을 획득하고, 획득된 사용자 발화 음성 정보를 서버 3000로 전달하여, 서버 3000가 수신한 사용자 발화 음성 정보에 기초하여 음성 인식 및 음성 합성을 수행하도록 할 수 있다.
본 개시의 일 실시예에 따른 대화형 아바타 제공 방법에 있어서, 전자장치 전자장치 1000는 사용자 발화시 마이크 1130를 이용하여 아날로그 신호인 사용자 발화 음성을 획득하고, 획득된 사용자 발화 음성을 ASR(Automatic Speech Recognition)모델을 이용하여 컴퓨터로 판독 가능한 텍스트로 변환할 수 있다. 또한, 자연어 이해(Natural Language Understanding, NLU) 모델을 이용하여 변환된 텍스트를 해석하여, 사용자의 발화 의도를 획득할 수 있다. 전자장치 1000는 ASR 및 NLU를 이용한 사용자 발화 음성의 음성 인식 결과를 서버 3000로 전송하여 서버 3000가 수신한 음성 인식 결과에 기초하여 아바타의 음성 대답을 합성하도록 할 수 있다.
여기서 ASR 모델 또는 NLU 모델은 인공지능 모델일 수 있다. 인공지능 모델은 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계된 인공지능 전용 프로세서에 의해 처리될 수 있다. 인공지능 모델은 학습을 통해 만들어 질 수 있다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리(Natural Language Processing), 기계 번역(Machine Translation), 대화 시스템(Dialog System), 질의 응답(Question Answering), 음성 인식/합성(Speech Recognition/Synthesis) 등을 포함한다.
본 개시의 일 실시예에 따른 대화형 아바타 제공 방법에 있어서, 전자장치 1000는 사용자 발화시 마이크 1130로 획득된 소리에 기초하여, 사용자 발화 공간의 잡음도 및 사용자 발화 공간의 공간 특성을 획득할 수 있다.
스피커 볼륨 조절부 1150는, 스피커 1210의 볼륨을 조절하기 위한 사용자의 입력을 수신하는 구성을 의미한다.
본 개시의 일 실시예에 따른 대화형 아바타 제공 방법에 있어서, 전자장치 1000는 아바타 애니메이션 재생 중, 스피커 볼륨 조절부 1150 입력에 기초하여 재생중인 애니메이션을 변경할 소정의 이벤트 발생 여부를 식별할 수 있다.
예를 들어, 아바타 애니메이션 재생 중 사용자가 스피커 볼륨을 낮출 것을 요청하는 경우, 즉 스피커 볼륨 조절부 1150에서 스피커 볼륨 다운 입력이 획득된 경우, 전자장치 1000는 사용자가 아바타의 응답을 보다 작은 소리로 듣고 싶은 것으로 판단하여, 전자장치 1000는 아바타의 발화 모드를 ‘속삭임’으로 변경하고 이에 따라 아바타 애니메이션을 변경할 수 있다.
출력부 1200는, 오디오 신호 또는 비디오 신호의 출력을 위한 것이다. 출력부 1200는, 스피커 1210 및 디스플레이 1230를 포함할 수 있다.
본 개시의 일 실시예에 의하면, 스피커 1210는 아바타가 발화하는 음성을 출력할 수 있다. 스피커 1210는 단수 또는 복수의 스피커로 구성될 수 있으며, 스피커 1210는 풀레인지 스피커, 우퍼 스퍼커 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
본 개시의 일 실시예에 따르면, 디스플레이 1230는 전자장치 1000에서 처리되는 정보를 표시 출력할 수 있다. 예를 들어, 디스플레이부 1230는, 아바타 서비스 제공을 위한 GUI, 카메라로 촬영되는 공간의 프리뷰 이미지, 또는 아바타 애니메이션을 디스플레이할 수 있다.
저장부 1300는 프로세서 1400의 처리 및 제어를 위한 프로그램을 저장할 수 있다. 저장부 1300는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
저장부 1300에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, 저장부 1300는 아바타 생성 모듈 1310을 포함할 수 있고, 아바타 생성 모듈 1310은 환경 인식 모듈 1330, 및 아바타 애니메이션 모듈 1350을 포함할 수 있다.
환경 인식 모듈 1330은, 환경 정보 획득부 1100를 통해 획득된 환경 정보에 기초하여 사용자의 발화 환경 또는 사용자의 전자장치 사용 환경을 인식할 수 있다. 또한, 환경 인식 모듈 1330은, 환경 정보 획득부 1100를 통해 획득된 환경 정보에 기초하여, 아바타 애니메이션을 변경할 소정의 이벤트의 발생여부를 식별할 수 있다.
환경 인식 모듈 1330은, 공간 정보 식별 모듈 1331, 위치 변화 식별 모듈 1333, 집중도 확인 모듈 1335, 및 발화 모드 변경 모듈 1337을 포함할 수 있다.
공간 정보 식별 모듈 1331은, 카메라 1110 또는 마이크 1130를 이용하여 획득된 환경 정보에 기초하여, 공간 정보를 식별할 수 있다.
본 개시의 일 실시예에 따르면, 공간 정보 식별 모듈 1331은, 사용자가 발화하는 동안 카메라 1110를 통해 획득된 이미지에 기초하여, 공간 자체를 식별함으로써 공공장소인지, 개인적인 장소인지 여부를 판단할 수 있다. 예를 들어, 공간 정보 식별 모듈 1331은 카메라 1110를 이용하여 감지된 공간의 이미지 분석을 통하여 사용자 발화 공간의 특징을 식별하고 공공장소인지, 개인적인 장소인지 여부를 판단할 수 있다.
또는, 공간 정보 식별 모듈 1331은, 사용자가 발화하는 동안 카메라 1110를 통해 획득된 이미지에 기초하여, 이미지에 포함되는 사람의 수를 식별(예를 들어, 촬영된 이미지에서 얼굴 개수를 인식)함으로써 사용자 발화 장소가 공공장소인지, 개인적인 장소인지 여부를 판단할 수 있다. 예를 들어, 공간 정보 식별 모듈 1331은 카메라 1110로 촬영된 이미지에 포함되는 사람의 얼굴 개수가 하나이면 사용자 발화 장소를 개인적인 장소로 판단하고, 카메라 1110로 촬영된 이미지에 포함되는 사람의 얼굴 개수가 복수이면 사용자 발화 장소를 공공장소로 판단할 수 있다.
본 개시의 일 실시예에 따르면, 공간 정보 식별 모듈 1331은, 사용자 발화시 마이크 1130를 통해 획득된 소리에 기초하여, 사용자 발화 음성의 크기, 사용자 발화 공간의 잡음도 및 사용자 발화 공간의 공간 특성을 획득할 수 있다. 예를 들어, 사용자 발화시 마이크 1130를 통해 획득된 사용자 발화 음성 신호의 절대적인 크기가 크다면 공간 정보 식별 모듈1331은 주변이 시끄러워 사용자가 크게 발화한 것으로 추정하여, 사용자 발화 장소를 시끄러운(noisy) 공간으로 판단할 수 있다. 반대로, 사용자 발화시 마이크 1130를 통해 획득된 사용자 발화 음성 신호의 절대적인 크기가 작다면 공간 정보 식별 모듈1331은 주변이 조용해서 사용자가 작게 발화한 것으로 추정하여 사용자 발화 장소를 조용한(silent) 공간으로 판단할 수 있다.
또는, 사용자 발화시 마이크 1130를 통해 획득된 사용자 발화 음성 신호에 잡음이 많이 섞여있다면(예를 들어, 마이크 입력 신호의 SNR이 작은 경우), 공간 정보 식별 모듈1331은 사용자 발화 장소를 시끄러운 공간으로 판단할 수 있다. 반대로, 사용자 발화시 마이크 1130를 통해 획득된 사용자 발화 음성 신호에 잡음이 별로 없다면 (예를 들어, 마이크 입력 신호의 SNR이 큰 경우) 공간 정보 식별 모듈1331은 사용자 발화 장소를 조용한 공간으로 판단할 수 있다.
본 개시의 일 실시예에 따르면, 공간 정보 식별 모듈1331은 사용자 발화시 마이크 1130를 통해 획득된 신호의 반향(reverberation), 또는 에코 특성에 기초하여 사용자 발화 공간의 공간 특성을 획득할 수 있다. 예를 들어, 공연장이나 강당과 같은 넓은 공간에서는 반향이나 에코가 강하게 나타나는 경향이 있으므로, 마이크 1130를 통해 획득된 신호에서 반향이 크다면 전자장치 1000는 사용자 발화 공간을 공공장소로 추정할 수 있다.
본 개시의 일 실시예에 따르면, 사용자 발화한 공간의 공간 정보는 공간 특성에 기초하여, public 공간, private-silent 공간, 또는 private-noisy 공간중 하나로 결정될 수 있다.
본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템은, 공간 정보 식별 모듈 1331이 식별한 사용자 발화 공간 특성이 공공장소로 판단된 경우(예를 들어, public 공간), 아바타의 응답 모드를 존댓말 모드로 결정하고, 아바타는 응답 문구를 보다 공손하게 또는 다수의 상대방에게 설명하듯이 발화할 수 있다. 반대로, 공간 정보 식별 모듈 1331이 식별한 사용자 발화 공간 특성이 공공장소가 아닌 경우(예를 들어, private 공간), 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템은 아바타의 응답 모드를 친근함 모드로 결정하고, 아바타는 응답 문구를 한명의 사용자에게 보다 친밀하게 설명하듯이 발화할 수 있다. 이 때, 사용자 발화 공간이 조용한 경우, 공간 정보는 private-silent 공간으로 결정되어 아바타는 조용한 목소리와 차분한 표정으로 응답을 발화할 수 있다. 반대로, 사용자 발화 공간이 시끄러운 경우, 공간 정보는 private-noisy 공간으로 결정되어 아바타는 큰 목소리와 과장된 표정으로 응답을 발화할 수 있다.
본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템은, 공간 정보 식별 모듈 1331이 식별한 사용자 발화 공간 특성이 공공장소가 아닌 경우, 아바타 발화 특성을 추가로 커스터마이징하여 사용자 발화 환경, 즉 아바타 서비스 제공 환경에 보다 적응적이고 적합한 방식으로 아바타 서비스를 제공할 수 있다.
예를 들어, 아바타가 발화 중 사용자의 위치가 변화(예를 들어, 사용자 얼굴 또는 머리의 위치가 이동)하거나, 사용자의 집중도가 저하(예를 들어, 사용자의 시선이 흔들림)되거나, 또는 사용자가 전자장치 1000를 조작(예를 들어, 전자장치 1000의 스피커 볼륨을 조절)하는 경우, 전자장치 1000는 각 이벤트의 발생을 식별하고, 식별된 이벤트에 따라 아바타 응답 방식을 변경할 수 있다.
위치 변화 식별 모듈 1333은, 아바타 애니메이션 재생 중 환경 정보 획득부 1100를 통해 획득된 환경 정보에 기초하여, 사용자의 위치 변화 여부를 식별할 수 있다.
본 개시의 일 실시예에 따르면, 위치 변화 식별 모듈 1333은, 아바타 애니메이션 재생 중 카메라 1110를 통해 획득된 사용자 이미지에서 사용자의 얼굴을 추적(tracking)하여 사용자의 위치 변화를 식별할 수 있다. 예를 들어, 아바타 애니메이션 재생 중 사용자가 이동하면, 위치 변화 식별 모듈 1333은 카메라 1110를 이용한 얼굴 추적 결과에 기초하여, 사용자의 위치가 변화한 것을 식별할 수 있고, 환경 인식 모듈 1330은 재생되는 아바타 애니메이션을 변경할 소정의 이벤트가 발생한 것으로 판단할 수 있다.
아바타 애니메이션을 변경할 소정의 이벤트의 발생이 식별되면, 환경 인식 모듈 1330은 아바타 애니메이션 모듈 1350로 이벤트 정보를 전달한다. 이벤트 정보는 이벤트 발생 여부, 이벤트 종류 및 얼굴 추적 결과를 포함할 수 있다. 아바타 애니메이션 모듈 1350은 이벤트 정보에 기초하여 아바타의 얼굴(또는 머리)가 사용자의 방향으로 회전하거나, 아바타의 시선이 사용자의 방향을 응시하도록 아바타 애니메이션을 변경할 수 있다.
집중도 확인 모듈 1335은, 아바타 애니메이션 재생 중 환경 정보 획득부 1100를 통해 획득된 환경 정보에 기초하여, 사용자의 집중도를 확인할 수 있다.
본 개시의 일 실시예에 따르면, 집중도 확인 모듈 1335은, 아바타 애니메이션 재생 중 카메라 1110를 통해 획득된 이미지에 기초하여 사용자의 집중도를 확인할 수 있다.
구체적으로, 집중도 확인 모듈 1335은 아바타 애니메이션 재생 중 카메라 1110를 통해 수행한 얼굴 추적 결과에 기초하여 사용자 얼굴의 방향 변화를 감지하거나, 시선 추적 결과에 기초하여 사용자 눈동자(또는 동공)의 피치(pitch) 회전 및 요(yaw) 회전을 감지함으로써 사용자의 집중도를 확인할 수 있다. 예를 들어, 사용자의 얼굴 방향 변화 주기가 짧아지거나, 사용자의 얼굴 방향이 아래를 향하거나, 시선이 아바타가 아닌 다른 방향을 향하는 것으로 측정된 경우, 집중도 확인 모듈 1335은 사용자의 집중도가 낮아진 것으로 판단될 수 있다.
사용자의 집중도가 낮아진 것으로 판단되면, 환경 인식 모듈 1330은 아바타 애니메이션 모듈 1350로 이벤트 정보를 전달한다. 이벤트 정보는 이벤트 발생 여부, 이벤트 종류 및 집중도 판단 결과를 를 포함할 수 있다. 아바타 애니메이션 모듈 1350은 이벤트 정보에 기초하여 재생되던 아바타 애니메이션을 중지한 후 사용자의 주의를 환기시킬 수 있는 애니메이션을 삽입할 수 있다.
발화 모드 변경 모듈 1337은, 아바타 애니메이션 재생 중 환경 정보 획득부 1100를 통해 획득된 환경 정보에 기초하여 아바타의 발화 모드 변경 여부를 식별하고, 변경된 발화모드에 기초하여 재생중인 아바타 애니메이션을 변경할 수 있다.
본 개시의 일 실시예에 따르면, 발화 모드 변경 모듈 1337은 아바타 애니메이션 재생 중 스피커 볼륨 조절부 1150 입력에 기초하여 아바타의 발화 모드 변경 여부를 결정할 수 있다. 스피커 볼륨 조절부 1150 입력이 확인되면 환경 인식 모듈 1330은 아바타 의 발화 모드를 변경할지 여부를 결정하고, 아바타의 발화 모드가 변경되는 경우 아바타 애니메이션을 변경할 소정의 이벤트가 발생한 것으로 판단할 수 있다. 아바타 애니메이션을 변경할 소정의 이벤트의 발생이 식별되면, 환경 인식 모듈 1330은 아바타 애니메이션 모듈 1350로 이벤트 정보를 전달한다. 이벤트 정보는 이벤트 발생 여부, 이벤트 종류 및 변경된 발화 모드를 포함할 수 있다. 볼륨 조절부 1150 입력의 종류가 볼륨 다운(down) 입력인 경우 발화 모드는 ‘속삭임(whisper)’ 모드로 결정될 수 있으며, 아바타 애니메이션 모듈 1350은 아바타의 표정을 보다 작게 표현하도록 애니메이션을 변경할 수 있다. 또한, 아바타의 발화 음성의 톤을 보다 부드럽게 표현하도록 애니메이션을 변경할 수 있다.
반대로, 볼륨 조절부 1150 입력의 종류가 볼륨 업(up) 입력인 경우 발화 모드는 ’발표(presentation)’ 모드로 결정될 수 있으며, 아바타 애니메이션 모듈 1350은 아바타의 표정을 보다 과장되게 표현하도록 애니메이션을 변경할 수 있다. 또한, 아바타의 발화 음성의 톤을 보다 강하게 표현하도록 애니메이션을 변경할 수 있다.
아바타 애니메이션 모듈 1350은, 아바타 음성 답변 및 아바타 표정 데이터에 기초하여, 아바타 애니메이션을 생성한다.
본 개시의 일 실시예에 따르면, 아바타 애니메이션 모듈 1350은 사용자 발화 음성 및 공간 정보 에 기초하여 생성된, 아바타 음성 답변 및 아바타 음성 답변에 대응되는 아바타 표정 시퀀스 에 기초하여, 아바타 표정 데이터를 생성할 수 있다. 이 때, 아바타 음성 답변 및 아바타 표정 시퀀스는 서버 3000로부터 수신할 수 있다.
본 개시의 일 실시예에 따르면, 아바타 애니메이션 모듈 1350은 아바타 음성 답변 및 아바타 표정 데이터에 기초하여 아바타 애니메이션을 생성할 수 있다.
본 개시의 일 실시예에 따르면, 아바타 애니메이션 모듈 1350은 아바타 애니메이션 재생 중 발생한 이벤트 정보에 기초하여 아바타 표정 데이터 및 아바타 음성 답변을 변경하고, 변경된 아바타 표정 데이터에 기초하여 아바타 애니메이션을 변경할 수 있다.
또한, 아바타 애니메이션 모듈 1350은, 음성 표현 모듈 1351, 및 얼굴 표현 모듈 1357을 포함할 수 있다.
음성 표현 모듈 1351은, 아바타 음성 답변에 기초하여 아바타가 발화할 음성을 렌더링한다.
본 개시의 일 실시예에 따르면, 음성 표현 모듈 1351은 사용자 발화 음성 및 공간 정보 에 기초하여 생성된, 아바타 음성 답변에 기초하여 아바타가 발화할 음성을 렌더링할 수 있다. 이 때, 아바타 음성 답변은 서버 3000로부터 수신할 수 있다.
본 개시의 일 실시예에 따르면, 음성 표현 모듈 1351은 아바타 애니메이션 재생 중 발생한 이벤트 정보에 기초하여 아바타가 발화할 음성을 변경할 수 있다.
예를 들어, 집중도 확인 모듈 1335의 사용자 집중도 확인 결과 사용자의 집중도가 낮아진 것으로 식별되면, 환경 인식 모듈 1330은 아바타 애니메이션 모듈 1350로 이벤트 정보를 전달하고, 아바타 애니메이션 모듈 1350은 재생되던 아바타 애니메이션을 중지한 후 사용자의 주의를 환기시킬 수 있는 애니메이션(예를 들어, 리프레쉬 모드 애니메이션)을 삽입할 수 있다. 따라서, 음성 표현 모듈 1351은, 리프레쉬 모드 애니메이션 에 해당하는 음성을 삽입할 수 있다.
예를 들어, 발화 모드 변경 모듈 1337의 발화 모드 변경 여부 확인 결과, 아바타의 발화 모드가 변경된 것으로 식별되면, 환경 인식 모듈 1330은 아바타 애니메이션 모듈 1350로 이벤트 정보를 전달하고, 음성 표현 모듈 1351은 아바타의 발화 모드에 기초하여 아바타 음성 답변의 톤을 변경할 수 있다.
얼굴 표현 모듈 1353은, 아바타 표정 데이터를 생성하고, 아바타 표정 데이터에 기초하여 아바타의 표정을 렌더링한다.
본 개시의 일 실시예에 따르면, 얼굴 표현 모듈 1353은, 사용자 발화 음성 및 공간 정보 에 기초하여 생성된 아바타 음성 답변 및 아바타 음성 답변에 대응되는 아바타 표정 시퀀스 에 기초하여, 아바타 표정 데이터를 생성하고, 생성된 아바타 표정 데이터에 기초하여 아바타의 얼굴 표정을 렌더링할 수 있다.
본 개시의 일 실시예에 따르면, 얼굴 표현 모듈 1353은 아바타 애니메이션 재생 중 발생한 이벤트 정보에 기초하여 아바타의 얼굴 표정을 변경할 수 있다.
얼굴 표현 모듈 1353은, 립싱크 모듈 1355을 포함할 수 있으며, 립싱크 모듈 1355은 립싱크 모델 1357을 포함할 수 있다.
본 개시의 일 실시예에 따르면, 립싱크 모듈 1355은, 아바타 립싱크 데이터를 생성하고, 아바타 표정 데이터 및 아바타 립싱크 데이터에 기초하여 아바타의 표정을 렌더링하여 아바타의 음성 발화와 아바타의 입모양을 동기화한다.
아바타 표정 데이터는, 아바타의 표정을 렌더링하기 위한 정보를 의미한다. 아바타 립싱크 데이터는, 아바타 표정 데이터 중 입(또는 입술) 및 턱 부위를 표현하기 위한 정보를 의미하며, 립싱크 모듈 1355은 아바타의 얼굴 중 입, 입술 및 턱과 관련된 부분의 렌더링을 수행한다.
아바타 표정 데이터는 아바타의 표정을 렌더링하기 위한 레퍼런스 3D 메쉬(mesh) 모델에 대한 정보로, 복수의 레퍼런스 3D 메쉬 각각에 대한 복수의 계수의 집합 을 포함할 수 있다. 아바타 표정 데이터가 블렌드쉐입(blend shapes) 정보인 경우, 립싱크 데이터는 전체 157개의 블렌드쉐입 계수들 중 선택된, 입모양과 관련된 특정 블렌드쉐입들의 계수를 의미할 수 있다.
본 개시의 일 실시예에 따르면, 립싱크 모델 1357은 음성 파일에 의해 학습되고 아바타 음성 답변이 입력되면 추론된 립싱크 데이터를 출력할 수 있으며 RNN 모델 및 CNN 모델을 포함할 수 있다. 이 때, RNN 모델은 아바타의 음성 답변이 입력되면 음성 데이터의 특징(speech feature)을 추출하고, CNN 모델은 RNN 모델에서 추출된 음성 데이터의 특징을 이용하여 아바타의 음성 답변에 대응하는 아바타의 얼굴 표정에 대한 블렌드쉐입 및 립싱크 데이터를 추론할 수 있다.
본 개시의 일 실시예에 따른 립싱크 모델 1357은 아바타 표정 데이터 및 립싱크 데이터를 이용하여 학습될 수 있으며, 이 때, 특정 표정(또는 감정)에 대한 블렌드쉐입의 가용범위를 이용하여 학습 데이터를 전처리 한 후 학습시킴으로써 립싱크 모델 1357의 학습 효율을 향상시킬 수 있다.
본 개시의 일 실시예에 따른 립싱크 모델 1357의 구조 및 학습 방법은 도 8 내지 도 10 에서 보다 자세히 서술한다.
프로세서 1400는, 전자장치 1000의 전반적인 동작을 제어한다. 예를 들어, 프로세서 1400는, 전술한 저장부 1300에 저장된 프로그램들을 실행함으로써, 본 명세서에서의 아바타 서비스를 제공하기 위한 전자장치 1000의 기능을 제어할 수 있다.
프로세서 1400는 산술, 로직 및 입출력 연산과 시그널 프로세싱을 수행하는 하드웨어 구성 요소들을 포함할 수 있다. 프로세서 1400는 예를 들어, 중앙 처리 장치(Central Processing Unit), 마이크로 프로세서(microprocessor), 그래픽 프로세서(Graphic Processing Unit), ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 및 기타 연산 회로 중 적어도 하나를 포함할 수 있으나, 이에 제한되는 것은 아니다.
본 개시의 일 실시예에 의하면, 프로세서 1400는 학습 네트워크 모델을 생성하기 위한 인공지능(AI) 프로세서를 포함할 수 있으나, 이에 한정되는 것은 아니다. 본 개시의 일 실시예에 의하면, AI 프로세서는 프로세서 1400와 별도의 칩으로 구현될 수도 있다. 본 개시의 일 실시예에 의하면, AI 프로세서는 범용 칩일 수도 있다.
통신 인터페이스 1500는, 전자장치 1000와 외부의 다른 전자장치(미도시) 또는 서버 3000 사이의 유선 또는 무선 통신 채널의 수립 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 일 실시 예에 따르면, 통신 인터페이스 1500는 유선 통신 또는 무선 통신을 통해 외부의 다른 전자장치(미도시) 또는 서버 3000로부터 데이터를 수신하거나 또는 외부의 다른 전자장치(미도시) 또는 서버 3000에 대해 데이터를 송신할 수 있다.
통신 인터페이스 1500는 전자장치 1000가 아바타 서비스를 제공하기 위해 필요한 정보를 서버 3000와 송수신할 수 있다. 또한, 통신 인터페이스 1500는 아바타 서비스를 제공하기 위하여 다른 디바이스(미도시) 및 다른 서버(미도시)와 통신할 수 있다.
다양한 실시 예에 따르면, 통신 인터페이스 1500는 무선 통신 모듈(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있고, 그 중 어느 하나의 통신 모듈을 이용하여 적어도 하나의 네트워크, 예컨대, 근거리 통신 네트워크 (예: 블루투스, WiFi direct 또는 IrDA(infrared data association)) 또는 원거리 통신 네트워크(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN))를 통하여 외부 전자장치(미도시) 또는 서버(3000)와 통신할 수 있다.
도 3은 본 개시의 일 실시예에 따른 서버의 블록도이다.
도 3을 참조하면, 서버 3000는 통신 인터페이스 3100, 프로세서 3200, 및 저장부 3300를 포함할 수 있다.
일 실시 예에 따르면, 프로세서 3200는 적어도 하나의 프로세서로 지칭됨으로써 서버 3000의 다른 구성 요소들에 대한 동작을 제어하는 하나의 구성으로 이해될 수도 있다. 다양한 실시 예에 따르면, 서버 3000의 구성은 도 3에 도시된 바에 한정되지 않으며, 도 3에 도시되지 않은 구성을 추가로 포함하거나, 도 3에 도시된 구성 중 일부를 생략할 수도 있다. 예를 들면, 서버 3000는 인공지능 모델, 예컨대, 적어도 하나의 학습 모델을 위한 별도의 프로세서, 예컨대, NPU(neural processing unit)를 더 포함할 수도 있다. 다른 예를 들면, 저장부 3300에 포함되는 QnA 모듈 3320 중 적어도 일부는 저장부 3300에 저장된 소프트웨어 모듈이 아닌 별도의 하드웨어 모듈로 구현될 수도 있다.
통신 인터페이스 3100는, 서버 3000와 외부의 다른 서버(미도시) 또는 전자장치 1000 사이의 유선 또는 무선 통신 채널의 수립 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 일 실시 예에 따르면, 통신 인터페이스 3100는 유선 통신 또는 무선 통신을 통해 외부의 다른 서버(미도시) 또는 전자장치 1000로부터 데이터를 수신하거나 또는 외부의 다른 서버(미도시) 또는 전자장치 1000에 대해 데이터를 송신할 수 있다.
통신 인터페이스 3100는 서버 3000가 아바타 서비스를 제공하기 위해 필요한 정보를 전자장치 1000와 송수신할 수 있다. 또한, 통신 인터페이스 3100는 아바타 서비스를 제공하기 위하여 다른 디바이스(미도시) 및 다른 서버(미도시)와 통신할 수 있다.
다양한 실시 예에 따르면, 통신 인터페이스 3100는 무선 통신 모듈(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있고, 그 중 어느 하나의 통신 모듈을 이용하여 적어도 하나의 네트워크, 예컨대, 근거리 통신 네트워크 (예: 블루투스, WiFi direct 또는 IrDA(infrared data association)) 또는 원거리 통신 네트워크(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN))를 통하여 외부 전자장치(미도시) 또는 서버(3000)와 통신할 수 있다.
프로세서 3200는, 서버 3000의 전반적인 동작을 제어한다. 예를 들어, 프로세서 3200는, 후술할 저장부 3300에 저장된 프로그램들을 실행함으로써, 본 명세서에서의 아바타 서비스를 제공하기 위한 서버 3000의 기능을 제어할 수 있다.
프로세서 3200는 산술, 로직 및 입출력 연산과 시그널 프로세싱을 수행하는 하드웨어 구성 요소들을 포함할 수 있다. 프로세서 3200는 예를 들어, 중앙 처리 장치(Central Processing Unit), 마이크로 프로세서(microprocessor), 그래픽 프로세서(Graphic Processing Unit), ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 및 기타 연산 회로 중 적어도 하나를 포함할 수 있으나, 이에 제한되는 것은 아니다.
본 개시의 일 실시예에 의하면, 프로세서 1400는 학습 네트워크 모델을 생성하기 위한 인공지능(AI) 프로세서를 포함할 수 있으나, 이에 한정되는 것은 아니다. 본 개시의 일 실시예에 의하면, AI 프로세서는 프로세서 3200와 별도의 칩으로 구현될 수도 있다. 본 개시의 일 실시예에 의하면, AI 프로세서는 범용 칩일 수도 있다.
저장부 3300는 프로세서 3200의 처리 및 제어를 위한 프로그램을 저장할 수 있다. 저장부 3300는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
저장부 3300에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, 저장부 3300는 음성 인식 모듈 3310, QnA 모듈 3320, 및 음성 답변(voice answer) 모듈 3300을 포함할 수 있다.
음성 인식을 통한 아바타 서비스를 위해 이용되는 기술은, 대표적으로 음성 인식 기술, 음성 이해 기술, 및 음성 합성 기술 등이 있다. 음성 인식 아바타 서비스는 다양한 데이터와 기술들이 복합적, 유기적으로 결합되어 구현될 수 있다.
언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리(NLP, Natural Language Processing), 기계 번역(Machine Translation), 대화 시스템(Dialog System), 질의 응답(QnA, Question and Answering), 음성 인식/합성(Speech Recognition/Synthesis) 등을 포함한다.
음성 인식 모듈 3310은, 음성 인식 모듈 3310은, ASR 모듈 3311 및 NLU 모듈 3312을 포함할 수 있으며, 전자장치 1000로부터 수신한 사용자 발화 음성 정보에 기초하여, 사용자 발화 음성을 인식하고 자연어 처리를 통하여 그 의미를 파악할 수 있다.
ASR은 음성을 텍스트로 변환하는 STT(speech-to-text) 기술로, ASR 모듈 3311은 전자장치 1000로부터 사용자 발화 음성 정보를 수신하고, ASR 모델을 이용하여 음성 부분을 컴퓨터로 판독 가능한 텍스트로 변환할 수 있다.
NLU는 인간의 언어를 기계가 이해할 수 있는 형식으로 변환하는 것을 포함하는 NLP의 한 분기로, NLU는 인간의 언어를 기계가 알 수 있도록 구조화하는 역할을 수행한다. NLU 모듈 3312은 NLU 모델을 이용하여 ASR 모듈 3311에서 획득한 비구조 데이터인 로(raw) 텍스트를 구조화된 데이터로 변환하여 해석함으로써, 사용자의 발화 의도를 획득할 수 있다.
여기서 ASR 모델 또는 NLU 모델은 인공지능 모델일 수 있다. 인공지능 모델은 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계된 인공지능 전용 프로세서에 의해 처리될 수 있다. 인공지능 모델은 학습을 통해 만들어 질 수 있다.
QnA 모듈 3320은, 응답 모드 결정 모듈 3321, 및 응답 문구 결정 모듈 3322을 포함할 수 있으며, 음성 인식 모듈 3310의 출력 및 전자장치 1000로부터 수신된 공간 정보에 기초하여 아바타의 응답 모드를 결정하고, 음성 인식 모듈 3310의 출력 및 응답 모드에 기초하여 응답 문구를 결정한다.
전자장치 1000로부터 수신된 공간 정보는, 공간 정보 식별 모듈 1331에서 식별된 공간정보 자체일 수 있고, 또는, 공간 정보 식별 모듈 1331에서 식별된 공간정보에서 추출된 사용자 발화 공간 특성 정보일 수 있다. QnA 모듈 3320은, 전자장치 1000로부터 수신된 공간 정보에 기초하여 아바타의 응답 모드를 결정하고, 음성 인식 모듈 3310의 출력 및 응답 모드에 기초하여 응답 문구를 결정할 수 있다.
본 개시의 일 실시예에 따르면, 사용자 발화 공간 특성에 기초한 아바타의 기본 응답 모드는 전자장치 1000로부터 수신한 공간 정보(예를 들어, public 모드, private-silent 모드, 또는 private-noisy 모드)에 기초하여, 존댓말 모드, 친근함 모드, 속삭임 모드, 노말 모드, 발표 모드중 하나로 결정될 수 있다.
본 개시의 일 실시예에 따르면, 전자장치 1000로부터 수신한 공간 정보에 기초하여 식별한 사용자 발화 공간 특성이 공공장소로 판단된 경우(public 공간), 응답 모드 결정 모듈 3321은 아바타의 응답 모드를 존댓말 모드로 결정할 수 있고, 이 경우 아바타는 응답 문구를 보다 공손하게 또는 다수의 상대방에게 설명하듯이 발화할 수 있다. 반면, 사용자 발화 공간이 공공장소가 아닌 경우(private 공간), 응답 모드 결정 모듈 3321은 아바타의 응답 모드를 친근함 모드로 결정할 수 있고, 이 경우 아바타는 응답 문구를 한명의 사용자에게 보다 친밀하게 설명하듯이 발화할 수 있다. 이 때, 사용자 발화 공간이 조용한 경우, 공간 정보는 private-silent 공간으로 결정되어 아바타는 조용한 목소리와 차분한 표정으로 응답을 발화할 수 있다. 반대로, 사용자 발화 공간이 시끄러운 경우, 공간 정보는 private-noisy 공간으로 결정되어 아바타는 큰 목소리와 과장된 표정으로 응답을 발화할 수 있다.
본 개시의 다른 실시예에 따르면, 전자장치 1000는 공간 정보 식별 모듈 1331에서 식별된 공간 정보에 기초하여 아바타의 응답 모드를 결정하고, 결정된 아바타의 응답 모드를 서버 3000로 전달할 수 있다. 이와 같은 경우, QnA 모듈은 전자장치 1000로부터 수신한 아바타의 응답 모드에 기초하여 응답 문구를 결정할 수 있다.
응답 문구 결정 모듈 3322은 NLU 모듈 3312의 출력 및 응답 모드 결정 모듈 3321의 출력에 기초하여 아바타의 응답 문구를 결정하며, NLG 기술을 이용할 수 있다.
NLG (자연어 생성, natural language generation)는 NLU와 함께 NLP의 한 축을 담당하는 분기로, 인간의 언어를 이해해서 계산의 영역으로 가져오는 NLU 기술과 반대로 시스템의 계산 결과를 인간의 언어로 표현하는 기술을 의미한다. 초기의 NLG는 계산 복잡도가 높고 수많은 탬플릿 및 도메인 규칙이 요구되었으나, 딥러닝 특히 RNN 기술의 발전으로 여러가지 문제점들이 해소되었다. NLG 모델은 인공지능 모델일 수 있다.
음성 답변(voice answer) 모듈 3330은, TTS(text-to-speech) 모듈 3331, 및 표정 결정 모듈 3332를 포함할 수 있으며, QnA 모듈 3320의 출력에 기초하여 아바타의 음성 답변 및 대응하는 표정 시퀀스를 생성한다.
TTS는 텍스트를 음성으로 변환하는 기술로, 음성인식 아바타 서비스 이용시 스피커로 출력되는 아바타의 음성 답변을 생성할 수 있다. 이 때, 아바타의 음성은 실제 사람이 말하는 것처럼 음성의 속도, 높낮이, 또는 어조(tone)을 적절히 조절하는 것이 필요하다.
TTS 모듈 3331은 대답 문구 결정 모듈 3321에서 결정된 대답 문구를 음성(speech)으로 변환하여 음성 답변을 생성하며, 대답 방식 결정 모듈 3322에서 결정된 대답 방식에 기초하여 음성 답변의 속도, 높낮이, 또는 어조를 결정할 수 잇다.
표정 결정 모듈 3332은 응답 문구 결정 모듈 3322에서 결정된 대답 문구 및 응답 모드 결정 모듈 3321에서 결정된 대답 방식에 기초하여 아바타의 표정을 결정할 수 있다. 이 때, 표정 결정 모듈 3332은 TTS 모듈의 출력, 즉 아바타의 음성 답변에 대응하여 변화하는 아바타의 표정에 대한 표정 시퀀스를 결정할 수 있다.
서버 3000에 포함되는 각 모듈은 외부 서버 또는 3rd 파티의 결과가 필요하면 외부 API를 이용하여 외부 서버 또는 3rd 파티의 결과를 획득할 수 있고, 획득한 외부 서버 또는 3rd 파티의 결과를 이용하여 서버 3000의 출력을 생성할 수 있다.
도 4는 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템에서, 시간 흐름 및 상황에 따른 아바타 응답 변화를 설명하기 위한 도면이다.
도 4를 참조하면, 시간 6000의 흐름에 따른 사용자 상태 5100 및 아바타 상태 2100에 기초하여 아바타 음성 답변 및 표정 시퀀스 2200가 결정될 수 있다. 또한, 전자 장치 1000가 이벤트 모니터링 상태에서 식별한 이벤트 발생 여부 및 이벤트 종류에 기초하여 아바타 액션이 결정되고, 아바타 애니메이션이 변경될 수 있다. 도 4에서, 도 2의 전자장치 1000와 도 3의 서버 3000의 구조 및 동작에 대하여 중복되는 설명은 생략하거나 간략히 기재한다.
전자 장치 상태 1100는 사용자 상태 5100 및 아바타 상태 2100에 기초하여 결정될 수 있다. 사용자가 아바타와 인터랙션 하고 있지 않는 상태, 즉 대기 상태인 경우 전자 장치 1000 역시 대기 상태에서 사용자의 발화를 기다릴 수 있다. 사용자 5000가 아바타와 인터랙션 하기 위한 소정의 음성을 발화하면, 전자장치 1000는 사용자 발화 음성 및 사용자가 발화한 공간의 공간 정보를 획득할 수 있다.
본 개시의 일 실시예에 따르면, 전자장치 1000의 공간 정보 식별 모듈 1331은, 카메라 1110 또는 마이크 1130를 이용하여 획득된 환경 정보에 기초하여, 공간 정보를 식별할 수 있다. 본 개시의 일 실시예에 따르면, 사용자 발화 공간 특성에 기초한 아바타의 기본 응답 모드는 공간 정보 식별 모듈 1331에서 식별된 공간 정보(예를 들어, public 모드, private-silent 모드, 또는 private-noisy 모드)에 기초하여, 존댓말 모드, 친근함 모드, 속삭임 모드, 노말 모드, 발표 모드중 하나로 결정될 수 있다.전자장치 1000는 획득한 사용자 발화 음성 및 공간 정보를 서버 3000(미도시)로 송신하고, 서버 3000(미도시)로부터 아바타 음성 답변 및 표정 시퀀스를 수신한다.
예를 들어, 사용자 5000가 “xx야 이순신 장군에 대해 설명해줘”라는 음성을 발화한 경우, 전자장치 1000는 사용자 5000가 발화하는 동안 사용자 발화 음성 및 공간 정보를 획득하며 아바타 상태 2100는 사용자의 발화를 청취하는 애니메이션이 재생될 수 있다. 전자장치 1000는 획득한 사용자 발화 음성 및 공간 정보를 서버 3000(미도시)로 송신하고, 서버 3000(미도시)로부터 아바타 음성 답변 및 표정 시퀀스를 수신한다.
이와 같은 경우, 서버 3000로부터 수신한 아바타 음성 답변은 “네 00님 안녕하세요. 이순신 장군에 대해 설명 드리겠습니다… 임진왜란은 왜군이 우리나라를 침략하여… 거북선 단 1척 만으로 왜군을 물리치고…”와 같이 결정될 수 있다. 또한, 아바타 표정 시퀀스는 {(미소), (화남), (미소), (강조), (즐거움), …}와 같이 결정될 수 있으며, 아바타 음성 답변과 동기화되어 아바타 애니메이션으로 재생될 수 있다. 예를 들어, 아바타 표정 시퀀스는 아바타 음성 답변과 “(미소)네 00님 안녕하세요. 이순신 장군에 대해 설명 드리겠습니다… (화남)임진왜란은 왜군이 우리나라를 침략하여…(미소)거북선 (강조)단 1척 만으로 (즐거움)왜군을 물리치고…”와 같이 동기화될 수 있다.
또한, 본 개시의 일 실시예에 따른 아바타 서비스를 제공하는 전자장치 1000는 사용자 발화에 따른 아바타 애니메이션을 재생하는 동안에도 사용자의 상태 또는 이벤트의 발생을 모니터링 하고, 모니터링 결과 소정의 이벤트의 발생이 식별된 경우 아바타의 액션을 변경할 수 있다.
예를 들어, 전자장치 1000는 위치 변화 식별 모듈 1333을 이용하여 사용자의 위치 변화 여부를 식별할 수 있다. 아바타 애니메이션 재생 중 t=[event 1]에 전자장치 1000 사용자 5000의 위치가 변경된 것으로 식별된 경우, 전자장치 1000는 아바타 표정 데이터를 수정하여 아바타의 시선 또는 아바타의 얼굴(또는 머리)의 방향이 사용자의 움직임을 따라가도록(예를 들어, 응시 모드 액션) 재생중인 아바타 애니메이션을 수정할 수 있다.
다른 예로, 전자장치 1000는 집중도 확인 모듈 1335을 이용하여 사용자의 집중도를 확인할 수 있다. 아바타 애니메이션 재생 중 t=[event 2]에 전자장치 1000 사용자 5000의 집중도가 저하된 것으로 식별된 경우, 전자장치 1000는 재생되던 아바타 애니메이션을 중지한 후 사용자의 주의를 환기시킬 수 있는 소정의 아바타 애니메이션을 삽입(예를 들어, 리프레쉬 모드 액션)할 수 있다. 소정의 아바타 애니메이션의 재생이 종료되면, 리프레쉬 모드 액션 수행 전 재생되던 아바타 애니메이션을 이어서 재생할 수 있다.
또 다른 예로, 전자장치 1000는 발화 모드 변경 모듈 1337을 이용하여 아바타의 발화 모드 변경 여부를 식별할 수 있다. 아바타 애니메이션 재생 중 t=[event 3]에 스피커 볼륨 조절부 1150 입력이 확인되면, 전자장치 1000는 아바타 의 발화 모드가 변경되었는지 여부를 식별하고, 변경된 아바타의 발화 모드에 따라 애니메이션을 수정(예를 들어, 발화 모드 변경 액션)할 수 있다. 볼륨 조절부 1150 입력의 종류가 볼륨 다운 입력이고, 그 결과 볼륨 레벨이 소정의 제1 임계치 이하인 경우 발화 모드는 ‘속삭임’ 모드로 결정될 수 있으며, 아바타 애니메이션 모듈 1350은 아바타의 표정을 보다 작게 표현하고, 아바타의 발화 음성의 톤을 보다 부드럽게 표현하도록 애니메이션을 변경할 수 있다. 반대로, 볼륨 조절부 1150 입력의 종류가 볼륨 업(up) 입력이고, 그 결과 볼륨 레벨이 소정의 제2 임계치 이상인 경우 발화 모드는 ‘발표’ 모드로 결정될 수 있으며, 아바타 애니메이션 모듈 1350은 아바타의 표정을 보다 크게 표현하고, 아바타의 발화 음성의 톤을 보다 강하게 표현하도록 애니메이션을 변경할 수 있다.
도 5는 본 개시의 일 실시예에 따른 전자장치가, 아바타를 제공하는 방법의 순서도이다.
도 5를 참조하면, 본 개시의 일 실시예에 따른 전자장치 1000는 사용자 발화 공간 특성에 기초한 아바타 서비스를 제공하며, 아바타 애니메이션 재생 중 발생한 이벤트에 기초하여 아바타 애니메이션을 변경할 수 있다. 도 5에서, 도 2 내지 도 4와 중복되는 설명은 생략하거나 간략히 기재한다.
단계 501에서, 전자장치 1000는 사용자 발화 음성 정보 및 사용자가 발화한 공간의 공간 정보를 획득한다.
본 개시의 일 실시예에 따른 전자장치 1000는 마이크 1130를 이용하여 입력되는 사용자 발화 음성을 획득할 수 있고, 마이크 1130 또는 카메라 1110를 이용하여 사용자가 발화한 공간의 공간 정보를 획득할 수 있다.
공간 정보 식별 모듈 1331은, 카메라 1110 또는 마이크 1130를 이용하여 획득된 환경 정보에 기초하여, 공간 정보를 식별할 수 있다.
본 개시의 일 실시예에 따르면, 공간 정보 식별 모듈 1331은, 사용자가 발화하는 동안 카메라 1110를 통해 획득된 이미지에 기초하여, 공간 자체를 식별함으로써 공공장소인지, 개인적인 장소인지 여부를 판단할 수 있다. 예를 들어, 공간 정보 식별 모듈 1331은 카메라 1110를 이용하여 감지된 공간의 이미지 분석을 통하여 사용자 발화 공간의 특징을 식별하고 공공장소인지, 개인적인 장소인지 여부를 판단할 수 있다.
본 개시의 일 실시예에 따르면, 공간 정보 식별 모듈 1331은, 사용자 발화시 마이크 1130를 통해 획득된 신호로부터, 사용자 발화 음성의 크기, 사용자 발화 공간의 잡음도 및 사용자 발화 공간의 공간 특성을 획득할 수 있다.
본 개시의 일 실시예에 따르면, 사용자 발화 공간 특성에 기초한 아바타의 응답 모드는 공간 정보 식별 모듈 1331에서 식별된 공간 정보 (예를 들어, public 공간, private-silent 공간, 또는 private-noisy 공간)에 기초하여, 존댓말 모드, 친근함 모드, 속삭임 모드, 노말 모드, 발표 모드중 하나로 결정될 수 있다.
본 개시의 일 실시예예 따르면, 전자장치 1000는 사용자 발화 공간의 공간 정보를 서버 3000로 전송하고, 서버 3000는 전자장치 1000로부터 수신한 사용자 발화 공간 정보에 기초하여 아바타의 응답 모드를 결정할 수 있다.
단계 502에서, 전자장치 1000는 사용자 발화 음성 및 공간 정보에 기초하여 결정된, 제1 아바타 음성 답변 및 아바타 표정 시퀀스를 획득한다.
전자장치 1000는 제1 아바타 음성 답변 및 아바타 표정 시퀀스를 서버 3000로부터 수신할 수 있다.
본 개시의 일 실시예예 따르면, 전자장치 1000는 사용자 발화 음성 정보 및 아바타의 응답 모드를 서버 3000로 전송할 수 있다. 서버 3000는 전자장치 1000로부터 사용자 발화 음성 정보 및 아바타의 응답 모드를 수신하고, 수신한 사용자 발화 음성을 ASR 을 이용하여 인식할 수 있으며, 사용자 발화 음성의 인식 결과를 NLU 처리하여 그 의미를 파악할 수 있다. 또한, 서버 3000는 아바타의 응답 모드에 기초하여 아바타의 응답 문구를 결정하고, 아바타의 대답 문구에 기초하여 제1 아바타 음성 답변 및 아바타 표정 시퀀스를 결정할 수 있다.
본 개시의 일 실시예예 따르면, 전자장치 1000는 사용자 발화 음성 정보, 및 사용자 발화 공간의 공간 정보를 서버 3000로 전송하고, 서버 3000는 전자장치 1000로부터 사용자 발화 음성 정보 및 사용자 발화 공간의 공간 정보를 수신하고, 수신한 사용자 발화 음성을 ASR 을 이용하여 인식할 수 있으며, 사용자 발화 음성의 인식 결과를 NLU 처리하여 그 의미를 파악할 수 있다. 또한, 서버 3000는 전자장치 1000로부터 수신한 사용자 발화 공간 정보에 기초하여 아바타의 응답 모드를 결정하고, 결정된 아바타의 응답 모드에 기초하여 아바타의 응답 문구를 결정하고, 아바타의 응답 문구에 기초하여 제1 아바타의 음성 답변 및 아바타 표정 시퀀스를 결정할 수 있다.
단계 503에서, 전자장치 1000는 제1 아바타 음성 답변 및 아바타 표정 시퀀스에 기초하여 제1 아바타 표정 데이터를 결정한다.
본 개시의 일 실시예에 따르면, 전자장치 1000의 아바타 애니메이션 모듈 1350은 아바타 음성 답변 및 아바타 표정 시퀀스에 기초하여 아바타 애니메이션을 생성할 수 있다.
아바타 애니메이션 모듈 1350의 음성 표현 모듈 1351은, 아바타 음성 답변에 기초하여 아바타가 발화할 음성을 렌더링한다.
본 개시의 일 실시예에 따르면, 음성 표현 모듈 1351은 사용자 발화 음성 및 응답 모드에 기초하여 생성된, 제1 아바타 음성 답변에 기초하여 아바타가 발화할 음성을 렌더링할 수 있다.
아바타 애니메이션 모듈 1350의 얼굴 표현 모듈 1353은, 아바타 음성 답변에 대응되는 아바타 표정 시퀀스 에 기초하여, 아바타 표정 데이터를 생성할 수 있다.
아바타 표정 데이터는, 아바타의 표정을 렌더링하기 위한 정보를 의미한다. 아바타 립싱크 데이터는, 아바타 표정 데이터 중 입(또는 입술) 및 턱 부위에 대한 정보를 의미하며, 립싱크 모듈 1355은 아바타의 얼굴 중 입, 입술 및 턱과 관련된 부분의 렌더링을 수행한다.
아바타 표정 데이터는 아바타의 표정을 렌더링하기 위한 레퍼런스 3D 메쉬(mesh) 모델에 대한 정보로, 복수의 레퍼런스 3D 메쉬 각각에 대한 복수의 계수의 집합 을 포함할 수 있다. 아바타 표정 데이터가 블렌드쉐입인 경우, 립싱크 데이터는 전체 157개의 블렌드쉐입 계수들 중 선택된, 입모양과 관련된 특정 블렌드쉐입들의 계수를 의미할 수 있다.
단계 504에서, 전자장치 1000는 제1 아바타 음성 답변 및 제1 아바타 표정 데이터에 기초하여 생성된, 제1 아바타 애니메이션을 재생한다.
본 개시의 일 실시예에 따르면, 얼굴 표현 모듈 1353은, 아바타 표정 데이터에 기초하여 아바타의 얼굴을 렌더링할 수 있다. 아바타 표정 데이터는, 아바타의 표정을 렌더링하기 위한 정보를 의미한다. 아바타 립싱크 데이터는, 아바타 표정 데이터 중 입(또는 입술) 및 턱 부위에 대한 정보를 의미하며, 립싱크 모듈 1355은 아바타의 얼굴 중 입, 입술 및 턱과 관련된 부분의 렌더링을 수행한다.
본 개시의 일 실시예에 따른 전자장치1000에서, 얼굴 표현 모듈 1353은 립싱크 모듈 1355을 포함할 수 있으며, 립싱크 모듈 1355은 립싱크 모델 1357을 포함할 수 있다. 립싱크 모듈 1355은, 아바타 립싱크 데이터를 생성하고, 아바타 표정 데이터 및 아바타 립싱크 데이터에 기초하여 아바타의 표정을 렌더링하여 아바타의 음성 발화와 아바타의 입모양을 동기화한다.
단계 505에서, 전자장치 1000는 이벤트 발생을 모니터링한다.
제1 아바타 애니메이션 재생 중, 사용자와 아바타 사이의 인터랙션 환경의 변화가 식별된 경우, 전자장치 1000는 재생중인 제1 아바타 애니메이션을 변경할 이벤트가 발생한 것을 식별할 수 있다.
본 개시의 일 실시예에 따르면, 전자장치 1000는 아바타 애니메이션 재생 중, 카메라 1110를 이용하여 재생중인 애니메이션을 변경해야하는 소정의 이벤트 발생 여부를 식별할 수 있다. 예를 들어, 전자장치 1000는 아바타 애니메이션 재생 중, 카메라 1110로 캡쳐된 이미지에 기초하여, 사용자의 위치 변경 여부를 식별할 수 있다. 또는, 전자장치 1000는 아바타 애니메이션 재생 중, 카메라 1110로 캡쳐된 이미지에 기초하여, 사용자의 집중도가 낮아졌는지 여부를 식별할 수 있다. 또한, 전자장치 1000는 아바타 애니메이션 재생 중, 스피커 볼륨 조절부 1150 입력에 기초하여 재생중인 애니메이션의 발화 모드를 변경해야 하는지 여부를 식별할 수 있다.
단계 506에서, 전자장치 1000는 식별된 이벤트에 기초하여, 제2 아바타 표정 데이터 또는 제2 아바타 음성 답변을 결정한다.
본 개시의 일 실시예에 따르면, 전자장치 1000는 아바타 애니메이션 재생 중 사용자의 위치가 변경된 경우, 아바타의 얼굴(또는 머리) 방향 또는 시선이 사용자의 위치를 따라가도록 동작하는 ‘응시 모드’로 아바타가 동작하기 위한 제2 아바타 표정 데이터를 결정할 수 있다.
또는, 전자장치 1000는 아바타 애니메이션 재생 중, 카메라 1110를 통해 캡쳐된 이미지에 기초하여, 사용자의 집중도가 낮아졌는지 여부를 식별할 수 있고, 사용자의 주의를 환기시킬 수 있는 애니메이션을 재생하는 ‘리프레쉬 모드’로 아바타가 동작하기 위한 제2 아바타 표정 데이터 및 제2 아바타 음성 정보를 결정할 수 있다.
또한, 전자장치 1000는 아바타 애니메이션 재생 중, 재생중인 애니메이션의 발화 모드 변경 여부에 기초하여, 변경된 ‘발화 모드’에 따라 제2 아바타 표정 데이터 및 제2 아바타 음성 답변을 결정할 수 있다. 예를 들어, 아바타 애니메이션 재생 중 사용자가 스피커 볼륨을 낮출 것을 요청하는 경우, 즉 스피커 볼륨 다운 입력이 획득된 경우 전자장치 1000는 사용자가 아바타의 응답을 보다 작은 소리로 듣고 싶은 것으로 판단하여, 전자장치 1000는 아바타 애니메이션을 속삭이는 표정 및 음성으로 변경할 수 있다.
전자장치 1000는 단계 507에서 제1 아바타 애니메이션의 재생을 중단하고, 단계 508에서 제2 아바타 표정 데이터 또는 제2 아바타 음성 답변에 기초하여 생성된 제2 아바타 애니메이션을 재생할 수 있다.
본 개시의 일 실시예에 따르면, 전자장치 1000에서 식별된 이벤트가 ‘응시 모드’인 경우, 제2 아바타 애니메이션은 제1 아바타 애니메이션과 아바타의 발화 음성은 동일하지만 아바타의 얼굴(또는 머리) 방향 또는 시선이 사용자의 위치를 따라가도록 동작하는 애니메이션일 수 있다.
또는, 전자장치 1000에서 식별된 이벤트가 ‘리프레쉬 모드’인 경우, 제2 아바타 애니메이션은 제1 아바타 애니메이션을 중단하고 사용자의 주의를 환기시킬 수 있는 애니메이션을 삽입하여 재생하고, 제1 아바타 애니메이션이 중단된 시점부터 다시 재생하는 애니메이션일 수 있다.
또한, 전자장치 1000에서 식별된 이벤트가 ‘발화 모드 변경’인 경우, 제2 아바타 애니메이션은 제1 아바타 애니메이션과 아바타의 발화 음성 내용은 동일하지만 아바타의 발화 모드에 따라 아바타의 발화 음성의 어조, 톤, 및 아바타의 표정이 변경된 애니메이션일 수 있다.
도 6은 본 개시의 일 실시예에 따른 서버가, 아바타를 제공하는 방법의 순서도이다.
도 6을 참조하면, 본 개시의 일 실시예에 따른 서버 3000는 전자장치 1000와 함께 사용자 발화 공간 특성에 기초한 아바타 서비스를 제공할 수 있다. 도 6에서, 도 2 내지 도 5와 중복되는 설명은 생략하거나 간략히 기재한다.
단계 601에서, 서버 3000는 전자장치 1000로부터 사용자 발화 음성 및 사용자가 발화한 공간의 공간 정보를 수신한다.
본 개시의 일 실시예에 따른 전자장치 1000는 환경 정보 획득부 11000의 마이크 1130를 이용하여 입력되는 사용자 발화 음성을 획득할 수 있고, 마이크 1130 및 카메라 1110를 이용하여 사용자가 발화한 공간의 공간 정보를 획득하고, 획득한 사용자 발화 음성 정보, 및 발화한 공간의 공간 정보를 서버 3000로 전송할 수 있다.
단계 602에서, 서버 3000는 아바타 응답 모드를 획득한다.
본 개시의 일 실시예에 따른 서버 3000는 전자장치 1000로부터 수신된 공간 정보에 기초하여 아바타의 응답 모드를 획득할 수 있다.
본 개시의 일 실시예에 따르면, 서버 3000는 사용자가 발화한 공간의 공간 정보에 기초하여 결정된 아바타의 응답 모드를 전자장치 1000로부터 수신할 수 있다.
본 개시의 일 실시예에 따르면, 사용자 발화 공간 특성에 기초한 아바타의 응답 모드는 공간 정보 식별 모듈 1331에서 식별된 공간 정보(예를 들어, public 모드, private-silent 모드, 또는 private-noisy 모드)에 기초하여, 존댓말 모드, 친근함 모드, 속삭임 모드, 노말 모드, 발표 모드중 하나로 결정될 수 있다.
단계 603에서, 서버 3000는 사용자 발화 음성 및 응답 모드에 기초하여, 아바타 응답 문구를 결정한다.
본 개시의 일 실시예에 따른 서버 3000는 전자장치 1000로부터 사용자 발화 음성을 수신하고 수신한 사용자 발화 음성을 ASR 을 이용하여 인식할 수 있으며, 사용자 발화 음성의 인식 결과를 NLU 처리하여 그 의미를 파악할 수 있다. 또한, 서버 3000는 아바타의 응답 모드를 획득하고, 아바타 응답 모드 및 사용자 발화 음성의 음성 인식 결과에 기초하여 아바타의 응답 문구를 결정할 수 있다.
단계 604에서, 서버 3000는 아바타 응답 문구에 기초하여 제1 아바타 음성 답변 및 제1 아바타 표정 시퀀스를 결정하고, 단계 605에서, 서버 3000는 제1 아바타 음성 답변 및 제1 아바타 표정 시퀀스를 전자장치 1000로 전송한다.
도 7은 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템에서, 서버의 각 모듈에서 처리된 데이터를 나타내는 도면이다.
도 7을 참조하면, 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템은 전자장치 1000 및 서버 3000를 포함하며, 전자장치 1000는 사용자 발화 음성 정보 및 사용자가 발화한 공간의 공간 정보를 서버 3000로 전송한다.
도 7a는 본 개시의 일 실시예에 따른 서버에서, 음성 인식 모듈의 입출력 데이터를 나타낸다.
본 개시의 일 실시예에 따른 서버 3000의 음성 인식 모듈 3310은, 전자장치 1000로부터 수신한 사용자 발화 음성 정보를 ASR 처리하여 음성을 인식하고, 인식된 음성을 NLU 처리하여 인식된 음성의 의미를 파악할 수 있다. 즉, 음성 인식 모듈 3310의 입력은 사용자가 발화한 “이순신 장군님에 대해 설명해줘”라는 음성 자체의 데이터(예를 들어, 음성의 크기, 주파수, 피치 정보 등)이고 음성 인식 모듈 3310의 출력은 사용자 발화 음성의 해석 결과일 수 있다.
도 7b는 본 개시의 일 실시예에 따른 서버에서, QnA 모듈의 입출력 데이터를 나타낸다.
본 개시의 일 실시예에 따른 서버 3000의 QnA 모듈3320은, 전자장치 1000로부터 수신한 사용자가 발화한 공간의 공간 정보에 기초하여 아바타의 응답 모드를 결정할 수 있다. 예를 들어, 사용자가 발화한 공간의 공간 정보가, public 모드인 경우, 아바타의 응답 모드는 존댓말 모드 또는 노말 모드로 결정될 수 있다. 다만, 전자장치 1000가 전송하는 공간 정보는 이에 한정되는 것은 아니다. 다른 실시예에 따르면, 전자장치 1000는 카메라 1110를 통해 획득한 이미지로부터 식별된 정보(예를 들어, 획득한 이미지에 포함되는 사람(얼굴)의 수) 또는 마이크 1130를 통해 획득한 소리로부터 식별된 정보(예를 들어, 공간의 반향 시간, 에코 유무 등)을 서버 3000로 전송할 수 있고, 서버 3000는 획득된 정보에 기초하여 공간 정보를 획득하고, 아바타 응답 모드를 결정할 수 있다.
본 개시의 일 실시예에 따른 서버 3000는, 음성 인식 모듈 3310 출력 및 결정된 아바타 응답 모드에 기초하여 아바타 응답 문구를 결정할 수 있다. 예를 들어, 음성 인식 모듈 3310 출력이 “이순신 장군님에 대해 설명해줘”이고, 아바타 응답 모드가 “존댓말 모드”인 경우, 아바타 응답 문구는 “네 00님 안녕하세요. 이순신 장군에 대해 설명 드리겠습니다….. 임진왜란에는 왜군이… 거북선 단 1척 만으로 ……”와 같이 결정될 수 있다.
도 7c는 본 개시의 일 실시예에 따른 서버에서, 음성 답변(voice answer) 모듈의 입출력 데이터를 나타낸다.
본 개시의 일 실시예에 따른 서버 3000의 음성 답변 모듈 3330은, QnA 모듈 3320의 출력인 아바타 응답 문구에 기초하여 아바타 음성 답변을 생성한다. 또한, 본 개시의 일 실시예에 따른 서버 3000의 음성 답변 모듈 3330은, 아바타 응답 문구의 문맥에 기초하여 시간에 따른 표정 시퀀스를 결정할 수 있다. 예를 들어, 응답 문구의 전체 재생 시간이 20초인 경우, 각 시구간에 따른 표정 시퀀스는 {0~3초 웃음, 3~8초 기쁨, 8~9.5초 화남, 9.5~12초 강조, 12초~15초 웃음, 15~20초 강조}와 같이 결정될 수 있다.
도 8은 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템에서, 전자장치가 아바타 애니메이션을 생성하기 위한 데이터를 처리하는 방법을 설명하기 위한 도면이다.
도 8을 참조하면, 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템은 전자장치 1000 및 서버 3000를 포함하며, 서버 3000는 아바타 음성 답변 및 표정 시퀀스를 전자장치 1000로 전송한다.
본 개시의 일 실시예에 따른 전자장치 1000의 립싱크 모듈 1355은 아바타 음성 답변에 기초하여 아바타의 립싱크 데이터를 생성한다.
본 개시의 일 실시예에 따른 전자장치 1000의 립싱크 모듈 1355은 두개의 신경망 모델을 이용하여 수신된 음성 데이터를 립싱크 데이터로 변환할 수 있다. 예를 들어, 제1 신경망 모델은 Deep speech 처리를 위한 RNN(recurrent neural network, 회귀 신경망) 모델로, 수신된 초당 22050개 의 소수(decimal) 데이터로 구성되는 음성 데이터를 입력하여 음성 특징(speech feature)들을 추출할 수 있다. 제2 신경망 모델은 CNN(convolutional neural network, 합성곱 신경망) 모델로, 추출된 음성 특징을 입력하여 아바타 립싱크 데이터를 추론할 수 있다.
아바타 립싱크(lip sync) 데이터는, 아바타 표정 데이터 중 입(또는 입술) 및 턱 부위에 대한 데이터를 의미한다. 아바타가 같은 음성을 발화하더라도 발화시의 감정 및 표정에 따라 입 모양은 다르게 표현될 수 있으므로, 입 모양을 표현하기 위한 입(또는 입술) 및 턱 부위에 대한 정보가 아바타 립싱크(lip sync) 정보로 정의된다. 예를 들어, 아바타 표정 데이터는 블렌드쉐입(blend shapes), 모프 타겟(morph target) 또는 FACS(facial action coding system) 정보 중, 입(또는 입술) 및 턱 부위에 대한 데이터일 수 있다.
본 개시의 일 실시예에 따른 전자장치 1000의 얼굴 표현 모듈 1353은 립싱크 데이터 및 표정 시퀀스에 기초하여 시간에 따른 애니메이션 데이터를 획득한다. 이 때, 애니메이션 데이터의 획득은 메모리에 저장된 블렌드쉐입을 로드하는 것을 의미할 수 있다.
도 9는 본 개시의 일 실시예에 따른 대화형 아바타 제공 시스템에서, 립싱크 데이터를 생성하기 위한 신경망 모델의 예시를 나타낸다.
도 9를 참조하면, 본 개시의 일 실시예에 따른 립싱크 데이터를 생성하기 위한 신경망 모델은 제1 신경망 모델 910 및 제2 신경망 모델 930을 포함할 수 있다.
제1 신경망 모델 910은 RNN 모델일 수 있으며, 초당 약 20만개 의 소수로 구성되는 음성 파일로부터 16*1*29 구조의 소수로 구성되는 음성 특징(speech feature)을 추출하여 텍스트로 변환하는 deep speech 처리를 수행할 수 있다. RNN 모델 910에 입력된 음성은 convolutional 레이어, recurrent 레이어, 및 FC(fully connected) 레이어를 통해 음성 특징이 추출될 수 있으며, recurrent 레이어는 LSTM(Long Short-Term Memory)로 구현될 수 있다.
음성 데이터는 1차원 데이터이며 시계열적인 처리가 필요하므로 상위 레이어로 전달되는 출력을 다음 시간대에서 입력과 동시에 받아 처리하는 구조인 RNN을 이용하여 처리하기 용이하다. LSTM은 RNN에서 기울기 소실(gradient vanishing)을 방지하기 위하여 사용되는 기술로, 은닉 레이어(hidden layer) 내에 메모리 기능을 넣고 메모리를 조절(쓰기/지우기/출력하기)할 수 있도록 하여 은닉계층의 출력에 별도의 정보를 추가적으로 전달하면서 처리할 수 있도록 한다.
제2 신경망 모델은 CNN 모델 930일 수 있으며, RNN 모델에서 추출된 16*1*29 구조의 소수로 구성되는 음성 특징으로부터 립싱크 데이터를 추론하는 deep expression 처리를 수행할 수 있다. CNN 모델 930에 입력된 음성 특징은 convolutional 레이어, FC 레이어를 통해 립싱크 데이터가 추출될 수 있다. 이 때, 립싱크 데이터는, 얼굴을 표현하는 52개의 블렌드쉐입 중 입 및 입술을 표현하기 위한 27개의 블렌드쉐입을 의미할 수 있다.
도 10은 본 개시의 일 실시예에 따라, 립싱크 데이터를 학습하는 방법을 설명하기 위한 도면이다.
본 개시의 일 실시예에 따른 전자장치 1000는 아바타의 얼굴을 표현하기 위한 얼굴 표현 모듈 1353을 포함한다. 립싱크 모듈 1355은 감정을 나타내는 가장 중요한 부위인 입 및 입술 부위를 표현하기 위하여 립싱크 모델 1357을 이용하며, 립싱크 모델 1357은 학습을 통해 훈련될 수 있다.
도 10을 참조하면, 본 개시의 일 실시예에 따른 립싱크 모델 1357은 초당 약 2만3천개의 소수로 구성되는 음성 데이터가 입력되면, 입력된 음성 데이터에 대응하는 얼굴을 표현하기 위한, 초당 60개의 소수로 구성되는 블렌드쉐입 세트들을 출력할 수 있으며, 하나의 블렌드쉐입 세트는 중 입 모양과 관련된 블렌드쉐입들인 립싱크 데이터를 포함할 수 있다. 본 개시의 일 실시예에 따른 립싱크 모델 1357은 입력된 음성 데이터와 그에 대한 손실을 이용하여 학습될 수 있다.
각 손실 (loss)은 CNN 모델의 예측값 predict과 실제 블렌드쉐입의 값 real로부터 [수식 1], [수식 2], 및 [수식 3]와 같이 계산될 수 있으며, 여기서, '는 이전값, "는 그 이전값을 나타낸다.
[수식 1]
Figure pat00001
[수식 2]
Figure pat00002
[수식 3]
Figure pat00003
계산된 손실은, CNN 모델을 학습시키는데 이용된다.
본 개시의 일 실시예에 따르면, 립싱크 데이터는 아바타의 감정 상태 또는 상황에 기초하여 전처리될 수 있는데, 구체적으로 해당 감정 상태에서 블렌드쉐입의 최소값 min, 및 최대값 max를 이용하여 [수식 4]과 같이 정규화될 수 있으며, real 값 대신 가용 범위 내에서 정규화된 normal 값을 사용함으로써, 보다 정확한 아바타의 얼굴 표현이 가능하다.
[수식 4]
Figure pat00004
도 11은 본 개시의 일 실시예에 따른 전자장치가, 이벤트를 식별하고 식별된 이벤트에 따라 아바타 애니메이션을 변경하는 방법을 설명하기 위한 도면이다.
도 11을 참조하면, 본 개시의 일 실시예에 따른 전자장치 1000는 환경 인식 모듈 1330의 위치 변화 식별 모듈 1333, 집중도 확인 모듈 1335, 및 발화 모드 변경 모듈 1337을 이용하여 이벤트를 모니터링 할 수 있으며, 아바타 애니메이션 모듈 1350을 이용하여 아바타 애니메이션을 결정, 생성, 변경, 및 재생할 수 있다.
환경 인식 모듈 1330은, 환경 정보 획득부 1100를 통해 획득된 환경 정보에 기초하여, 아바타 애니메이션을 변경할 소정의 이벤트의 발생여부를 식별할 수 있다. 아바타 애니메이션 모듈 1350은, 기존의 아바타 애니메이션(예를 들어, 제1 아바타 애니메이션) 재생 중 환경 인식 모듈 1330에서 전달된 이벤트 식별 결과에 기초하여 아바타 표정 데이터를 생성하고, 아바타 표정 데이터에 기초하여 생성된 아바타 애니메이션을 새로 생성할 수 있다.
본 개시의 일 실시예에 따르면, 위치 변화 식별 모듈 1333은, 아바타 애니메이션 재생 중 카메라 1110를 통해 획득된 이미지에 기초하여 사용자의 얼굴을 추적(tracking)하여 사용자의 위치 변화를 식별할 수 있다.
위치 변화 식별 모듈 1333은, 카메라 1110를 통해 획득된 이미지를 분석하여, 이미지에 포함된 사람의 얼굴의 개수 및 사람의 얼굴의 위치가 이동했는지 여부를 식별할 수 있다. 식별 결과, 이미지에 포함된 사람의 얼굴이 1개이고, 얼굴의 위치가 이동한 것으로 판단되면, 위치 변화 식별 모듈은 응시 모드 이벤트 알림 및 사용자 얼굴(또는 머리) 정보를 아바타 애니메이션 모듈 1350로 전달할 수 있다. 이 때, 사용자 얼굴(또는 머리) 정보는 식별된 사용자 얼굴(또는 머리)의 개수 및 위치에 대한 정보를 포함할 수 있다. 아바타 애니메이션 모듈 1350은 재생중인 제1 아바타 애니메이션에서, 아바타의 얼굴(또는 머리) 및 시선 방향(pitch 및 yaw)이 사용자의 얼굴(또는 머리)을 따라가도록 변경할 수 있다.
본 개시의 일 실시예에 따르면, 집중도 확인 모듈 1335은, 아바타 애니메이션 재생 중 카메라 1110를 통해 획득된 이미지에 기초하여 사용자의 집중도를 확인할 수 있다.
집중도 확인 모듈 1335은 카메라 1110를 통해 획득된 이미지 분석 결과 이미지에 포함된 사람의 얼굴의 개수를 판단하여, 사람의 얼굴의 개수가 1개이고, 얼굴 방향이나 회전(roll, pitch, yaw), 눈동자의 회전(roll, pitch, yaw), 및 눈 깜빡임 감지 결과 얼굴이나 눈동자의 방향이 정면을 향하지 않거나 눈 깜빡임 주기가 소정의 임계값 이상인 경우, 사용자의 집중도가 낮아진 것으로 인식할 수 있다. 이 때, 집중도 확인 모듈 1335은 사용자의 집중도가 낮아진 것으로 인식되면, 리프레쉬 이벤트 알림을 아바타 애니메이션 모듈 1350로 전달할 수 있다. 리프레쉬 이벤트 알림이 획득되면, 아바타 애니메이션 모듈 1350은 재생되던 제1 아바타 애니메이션을 중지한 후 사용자의 주의를 환기시킬 수 있는 리프레쉬 모드 애니메이션을 재생하고, 리프레쉬 모드 애니메이션의 재생이 완료되면 제1 아바타 애니메이션을 중단했던 부분에서 다시 재생할 수 있다.
본 개시의 일 실시예에 따르면, 발화 모드 변경 모듈 1337은 아바타 애니메이션 재생 중 스피커 볼륨 조절부 1150 입력에 기초하여 아바타의 발화 모드 변경 여부를 식별할 수 있다.
발화 모드 변경 모듈 1337은 스피커 볼륨 조절부 1150 입력이 확인되면 재생되는 아바타 애니메이션의 발화 모드를 변경할지 여부를 판단할 수 있다. 예를 들어, 전자장치에서 볼륨 레벨이 0-5인 경우는 아바타의 발화 모드를 <속삭임>으로, 볼륨 레벨이 6-12인 경우는 아바타의 발화 모드를 <노말>로, 볼륨 레벨이 13이상인 경우 아바타의 발화 모드를 <발표>로 결정하도록 설정된 경우를 가정한다. 스피커 볼륨 조절부 1150에서 볼륨 다운(down) 입력이 식별된 경우, 발화 모드 변경 모듈 1337은 재생중인 제1 아바타 애니메이션의 발화 모드 변경이 필요한지 여부를 판단한다. 볼륨 다운(down) 입력으로 전자 장치 1000의 볼륨 레벨이 6에서 5로 작아진 경우, 발화 모드는 <노말>에서 <속삭임>으로 변경되며 발화 모드 변경 모듈 1337은 발화 모드 변경 이벤트 알림 및 변경된 볼륨 레벨(또는 변경된 발화 모드)을 아바타 애니메이션 모듈에 전달할 수 있다. 발화 모드 변경 이벤트 알림이 획득되면, 아바타 애니메이션 모듈 1350은 재생되던 제1 아바타 애니메이션에서, 변경된 발화 모드에 대응하는 표정 및 변경된 발화 모드에 기초하여 결정된 립싱크 데이터를 이용하여 아바타 애니메이션을 변경할 수 있다.
도 12는 본 개시의 일 실시예에 따른 아바타 애니메이션 생성 방법을 나타내는 도면이다.
도 12를 참조하면, 본 개시의 일 실시예에 따른 전자장치 1000에서 아바타 애니메이션 모듈 1350은 제1 아바타 표정 데이터, 제1 아바타 표정 데이터에 기초하여 생성된 립싱크 데이터에 기초하여 제2 아바타 표정 데이터를 생성할 수 있다.
본 개시의 일 실시예에 따르면, 아바타 애니메이션 모듈 1350은 사용자 발화 음성에 대한 응답을 위한 제1 아바타 표정 데이터 및 제1 아바타 립싱크 데이터를 획득하고, 입을 제외한 얼굴 부분의 표정 데이터는 그대로 이용하고, 입 부분은 립싱크 데이터를 이용하여 표정 데이터를 수정함으로써 보다 자연스러운 표정을 구현할 수 있다.
본 개시의 일 실시예에 따르면, 립싱크 데이터는 [수식 4]와 같이 가용 범위 내에서 정규화된 후 립싱크 모델에 입력되고 학습되므로, 립싱크 모델을 이용하여 추론된 립싱크 데이터는 역정규화가 필요하다.
예를 들어, 아바타 애니메이션 모듈 1350은 발화 모드 이벤트 식별 여부를 판단하고, 발화 모드가 변경되지 않은 경우, 획득된 립싱크 데이터, 즉 입 주변을 표현하는 블렌드쉐입의 min, max 값을 이용하여 립싱크 데이터를 역정규화(de-normalize) 할 수 있다.
또는, 아바타 애니메이션 모듈 1350은 발화 모드 이벤트 식별 여부를 판단하고, 발화 모드가 변경된 경우, 변경된 발화 모드에 따른 가중치를 획득된 립싱크 데이터, 즉 입 주변을 표현하는 블렌드쉐입의 min, max 값에 곱한 후 립싱크 데이터를 역정규화 할 수 있다 .
아바타 립싱크 데이터를 이용하여 표정 데이터를 수정하는 방법은 도 13 내지 도 15를 참조하여 보다 구체적으로 설명한다.
도 13a 및 도 13b는 본 개시의 일 실시예에 따른 대화형 아바타 제공 방법에서, 특정 표정에서 신경망 모델 학습을 위한 표정 데이터 또는 립싱크 데이터를 전처리하고, 추론된 표정 데이터 또는 립싱크 데이터를 후처리하는 방법을 나타내는 도면이다.
본 개시의 일 실시예에 따른 표정 데이터는 얼굴을 표현하기 위한 블렌드쉐입일 수 있으며, 립싱크 데이터는 표정 데이터 중 입과 입 주변의 표정을 표현하기 위한 블렌드쉐입을 의미할 수 있다. 블렌드쉐입은 [0, 1] 범위의 소수로 표현되며, 각 블렌드쉐입으로 표현되는 메쉬에 계수로 반영된다.
도 13a를 참조하면, 각 블렌드쉐입은 특정 표정에서 서로 다른 가용 범위를 가질 수 있다. 예를 들어, 아바타의 특정 표정을 구현하기 위한, 시간에 따른 각 프레임별 블렌드쉐입들을 측정해보면, 제1 블렌드쉐입 7010의 가용 범위는 [min 0.05, max 0.45] 범위로 측정되고, 제4 블렌드쉐입 7040의 가용 범위는 [min 0.07, max 0.25]로 측정될 수 있다.
이러한 경우, 블렌드쉐입의 가용 범위와 무관하게 [0, 1] 범위의 데이터를 이용하여 신경망 모델을 학습시키는 경우, 신경망 모델의 학습 효율이 떨어질 수 있다. 따라서, 학습시 각 블렌드쉐입의 가용 범위를 측정한 후, 가용 범위를 [0, 1]로 정규화(normalization)로 스케일-다운하여 신경망 모델을 학습시키고, 학습된 신경망 모델을 이용하여 블렌드쉐입 추론시 이를 다시 가용범위로 역정규화(de-normalization)하여 스케일-업 함으로써 학습 효율을 향상시킬 수 있다.
도 13b의 7011을 참조하면, 제1 블렌드쉐입 1310의 가용 범위는 [min 0.05, max 0.45]로, 제1 블렌드쉐입은 0.4 범위 내에서 측정될 수 있다. 따라서, [0, 1] 범위로 정규화하여 신경망 모델을 학습시키면 블렌드쉐입의 가용 범위 내에서만 학습이 가능하다.
도 13b의 7012를 참조하면, 학습된 신경망 모델을 이용하여 추론된 제1 블렌드쉐입 7010은 제1 블렌드쉐입 7010의 가용 범위인 [min 0.05, max 0.45] 범위로 다시 역정규화될 수 있다. 예를 들어, 신경망 모델에서 추론된 제1 블렌드쉐입의 계수값 BS1_NN이 0.3인 경우, 역정규화된 제1 블렌드쉐입의 계수값 BS1은 [수식 5]에 따라 0.17로 결정된다.
[수식 5]
Figure pat00005
도 14a 및 도 14b는 본 개시의 일 실시예에 따른 대화형 아바타 제공 방법에서, 아바타의 표정 및 감정에 따라 추론된 립싱크 데이터를 역정규화하는 방법을 나타내는 도면이다.
전술한 바와 같이, 아바타의 특정 표정마다 표정 데이터(예를 들어, 블렌드쉐입)의 가용 범위가 달라질 수 있으며, 마찬가지로 립싱크 데이터(예를 들어, 전체 블렌드쉐입 중 입주변의 블렌드쉐입)의 가용 범위 역시 달라질 수 있다.
따라서, 아바타가 같은 말을 하더라도 감정 상태에 따라 표정이 달라질 수 있으므로, 신경망에서 추론된 블렌드쉐입의 역정규화 범위가 달라질 수 있다. 따라서, 아바타의 발화 음성 정보가 동일하더라도 감정상태에 따른 아바타의 표정에 기초하여 서로 다른 블렌드쉐입이 결정될 수 있다.
아바타가 같은 음성을 발화하더라도 감정 상태, 즉 표정에 따라 블렌드쉐입이 다르게 결정될 수 있으므로, 본 개시의 일 실시예예 따른 립싱크 모델 1357은 표정에 따라 측정된 각 블렌드쉐입의 가용 범위, 즉 최소값 min 과 최대값 max를 정규화한 값에 기초하여 학습될 수 있다.
도 14a에서, 제1 아바타 2000-1는 기쁜 감정 상태이고, 제1 아바타 2000-1가 ‘안녕’이라는 음성을 발화하기 위한 립싱크 데이터는 제1 블렌드쉐입 BS1 내지 제4 블렌드쉐입 BS4인 경우를 가정한다.
도 14a를 참조하면, 기쁜 감정 상태에서 ‘안녕’이라는 음성을 발화하기 위해 사용되는 제1 아바타 2000-1의 립싱크 데이터인 제1 블렌드쉐입 BS1은 [min 0.1, max 0.5], 제2 블렌드쉐입 BS2은 [min 0.2, max 0.6], 제3 블렌드쉐입 BS3은 [min 0.1, max 0.3], 제4 블렌드쉐입 BS4은 [min 0.5, max 0.7]의 가용 범위를 가질 수 있다. 이 중 제1 블렌드쉐입 BS1의 가용 범위는 [min 0.1, max 0.5]의 0.4이므로 이를 [0, 1] 범위로 정규화한 데이터로 립싱크 모델 1357이 학습될 수 있으며, 립싱크 모델 1357을 이용하여 추론한, [0, 1] 범위의 제1 블렌드쉐입 BS1은 립싱크 모델 1357의 출력인 BS1_NN을 [min 0.1, max 0.5] 범위로 역정규화하여 획득될 수 있다.
반면, 도 14b에서, 제2 아바타 2000-2는 슬픈 감정 상태이고, 제2 아바타 2000-2가 ‘안녕’이라는 음성을 발화하기 위한 립싱크 데이터는 제1 블렌드쉐입 BS1 내지 제4 블렌드쉐입 BS4인 경우를 가정한다.
도 14b를 참조하면, 슬픈 감정 상태에서 ‘안녕’이라는 음성을 발화하기 위해 사용되는 제2 아바타 2000-2이 립싱크 데이터인 제1 블렌드쉐입 BS1은 [min 0.1, max 0.3], 제2 블렌드쉐입 BS2은 [min 0.5, max 1.0], 제3 블렌드쉐입 BS3은 [min 0.1, max 0.3], 제4 블렌드쉐입 BS4은 [min 0.5, max 0.7]의 가용 범위를 가질 수 있다. 이 중 제1 블렌드쉐입 BS1의 가용 범위는 [min 0.1, max 0.3]의 0.2이므로 이를 [0, 1] 범위로 정규화한 데이터로 립싱크 모델 1357이 학습될 수 있으며, 립싱크 모델 1357을 이용하여 추론한, [0, 1] 범위의 제1 블렌드쉐입 BS1은 립싱크 모델 1357의 출력인 BS1_NN을 [min 0.1, max 0.3] 범위로 역정규화하여 획득될 수 있다.
이와 같이, 아바타의 특정 감정 상태에 대하여, 감정 상태에 기초하여 결정되는 립싱크 데이터에 대한 블렌드쉐입의 가용 범위를 이용하여 데이터를 정규화하여 학습시키고, 추론된 블렌드쉐입을 가용 범위로 역정규화함으로써 킴으로써, 립싱크 모델 1357의 학습 성능 및 추론 정확도가 향상될 수 있다.
[표 1]은 아바타가 슬픈 감정 상태일 때, 표정 데이터의 일 실시예를 나타낸다.
개수 Index(name) NN 출력값 - 최종값
N2 eyeBlinkLeft 0.3 - 0.3
eyeLookDownLeft 0.3 - 0.3
eyeLookInLeft 0.3 - 0.3
eyeLookOutLeft 0.5 - 0.5
eyeLookUpLeft 0.2 - 0.2
Figure pat00006
Figure pat00007
Figure pat00008
Figure pat00009
NN 출력값 슬픈 감정일 때
가용범위
최종값
N1 jawLeft 0.1 0.3~0.7 0.34
jawRight 0.2 0.3~0.7 0.38
mouthClose 0.9 0.3~0.7 0.66
Figure pat00010
Figure pat00011
Figure pat00012
Figure pat00013
본 개시의 일 실시예에 따르면, 표정 데이터는, N개(N1+N2)개의 블렌드쉐입이고, 눈, 코, 볼등과 관련된 N2개의 블렌드쉐입, 및 입모양과 관련된 N1개의 블렌드쉐입인 립싱크 데이터를 포함할 수 있다.
블렌드쉐입은 신경망 모델에 아바타의 발화 음성을 입력하여 획득되는 출력으로부터 획득될 수 있으며, 이 중, 눈, 코, 볼등과 관련된 N2개의 블렌드쉐입은 신경망 출력을 그대로 사용하여 아바타 애니메이션을 생성할 수 있다.
전술한 바와 같이, 감정 및 상황에 따른 아바타의 립싱크는 아바타에 대한 사용자의 호감도에 큰 영향을 미치므로, 아바타의 입모양이 보다 정교하고 정확하게 표현되는 경우 사용자는 아바타에게 호감을 느끼고 아바타와의 인터랙션에서 보다 만족감을 가질 수 있다. 따라서, 본 개시의 일 실시예에 따른 대화형 아바타 제공 방법은, 립싱크 모델의 입력 데이터를 전처리하고, 립싱크 모델의 출력을 후처리함으로써, 보다 정확한 립싱크 데이터를 획득할 수 있다.
[표 1]을 참조하면, 립싱크 데이터는 {jawLeft, jawRight, mouthClose,… }등을 포함하는 N1개의 블렌드쉐입일 수 있으며, 신경망 모델(립싱크 모델) 출력이 각각 0.1, 0.2, 및 0.3이고, 아바타가 슬픈 감정일 때의 가용 범위가 [0.3, 0.7]인 경우 {jawLeft, jawRight, mouthClose,… }의 최종값은 [수식 5]을 이용하여 {0.34, 0.38, 0.66,…}과 같이 결정될 수 있다.
도 15는 본 개시의 일 실시예에 따른 대화형 아바타 제공 방법에서, 발화 모드에 기초하여 립싱크 데이터의 가용범위에 대한 가중치를 결정하는 방법을 나타내는 도면이다.
본 개시의 일 실시예에 따른 대화형 아바타 제공 방법에서, 전자장치 1000는 아바타의 발화모드에 기초하여 립싱크 데이터에 해당하는 블렌드쉐입들의 가용 범위를 변경할 수 있다.
보다 구체적으로, 아바타가 강한 어조로 말하는 발화모드인 경우 본 개시의 일 실시예에 따른 전자장치 1000는 립싱크 데이터에 해당하는 블렌드쉐입이 더 큰 값을 갖도록 결정할 수 있다. 반대로, 아바타가 부드러운 어조로 말하는 발화모드인 경우 본 개시의 일 실시예에 따른 전자장치 1000는 립싱크 데이터에 해당하는 블렌드쉐입이 더 작은 값을 갖도록 결정할 수 있다.
도 15를 참조하여, 아바타의 발화 모드가 ‘속삭임’ 모드, ‘노말’ 모드, 및 ‘발표’ 모드 중 하나로 결정될 수 있고, 특정 감정 상태에서 립싱크 데이터에 해당하는 블렌드쉐입 BS1의 가용범위가 [min 0.1, max 0.5]이고 BS2의 가용범위가 [min 0.2, max 0.6]인 경우를 가정한다.
아바타의 발화 모드가 ‘노말’ 모드인 경우 전자장치 1000는 블렌드쉐입의 가용 범위를 그대로 사용한다. 아바타의 발화 모드가 ‘발표’ 모드인 경우 전자장치 1000는 블렌드쉐입이 ‘노말’ 모드보다 더 큰 값을 갖도록 하기 위해, BS1 및 BS2 의 가용범위에 1보다 큰 가중치(예를 들어, w=1.2)를 곱할 수 있다. 그 결과 ‘발표’ 모드에 따른 가중치가 적용된 블렌드쉐입 BS1의 가용범위는 [min 0.12, max 0.6]으로, BS2의 가용범위는 [min 0.24, max 0.72]로 결정될 수 있다.
아바타의 발화 모드가 ‘속삭임’ 모드인 경우 전자장치 1000는 블렌드쉐입이 ‘노말’ 모드보다 더 작은 값을 갖도록 하기 위해, BS1 및 BS2 의 가용범위에 1보다 작은 가중치(예를 들어, w=0.8)를 곱할 수 있다. 그 결과 ‘속삭임’ 모드에 따른 가중치가 적용된 블렌드쉐입 BS1의 가용범위는 [min 0.08, max 0.4]으로, BS2의 가용범위는 [min 0.16, max 0.48 ]로 결정될 수 있다.
학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다.
추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론(Knowledge based Reasoning), 최적화 예측(Optimization Prediction), 선호 기반 계획(Preference-based Planning), 추천(Recommendation) 등을 포함한다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로 , '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.

Claims (23)

  1. 전자장치가 아바타 서비스를 제공하는 방법에 있어서,
    사용자 발화 음성 및 사용자가 발화한 공간의 공간 정보를 획득하는 단계;
    상기 획득된 사용자 발화 음성 및 공간 정보를 서버로 전송하는 단계;
    상기 서버로부터, 상기 사용자 발화 음성 및 상기 공간 정보 에 기초하여 결정 된, 제1 아바타 음성 답변 및 상기 아바타 제1 음성 정보에 대응되는 아바타 표정 시퀀스 를 수신하는 단계;
    상기 획득된 제1 아바타 음성 답변 및 상기 아바타 표정 시퀀스에 기초하여, 제1 아바타 표정 데이터 를 결정하는 단계;
    상기 제1 아바타 음성 답변 및 상기 제1 아바타 표정 데이터에 기초하여 생성된 제1 아바타 애니메이션을 재생 중, 소정의 이벤트 를 식별하는 단계;
    상기 식별된 소정의 이벤트에 기초하여, 제2 아바타 표정 데이터 또는 제2 아바타 음성 답변을 결정하는 단계; 및
    상기 제1 아바타 애니메이션의 재생을 중단하고, 상기 제2 아바타 표정 데이터 또는 상기 제2 아바타 음성 답변에 기초하여 생성된 제2 아바타 애니메이션을 재생하는 단계;를 포함하는, 방법.
  2. 제1 항에 있어서,
    상기 공간 정보는,
    상기 공간의 공공장소 여부 및 상기 공간의 소음 정도에 대한 정보를 포함하는, 방법 .
  3. 제1 항에 있어서,
    상기 제1 아바타 표정 데이터 및 상기 제2 아바타 표정 데이터는,
    상기 아바타의 표정을 모델링하기 위한 복수의 레퍼런스 3D 메쉬(mesh) 각각에 대한 복수의 계수의 집합 을 포함하는 것을 특징으로 하는, 방법.
  4. 제1 항에 있어서,
    상기 아바타 음성 답변 및 상기 아바타 표정 시퀀스는,
    상기 공간 정보에 기초하여 결정되는 아바타 응답 모드에 기초하여 결정되는, 방법.
  5. 제1 항에 있어서,
    상기 제2 아바타 표정 데이터는, 립싱크 데이터를 포함하며,
    상기 립싱크 데이터는 인공지능 모델을 이용하여 획득되는, 방법.
  6. 제5 항에 있어서,
    상기 인공지능 모델은, 상기 립싱크 데이터의 표정에 따른 가용 범위에 기초하여 정규화된 데이터를 이용하여 학습되는, 방법.
  7. 제1 항에 있어서,
    상기 소정의 이벤트는,
    발화 모드 변경 이벤트, 응시 모드 이벤트, 및 리프레쉬 모드 이벤트 중 적어도 하나를 포함하는, 방법.
  8. 제7 항에 있어서,
    상기 소정의 이벤트가 리프레쉬 모드 이벤트인 경우,
    상기 제2 아바타 애니메이션을 재생하는 단계는, 은,
    상기 제1 아바타 애니메이션의 재생을 중단하는 단계;
    기설정된 소정의 리프레쉬 애니메이션을 재생하는 단계; 및
    상기 제1 아바타 애니메이션이 중단된 시점부터 상기 제1 아바타 애니메이션을 재생하는 단계;를 포함하는, 방법.
  9. 제7 항에 있어서,
    상기 소정의 이벤트가 발화 모드 변경 이벤트인 경우,
    상기 제2 아바타 표정 데이터 또는 제2 아바타 음성 답변을 결정하는 단계는,
    상기 이벤트 결과 변경된 발화 모드에 기초하여 상기 제1 아바타 표정 데이터를 수정하여 상기 제2 아바타 표정 데이터를 결정하는 단계; 및
    상기 이벤트 결과 변경된 발화 모드에 기초하여 상기 제1 아바타 음성 답변을 수정하는 단계;를 포함하는, 방법.
  10. 제7 항에 있어서,
    상기 소정의 이벤트가 응시 모드 이벤트인 경우,
    상기 제2 아바타 표정 데이터 또는 제2 아바타 음성 답변을 결정하는 단계는,
    상기 제1 아바타 애니메이션의 얼굴 방향 또는 시선 방향을 변경하여 상기 제2 아바타 표정 데이터를 결정하는 단계;를 포함하는, 방법.
  11. 서버가 전자장치를 통해 아바타 서비스를 제공하는 방법에 있어서,
    전자장치로부터 사용자 발화 음성 및 사용자가 발화한 공간의 공간 정보를 수신하는 단계;
    상기 공간 정보에 기초하여, 상기 사용자 발화 음성에 대한 아바타 응답 모드를 결정하는 단계;
    상기 사용자 발화 음성 및 상기 응답 모드에 기초하여, 상기 사용자 발화 음성에 대하여 아바타가 응답하기 위한 제1 아바타 음성 답변 및 상기 아바타 제1 음성 정보에 대응되는 아바타 표정 시퀀스를 생성하는 단계; 및
    제1 아바타 애니메이션을 생성하기 위한 상기 제1 아바타 음성 답변 및 상기 아바타 표정 시퀀스를 상기 전자장치로 전송하는 단계;를 포함하는, 방법.

  12. 아바타 서비스를 제공하는 전자장치에 있어서,
    통신부;
    적어도 하나의 명령어(instruction)를 포함하는 프로그램을 저장하는 저장부; 및
    상기 저장부에 저장된 적어도 하나의 명령어를 실행하는 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는 상기 적어도 하나의 명령어를 실행함으로써,
    사용자 발화 음성 및 사용자가 발화한 공간의 공간 정보를 획득하고,
    상기 통신부를 통하여, 상기 획득된 사용자 발화 음성 및 공간 정보를 서버로 전송하고, 상기 서버로부터 상기 사용자 발화 음성 및 상기 공간 정보 에 기초하여 결정 된, 제1 아바타 음성 답변 및 상기 아바타 제1 음성 정보에 대응되는 아바타 표정 시퀀스 를 수신하고,
    상기 획득된 제1 아바타 음성 답변 및 상기 아바타 표정 시퀀스에 기초하여, 제1 아바타 표정 데이터 를 결정하고,
    상기 제1 아바타 음성 답변 및 상기 제1 아바타 표정 데이터에 기초하여 생성된 제1 아바타 애니메이션을 재생 중, 소정의 이벤트 를 식별하고,
    상기 식별된 소정의 이벤트에 기초하여, 제2 아바타 표정 데이터 또는 제2 아바타 음성 답변을 결정하고,
    상기 제2 아바타 표정 데이터 또는 상기 제2 아바타 음성 답변에 기초하여 생성된 제2 아바타 애니메이션을 재생하는, 장치.

  13. 제12 항에 있어서,
    상기 공간 정보는,
    상기 공간의 공공장소 여부 및 상기 공간의 소음 정도에 대한 정보를 포함하는, 장치.
  14. 제12 항에 있어서,
    상기 제1 아바타 표정 데이터 및 상기 제2 아바타 표정 데이터는,
    상기 아바타의 표정을 모델링하기 위한 복수의 레퍼런스 3D 메쉬(mesh) 각각에 대한 복수의 계수의 집합 을 포함하는 것을 특징으로 하는, 장치.
  15. 제12 항에 있어서,
    상기 아바타 음성 답변 및 상기 아바타 표정 시퀀스는,
    상기 공간 정보에 기초하여 결정되는 아바타 응답 모드에 기초하여 결정되는, 장치.
  16. 제12 항에 있어서,
    상기 제2 아바타 표정 데이터는, 립싱크 데이터를 포함하며,
    상기 립싱크 데이터는 인공지능 모델을 이용하여 획득되는, 장치.
  17. 제16 항에 있어서,
    상기 인공지능 모델은, 상기 립싱크 데이터의 표정에 따른 가용 범위에 기초하여 정규화된 데이터를 이용하여 학습되는, 장치.
  18. 제12 항에 있어서,
    상기 소정의 이벤트는,
    발화 모드 변경 이벤트, 응시 모드 이벤트, 및 리프레쉬 모드 이벤트 중 적어도 하나를 포함하는, 장치.
  19. 제18 항에 있어서,
    상기 소정의 이벤트가 리프레쉬 모드 이벤트인 경우,
    상기 제2 아바타 애니메이션은, 기설정된 소정의 리프레쉬 애니메이션인, 장치.
  20. 제18 항에 있어서,
    상기 소정의 이벤트가 발화 모드 변경 이벤트인 경우,
    상기 제2 아바타 표정 데이터는 상기 이벤트 결과 변경된 발화 모드에 기초하여 상기 제1 아바타 표정 데이터를 수정하여 결정되고,
    상기 제2 아바타 음성 답변은 상기 이벤트 결과 변경된 발화 모드에 기초하여 상기 제1 아바타 음성 답변을 수정하여 결정되는, 장치.
  21. 제18 항에 있어서,
    상기 소정의 이벤트가 응시 모드 이벤트인 경우,
    상기 제2 아바타 표정 데이터는 상기 제1 아바타 애니메이션의 얼굴 방향 또는 시선 방향을 변경하여 결정되는, 장치.
  22. 전자장치를 통해 아바타 서비스를 제공하는 서버에 있어서,
    통신부;
    적어도 하나의 명령어(instruction)를 포함하는 프로그램을 저장하는 저장부; 및
    상기 저장부에 저장된 적어도 하나의 명령어를 실행하는 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는 상기 적어도 하나의 명령어를 실행함으로써,
    상기 통신부를 통해, 전자장치로부터 사용자 발화 음성 및 사용자가 발화한 공간의 공간 정보를 수신하고,
    상기 공간 정보에 기초하여, 상기 사용자 발화 음성에 대한 아바타 응답 모드를 결정하고,
    상기 사용자 발화 음성 및 상기 응답 모드에 기초하여, 상기 사용자 발화 음성에 대하여 아바타가 응답하기 위한 제1 아바타 음성 답변 및 상기 아바타 제1 음성 정보에 대응되는 아바타 표정 시퀀스를 생성하고,
    상기 통신부를 통해 제1 아바타 애니메이션을 생성하기 위한 상기 제1 아바타 음성 답변 및 상기 아바타 표정 시퀀스를 상기 전자장치로 전송하는, 서버.
  23. 제1 항 내지 제 11항 중 어느 한 항의 방법을 컴퓨터에서 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.

KR1020220007400A 2022-01-18 2022-01-18 대화형 아바타 서비스를 제공하는 방법 및 장치 KR20230111480A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220007400A KR20230111480A (ko) 2022-01-18 2022-01-18 대화형 아바타 서비스를 제공하는 방법 및 장치
PCT/KR2023/000721 WO2023140577A1 (ko) 2022-01-18 2023-01-16 대화형 아바타 서비스를 제공하는 방법 및 장치
US18/098,428 US20230230303A1 (en) 2022-01-18 2023-01-18 Method and apparatus for providing interactive avatar services

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220007400A KR20230111480A (ko) 2022-01-18 2022-01-18 대화형 아바타 서비스를 제공하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20230111480A true KR20230111480A (ko) 2023-07-25

Family

ID=87348935

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220007400A KR20230111480A (ko) 2022-01-18 2022-01-18 대화형 아바타 서비스를 제공하는 방법 및 장치

Country Status (2)

Country Link
KR (1) KR20230111480A (ko)
WO (1) WO2023140577A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110059178A (ko) * 2009-11-27 2011-06-02 주식회사 인스프리트 아바타 개인비서 서비스 제공 방법 및 그 시스템
US20120130717A1 (en) * 2010-11-19 2012-05-24 Microsoft Corporation Real-time Animation for an Expressive Avatar
KR101889278B1 (ko) * 2017-01-16 2018-08-21 주식회사 케이티 음성 명령에 기반하여 서비스를 제공하는 공용 단말 및 방법, 음성 명령에 기반하여 동작하는 캐릭터를 제공하는 공용 단말
KR101992424B1 (ko) * 2018-02-06 2019-06-24 (주)페르소나시스템 증강현실용 인공지능 캐릭터의 제작 장치 및 이를 이용한 서비스 시스템
KR20210060196A (ko) * 2019-11-18 2021-05-26 주식회사 케이티 아바타 메시지 서비스를 제공하는 서버, 방법 및 사용자 단말

Also Published As

Publication number Publication date
WO2023140577A1 (ko) 2023-07-27

Similar Documents

Publication Publication Date Title
US20200279553A1 (en) Linguistic style matching agent
US20190087734A1 (en) Information processing apparatus and information processing method
US11151997B2 (en) Dialog system, dialog method, dialog apparatus and program
US20190279642A1 (en) System and method for speech understanding via integrated audio and visual based speech recognition
US20190371318A1 (en) System and method for adaptive detection of spoken language via multiple speech models
US20230046658A1 (en) Synthesized speech audio data generated on behalf of human participant in conversation
US11942077B2 (en) Electronic device and operating method thereof
JP2022539355A (ja) 適応ダイアライゼーションモデルおよびユーザインタフェース
KR20220123576A (ko) 3차원(3d) 환경에 대한 통합된 입/출력
US20240161372A1 (en) Method and system for providing service for conversing with virtual person simulating deceased person
US20230230303A1 (en) Method and apparatus for providing interactive avatar services
JP7185072B2 (ja) ビデオチャット中に感情の修正を提供する方法およびシステム
Ritschel et al. Multimodal joke generation and paralinguistic personalization for a socially-aware robot
WO2021153101A1 (ja) 情報処理装置、情報処理方法および情報処理プログラム
KR102677052B1 (ko) 보이스 어시스턴트 서비스를 제공하는 시스템 및 방법
KR20200132673A (ko) 전자 장치 및 이의 제어 방법
KR20230111480A (ko) 대화형 아바타 서비스를 제공하는 방법 및 장치
US12014741B2 (en) Electronic device and controlling method thereof
JP2023120130A (ja) 抽出質問応答を利用する会話型aiプラットフォーム
JP7286303B2 (ja) 会議支援システム及び会議用ロボット
US20240078731A1 (en) Avatar representation and audio generation
US20240078732A1 (en) Avatar facial expressions based on semantical context
US12001808B2 (en) Method and apparatus for providing interpretation situation information to one or more devices based on an accumulated delay among three devices in three different languages
US20240087597A1 (en) Source speech modification based on an input speech characteristic
KR20240059350A (ko) 음성 신호 비식별화 처리 방법 및 그 전자 장치