KR102367143B1 - 얼굴 표정들에 기초한 음성 효과들 - Google Patents

얼굴 표정들에 기초한 음성 효과들 Download PDF

Info

Publication number
KR102367143B1
KR102367143B1 KR1020207022657A KR20207022657A KR102367143B1 KR 102367143 B1 KR102367143 B1 KR 102367143B1 KR 1020207022657 A KR1020207022657 A KR 1020207022657A KR 20207022657 A KR20207022657 A KR 20207022657A KR 102367143 B1 KR102367143 B1 KR 102367143B1
Authority
KR
South Korea
Prior art keywords
avatar
audio
video
audio signal
virtual avatar
Prior art date
Application number
KR1020207022657A
Other languages
English (en)
Other versions
KR20200105700A (ko
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
Priority claimed from US15/908,603 external-priority patent/US20180336716A1/en
Priority claimed from US16/033,111 external-priority patent/US10861210B2/en
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20200105700A publication Critical patent/KR20200105700A/ko
Application granted granted Critical
Publication of KR102367143B1 publication Critical patent/KR102367143B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/215Input arrangements for video game devices characterised by their sensors, purposes or types comprising means for detecting acoustic signals, e.g. using a microphone
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/424Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving acoustic input signals, e.g. by using the results of pitch or rhythm extraction or voice recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 개시내용의 실시예들은 하드웨어 컴포넌트들로부터 추출된 얼굴 특징부 특성들 및/또는 음성 특징부 특성들에 적어도 부분적으로 기초하여 비디오 클립의 오디오 및/또는 비디오 정보를 조정하기 위한 기술들을 제공할 수 있다. 예를 들어, 가상 아바타의 아바타 비디오 클립을 생성하기 위한 요청을 검출하는 것에 응답하여, 카메라의 시야 내의 얼굴과 연관된 비디오 신호 및 오디오 신호가 캡처될 수 있다. 음성 특징부 특성들 및 얼굴 특징부 특성들이 오디오 신호 및 비디오 신호로부터 각각 추출될 수 있다. 일부 예들에서, 아바타 비디오 클립을 미리보기하기 위한 요청을 검출하는 것에 응답하여, 얼굴 특징부 특성들 및 음성 특징부 특성들에 적어도 부분적으로 기초하여 조정된 오디오 신호가 생성될 수 있고, 조정된 오디오 신호를 이용한 가상 아바타의 비디오 클립의 미리보기가 디스플레이될 수 있다.

Description

얼굴 표정들에 기초한 음성 효과들
관련 출원에 대한 상호 참조
본 출원은 2018년 2월 28일자로 출원되고 발명의 명칭이 "얼굴 표정들에 기초한 음성 효과들(Voice Effects Based on Facial Expressions)"인 미국 가특허 출원 제15/908,603호 및 2018년 7월 11일자로 출원되고 발명의 명칭이 "오디오 및 비디오 효과들을 제공하는 기술들(Techniques for Providing Audio and Video Effects)"인 미국 부분 계속 특허 출원 제16/033,111호로부터 우선권의 이득을 주장하고, 이들 개시내용들은 모든 목적들을 위해 전체적으로 본 명세서에 참고로 포함된다.
이모지들과 같은 멀티미디어 콘텐츠는 메시징 통신들의 일부로서 전송될 수 있다. 이모지들은 다양한 미리 정의된 사람들, 물체들, 액션들, 및/또는 다른 것들을 표현할 수 있다. 일부 메시징 애플리케이션들은, 다른 콘텐츠(예를 들어, 다른 멀티미디어 및/또는 텍스트 콘텐츠)를 포함할 수 있는 메시지의 일부로서 전송될 수 있는 이모지들의 미리 정의된 라이브러리로부터 사용자들이 선택할 수 있게 한다. 애니모지(Animoji)들은 이러한 다른 멀티미디어 콘텐츠의 한 유형이며, 사용자는 자신들을 표현하기 위해 아바타(예를 들어, 인형)를 선택할 수 있다. 애니모지는 마치 그것이 사용자의 비디오인 것처럼 움직이고 말할 수 있다. 애니모지들은 사용자들이 재미있고 창의적인 방식으로 개인화된 버전들의 이모지들을 생성할 수 있게 한다.
본 개시내용의 실시예들은 아바타 비디오 클립 개정 및 재생 기술들을 구현하기 위한 시스템들, 방법들, 및 컴퓨터 판독가능 매체를 제공할 수 있다. 일부 예들에서, 컴퓨팅 디바이스는 사용자의 얼굴을 추적하고 가상 아바타 표현(예를 들어, 인형 또는 사용자의 얼굴의 비디오 캐릭터 버전)을 제시하기 위한 사용자 인터페이스(UI)를 제시할 수 있다. 기록하기 위한 요청을 식별하면, 컴퓨팅 디바이스는 오디오 및 비디오 정보를 캡처하고, 컨텍스트뿐만 아니라 얼굴 특징부 특성들 및 음성 특징부 특성들을 추출 및 검출하고, 추출된/식별된 특징부들에 적어도 부분적으로 기초하여 오디오 및/또는 비디오 정보를 개정하고, 개정된 오디오 및/또는 비디오 정보를 사용하여 아바타의 비디오 클립을 제시할 수 있다.
일부 실시예들에서, 다양한 오디오 및 비디오 효과 기술들을 구현하기 위한 컴퓨터 구현 방법이 제공될 수 있다. 방법은 가상 아바타 생성 인터페이스를 디스플레이하는 단계를 포함할 수 있다. 방법은 또한 가상 아바타 생성 인터페이스에서 가상 아바타의 제1 미리보기 콘텐츠를 디스플레이하는 단계를 포함할 수 있고, 가상 아바타의 제1 미리보기 콘텐츠는 카메라의 시야 내의 사용자 헤드샷의 실시간 미리보기 비디오 프레임들 및 외관에서의 연관된 헤드샷 변화들에 대응할 수 있다. 방법은 또한 가상 아바타의 제1 미리보기 콘텐츠를 디스플레이하는 동안, 가상 아바타 생성 인터페이스에서 입력을 검출하는 단계를 포함할 수 있다. 일부 예들에서, 가상 아바타 생성 인터페이스에서 입력을 검출하는 것에 응답하여, 방법은 또한, 카메라를 통해, 기록 세션 동안 사용자 헤드샷과 연관된 비디오 신호를 캡처하는 단계, 마이크로폰을 통해, 기록 세션 동안 사용자 오디오 신호를 캡처하는 단계, 캡처된 사용자 오디오 신호로부터 오디오 특징부 특성들을 추출하는 단계, 및 캡처된 비디오 신호로부터 얼굴과 연관된 얼굴 특징부 특성들을 추출하는 단계를 포함할 수 있다. 추가적으로, 기록 세션의 만료를 검출하는 것에 응답하여, 방법은 또한, 얼굴 특징부 특성들 및 오디오 특징부 특성들에 적어도 부분적으로 기초하여 캡처된 오디오 신호로부터 조정된 오디오 신호를 생성하는 단계, 얼굴 특징부 특성들 및 조정된 오디오 신호에 따라 가상 아바타 생성 인터페이스에서 가상 아바타의 제2 미리보기 콘텐츠를 생성하는 단계, 및 가상 아바타 생성 인터페이스에서 제2 미리보기 콘텐츠를 제시하는 단계를 포함할 수 있다.
일부 실시예들에서, 방법은 또한,비디오 신호로부터 추출된 얼굴 특징부 특성들과 연관된 얼굴 특징부 메타데이터를 저장하는 단계, 및 얼굴 특징부 특성들 및 오디오 특징부 특성들에 적어도 부분적으로 기초하여 얼굴 특징부 메타데이터로부터 조정된 얼굴 특징부 메타데이터를 생성하는 단계를 포함할 수 있다. 추가적으로, 가상 아바타의 제2 미리보기는 조정된 얼굴 메타데이터에 따라 추가로 디스플레이될 수 있다. 일부 예들에서, 가상 아바타의 제1 미리보기는 미리보기 세션 동안 얼굴의 외관의 변화들에 따라 식별된 미리보기 얼굴 특징부 특성들에 따라 디스플레이될 수 있다.
일부 실시예들에서, 다양한 오디오 및 비디오 효과 기술들을 구현하기 위한 전자 디바이스가 제공될 수 있다. 시스템은 카메라, 마이크로폰, 미리 기록된/미리 결정된 오디오의 라이브러리, 및 카메라 및 마이크로폰과 통신하는 하나 이상의 프로세서들을 포함할 수 있다. 일부 예들에서, 프로세서들은 동작들을 수행하기 위해 컴퓨터 실행가능 명령어들을 실행하도록 구성될 수 있다. 동작들은 가상 아바타의 제1 미리보기를 디스플레이하는 동안, 가상 아바타 생성 인터페이스에서 입력을 검출하는 것을 포함할 수 있다. 동작들은 또한 가상 아바타 생성 인터페이스에서 입력을 검출하는 것에 응답하여, 포함하는 캡처 세션을 개시하는 것을 포함할 수 있다. 캡처 세션은,카메라를 통해, 카메라의 시야 내의 얼굴과 연관된 비디오 신호를 캡처하는 것, 마이크로폰을 통해, 캡처된 비디오 신호와 연관된 오디오 신호를 캡처하는 것, 캡처된 오디오 신호로부터 오디오 특징부 특성들을 추출하는 것, 및 캡처된 비디오 신호로부터 얼굴과 연관된 얼굴 특징부 특성들을 추출하는 것을 포함할 수 있다. 일부 예들에서, 동작들은 또한, 적어도 캡처 세션의 만료를 검출하는 것에 응답하여, 오디오 특징부 특성들 및 얼굴 특징부 특성들에 적어도 부분적으로 기초하여 조정된 오디오 신호를 생성하는 것, 및 가상 아바타 생성 인터페이스에서 제2 미리보기 콘텐츠를 제시하는 것을 포함할 수 있다.
일부 경우들에서, 오디오 신호는 가상 아바타의 유형에 적어도 부분적으로 기초하여 추가로 조정될 수 있다. 추가적으로, 가상 아바타의 유형은 가상 아바타 생성 인터페이스에 제시된 아바타 유형 선택 어포던스에 적어도 부분적으로 기초하여 수신될 수 있다. 일부 경우들에서, 가상 아바타의 유형은 동물 유형을 포함할 수 있고, 조정된 오디오 신호는 동물 유형과 연관된 미리 결정된 사운드에 적어도 부분적으로 기초하여 생성될 수 있다. 미리 결정된 사운드들의 사용 및 타이밍은 캡처된 오디오로부터의 오디오 특징부들 및/또는 캡처된 비디오로부터의 얼굴 특징부들에 기초할 수 있다. 이러한 미리 결정된 사운드는 또한 캡처된 오디오로부터의 오디오 특징부들 및 캡처된 비디오로부터의 얼굴 특징부들에 기초하여 그 자체가 수정될 수 있다. 일부 예들에서, 하나 이상의 프로세서들은 오디오 신호의 일부분이 시야 내의 얼굴에 대응하는지 여부를 결정하도록 추가로 구성될 수 있다. 추가적으로, 오디오 신호의 일부분이 얼굴에 대응한다는 결정에 따라, 오디오 신호의 일부분은 조정된 오디오 신호를 생성하는 데 사용하기 위해 저장될 수 있고/있거나, 오디오 신호의 일부분이 얼굴에 대응하지 않는다는 결정에 따라, 오디오 신호의 적어도 일부분은 폐기되고 수정 및/또는 재생을 위해 고려되지 않을 수 있다. 추가적으로, 오디오 특징부 특성들은 시야 내의 얼굴과 연관된 음성의 특징부들을 포함할 수 있다. 일부 예들에서, 하나 이상의 프로세서들은 비디오 신호로부터 추출된 얼굴 특징부 특성들과 연관된 얼굴 특징부 메타데이터를 저장하도록 추가로 구성될 수 있다. 일부 예들에서, 하나 이상의 프로세서들은 오디오 신호로부터 추출된 오디오 특징부 특성들과 연관된 오디오 특징부 메타데이터를 저장하도록 추가로 구성될 수 있다. 또한, 하나 이상의 프로세서들은 얼굴 특징부 특성들 및 오디오 특징부 특성들에 적어도 부분적으로 기초하여 조정된 얼굴 메타데이터를 생성하도록 추가로 구성될 수 있으며, 가상 아바타의 제2 미리보기는 조정된 얼굴 메타데이터 및 조정된 오디오 신호에 따라 생성될 수 있다.
일부 실시예들에서, 컴퓨터 판독가능 매체가 제공될 수 있다. 컴퓨터 판독가능 매체는, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금 동작들을 수행하게 하는 컴퓨터 실행가능 명령어들을 포함할 수 있다. 동작들은 가상 아바타의 아바타 비디오 클립을 생성하기 위한 요청을 검출하는 것에 응답하여 하기의 액션들 즉, 전자 디바이스의 카메라를 통해, 카메라의 시야 내의 얼굴과 연관된 비디오 신호를 캡처하는 것, 전자 디바이스의 마이크로폰을 통해, 오디오 신호를 캡처하는 것, 캡처된 오디오 신호로부터 음성 특징부 특성들을 추출하는 것, 및 캡처된 비디오 신호로부터 얼굴과 연관된 얼굴 특징부 특성들을 추출하는 것을 수행하는 것을 포함할 수 있다 동작들은 또한 아바타 비디오 클립을 미리보기하기 위한 요청을 검출하는 것에 응답하여 하기의 액션들 즉, 얼굴 특징부 특성들 및 음성 특징부 특성들에 적어도 부분적으로 기초하여 조정된 오디오 신호를 생성하는 것, 및 조정된 오디오 신호를 사용하여 가상 아바타의 비디오 클립의 미리보기를 디스플레이하는 것을 수행하는 것을 포함할 수 있다.
일부 실시예들에서, 오디오 신호는 얼굴과 연관된 얼굴 특징부 특성들에서 식별된 얼굴 표정에 적어도 부분적으로 기초하여 조정될 수 있다. 일부 경우들에서, 오디오 신호는 얼굴과 연관된 음성 특성의 레벨, 음조(pitch), 지속기간, 형식, 또는 변화에 적어도 부분적으로 기초하여 조정될 수 있다. 또한, 일부 실시예들에서, 하나 이상의 프로세서들은 가상 아바타의 비디오 클립을 다른 전자 디바이스로 송신하는 것을 포함하는 동작들을 수행하도록 추가로 구성될 수 있다.
첨부 도면들과 함께 하기의 상세한 설명은 본 개시내용의 본질 및 이점들에 대한 보다 양호한 이해를 제공할 것이다.
도 1은 적어도 하나의 예에 따른, 본 명세서에 설명된 바와 같은 오디오 및/또는 비디오 효과 기술들을 제공하기 위한 예시적인 흐름을 예시하는 단순화된 블록도이다.
도 2는 적어도 하나의 예에 따른, 본 명세서에 설명된 바와 같은 오디오 및/또는 비디오 효과 기술들을 제공하기 위한 예시적인 흐름을 예시하는 다른 단순화된 블록도이다.
도 3은 적어도 하나의 예에 따른, 본 명세서에 설명된 바와 같은 오디오 및/또는 비디오 효과 기술들을 제공하기 위한 하드웨어 및 소프트웨어 컴포넌트들을 예시하는 다른 단순화된 블록도이다.
도 4는 적어도 하나의 예에 따른, 본 명세서에 설명된 바와 같은 오디오 및/또는 비디오 효과 기술들을 제공하는 것을 예시하기 위한 흐름도이다.
도 5는 적어도 하나의 예에 따른, 본 명세서에 설명된 바와 같은 오디오 및/또는 비디오 효과 기술들을 제공하는 것을 예시하기 위한 다른 흐름도이다.
도 6은 적어도 하나의 예에 따른, 본 명세서에 설명된 바와 같은 오디오 및/또는 비디오 효과 기술들을 제공하기 위한 사용자 인터페이스를 예시하는 단순화된 블록도이다.
도 7은 적어도 하나의 예에 따른, 본 명세서에 설명된 바와 같은 오디오 및/또는 비디오 효과 기술들을 제공하는 것을 예시하기 위한 다른 흐름도이다.
도 8은 적어도 하나의 예에 따른, 본 명세서에 설명된 바와 같은 오디오 및/또는 비디오 효과 기술들을 제공하는 것을 예시하기 위한 다른 흐름도이다.
도 9는 적어도 하나의 예에 따른, 본 명세서에 설명된 바와 같은 오디오 및/또는 비디오 효과 기술들을 제공하기 위한 컴퓨터 아키텍처를 예시하는 단순화된 블록도이다.
본 개시내용의 소정 실시예들은 얼굴 표정들에 적어도 부분적으로 기초하여 음성 효과들(예를 들어, 개정된 오디오)을 제공하기 위한 다양한 기술들을 구현하기 위한 디바이스들, 컴퓨터 판독가능 매체, 및 방법들에 관한 것이다. 추가적으로, 일부 경우들에서, 다양한 기술들은 또한 기록물(recording)의 오디오 특성들에 적어도 부분적으로 기초하여 비디오 효과들을 제공할 수 있다. 더 나아가, 다양한 기술들은 또한 기록물의 얼굴 표정들 및 오디오 특성들 중 하나 또는 둘 모두에 적어도 부분적으로 기초하여 음성 효과들 및 비디오 효과들을 (예를 들어, 함께) 제공할 수 있다. 일부 예들에서, 음성 효과들 및/또는 비디오 효과들은 사용자의 만화 표현(예를 들어, 아바타 또는 디지털 인형)을 디스플레이하도록 구성된 사용자 인터페이스(UI)에서 제시될 수 있다. 사용자를 표현하는 그러한 아바타는, 대부분의 스마트 폰 사용자들에게 친숙한 이모지 캐릭터인 것처럼 보일 수 있기 때문에 애니모지로 간주될 수 있지만, 그것은 사용자의 실제 움직임들을 모방하도록 애니메이션화될 수 있다.
예를 들어, 컴퓨팅 디바이스의 사용자에게는 애니모지 비디오(예를 들어, 비디오 클립)를 생성하기 위한 UI가 제시될 수 있다. 비디오 클립은 미리 결정된 시간량(예를 들어, 10초, 30초 등)으로 제한될 수 있거나, 비디오 클립은 제한되지 않을 수 있다. UI에서, 미리보기 영역은 아바타 캐릭터를 사용하여 사용자의 얼굴의 실시간 표현을 사용자에게 제시할 수 있다. 다양한 아바타 캐릭터들이 제공될 수 있고, 사용자는 심지어 그 자신의 아바타들을 생성하거나 임포트(import)할 수 있다. 미리보기 영역은 아바타의 초기 미리보기 및 기록된 비디오 클립의 미리보기를 제공하도록 구성될 수 있다. 추가적으로, 기록된 비디오 클립은 (예를 들어, 임의의 비디오 또는 오디오 효과들 없이) 그의 원래의 형태로 미리보기될 수 있거나, 또는 오디오 및/또는 비디오 효과들과 함께 미리보기될 수 있다. 일부 경우들에서, 사용자는 초기 비디오 클립이 기록된 후에 아바타를 선택할 수 있다. 이어서, 비디오 클립 미리보기는 하나의 아바타로부터 그에 따라 동일하거나 상이한 비디오 효과들이 적용된 다른 아바타로 적절하게 변할 수 있다. 예를 들어, 원시 미리보기(예를 들어, 효과들이 없는 원래의 형태)가 보여지는 중에, 사용자가 아바타 캐릭터들을 전환하는 경우, UI는 동일한 비디오 클립의 렌더링을 디스플레이하지만 새롭게 선택된 아바타를 갖도록 업데이트될 수 있다. 다시 말하면, 기록 중에 캡처된 얼굴 특징부들 및 오디오(예를 들어, 사용자의 음성)는 (예를 들어, 임의의 효과들 없이) 아바타들 중 임의의 것으로부터 제시될 수 있다. 미리보기에서, 그것은, 아바타 캐릭터가 사용자가 기록 중에 이동한 것과 동일한 방향으로 이동하고, 사용자가 기록 중에 말한 것을 말하는 것처럼 보일 것이다.
예로서, 사용자는 UI를 통해 제1 아바타(예를 들어, 유니콘 헤드)를 선택할 수 있거나, 디폴트 아바타가 초기에 제공될 수 있다. UI는 미리보기 영역에서 아바타(본 예에서는 사용자가 선택한 경우 만화 유니콘의 헤드 또는 디폴트인 임의의 다른 이용가능한 인형)를 제시할 것이고, 디바이스는 (예를 들어, 하나 이상의 마이크로폰들 및/또는 하나 이상의 카메라들을 사용하여) 오디오 및/또는 비디오 정보를 캡처하기 시작할 것이다. 일부 경우들에서, 초기 미리보기 화면에 대해 비디오 정보만이 필요하다. 비디오 정보는 분석될 수 있고, 얼굴 특징부들은 추출될 수 있다. 이어서, 이들 추출된 얼굴 특징부들은, 유니콘 헤드의 초기 미리보기가 사용자의 헤드를 반영하는 것처럼 보이도록, 실시간으로 유니콘 얼굴에 맵핑될 수 있다. 일부 경우들에서, 용어 "실시간"은 추출, 맵핑, 렌더링, 및 제시의 결과들이 사용자의 각각의 움직임에 응답하여 수행되어 실질적으로 즉시 제시될 수 있음을 나타내는 데 사용된다. 사용자에게, 이것은, 사용자의 얼굴의 이미지가 아바타로 대체된 것을 제외하고는 거울을 보는 것처럼 보일 것이다.
사용자의 얼굴이 디바이스의 카메라의 시선(line of sight)(예를 들어, 뷰(view)) 내에 있는 동안, UI는 초기 미리보기를 계속 제시할 것이다. UI 상의 기록 어포던스(예를 들어, 가상 버튼)의 선택 시, 디바이스는 오디오 성분을 갖는 비디오를 캡처하기 시작할 수 있다. 일부 예들에서, 이것은 카메라가 프레임들을 캡처하고, 마이크로폰이 오디오 정보를 캡처하는 것을 포함한다. 3차원(3D) 정보를 캡처할 수 있는 특수 카메라가 또한 활용될 수 있다. 추가적으로, 일부 예들에서, 비디오를 캡처할 수 있는 임의의 카메라가 활용될 수 있다. 비디오는 그의 원래의 형태로 저장될 수 있고/있거나 비디오와 연관된 메타데이터가 저장될 수 있다. 이와 같이, 비디오 및/또는 오디오 정보를 캡처하는 것은 정보를 저장하는 것과 상이할 수 있다. 예를 들어, 정보를 캡처하는 것은 정보를 감지하는 것 및 프로세싱에 이용가능하도록 적어도 정보를 캐싱하는 것을 포함할 수 있다. 프로세싱된 데이터는 또한 데이터를 저장하거나 단순히 활용할지 여부가 결정될 때까지 캐싱될 수 있다. 예를 들어, 초기 미리보기 동안, 사용자의 얼굴이 실시간으로 인형으로서 제시되고 있는 동안, 비디오 데이터(예를 들어, 데이터와 연관된 메타데이터)는 그것이 인형에 맵핑되고 제시되는 동안 캐싱될 수 있다. 그러나, 이러한 데이터는 아예 영구적으로 저장되지 않아서 초기 미리보기가 재사용가능하거나 복구가능하지 않을 수 있다.
대안적으로, 일부 예들에서, 일단 사용자가 UI의 기록 어포던스를 선택하면, 비디오 데이터 및 오디오 데이터가 더 영구적으로 저장될 수 있다. 이러한 방식으로, 본 명세서에 설명된 오디오 및 비디오 효과들을 제공하기 위해, 오디오 및 비디오(A/V) 데이터는 분석, 프로세싱 등이 될 수 있다. 일부 예들에서, 비디오 데이터는 얼굴 특징부들(예를 들어, 얼굴 특징부 특성들)을 추출하도록 프로세싱될 수 있고, 이들 얼굴 특징부들은 애니모지 비디오 클립에 대한 메타데이터로서 저장될 수 있다. 메타데이터의 세트는 비디오 클립과 연관된 시간, 날짜 및 사용자를 나타내는 식별자(ID)로 저장될 수 있다. 추가적으로, 오디오 데이터는 동일하거나 다른 ID로 저장될 수 있다. 저장되면, 또는 일부 예들에서, 저장 전에, 시스템(예를 들어, 디바이스의 프로세서들)은 오디오 데이터로부터 오디오 특징부 특성들을 추출하고 비디오 파일로부터 얼굴 특징부 특성들을 추출할 수 있다. 이러한 정보는 사용자의 컨텍스트, 핵심 단어들, 의도, 및/또는 감정들을 식별하는 데 활용될 수 있고, 비디오 및 오디오 효과들은 인형들을 렌더링하기 전에 오디오 및 비디오 데이터 내로 도입될 수 있다. 일부 예들에서, 오디오 신호는 추출된 특징부들에 적어도 부분적으로 기초하여 상이한 단어들, 사운드들, 톤들, 음조들, 타이밍 등을 포함하도록 조정될 수 있다. 추가적으로, 일부 예들에서, 비디오 데이터(예를 들어, 메타데이터)가 또한 조정될 수 있다. 일부 예들에서, 오디오 특징부들은 미리보기 자체 동안 실시간으로 추출된다. 이들 오디오 특징부들은 아바타 특정이며, 연관 아바타가 미리보기되고 있는 경우에만 생성될 수 있다. 오디오 특징부들은 아바타 애그노스틱(agnostic)이며, 모든 아바타들에 대해 생성될 수 있다. 오디오 신호는 또한, 이들 실시간 오디오 특징부 추출들에 부분적으로 기초하여, 그리고 기록 프로세스 동안 또는 그 후에, 그러나 미리보기 전에 생성된 미리 저장된 추출된 비디오 특징부들을 이용하여 조정될 수 있다.
일단 추출된 특성들에 적어도 부분적으로 기초하여 비디오 및 오디오 데이터가 조정되면, 인형의 제2 미리보기가 렌더링될 수 있다. 이러한 렌더링은 각각의 가능한 인형에 대해 수행될 수 있으며, 예컨대 사용자가 스크롤하여 상이한 인형들을 선택함에 따라, 조정된 데이터가 이미 렌더링된다. 또는 렌더링은 각각의 인형의 선택 이후에 수행될 수 있다. 임의의 경우에서, 일단 사용자가 인형을 선택하면, 제2 미리보기가 제시될 수 있다. 제2 미리보기는 사용자에 의해 기록되었지만 오디오 및/또는 비디오가 조정된 비디오 클립을 재생할 것이다. 위로부터의 예를 사용하여, 사용자가 화난 톤(예를 들어, 거친 음성 및 주름잡힌 이마)으로 자신을 기록한 경우, 분노의 컨텍스트 또는 의도가 검출될 수 있고, 오디오 파일은 으르렁거리는 사운드를 포함하도록 조정될 수 있다. 따라서, 제2 미리보기는 유니콘이 사용자가 말한 단어들을 말하는 것처럼 보이겠지만, 사용자의 음성은 으르렁거리는 것처럼 들리도록, 또는 톤을 더 바리톤으로(예를 들어, 더 낮게) 만들도록 조정될 수 있다. 이어서, 사용자는 제2 미리보기를 저장하거나, (예를 들어, 메시징 애플리케이션 등을 통해) 다른 사용자로의 전송을 위해 그것을 선택할 수 있다. 일부 예들에서, 아래 및 위의 애니모지 비디오 클립들은.mov 파일들로서 공유될 수 있다. 그러나, 다른 예들에서, 설명된 기술들은 (예를 들어, 비디오 메시징 등을 이용하여) 실시간으로 사용될 수 있다.
도 1은 사용자의 기록물에서 검출된 오디오 및/또는 비디오 특징부들에 적어도 부분적으로 기초하여 오디오 및/또는 비디오 효과들을 제공하기 위한 예시적인 흐름(100)을 예시하는 단순화된 블록도이다. 예시적인 흐름(100)에서, 두 개의 별개의 세션들, 즉, 기록 세션(102) 및 재생 세션(104)이 있다. 기록 세션(102)에서, 디바이스(106)는 블록(110)에서 사용자(108)의 오디오 성분을 갖는 비디오를 캡처할 수 있다. 일부 예들에서, 비디오 및 오디오는 두 개의 상이한 디바이스들(예를 들어, 마이크로폰 및 카메라)을 사용하여 개별적으로 캡처(예를 들어, 수집)될 수 있다. 비디오 및 오디오의 캡처는 사용자(108)에 의한 기록 어포던스의 선택에 적어도 부분적으로 기초하여 트리거될 수 있다. 일부 예들에서, 사용자(108)는 블록(112)에서 단어 "안녕하세요"를 말할 수 있다. 추가적으로, 블록(112)에서, 디바이스(106)는 사용자의 액션들의 비디오 및/또는 오디오 성분들을 계속해서 캡처할 수 있다. 블록(114)에서, 디바이스(106)는 비디오 및 오디오 성분들을 계속해서 캡처할 수 있고, 이러한 예에서, 사용자(108)는 단어 "짖기(bark)"를 말할 수 있다. 블록(114)에서, 디바이스(106)는 또한 오디오 정보로부터 음성 단어들을 추출할 수 있다. 그러나, 다른 예들에서, 음성 단어 추출(또는 임의의 오디오 특징부 추출)은 기록 세션(102)이 완료된 후에 실제로 일어날 수 있다. 다른 예들에서, 음성 단어 추출(또는 임의의 오디오 특징부 추출)은 실제로 미리보기 블록(124)동안 실시간으로 일어날 수 있다. 또한, 추출(예를 들어, 오디오의 분석)은 기록 세션(102)이 여전히 진행되는 동안 실시간으로 수행될 수 있다. 어느 경우든, 디바이스(106)에 의해 실행되는 아바타 프로세스는 사용자가 단어 "짖기"를 말했다는 것을 추출을 통해 식별할 수 있고, 어떤 오디오 효과들을 구현할지를 결정하기 위해 일부 로직을 채용할 수 있다.
예로서, 기록 세션(102)은 사용자(108)가 기록 어포던스를 다시 선택하거나(예를 들어, 기록을 종료하고자 하는 요구를 나타냄), 종료 기록 어포던스를 선택할 때(예를 들어, 기록 어포던스는 기록 중에 종료 기록 어포던스로서 작용할 수 있음), 또는 기간(예를 들어, 10초, 30초 등)의 만료에 적어도 부분적으로 기초하여 종료될 수 있다. 일부 경우들에서, 이 기간은 자동으로 미리 결정될 수 있는 한편, 다른 경우들에서, 그것은 사용자 선택일 수 있다(예를 들어, 옵션들의 목록으로부터 선택되거나 텍스트 입력 인터페이스를 통해 자유 형태로 입력될 수 있음). 기록이 완료되면, 사용자(108)는 사용자(108)가 기록물의 미리보기를 보기를 원하는 것을 나타내는 미리보기 어포던스를 선택할 수 있다. 하나의 옵션은 임의의 시각적 또는 오디오 효과들 없이 원래의 기록을 재생하는 것일 수 있다. 그러나, 다른 옵션은 비디오 클립의 개정된 버전을 재생하는 것일 수 있다. 음성 단어 "짖기"의 검출에 적어도 부분적으로 기초하여, 아바타 프로세스는 비디오 클립의 오디오 및/또는 비디오를 개정했을 수 있다.
블록(116)에서, 디바이스(106)는 화면 상에 아바타(인형 및/또는 애니모지로도 불림)(118)를 제시할 수 있다. 디바이스(106)는 또한 비디오 클립과 연관된 오디오를 재생할 수 있는 스피커(120)로 구성될 수 있다. 이러한 예에서, 블록(116)은 블록(110)과 동일한 시점에 대응하며, 사용자(108)는 그의 입을 열었지만 아직 말하지 않았을 수 있다. 이와 같이, 아바타(118)는 그의 입을 열은 상태로 제시될 수 있지만, 오디오는 스피커(120)로부터 아직 제시되지 않는다. 사용자(108)가 "안녕하세요"라고 말한 블록(112)에 대응하는 블록(122)에서, 아바타 프로세스는 아바타-특정 음성과 함께 아바타(118)를 제시할 수 있다. 다시 말하면, 블록(122)에서, 미리 정의된 개 음성이 단어 "안녕하세요"를 말하는 데 사용될 수 있다. 개 음성 단어 "안녕하세요"는 스피커(120)에 의해 제시될 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 사용자(108)에 의한 선택을 위해 이용가능한 다양한 상이한 동물(및 다른 캐릭터) 아바타들이 있다. 일부 예들에서, 각각의 아바타는 그 아바타에 가장 잘 맞는 특정한 미리 정의된 음성과 연관될 수 있다. 예를 들어, 개는 개 음성을 가질 수 있고, 고양이는 고양이 음성을 가질 수 있고, 돼지는 돼지 음성을 가질 수 있고, 로봇은 로봇 음성을 가질 수 있다. 이러한 아바타-특정 음성들은 미리 기록될 수 있거나, 임의의 사용자의 음성이 개 음성처럼 들리도록 변환될 수 있도록, 원래의 사운드 상에 수학적 연산들을 실행함으로써 발생할 수 있는 특정 주파수 또는 오디오 변환들과 연관될 수 있다. 그러나, 각각의 사용자의 개 음성은 수행되는 특정 오디오 변환에 적어도 부분적으로 기초하여 상이하게 들릴 수 있다.
블록(124)에서, 아바타 프로세스는 음성 단어(예를 들어, "짖기")를 아바타-특정 단어로 대체할 수 있다. 이러한 예에서, 개 짖는 소리(예를 들어, 기록되거나 모사된 개 짖는 소리)의 사운드가 (예를 들어, 단어 "짖기" 대신에) 오디오 데이터 내로 삽입될 수 있어서, 비디오 클립의 제시 동안 재생될 때, "멍(woof)"이 스피커(120)에 의해 제시될 수 있다. 일부 예들에서, 124에서, 상이한 아바타-특정 단어들이 상이한 아바타 선택들에 적어도 부분적으로 기초하여 제시될 것이고, 다른 예들에서, 동일한 아바타-특정 단어가 아바타 선택들에 관계없이 제시될 수 있다. 예를 들어, 사용자(108)가 "짖기"라고 말하면, 개 아바타가 선택될 때 "멍"이 제시될 수 있다. 그러나, 이러한 동일한 경우에, 사용자(108)가 이후에 동일한 흐름에 대해 고양이 아바타를 선택하는 경우에, 오디오를 개정하기 위한 몇몇 옵션들이 있다. 한 가지 예에서, 고양이가 "멍"하는 것이 적합하지 않더라도 프로세스는 "짖기"를 "멍"으로 전환할 수 있다. 상이한 예에서, 프로세스는 고양이 아바타의 선택에 적어도 부분적으로 기초하여, "짖기"를 기록되거나 모사된 "야옹"으로 전환할 수 있다. 그리고 또 다른 예에서, 프로세스는 개 아바타 이외의 아바타들에 대한 "짖기"를 무시할 수 있다. 이와 같이, 114에서의 추출 후에도 수행되는 오디오 특징부 분석의 제2 레벨이 있을 수 있다. 비디오 및 오디오 특징부들은 또한 아바타 특정 발화들에 대한 프로세싱에 영향을 줄 수 있다. 예를 들어, 사용자가 "짖기"라고 말하는 레벨 및 음조 및 억양이 오디오 특징부 추출의 일부로서 검출될 수 있고, 이는 시스템이 미리보기 프로세스 전에 및/또는 그 동안에 특정 "멍" 샘플을 선택하거나 그러한 샘플을 변환하도록 지시할 수 있다.
도 2는 사용자의 기록물에서 검출된 오디오 및/또는 비디오 특징부들에 적어도 부분적으로 기초하여 오디오 및/또는 비디오 효과들을 제공하기 위한 예시적인 흐름(200)을 예시하는 다른 단순화된 블록도이다. 예시적인 흐름(200)에서, 도 1의 예시적인 흐름(100)과 매우 유사하게, 두 개의 별개의 세션들, 즉, 기록 세션(202) 및 재생 세션(204)이 있다. 기록 세션(202)에서, 디바이스(206)는 블록(210)에서 사용자(208)의 오디오 성분을 갖는 비디오를 캡처할 수 있다. 비디오 및 오디오의 캡처는 사용자(208)에 의한 기록 어포던스의 선택에 적어도 부분적으로 기초하여 트리거될 수 있다. 일부 예들에서, 사용자(208)는 블록(212)에서 단어 "안녕하세요"를 말할 수 있다. 추가적으로, 블록(212)에서, 디바이스(206)는 사용자의 액션들의 비디오 및/또는 오디오 성분들을 계속해서 캡처할 수 있다. 블록(214)에서, 디바이스(206)는 비디오 및 오디오 성분들을 계속해서 캡처할 수 있고, 이러한 예에서, 사용자(208)는 그의 입을 열린 상태로 유지하지만, 아무 말도 하지 않을 수 있다. 블록(214)에서, 디바이스(206)는 또한 비디오로부터 얼굴 표정들을 추출할 수 있다. 그러나, 다른 예들에서, 얼굴 특징부 추출(또는 임의의 비디오 특징부 추출)은 기록 세션(202)이 완료된 후에 실제로 일어날 수 있다. 여전히, 추출(예를 들어, 비디오의 분석)은 기록 세션(202)이 여전히 진행되는 동안 실시간으로 수행될 수 있다. 어느 경우든, 디바이스(206)에 의해 실행되는 아바타 프로세스는 사용자가 자신의 입을 잠시(예를 들어, 아무것도 말하지 않고서) 열었음을 추출을 통해 식별할 수 있고, 어떤 오디오 및/또는 비디오 효과들을 구현할지를 결정하기 위해 일부 로직을 채용할 수 있다. 일부 예들에서, 사용자가 아무 말도 하지 않고 그들의 입을 열린 상태로 유지했다는 결정은 오디오 및 비디오 둘 모두의 추출 및 분석을 필요로 할 수 있다. 예를 들어, 얼굴 특징부 특성들(예를 들어, 열린 입)의 추출은 충분하지 않을 수 있고, 프로세스는 또한 사용자(208)가 동일한 기록 기간 동안 아무 말도 하지 않았음을 검출할 필요가 있을 수 있다. 비디오 및 오디오 특징부들은 또한 아바타 특정 발화들에 대한 프로세싱에 영향을 줄 수 있다. 예를 들어, 입을 열고, 눈을 뜨고 있는 등의 지속기간은 시스템이 특정 "멍" 샘플을 선택하거나, 미리보기 프로세스 전에 및/또는 그 동안에 그러한 샘플을 변환하도록 지시할 수 있다. 하나의 그러한 변환은 사용자의 입의 검출된 열림 및 닫음에 부합하도록 멍의 레벨 및/또는 지속기간을 변경하는 것이다.
예로서, 기록 세션(202)은 사용자(208)가 기록 어포던스를 다시 선택하거나(예를 들어, 기록을 종료하고자 하는 요구를 나타냄), 종료 기록 어포던스를 선택할 때(예를 들어, 기록 어포던스는 기록 중에 종료 기록 어포던스로서 작용할 수 있음), 또는 기간(예를 들어, 20초, 30초 등)의 만료에 적어도 부분적으로 기초하여 종료될 수 있다. 기록이 종료되면, 사용자(208)는 사용자(208)가 기록물의 미리보기를 보기를 원하는 것을 나타내는 미리보기 어포던스를 선택할 수 있다. 하나의 옵션은 임의의 시각적 또는 오디오 효과들 없이 원래의 기록을 재생하는 것일 수 있다. 그러나, 다른 옵션은 기록물의 개정된 버전을 재생하는 것일 수 있다. 얼굴 표정(예를 들어, 열린 입)의 검출에 적어도 부분적으로 기초하여, 아바타 프로세스는 비디오 클립의 오디오 및/또는 비디오를 개정했을 수 있다.
블록(216)에서, 디바이스(206)는 디바이스(206)의 화면 상에 아바타(인형 및/또는 애니모지로도 불림)(218)를 제시할 수 있다. 디바이스(206)는 또한 비디오 클립과 연관된 오디오를 재생할 수 있는 스피커(220)로 구성될 수 있다. 이러한 예에서, 블록(216)은 블록(210)과 동일한 시점에 대응하며 사용자(208)는 아직 말하지 않았을 수 있다. 이와 같이, 아바타(218)는 그의 입을 열은 상태로 제시될 수 있지만, 오디오는 스피커(220)로부터 아직 제시되지 않는다. 사용자(208)가 "안녕하세요"라고 말한 블록(212)에 대응하는 블록(222)에서, 아바타 프로세스는 아바타-특정 음성과 함께 아바타(218)를 제시할 수 있다(상술한 바와 같음).
블록(224)에서, 아바타 프로세스는 블록(214)에서 식별된 침묵을 아바타-특정 단어로 대체할 수 있다. 이러한 예에서, 개 짖는 소리(예를 들어, 기록되거나 모사된 개 짖는 소리)의 사운드가 (예를 들어, 침묵 대신에) 오디오 데이터 내로 삽입될 수 있어서, 비디오 클립의 제시 동안 재생될 때, "멍"이 스피커(220)에 의해 제시될 수 있다. 일부 예들에서, 224에서, 상이한 아바타-특정 단어들이 상이한 아바타 선택들에 적어도 부분적으로 기초하여 제시될 것이고, 다른 예들에서, 동일한 아바타-특정 단어가 아바타 선택들에 관계없이 제시될 수 있다. 예를 들어, 사용자(208)가 그의 입을 열은 상태로 유지한 경우, 개 아바타가 선택될 때 "멍"이 제시될 수 있고, 고양이 아바타에 대해 "야옹" 사운드가 제시되는 등일 수 있다. 일부 경우들에서, 각각의 아바타는, 사용자(208)가 말하지 않고 소정량의 시간(예를 들어, 0.5초, 1초 등)동안 그의 입을 열은 상태로 유지한 것이 검출될 때 재생될 미리 정의된 사운드를 가질 수 있다. 그러나, 일부 예들에서, 프로세스는 그러한 얼굴 특징부에 대해 미리 정의된 효과를 갖지 않는 아바타들에 대해 열린 입의 검출을 무시할 수 있다. 추가적으로, 214에서의 추출 후에도 수행되는 오디오 특징부 분석의 제2 레벨이 있을 수 있다. 예를 들어, 프로세스가 (예를 들어, 열린 입의 검출에 기초하여) "멍"이 개 아바타에 대해 삽입되어야 한다고 결정하는 경우, 프로세스는 또한 (예를 들어, 사용자가 "짖기"를 나타내는 데 사용되는 시간의 2배로 입을 열은 상태로 유지하고 있는 경우) 얼마나 많은 "멍" 사운드들이 삽입될 것인지를 검출할 수 있거나, 또는 (예를 들어, 도 1의 시나리오에서, 사용자가 "짖기"라고 말하여 "멍" 사운드가 삽입되어야 함을 나타내는 경우) 요청된 "짖기"의 수만큼 삽입하는 것이 가능하지 않은지 여부를 검출할 수 있다. 따라서, 위의 두 가지 예들에 기초하여, 사용자(208)가 그들의 얼굴 표정 및 음성 표현으로 재생(예를 들어, 기록된 아바타 메시지)의 효과들을 제어할 수 있다는 것이 명백할 것이다. 또한, 도 1 또는 도 2에 명시적으로 도시되지 않았지만, 사용자 디바이스는 아바타 프로세스(예를 들어, A/V 정보를 캡처하고, 특징부들을 추출하고, 데이터를 분석하고, 로직을 구현하고, 오디오 및/또는 비디오 파일들을 개정하고, 미리보기들을 렌더링하는 것)를 실행하기 위한 소프트웨어뿐만 아니라, 사용자가 아바타 메시지들을 구축하고, 후속적으로 이들을 다른 사용자 디바이스들로 전송할 수 있게 하는 애플리케이션(예를 들어, 그 자신의 UI를 갖는 아바타 애플리케이션)을 실행하기 위한 소프트웨어로 구성될 수 있다.
도 3은 상기 및 하기에 설명된 아바타 프로세스에 의해 활용되는 컴포넌트들(예를 들어, 소프트웨어 모듈들)을 예시하는 단순화된 블록도(300)이다. 일부 예들에서, 사용자의 기록물에서 검출된 오디오 및/또는 비디오 특징부들에 적어도 부분적으로 기초하여 오디오 및/또는 비디오 효과들의 제공을 구현하기 위해 더 많거나 더 적은 모듈들이 활용될 수 있다. 일부 예들에서, 디바이스(302)는 카메라(304), 마이크로폰(306), 및 UI 및 아바타 미리보기들(예를 들어, 기록 전의 초기 미리보기뿐만 아니라 전송 전의 기록물의 미리보기)을 제시하기 위한 디스플레이 화면으로 구성될 수 있다. 일부 예들에서, 아바타 프로세스는 아바타 엔진(308) 및 음성 엔진(310)으로 구성된다. 아바타 엔진(308)은 아바타들의 목록을 관리하고, 비디오 특징부들(예를 들어, 얼굴 특징부 특성들)을 프로세싱하고, 비디오 정보를 개정하고, 적절할 때 음성 엔진(301)과 통신하고, 모든 프로세싱이 완료되고 효과들이 구현되었을 때(또는 폐기되었을 때) 아바타(312)의 비디오를 렌더링할 수 있다. 비디오 정보의 개정은 비디오 파일과 연관된 메타데이터를 조정하거나 달리 편집하는 것을 포함할 수 있다. 이러한 방식으로, 비디오 메타데이터(조정되거나 조정되지 않음)가 인형들을 렌더링하는 데 사용될 때, 얼굴 특징부들은 인형에 맵핑될 수 있다. 일부 예들에서, 음성 엔진(310)은 오디오 정보를 저장할 수 있고, 어떤 효과들을 구현할지를 결정하기 위한 로직을 수행하고, 오디오 정보를 개정하고, 모든 프로세싱이 완료되고 효과들이 구현되었을 때(또는 폐기되었을 때) 개정된 오디오(314)를 제공할 수 있다.
일부 예들에서, 사용자가 새로운 아바타 비디오 클립을 기록하도록 선택하면, 비디오 특징부들(316)은 카메라(304)에 의해 캡처될 수 있고, 오디오 특징부들(318)은 마이크로폰(306)에 의해 캡처될 수 있다. 일부 경우들에서, 비디오 특징부들(316) 내에서 50개(또는 그 초과)까지의 얼굴 특징부들이 검출될 수 있다. 예시적인 비디오 특징부들은, 표정들의 지속기간, 열린 입, 찡그림, 웃음, 눈썹 올림 또는 눈살 찌푸림 등을 포함하지만, 이들로 제한되는 것은 아니다. 추가적으로, 비디오 특징부들(316)은 얼굴 특징부들(예를 들어, 사용자의 얼굴 상의 어느 위치들이 움직였는지 또는 어떤 위치의 어디인지를 나타내는 데이터 포인트들) 각각을 식별하는 메타데이터만을 포함할 수 있다. 또한, 비디오 특징부들(316)은 아바타 엔진(308) 및 음성 엔진(310)으로 전달될 수 있다. 아바타 엔진(308)에서, 비디오 특징부들(316)과 연관된 메타데이터는 저장 및 분석될 수 있다. 일부 예들에서, 아바타 엔진(308)은 메타데이터를 저장하기 전에 비디오 파일로부터의 특징부 추출을 수행할 수 있다. 그러나, 다른 예들에서, 특징부 추출은 비디오 특징부들(316)이 아바타 엔진으로 전송되기 전에 수행될 수 있다(이러한 경우에, 비디오 특징부들(316)은 메타데이터 자체일 것이다). 음성 엔진(310)에서, 비디오 특징부들(316)은 (예를 들어, 소정 오디오 및 비디오 특징부들이 동시에 발생하는지를 보기 위해) 어떤 오디오 특징부들이 어떤 비디오 특징부들에 대응하는지를 매칭하는 것이 도움이 될 때 오디오 특징부들(318)과 비교될 수 있다.
일부 경우들에서, 오디오 특징부들은 또한 저장을 위해 음성 엔진(310)에 전달된다. 예시적인 오디오 특징부들은 레벨, 음조, 다이내믹스(예를 들어, 레벨, 음조, 음성, 형식들, 지속시간 등의 변화들)를 포함하지만, 이에 제한되지 않는다. 원시 오디오(320)는 그것이 캡처된 때의 프로세싱되지 않은 오디오 파일을 포함한다. 원시 오디오(320)는 추가 프로세싱 및 잠재적인(예를 들어, 궁극적인) 개정을 위해 음성 엔진(310)에 전달될 수 있고, 그것은 또한, 원하는 경우 원래의 오디오가 사용될 수 있도록 개별적으로 저장될 수 있다. 원시 오디오(320)는 또한 음성 인식 모듈(322)로 전달될 수 있다. 음성 인식 모듈(322)은 단어를 인식(spot)하고 사용자의 음성으로부터 그들의 의도를 식별하는 데 사용될 수 있다. 예를 들어, 음성 인식 모듈(322)은 사용자가 화를 내거나 슬프거나 행복할 때 등을 결정할 수 있다. 추가적으로, 사용자가 핵심 단어(예를 들어, 전술된 바와 같은 "짖기")를 말하는 경우, 음성 인식 모듈(322)은 이를 검출할 것이다. 이어서, 음성 인식 모듈(322)에 의해 검출 및/또는 수집된 정보는 추가적인 로직 및/또는 프로세싱을 위해 음성 엔진(310)으로 전달될 수 있다. 언급된 바와 같이, 일부 예들에서, 오디오 특징부들은 미리보기 자체 동안 실시간으로 추출된다. 이들 오디오 특징부들은 아바타 특정이며, 연관 아바타가 미리보기되고 있는 경우에만 생성될 수 있다. 오디오 특징부들은 아바타 애그노스틱이며, 모든 아바타들에 대해 생성될 수 있다. 오디오 신호는 또한, 이들 실시간 오디오 특징부 추출들에 부분적으로 기초하여, 그리고 기록 프로세스 동안 또는 그 후에, 그러나 미리보기 전에 생성된 미리 저장된 추출된 비디오 특징부들을 이용하여 조정될 수 있다. 추가적으로, 일부 특징부 추출은 336에서 렌더링 동안 음성 엔진(310)에 의해 수행될 수 있다. 일부 미리 저장된 사운드들(338)은 빈칸들을 채우거나 추출된 다른 사운드들을 대체하기 위해 음성 엔진(310)에 의해 적절하게 사용될 수 있다.
일부 예들에서, 음성 엔진(310)은 음성 인식 모듈(322)로부터 추출된 정보를 어떻게 처리해야 할지에 관한 결정을 내릴 것이다. 일부 예들에서, 음성 엔진(310)은 어느 특징부들이 음성 인식 모듈(322)에 의해 추출된 데이터에 대응하는지를 결정하기 위해 음성 인식 모듈(322)로부터 특징부 모듈(324)로 정보를 전달할 수 있다. 예를 들어, 특징부 모듈(324)은 음성 인식 모듈(322)에 의해 검출된 슬픈 음성이 음성의 음조의 상승 또는 음성의 속도 또는 카덴스(cadence)의 감속에 대응함을 (예를 들어, 규칙들의 세트 및/또는 로직에 기초하여) 나타낼 수 있다. 다시 말하면, 특징부 모듈(324)은 추출된 오디오 특징부들을 특정 음성 특징부들에 맵핑할 수 있다. 이어서, 효과 유형 모듈(326)은 특정 음성 특징부들을 원하는 효과로 맵핑할 수 있다. 음성 엔진(310)은 또한 각각의 가능한 아바타에 대한 각각의 특정 음성을 저장하는 것을 담당할 수 있다. 예를 들어, 각각의 아바타에 대한 표준 또는 하드코딩된(hardcoded) 음성들이 있을 수 있다. 임의의 다른 변경들이 이루어지지 않고, 사용자가 특정 아바타를 선택하는 경우, 음성 엔진(310)은 재생과 함께 사용하기 위한 적절한 표준 음성을 선택할 수 있다. 이러한 경우에, 수정된 오디오(314)는 단지 선택된 아바타에 기초하여 적절한 아바타 음성으로 변환된 원시 오디오(320)일 수 있다. 사용자가 아바타들을 통해 스크롤하고 상이한 것들을 선택함에 따라, 음성 엔진(310)은 새롭게 선택된 아바타처럼 들리게 하도록 즉석에서(on the fly) 원시 오디오(320)를 수정할 수 있다. 따라서, 이러한 변경을 행하기 위해 아바타 유형(328)이 음성 엔진(310)에 제공될 필요가 있다. 그러나, 효과가 제공되어야 하는 경우(예를 들어, 음조, 톤, 또는 실제 단어들이 오디오 파일 내에서 변경되어야 함), 음성 엔진(310)은 원시 오디오 파일(320)을 개정하고 수정된 오디오(314)를 제공할 수 있다. 일부 예들에서, 사용자는 온/오프(on/off)(330)에서 원래의 오디오 파일을 사용하는 옵션을 제공받을 것이다. 사용자가 "오프"(예를 들어, 효과 오프)를 선택하는 경우, 원시 오디오(320)는 아바타(312)의 비디오(예를 들어, 변경되지 않은 비디오에 대응함)와 조합되어 A/V 출력(332)을 생성할 수 있다. A/V 출력(332)은 디바이스(302)의 UI 상에 제시된 아바타 애플리케이션에 제공될 수 있다.
아바타 엔진(308)은 아바타 유형(328)의 선택에 적어도 부분적으로 기초하여 초기 아바타 이미지를 제공하는 것을 담당할 수 있다. 추가적으로, 아바타 엔진(308)은 비디오 특징부들(316)을 각각의 아바타의 적절한 얼굴 마커들에 맵핑하는 것을 담당한다. 예를 들어, 비디오 특징부들(316)이 사용자가 웃고 있음을 나타내는 경우, 웃음을 나타내는 메타데이터는 아바타가 아바타(312)의 비디오에서 웃는 것처럼 보이도록 선택된 아바타의 입 영역에 맵핑될 수 있다. 추가적으로, 아바타 엔진(308)은 적절히 음성 엔진으로부터 타이밍 변경들(334)을 수신할 수 있다. 예를 들어, 음성 엔진(310)이 음성 효과가 (예를 들어, 특징부 모듈(324) 및/또는 효과 유형(326) 및 또는 아바타 유형에 기초하여) 오디오를 다소 속삭이는 음성으로 만드는 것으로 결정하고, 음성을 속삭이는 음성으로 수정하는 경우, 이러한 효과 변경은 감소된 레벨 및 기타 형식 및 음조 변경들에 더하여 음성 자체의 속도 저하를 포함할 수 있다. 따라서, 음성 엔진은 오디오 클립을 위한 원래의 오디오 파일에 비해 재생 속도가 더 느린 수정된 오디오를 생성할 수 있다. 이러한 시나리오에서, 음성 엔진(310)은 타이밍 변경들(334)을 통해 아바타 엔진(308)에 지시하여 비디오 파일이 적절히 감속될 수 있도록 할 필요가 있을 것이며, 그렇지 않으면, 비디오 및 오디오는 동기화되지 않을 것이다.
언급된 바와 같이, 사용자는 상이한 아바타들을 선택하기 위해 디바이스(302)의 아바타 애플리케이션을 사용할 수 있다. 일부 예들에서, 음성 효과는 이러한 선택에 적어도 부분적으로 기초하여 변경될 수 있다. 그러나, 다른 예들에서, 사용자는 주어진 아바타에 대한 상이한 음성(예를 들어, 개 아바타에 대한 고양이 음성 등)을 선택할 기회가 주어질 수 있다. 이러한 유형의 자유 형태의 음성 효과 변경은 UI 상에서의 선택을 통해, 또는 일부 경우들에서 음성 활성화 또는 얼굴 움직임에 의해 사용자에 의해 실행될 수 있다. 예를 들어, 소정 얼굴 표정이 음성 엔진(310)을 트리거하여 주어진 아바타에 대한 음성 효과를 변경할 수 있다. 또한, 일부 예들에서, 음성 엔진(310)은 어린이의 음성들을 더 높은 음조로 들리게 만들도록 구성될 수 있거나, 또는 대안적으로, 어린이의 음성에 대한 원시 오디오(320)가 이미 높은 음조일 수 있다는 것을 고려하면 부적절하게 들릴 수 있기 때문에 어린이의 음성을 더 높은 음조로 만들지 않도록 결정하도록 구성될 수 있다. 효과에 대해 이러한 사용자 특정 결정을 내리는 것은 추출된 오디오 특징부들에 의해 부분적으로 구동될 수 있고, 이러한 경우에 그러한 특징부들은 기록물 전체에 걸쳐 음조 값들 및 범위들을 포함할 수 있다.
일부 예들에서, 음성 인식 모듈(322)은 인식 엔진, 단어 인식기, 음조 분석기, 및/또는 형식 분석기를 포함할 수 있다. 음성 인식 모듈(322)에 의해 수행되는 분석은 사용자가 속상해 하거나, 화가 났거나, 행복한지 등을 식별할 수 있을 것이다. 추가적으로, 음성 인식 모듈(322)은 사용자의 음성의 컨텍스트 및/또는 억양을 식별할 수 있을 뿐만 아니라, 글귀(wording)의 의도를 변경하고/하거나 사용자의 프로파일(예를 들어, 가상 신원)을 결정할 수 있다.
일부 예들에서, 아바타 프로세스(300)는 아바타(312)의 비디오와 수정된 오디오(314) 또는 원시 오디오(320)를 A/V 출력(332)으로 조합함으로써 비디오 클립을 패키징/렌더링하도록 구성될 수 있다. 이 둘을 패키징하기 위해, 음성 엔진(310)은 단지 아바타(312)의 비디오와 연관된 메타데이터에 대한 ID를 알 필요가 있다(예를 들어, 실제로 아바타 (312)의 비디오를 필요로 하지 않고, 단지 메타데이터의 ID를 필요로 함). 메시징 애플리케이션(예를 들어, 아바타 애플리케이션) 내의 메시지는 다른 컴퓨팅 디바이스들로 송신될 수 있으며, 메시지는 A/V 출력(332)을 포함한다. 사용자가 UI에서 "전송" 어포던스를 선택하는 경우, 미리보기될 최근 비디오 클립이 전송될 수 있다. 예를 들어, 사용자가 개 아바타로 자신의 비디오 클립을 미리보기하고, 이어서 미리보기를 위해 고양이 아바타로 전환하면, 사용자가 "전송"을 선택할 때 고양이 아바타 비디오가 전송될 것이다. 추가적으로, 최근 미리보기의 상태가 저장되고 나중에 사용될 수 있다. 예를 들어, 전송된 최근 메시지(예를 들어, 아바타 비디오 클립)가 특정 효과를 사용했다면, 생성되는 다음 메시지의 제1 미리보기는 그 특정 효과를 활용할 수 있다.
음성 엔진(310) 및/또는 아바타 엔진(308)에 의해 구현되는 로직은 소정 큐들 및/또는 특징부들을 확인하고, 이어서 오디오 및/또는 비디오 파일들을 개정하여 원하는 효과를 구현할 수 있다. 일부 예시적인 특징부/효과 쌍들은 사용자가 그의 입을 열고 잠시 멈췄음을 검출하는 것을 포함한다. 이러한 예에서, 원하는 효과가 구현되도록 하기 위해 얼굴 특징부 특성들(예를 들어, 입 열림) 및 오디오 특징부 특성들(예를 들어, 침묵) 둘 모두가 동시에 일어날 필요가 있다. 이러한 특징부/효과 쌍에 대해, 원하는 효과는 아바타가 아바타/동물-특정 사운드를 내는 것처럼 보이도록 오디오 및 비디오를 개정한다. 예를 들어, 개는 짖기 사운드를 내고, 고양이는 야옹 사운드를 내고, 원숭이, 말, 유니콘 등은 그 캐릭터/동물에 적합한 사운드를 낼 것이다. 다른 예시적인 특징부/효과 쌍들은 찡그림이 검출될 때 오디오 음조 및/또는 톤을 낮추는 것을 포함한다. 이러한 예에서, 단지 비디오 특징부 특성들만이 검출될 필요가 있다. 그러나, 일부 예들에서, 이러한 효과는 사용자의 음성의 슬픔을 검출하는 음성 인식 모듈(322)에 적어도 부분적으로 기초하여 구현될 수 있다. 이러한 경우에, 비디오 특징부들(316)은 전혀 필요하지 않을 것이다. 다른 예시적인 특징부/효과 쌍들은 오디오 및 비디오 속도를 늦추고, 톤을 낮추고/낮추거나 변화들을 감소시키기 위해 속삼이는 것을 포함한다. 일부 경우들에서, 비디오 변경들은 오디오의 수정들로 이어질 수 있는 한편, 다른 경우에, 오디오 변경들은 비디오의 수정들로 이어질 수 있다.
위에 언급된 바와 같이, 일부 예들에서, 아바타 엔진(308)은 특징부 추출기로서 작용할 수 있는데, 이러한 경우에 비디오 특징부들(316) 및 오디오 특징부들(318)은 아바타 엔진(308)으로 전송되기 전에 존재하지 않을 수 있다. 대신에, 원시 오디오(320) 및 원시 비디오와 연관된 메타데이터가 아바타 엔진(308)으로 전달될 수 있으며, 아바타 엔진(308)은 오디오 특징부 특성들 및 비디오(예를 들어, 얼굴) 특징부 특성들을 추출할 수 있다. 다시 말하면, 도 3에서 이러한 방식으로 도시되지 않았지만, 아바타 엔진(308)의 부분들이 실제로 카메라(304) 내에 존재할 수 있다. 추가적으로, 일부 예들에서, 비디오 특징부들(316)과 연관된 메타데이터는 보안 컨테이너 내에 저장될 수 있고, 음성 엔진(310)이 실행 중일 때, 그것은 컨테이너로부터 메타데이터를 판독할 수 있다.
일부 경우들에서, 아바타의 미리보기 비디오 클립은 실시간으로 디스플레이되지 않기 때문에(예를 들어, 비디오가 기록된 후에, 그리고 때때로 단지 재생 어포던스의 선택에 응답하여서만 렌더링되고 디스플레이됨), 오디오 및 비디오 정보는 오프라인으로(예를 들어, 실시간이 아님) 프로세싱될 수 있다. 이와 같이, 아바타 엔진(308) 및 음성 엔진(310)은 오디오 및 비디오 정보를 미리 판독할 수 있고, 앞서서 컨텍스트 결정들을 내릴 수 있다. 이어서, 음성 엔진(310)은 그에 따라 오디오 파일을 개정할 수 있다. 미리 판독하고 오프라인에서 결정들을 내릴 수 있는 이러한 능력은 특히 더 긴 기록물들의 경우 시스템의 효율을 크게 증가시킬 것이다. 추가적으로, 이는 추가적인 로직이 프로세싱될 수 있는 제2 분석 단계를 가능하게 한다. 따라서, 전체 오디오 파일은 임의의 최종 결정들을 내리기 전에 분석될 수 있다. 예를 들어, 사용자가 연이어 2회 "짖기"라고 말하되, 단어들 "짖기"를 너무 밀접하게 함께 말한 경우, 미리 기록된 실제 "멍" 사운드가 사용자가 "짖기, 짖기"라고 말하는 데 걸린 시간에 맞춰지는 것이 가능하지 않을 수 있다. 이러한 경우에, 음성 엔진(310)은 음성 인식(322)으로부터 정보를 취하고, 두번째 "짖기"를 무시하는 것으로 결정할 수 있는데, 왜냐하면 오디오 파일에 "멍" 사운드들 둘 모두를 포함하는 것이 가능하지 않을 것이기 때문이다.
위에 언급된 바와 같이, 오디오 파일과 비디오가 함께 A/V 출력(332)을 하기 위해 패키징될 때, 음성 엔진은 아바타(312)의 비디오에 실제로 액세스할 필요가 없다. 대신에, 비디오 파일(예를 들어,.mov 형식 파일 등)은 메타데이터 파일에 기록된 특징부들(예를 들어, 부동 소수점 값들)의 어레이에 액세스함으로써 비디오가 재생되고 있을 때 생성된다. 그러나, 오디오 및 비디오 파일들에 대한 모든 순열들/조정들은 사전에 수행될 수 있고, 심지어 일부는 오디오 및 비디오가 추출될 때 실시간으로 행해질 수 있다. 추가적으로, 일부 예들에서, 각각의 수정된 비디오 클립은 일시적으로 저장될 수 있어서(예를 들어, 캐싱됨), 사용자가 이미 미리보기되었던 아바타를 재선택하는 경우, 그러한 특정 미리보기를 생성/렌더링하기 위한 프로세싱이 중복될 필요가 없다. 미리보기 섹션 동안 동일한 아바타가 선택될 때마다 개정된 비디오 클립을 재렌더링하는 것과는 반대로, 앞서 언급된 렌더링된 비디오 클립들의 캐싱은, 특히 더 긴 기록물들 및/또는 많은 수의 효과들을 갖는 기록물들에 대해, 프로세서 전력 및 초당 명령 수(instructions per second, IPS)에 있어서 큰 절감의 실현을 가능하게 할 것이다.
추가적으로, 일부 예들에서, 예를 들어, 사용자가 바람이 부는 지역 또는 시끄러운 방(예를 들어, 식당 또는 바)에 있을 때, 마이크로폰(306)에 의해 캡처된 사운드가 사용자의 음성 이외의 사운드들을 포함하는 경우를 처리하기 위해 잡음 억제 알고리즘들이 채용될 수 있다. 이러한 예들에서, 잡음 억제 알고리즘은 오디오 기록물의 소정 부분들의 데시벨 출력을 낮출 수 있다. 대안적으로 또는 추가적으로, 상이한 음성들이 분리될 수 있고/있거나 다만 소정 시야각들(예를 들어, 사용자의 얼굴의 각도)로부터 나오는 오디오만이 수집될 수 있고, 다른 음성들은 무시되거나 억제될 수 있다. 다른 경우들에서, 아바타 프로세스(300)가 잡음 레벨들이 너무 크거나 프로세싱하기 어려울 것이라고 결정하는 경우, 프로세스(300)는 기록 옵션을 디스에이블시킬 수 있다.
도 4는 적어도 몇몇 실시예들에 따른, 오디오 및/또는 비디오 특징부들에 적어도 부분적으로 기초하여 다양한 오디오 및/또는 비디오 효과들을 구현하기 위한 프로세스(400)를 도시하는 예시적인 흐름도를 예시한다. 일부 예들에서, 도 1의 컴퓨팅 디바이스(106) 또는 (예를 들어, 적어도 도 3의 아바타 프로세스(300)를 활용하는) 다른 유사한 사용자 디바이스는 도 4의 프로세스(400)를 수행할 수 있다.
블록(402)에서, 컴퓨팅 디바이스(106)는 오디오 성분을 갖는 비디오를 캡처할 수 있다. 일부 예들에서, 비디오 및 오디오는 두 개의 상이한 하드웨어 컴포넌트들에 의해 캡처될 수 있다(예를 들어, 카메라는 비디오 정보를 캡처할 수 있는 한편, 마이크로폰은 오디오 정보를 캡처할 수 있음). 그러나, 일부 경우들에서, 단일 하드웨어 컴포넌트는 오디오 및 비디오 둘 모두를 캡처하도록 구성될 수 있다. 임의의 이벤트에서, 비디오 및 오디오 정보는 (예를 들어, ID, 타임스탬프 등을 공유함으로써) 서로 연관될 수 있다. 이와 같이, 비디오가 오디오 성분을 가질 수 있거나(예를 들어, 이들이 동일한 파일의 일부임), 또는 비디오가 오디오 성분과 링크될 수 있다(예를 들어, 함께 연관된 두 개의 파일들임).
블록(404)에서, 컴퓨팅 디바이스(106)는 캡처된 비디오 및 오디오 정보로부터 각각 얼굴 특징부들 및 오디오 특징부들을 추출할 수 있다. 일부 경우들에서, 얼굴 특징부 정보는 아바타 엔진(308)을 통해 추출되고 메타데이터로서 저장될 수 있다. 메타데이터는 각각의 얼굴 특징부를 특정 인형에 또는 임의의 애니메이션 또는 가상 얼굴에 맵핑하는 데 사용될 수 있다. 따라서, 실제 비디오 파일이 저장될 필요가 없으므로 메모리 저장 효율 및 상당한 절감을 얻을 수 있다. 오디오 특징부 추출에 관하여, 음성 인식 알고리즘이 상이한 음성 특징부들, 예를 들어, 단어들, 문구들, 음조, 속도 등을 추출하는 데 활용될 수 있다.
블록(406)에서, 컴퓨팅 디바이스(106)는 추출된 특징부들로부터 컨텍스트를 검출할 수 있다. 예를 들어, 컨텍스트는 사용자의 의도, 기분, 설정, 위치, 배경 아이템들, 아이디어들 등을 포함할 수 있다. 컨텍스트는 어떤 효과들을 적용할지 결정하기 위해 로직을 채용할 때 중요할 수 있다. 일부 경우들에서, 컨텍스트는 검출된 음성 단어들과 조합되어, 오디오 파일 및/또는 비디오 파일의 조정 여부 및/또는 조정 방법을 결정할 수 있다. 하나의 예에서, 사용자는 그의 눈썹을 찌푸리고 느리게 말할 수 있다. 눈썹의 찌푸림은 블록(404)에서 추출되었을 수 있는 비디오 특징부이고, 느린 스피치는 블록(404)에서 추출되었을 수 있는 오디오 특징부이다. 개별적으로, 이들 두 개의 특징부들은 상이한 것을 의미할 수 있지만, 함께 조합될 때, 아바타 프로세스는 사용자가 무언가에 대해 걱정하고 있다고 결정할 수 있다. 이러한 경우에, 메시지의 컨텍스트는 부모가 어린이에게 말하고 있거나, 또는 친구가 심각하거나 또는 걱정되는 문제에 대해 다른 친구에게 말하고 있는 것일 수 있다.
블록(408)에서, 컴퓨팅 디바이스(106)는 컨텍스트에 적어도 부분적으로 기초하여 오디오 및/또는 비디오 파일들을 렌더링하기 위한 효과들을 결정할 수 있다. 위에 언급된 바와 같이, 하나의 컨텍스트는 걱정일 수 있다. 이와 같이, 특정 비디오 및/또는 오디오 특징부가 이러한 효과를 위해 채용될 수 있다. 예를 들어, 음성 파일은 더욱 우울하게, 또는 감속되게 들리도록 조정될 수 있다. 다른 예들에서, 메시지의 심각성을 전달하기 위해 아바타-특정 음성은 원래의(예를 들어, 원시) 오디오의 버전으로 대체될 수 있다. 다양한 다른 효과들이 다양한 다른 컨텍스트들에 대해 채용될 수 있다. 다른 예들에서, 컨텍스트는 (예를 들어, 사용자가 "짖기" 또는 "야옹" 등을 말하는 것에 기초하여 동물 소리들일 수 있다. 이러한 경우에, 결정된 효과는 음성 단어 "짖기"를 개가 짖는 사운드로 대체하는 것일 것이다.
블록(410)에서, 컴퓨팅 디바이스(106)는 추가적인 효과들을 위한 추가적인 로직을 수행할 수 있다. 예를 들어, 사용자가 짖기를 연이어 2회 말함으로써 짖기 효과를 달성하려고 시도한 경우, 추가적인 짖기가 기술적으로 실현가능한지 여부를 결정하기 위해 추가적인 로직이 활용될 필요가 있을 수 있다. 일례로서, 원시 오디오 정보 내의 음성 단어를 대체하는 데 사용되는 짖기의 오디오 클립이 0.5초 길이이지만, 사용자가 0.7초 기간 동안 "짖기"라고 2회 말하는 경우, 추가적인 로직은 두 개의 짖기 사운드들은 이용가능한 0.7초 내에 맞춰질 수 없음을 결정할 수 있다. 따라서, 오디오 및 비디오 파일이 두 개의 짖기 사운드들에 맞도록 확장될 필요가 있을 수 있거나, 짖기 사운드가 (예를 들어, 저장된 짖기 사운드를 프로세싱함으로써) 단축될 필요가 있을 수 있거나, 또는 제2 음성 단어 짖기가 무시될 필요가 있을 수 있다.
블록(412)에서, 컴퓨팅 디바이스(106)는 결정된 효과들 및/또는 추가적인 효과들에 적어도 부분적으로 기초하여 오디오 및/또는 비디오 정보를 개정할 수 있다. 일부 예들에서, 단지 효과들의 한 세트만이 사용될 수 있다. 그러나, 어느 경우든, 원시 오디오 파일은 추가 사운드들이 추가되고/되거나 제거되면서 새로운 오디오 파일을 형성하도록 조정(예를 들어, 개정)될 수 있다. 예를 들어, "짖기"를 사용하는 경우에, 음성 단어 "짖기"는 오디오 파일로부터 제거될 것이고, 실제 개 짖는 소리를 표현하는 새로운 사운드가 삽입될 것이다. 새로운 파일은 상이한 ID로, 또는 첨부된 ID(그것이 원래의 것이 아니라는 것을 나타내기 위해.v2 식별자를 갖는 원시 오디오 ID)로 저장할 수 있다. 추가적으로, 원시 오디오 파일은 추가적인 아바타들에 대해 재사용될 수 있도록 그리고/또는 사용자가 결정된 효과들을 사용하지 않기로 결정할 경우 별도로 저장될 것이다.
블록(414)에서, 컴퓨팅 디바이스(106)는 사용자로부터 아바타의 선택을 수신할 수 있다. 사용자는 컴퓨팅 디바이스(106)에 의해 실행되고 있는 아바타 애플리케이션의 UI를 통해 복수의 상이한 아바타들 중 하나를 선택할 수 있다. 아바타들은 스크롤 휠, 드롭 다운 메뉴, 또는 아이콘 메뉴를 통해 선택될 수 있다(예를 들어, 여기서 각각의 아바타는 그 자신의 위치에서 화면 상에서 볼 수 있음).
블록(416)에서, 컴퓨팅 디바이스(106)는 선택된 아바타에 적어도 부분적으로 기초하여 개정된 오디오와 함께 개정된 비디오를 제시할 수 있다. 이러한 예에서, 각각의 조정된 비디오 클립(예를 들어, 오디오를 조정하고/하거나 비디오를 조정한 아바타에 대한 최종 클립)은 사용자에 의한 아바타의 선택 이전에 각각 각자의 아바타에 대해 생성될 수 있다. 이러한 방식으로, 프로세싱은 이미 완료되었고, 조정된 비디오 클립은 아바타의 선택 즉시 제시될 준비가 된다. 이는 아바타 선택 이전에 추가적인 IPS를 요구할 수 있지만, 이는 제시를 가속화할 것이다. 추가적으로, 각각의 조정된 비디오 클립의 프로세싱은 사용자가 제1 미리보기(예를 들어, UI에 제시된 제1/디폴트 아바타에 대응하는 미리보기)를 검토하고 있는 동안 수행될 수 있다.
도 5는 적어도 몇몇 실시예들에 따른, 오디오 및/또는 비디오 특징부들에 적어도 부분적으로 기초하여 다양한 오디오 및/또는 비디오 효과들을 구현하기 위한 프로세스(500)를 도시하는 예시적인 흐름도를 예시한다. 일부 예들에서, 도 1의 컴퓨팅 디바이스(106) 또는 (예를 들어, 적어도 도 3의 아바타 프로세스(300)를 활용하는) 다른 유사한 사용자 디바이스는 도 5의 프로세스(500)를 수행할 수 있다.
블록(502)에서, 컴퓨팅 디바이스(106)는 오디오 성분을 갖는 비디오를 캡처할 수 있다. 도 4의 블록(402)에서와 같이, 비디오 및 오디오는 두 개의 상이한 하드웨어 컴포넌트들에 의해 캡처될 수 있다(예를 들어, 카메라는 비디오 정보를 캡처할 수 있는 한편, 마이크로폰은 오디오 정보를 캡처할 수 있음). 언급된 바와 같이, 비디오가 오디오 성분을 가질 수 있거나(예를 들어, 이들이 동일한 파일의 일부임), 또는 비디오가 오디오 성분과 링크될 수 있다(예를 들어, 함께 연관된 두 개의 파일들임).
블록(504)에서, 컴퓨팅 디바이스(106)는 캡처된 비디오 및 오디오 정보로부터 각각 얼굴 특징부들 및 오디오 특징부들을 추출할 수 있다. 상기와 같이, 얼굴 특징부 정보는 아바타 엔진(308)을 통해 추출되고 메타데이터로서 저장될 수 있다. 메타데이터는 각각의 얼굴 특징부를 특정 인형에 또는 임의의 애니메이션 또는 가상 얼굴에 맵핑하는 데 사용될 수 있다. 따라서, 실제 비디오 파일이 저장될 필요가 없으므로 메모리 저장 효율 및 상당한 절감을 얻을 수 있다. 오디오 특징부 추출에 관하여, 음성 인식 알고리즘이 상이한 음성 특징부들, 예를 들어, 단어들, 문구들, 음조, 속도 등을 추출하는 데 활용될 수 있다. 추가적으로, 일부 예들에서, 아바타 엔진(308) 및/또는 음성 엔진(310)은 오디오 특징부 추출을 수행할 수 있다.
블록(506)에서, 컴퓨팅 디바이스(106)는 추출된 특징부들로부터 컨텍스트를 검출할 수 있다. 예를 들어, 컨텍스트는 사용자의 의도, 기분, 설정, 위치, 아이디어들, 신원 등을 포함할 수 있다. 컨텍스트는 어떤 효과들을 적용할지 결정하기 위해 로직을 채용할 때 중요할 수 있다. 일부 경우들에서, 컨텍스트는 음성 단어들과 조합되어, 오디오 파일 및/또는 비디오 파일의 조정 여부 및/또는 조정 방법을 결정할 수 있다. 하나의 예에서, 사용자의 연령은 얼굴 및/또는 음성 특징부들에 적어도 부분적으로 기초하여 컨텍스트(예를 들어, 어린이, 성인 등)로서 검출될 수 있다. 예를 들어, 어린이의 얼굴은 식별될 수 있는 특정 특징부들(예를 들어, 큰 눈들, 작은 코, 및 비교적 작은 머리 등)을 가질 수 있다. 이와 같이, 어린이 컨텍스트가 검출될 수 있다.
블록(508)에서, 컴퓨팅 디바이스(106)는 사용자로부터 아바타의 선택을 수신할 수 있다. 사용자는 컴퓨팅 디바이스(106)에 의해 실행되고 있는 아바타 애플리케이션의 UI를 통해 복수의 상이한 아바타들 중 하나를 선택할 수 있다. 아바타들은 스크롤 휠, 드롭 다운 메뉴, 또는 아이콘 메뉴를 통해 선택될 수 있다(예를 들어, 여기서 각각의 아바타는 그 자신의 위치에서 화면 상에서 볼 수 있음).
블록(510)에서, 컴퓨팅 디바이스(106)는 컨텍스트 및 선택된 아바타에 적어도 부분적으로 기초하여 오디오 및/또는 비디오 파일들을 렌더링하기 위한 효과들을 결정할 수 있다. 이러한 예에서, 각각의 아바타에 대한 효과들은 일제히 되는 것과는 반대로, 각각의 아바타의 선택 시에 생성될 수 있다. 일부 경우들에서, 이것은 상당한 프로세서 및 메모리 절감의 실현을 가능하게 할 것인데, 그 이유는 한 번에, 효과들의 하나의 세트 및 아바타 렌더링만이 수행될 것이기 때문이다. 이러한 절감들은 특히 사용자가 미리보기할 다수의 아바타들을 선택하지 않을 때 실현될 수 있다.
블록(512)에서, 컴퓨팅 디바이스(106)는, 도 4의 블록(410)에 대해 전술된 것과 유사하게, 추가적인 효과들에 대한 추가적인 로직을 수행할 수 있다. 블록(514)에서, 컴퓨팅 디바이스(106)는, 도 4의 블록(412)에 대해 전술된 것과 유사하게, 선택된 아바타에 대한 결정된 효과들 및/또는 추가적인 효과들에 적어도 부분적으로 기초하여 오디오 및/또는 비디오 정보를 개정할 수 있다. 블록(516)에서, 컴퓨팅 디바이스(106)는, 도 4의 블록(416)에 대해 전술된 것과 유사하게, 선택된 아바타에 적어도 부분적으로 기초하여 개정된 오디오와 함께 개정된 비디오를 제시할 수 있다.
일부 예들에서, 아바타 프로세스(300)는 이력 정보에 적어도 부분적으로 기초하여 흐름(400)을 수행할 지 또는 흐름(500)을 수행할지 여부를 결정할 수 있다. 예를 들어, 사용자가 일반적으로 매번 동일한 아바타를 사용하는 경우, 흐름(500)이 더 효율적일 것이다. 그러나, 사용자가 아바타들 사이에서 규칙적으로 전환하고 비디오 클립당 다수의 상이한 아바타들을 미리보기하는 경우, 흐름(400)이 더 효율적일 수 있다.
도 6은 사용자가 아바타 애플리케이션(예를 들어, 아바타 애플리케이션 어포던스(602)에 대응함)을 활용할 수 있게 하기 위한 예시적인 UI(600)를 예시한다. 일부 예들에서, UI(600)는 아바타 애플리케이션 어포던스(602)가 선택될 때까지 상이하게 보일 수 있다(예를 들어, 그것은 표준 텍스트(예를 들어, 단문 메시징 서비스(SMS)) 메시징 애플리케이션으로서 보일 수 있음). 언급된 바와 같이, 아바타 애플리케이션은 아바타 프로세스(예를 들어, 도 3의 아바타 프로세스(300))와 통신하여, 오디오 및/또는 비디오의 캡처, 프로세싱(예를 들어, 특징부들 추출하기, 로직 실행하기 등) 및 조정을 위한 요청들을 한다. 예를 들어, 사용자가 기록 어포던스(예를 들어, 기록/전송 비디오 클립 어포던스(604))를 선택할 때, 아바타 애플리케이션은, 적절한 하드웨어 컴포넌트들을 사용하여 비디오 및 오디오 정보를 캡처하기 시작하기 위해 아바타 프로세스에 대한 애플리케이션 프로그래밍 인터페이스(API) 호출을 할 수 있다. 일부 예에서, 기록/전송 비디오 클립 어포던스(604)는 기록 세션 시작 전에 적색 원(또는 도 6에 도시된 라인이 없는 평원)으로서 표현될 수 있다. 이러한 방식으로, 어포던스는 표준 기록 버튼과 더 유사하게 보일 것이다. 세션을 기록하는 동안, 기록/전송 비디오 클립 어포던스(604)의 외관은 (예를 들어, 비디오 클립 기록들의 길이가 제한되는 경우) 시계 카운트다운 또는 타이머의 다른 표현과 같이 보이도록 변경될 수 있다. 그러나, 다른 예들에서, 기록/전송 비디오 클립 어포던스(604)는 아바타 애플리케이션이 기록하고 있음을 나타내기 위해 색상들만을 변경할 수 있다. 타이머가 없거나 기록물의 길이에 대한 한계가 없는 경우, 사용자는 기록을 종료하기 위해 다시 기록/전송 비디오 클립 어포던스(604)를 선택할 필요가 있을 수 있다.
일부 예들에서, 사용자는 아바타를 선택하기 위해 아바타 선택 어포던스(606)를 사용할 수 있다. 이는 아바타 비디오 클립의 기록 전에 그리고/또는 아바타 비디오 클립의 기록 후에 행해질 수 있다. 기록 전에 선택될 때, 사용자의 움직임들 및 얼굴 특성들의 초기 미리보기가 선택된 아바타로서 제시될 것이다. 추가적으로, 기록은 기록물의 라이브(예를 들어, 실시간) 미리보기를 제시하면서 수행될 것이며, 이때 사용자의 얼굴은 선택된 아바타로 표현된다. 기록이 완료되면, 선택된 아바타를 다시 사용하여 제2 미리보기(예를 들어, 실제 기록물의 재생)가 제시될 것이다. 그러나, 이 단계에서, 사용자는 아바타 선택 어포던스(606)를 스크롤하여, 기록물 미리보기를 보기 위해 새로운 아바타를 선택할 수 있다. 일부 경우들에서, 새로운 아바타의 선택 시, UI는 선택된 아바타를 사용하여 기록을 미리보기하기 시작할 것이다. 새로운 미리보기는 오디오/비디오 효과들과 함께 또는 원래 기록된 상태로 제시될 수 있다. 언급된 바와 같이, 효과가 적용된 버전을 제시할 지 또는 원본을 제시할지 여부에 관한 결정은 사용되는 최근 재생 방법에 적어도 부분적으로 기초할 수 있다. 예를 들어, 최근 재생에서 효과들을 사용한 경우, 새로운 아바타 선택 후의 제1 재생에서 효과들을 사용할 수 있다. 그러나, 최근 재생에서 효과들을 사용하지 않은 경우, 새로운 아바타 선택 후의 제1 재생에서 효과들을 사용하지 않을 수 있다. 일부 예들에서, 사용은 효과 미리보기 어포던스(608)를 선택함으로써 비디오 클립을 효과들과 함께 재생하거나 또는 원래의 미리보기 어포던스(610)를 선택함으로써 효과들 없이 재생할 수 있다. 비디오 클립(예를 들어, 메시지)에 만족하면, 사용자는 기록/전송 비디오 클립 어포던스(604)를 사용하여 다른 컴퓨팅 디바이스로 메시지 내의 아바타 비디오를 전송할 수 있다. 비디오 클립은 (예를 들어, 효과들이 있거나 없는) 최근 미리보기에 대응하는 형식을 사용하여 전송될 것이다. 임의의 시간에, 사용자가 원한다면, 아바타 비디오를 삭제하고, 아바타 및/또는 메시징 애플리케이션들을 시작하거나 종료하기 위해 삭제 비디오 클립 어포던스(612)가 선택될 수 있다.
도 7는 적어도 몇몇 실시예들에 따른, 오디오 및/또는 비디오 특징부들에 적어도 부분적으로 기초하여 다양한 오디오 및/또는 비디오 효과들을 구현하기 위한 프로세스(예를 들어, 컴퓨터 구현 방법)(700)를 도시하는 예시적인 흐름도를 예시한다. 일부 예들에서, 도 1의 컴퓨팅 디바이스(106) 또는 (예를 들어, 적어도 도 6에 도시된 것과 유사한 아바타 애플리케이션 및 도 3의 아바타 프로세스(300)를 활용하는) 다른 유사한 사용자 디바이스는 도 7의 프로세스(700)를 수행할 수 있다.
블록(702)에서, 컴퓨팅 디바이스(106)는 가상 아바타 생성 인터페이스를 디스플레이할 수 있다. 가상 아바타 생성 인터페이스는 도 6에 예시된 UI와 유사하게 보일 수 있다. 그러나, 본 명세서에 설명된 동일한 특징부들을 가능하게 하도록 구성된 임의의 UI가 사용될 수 있다.
블록(704)에서, 컴퓨팅 디바이스(106)는 가상 아바타의 제1 미리보기 콘텐츠를 디스플레이할 수 있다. 일부 예들에서, 제1 미리보기 콘텐츠는 움직임 및 얼굴 표정들을 포함하는 사용자의 얼굴의 실시간 표현일 수 있다. 그러나, 제1 미리보기는 사용자의 얼굴의 이미지 대신에 사용자의 얼굴을 나타내기 위해 아바타(예를 들어, 만화 캐릭터, 디지털/가상 인형)를 제공할 것이다. 이러한 제1 미리보기는 비디오 전용일 수 있거나, 또는 적어도 사운드가 없는 아바타의 렌더링일 수 있다. 일부 예들에서, 이러한 제1 미리보기는 기록되지 않으며, 컴퓨팅 디바이스(106)의 배터리 전력 또는 메모리 공간 이외에는 제한없이 사용자가 원하는 한 활용될 수 있다.
블록(706)에서, 컴퓨팅 디바이스(106)는 가상 아바타 생성 인터페이스에서 입력(예를 들어, 도 6의 기록/전송 비디오 클립 어포던스(604))의 선택을 검출할 수 있다. 이러한 선택은 UI가 제1 미리보기 콘텐츠를 디스플레이하는 동안 이루어질 수 있다.
블록(708)에서, 컴퓨팅 디바이스(106)는 블록(706)에서 검출된 입력에 적어도 부분적으로 기초하여 비디오 및 오디오 신호들을 캡처하기 시작할 수 있다. 설명된 바와 같이, 비디오 및 오디오 신호들은 적절한 하드웨어 컴포넌트들에 의해 캡처될 수 있고, 그러한 컴포넌트들 중 하나 또는 이들의 조합에 의해 캡처될 수 있다.
블록(710)에서, 컴퓨팅 디바이스(106)는 위에서 상세히 설명된 바와 같이 오디오 특징부 특성들 및 얼굴 특징부 특성들을 추출할 수 있다. 언급된 바와 같이, 추출은 도 3의 아바타 프로세스(300)의 특정 모듈들에 의해 또는 아바타 애플리케이션 및/또는 컴퓨팅 디바이스(106)의 다른 추출 및/또는 분석 컴포넌트들에 의해 수행될 수 있다.
블록(712)에서, 컴퓨팅 디바이스(106)는 얼굴 특징부 특성들 및 오디오 특징부 특성들에 적어도 부분적으로 기초하여 조정된 오디오 신호를 생성할 수 있다. 예를 들어, 블록(708)에서 캡처된 오디오 파일은 새로운 사운드들, 새로운 단어들 등을 포함하도록, 그리고/또는 조정된 원래의 음조, 톤, 볼륨 등을 갖도록 영구적으로(또는 일시적으로) 개정(예를 들어, 조정)될 수 있다. 이러한 조정들은 얼굴 특징부 특성들 및 오디오 특징부 특성들의 분석을 통해 검출된 컨텍스트에 적어도 부분적으로 기초하여 이루어질 수 있다. 추가적으로, 조정들은, 기록 세션 동안, 선택된 아바타의 유형에 기초하여 그리고/또는 사용자에 의해 수행된(예를 들어, 사용자의 얼굴에 의해 표현되는) 특정 움직임들, 얼굴 표정들, 단어들, 문구들, 또는 액션들에 기초하여 이루어질 수 있다.
블록(714)에서, 컴퓨팅 디바이스(106)는 조정된 오디오 신호에 따라 UI에서의 가상 아바타의 제2 미리보기 콘텐츠를 생성할 수 있다. 생성된 제2 미리보기 콘텐츠는 현재 선택된 아바타 또는 일부 디폴트 아바타에 적어도 부분적으로 기초할 수 있다. 제2 미리보기 콘텐츠가 생성되면, 컴퓨팅 디바이스(106)는 블록(716)에서 UI에 제2 미리보기 콘텐츠를 제시할 수 있다.
도 8은 적어도 몇몇 실시예들에 따른, 오디오 및/또는 비디오 특징부들에 적어도 부분적으로 기초하여 다양한 오디오 및/또는 비디오 효과들을 구현하기 위한 프로세스(예를 들어, 실행될 수 있는 컴퓨터 판독가능 메모리 상에 저장된 명령어들)(800)를 도시하는 예시적인 흐름도를 예시한다. 일부 예들에서, 도 1의 컴퓨팅 디바이스(106) 또는 (예를 들어, 적어도 도 6에 도시된 것과 유사한 아바타 애플리케이션 및 도 3의 아바타 프로세스(300)를 활용하는) 다른 유사한 사용자 디바이스는 도 8의 프로세스(800)를 수행할 수 있다.
블록(802)에서, 컴퓨팅 디바이스(106)는 가상 아바타의 아바타 비디오 클립을 생성하기 위한 요청을 검출할 수 있다. 일부 예들에서, 요청은 도 6의 전송/기록 비디오 클립 어포던스(604)의 사용자의 선택에 적어도 부분적으로 기초할 수 있다.
블록(804)에서, 컴퓨팅 디바이스(106)는 카메라의 시야에서 얼굴과 연관된 비디오 신호를 캡처할 수 있다. 블록(806)에서, 컴퓨팅 디바이스(106)는 (예를 들어, 카메라에 의해 캡처되고 있는 얼굴로부터 나오는) 비디오 신호에 대응하는 오디오 신호를 캡처할 수 있다.
블록(808)에서, 컴퓨팅 디바이스(106)는 오디오 신호로부터 음성 특징부 특성들을 추출할 수 있고, 블록(810)에서, 컴퓨팅 디바이스(106)는 비디오 신호로부터 얼굴 특징부 특성들을 추출할 수 있다.
블록(812)에서, 컴퓨팅 디바이스(106)는 아바타 비디오 클립을 미리보기하기 위한 요청을 검출할 수 있다. 이러한 요청은 도 6의 아바타 선택 어포던스(606)를 통한 새로운 아바타의 사용자의 선택에 적어도 부분적으로 기초할 수 있거나, 또는 도 6의 효과 미리보기 어포던스(608)의 사용자의 선택에 적어도 부분적으로 기초할 수 있다.
블록(814)에서, 컴퓨팅 디바이스(106)는 얼굴 특징부 특성들 및 음성 특징부 특성들에 적어도 부분적으로 기초하여 조정된 오디오 신호를 생성할 수 있다. 예를 들어, 블록(806)에서 캡처된 오디오 파일은 새로운 사운드들, 새로운 단어들 등을 포함하도록, 그리고/또는 조정된 원래의 음조, 톤, 볼륨 등을 갖도록 개정(예를 들어, 조정)될 수 있다. 이러한 조정들은 얼굴 특징부 특성들 및 음성 특징부 특성들의 분석을 통해 검출된 컨텍스트에 적어도 부분적으로 기초하여 이루어질 수 있다. 추가적으로, 조정들은, 기록 세션 동안, 선택된 아바타의 유형에 기초하여 그리고/또는 사용자에 의해 수행된(예를 들어, 사용자의 얼굴에 의해 표현되는) 특정 움직임들, 얼굴 표정들, 단어들, 문구들, 또는 액션들에 기초하여 이루어질 수 있다.
블록(816)에서, 컴퓨팅 디바이스(106)는 조정된 오디오 신호에 따라 UI의 가상 아바타의 미리보기를 생성할 수 있다. 생성된 미리보기는 현재 선택된 아바타 또는 일부 디폴트 아바타에 적어도 부분적으로 기초할 수 있다. 미리보기가 생성되면, 컴퓨팅 디바이스(106)는 또한 블록(816)에서 UI에 제2 미리보기 콘텐츠를 제시할 수 있다.
도 9는 적어도 하나의 실시예에 따른, 본 명세서에 설명된 특징부들을 구현하기 위한 예시적인 아키텍처 (900)를 예시하는 단순화된 블록도이다. 일부 예들에서, 예시적인 아키텍처(900)를 갖는 컴퓨팅 디바이스(902)(예를 들어, 도 1의 컴퓨팅 디바이스(106))는 관련 UI들을 제시하고, 오디오 및 비디오 정보를 캡처하고, 관련 데이터를 추출하고, 로직을 수행하고, 오디오 및 비디오 정보를 개정하고, 애니모지 비디오들을 제시하도록 구성될 수 있다.
컴퓨팅 디바이스(902)는 가상 아바타 비디오 클립들을 기록, 미리보기, 및/또는 전송하기 위한 사용자 인터페이스(예를 들어, 도 6의 사용자 인터페이스(600))를 제공하는 것과 같은, 그러나 이로 제한되지 않는, 설명된 기술들을 수행하기 위한 애플리케이션들 또는 명령어들을 실행하거나 달리 관리하도록 구성될 수 있다. 컴퓨팅 디바이스(902)는 사용자 인터페이스에서 사용자로부터 (예를 들어, 터치 화면과 같은 I/O 디바이스(들)(904)를 활용하여) 입력들을 수신하고, 정보를 캡처하고, 정보를 프로세싱하고, 이어서 또한 I/O 디바이스(들)(904)(예를 들어, 컴퓨팅 디바이스(902)의 스피커)를 활용하여 미리보기들로서 비디오 클립들을 제시할 수 있다. 컴퓨팅 디바이스(902)는 캡처된 비디오로부터 추출된 얼굴 특징부들 및/또는 캡처된 오디오로부터 추출된 음성 특징부들에 적어도 부분적으로 기초하여 오디오 및/또는 비디오 파일들을 개정하도록 구성될 수 있다.
컴퓨팅 디바이스(902)는 이동 전화기(예를 들어, 스마트폰), 태블릿 컴퓨터, PDA(personal digital assistant), 랩톱 컴퓨터, 데스크톱 컴퓨터, 씬 클라이언트(thin-client) 디바이스, 스마트 워치, 무선 헤드셋 등과 같은, 그러나 이에 제한되지 않는 임의의 유형의 컴퓨팅 디바이스일 수 있다.
하나의 예시적인 구성에서, 컴퓨팅 디바이스(902)는 적어도 하나의 메모리(914) 및 하나 이상의 프로세싱 유닛들(또는 프로세서(들))(916)을 포함할 수 있다. 프로세서(들)(916)는 적절하게는 하드웨어, 컴퓨터 실행가능 명령어들, 또는 이들의 조합들로 구현될 수 있다. 프로세서(들)(916)의 컴퓨터 실행가능 명령어 또는 펌웨어 구현예들은 설명된 다양한 기능들을 수행하기 위해 임의의 적합한 프로그램 언어로 기록된 컴퓨터 실행가능 또는 머신 실행가능 명령어들을 포함할 수 있다.
메모리(914)는 프로세서(들)(916) 상에 로딩가능하고 실행가능한 프로그램 명령어들, 및 이 프로그램들의 실행 동안 생성되는 데이터를 저장할 수 있다. 컴퓨팅 디바이스(902)의 구성 및 유형에 따라, 메모리(914)는 휘발성(예컨대, RAM(random access memory)) 및/또는 비휘발성(예컨대, ROM(read-only memory), 플래시 메모리 등)일 수 있다. 컴퓨팅 디바이스(902)는 또한 자기 저장소, 광 디스크, 및/또는 테이프 저장소를 포함하지만 이에 제한되지 않는 추가의 제거가능 저장소 및/또는 제거불가능 저장소(926)를 포함할 수 있다. 디스크 드라이브들 및 이들의 연관된 비일시적 컴퓨터 판독가능 매체는 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들 및 다른 데이터의 비휘발성 저장을 컴퓨팅 디바이스에 제공할 수 있다. 일부 구현예들에서, 메모리(914)는 다수의 상이한 유형의 메모리, 예컨대, SRAM(static random access memory), DRAM(dynamic random access memory), 또는 ROM을 포함할 수 있다. 본 명세서에서 설명되는 휘발성 메모리가 RAM으로 지칭될 수 있지만, 일단 호스트 및/또는 전원으로부터 플러그해제되면 저장되어 있는 데이터를 유지할 수 없는 임의의 휘발성 메모리가 적절할 것이다.
제거가능한 그리고 제거불가능한 메모리(914) 및 추가의 저장소(926) 모두가 비일시적 컴퓨터 판독가능 저장 매체의 예들이다. 예를 들어, 비일시적 컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 또는 비휘발성, 제거가능 또는 제거불가능 매체를 포함할 수 있다. 메모리(914) 및 추가의 저장소(926) 둘 모두는 비일시적 컴퓨터 저장 매체의 예들이다. 컴퓨팅 디바이스(902) 내에 존재할 수 있는 추가 유형의 컴퓨터 저장 매체는 PRAM(phase-change RAM), SRAM, DRAM, RAM, ROM, EEPROM(electrically erasable programmable read-only memory), 플래시 메모리 또는 다른 메모리 기술, CD-ROM(compact disc read-only memory), DVD(digital video disc) 또는 다른 광학 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 디바이스(902)에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있지만 이에 제한되지 않는다. 임의의 상기한 것의 조합들이 또한 비일시적 컴퓨터 판독가능 저장 매체의 범주 내에 포함되어야 한다.
대안적으로, 컴퓨터 판독가능 통신 매체는 컴퓨터 판독가능 명령어들, 프로그램 모듈들, 또는 데이터 신호, 예컨대, 반송파, 또는 다른 송신물 내에서 송신되는 다른 데이터를 포함할 수 있다. 그러나, 본 명세서에서 사용되는 바와 같이, 컴퓨터 판독가능 저장 매체가 컴퓨터 판독가능 통신 매체를 포함하지는 않는다.
컴퓨팅 디바이스(902)는 또한 하나 이상의 네트워크를 통해 컴퓨팅 디바이스(902)가 데이터 저장소, 다른 컴퓨팅 디바이스 또는 서버, 사용자 터미널들, 및/또는 다른 디바이스들과 통신할 수 있게 하는 통신 접속부(들)(928)를 포함할 수 있다. 그러한 네트워크들은 케이블 네트워크들, 인터넷, 무선 네트워크들, 셀룰러 네트워크들, 위성 네트워크들, 다른 사설 및/또는 공중 네트워크들, 또는 이들의 임의의 조합과 같은 많은 상이한 유형의 네트워크들 중 임의의 하나 또는 이들의 조합을 포함할 수 있다. 컴퓨팅 디바이스(902)는 또한 I/O 디바이스(들)(904), 예컨대, 터치 입력 디바이스, 키보드, 마우스, 펜, 음성 입력 디바이스, 디스플레이, 스피커, 프린터 등을 포함할 수 있다.
메모리(914)의 콘텐츠들을 더 상세히 참조하면, 메모리(914)는 운영 체제(932) 및/또는 사용자 인터페이스 모듈(934), 아바타 제어 모듈(936), 아바타 애플리케이션 모듈(938), 및 메시징 모듈(940)을 포함하는 본 명세서에 개시된 특징부들을 구현하기 위한 하나 이상의 애플리케이션 프로그램들 또는 서비스들을 포함할 수 있다. 메모리(914)는 또한 오디오 및 비디오 출력을 생성하는 데 사용될 하나 이상의 오디오 및 비디오 파일들을 저장하도록 구성될 수 있다. 이러한 방식으로, 컴퓨팅 디바이스(902)는 본 명세서에 설명된 동작들 모두를 수행할 수 있다.
일부 예들에서, 사용자 인터페이스 모듈(934)은 컴퓨팅 디바이스(902)의 사용자 인터페이스를 관리하도록 구성될 수 있다. 예를 들어, 사용자 인터페이스 모듈(934)은 컴퓨팅 디바이스(902)에 의해 요청된 임의의 수의 다양한 UI들을 제시할 수 있다. 특히, 사용자 인터페이스 모듈(934)은 전술한 바와 같이 비디오 및 오디오 정보를 캡처하는 것, 적절한 얼굴 특징 및 음성 특징 정보를 추출하는 것, 및 생성된 아바타 비디오 클립들의 제시 전에 비디오 및 오디오 정보를 개정하는 것을 담당하는 도 3의 아바타 프로세스(300)와의 통신을 포함하여 본 명세서에 설명된 특징부들의 구현을 가능하게 하는 도 6의 UI(600)를 제시하도록 구성될 수 있다.
일부 예들에서, 아바타 제어 모듈(936)은 아바타 프로세스(300)를 구현하도록(예를 들어, 구현하기 위한 명령어들을 실행하도록) 구성된 한편, 아바타 애플리케이션 모듈(938)은 사용자 대면 애플리케이션을 구현하도록 구성된다. 위에 언급된 바와 같이, 아바타 애플리케이션 모듈(938)은 아바타 제어 모듈(936)에 정보를 요청 및/또는 제공하기 위한 하나 이상의 API들을 활용할 수 있다.
일부 실시예들에서, 메시징 모듈(940)은 아바타 제어 모듈(936) 및/또는 아바타 애플리케이션 모듈(938)과 통신할 수 있는 임의의 독립형 또는 애드 온(add-on) 메시징 애플리케이션을 구현할 수 있다. 일부 예들에서, 메시징 모듈(940)은 아바타 애플리케이션 모듈(938)과 완전히 통합될 수 있고(예를 들어, 도 6의 UI(600)에서 보여지는 바와 같음), 아바타 애플리케이션은 메시징 애플리케이션의 일부인 것처럼 보인다. 그러나, 다른 예들에서, 메시징 애플리케이션(940)은, 사용자가 아바타 비디오 클립을 생성할 것을 요청하는 경우 아바타 애플리케이션 모듈(938)로 호출할 수 있고, 아바타 애플리케이션 모듈(938)은 메시징 모듈(940)과 통합되는 새로운 애플리케이션을 함께 열 수 있다.
컴퓨팅 디바이스(902)는 또한 적어도 도 3에 도시된 바와 같이 카메라 및 마이크로폰을 구비할 수 있고, 프로세서들(916)은 가상 아바타의 제1 미리보기를 디스플레이하기 위한 명령어들을 실행하도록 구성될 수 있다. 일부 예들에서, 가상 아바타의 제1 미리보기를 디스플레이하는 동안, 입력은 사용자 인터페이스 모듈(934)에 의해 제시된 가상 아바타 생성 인터페이스를 통해 검출될 수 있다. 일부 경우들에서, 가상 아바타 생성 인터페이스에서 입력을 검출하는 것에 응답하여, 아바타 제어 모듈(936)은, 카메라를 통해, 카메라의 시야 내의 얼굴과 연관된 비디오 신호를 캡처하는 것, 마이크로폰을 통해, 캡처된 비디오 신호와 연관된 오디오 신호를 캡처하는 것, 캡처된 오디오 신호로부터 오디오 특징부 특성들을 추출하는 것, 및 캡처된 비디오 신호로부터 얼굴과 연관된 얼굴 특징부 특성들을 추출하는 것을 포함하는 캡처 세션을 개시할 수 있다. 추가적으로, 캡처 세션의 만료를 검출하는 것에 응답하여, 아바타 제어 모듈(936)은 오디오 특징부 특성들 및 얼굴 특징부 특성들에 적어도 부분적으로 기초하여 조정된 오디오 신호를 생성하고, 얼굴 특징부 특성들 및 조정된 오디오 신호에 따라 가상 아바타 생성 인터페이스에서 가상 아바타의 제2 미리보기를 디스플레이할 수 있다.
음성 및/또는 얼굴 특징부 특성들에 적어도 부분적으로 기초하여 오디오 및/또는 비디오 콘텐츠를 조정하기 위한 다양한 기술들을 제공하기 위한 예시적인 방법들, 컴퓨터 판독가능 매체, 및 시스템들이 전술되었다. 이들 시스템들 및 방법들의 일부 또는 모두는 상기의 적어도 도 1 내지 도 9에 도시된 것들과 같은 아키텍처들에 의해 적어도 부분적으로 구현될 수 있지만, 그럴 필요는 없다. 많은 실시예들이 메시징 애플리케이션들을 참조하여 전술되었지만, 위의 기술들 중 임의의 것이 실시간 비디오 재생 또는 실시간 비디오 메시징 애플리케이션들을 포함하는 임의의 유형의 애플리케이션 내에서 사용될 수 있다는 것을 이해해야 한다. 설명을 목적으로, 구체적인 구성들 및 상세사항들은 예들의 완전한 이해를 제공하기 위해 설명된다. 그러나, 일부 예들이 구체적인 상세사항들 없이 실시될 수 있다는 것은 당업자에게는 또한 명백할 것이다. 추가로, 공지된 특징부들은 설명되는 예를 모호하게 하지 않도록 때때로 생략되거나 단순화되었다.
다양한 실시예들은 추가로, 일부 경우들에서 다수의 애플리케이션들 중 임의의 것을 동작시키는 데 사용될 수 있는 하나 이상의 사용자 컴퓨터들, 컴퓨팅 디바이스들 또는 프로세싱 디바이스들을 포함할 수 있는, 매우 다양한 동작 환경들에서 구현될 수 있다. 사용자 또는 클라이언트 디바이스들은 표준 운영 체제를 실행하는 데스크톱 또는 랩톱 컴퓨터들과 같은 다수의 범용 개인용 컴퓨터들은 물론, 모바일 소프트웨어를 실행하고 다수의 네트워킹 및 메시징 프로토콜들을 지원할 수 있는 셀룰러, 무선 및 핸드헬드 디바이스들 중 임의의 것을 포함할 수 있다. 그러한 시스템은 또한 다양한 상업적으로 이용가능한 운영 체제들 그리고 개발 및 데이터베이스 관리와 같은 목적들을 위한 다른 공지된 애플리케이션들 중 임의의 것을 실행하는 다수의 워크스테이션들을 포함할 수 있다. 이들 디바이스들은 또한, 더미 단말들, 씬 클라이언트들, 게이밍 시스템들 및 네트워크를 통해 통신할 수 있는 다른 디바이스들과 같은, 다른 전자 디바이스들을 포함할 수 있다.
대부분의 실시예들은, TCP/IP, OSI, FTP, UPnP, NFS, CIFS, 및 AppleTalk와 같은, 다양한 상업적으로 이용가능한 프로토콜들 중 임의의 것을 사용하여 통신을 지원하기 위한 본 기술분야의 통상의 기술자에게 익숙할 적어도 하나의 네트워크를 활용한다. 네트워크는, 예를 들어, 로컬 영역 네트워크, 광역 네트워크, 가상 사설 네트워크, 인터넷, 인트라넷, 엑스트라넷, 공중 교환 전화 네트워크, 적외선 네트워크, 무선 네트워크, 및 이들의 임의의 조합일 수 있다.
네트워크 서버를 활용하는 실시예들에서, 네트워크 서버는, HTTP 서버들, FTP 서버들, CGI 서버들, 데이터 서버들, Java 서버들, 및 비즈니스 애플리케이션 서버들을 포함한, 다양한 서버 또는 미드-티어(mid-tier) 애플리케이션들 중 임의의 것을 실행할 수 있다. 서버(들)는 또한, 예컨대 Java®, C, C# 또는 C++, 또는, Perl, Python 또는 TCL과 같은, 임의의 스크립팅 언어는 물론, 이들의 조합들과 같은, 임의의 프로그래밍 언어로 작성된 하나 이상의 스크립트 또는 프로그램으로서 구현될 수 있는 하나 이상의 애플리케이션들을 실행하는 것에 의해서와 같이, 사용자 디바이스들로부터의 요청들에 응답하여 프로그램들 또는 스크립트들을 실행할 수 있다. 서버(들)는 또한, Oracle®, Microsoft®, Sybase®, 및 IBM®으로부터 상업적으로 이용가능한 것들을 제한 없이 포함한, 데이터베이스 서버들을 포함할 수 있다.
환경은 앞서 논의된 바와 같은 다양한 데이터 저장소들 및 다른 메모리 및 저장 매체들을 포함할 수 있다. 이들은 컴퓨터들 중 하나 이상에 로컬인(및/또는 그에 존재하는) 또는 네트워크를 거쳐 컴퓨터들 중 일부 또는 전부로부터 원격에 있는 저장 매체 상에서와 같이, 다양한 위치들에 존재할 수 있다. 특정의 실시예들의 세트에서, 정보는 본 기술분야의 통상의 기술자에게 익숙한 스토리지 영역 네트워크(storage-area network)(SAN)에 존재할 수 있다. 이와 유사하게, 컴퓨터들, 서버들 또는 다른 네트워크 디바이스들에 귀속된 기능들을 수행하기 위한 임의의 필요한 파일들이, 적절한 경우, 로컬로 그리고/또는 원격으로 저장될 수 있다. 시스템이 컴퓨터화된 디바이스들을 포함하는 경우, 각각의 그러한 디바이스는 버스를 통해 전기적으로 커플링될 수 있는 하드웨어 요소들을 포함할 수 있고, 이 요소들은, 예를 들어, 적어도 하나의 중앙 프로세싱 유닛(CPU), 적어도 하나의 입력 디바이스(예를 들어, 마우스, 키보드, 컨트롤러, 터치 스크린 또는 키패드), 및 적어도 하나의 출력 디바이스(예를 들어, 디스플레이 디바이스, 프린터 또는 스피커)를 포함한다. 그러한 시스템은 또한, 디스크 드라이브들, 광학 저장 디바이스들, 및 RAM 또는 ROM과 같은 솔리드 스테이트 저장 디바이스들은 물론, 이동식 매체 디바이스들, 메모리 카드들, 플래시 카드들 등과 같은, 하나 이상의 저장 디바이스들을 포함할 수 있다.
그러한 디바이스들은 또한 컴퓨터 판독가능 저장 매체 판독기, 통신 디바이스(예를 들어, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 디바이스 등), 및 앞서 설명된 바와 같은 작업 메모리를 포함할 수 있다. 컴퓨터 판독가능 저장 매체 판독기는, 원격, 로컬, 고정식, 및/또는 이동식 저장 디바이스들을 나타내는 비일시적 컴퓨터 판독가능 저장 매체는 물론, 컴퓨터 판독가능 정보를 일시적으로 및/또는 보다 영구적으로 포함, 저장, 송신, 및 검색하기 위한 저장 매체와 연결될 수 있거나 이를 수납하도록 구성될 수 있다. 시스템 및 다양한 디바이스들은 또한 전형적으로, 운영 체제 및, 클라이언트 애플리케이션 또는 브라우저와 같은, 애플리케이션 프로그램들을 포함한, 적어도 하나의 작업 메모리 디바이스 내에 위치된 다수의 소프트웨어 애플리케이션들, 모듈들, 서비스들 또는 다른 요소들을 포함할 것이다. 대안의 실시예들이 앞서 설명된 것으로부터 수많은 변형들을 가질 수 있다는 것이 인식되어야 한다. 예를 들어, 커스터마이즈된 하드웨어가 또한 사용될 수 있고/있거나 특정의 요소들이 하드웨어, 소프트웨어(애플릿들과 같은, 포터블 소프트웨어(portable software)를 포함함) 또는 둘 다로 구현될 수 있다. 게다가, 네트워크 입력/출력 디바이스들과 같은 다른 컴퓨팅 디바이스들에 대한 연결이 이용될 수 있다.
코드 또는 코드의 부분들을 포함하기 위한 비일시적 저장 매체 및 컴퓨터 판독가능 저장 매체는, RAM, ROM, EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광학 저장소, 자기 카세트들, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들을 포함하는, 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 제거가능 및 제거불가능 매체와 같은, 그러나 이에 제한되지 않는 당업계에서 공지되거나 사용되는 임의의 적절한 매체(캐리어 웨이브들 등과 같은 일시적인 매체 제외), 또는 원하는 정보를 저장하는 데 사용될 수 있고 시스템 디바이스에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 본 명세서에 제공된 개시내용 및 교시내용에 기초하여, 본 기술분야의 통상의 기술자는 다양한 실시예들을 구현하기 위한 다른 방식들 및/또는 방법들을 인식할 것이다. 그렇지만, 위에 언급된 바와 같이, 컴퓨터 판독가능 저장 매체들은 반송파들 또는 이와 유사한 것과 같은 일시적 매체들을 포함하지 않는다.
따라서, 명세서 및 도면은 제한적인 의미보다는 예시적인 의미로 간주되어야 한다. 그렇지만, 청구항들에 기재된 바와 같은 본 개시내용의 보다 광의의 사상 및 범주를 벗어나지 않으면서 그에 대한 다양한 수정들 및 변경들이 행해질 수 있다는 것이 명백할 것이다.
다른 변형들이 본 개시내용의 사상 내에 있다. 따라서, 개시된 기술들에 대해 다양한 수정들 및 대안의 구성들이 가능하지만, 그의 소정 예시된 실시예들이 도면에 예시되어 있으며, 앞서 상세히 설명되었다. 그렇지만, 본 개시내용을 개시된 특정 형태 또는 형태들로 제한하려는 의도는 없고, 그와 달리, 의도는, 첨부된 청구항들에 의해 한정되는 바와 같은, 본 개시내용의 사상 및 범주 내에 속하는 모든 수정들, 대안의 구조들 및 등가물들을 커버하는 것임이 이해되어야 한다.
개시된 실시예들을 설명하는 것과 관련하여(특히 이하의 청구항들과 관련하여) 용어들 "한(a)", "한(an)" 및 "그(the)" 그리고 유사한 지시어들(referents)의 사용은, 본 명세서에 달리 지시되지 않거나 문맥에 의해 명확하게 모순되지 않는 한, 단수 및 복수 둘 다를 커버하는 것으로 해석되어야 한다. 용어들 "포함하는(comprising)", "갖는(having)", "포함하는(including)", 및 "함유하는(containing)"은, 달리 언급되지 않는 한, 개방형 용어들(open-ended terms)(즉, "포함하지만 이에 한정되지 않는"을 의미함)로서 해석되어야 한다. 용어 "연결된"은, 개재하는 무언가가 있는 경우에도, 부분적으로 또는 전체적으로 그 내에 포함되거나, 그에 부착되거나, 또는 서로 조인되는 것으로 해석되어야 한다. 문구 "~에 기초하여"는 개방형이고 결코 제한하는 것이 아닌 것으로 이해되어야 하며, 적절한 경우 "~에 적어도 부분적으로 기초하여"로서 해석되거나 달리 읽히도록 의도되어 있다. 본 명세서에서의 값들의 범위들의 열거는, 본 명세서에 달리 지시되지 않는 한, 단지 그 범위 내에 속하는 각각의 별개의 값을 개별적으로 언급하는 약기 방법(shorthand method)으로서 역할하도록 의도되며, 각각의 별개의 값은 마치 본 명세서에 개별적으로 열거된 것처럼 본 명세서에 포함된다. 본 명세서에 설명된 모든 방법들은, 본 명세서에 달리 지시되지 않거나 문맥에 의해 달리 명확하게 모순되지 않는 한, 임의의 적합한 순서로 수행될 수 있다. 본 명세서에 제공된 임의의 및 모든 예들, 또는 예시 표현(language)(예를 들어, "~와 같은")의 사용은 단지 본 개시내용의 실시예들을 보다 명확히 하도록 의도되며, 달리 청구되지 않는 한 본 개시내용의 범주에 대한 제한을 부과하지 않는다. 명세서에서의 어떠한 표현도 임의의 비-청구된 요소를 본 개시내용의 실시에 필수적인 것으로 나타내는 것으로 해석되어서는 안 된다.
문구 "X, Y, 또는 Z 중 적어도 하나"와 같은 논리합 표현(disjunctive language)은, 구체적으로 달리 언급되지 않는 한, 항목, 항, 등이 X, Y, 또는 Z 중 어느 하나, 또는 이들의 임의의 조합(예를 들어, X, Y, 및/또는 Z)일 수 있다는 것을 제시하기 위해 일반적으로 사용되는 바와 같이 문맥 내에서 달리 이해된다. 이와 같이, 그러한 논리합 표현은 일반적으로 소정 실시예들이 X 중 적어도 하나, Y 중 적어도 하나, 또는 Z 중 적어도 하나가 각각 존재할 것을 요구한다는 것을 암시하는 것으로 의도되지 않고 암시해서는 안된다. 추가적으로, 문구 "X, Y, 및 Z 중 적어도 하나"와 같은 논리곱 표현(conjunctive language)은, "X, Y, 및/또는 Z를 포함한, X, Y, Z, 또는 이들의 임의의 조합을 의미하는 것으로 또한 이해되어야 한다.
본 개시내용을 수행하기 위한 본 발명자들에 공지된 최상의 모드를 포함한, 본 개시내용의 바람직한 실시예들이 본 명세서에 설명된다. 그 바람직한 실시예들의 변형들이 전술한 설명을 읽을 때 본 기술분야의 통상의 기술자에게 명백해질 수 있다. 본 발명자들은 통상의 기술자가 적절한 경우 그러한 변형들을 이용할 것으로 예상하며, 본 발명자들은 본 개시내용이 본 명세서에 구체적으로 설명된 것과 다른 방식으로 실시되도록 의도한다. 그에 따라, 본 개시내용은, 적용가능한 법에 의해 허용되는 바와 같이, 본 명세서에 첨부된 청구항들에 열거된 주제의 모든 변형들 및 등가물들을 포함한다. 더욱이, 앞서 설명된 요소들의 모든 가능한 변형들에서의 그 요소들의 임의의 조합은, 본 명세서에 달리 지시되지 않거나 문맥에 의해 달리 명확하게 모순되지 않는 한, 본 개시내용에 의해 포괄된다.
본 명세서에 인용된, 간행물들, 특허 출원들, 및 특허들을 포함한, 모든 참고문헌들은 이로써 각각의 참고문헌이 개별적으로 그리고 구체적으로 참고로 포함되는 것으로 지시되고 본 명세서에 그 전체가 기재된 경우와 동일한 정도로 참고로 포함된다.

Claims (20)

  1. 방법으로서,
    적어도 카메라 및 마이크로폰을 갖는 전자 디바이스에서:
    가상 아바타 생성 인터페이스를 디스플레이하는 단계;
    복수의 아바타 유형들 중의 아바타 유형에 대응하는 가상 아바타의 선택을 수신하는 단계;
    상기 가상 아바타 생성 인터페이스에서 상기 아바타 유형에 대응하는 상기 가상 아바타의 제1 미리보기 콘텐츠를 디스플레이하는 단계 - 상기 가상 아바타의 상기 제1 미리보기 콘텐츠는 상기 카메라의 시야 내의 사용자 헤드샷의 실시간 미리보기 비디오 프레임들 및 외관에서의 연관된 헤드샷 변화들에 대응함 -;
    상기 가상 아바타의 상기 제1 미리보기 콘텐츠를 디스플레이하는 동안, 상기 가상 아바타 생성 인터페이스에서 입력을 검출하는 단계;
    상기 가상 아바타 생성 인터페이스에서 상기 입력을 검출하는 것에 응답하여:
    상기 카메라를 통해, 기록 세션 동안 상기 사용자 헤드샷과 연관된 비디오 신호를 캡처하는 단계;
    상기 마이크로폰을 통해, 상기 기록 세션 동안 사용자 오디오 신호를 캡처하는 단계; 및
    상기 캡처된 비디오 신호로부터 얼굴과 연관된 얼굴 특징부 특성들을 추출하는 단계; 및
    상기 기록 세션의 만료를 검출하는 것에 응답하여:
    상기 얼굴 특징부 특성들에 적어도 부분적으로 기초하여 얼굴 표정 트리거를 식별하는 단계 - 상기 얼굴 표정 트리거는 조정된 오디오 신호를 생성하기 위해 상기 캡처된 오디오 신호의 적어도 일부분에 걸친 오디오 효과의 삽입을 인에이블하도록 구성됨-;
    상기 식별된 얼굴 표정 트리거가 상기 선택된 가상 아바타에 대응하는 상기 아바타 유형에 대한 대응하는 오디오 효과를 갖는지 여부를 결정하는 단계; 및
    상기 식별된 얼굴 표정 트리거가 상기 선택된 가상 아바타에 대응하는 상기 아바타 유형에 대한 대응하는 오디오 효과를 갖는다는 결정에 따라:
    상기 아바타 유형에 대한 특정 오디오 효과를 검색하는 단계;
    상기 얼굴 특징부 특성들에 적어도 부분적으로 기초하여, 상기 캡처된 오디오 신호로부터, 적어도 상기 특정 오디오 효과를 포함하도록 상기 조정된 오디오 신호를 생성하는 단계;
    상기 얼굴 특징부 특성들 및 상기 특정 오디오 효과를 포함하는 상기 조정된 오디오 신호에 따라 상기 가상 아바타 생성 인터페이스에서 상기 가상 아바타의 제2 미리보기 콘텐츠를 생성하는 단계; 및
    상기 가상 아바타 생성 인터페이스에서 상기 제2 미리보기 콘텐츠를 제시하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 비디오 신호로부터 추출된 상기 얼굴 특징부 특성들과 연관된 얼굴 특징부 메타데이터를 저장하는 단계, 및 상기 오디오 신호로부터 추출된 오디오 특징부 특성들과 연관된 오디오 메타데이터를 저장하는 단계를 더 포함하는, 방법.
  3. 제2항에 있어서, 상기 얼굴 특징부 특성들 및 상기 오디오 특징부 특성들에 적어도 부분적으로 기초하여 상기 얼굴 특징부 메타데이터로부터 조정된 얼굴 특징부 메타데이터를 생성하는 단계를 더 포함하는, 방법.
  4. 제3항에 있어서, 상기 가상 아바타의 상기 제2 미리보기는 상기 조정된 얼굴 메타데이터에 따라 추가로 디스플레이되는, 방법.
  5. 전자 디바이스로서,
    카메라;
    마이크로폰; 및
    상기 카메라 및 상기 마이크로폰과 통신하는 하나 이상의 프로세서들을 포함하며, 상기 하나 이상의 프로세서들은:
    가상 아바타의 제1 미리보기를 디스플레이하는 동안, 가상 아바타 생성 인터페이스에서 입력을 검출하고 복수의 아바타 유형들 중의 아바타 유형에 대응하는 가상 아바타의 선택을 수신하고 - 상기 가상 아바타는 상기 아바타 유형에 대응하여 디스플레이됨 -;
    상기 가상 아바타 생성 인터페이스에서 상기 입력을 검출하는 것에 응답하여:
    상기 카메라를 통해, 상기 카메라의 시야 내의 얼굴과 연관된 비디오 신호를 캡처하는 것;
    상기 마이크로폰을 통해, 상기 캡처된 비디오 신호와 연관된 오디오 신호를 캡처하는 것; 및
    상기 캡처된 비디오 신호로부터 상기 얼굴과 연관된 얼굴 특징부 특성들을 추출하는 것을 포함하는 캡처 세션을 개시하고;
    상기 캡처 세션의 만료를 검출하는 것에 응답하여:
    상기 얼굴 특징부 특성들에 적어도 부분적으로 기초하여 얼굴 표정 트리거를 식별하고 - 상기 얼굴 표정 트리거는 조정된 오디오 신호를 생성하기 위해 상기 캡처된 오디오 신호의 적어도 일부분에 걸친 오디오 효과의 삽입을 인에이블하도록 구성됨-;
    상기 식별된 얼굴 표정 트리거가 상기 선택된 가상 아바타에 대응하는 상기 아바타 유형에 대한 대응하는 오디오 효과를 갖는지 여부를 결정하고;
    상기 식별된 얼굴 표정 트리거가 상기 선택된 가상 아바타에 대응하는 상기 아바타 유형에 대한 대응하는 오디오 효과를 갖는다는 결정에 따라:
    상기 아바타 유형에 대한 특정 오디오 효과를 검색하고;
    상기 얼굴 특징부 특성들에 적어도 부분적으로 기초하여, 상기 캡처된 오디오 신호로부터, 적어도 상기 특정 오디오 효과를 포함하도록 상기 조정된 오디오 신호를 생성하고;
    상기 얼굴 특징부 특성들 및 상기 특정 오디오 효과를 포함하는 상기 조정된 오디오 신호에 따라 상기 가상 아바타 생성 인터페이스에서 상기 가상 아바타의 제2 미리보기를 디스플레이하도록 구성되는, 전자 디바이스.
  6. 제5항에 있어서, 상기 오디오 신호는 상기 가상 아바타의 유형에 적어도 부분적으로 기초하여 추가로 조정되는, 전자 디바이스.
  7. 제6항에 있어서, 상기 가상 아바타의 상기 유형은 상기 가상 아바타 생성 인터페이스에 제시된 아바타 유형 선택 어포던스에 적어도 부분적으로 기초하여 수신되는, 전자 디바이스.
  8. 제6항에 있어서, 상기 가상 아바타의 상기 유형은 동물 유형을 포함하고, 상기 조정된 오디오 신호는 상기 동물 유형과 연관된 미리 결정된 사운드에 적어도 부분적으로 기초하여 생성되는, 전자 디바이스.
  9. 제5항에 있어서, 상기 하나 이상의 프로세서들은 상기 오디오 신호의 일부분이 상기 시야 내의 상기 얼굴에 대응하는지 여부를 결정하도록 추가로 구성되는, 전자 디바이스.
  10. 제9항에 있어서, 상기 하나 이상의 프로세서들은, 상기 오디오 신호의 상기 일부분이 상기 얼굴에 대응한다는 결정에 따라, 상기 조정된 오디오 신호를 생성하는 데 사용하기 위한 상기 오디오 신호의 상기 일부분을 저장하도록 추가로 구성되는, 전자 디바이스.
  11. 제9항에 있어서, 상기 하나 이상의 프로세서들은, 상기 오디오 신호의 상기 일부분이 상기 얼굴에 대응하지 않는다는 결정에 따라, 적어도 상기 오디오 신호의 상기 일부분을 폐기하도록 추가로 구성되는, 전자 디바이스.
  12. 제5항에 있어서, 오디오 특징부 특성들은 상기 시야 내의 상기 얼굴과 연관된 음성의 특징부들을 포함하는, 전자 디바이스.
  13. 제12항에 있어서, 상기 하나 이상의 프로세서들은 상기 비디오 신호로부터 추출된 상기 얼굴 특징부 특성들과 연관된 얼굴 특징부 메타데이터를 저장하도록 추가로 구성되는, 전자 디바이스.
  14. 제13항에 있어서, 상기 하나 이상의 프로세서들은 상기 얼굴 특징부 특성들 및 상기 오디오 특징부 특성들에 적어도 부분적으로 기초하여 조정된 얼굴 메타데이터를 생성하도록 추가로 구성되는, 전자 디바이스.
  15. 제14항에 있어서, 상기 가상 아바타의 상기 제2 미리보기는 상기 조정된 얼굴 메타데이터 및 상기 조정된 오디오 신호에 따라 생성되는, 전자 디바이스.
  16. 컴퓨터 실행가능 명령어들을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 실행가능 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들이:
    가상 아바타의 아바타 비디오 클립을 생성하기 위한 요청을 검출하는 것에 응답하여:
    복수의 아바타 유형들 중의 아바타 유형에 대응하는 상기 가상 아바타의 선택을 수신하는 것;
    전자 디바이스의 카메라를 통해, 상기 카메라의 시야 내의 얼굴과 연관된 비디오 신호를 캡처하는 것;
    상기 전자 디바이스의 마이크로폰을 통해, 오디오 신호를 캡처하는 것; 및
    상기 캡처된 비디오 신호로부터 상기 얼굴과 연관된 얼굴 특징부 특성들을 추출하는 것; 및
    상기 아바타 비디오 클립을 미리보기하기 위한 요청을 검출하는 것에 응답하여:
    상기 얼굴 특징부 특성들에 적어도 부분적으로 기초하여 얼굴 표정 트리거를 식별하는 것 - 상기 얼굴 표정 트리거는 조정된 오디오 신호를 생성하기 위해 상기 캡처된 오디오 신호의 적어도 일부분에 걸친 오디오 효과의 삽입을 인에이블하도록 구성됨-;
    상기 식별된 얼굴 표정 트리거가 상기 선택된 가상 아바타에 대응하는 상기 아바타 유형에 대한 대응하는 오디오 효과를 갖는지 여부를 결정하는 것; 및
    상기 식별된 얼굴 표정 트리거가 상기 선택된 가상 아바타에 대응하는 상기 아바타 유형에 대한 대응하는 오디오 효과를 갖는다는 결정에 따라:
    상기 아바타 유형에 대한 특정 오디오 효과를 검색하는 것;
    상기 얼굴 특징부 특성들에 적어도 부분적으로 기초하여, 상기 캡처된 오디오 신호로부터, 적어도 상기 특정 오디오 효과를 포함하도록 상기 조정된 오디오 신호를 생성하는 것; 및
    상기 특정 오디오 효과를 포함하는 상기 조정된 오디오 신호를 사용하여 상기 가상 아바타의 상기 비디오 클립의 미리보기를 디스플레이하는 것을 포함하는 동작들을 수행하도록 구성하는, 컴퓨터 판독가능 저장 매체.
  17. 제16항에 있어서, 상기 오디오 신호는 상기 얼굴과 연관된 상기 얼굴 특징부 특성들에서 식별된 얼굴 표정에 적어도 부분적으로 기초하여 조정되는, 컴퓨터 판독가능 저장 매체.
  18. 제17항에 있어서, 상기 조정된 오디오 신호는 하나 이상의 미리 저장된 오디오 샘플들을 삽입함으로써 추가로 조정되는, 컴퓨터 판독가능 저장 매체.
  19. 제16항에 있어서, 상기 오디오 신호는 레벨, 음조(pitch), 지속기간, 가변 재생 속도, 스피치 스펙트럼 형식(speech spectral-format) 위치들, 스피치 스펙트럼 형식 레벨들, 순간 재생 속도, 또는 상기 얼굴과 연관된 음성의 변화에 적어도 부분적으로 기초하여 조정되는, 컴퓨터 판독가능 저장 매체.
  20. 제16항에 있어서, 상기 하나 이상의 프로세서들은 상기 가상 아바타의 상기 비디오 클립을 다른 전자 디바이스로 송신하는 것을 포함하는 상기 동작들을 수행하도록 추가로 구성되는, 컴퓨터 판독가능 저장 매체.
KR1020207022657A 2018-02-28 2019-02-26 얼굴 표정들에 기초한 음성 효과들 KR102367143B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/908,603 US20180336716A1 (en) 2017-05-16 2018-02-28 Voice effects based on facial expressions
US15/908,603 2018-02-28
US16/033,111 US10861210B2 (en) 2017-05-16 2018-07-11 Techniques for providing audio and video effects
US16/033,111 2018-07-11
PCT/US2019/019554 WO2019168834A1 (en) 2018-02-28 2019-02-26 Voice effects based on facial expressions

Publications (2)

Publication Number Publication Date
KR20200105700A KR20200105700A (ko) 2020-09-08
KR102367143B1 true KR102367143B1 (ko) 2022-02-23

Family

ID=65812390

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207022657A KR102367143B1 (ko) 2018-02-28 2019-02-26 얼굴 표정들에 기초한 음성 효과들

Country Status (4)

Country Link
KR (1) KR102367143B1 (ko)
CN (2) CN112512649B (ko)
DE (1) DE112019001058T5 (ko)
WO (2) WO2019168834A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111803936B (zh) * 2020-07-16 2024-05-31 网易(杭州)网络有限公司 一种语音通信方法及装置、电子设备、存储介质
CN113891151A (zh) * 2021-09-28 2022-01-04 北京字跳网络技术有限公司 一种音频处理方法、装置、电子设备和存储介质
CN114581567B (zh) * 2022-05-06 2022-08-02 成都市谛视无限科技有限公司 一种声音驱动虚拟形象口型方法、装置及介质
CN116248811B (zh) * 2022-12-09 2023-12-05 北京生数科技有限公司 视频处理方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260984A1 (en) 2006-05-07 2007-11-08 Sony Computer Entertainment Inc. Methods for interactive communications with real time effects and avatar environment interaction
US20150379752A1 (en) 2013-03-20 2015-12-31 Intel Corporation Avatar-based transfer protocols, icon generation and doll animation
US20160006987A1 (en) 2012-09-06 2016-01-07 Wenlong Li System and method for avatar creation and synchronization

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004059051A1 (de) * 2004-12-07 2006-06-08 Deutsche Telekom Ag Verfahren und modellbasiertes Audio- und Videosystem zur Darstellung einer virtuellen Figur
CN101809651B (zh) * 2007-07-31 2012-11-07 寇平公司 提供语音到语音翻译和模拟人类属性的化身的移动无线显示器
CN104115503A (zh) * 2011-12-29 2014-10-22 英特尔公司 使用化身的通信
WO2013152453A1 (en) * 2012-04-09 2013-10-17 Intel Corporation Communication using interactive avatars
KR20130139074A (ko) * 2012-06-12 2013-12-20 삼성전자주식회사 오디오 신호 처리 방법 및 이를 적용한 오디오 신호 처리 장치
US20150031342A1 (en) * 2013-07-24 2015-01-29 Jose Elmer S. Lorenzo System and method for adaptive selection of context-based communication responses
US9607609B2 (en) * 2014-09-25 2017-03-28 Intel Corporation Method and apparatus to synthesize voice based on facial structures
CN107077750A (zh) * 2014-12-11 2017-08-18 英特尔公司 化身选择机制
CN105797374A (zh) * 2014-12-31 2016-07-27 深圳市亿思达科技集团有限公司 一种配合脸部表情跟随发出相应语音的方法和终端
EP3275122A4 (en) * 2015-03-27 2018-11-21 Intel Corporation Avatar facial expression and/or speech driven animations
CN107742515A (zh) * 2017-09-11 2018-02-27 广东欧珀移动通信有限公司 语音处理方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260984A1 (en) 2006-05-07 2007-11-08 Sony Computer Entertainment Inc. Methods for interactive communications with real time effects and avatar environment interaction
US20160006987A1 (en) 2012-09-06 2016-01-07 Wenlong Li System and method for avatar creation and synchronization
US20150379752A1 (en) 2013-03-20 2015-12-31 Intel Corporation Avatar-based transfer protocols, icon generation and doll animation

Also Published As

Publication number Publication date
CN112512649B (zh) 2024-05-24
WO2020013891A1 (en) 2020-01-16
DE112019001058T5 (de) 2020-11-05
CN112512649A (zh) 2021-03-16
CN111787986A (zh) 2020-10-16
KR20200105700A (ko) 2020-09-08
WO2019168834A1 (en) 2019-09-06

Similar Documents

Publication Publication Date Title
US20180336716A1 (en) Voice effects based on facial expressions
KR102367143B1 (ko) 얼굴 표정들에 기초한 음성 효과들
US10861210B2 (en) Techniques for providing audio and video effects
US11202131B2 (en) Maintaining original volume changes of a character in revoiced media stream
US11159597B2 (en) Systems and methods for artificial dubbing
CN111294463B (zh) 一种智能应答方法及系统
US20150287403A1 (en) Device, system, and method of automatically generating an animated content-item
KR20070020252A (ko) 메시지를 수정하기 위한 방법 및 시스템
US20150046164A1 (en) Method, apparatus, and recording medium for text-to-speech conversion
US20200166670A1 (en) Personalizing weather forecast
CN113392201A (zh) 信息交互方法、装置、电子设备、介质和程序产品
CN104994921A (zh) 用于分布式故事阅读的视觉内容修改
JP2003521750A (ja) スピーチシステム
CN104918670A (zh) 用于故事阅读的基于位置的增强
US10812430B2 (en) Method and system for creating a mercemoji
KR20130116349A (ko) 입력 지원 장치, 입력 지원 방법 및 기록 매체
US20170169857A1 (en) Method and Electronic Device for Video Play
TWI807428B (zh) 一同管理與語音檔有關的文本轉換記錄和備忘錄的方法、系統及電腦可讀記錄介質
KR20240038941A (ko) 텍스트 기반 아바타 생성 방법 및 시스템
US10347299B2 (en) Method to automate media stream curation utilizing speech and non-speech audio cue analysis
JP4917920B2 (ja) コンテンツ生成装置及びコンテンツ生成プログラム
KR102184053B1 (ko) 대사를 캐릭터별 상이한 목소리로 변환하여 전달하는 웹툰 동영상 생성 방법
JP4625058B2 (ja) 仮想空間放送装置
CN115811665A (zh) 一种视频生成方法、装置、终端设备及存储介质
KR102679446B1 (ko) 발화 비디오 제공 장치 및 방법

Legal Events

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