KR20240027071A - 가상 메타버스에서의 공간화된 오디오 채팅 - Google Patents

가상 메타버스에서의 공간화된 오디오 채팅 Download PDF

Info

Publication number
KR20240027071A
KR20240027071A KR1020247003111A KR20247003111A KR20240027071A KR 20240027071 A KR20240027071 A KR 20240027071A KR 1020247003111 A KR1020247003111 A KR 1020247003111A KR 20247003111 A KR20247003111 A KR 20247003111A KR 20240027071 A KR20240027071 A KR 20240027071A
Authority
KR
South Korea
Prior art keywords
audio
avatar
user
metaverse
location
Prior art date
Application number
KR1020247003111A
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 로브록스 코포레이션
Publication of KR20240027071A publication Critical patent/KR20240027071A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S7/00Indicating arrangements; Control arrangements, e.g. balance control
    • H04S7/30Control circuits for electronic adaptation of the sound field
    • H04S7/302Electronic adaptation of stereophonic sound system to listener position or orientation
    • H04S7/303Tracking of listener position or orientation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/157Conference systems defining a virtual conference space and using avatars or agents
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S3/00Systems employing more than two channels, e.g. quadraphonic
    • H04S3/008Systems employing more than two channels, e.g. quadraphonic in which the audio signals are in digital form, i.e. employing more than two discrete digital channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S2400/00Details of stereophonic systems covered by H04S but not provided for in its groups
    • H04S2400/01Multi-channel, i.e. more than two input channels, sound reproduction with two speakers wherein the multi-channel information is substantially preserved
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S2400/00Details of stereophonic systems covered by H04S but not provided for in its groups
    • H04S2400/11Positioning of individual sound objects, e.g. moving airplane, within a sound field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S2400/00Details of stereophonic systems covered by H04S but not provided for in its groups
    • H04S2400/15Aspects of sound capture and related signal processing for recording or reproduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S2420/00Techniques used stereophonic systems covered by H04S but not provided for in its groups
    • H04S2420/01Enhancing the perception of the sound image or of the spatial distribution using head related transfer functions [HRTF's] or equivalents thereof, e.g. interaural time difference [ITD] or interaural level difference [ILD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Processing Or Creating Images (AREA)

Abstract

여기에 개시된 구현은 가상 경험에서 공간화된 오디오를 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능 매체에 관한 것이다. 공간화된 오디오는 예컨대 음성 및/또는 비디오 채팅과 같은 음성 통신에 사용될 수 있다. 채팅에는 클라이언트 장치에서 또는 온라인 경험 플랫폼에서 결합되고 특정 사용자를 대상으로 하는 공간화된 오디오가 포함될 수 있다. 개별 오디오 스트림은 복수의 아바타 및 기타 객체로부터 수집될 수 있으며 대상 사용자를 기반으로 결합될 수 있다. 오디오에는 가상 경험에서 풍부하고 몰입감 있는 오디오 스트림을 제공하기 위해 배경 및/또는 주변 사운드도 포함될 수 있다.

Description

가상 메타버스에서의 공간화된 오디오 채팅
본 출원은 2021년 7월 15일에 출원되고, “가상 메타버스에서의 공간화된 오디오 채팅(SPATIALIZED AUDIO CHAT IN A VIRTUAL METAVERSE)”이라는 제목의, 미국 특허 가출원 번호 제63/222,304호에 대한 우선권을 주장하며, 그 전체 내용은 여기에서 참조로 포함된다.
실시예는 일반적으로 컴퓨터 장치를 통한 오디오 출력에 관한 것이며, 보다 구체적으로는, 가상 메타버스의 메타버스 장소와 같은, 가상 몰입형 환경(virtual immersive environment)에서 공간화된 오디오를 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능 매체에 관한 것이다.
컴퓨터 오디오(예컨대, 컴퓨터 장치의 사용자 간의 채팅)는 종종 리스닝 장치 또는 마이크로폰으로부터 수신될 때 제공되는 모노럴 또는 스테레오 오디오로 구성된다. 제공된 오디오는 일반적으로 필터링되지 않거나 최소한으로 필터링되며, 채팅에 참여하는 사용자를 나타내는 두 아바타의 실제 가상 위치에도 불구하고 부족(sterile)하거나 직접적으로 들릴 수 있다. 가상 경험이 더욱 시각적으로 몰입감 있게 되면서, 제공된 오디오의 단순한 특성이 집중이 안되게 하고, 그리고/또는 몰입감 있는 경험을 떨어뜨리게 되어, 예컨대, 사용자가 경험에서 이탈하게 한다.
여기에서 제공된 배경 설명은 본 개시의 맥락을 제시하는 목적을 위한 것이다. 출원 당시 선행 기술로 달리 자격이 없을 수 있는 설명의 양태뿐만 아니라, 이 배경 섹션에 설명된 범위 내에서 현재 명명된 발명가의 작업은 명시적으로나 묵시적으로 본 개시에 대한 선행 기술로 인정되지 않는다.
본 출원의 구현은 가상 메타버스에서 공간화된 오디오를 제공하는 것에 관한 것이다.
일 양상에 따르면, 가상 메타버스에서의 공간화된 오디오의 컴퓨터-구현 방법이 개시되며, 방법은: 복수의 사용자의 제1 사용자로부터 상기 가상 메타버스의 메타버스 장소와 연관된 오디오를 수신하라는 요청을 수신하는 단계 - 여기서 상기 제1 사용자는 사용자 장치와 연관되고, 상기 복수의 사용자는 상기 메타버스 장소에서의 복수의 아바타의 각 아바타와 연관됨 -; 상기 메타버스 장소와 연관된 데이터 모델을 검색하는 단계 - 여기서 상기 데이터 모델은 상기 메타버스 장소에 적용되는 하나 이상의 물리 법칙을 나타내는 하나 이상의 공간 매개변수를 포함함 -; 상기 데이터 모델로부터 아바타 정보 및 장면 정보를 추출하는 단계 - 여기서 상기 아바타 정보는: 상기 제1 사용자와 연관된 제1 아바타를 포함하는 상기 메타버스 장소에서의 상기 복수의 아바타의 위치, 속도, 또는 방향 중 하나 이상을 포함하고, 상기 장면 정보는: 상기 메타버스 장소에서의 상기 제1 아바타에 가상으로 근접한 오클루전, 잔향 또는 가상 벽 중 하나 이상을 포함함 -; 상기 아바타 정보 및 상기 장면 정보에 기초한 상기 복수의 사용자의 각 사용자로부터 수신된 각 오디오 스트림, 및 공간화된 오디오 스트림을 생성하기 위한 상기 하나 이상의 공간 매개변수에 기초한 상기 각 오디오 스트림 중 적어도 하나의 하나 이상의 오디오 특성을 변환하는 단계; 결합된 공간화된 오디오 스트림을 생성하기 위하여 상기 공간화된 오디오 스트림을 결합하는 단계; 및 상기 결합된 공간화된 오디오 스트림을 상기 사용자 장치로 제공하는 단계를 포함한다.
컴퓨터 구현된 방법의 다양한 구현이 여기에서 설명된다.
일부 구현에서, 상기 공간 매개변수는 아바타 사이의 거리에 기초하여 오디오를 감쇠시키는 거리 감쇠 매개변수를 포함한다.
일부 구현에서, 상기 복수의 사용자의 각각의 사용자로부터 수신된 상기 각 오디오 스트림은 마이크로폰 장치에서 수신된 모노럴 오디오를 포함하고, 상기 결합된 공간화된 오디오 스트림은 스테레오 오디오를 포함한다.
일부 구현에서, 상기 결합된 공간화된 오디오 스트림은 각 사용자의 모노럴 오디오를 상기 각 사용자의 아바타의 위치에 배치함으로써 생성된 스테레오 오디오를 포함한다.
일부 구현에서, 상기 결합된 공간화된 오디오 스트림은 배경 오디오 및 상기 제1 사용자 이외의 상기 복수의 사용자의 사용자로부터 수신된 상기 오디오 스트림에 기초한 공간 오디오를 포함하고, 상기 배경 오디오는: 상기 제1 사용자와 별개인 다른 사용자로부터 수신된 오디오; 및 상기 메타버스 장소 내의 아바타의 움직임을 기반으로 생성된 오디오 중 하나 이상에 기초하여 생성된다.
일부 구현에서, 컴퓨터-구현 방법은 상기 복수의 사용자의 각각의 사용자로부터 수신된 우선순위화된 오디오 스트림 세트를 결정하는 단계를 더 포함하며, 여기서 각 오디오 스트림을 변환하는 단계는 상기 공간화된 오디오 스트림을 생성하기 위해 상기 우선순위화된 오디오 스트림 세트를 변환하는 단계를 더 포함한다.
일부 구현에서, 상기 우선순위화된 오디오 스트림 세트를 결정하는 단계는: 상기 메타버스 장소에서의 아바타의 근접성, 상기 메타버스 장소에서의 아바타의 속도, 상기 메타버스 장소에서의 아바타의 방향, 상기 메타버스 장소 내의 아바타에 근접한 가상 객체, 상기 사용자 장치의 성능, 또는 상기 제1 사용자의 사용자 선호도 중 하나 이상에 기초하여 상기 복수의 사용자의 각 사용자로부터 수신된 오디오 스트림의 우선순위를 지정하는 단계를 포함한다.
일부 구현에서, 수신하는 아바타에 더 가까운 아바타와 연관된 오디오 스트림이 상기 수신하는 아바타로부터 더 멀리 있는 아바타와 연관된 오디오 스트림보다 우선순위가 되고, 수신하는 아바타를 향해 지향되는 아바타와 연관된 오디오 스트림이 수신하는 아바타와 다른 데로 지향되는 아바타와 연관된 오디오 스트림보다 우선순위가 되고, 수신하는 아바타를 향해 움직이는 아바타와 연관된 오디오 스트림이 수신하는 아바타로부터 멀어지는 아바타와 연관된 오디오 스트림보다 우선순위가 된다.
다른 측면에 따르면, 가상 메타버스에서의 공간화된 오디오를 제공하는 컴퓨터-구현 방법이 개시되며, 방법은: 복수의 사용자의 제1 사용자로부터 상기 가상 메타버스의 메타버스 장소와 연관된 오디오를 수신하라는 요청을 수신하는 단계 - 여기서 상기 제1 사용자는 사용자 장치와 연관되고, 상기 복수의 사용자는 상기 메타버스 장소에서의 복수의 아바타의 각 아바타와 연관됨 -; 상기 복수의 사용자의 각각의 사용자로부터 수신된 우선순위화된 오디오 스트림 세트를 결정하는 단계; 공간화된 오디오 스트림을 생성하기 위해 상기 우선순위화된 오디오 스트림 세트를 변환하는 단계; 결합된 공간화된 오디오 스트림을 생성하기 위해 상기 공간화된 오디오 스트림을 결합하는 단계; 및 상기 결합된 공간화된 오디오 스트림을 상기 사용자 장치로 제공하는 단계를 포함한다.
컴퓨터-구현 방법의 다양한 구현이 여기에서 설명된다.
일부 구현에서, 상기 우선순위화된 오디오 스트림 세트를 결정하는 단계는: 상기 메타버스 장소에서의 아바타의 근접성, 상기 메타버스 장소에서의 아바타의 속도, 상기 메타버스 장소에서의 아바타의 방향, 상기 메타버스 장소 내의 아바타에 근접한 가상 객체, 상기 사용자 장치의 성능, 또는 상기 제1 사용자의 사용자 선호도 중 하나 이상에 기초하여 상기 복수의 사용자의 각 사용자로부터 수신된 오디오 스트림의 우선순위를 지정하는 단계를 포함한다.
일부 구현에서, 수신하는 아바타에 더 가까운 아바타와 연관된 오디오 스트림이 상기 수신하는 아바타로부터 더 멀리 있는 아바타와 연관된 오디오 스트림보다 우선순위가 되고, 수신하는 아바타를 향해 지향되는 아바타와 연관된 오디오 스트림이 수신하는 아바타와 다른 데로 지향되는 아바타와 연관된 오디오 스트림보다 우선순위가 되고, 수신하는 아바타를 향해 움직이는 아바타와 연관된 오디오 스트림이 수신하는 아바타로부터 멀어지는 아바타와 연관된 오디오 스트림보다 우선순위가 된다.
또 다른 양상에 따르면, 시스템이 개시되며, 시스템은: 그 위에 저장된 명령어를 갖는 메모리; 및 상기 메모리에 결합되고, 상기 메모리에 액세스하도록 구성된 처리 장치를 포함하며, 상기 명령어는 상기 처리 장치에 의해 실행될 때 상기 처리 장치로 하여금: 복수의 사용자의 제1 사용자로부터 상기 가상 메타버스의 메타버스 장소와 연관된 오디오를 수신하라는 요청을 수신하는 것 - 여기서 상기 제1 사용자는 사용자 장치와 연관되고, 상기 복수의 사용자는 상기 메타버스 장소에서의 복수의 아바타의 각 아바타와 연관됨 -; 상기 메타버스 장소와 연관된 데이터 모델을 검색하는 것 - 상기 데이터 모델은 상기 메타버스 장소에 적용되는 하나 이상의 물리 법칙을 나타내는 하나 이상의 공간 매개변수를 포함함 -; 상기 데이터 모델로부터 아바타 정보 및 장면 정보를 추출하는 것 - 여기서 상기 아바타 정보는: 상기 제1 사용자와 연관된 제1 아바타를 포함하는 상기 메타버스 장소에서의 상기 복수의 아바타의 위치, 속도, 또는 방향 중 하나 이상을 포함하고, 상기 장면 정보는: 상기 메타버스 장소에서의 상기 제1 아바타에 가상으로 근접한 오클루전, 잔향 또는 가상 벽 중 하나 이상을 포함함 -; 상기 아바타 정보 및 상기 장면 정보에 기초한 상기 복수의 사용자의 각각의 사용자로부터 수신된 각 오디오 스트림, 및 공간화된 오디오 스트림을 생성하기 위해 상기 하나 이상의 공간 매개변수에 기초한 상기 각 오디오 스트림 중 적어도 하나의 하나 이상의 오디오 특성을 변환하는 것; 결합된 공간화된 오디오 스트림을 생성하기 위하여 상기 공간화된 오디오 스트림을 결합하는 것; 및 상기 결합된 공간화된 오디오 스트림을 상기 사용자 장치로 제공하는 것을 포함하는 동작을 수행하게 한다.
시스템의 다양한 구현이 여기에서 설명된다.
일부 구현에서, 상기 공간 매개변수는 아바타 사이의 거리에 기초하여 오디오를 감쇠시키는 거리 감쇠 매개변수를 포함한다.
일부 구현에서, 상기 복수의 사용자의 각각의 사용자로부터 수신된 상기 각 오디오 스트림은 마이크로폰 장치에서 수신된 모노럴 오디오를 포함하고, 상기 결합된 공간화된 오디오 스트림은 스테레오 오디오를 포함한다.
일부 구현에서, 상기 결합된 공간화된 오디오 스트림은 각각의 사용자의 모노럴 오디오를 상기 각각의 사용자의 아바타의 위치에 배치함으로써 생성된 스테레오 오디오를 포함한다.
일부 구현에서, 상기 결합된 공간화된 오디오 스트림은 배경 오디오 및 상기 제1 사용자 이외의 상기 복수의 사용자의 사용자로부터 수신된 상기 오디오 스트림에 기초한 공간 오디오를 포함하고, 상기 배경 오디오는: 상기 제1 사용자와 별개인 다른 사용자로부터 수신된 오디오; 및 상기 메타버스 장소 내의 아바타의 움직임을 기반으로 생성된 오디오 중 하나 이상에 기초하여 생성된다.
일부 구현에서, 상기 동작은: 상기 복수의 사용자의 각각의 사용자로부터 수신된 우선순위화된 오디오 스트림 세트를 결정하는 것을 더 포함하며, 여기서 각 오디오 스트림을 변환하는 것은 상기 공간화된 오디오 스트림을 생성하기 위해 상기 우선순위화된 오디오 스트림 세트를 변환하는 것을 더 포함한다.
일부 구현에서, 상기 우선순위화된 오디오 스트림 세트를 결정하는 것은: 상기 메타버스 장소에서의 아바타의 근접성, 상기 메타버스 장소에서의 아바타의 속도, 상기 메타버스 장소에서의 아바타의 방향, 상기 메타버스 장소 내의 아바타에 근접한 가상 객체, 상기 사용자 장치의 성능, 또는 상기 제1 사용자의 사용자 선호도 중 하나 이상에 기초하여 상기 복수의 사용자의 각각의 사용자로부터 수신된 오디오 스트림의 우선순위를 지정하는 것을 포함한다.
일부 구현에서, 수신하는 아바타에 더 가까운 아바타와 연관된 오디오 스트림이 상기 수신하는 아바타로부터 더 멀리 있는 아바타와 연관된 오디오 스트림보다 우선순위가 되고, 수신하는 아바타를 향해 지향되는 아바타와 연관된 오디오 스트림이 연관된 오디오 스트림보다 우선순위가 된다.
일부 구현에서, 시스템은: 상기 복수의 사용자의 각각의 사용자로부터 수신된 상기 각 오디오 스트림을 변환하도록 구성된 공간화된 오디오 매니저; 및 상기 결합된 공간화된 오디오 스트림을 상기 사용자 장치로 제공하기 전에 상기 사용자 장치에서 비공간화된 오디오를 비활성화하도록 구성된 오디오 장치 오버라이드 모듈을 더 포함한다.
또 다른 양상에 따르면, 비일시적 컴퓨터 판독 가능 매체가 제공된다. 그 위에 저장된 명령어를 가진 비일시적 컴퓨터 판독 가능 매체로서 처리 장치에 의한 실행에 응답하여 처리 장치가: 가상 메타버스의 메타버스 장소와 연관된 데이터 모델을 검색하는 것 - 여기서 데이터 모델은 메타버스 장소에 적용되는 물리 법칙 그룹을 나타내는 하나 이상의 공간 매개변수를 포함함 -; 복수의 사용자의 제1 사용자로부터 메타버스 장소에 참가하라는 요청을 수신하는 것- 여기서 제1 사용자는 제1 아바타 및 사용자 장치와 연관되고, 복수의 사용자는 메타버스 장소에서의 복수의 아바타와 연관됨 -; 상기 요청에 응답하여 상기 데이터 모델로부터 아바타 정보 및 장면 정보를 추출하는 것 - 여기서 상기 아바타 정보는: 상기 메타버스 장소에서의 상기 제1 아바타 및 상기 복수의 아바타의 위치, 속도, 또는 방향 중 하나 이상을 포함하고, 상기 장면 정보는: 제1 아바타에 가상으로 근접한 오클루전, 잔향, 또는 가상 벽 중 하나 이상을 포함함 -; 공간 매개변수를 이용하여 아바타 정보 및 장면 정보에 기초하여 복수의 사용자의 각 사용자로부터 수신된 각 오디오 스트림을 변환하는 것 - 여기서 변환하는 것은 공간화된 오디오 스트림을 생성하기 위해 하나 이상의 오디오 특성을 수정하는 것을 포함함 -; 결합된 공간화된 오디오 스트림을 생성하기 위해 공간화된 오디오 스트림을 결합하는 것; 및 결합된 공간화된 오디오 스트림을 사용자 장치로 제공하는 것을 포함하는 동작을 수행하게 한다.
비일시적 컴퓨터 판독 가능 매체의 다양한 구현이 여기에서 설명된다.
또 다른 양태에 따르면, 시스템, 방법 및 비일시적 컴퓨터 판독 가능 매체의 부분, 특징 및 구현 세부사항이 추가 양태를 형성하도록 결합될 수 있고, 이는 개별 컴포넌트 또는 특징의 일부 또는 부분을 생략 및/또는 수정하고, 추가 컴포넌트 또는 특징 및/또는 다른 수정을 포함하며; 그러한 모든 수정은 본 개시의 범위 내에 있는, 일부 양태를 포함한다.
도 1은 일부 구현에 따른, 가상 메타버스에서 공간화된 오디오 채팅을 제공하기 위한 예시적인 네트워크 환경의 다이어그램이다.
도 2a는 일부 구현에 따른, 가상 메타버스에서 공간화된 오디오 채팅을 제공하기 위한 예시적인 네트워크 환경의 다이어그램이다.
도 2b는 일부 구현에 따른, 가상 메타버스에서 공간화된 오디오 채팅을 제공하기 위한 예시적인 네트워크 환경의 다이어그램이다.
도 3은 일부 구현에 따른, 가상 메타버스에서 공간화된 오디오 스트림의 우선순위를 지정하기 위한 예시적인 네트워크 환경의 다이어그램이다.
도 4는 일부 구현에 따른, 가상 경험 내의 예시적인 3차원 메타버스 장소를 도시하는 다이어그램이다.
도 5는 일부 구현에 따른, 가상 경험 내의 예시적인 3차원 메타버스 장소를 도시하는 다이어그램이다.
도 6은 일부 구현에 따른, 가상 메타버스에서 공간화된 오디오 채팅을 제공하기 위한 예시적인 방법의 흐름도이다.
도 7은 일부 구현에 따른, 가상 메타버스에서 공간화된 오디오 스트림의 우선순위를 지정하기 위한 예시적인 방법의 흐름도이다.
도 8은 일부 구현에 따른, 여기에서 설명된 하나 이상의 특징을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 장치를 예시하는 블록도이다.
여기에 개시된 하나 이상의 구현은 온라인 게임 플랫폼과 연관된 공간화된 오디오에 관한 것이다. 특징은 가상 메타버스의 메타버스 장소에서의 가상 객체, 아바타 및 기타 아이템과 관련된 위치, 속도 및/또는 기타 요소를 기반으로 공간화된 오디오를 제공하는 것뿐만 아니라 공간화된 오디오 스트림을 자동으로 우선순위 화하는 것(prioritizing)을 포함할 수 있다.
여기에 개시된 특징은 예컨대 온라인 경험 플랫폼 또는 온라인 게이밍 플랫폼과 같은 온라인 플랫폼에 연결된 클라이언트 장치에서의 출력을 위한 공간화된 오디오를 제공한다. 온라인 플랫폼은 이와 연관된 복수의 메타버스 장소를 갖는 가상 메타버스를 제공할 수 있다. 사용자와 연관된 가상 아바타는 메타버스 장소는 물론, 메타버스 장소 내의 아이템, 캐릭터, 기타 아바타 및 객체를 탐색하고 인터랙팅할 수 있다. 아바타는 보다 몰입되고 즐거운 경험을 제공하는 공간화된 오디오를 경험하면서 하나의 메타버스 장소에서 다른 메타버스 장소로 이동할 수 있다. 복수의 사용자(예컨대, 또는 복수의 사용자와 연관된 아바타)로부터의 공간화된 오디오 스트림은 많은 요소에 기초하여 우선순위가 지정될 수 있으므로, 클라이언트 장치의 대역폭, 처리 및 기타 성능 뿐만 아니라 아바타 및 캐릭터의 위치, 속도, 움직임 및 동작을 고려하면서 풍부한 오디오가 제공될 수 있다.
서로 다른 오디오 스트림의 우선순위 지정 및 결합을 통해, 결합된 공간화된 오디오 스트림은 가상, 몰입형 경험을 손상시키지 않으면서 저감된 대역폭 뿐만 아니라 풍부한 사용자 경험, 공간화된 오디오 제공을 위한 저감된 계산 수를 제공하는 클라이언트 장치에서의 출력을 위해 제공될 수 있다. 또한 사용자와 개발자가 거의 모든 온라인 경험에 대해 공간화된 오디오를 구현할 수 있도록 하는 공간 오디오 애플리케이션 프로그래밍 인터페이스(API)가 정의되어 있어 사용자와 개발자의 저감된 기술 숙련도를 요구하면서도 몰입형 오디오가 포함된 고품질 온라인 가상 경험, 게임, 메타버스 장소 및 기타 인터랙션을 제작할 수 있게 한다.
온라인 경험 플랫폼("사용자 생성 콘텐츠 플랫폼" 또는 "사용자 생성 콘텐츠 시스템"이라고도 지칭됨)은 사용자가 서로 인터랙팅하기 위한 다양한 방법을 제공한다. 예컨대, 온라인 경험 플랫폼의 사용자는 온라인 플랫폼 내에서 게임 또는 다른 콘텐츠 또는 리소스(예컨대, 캐릭터, 그래픽, 가상 메타버스 내 사용 및/또는 게임 플레이를 위한 아이템 등)를 제작할 수 있다.
온라인 경험 플랫폼의 사용자는 메타버스 장소, 게임, 또는 게임 제작에서 공동의 목표를 향해 함께 작업하고, 다양한 가상 아이템(예컨대, 인벤토리 아이템, 게임 아이템 등)을 공유하고, 오디오 채팅(예컨대, 공간화된 오디오 채팅)에 참여하고, 서로에게 전자 메시지를 전송하는 것 등을 할 수 있다. 온라인 경험 플랫폼의 사용자는 예컨대, 캐릭터(아바타) 또는 다른 게임 객체 및 메커니즘을 포함하는, 게임을 플레이하고, 서로 인터랙팅할 수 있다. 온라인 경험 플랫폼은 또한 플랫폼의 사용자가 서로 통신할 수 있도록 허용한다. 예컨대, 온라인 경험 플랫폼의 사용자는 음성 메시지(예컨대, 공간화된 오디오가 있는 음성 채팅을 통해), 텍스트 메시지, 비디오 메시지(예컨대, 공간화된 오디오를 포함하여) 또는 상기의 조합을 사용하여, 서로 통신할 수 있다. 일부 온라인 경험 플랫폼은 사용자가 서로 인터랙팅하거나, 온라인 게임을 플레이할 수 있는 가상의 3차원 환경 또는 메타버스 내에서 링크된 다수의 환경을 제공할 수 있다.
온라인 경험 플랫폼의 엔터테인먼트 가치를 향상시키기 위해 플랫폼은 사용자 장치에서 재생을 위해 풍부한 오디오를 제공할 수 있다. 오디오에는 예컨대 배경 오디오뿐만 아니라 서로 다른 사용자의 서로 다른 오디오 스트림이 포함될 수 있다. 여기에 설명된 다양한 구현에 따르면, 서로 다른 오디오 스트림이 공간화된 오디오 스트림으로 변환될 수 있다. 공간화된 오디오 스트림은 예컨대 클라이언트 장치에서의 재생을 위해 결합된 공간화된 오디오 스트림을 제공하기 위해 결합될 수 있다. 더욱이, 몰입감 있고 공간화된 오디오를 계속 제공하면서 대역폭이 감소되도록 우선순위화된 오디오 스트림이 제공될 수 있다. 더욱이, 배경 오디오 스트림은 공간화된 오디오와 결합되어 현실적인 배경 소음/효과도 또한 사용자에게 재생될 수 있다. 더 나아가, 주변 매체(공기, 물, 기타 등), 잔향(reverberation), 반사, 구멍 크기, 벽 밀도, 천장 높이, 출입구, 복도, 객체 배치, 비플레이어 객체/캐릭터, 및 기타 특성과 같은 메타버스 장소의 특성은 온라인 가상 경험 내에서 현실감과 몰입감을 높이기 위해 공간화된 오디오 및/또는 배경 오디오를 생성하는 데 활용된다.
도 1-3: 시스템 아키텍처
도 1은 본 개시의 일부 구현에 따른, 예시적인 네트워크 환경(100)을 예시한다. 네트워크 환경(100)(여기서 "시스템"이라고도 지칭됨)은 온라인 경험 플랫폼(102), 제1 클라이언트 장치(110), 제2 클라이언트 장치(116)(일반적으로 여기에서 "클라이언트 장치(110/116)"라고 지칭됨)를 포함하고, 모두 네트워크(122)를 통해 연결된다. 온라인 경험 플랫폼(102)은 그 중에서도, 게임 엔진(104), 하나 이상의 게임(105), 공간화된 오디오 API(106), 및 데이터 저장소(108)를 포함할 수 있다. 클라이언트 장치(110)는 게임 애플리케이션(112)을 포함할 수 있고, 클라이언트 장치(116)는 게임 애플리케이션(118)을 포함할 수 있다. 사용자(114 및 120)는 온라인 경험 플랫폼(102) 및 온라인 경험 플랫폼(102)을 이용하는 다른 사용자와 인터랙팅하기 위해 각각 클라이언트 장치(110 및 116)를 사용할 수 있다.
네트워크 환경(100)은 예시를 위해 제공된다. 일부 구현에서, 네트워크 환경(100)은 도 1에 도시된 것과 동일하거나 상이한 방식으로 구성된 동일하거나, 더 적거나, 더 많거나, 상이한 요소를 포함할 수 있다.
일부 구현에서, 네트워크(122)는 공중 네트워크(예컨대, 인터넷), 사설 네트워크(예컨대, LAN(local area network) 또는 WAN(wide area network)), 유선 네트워크(예컨대, 이더넷 네트워크), 무선 네트워크(예컨대, 802.11 네트워크, Wi-Fi® 네트워크 또는 무선 LAN(WLAN)), 셀룰러 네트워크(예컨대, LTE(long term evolution) 네트워크), 라우터, 허브, 스위치, 서버 컴퓨터 또는 이들의 조합을 포함할 수 있다.
일부 구현에서, 데이터 저장소(108)는 비일시적 컴퓨터 판독가능 메모리(예컨대, 랜덤 액세스 메모리), 캐시, 드라이브(예컨대, 하드 드라이브), 플래시 드라이브, 데이터베이스 시스템, 또는 데이터를 저장할 수 있는 다른 유형의 컴포넌트 또는 장치일 수 있다. 데이터 저장소(108)는 또한 다수의 컴퓨팅 장치(예컨대, 다수의 서버 컴퓨터)에 걸쳐 있을 수 있는 다수의 저장 컴포넌트(예컨대, 다수의 드라이브 또는 다수의 데이터베이스)를 포함할 수 있다.
일부 구현에서, 온라인 경험 플랫폼(102)은 하나 이상의 컴퓨팅 장치(예컨대, 클라우드 컴퓨팅 시스템, 랙마운트 서버(rackmount server), 서버 컴퓨터, 물리적 서버의 클러스터, 가상 서버 등)를 갖는 서버를 포함할 수 있다. 일부 구현에서, 서버는 온라인 경험 플랫폼(102)에 포함될 수 있거나, 독립적인 시스템일 수 있거나, 또는 다른 시스템이나 플랫폼의 일부일 수 있다.
일부 구현에서, 온라인 경험 플랫폼(102)은 하나 이상의 컴퓨팅 장치(예컨대, 랙마운트 서버, 라우터 컴퓨터, 서버 컴퓨터, 개인용 컴퓨터, 메인프레임 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 데스크톱 컴퓨터 등), 데이터 저장소(예컨대, 하드 디스크, 메모리, 데이터베이스), 네트워크, 소프트웨어 컴포넌트 및/또는 온라인 경험 플랫폼(102)에서 동작을 수행하고 온라인 경험 플랫폼(102)에 대한 액세스를 사용자에게 제공하는 데 사용될 수 있는 하드웨어 컴포넌트를 포함할 수 있다. 온라인 경험 플랫폼(102)은 또한 온라인 경험 플랫폼(102)에 의해 제공된 콘텐츠에 대한 액세스를 사용자에게 제공하는 데 사용될 수 있는 웹 사이트(예컨대, 하나 이상의 웹페이지) 또는 애플리케이션 백 엔드 소프트웨어(application back-end software)를 포함할 수 있다. 예컨대, 사용자(114/120)는 각각 클라이언트 장치(110/116) 상의 게임 애플리케이션(112/118)을 사용하여 온라인 경험 플랫폼(102)에 액세스할 수 있다.
일부 구현에서, 온라인 경험 플랫폼(102)은 사용자 간의 연결을 제공하는 소셜 네트워크의 유형, 또는 사용자(예컨대, 최종 사용자 또는 소비자)가 온라인 경험 플랫폼(102)을 통해 다른 사용자와 통신할 수 있도록 허용하는 사용자 생성 콘텐츠 시스템의 유형을 포함할 수 있으며, 여기에서 통신은 음성 채팅(예컨대, 공간화된 오디오가 있거나 없는 동기 및/또는 비동기 음성 통신), 비디오 채팅(예컨대, 공간화된 오디오가 있거나 없는 동기 및/또는 비동기 비디오 통신), 또는 텍스트 채팅(예컨대, 동기 및/또는 비동기 텍스트 기반 통신)을 포함할 수 있다.
본 개시의 일부 구현에서, "사용자"는 단일 개인으로 표현될 수 있다. 그러나, 본 개시의 다른 구현은 사용자의 세트 또는 자동화된 소스에 의해 제어되는 엔티티인 "사용자"(예컨대, 사용자 생성)를 포함한다. 예컨대, 사용자 생성 콘텐츠 시스템에서 커뮤니티 또는 그룹으로 연합된 개별 사용자의 세트는 "사용자"로 간주될 수 있다.
일부 구현에서, 온라인 경험 플랫폼(102)은 가상 게이밍 플랫폼일 수 있다. 예컨대, 게이밍 플랫폼은 네트워크(122)를 통해 클라이언트 장치(110/116)를 사용하여 게임(예컨대, 사용자 생성 게임 또는 다른 게임)에 액세스하거나 인터랙팅할 수 있는 사용자의 커뮤니티에 싱글 플레이어 또는 멀티 플레이어 게임을 제공할 수 있다. 일부 구현에서, 게임(여기에서 “비디오 게임", “온라인 게임”, “메타버스 공간” 또는 "가상 경험"이라고도 지칭함)은 예컨대, 이차원(2D) 게임, 삼차원(3D) 게임(예컨대, 3D 사용자 생성 게임), 가상 현실(VR) 게임 또는 증강 현실(AR) 게임일 수 있다. 일부 구현에서, 사용자는 게임 및 게임 아이템을 검색하고, 하나 이상의 게임에서 다른 사용자와 함께 게임플레이에 참가할 수 있다. 일부 구현에서, 게임은 게임의 다른 사용자와 실시간으로 플레이될 수 있다. 유사하게, 일부 사용자는 게임의 다른 사용자와 실시간 음성 또는 영상 채팅에 참여할 수 있다. 여기에서 설명된 바와 같이, 실시간 음성 또는 비디오 채팅은 공간화된 오디오를 포함할 수 있다.
일부 구현에서, 다른 협업 플랫폼이 온라인 경험 플랫폼(102) 및/또는 공간화된 오디오 API(106) 대신에 또는 이에 추가하여 여기에서 설명된 특징과 함께 사용될 수 있다. 예컨대, 소셜 네트워킹 플랫폼, 구매 플랫폼, 메시징 플랫폼, 생성 플랫폼 등은 게임 외부의 사용자에게 몰입형 공간화된 오디오를 제공하도록 공간 오디오 특징과 함께 사용될 수 있다.
일부 구현에서, 게임플레이는 게임(예컨대, 105) 내에서 클라이언트 장치(예컨대, 110 및/또는 116)를 사용하는 하나 이상의 플레이어의 인터랙션 또는 클라이언트 장치(110 또는 116)의 디스플레이 또는 다른 출력 장치 상의 인터랙션의 표시를 지칭할 수 있다. 일부 구현에서, 게임플레이는 대신 가상 경험 또는 메타버스 장소 내에서의 인터랙션을 지칭하며, 일부 게임과 유사하지 않거나, 상이하거나, 동일한 목표를 포함할 수 있다. 또한, "플레이어"라고 지칭되지만, 용어 "아바타", "사용자" 및/또는 다른 용어는 온라인 가상 경험에 참여하고, 그리고/또는 인터랙팅하는 사용자를 지칭하는 데 사용될 수 있다.
하나 이상의 게임(105)은 온라인 경험 플랫폼에 의해 제공된다. 일부 구현에서, 게임(105)은 게임 콘텐츠(예컨대, 디지털 미디어 아이템)를 엔티티에 제시하도록 구성된 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 실행되거나 로드될 수 있는 전자 파일을 포함할 수 있다. 일부 구현에서, 게임 애플리케이션(112/118)이 실행될 수 있고, 게임(105)은 게임 엔진(104)과 관련하여 렌더링될 수 있다. 일부 구현에서, 게임(105)은 공통 규칙 세트 또는 공통 목표를 가질 수 있으며, 그리고 게임(105)의 가상 환경은 공통 규칙 세트 또는 공통 목표를 공유한다. 일부 구현에서, 상이한 게임은 서로 상이한 규칙 또는 목표를 가질 수 있다. 구체적으로, "게임" 또는 게임 관련이라고 지칭되지만, 게임 애플리케이션(112/118), 게임(105) 및 게임 엔진(104)은 또한 가상 경험 애플리케이션(112/118), 가상 경험(105d), 및/또는 가상 경험 엔진(104)으로 지칭될 수 있다는 점에 유의한다.
일부 구현에서, 게임 및/또는 가상 경험은 복수의 환경이 링크될 수 있는 하나 이상의 환경(여기에서 "게이밍 환경”, “메타버스 장소” 또는 "가상 환경"이라고도 지칭함)을 가질 수 있다. 환경의 예시는 삼차원(3D) 환경일 수 있다. 게임(105) 또는 가상 경험의 하나 이상의 환경은 여기에서 "세계”, "게이밍 세계”, "가상 세계”, "유니버스" 또는 “메타버스”로 집합적으로 지칭될 수 있다. 세계의 예시는 게임(105)의 3D 메타버스 장소일 수 있다. 예컨대, 사용자는 제1 사용자와 상이한, 다른 사용자에 의해 생성된 다른 메타버스 장소에 링크된 메타버스 장소를 구축할 수 있다. 가상 게임의 캐릭터는 가상 경계를 건너서 인접한 메타버스 장소로 들어갈 수 있다. 추가적으로, 사운드, 테마 음악, 및/또는 배경 음악은 또한 가상 경계 근처에 서 있는 아바타가 인접한 메타버스 장소로부터 나오는 사운드의 적어도 일부를 포함하는 공간화된 오디오를 들을 수 있도록 가상 경계를 횡단할 수도 있다. 이러한 방식으로, 공간화된 오디오는 실제 세계 환경과 사운드 전파의 유사성을 나타내는 가상 오디오를 포함하는 완전한 몰입형 경험을 가능하게 할 수 있다.
3D 환경 또는 3D 세계는 콘텐츠를 나타내는 기하학적 데이터의 삼차원 표현을 사용(또는 기하학적 데이터의 3D 표현이 사용되는지 여부에 관계없이 적어도 콘텐츠가 3D 콘텐츠로 나타나도록 제시)하는 그래픽을 사용한다는 점에 유의할 수 있다. 2D 환경 또는 2D 세계는 게임 콘텐츠를 나타내는 기하학적 데이터의 이차원 표현을 사용하는 그래픽을 사용한다.
일부 구현에서, 온라인 경험 플랫폼(102)은 하나 이상의 게임(105)을 호스팅할 수 있고, 사용자가 클라이언트 장치(110/116)의 게임 애플리케이션(112/118)을 사용하여 게임(105)과 인터랙팅하도록 허가할 수 있다 (예컨대, 게임, 게임 관련 콘텐츠 또는 다른 콘텐츠를 검색함). 온라인 경험 플랫폼(102)의 사용자(예컨대, 114 및/또는 120)는 게임(105)을 플레이하거나, 생성하거나, 인터랙션하거나 또는 구축하고, 게임(105)을 검색하고, 다른 사용자와 통신하고, 게임(105)의 객체(예컨대, 여기에서 "아이템(들)", 또는 "게임 객체" 또는 "가상 게임 아이템(들)"이라고도 지칭됨)를 생성하고 구축하고, 그리고/또는 객체를 검색할 수 있다. 예컨대, 사용자 생성 가상 아이템을 생성할 때, 사용자는 그 중에서도, 캐릭터, 캐릭터를 위한 장식, 인터랙티브 게임을 위한 하나 이상의 가상 환경을 생성하거나, 또는 게임(105)에서 사용된 구조를 구축할 수 있다.
일부 구현에서, 사용자는 온라인 경험 플랫폼(102)의 다른 사용자와 플랫폼 내 화폐(예컨대, 가상 화폐)와 같은, 게임 가상 게임 객체를 구매, 판매 또는 거래할 수 있다. 일부 구현에서, 온라인 경험 플랫폼(102)은 게임 애플리케이션(예컨대, 112)에 게이밍 콘텐츠(130)를 전송할 수 있다. 일부 구현에서, 게임 콘텐츠(여기에서 "콘텐츠"라고도 지칭됨)는 온라인 경험 플랫폼(102) 또는 게임 애플리케이션과 연관된 임의의 데이터 또는 소프트웨어 명령어(예컨대, 게임 객체, 게임, 사용자 정보, 비디오, 이미지, 명령, 미디어 아이템 등)를 지칭할 수 있다.
일부 구현에서, 게임 객체(예컨대, 여기에서 "아이템(들)" 또는 "객체" 또는 "가상 게임 아이템(들)"이라고도 지칭됨)는 온라인 경험 플랫폼(102)의 게임 애플리케이션(102) 또는 클라이언트 장치(110/116)의 게임 애플리케이션(112 또는 118)에서 사용, 생성, 공유 또는 그 외 묘사되는 객체를 지칭할 수 있다. 예컨대, 게임 객체는 부품, 모델, 캐릭터, 도구, 무기, 의류, 건물, 차량, 화폐, 식물군, 동물군, 전술한 컴포넌트(예컨대, 건물의 창문) 등을 포함할 수 있다.
게임(105)을 호스팅하는 온라인 경험 플랫폼(102)은 제한이 아닌 예시의 목적으로 제공된다는 점에 유의할 수 있다. 일부 구현에서, 온라인 경험 플랫폼(102)은 한 사용자로부터 하나 이상의 다른 사용자로의 통신 메시지를 포함할 수 있는 하나 이상의 미디어 아이템을 호스팅할 수 있다. 미디어 아이템은 디지털 비디오, 디지털 영화, 디지털 사진, 디지털 음악, 오디오 콘텐츠, 멜로디, 웹사이트 콘텐츠, 소셜 미디어 업데이트, 전자 서적, 전자 잡지, 디지털 신문, 디지털 오디오 서적, 전자 저널, 웹 블로그, RSS(real simple syndication) 피드, 전자 만화책, 소프트웨어 애플리케이션 등을 포함할 수 있지만, 이에 제한되지 않는다. 일부 구현에서, 미디어 아이템은 디지털 미디어 아이템을 엔티티에 표시하도록 구성된 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 실행하거나 로드할 수 있는 전자 파일일 수 있다.
일부 구현에서, 게임(105)은 특정 사용자 또는 특정 사용자의 그룹과 연관될 수 있거나 (예컨대, 개인 게임), 온라인 경험 플랫폼(102)의 사용자에게 널리 이용 가능하도록 할 수 있다 (예컨대, 공개 게임). 온라인 경험 플랫폼(102)이 하나 이상의 게임(105)을 특정 사용자 또는 사용자의 그룹과 연관시키는 일부 구현에서, 온라인 경험 플랫폼(102)은 사용자 계정 정보(예컨대, 사용자 이름 및 비밀번호와 같은 사용자 계정 식별자)를 사용하여 특정 사용자(들)를 게임(105)과 연관시킬 수 있다. 유사하게, 일부 구현에서, 온라인 경험 플랫폼(102)은 개발자 계정 정보(예컨대, 사용자 이름 및 비밀번호와 같은 개발자 계정 식별자)를 사용하여 특정 개발자 또는 개발자 그룹을 게임(105)과 연관시킬 수 있다.
일부 구현에서, 온라인 경험 플랫폼(102) 또는 클라이언트 장치(110/116)는 게임 엔진(104) 또는 게임 애플리케이션(112/118)을 포함할 수 있다. 게임 엔진(104)은 게임 애플리케이션(112/118)과 유사한 게임 애플리케이션을 포함할 수 있다. 일부 구현에서, 게임 엔진(104)은 게임(105)의 개발 또는 실행을 위해 사용될 수 있다. 예컨대, 게임 엔진(104)은 다른 특징 중에서도, 2D, 3D, VR 또는 AR 그래픽을 위한 렌더링 엔진(“렌더러"), 물리 엔진, 충돌 감지 엔진(및 충돌 응답), 사운드 엔진, 공간화된 오디오 매니저/엔진, 오디오 믹서, 오디오 구독 교환, 오디오 구독 로직, 오디오 구독 우선순위 지정자(audio subscription prioritizer), 실시간 통신 엔진, 스크립팅 기능, 애니메이션 엔진, 인공 지능 엔진, 네트워킹 기능, 스트리밍 기능, 메모리 관리 기능, 스레딩 기능, 장면 그래프 기능 또는 시네마틱에 대한 비디오 지원을 포함할 수 있다. 게임 엔진(104)의 컴포넌트는 게임을 컴퓨팅하고 렌더링하는 것을 돕는 명령(예컨대, 렌더링 명령, 충돌 명령, 물리 명령 등)를 생성하고, 오디오를 변환할 수 있다(예컨대, 모노럴 또는 스테레오 사운드를 공간화된 오디오 스트림으로 변환 등). 일부 구현에서, 클라이언트 장치(110/116)의 게임 애플리케이션(112/118)은 각각 독립적으로, 온라인 경험 플랫폼(102)의 게임 엔진(104)과 협력하여, 또는 둘 다의 조합으로 작동할 수 있다.
일부 구현에서, 온라인 경험 플랫폼(102) 및 클라이언트 장치(110/116) 모두는 게임 엔진(104, 112 및 118 각각)을 실행할 수 있다. 게임 엔진(104)을 사용하는 온라인 경험 플랫폼(102)은 일부 또는 모든 게임 엔진 기능(예컨대, 물리 명령, 렌더링 명령, 공간화된 오디오 명령 등을 생성)을 수행하거나, 일부 또는 모든 게임 엔진 기능을 클라이언트 장치(110)의 게임 엔진(104)으로 오프로드할 수 있다. 일부 구현에서, 각각의 게임(105)은 온라인 경험 플랫폼(102) 상에서 수행되는 게임 엔진 기능과 클라이언트 장치(110 및 116) 상에서 수행되는 게임 엔진 기능 사이에 상이한 비율을 가질 수 있다.
예컨대, 온라인 경험 플랫폼(102)의 게임 엔진(104)은 적어도 두 개의 게임 객체 사이에 충돌이 있는 경우, 물리 명령을 생성하는 데 사용될 수 있는 한편, 추가 게임 엔진 기능(예컨대, 렌더링 명령 생성 또는 공간화된 오디오 스트림 결합)은 클라이언트 장치(110)로 오프로드될 수 있다. 일부 구현에서, 온라인 경험 플랫폼(102) 및 클라이언트 장치(110) 상에서 수행된 게임 엔진 기능의 비율은 게임플레이 조건에 기초하여 (예컨대, 동적으로) 변경될 수 있다. 예컨대, 게임(105)의 게임플레이에 참가하는 사용자의 수가 임계값을 초과하면, 온라인 경험 플랫폼(102)은 클라이언트 장치(110 또는 116)에 의해 이전에 수행되었던 하나 이상의 게임 엔진 기능을 수행할 수 있다.
예컨대, 사용자는 클라이언트 장치(110 및 116)에서 게임(105)을 플레이할 수 있고, 제어 명령어(예컨대, 오른쪽, 왼쪽, 위, 아래, 사용자 선택 또는 캐릭터 위치 및 속도 정보 등과 같은 사용자 입력)를 온라인 경험 플랫폼(102)에 전송할 수 있다. 클라이언트 장치(110 및 116)로부터 제어 명령어를 수신한 이후, 온라인 경험 플랫폼(102)은 게임플레이 명령어(예컨대, 그룹 게임플레이에 참가하는 캐릭터의 위치 및 속도 정보 또는 렌더링 명령, 충돌 명령과 같은 명령 등)를 제어 명령어에 기초하여 클라이언트 장치(110 및 116)에 전송할 수 있다. 예컨대, 온라인 경험 플랫폼(102)은 클라이언트 장치(110 및 116)에 대한 게임플레이 명령어를 생성하기 위해 제어 명령어의 (예컨대, 게임 엔진(104)을 사용하는) 하나 이상의 논리적 동작을 수행할 수 있다. 다른 경우에, 온라인 경험 플랫폼(102)은 하나의 클라이언트 장치(110)로부터 게임(105)에 참가하는 다른 클라이언트 장치(예컨대, 116)로 제어 명령어 중 하나 이상을 전달할 수 있다. 클라이언트 장치(110 및 116)는 게임플레이 명령어를 사용하고, 클라이언트 장치(110 및 116)의 디스플레이 상에서 표시를 위한 게임플레이를 렌더링할 수 있다. 클라이언트 장치(110 및 116)는 또한 클라이언트 장치(110 및 116)의 오디오 출력 장치에서의 출력을 위해 공간화된 오디오 스트림을 생성, 수정 및/또는 결합하기 위해 게임플레이 명령을 사용할 수 있다.
일부 구현에서, 제어 명령어는 사용자 캐릭터의 게임 내 동작을 나타내는 명령어를 지칭할 수 있다. 예컨대, 제어 명령어는 오른쪽, 왼쪽, 위, 아래, 사용자 선택, 자이로스코프 위치 및 방향 데이터, 힘 센서 데이터 등과 같은 게임 내 동작을 제어하기 위한 사용자 입력을 포함할 수 있다. 제어 명령어는 캐릭터 위치 및 속도 정보를 포함할 수 있다. 일부 구현에서, 제어 명령어는 온라인 경험 플랫폼(102)으로 직접 전송된다. 다른 구현에서, 제어 명령어는 클라이언트 장치(110)로부터 다른 클라이언트 장치(예컨대, 116)로 전송될 수 있고, 여기에서 다른 클라이언트 장치는 로컬 게임 엔진(104)을 사용하여 게임플레이 명령어를 생성한다. 제어 명령어는 음성 통신 메시지 또는 다른 사용자로부터의 다른 사운드를 오디오 장치(예컨대, 스피커, 헤드폰 등)에서 플레이하기 위한 명령어를 포함할 수 있다.
일부 구현에서, 게임플레이 명령어는 클라이언트 장치(110 (또는 116))가 멀티 플레이어 게임과 같은 게임의 게임플레이를 렌더링하도록 허용하는 명령어를 지칭할 수 있다. 게임플레이 명령어는 사용자 입력(예컨대, 제어 명령어), 캐릭터 위치 및 속도 정보, 또는 명령(예컨대, 물리 명령, 렌더링 명령, 충돌 명령 등) 중 하나 이상을 포함할 수 있다. 여기에서 더 자세히 설명된 바와 같이, 캐릭터 위치 및 속도 정보는 다른 캐릭터와 연관된 적절한 HTRF(head-related transfer function)를 결정하는 데 사용될 수 있어서, 이에 따라 실제 세계에서의 사운드 전파를 나타내는 다른 캐릭터에 대해 공간화된 오디오 스트림이 생성될 수 있다. 연관된 HRTF, 위치 정보, 속도 정보, BW(Baum-Welch) 알고리즘 데이터, VAD(virtual auditory display) 데이터 및/또는 다른 데이터는 온라인 경험 플랫폼(102)에 의해 데이터 저장소(108)에 저장될 수 있다.
일부 구현에서, 캐릭터(또는 일반적으로 게임 객체)는 자동으로 함께 결합되어 사용자의 편집을 돕는 컴포넌트로 구성되며, 그 중 하나 이상은 사용자에 의해 선택될 수 있다. 하나 이상의 캐릭터(여기에서 "아바타" 또는 "모델"이라고도 지칭됨)가 사용자와 연관될 수 있으며, 여기에서 사용자는 게임(105)과의 사용자 인터랙션을 용이하게 하기 위해 캐릭터를 제어할 수 있다. 일부 구현에서, 캐릭터는 신체 부위(예컨대, 머리, 머리카락, 팔, 다리 등) 및 액세서리(예컨대, 티셔츠, 안경, 장식 이미지, 도구 등)와 같은 컴포넌트를 포함할 수 있다. 일부 구현에서, 커스터마이징 가능한 캐릭터의 신체 부위는 그 중에서도, 머리 유형, 신체 부위 유형(팔, 다리, 몸통 및 손), 얼굴 유형, 머리카락 유형 및 피부 유형을 포함한다. 일부 구현에서, 커스터마이징 가능한 액세서리는 의류(예컨대, 셔츠, 바지, 모자, 신발, 안경 등), 무기 또는 다른 도구를 포함한다.
일부 구현에서, 사용자는 또한 캐릭터의 규모(예컨대, 높이, 폭, 또는 깊이) 또는 캐릭터의 컴포넌트의 규모를 제어할 수 있다. 일부 구현에서, 사용자는 캐릭터의 비율(예컨대, 블록형, 해부학적 등)을 제어할 수 있다. 일부 구현에서 캐릭터는 캐릭터 게임 객체(예컨대, 신체 부위 등)를 포함하지 않을 수 있지만, 사용자는 게임과 사용자의 인터랙션을 용이하게 하기 위해 (캐릭터 게임 객체 없이) 캐릭터를 제어할 수 있음(예컨대, 렌더링된 캐릭터 게임 객체가 없지만 사용자가 게임 내 동작을 제어하기 위해 여전히 캐릭터를 제어하는 퍼즐 게임)을 유의할 수 있다.
일부 구현에서, 신체 부위와 같은 컴포넌트는 블록, 원통, 구 등과 같은 기본 기하학적 형상이거나, 쐐기(wedge), 원환체(torus), 튜브, 채널 등과 같은 일부 다른 기본 형상일 수 있다. 일부 구현에서, 생성기 모듈은 온라인 경험 플랫폼(102)의 다른 사용자가 보거나 사용할 수 있도록 사용자의 캐릭터를 공개할 수 있다. 일부 구현에서, 캐릭터, 다른 게임 객체, 게임(105) 또는 게임 환경을 생성, 수정 또는 커스터마이징하는 것은 스크립팅을 사용하거나 사용하지 않고(또는 API(application programming interface)를 사용하거나 사용하지 않고), 사용자 인터페이스(예컨대, 개발자 인터페이스)를 사용하여, 사용자에 의해 수행될 수 있다. 제한보다는 예시의 목적을 위해 캐릭터가 휴머노이드 형태를 갖는 것으로 설명된다는 점에 유의할 수 있다. 또한, 캐릭터는 차량, 동물, 무생물 객체 또는 다른 창의적인 형태와 같은 임의의 형태를 가질 수 있다는 점에 유의할 수 있다.
일부 구현에서, 온라인 경험 플랫폼(102)은 사용자에 의해 생성된 캐릭터를 데이터 저장소(108)에 저장할 수 있다. 일부 구현에서, 온라인 경험 플랫폼(102)은 게임 엔진(104), 게임(105) 및/또는 클라이언트 장치(110/116)를 통해 사용자에게 제시될 수 있는 캐릭터 카탈로그 및 게임 카탈로그를 유지한다. 일부 구현에서, 게임 카탈로그는 온라인 경험 플랫폼(102)에 저장된 게임의 이미지를 포함한다. 또한, 사용자는 선택된 게임에 참가하기 위해 캐릭터 카탈로그로부터 캐릭터(예컨대, 사용자 또는 다른 사용자에 의해 생성된 캐릭터)를 선택할 수 있다. 캐릭터 카탈로그는 온라인 경험 플랫폼(102)에 저장된 캐릭터의 이미지를 포함한다. 일부 구현에서, 캐릭터 카탈로그의 캐릭터 중 하나 이상은 사용자에 의해 생성되거나 커스터마이징되었을 수 있다. 일부 구현에서, 선택된 캐릭터는 캐릭터의 컴포넌트 중 하나 이상을 정의하는 캐릭터 설정을 가질 수 있다.
일부 구현에서, 사용자의 캐릭터는 컴포넌트의 구성을 포함할 수 있으며, 여기에서 컴포넌트의 구성 및 외양, 보다 일반적으로 캐릭터의 외양은 캐릭터 설정에 의해 정의될 수 있다. 일부 구현에서, 사용자 캐릭터의 캐릭터 설정은 사용자에 의해 적어도 부분적으로 선택될 수 있다. 다른 구현에서, 사용자는 디폴트 캐릭터 설정 또는 다른 사용자에 의해 선택된 캐릭터 설정을 가진 캐릭터를 선택할 수 있다. 예컨대, 사용자는 미리 정의된 캐릭터 설정을 갖는 캐릭터 카탈로그에서 디폴트 캐릭터를 선택할 수 있으며, 사용자는 캐릭터 설정 중 일부를 변경(예컨대, 커스터마이징된 로고가 있는 셔츠 추가)하여, 디폴트 캐릭터를 추가로 커스터마이징할 수 있다. 캐릭터 설정은 온라인 경험 플랫폼(102)에 의해 특정 캐릭터와 연관될 수 있다.
일부 구현에서, 클라이언트 장치(들)(110 또는 116)는 개인용 컴퓨터(PC), 모바일 장치(예컨대, 랩톱, 모바일 전화, 스마트 폰, 태블릿 컴퓨터 또는 넷북 컴퓨터), 네트워크 연결된 텔레비전, 게임 콘솔 등과 같은 컴퓨팅 장치를 각각 포함할 수 있다. 일부 구현에서, 클라이언트 장치(110 또는 116)는 또한 "사용자 장치"로 지칭될 수 있다. 일부 구현에서, 하나 이상의 클라이언트 장치(110 또는 116)는 임의의 주어진 순간에 온라인 경험 플랫폼(102)에 접속할 수 있다. 클라이언트 장치(110 또는 116)의 수는 제한보다는 예시로서 제공된다는 점에 유의할 수 있다. 일부 구현에서, 임의의 수의 클라이언트 장치(110 또는 116)가 사용될 수 있다.
일부 구현에서, 각각의 클라이언트 장치(110 또는 116)는 각각 게임 애플리케이션(112 또는 118)의 인스턴스를 포함할 수 있다. 일 구현에서, 게임 애플리케이션(112 또는 118)은 사용자가 게임, 경험, 또는 다른 콘텐츠를 검색하거나, 온라인 경험 플랫폼(102)에 의해 호스팅되는 가상 경험에서 가상 캐릭터를 제어하거나, 게임(105), 이미지, 비디오 아이템, 웹 페이지, 문서 등과 같은 콘텐츠를 보거나 업로드하는 것과 같이 온라인 경험 플랫폼(102)을 사용하고 인터랙팅하도록 허가할 수 있다. 일 예시에서, 게임 애플리케이션은 웹 서버에 의해 제공된 콘텐츠(예컨대, 가상 환경의 가상 캐릭터 등)를 액세스, 검색, 제시 또는 탐색할 수 있는 웹 애플리케이션(예컨대, 웹 브라우저와 함께 동작하는 애플리케이션)일 수 있다. 다른 예시에서, 게임 애플리케이션은 클라이언트 장치(110 또는 116)에 로컬로 설치되고 실행되며, 사용자가 온라인 경험 플랫폼(102)과 인터랙팅하도록 허용하는 네이티브 애플리케이션(예컨대, 모바일 애플리케이션, 앱 또는 게임 프로그램)일 수 있다. 게임 애플리케이션은 사용자에게 콘텐츠(예컨대, 웹 페이지, 사용자 인터페이스, 미디어 뷰어, 오디오 스트림)를 렌더링, 표시 또는 제시할 수 있다. 일 구현에서, 게임 애플리케이션은 또한 웹 페이지에 임베딩되는 임베딩된 미디어 플레이어를 포함할 수 있다.
본 개시의 양태에 따르면, 게임 애플리케이션(112/118)은 사용자가 온라인 경험 플랫폼(102)과 인터랙팅(예컨대, 온라인 경험 플랫폼(102)에 의해 호스팅된 게임(105)을 플레이)할뿐만 아니라 온라인 경험 플랫폼(102)에 콘텐츠를 구축, 생성, 편집, 업로드하기 위한 온라인 경험 플랫폼 애플리케이션일 수 있다. 이와 같이, 게임 애플리케이션(112/118)은 온라인 경험 플랫폼(102)에 의해 클라이언트 장치(110 또는 116)에 제공될 수 있다. 다른 예시에서, 게임 애플리케이션(112/118)은 서버로부터 다운로드되는 애플리케이션일 수 있다.
일부 구현에서, 사용자는 게임 애플리케이션을 통해 온라인 경험 플랫폼(102)에 로그인할 수 있다. 사용자는 사용자 계정 정보(예컨대, 사용자 이름 및 비밀번호)를 제공함으로써 사용자 계정에 액세스할 수 있으며, 여기에서 사용자 계정은 온라인 경험 플랫폼(102)의 하나 이상의 게임(105)에 참가할 수 있는 하나 이상의 캐릭터와 연관되어 있다.
일반적으로, 온라인 경험 플랫폼(102)에 의해 수행되는 것으로 설명된 기능은 또한 적절한 경우 다른 구현에서 클라이언트 장치(들)(110 또는 116) 또는 서버에 의해 수행될 수 있다. 또한, 특정 컴포넌트에 기인하는 기능은 함께 동작하는 상이한 컴포넌트 또는 복수의 컴포넌트에 의해 수행될 수 있다. 온라인 경험 플랫폼(102)은 또한 적절한 API(application programming interface)를 통해 다른 시스템 또는 장치에 제공된 서비스로서 액세스될 수 있으며, 따라서 웹 사이트에서의 사용에 제한되지 않는다.
일부 구현에서, 온라인 경험 플랫폼(102)은 공간화된 오디오 API(106)를 포함할 수 있다. 일부 구현에서, 공간화된 오디오 API(106)는 소프트웨어 컴포넌트가 데이터를 통신 및/또는 제공/수신하도록 허용하는 함수 호출의 형태로 사용자 및/또는 개발자에게 기능을 제공하는 컴퓨터 실행 가능 코드 모음(suite)일 수 있다. 공간화된 오디오 API는 공간화된 오디오와 관련된 복수의 정의된 소프트웨어 기능을 포함하며, 이는 개발자가 사용자 제작 콘텐츠에서 공간화된 오디오 기능을 활성화하는 데 사용할 수 있으며 사용자 장치에서의 오디오 재생과 관련된 모든 기능을 포함할 수 있다.
적어도 하나의 구현에서, 공간화된 오디오 API(106)는 공간화된 오디오를 가능하게 하는 다수의 기능, 이벤트 및 속성을 포함한다. 예컨대, 공간화된 오디오 API(106)는 음성 채널 생성 및 폐기를 포함하는 기능을 포함할 수 있다. 이러한 기능을 사용하면 특정 서버와 연관된 새로운 음성 채널의 생성이나 및/또는 동일한 메타버스 장소의 서버 간에 공유되는 글로벌 음성 채널 생성을 가능케 할 수 있다. 이 기능은 또한 이전에 생성된 음성 채널의 삭제/파기를 가능케 할 수도 있다.
공간화된 오디오 API(106)는 또한 플레이어 추가 및 제거는 물론 음성 채널과 연관된 플레이어 검색을 포함하는 기능도 포함할 수 있다. 이러한 기능을 사용하면 주어진 플레이어 또는 플레이어들을 특정 음성 채널에 추가하고, 특정 음성 채널에서 플레이어를 제거하고 및/또는 메타버스 장소에서 음성 채널과 연관된 플레이어 목록을 검색하게 할 수 있다. 일부 구현에서는 플레이어가 음성 채널에 참여하거나 및/또는 음성 채널을 떠날 때 이벤트가 발생하도록 이러한 기능에 의해 이벤트가 트리거될 수 있다.
공간화된 오디오 API(106)는 또한 특정 플레이어와 연관되지 않은 음성 채널을 생성하는 것을 포함하는 기능을 포함할 수 있다. 이러한 방식으로 이들 기능은 비플레이어(non-player) 캐릭터, 객체 및 기타 가상 아이템이 공간화된 오디오 스트림에 사용될 사운드를 내보낼 수 있게 한다. 예컨대, 메타버스 장소 내에 특정 위치를 갖는 작동하는 주크박스를 나타내는 것처럼 사운드를 내는 스피커 객체가 만들어 질 수 있다. 그 후, 스피커 객체 근방에 있는 아바타는 스피커 객체로부터의 사운드를 포함하는 변환된 오디오 스트림을 포함하는 공간화된 오디오 스트림을 수신할 수 있다. 비플레이어 캐릭터, 객체 및 기타 가상 아이템에 의해 생성된 사운드는 또한 배경 오디오 스트림에 통합될 수도 있다. 이 배경 오디오 스트림에는 여러(예: 하나 이상의) 다른 아바타나 플레이어 캐릭터가 생성한 사운드도 또한 포함될 수 있다.
공간화된 오디오 API(106)는 또한 사운드 전파와 연관된 매개변수 또는 속성을 포함하는 속성을 포함할 수 있다. 이러한 방식으로 속성은 전파 매체(예: 물, 공기, 기타 등), 오디오 소스(예: 플레이어 또는 비플레이어 오디오 소스), 오디오 볼륨(예: 오디오 소스의 볼륨을 나타냄), 감쇠 거리(attenuation distance)(예: 사운드가 감쇠되기 시작하는 거리), 사운드를 들을 수 있는 최대 거리(예: 아바타가 이 거리를 벗어나면 이 오디오 스트림은 공간화된 조합에 포함되지 않을 것이다), 선형 또는 로그(logarithmic) 사운드 롤오프(예: 특정 롤오프 모드의 경우), 재생 음량(playback loudness), 연결 상태(예: 음성 채널의), 음소거 상태(예: 플레이어 또는 음원이 음소거된 경우) 및 기타 속성과 같은 속성을 포함할 수 있다.
공간화된 오디오 API(106)는 풍부하고 몰입감 있는 공간화된 오디오가 사용자 생성 콘텐츠 및/또는 게임에서 사용될 수 있도록 하는 추가 기능, 변수, 속성 및/또는 매개변수를 더 포함할 수 있다. 이하에서는 공간화된 오디오 API(106)를 활용하여 공간화된 오디오(또는 결합된 공간화된 오디오 스트림)를 제공하는 것과 관련된 온라인 경험 플랫폼(102)의 동작을 도 2a 및 도 2b를 참조하여 보다 자세히 설명한다.
도 2a는 일부 구현에 따라 가상 메타버스에서 공간화된 오디오 채팅을 제공하기 위한 예시적인 네트워크 환경(200)(예컨대, 네트워크 환경(100)의 서브세트)의 다이어그램이다. 네트워크 환경(200)은 예시를 위해 제공된다. 일부 구현에서, 네트워크 환경(200)은 도 2a에 도시된 것과 동일하거나 상이한 방식으로 구성된 동일하거나, 더 적거나, 더 많거나, 다른 요소를 포함할 수 있다.
도 2a에 도시된 바와 같이, 온라인 경험 플랫폼(102)은 사용자 오디오 스트림(232)이 클라이언트 장치(110)로부터 수신되고(예컨대, 시스템 오디오 인(216)으로부터의 신호(230)), 결합된 공간화된 오디오 스트림(250)이 클라이언트 장치(110)에서의 출력을 위해(예컨대, 시스템 오디오 아웃(214)을 통해) 제공되도록 클라이언트 장치(110)와 통신할 수 있다(예컨대, 네트워크(122)를 통해, 도시되지 않음).
온라인 경험 플랫폼(102)은 도 1에 도시된 컴포넌트들에 더하여, 미디어 서버(202) 및 데이터 모델(206)을 포함할 수 있다. 클라이언트 장치(110)는 도 1에 도시된 컴포넌트들에 더하여, 오디오 믹서(204), 공간화된 오디오 매니저(205) 및 사운드 엔진(260)을 포함할 수 있다.
일반적으로, 미디어 서버(202)는 네트워크 환경(100)의 컴포넌트 간에 오디오 스트림(또는 다른 데이터)을 연결하고 통신하도록 구성된 특수 목적 논리 서버이다. 미디어 서버(202)는 예컨대 클라이언트 장치 및 온라인 게임 서버(102) 사이, 및 그 역 간의 실시간 통신을 용이하게 할 수 있다.
오디오 믹서(204)는 공간화된 오디오 스트림으로 변환하기 위해 다수의 플레이어 또는 비플레이어 객체로부터 오디오 스트림을 추출하도록 구성된 소프트웨어 모듈일 수 있다. 오디오 믹서(204)는 오디오 믹서 오버라이드 컴포넌트(208), 에코 제거 컴포넌트(210) 및/또는 오디오 장치 모듈 오버라이드 컴포넌트(212)를 포함할 수 있다.
오디오 믹서 오버라이드 컴포넌트(208)는 공간화된 오디오가 활성화되도록 온라인 경험 플랫폼(102)에 의해 제공되는 기본 오디오를 오버라이드하도록 구성될 수 있다. 예컨대, 오디오 믹서 오버라이드 컴포넌트(208)는 공간화된 오디오 출력(250)의 복사본(251)뿐만 아니라 사용자 오디오 스트림(234)도 수신할 수 있고, 개별 오디오 스트림(238)을 공간화된 오디오 매니저(205)에 제공하고, 전형적인 오디오 스트림(236)을 출력으로 제공할 수 있다. 이러한 방식으로, 오디오 믹서 오버라이드 컴포넌트(208)가 초기화되지 않은 경우, 클라이언트 장치(110)는 일반, 비공간화된 오디오(239)를 제공하도록 기능할 수 있다. 마찬가지로, 오디오 믹서 오버라이드 컴포넌트가 초기화되면(예컨대, 공간화된 오디오가 온라인 경험 플랫폼(102)에서 또는 특정 게임(105)에 대한 클라이언트 장치(110)에서 활성화되는 경우), 공간화 변환을 위해 개별 오디오 스트림(238)이 공간화된 오디오 매니저(205)로 제공된다.
에코 제거 컴포넌트(210)는 오디오 스트림에서 에코 및/또는 다른 바람직하지 않은 사운드 아티팩트를 제거하도록 구성될 수 있다. 필터링된 출력(232)(예컨대, 오디오 스트림(236)에 기초하여 에코 제거된)은 에코 제거 컴포넌트(210)로부터 미디어 서버(202)로 제공될 수 있다. 이러한 방식으로, 에코 제거 컴포넌트(210)는 고품질 오디오 스트림 제공을 돕기 위해 필터 또는 다른 기능을 설정할 수 있다.
오디오 장치 모듈 오버라이트 컴포넌트(212)는 클라이언트 장치(110)에 대한 시스템 오디오 출력을 오버라이드 및/또는 비활성화하도록 구성될 수 있어, 공간화된 오디오가 표준 시스템 오디오 대신 출력된다(예컨대, 온라인 경험 플랫폼(102) 또는 클라이언트 장치(110)에 대한 공간화된 오디오가 활성화되지 않은 경우). 아니면 오디오 장치 모듈 오버라이드 컴포넌트(212)는 공간화된 오디오가 활성화되지 않은 경우 일반 오디오(239)를 출력할 수도 있다.
공간화된 오디오 매니저(205)는 공간화된 오디오 API(106) 및 연관된 소프트웨어 기능을 사용하여 하나 이상의 사용자 오디오 스트림(238)을 입력하고 이 스트림을 공간화된 오디오 스트림(242)으로 변환하도록 구성된 소프트웨어 컴포넌트일 수 있다. 예컨대, 공간화된 오디오 매니저(205)는 각각의 개별 사용자 오디오 스트림(238)을 새로운, 개별적인 공간화된 오디오 스트림(242)으로 변환할 수 있다. 대안적으로, 공간화된 오디오 매니저(205)는 클라이언트 장치(110)에서의 공간화 변환을 위해 개별 사용자 오디오 스트림(238)을 또 다른 컴포넌트에 제공할 수 있다.
추가적으로, 각각의 개별 사용자 오디오 스트림(238)은 또한 각각의 아바타와 연관된 물리 명령 및/또는 동작 명령을 강화하는 데 사용될 수 있다. 이러한 방식으로, 각각의 개별 사용자 오디오 스트림(238)은 오디오와 동기화되는 페이셜 애니메이션(facial animation)을 구현하여 사용자에게 보다 현실적 및/또는 몰입형 경험을 생성하는 데 사용될 수 있다. 예컨대, 페이셜 애니메이션이 공간화된 오디오와 동기화되면, 거리로 인한 감쇠가 실현되는 동시에 사용자가 사운드를 생성하는 아바타를 식별할 수 있는 가시적인 페이스 움직임(face movement)을 또한 가짐으로써 사용자 경험이 더욱 향상된다. 유사하게, 개별 오디오 스트림(238) 및/또는 공간화된 오디오 스트림(242)은 감정 및/또는 의도를 추출하기 위해 해석될 수 있다. 이러한 방식으로 사용자 경험을 더욱 향상시킬 수 있도록 페이셜 애니메이션이 추출될 수 있다.
추가적으로, 각각의 개별 사용자 오디오 스트림(238)은 온라인 경험 플랫폼(102) 상의 사용자를 조정하기 위해 사용될 수 있다. 예컨대, 각각의 개별 오디오 스트림은 이미 분리되어 있으므로, 욕설이나 상스러운 언어가 연관 사용자와 더 쉽게 연관될 수 있다. 그 후, "음소거" 기능 또는 음성 채널 함수 호출로부터의 제거(API를 통한)가 가혹한 행동과 연관된 사용자를 효과적으로 조정하기 위해 사용될 수 있다. 조정은 자동 조정 도구가 음성 행동, 억양, 비명을 분석하고 및/또는 자연 언어 처리기술을 활용하여 가혹한 행동을 식별하고 연관된 사용자를 자동 조정하도록 허용하는 기계 학습 기술에 확장 가능 및/또는 적응 가능할 수 있다.
데이터 모델(206)은 오디오 변환과 관련된 복수의 공간 매개변수를 포함할 수 있다. 예컨대, 데이터 모델(206)은 메타버스 장소에 적용되는 물리 법칙 그룹을 나타내는 하나 이상의 공간 매개변수를 포함할 수 있다. 물리 법칙은 실제 사운드 전파 환경을 나타내거나 모방할 수 있고, 과장된 실제 사운드 전파 환경을 나타낼 수 있으며 및/또는 새로 정의된 사운드 전파 환경을 나타낼 수 있다. 사운드 전파 매개변수는 개발자가 매개변수에 특정 값을 할당함으로써 노출된 공간화된 오디오 API(106)를 통해 정의될 수 있다. 예컨대, 상이한 전파 매체, 롤오프 오디오 매개변수, 거리 감쇠 기능/매개변수, 및/또는 반사 매개변수가 정의될 수 있다. 유사하게, 볼륨 매개변수, 최소/최대 가청 매개변수, 및/또는 전파 매개변수가 정의될 수 있다.
데이터 모델(206)은 또한 개발자에 의해 제공되는 아바타 및/또는 장면 정보와 메타버스 장소 내 아바타의 실제 위치를 포함할 수 있다. 아바타 정보는: 메타버스 장소에서의 아바타의 위치, 속도, 또는 방향 중 하나 이상을 포함할 수 있다. 장면 정보는: 메타버스 장소 내의 아바타에 가상으로 근접한 오클루전(occlusion), 잔향(reverberation), 가상 객체, 비플레이어 객체, 개구부, 오리피스, 반사 표면, 가상 천장, 가상 바닥, 가상 복도, 가상 출입구, 및/또는 가상 벽 중 하나 이상을 포함할 수 있다. 장면 정보는 또한 주변 환경의 매질(예: 물, 공기, 기타 등)과 관련된 정보도 포함할 수 있다. 이 정보/데이터는 메타버스 장소에서의 각 아바타를 기반으로 분리될 수 있으며(예컨대 개별화된 공간, 아바타 및 장면 정보 신호(244)로서) 공간화된 오디오 매니저(205) 및/또는 각 클라이언트 장치(110/116)에 의한 변환을 위해 제공될 수 있다.
그 후, 복수의 공간화된 오디오 스트림(246)은 클라이언트 장치(110)에서의 출력을 위해 사운드 엔진(260)(또는 대안적으로 공간화된 오디오 매니저(205) 및/또는 게임 엔진(104))에 의해 결합된 공간화된 오디오 스트림(250)으로 결합될 수 있다. 사운드 엔진(260)은 사운드 효과 엔진 및/또는 오디오 효과에 전용되는 게임 엔진(104)의 일부를 포함하는 임의의 적절한 사운드 엔진을 포함할 수 있다. 적어도 하나의 구현에서, 사운드 엔진(260)은 전용(proprietary) 오디오 효과 엔진이다. 다른 구현에서, 사운드 엔진(260)은 디지털 효과 엔진 또는 게임 엔진일 수 있다.
이하에서는 도 2b를 참조하여 대안적인 네트워크 환경(275)에 대해 설명한다. 도 2b는 일부 구현에 따라 가상 메타버스에서 공간화된 오디오 채팅을 제공하기 위한 예시적인 네트워크 환경(275)(예컨대, 네트워크 환경(100)의 서브세트)의 다이어그램이다. 네트워크 환경(275)은 설명을 위해 제공된다. 일부 구현에서, 네트워크 환경(275)은 도 2b에 도시된 것과 동일하거나 상이한 방식으로 구성된 동일하거나, 더 적거나, 더 많거나, 다른 요소를 포함할 수 있다.
도 2b에 도시된 바와 같이, 온라인 경험 플랫폼(102)은 사용자 오디오 스트림(232)이 클라이언트 장치(110)로부터 수신되고(예컨대, 시스템 오디오 인(216)으로부터의 신호(230)), 결합된 공간화된 오디오 스트림(250)이 클라이언트 장치(110)에서의 출력을 위해(예컨대, 시스템 오디오 아웃(214)을 통해) 제공되도록 클라이언트 장치(110)와 통신할 수 있다(예컨대, 네트워크(122)를 통해, 도시되지 않음). 네트워크 환경(200)과 동일한 번호를 갖는 네트워크 환경(275)의 컴포넌트 및/또는 부분은 간결함을 위해 여기에서 반복적으로 설명되지 않는다는 점에 유의한다.
도 2a에 도시된 것과 유사한 온라인 경험 플랫폼(102)은 미디어 서버(202) 및 데이터 모델(206)을 포함할 수 있다. 도 2a에 도시된 것과 유사한 클라이언트 장치(110)는 오디오 믹서(204) 및 공간화된 오디오 매니저(205)를 포함할 수 있다. 그러나 도 2a의 배열과는 대조적으로, 공간화된 오디오 매니저(205)는 게임 엔진(104)으로부터 수신된 데이터, 개별 오디오 스트림(238) 및 개별화된 공간, 아바타 및 장면 정보 신호(244)(예컨대, 결합된 신호(276))에 따라 출력(250)을 제공할 수 있다. 이러한 방식으로, 공간화된 오디오 매니저(205)는 그 안에 내장되거나 구현된 사운드 엔진 기능을 포함할 수 있다. 대안적으로, 독립형 사운드 엔진 컴포넌트 또는 컴포넌트들은 공간화된 오디오 출력(250)을 제공하는 데 사용될 수 있다.
이러한 방식으로, 공간화된 오디오 매니저(205)는 게임 엔진(104)뿐만 아니라 데이터 모델(206)로부터 수신된 데이터에 기초하여 결합된 공간화된 오디오 스트림(250)을 제공한다. 예컨대, 공간화된 오디오 매니저(205)는 각각의 개별 사용자 오디오 스트림(238)을 공간, 아바타 및 장면 정보 신호(244)(예컨대, 오디오 싱크에서 결합된)에 기초한 새로운 개별 공간화된 오디오 스트림(276)으로서 수신할 수 있다.
도 2a 및 도 2b를 참조하여 전술한 바와 같이, 복수의 공간화된 오디오 스트림(246/276)(또는 비공간화된 개별 오디오 스트림(238))은 결합되어 특정 클라이언트 장치(110)에서의 출력을 위해 결합된 공간화된 오디오 스트림(250)을 생성할 수 있다. 특정 가상 메타버스 장소 또는 가상 환경에서 이용할 수 있는 가능한 많은 수의 오디오 스트림을 고려할 때, 일부 구현에서는 오디오 스트림의 우선순위화를 제공한다. 오디오 스트림의 우선순위화(때로는 오디오 스트림에 대한 "구독(subscription)"이라고도 함)는 우선순위화된 스트림의 감소된 세트(예컨대, 모든 이용 가능한 스트림과 비교하여)가 공간화된 오디오 스트림으로 변환되도록 허용한다. 이 감소된 스트림 세트는 결합된 공간화된 오디오 스트림을 생성하기 위한 저감된 계산 주기, 저감된 시스템 리소스 사용량, 에너지 절약 및 저감된 대역폭 사용량을 포함한 기술적 이점과 효과를 제공한다.
이하, 공간화된 오디오 API(106)와 이용 가능한 아바타 및 장면 데이터를 활용하는 공간화된 오디오 스트림의 우선순위화가 도 3을 참조하여 더 자세히 설명된다.
도 3은 일부 구현에 따른, 가상 메타버스에서 공간화된 오디오 스트림의 우선순위를 지정하기 위한 예시적인 네트워크 환경(300)(예컨대, 네트워크 환경(100)의 서브세트)의 다이어그램이다. 네트워크 환경(300)은 예시를 위해 제공된다. 일부 구현에서, 네트워크 환경(300)은 도 3에 도시된 것과 동일하거나 상이한 방식으로 구성된 동일하거나, 더 적거나, 더 많거나, 다른 요소를 포함할 수 있다.
도 3에 도시된 바와 같이, 미디어 서버(202)와 클라이언트 장치(110)는 공개된 오디오 스트림(published audio stream)(330)이 클라이언트 장치(110)로부터 수신되고 우선순위화된 오디오 스트림 세트(350)가 클라이언트 장치(110)에서의 변환, 결합 및 출력을 위해 제공되도록(예컨대, 네트워크(122)를 통해, 도시되지 않음) 통신할 수 있다. 일부 구현에서, 우선순위화된 오디오 스트림(350)은 클라이언트 장치(110)가 아닌 온라인 경험 플랫폼(102)에서 변환 및 결합될 수 있다는 점에 유의한다. 이러한 모든 수정은 본 개시의 범위 내에 있다.
클라이언트 장치(110)는 도 1 및 도 2a-2b에 도시된 컴포넌트들에 더하여, 실시간 통신 모듈(302)은 물론 구독 로직(312)도 포함할 수 있다. 미디어 서버(202)는 도 1 및 도 2a-2b에 도시된 컴포넌트들에 더하여, 실시간 통신 모듈(306), 구독 교환 컴포넌트(304) 및 구독 우선순위 지정자(210)를 포함할 수 있다.
실시간 통신 모듈(302/306)은 클라이언트 장치(110) 및 미디어 서버(202)에서 각각 인스턴스화되는(instantiated) 실시간 통신 서버의 소프트웨어 컴포넌트 또는 인스턴스일 수 있다. 적어도 하나의 구현에서, 실시간 통신 모듈(302/306)은 노출된 WebRTC API(도시되지 않음)에 따라 구현된 WebRTC 서버의 인스턴스이다. 실시간 통신 모듈(302/306)은 각각의 연결된 클라이언트 장치로부터 공개된 스트림(published stream)(330)과 우선순위화된 오디오 스트림 세트(350)를 각각의 연결된 클라이언트 장치로 전달하도록 구성된다.
구독 교환 컴포넌트(304)는 실시간 통신 모듈(306/302)로부터 HRTF(Head-Related Transfer Function) 및/또는 BW(Baum-Welch) 은닉 마르코프 모델(332/333)의 적어도 일부의 추정치를 수신하고 클라이언트 장치로의 출력을 위해 오디오 스트림 세트를 세트(331/351)로 우선순위 지정하도록 구성된 소프트웨어 컴포넌트이다.
구독 우선순위 지정자(310)는 데이터 모델(206)로부터 적절한 및/또는 관련된 공간 매개변수(336) 및 공간화된 오디오 API(106)로부터 다수의 구독 요청(334)을 검색한다. 공간 매개변수 및 구독 요청을 사용하여, 구독 우선순위 지정자는 이용 가능한 오디오 스트림을 우선순위화된 세트(350)로 우선순위를 지정한다. 우선순위화는 예컨대 메타버스 장소에서의 아바타의 근접성, 메타버스 장소에서의 아바타의 속도, 메타버스 장소에서의 아바타의 방향, 메타버스 장소 내의 아바타에 근접한 가상 객체, 사용자 장치의 성능, 대역폭 가용성, 미디어 서버(202)에 대한 연결 수, 공간화된 오디오를 사용하는 전체 사용자 수, 및/또는 클라이언트 장치(110)와 연관된 사용자의 사용자 선호도를 포함하는 다수의 요인에 기초할 수 있다. 추가적인 요인은 이용 가능한 대역폭(예컨대, 미디어 서버(202)와 클라이언트 장치(110) 사이), 이용 가능한 처리 성능(예컨대, 미디어 서버(202), 클라이언트 장치(110) 및/또는 조합의), 이용 가능한 메모리(예컨대, 미디어 서버(202), 클라이언트 장치(110) 및/또는 조합의) 및 기타 요인을 포함한다.
구독 요청은 특정 사용자의 특정 아바타에 대한 공간 매개변수(340)에 기초하여 개별 구독 요청(338)을 발행하도록 구성된 구독 로직(312)에 기초한다. 이러한 방식으로, 각각의 개별 클라이언트 장치는 연관된 아바타 및 공간 매개변수(340)와 예컨대 HRTF 매개변수, BW 은닉 마르코프 모델 매개변수 및/또는 VAD 매개변수를 포함할 수 있는 다른 요인(342)에 기초하여 서로 다른 구독 요청(338)을 발행한다.
전술한 바와 같이, 우선순위화된 스트림 세트는 아바타, 아이템, 객체 및 메타버스 장소의 다른 특징 뿐만 아니라 계산 리소스, 저장 리소스, 대역폭 리소스 및 기타 리소스와 관련된 복수의 공간 매개변수에 기초할 수 있다. 이하, 공간화된 오디오와 관련된 양상의 예가 도 4 및 5를 참조하여 제공된다.
도 4 & 5: 메타버스 장소에서의 공간화된 오디오의 예
도 4 및 도 5는 일부 구현에 따른 온라인 가상 경험 내의 메타버스 장소(400) 및 메타버스 장소(500)와 같은 예시적인 가상 환경을 도시하는 다이어그램이다. 메타버스 장소(400)는 제1 아바타(402), 제2 아바타(404) 및 제3 아바타(406)를 포함한다. 아바타(402-406)는 각 사용자에 의해 제어되는 아바타 및/또는 온라인 경험 플랫폼(102)의 자동 제어 하에 있는 아바타(예: 컴퓨터 생성 캐릭터)를 포함할 수 있다.
아바타(402-406) 외에도, 메타버스 장소(400)는 제1 가상 객체(408), 제2 가상 객체(410), 제3 가상 객체(412) 및 제4 가상 객체(422)를 포함한다. 가상 객체는 무엇보다도 건물, 건물의 컴포넌트(예: 벽, 창문, 문 등), 수역(예: 연못, 강, 호수, 바다 등), 가구, 기계, 차량, 식물, 동물 등을 나타낼 수 있다. 가상 객체(408-412)는 재료 유형(예: 금속, 나무, 천, 돌 등), 메타버스 장소(400) 내의 객체 위치, 객체 크기, 객체 모양, 또는 객체 사운드 특성(예: 객체가 만드는 주변 사운드, 사운드가 나는 빈도, 사운드의 볼륨 등)과 같은 하나 이상의 객체 특성에 대응하는 관련 데이터 또는 메타데이터를 포함할 수 있다.
객체의 사운드 특성은 객체 유형, 객체 크기, 객체 모양 또는 객체 위치를 기반으로 할 수 있다. 예컨대, 다 자란 큰 개를 나타내는 객체는 크고(객체 크기) 캐릭터에 대해 주어진 위치(객체 위치)에 위치하는 다 자란 개(객체 유형)의 전형적인 사운드 특성을 가질 수 있다. 사운드 특성에는 사운드 파일(예: 컴퓨터 생성 사운드 또는 녹음된 사운드)에 의해 제공될 수 있는 객체가 내는 주변 사운드(예: 짖는 사운드)가 포함될 수 있다. 또한, 사운드 특성은 객체가 사운드를 내는 빈도(예컨대, 개가 얼마나 자주 짖는지)와 주변 사운드의 볼륨(예컨대, 주어진 거리에서 개가 얼마나 크게 짖는지)을 포함할 수 있다. 객체의 주변 사운드 볼륨은 나중에 오디오 공간화 프로세스의 일부로서 수정될 수 있다(예: 캐릭터와 가까운 개에 대해서는 개가 짖는 사운드를 더 크게 할 수 있고 캐릭터로부터 더 멀리 있는 개에 대해서는 더 조용하게 만들 수 있다).
도 4에 도시된 예에서. 객체는 가구나 건물의 일부를 포함할 수 있다. 예컨대, 가상 객체(408)는 출입구 또는 메타버스 장소 사이의 가상 경계일 수 있다. 가상 객체(410)와 가상 객체(412)는 벽일 수 있다. 가상 객체(422)는 작은 테이블이나 다른 가상 가구일 수 있다.
아바타(402)는 사운드 경로(414 및 416)에 의해 도시된 바와 같이 말하고 시뮬레이션된 사운드를 방출할 수 있다. 사운드 경로(414)를 따른 아바타(402)의 음성은 아바타(406)의 왼쪽에서 나오고, 사운드 경로(416)는 가상 출입구(408)를 통해 아바타(404)의 오른쪽에서 나온다. 아바타(402)와 아바타(406) 사이의 사운드 경로는 일반적으로 직접적인 반면, 아바타(402)에서 아바타(404)까지의 사운드 경로는 사운드 경로(416)에 표시된 것처럼 벽(210, 412)에서 부분적으로 반사된다.
또한, 주변 사운드는 테이블(422)에 의해 방출될 수 있다. 예컨대, 테이블은 스피커 또는 사운드를 방출하는 테이블 위의 다른 객체를 포함할 수 있다. 주변 사운드는 사운드 경로(418 & 419)로 표시된다. 일부 구현에서 주변 사운드에는 바람, 비, 음악, 기계, 동물, 아이템 이동, 발자국 등과 같은 사운드가 포함될 수 있다. 주변 사운드는 또한 정지해 있거나 환경 주변을 이동하는 객체(예컨대 자동차)로부터 방사하는 사운드를 포함할 수 있다. 주변 사운드는 또한 환경(400) 및/또는 환경(400) 내의 객체와 함께 움직이거나 인터랙팅하는 다른 아바타에 의해 생성된 사운드를 포함할 수 있다.
동작 시, 여기에 설명된 오디오 공간화 기술의 구현은 도 4에 도시된 예시적인 메타버스 장소에 기초하여 다음 동작 중 하나 이상을 수행할 수 있다: 1) 말하는 아바타와 관련하여 각각의 수신하는 아바타(예컨대, 404 또는 406)의 위치에 기초하여 아바타(예컨대, 아바타(402))의 음성 통신의 공간화; 2) 가상 환경 내의 임의의 객체(예컨대, 408, 410, 412 또는 422)에 기초한 음성 통신의 오디오 공간화; 및 3) 가상 환경 내의 주변 사운드(예컨대, 객체(410)에 의해 방출되는 사운드)의 오디오 공간화.
이제 도 5로 넘어가면, 메타버스 장소(500)의 위에서 본 모습이 예시되어 있다. 도시된 바와 같이, 아바타(502, 504, 506, 508)의 단순화된 개략도는 아바타(502)와 관련하여 측정된 거리 반경(525)을 포함한다. 이 예에서, 아바타(502)는 공간화된 오디오를 요청하는 사용자를 나타낼 수 있고, 거리 반경(525)은 오디오 스트림의 우선순위화에 사용되는 매개변수 또는 세팅일 수 있다.
추가로 도시된 바와 같이, 아바타 위치 및 속도 데이터 (541, 561, 581)는 각각의 아바타로부터 나오는 화살표로 표시된다. 이 예에서, 아바타(502)와 연관된 사용자 장치는 아바타(504 및 506)와 연관된 우선순위화된 오디오 스트림 뿐만 아니라 반경(525) 내의 임의의 객체 또는 비플레이어 아이템과 연관된 주변 사운드도 수신할 수 있다. 그러나 아바타(508)와 연관된 데이터는 또한 화살표(581)로 도시된 바와 같이 아바타(508)가 반경(525)에 계속 접근하면 우선순위가 부여될 준비가 될 수 있다. 대안적으로, 계산 리소스가 허용하거나 다른 매개변수가 허용하는 경우, 아바타(508)와 연관된 데이터는 또한 리소스나 다른 우선순위 매개변수가 변경(예컨대, 추가 아바타가 아바타(502)에 접근하고, 계산 리소스 사용량이 임계값을 초과하여 증가하고, 배경 오디오와 같은 추가 오디오 스트림이 더 높은 우선순위로 지정되는 등)될 때까지 우선순위화된 오디오 스트림에 포함될 수도 있다.
이러한 방식으로 이용 가능한 오디오 스트림의 서브세트는 우선순위가 지정되어 컴퓨팅 리소스가 줄어들면서 풍부하고 몰입감 있는 오디오가 여전히 클라이언트 장치에 효과적으로 제공된다.
이하, 공간화된 오디오 스트림의 생성 뿐만 아니라 오디오 스트림의 우선순위화에 대한 보다 상세한 논의가 도 6 및 7을 참조하여 제공된다.
도 6: 공간화된 오디오 스트림을 생성하기 위한 예시적인 방법
도 6은 일부 구현에 따른, 메타버스 장소에서 공간화된 오디오를 생성하기 위한 예시적인 방법(600)의 흐름도이다. 일부 구현에서, 방법(600)은 예컨대, 서버 시스템, 예컨대, 도 1에 도시된 바와 같은 온라인 경험 플랫폼(102)에서 구현될 수 있다. 일부 구현에서, 방법(600)의 일부 또는 전부는 도 1에 도시된 바와 같이 하나 이상의 클라이언트 장치(110 및 116)와 같은 시스템 및/또는 서버 시스템과 하나 이상의 클라이언트 시스템 모두에서 구현될 수 있다. 설명된 예시에서, 구현 시스템은 하나 이상의 프로세서 또는 처리 회로, 및 데이터베이스 또는 다른 액세스 가능한 스토리지와 같은 하나 이상의 저장 장치를 포함한다. 일부 구현에서, 하나 이상의 서버 및/또는 클라이언트의 상이한 컴포넌트는 방법(600)의 상이한 블록 또는 다른 부분을 수행할 수 있다. 방법(600)은 블록(602)에서 시작할 수 있다.
블록(602)에서, 가상 메타버스의 메타버스 장소와 연관된 오디오를 수신하라는 요청이 (예컨대, 복수의 사용자의 제1 사용자로부터) 수신될 수 있다. 예컨대, 클라이언트 장치(110)(사용자 장치라고도 함)는 제1 사용자와 연관될 수 있다. 제1 사용자는 제1 아바타와 연관된다. 더욱이, 복수의 사용자는 메타버스 장소에서의 복수의 아바타(예컨대, 메타버스 장소에 참가하는 다른 아바타)와 연관될 수 있다. 블록(602) 다음에 블록(604)이 이어진다.
블록(604)에서, 메타버스 장소와 연관된 데이터 모델이 검색된다. 예컨대, 데이터 모델(206)은 데이터 저장소(108)에 저장될 수 있다. 데이터 모델은 메타버스 장소에 적용되는 물리 법칙의 그룹(예컨대, 하나 이상)을 나타내는 하나 이상의 공간 매개변수를 포함할 수 있다. 이러한 물리 법칙은 공간 효과를 높이기 위해 (지구에 적용되는 물리 법칙과 비교하여) 과장될 수도 있고, 또는 공간 효과를 약간만 구현하기 위해 약화될 수도 있다. 사운드 전파의 매개변수 및 기본 물리 법칙은 위에서 설명된 공간화된 오디오 API(106)를 통해 조정 및/또는 변경될 수 있다. 블록(604) 다음에 블록(606)이 이어진다.
블록(606)에서, 요청에 응답하여 데이터 모델로부터 아바타 정보 및 장면 정보가 추출된다. 예컨대, 요청은 특정 클라이언트 장치, 즉 특정 아바타와 연관될 수 있다. 따라서, 추출된 아바타 정보는: 특정 아바타 및 메타버스 장소에서의 특정 아바타에 근접한 복수의 아바타의 위치, 속도 또는 방향 중 하나 이상을 포함한다. 유사하게, 장면 정보는: 특정 아바타에 가상으로 근접한 오클루전, 잔향, 가상 객체, 비플레이어 객체, 개구부, 오리피스, 반사 표면, 가상 천장, 가상 바닥 및/또는 가상 벽 중 하나 이상을 포함한다. 블록(606) 다음에 블록(608)이 이어진다.
블록(608)에서, 복수의 사용자의 각 사용자로부터 수신된 각각의 오디오 스트림은 추출된 공간 매개변수를 사용하여 변환된다. 아바타 정보와 장면 정보를 기반으로 변환이 이루어진다. 변환은 공간화된 오디오 스트림을 생성하기 위해 하나 이상의 오디오 특성을 수정하는 단계를 포함할 수 있다. 예컨대, 데이터 모델에 정의된 아바타 사이의 거리에 기초하여 오디오를 감쇠하기 위한 거리 감쇠 매개변수에 기초한 감쇠가 오디오 특성을 변경하는 데 사용될 수 있다. 유사하게, 오디오의 롤인 또는 롤아웃이(예컨대, "페이딩" 또는 "롤링" 효과를 사용하여) 오디오 특성을 변경하기 위해 구현될 수 있다. 추가적으로, 볼륨 증가, 볼륨 감소, 도플러 이동, 잔향 또는 반사가 제공될 수 있으며 및/또는 기타 특성이 변경될 수 있다. 이러한 방식으로, 변환하는 단계는 메타버스 장소 내의 각 개별 아바타 및/또는 가상 객체/아이템에 대한 공간화된 오디오 스트림을 출력한다. 블록(608) 다음에 블록(610)이 이어진다.
블록(610)에서, 공간화된 오디오 스트림은 결합되어 결합된 공간화된 오디오 스트림을 생성한다. 결합은 온라인 경험 플랫폼(102)에서, 클라이언트 장치(110/116)에서, 및/또는 온라인 경험 플랫폼과 클라이언트 장치의 결합을 통해 수행될 수 있다. 일부 구현에서는 우선순위화된 오디오 스트림 세트에 대해서만 결합이 수행될 수 있다. 다른 구현에서, 이용 가능한 오디오 스트림의 서브세트는 메타버스 장소 내의 아바타에 대한 근접성 또는 임계 거리에 기초하여 변환된다. 변환되는 오디오 스트림의 수에 대한 다른 변형 및 제한도 또한 가능하며, 이러한 변형은 본 개시의 범위 내에 있다.
적어도 하나의 구현에 따르면, 배경 오디오의 스트림은 또한 공간화된 오디오 스트림과 결합되어 결합된 공간화된 오디오 스트림을 생성한다. 예컨대, 많은 참가자를 배경 소음/잡담(chatter)에 혼합하는 배경 또는 "특수" 스트림은 보다 현실적인 경험을 제공할 수 있다. 예컨대, 50명이 대화하는 방에서 한 아바타가 가까이에 있는 여러 아바타와 대화를 나누고 있을 수 있다. 근위 참가자의 오디오가 가장 명확할 수 있지만 아바타 주변의 배경 잡담도 있다(예: 순수한 침묵은 현실적이지 않다). 따라서, 배경 스트림은 상대적으로 간결한 방식(streamlined manner)으로 나머지 50개 아바타의 일반적인 배경 잡담을 포함하도록 미리 혼합될 수 있다(예컨대, 결합된 스트림에 의해 모든 참가자에게 사용될 모든 참가자로부터의 플랫 배경 스트림). 이러한 방식으로, 배경 오디오는 제1 사용자와 별개인 다른 사용자들로부터 수신된 오디오, 메타버스 장소 내 아바타의 움직임을 기반으로 생성된 오디오, 및/또는 일반 또는 "특수" 배경 스트림 중 하나 이상을 기반으로 생성될 수 있다. 블록(610) 다음에 블록(612)이 이어진다.
블록(612)에서, 결합된 공간화된 오디오 스트림은 그에 연결된 오디오 출력 장치, 예컨대 스피커 또는 헤드폰 세트를 통한 출력을 위해 사용자 장치에 제공된다. 일부 구현에서, 공간화된 오디오 스트림은 가상 현실 헤드셋, 증강 현실 헤드셋, 머리 장착형 장치 등의 오디오 출력 장치를 통해 제공될 수 있다.
블록(602-612)은 전술한 것과 상이한 순서로 수행(또는 반복)될 수 있고, 그리고/또는 하나 이상의 블록이 생략될 수 있다. 예컨대, 데이터 추출(블록(604-606))은 오디오 변환 및 결합(블록(608-612))과 독립적으로 수행될 수 있다. 또한, 일부 구현에서, 요청을 수신하는 것, 관련 데이터를 추출하는 것 및 오디오를 변환하는 것이 병렬로 수행되거나, 상이한 컴포넌트에 의해 수행될 수 있다.
이하에서는, 도 7을 참조하여 스트림 우선순위화에 대한 보다 상세한 논의가 제공된다.
도 7: 공간화된 오디오 스트림의 우선순위를 지정하기 위한 예시적인 방법
도 7은 일부 구현에 따른, 분류에 기초하여 콘텐츠를 사용자에게 제공하기 위한 예시적인 방법(700)의 흐름도이다. 일부 구현에서, 방법(700)은 예컨대, 서버 시스템, 예컨대, 도 1에 도시된 바와 같은 온라인 경험 플랫폼(102)에서 구현될 수 있다. 일부 구현에서, 방법(700)의 일부 또는 전부는 도 1에 도시된 바와 같이 하나 이상의 클라이언트 장치(110 및 116)와 같은 시스템 및/또는 서버 시스템과 하나 이상의 클라이언트 시스템 모두에서 구현될 수 있다. 설명된 예시에서, 구현 시스템은 하나 이상의 프로세서 또는 처리 회로, 및 데이터베이스 또는 다른 액세스 가능한 스토리지와 같은 하나 이상의 저장 장치를 포함한다. 일부 구현에서, 하나 이상의 서버 및/또는 클라이언트의 상이한 컴포넌트는 방법(700)의 상이한 블록 또는 다른 부분을 수행할 수 있다. 방법(700)은 블록(702)에서 시작할 수 있다.
블록(702)에서, 가상 메타버스의 메타버스 장소와 연관된 오디오를 수신하라는 요청이 (예컨대, 복수의 사용자의 제1 사용자로부터) 수신될 수 있다. 예컨대, 클라이언트 장치(110)는 제1 사용자와 연관될 수 있다. 제1 사용자는 제1 아바타와 연관된다. 더욱이, 복수의 사용자는 메타버스 장소에서의 복수의 아바타(예컨대, 메타버스 장소에 참가하는 아바타)와 연관될 수 있다. 블록(702) 다음에 블록(704)이 이어진다.
블록(704)에서, 우선순위화된 오디오 스트림 세트가 제1 사용자에 대해 결정된다. 우선순위화된 오디오 스트림 세트는 메타버스 장소 내의 복수의 사용자의 각 사용자로부터 수신된 모든 오디오 스트림 뿐만 아니라 다른 모든 오디오 스트림(예: 주변 사운드, 비플레이어 캐릭터/아이템 사운드 등)의 순위가 지정된 서브세트이다. 우선순위 지정은 예컨대 임계 거리 및/또는 임계 반경(예컨대, 도 5에 예시된 바와 같이)에 기초할 수 있다.
우선순위 지정은: 메타버스 장소에서의 아바타의 근접성, 메타버스 장소에서의 아바타의 속도, 메타버스 장소에서의 아바타의 방향, 메타버스 장소 내의 아바타에 근접한 가상 객체, 사용자 장치의 성능, 또는 제1 사용자의 사용자 선호도에 또한 기초할 수 있다. 예컨대, 우선순위 지정은 목표 아바타를 향해 움직이는 아바타, 목표 아바타를 향한 아바타, 및 기타 유사한 우선순위화 매개변수를 고려할 수 있다.
우선순위 지정은 또한 클라이언트 장치의 처리 리소스 및/또는 성능을 기반으로 할 수도 있다. 예컨대, 우선순위 지정은 메모리 사용량, 디스크 사용량, 대역폭 가용성, 프로세서 사용량 및 기타 리소스 사용량을 고려하여 특정 수의 공간화된 오디오 스트림을 처리하기에 충분한 리소스가 존재하는지를 결정할 수 있다. 그러면 우선순위화는 충돌이나 임계값을 초과하는 추가 리소스의 활용을 피하기 위해 특정 개수의 스트림이 우선순위화되도록 스트림의 우선순위를 정할 수 있다.
우선순위 지정은 또한 미디어 서버의 처리 리소스 및/또는 성능을 기반으로 할 수도 있다. 예컨대 우선순위 지정은 메모리 사용량, 저장소 사용량, 대역폭 가용성, 프로세서 사용량, 활성 연결 수, 비활성 연결 수, 총 사용자 수 및 기타 리소스 사용량을 고려하여 특정 수의 공간화된 오디오 스트림을 처리하기에 충분한 리소스가 존재하는지를 결정할 수 있다. 그러면 우선순위화는 충돌이나 임계값을 초과하는 추가 리소스의 활용을 피하기 위해 특정 개수의 스트림이 우선순위화되도록 스트림의 우선순위를 정할 수 있다.
우선순위 지정은 또한 온라인 경험 플랫폼의 처리 리소스 및/또는 성능을 기반으로 할 수도 있다. 예컨대 우선순위 지정은 메모리 사용량, 저장소 사용량, 대역폭 가용성, 프로세서 사용량, 활성 연결 수, 비활성 연결 수, 총 사용자 수, 활성 온라인 경험 수 및 기타 리소스 사용량을 고려하여 특정 수의 공간화된 오디오 스트림을 처리하기에 충분한 리소스가 존재하는지를 결정할 수 있다. 그러면 우선순위화는 충돌이나 임계값을 초과하는 추가 리소스의 활용을 피하기 위해 특정 개수의 스트림이 우선순위화되도록 스트림의 우선순위를 정할 수 있다.
우선순위 지정을 기초로 한 다른 변형도 가능하며 이는 본 개시의 범위 내에 있다. 블록(704) 다음에는 블록(706)이 이어진다.
블록(706)에서, 우선순위화된 오디오 스트림의 각각의 오디오 스트림은 추출된 공간 매개변수를 사용하여 변환된다. 변환은 아바타 정보와 장면 정보를 기반으로 이루어진다. 변환하는 단계는 공간화된 오디오 스트림을 생성하기 위해 하나 이상의 오디오 특성을 수정하는 단계를 포함할 수 있다. 예컨대, 데이터 모델에 정의된 아바타 사이의 거리에 기초하여 오디오를 감쇠하기 위한 거리 감쇠 매개변수에 기초한 감쇠가 오디오 특성을 변경하는 데 사용될 수 있다. 마찬가지로, 오디오 롤인 또는 롤아웃을 구현하여 오디오 특성을 변경할 수도 있다. 또한 볼륨 증가, 볼륨 감소, 도플러 이동, 잔향, 반사 및 기타 특성이 변경될 수 있다. 이러한 방식으로, 변환하는 단계는 우선순위화된 오디오 스트림과 연관된 각각의 개별 아바타 및/또는 가상 객체/아이템에 대한 공간화된 오디오 스트림을 출력한다. 블록(706) 다음에 블록(708)이 이어진다.
블록(708)에서, 공간화된 오디오 스트림은 결합되어 결합된 공간화된 오디오 스트림을 생성한다. 결합은 온라인 경험 플랫폼(102)에서, 클라이언트 장치(110/116)에서, 및/또는 온라인 경험 플랫폼과 클라이언트 장치의 결합을 통해 수행될 수 있다. 위에서 언급한 바와 같이, 특수 또는 배경 오디오 스트림은 공간화된 오디오 출력에 주변 및/또는 배경 오디오를 제공하기 위해 결합될 수도 있다. 결합은 우선순위화된 오디오 스트림 세트에 대해서만 수행될 수 있다. 블록(708) 다음에 블록(710)이 이어진다.
블록(710)에서, 결합된 공간화된 오디오 스트림은 그에 연결된 오디오 출력 장치, 예컨대 스피커 또는 헤드폰 세트를 통한 출력을 위해 사용자 장치에 제공된다.
블록(702-710)은 전술한 것과 상이한 순서로 수행(또는 반복)될 수 있고, 그리고/또는 하나 이상의 블록이 생략될 수 있다. 방법(600 및/또는 700)은 서버(예컨대, 102) 및/또는 클라이언트 장치(예컨대, 110 또는 116)에서 수행될 수 있다. 또한, 방법(600 및 700)의 일부는 임의의 원하는 구현에 따라, 결합되고 순차적으로 또는 병렬로 수행될 수 있다.
전술한 바와 같이, 시스템, 방법 및 컴퓨터 판독 가능 매체는 가상 경험에서 공간화된 오디오를 제공할 수 있다. 로버스트 공간화된 오디오 API의 제공을 통해, 개발자는 자신이 생성하는 거의 모든 가상 경험에 공간화된 오디오를 사용할 수 있다. 공간화된 오디오 API로 강화된 전형적인 가상 경험의 몰입형 품질은 풍부한 사용자 경험을 제공하고, 사용자 참여를 증가시키며, 직관적인 피드백(예컨대, 오디오 위치를 통해)을 제공하고, 공간화된 오디오 구현의 복잡성을 크게 감소시킨다.
이하에서는, 도 8을 참조하여, 도 1-3에 예시된 상이한 장치를 구현하는 데 사용될 수 있는 다양한 컴퓨팅 장치에 대한 보다 상세한 설명이 제공된다.
도 8은 일부 구현에 따른, 여기에서 설명된 하나 이상의 특징을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 장치(800)의 블록도이다. 일 예시에서, 장치(800)는 컴퓨터 장치(예컨대, 도 1의 102, 110 및/또는 116)를 구현하고, 여기에서 설명된 적절한 방법 구현을 수행하는 데 사용될 수 있다. 컴퓨팅 장치(800)는 임의의 적절한 컴퓨터 시스템, 서버, 또는 다른 전자 또는 하드웨어 장치일 수 있다. 예컨대, 컴퓨팅 장치(800)는 메인프레임 컴퓨터, 데스크톱 컴퓨터, 워크스테이션, 휴대용 컴퓨터 또는 전자 장치(휴대용 장치, 모바일 장치, 휴대폰, 스마트 폰, 태블릿 컴퓨터, 텔레비전, TV 셋톱 박스, PDA(personal digital assistant), 미디어 플레이어, 게임 장치, 웨어러블 장치 등)일 수 있다. 일부 구현에서, 장치(800)는 프로세서(802), 메모리(804), 입력/출력(I/O) 인터페이스(806) 및 오디오/비디오 입력/출력 장치(814)(예컨대, 디스플레이 스크린, 터치스크린, 디스플레이 고글 또는 안경, 오디오 스피커, 헤드폰, 마이크로폰 등)를 포함한다.
프로세서(802)는 프로그램 코드를 실행하고 장치(800)의 기본 동작을 제어하기 위한 하나 이상의 프로세서 및/또는 처리 회로일 수 있다. "프로세서"는 데이터, 신호 또는 기타 정보를 처리하는 임의의 적절한 하드웨어 및/또는 소프트웨어 시스템, 메커니즘 또는 컴포넌트를 포함한다. 프로세서는 범용 중앙 처리 장치(CPU), 다중 처리 장치, 기능을 달성하기 위한 전용 회로 또는 기타 시스템이 있는 시스템을 포함할 수 있다. 처리는 특정 지리적 위치로 제한되거나 일시적인 제한을 가질 필요가 없다. 예컨대, 프로세서는 "실시간", "오프라인", "배치 모드(batch mode)" 등의 기능을 수행할 수 있다. 처리의 일부는 상이한 (또는 동일한) 처리 시스템에 의해 다른 시간과 다른 위치에서 수행될 수 있다. 컴퓨터는 메모리와 통신하는 임의의 프로세서일 수 있다.
메모리(804)는 전형적으로 프로세서(802)에 의한 액세스를 위해 장치(800)에 제공되고, 프로세서에 의한 실행을 위한 명령을 저장하는 데 적합하고 프로세서(802)와 분리되어 위치 및/또는 통합되는, 임의의 적절한 프로세서 판독가능 저장 매체, 예컨대 RAM(random access memory), ROM(read-only memory), EEPROM(Electrical Erasable Read-only Memory), 플래시 메모리 등일 수 있다. 메모리(804)는 운영 체제(808), 애플리케이션(810) 및 연관 데이터(812)를 포함하는, 프로세서(802)에 의해 서버 장치(800) 상에서 동작하는 소프트웨어를 저장할 수 있다. 일부 구현에서, 애플리케이션(810)은 프로세서(802)가 여기에서 설명된 기능, 예컨대, 도 6 및 7의 방법의 일부 또는 전부를 수행하도록 하는 명령어를 포함할 수 있다.
예컨대, 메모리(804)는 온라인 경험 플랫폼(예컨대, 102) 또는 메타버스 장소 내에서 공간화된 오디오의 우선순위를 지정 및/또는 제공하기 위한 소프트웨어 명령을 포함할 수 있다. 메모리(804)에서 소프트웨어 중 임의의 것은 대안적으로 임의의 다른 적절한 저장 위치 또는 컴퓨터 판독가능 매체에 저장될 수 있다. 또한, 메모리(804)(및/또는 다른 연결된 저장 장치(들))는 여기에서 설명된 특징에서 사용되는 명령어 및 데이터를 저장할 수 있다. 메모리(804) 및 임의의 다른 유형의 스토리지(자기 디스크, 광 디스크, 자기 테이프 또는 기타 유형의 매체)는 "스토리지” 또는 "저장 장치"로 간주될 수 있다.
I/O 인터페이스(806)는 서버 장치(800)가 다른 시스템 및 장치와 인터페이스할 수 있도록 하는 기능을 제공할 수 있다. 예컨대, 네트워크 통신 장치, 저장 장치(예컨대, 메모리 및/또는 데이터 저장소(108)) 및 입력/출력 장치는 인터페이스(806)를 통해 통신할 수 있다. 일부 구현에서, I/O 인터페이스는 입력 장치(키보드, 포인팅 장치, 터치 스크린, 마이크로폰, 카메라, 스캐너 등) 및/또는 출력 장치(디스플레이 장치, 스피커 장치, 프린터, 모터 등)를 포함하는 인터페이스 장치에 연결될 수 있다.
설명의 편의를 위해, 도 8은 프로세서(802), 메모리(804), I/O 인터페이스(806), 소프트웨어 블록(808 및 810) 및 데이터베이스(812) 각각에 대한 하나의 블록을 도시한다. 이들 블록은 하나 이상의 프로세서 또는 처리 회로, 운영 체제, 메모리, I/O 인터페이스, 애플리케이션 및/또는 소프트웨어 모듈을 나타낸다. 다른 구현에서, 장치(800)는 도시된 컴포넌트 전부를 갖지 않을 수 있고, 그리고/또는 여기에서 도시된 것 대신에 또는 이에 추가하여 다른 유형의 요소를 포함하는 다른 요소를 가질 수 있다. 온라인 경험 플랫폼(102)이 여기에서 일부 구현에 설명된 동작을 수행하는 것으로 설명되지만, 온라인 경험 플랫폼(102) 또는 유사한 시스템의 임의의 적절한 컴포넌트 또는 컴포넌트의 조합, 또는 이러한 시스템과 관련된 임의의 적절한 프로세서 또는 프로세서들이 설명된 동작을 수행할 수 있다.
사용자 장치는 또한 여기에서 설명된 특징을 구현 및/또는 사용할 수 있다. 예시적인 사용자 장치는 장치(800), 예컨대 프로세서(들)(802), 메모리(804) 및 I/O 인터페이스(806)와 같은 일부 유사한 컴포넌트를 포함하는 컴퓨터 장치일 수 있다. 클라이언트 장치에 적합한 운영 체제, 소프트웨어 및 애플리케이션이 메모리에 제공되고 프로세서에 의해 사용될 수 있다. 클라이언트 장치를 위한 I/O 인터페이스는 입력 및 출력 장치, 예컨대, 사운드를 포착하기 위한 마이크로폰, 이미지 또는 비디오를 포착하기 위한 카메라, 사운드를 출력하기 위한 오디오 스피커 장치, 이미지 또는 비디오를 출력하기 위한 디스플레이 장치 또는 기타 출력 장치뿐만 아니라 네트워크 통신 장치에 연결될 수 있다. 예컨대, 오디오/비디오 입력/출력 장치(814) 내의 디스플레이 장치는 장치(800)에 연결(또는 포함)되어 여기에서 설명된 바와 같이 이미지 전처리 및 후처리를 디스플레이할 수 있으며, 이러한 디스플레이 장치는 임의의 적절한 디스플레이 장치, 예컨대 LCD, LED 또는 플라즈마 디스플레이 스크린, CRT, 텔레비전, 모니터, 터치 스크린, 3D 디스플레이 스크린, 프로젝터 또는 기타 시각적 디스플레이 장치를 포함할 수 있다. 일부 구현은 오디오 출력 장치, 예컨대 음성 출력 또는 텍스트를 말하는 합성을 제공할 수 있다.
여기에 설명된 방법, 블록 및/또는 동작은 도시되거나 설명된 것과 다른 순서로 수행될 수 있고 및/또는 적절한 경우 다른 블록 또는 동작과 동시에(부분적으로 또는 완전히) 수행될 수 있다. 일부 블록 또는 작업은 데이터의 한 부분에 대해 수행되고 나중에 예컨대 데이터의 다른 부분에 대해 다시 수행될 수 있다. 설명된 모든 블록 및 작업이 다양한 구현에서 수행될 필요는 없다. 일부 구현에서 블록 및 작업은 메서드에서 다른 순서로 및/또는 다른 시간에 여러 번 수행될 수 있다.
일부 구현에서, 방법의 일부 또는 전부는 하나 이상의 클라이언트 장치와 같은 시스템에서 구현될 수 있다. 일부 구현에서, 여기에 설명된 하나 이상의 방법은 예컨대 서버 시스템에서 및/또는 서버 시스템과 클라이언트 시스템 모두에서 구현될 수 있다. 일부 구현에서, 하나 이상의 서버 및/또는 클라이언트의 서로 다른 컴포넌트는 메서드의 다른 블록, 작업 또는 다른 부분을 수행할 수 있다.
여기에서 설명된 하나 이상의 방법(예컨대, 방법(600 및/또는 700))은 컴퓨터에서 실행될 수 있는, 컴퓨터 프로그램 명령어 또는 코드에 의해 구현될 수 있다. 예컨대, 코드는 하나 이상의 디지털 프로세서(예컨대, 마이크로프로세서 또는 기타 처리 회로)에 의해 구현될 수 있으며, 비일시적 컴퓨터 판독가능 매체(예컨대, 저장 매체), 예컨대 반도체 또는 솔리드 스테이트 메모리, 자기 테이프, 이동식 컴퓨터 디스켓(removable computer diskette), RAM(random access memory), ROM(read-only memory), 플래시 메모리, 강성 자기 디스크(rigid magnetic disk), 광 디스크, 솔리드 스테이트 메모리 드라이브 등을 포함한 자기, 광학, 전자기 또는 반도체 저장 매체를 포함하는 컴퓨터 프로그램 제품에 저장될 수 있다. 프로그램 명령어는 서버(예컨대, 분산 시스템 및/또는 클라우드 컴퓨팅 시스템)로부터 전달된 예컨대, SaaS(software as a service)의 형태로 전자 신호에 포함되고 제공될 수 있다. 대안적으로, 하나 이상의 방법은 하드웨어(로직 게이트 등) 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 하드웨어의 예시는 프로그래밍 가능 프로세서(예컨대, FPGA(Field-Programmable Gate Array), 복합 프로그래밍 가능 논리 소자(complex programmable logic device), 범용 프로세서, 그래픽 프로세서, ASIC(Application Specific Integrated Circuit) 등)일 수 있다. 하나 이상의 방법은 시스템에서 실행되는 애플리케이션의 일부 또는 컴포넌트로서, 또는 다른 애플리케이션 및 운영 체제와 함께 실행되는 애플리케이션이 또는 소프트웨어로서 수행될 수 있다.
여기에서 설명된 하나 이상의 방법은 임의의 유형의 컴퓨팅 장치에서 실행될 수 있는 자립형 프로그램(standalone program), 웹 브라우저에서 실행되는 프로그램, 모바일 컴퓨팅 장치(예컨대, 휴대폰, 스마트 폰, 태블릿 컴퓨터, 웨어러블 장치(손목 시계, 암밴드, 장신구, 헤드웨어, 고글, 안경 등), 랩톱 컴퓨터 등)에서 실행하는 모바일 애플리케이션(“앱")에서 실행될 수 있다. 일 예시에서, 클라이언트/서버 아키텍처가 사용될 수 있고, 예컨대, (클라이언트 장치로서) 모바일 컴퓨팅 장치가 사용자 입력 데이터를 서버 장치로 전송하고 서버로부터 출력(예컨대, 디스플레이)을 위한 최종 출력 데이터를 수신한다. 다른 예시에서, 모든 계산은 모바일 컴퓨팅 장치 상의 모바일 앱(및/또는 다른 앱) 내에서 수행될 수 있다. 다른 예시에서, 계산은 모바일 컴퓨팅 장치와 하나 이상의 서버 장치 간에 분할될 수 있다.
설명이 그 특정 구현과 관련하여 설명되었지만, 이러한 특정 구현은 단지 예시적인 것이며, 제한적이지 않다. 예시에 설명된 개념은 다른 예시 및 구현에 적용될 수 있다.
여기에서 논의된 특정 구현이 사용자 데이터(예컨대, 사용자 인구통계, 플랫폼에서의 사용자 행동 데이터, 사용자 검색 히스토리, 구매 및/또는 시청한 아이템, 플랫폼에서의 사용자의 친목 등)를 획득하거나 사용할 수 있는 상황에서. 사용자에게는 이러한 정보의 수집, 저장 또는 사용 여부와 방법을 제어할 수 있는 옵션이 제공된다. 즉, 여기에서 논의된 구현은 명시적인 사용자 인가(user authorization)를 수신하고, 적용 가능한 규정에 따라 사용자 정보를 수집, 저장 및/또는 사용한다.
사용자는 프로그램 또는 특징이 특정 사용자 또는 프로그램 또는 특징과 관련된 다른 사용자에 대한 사용자 정보를 수집하는지 여부에 대한 제어가 제공될 수 있다. 정보를 수집할 각 사용자에게는 사용자가 해당 사용자와 관련된 정보 수집에 대한 제어를 행사하고, 정보가 수집되는지 그리고 정보의 어느 부분을 수집할 것인지에 대한 허가 또는 인가를 제공하도록 허용할 수 있는 옵션(예컨대, 사용자 인터페이스를 통해)이 제시된다. 또한, 특정 데이터는 저장 또는 사용 전에 하나 이상의 방식으로 수정되어, 개인 식별 정보가 제거될 수 있다. 일 예시로서, 개인 식별 정보가 결정될 수 없도록 사용자의 신원이 수정될 수 있다(예컨대, 가명(pseudonym), 숫자 값 등을 사용한 대체). 다른 예시에서, 사용자의 지리적 위치는 더 큰 지역(예컨대, 도시, 우편 번호, 주, 국가 등)으로 일반화될 수 있다.
본 개시에서 설명된 기능 블록, 동작, 특징, 방법, 장치 및 시스템은 당업자에게 알려진 바와 같이 시스템, 장치 및 기능 블록의 상이한 조합으로 통합되거나 분할될 수 있다는 점에 유의한다. 임의의 적절한 프로그래밍 언어 및 프로그래밍 기술이 특정 구현의 루틴을 구현하는 데 사용될 수 있다. 다른 프로그래밍 기술이, 예컨대 절차적 또는 객체 지향적으로 이용될 수 있다. 루틴은 단일 처리 장치 또는 다중 프로세서 상에서 실행할 수 있다. 단계, 동작 또는 계산이 특정 순서로 제시될 수 있지만, 순서는 다른 특정 구현에서 변경될 수 있다. 일부 구현에서, 본 명세서에서 순차적으로 도시된 복수의 단계 또는 동작이 동시에 수행될 수 있다.

Claims (20)

  1. 가상 메타버스에서의 공간화된 오디오의 컴퓨터-구현 방법으로서,
    복수의 사용자의 제1 사용자로부터 상기 가상 메타버스의 메타버스 장소와 연관된 오디오를 수신하기 위한 요청을 수신하는 단계 - 상기 제1 사용자는 사용자 장치와 연관되고, 상기 복수의 사용자는 상기 메타버스 장소에서의 복수의 아바타의 각 아바타와 연관됨 -;
    상기 메타버스 장소와 연관된 데이터 모델을 검색하는 단계 - 상기 데이터 모델은 상기 메타버스 장소에 적용되는 하나 이상의 물리 법칙을 나타내는 하나 이상의 공간 매개변수를 포함함 -;
    상기 데이터 모델로부터 아바타 정보 및 장면 정보를 추출하는 단계 - 상기 아바타 정보는 상기 제1 사용자와 연관된 제1 아바타를 포함하는 상기 메타버스 장소에서의 상기 복수의 아바타의 위치, 속도, 또는 방향 중 하나 이상을 포함하고, 상기 장면 정보는 상기 메타버스 장소에서의 상기 제1 아바타에 가상으로 근접한 오클루전(occlusion), 잔향(reverberation) 또는 가상 벽 중 하나 이상을 포함함 -;
    상기 아바타 정보 및 상기 장면 정보에 기초한 상기 복수의 사용자의 각 사용자로부터 수신된 각 오디오 스트림, 및 공간화된 오디오 스트림을 생성하기 위한 상기 하나 이상의 공간 매개변수에 기초한 각각의 상기 오디오 스트림 중 적어도 하나의 하나 이상의 오디오 특성을 변환하는 단계;
    결합된 공간화된 오디오 스트림을 생성하기 위하여 상기 공간화된 오디오 스트림을 결합하는 단계; 및
    상기 결합된 공간화된 오디오 스트림을 상기 사용자 장치로 제공하는 단계
    를 포함하는 컴퓨터-구현 방법.
  2. 제1항에 있어서,
    상기 공간 매개변수는 아바타 사이의 거리에 기초하여 오디오를 감쇠시키는 거리 감쇠 매개변수를 포함하는 것인, 컴퓨터-구현 방법.
  3. 제1항에 있어서,
    상기 복수의 사용자의 각각의 사용자로부터 수신된 각각의 상기 오디오 스트림은 마이크로폰 장치에서 수신된 모노럴 오디오를 포함하고, 상기 결합된 공간화된 오디오 스트림은 스테레오 오디오를 포함하는 것인, 컴퓨터-구현 방법.
  4. 제3항에 있어서,
    상기 결합된 공간화된 오디오 스트림은 각 사용자의 모노럴 오디오를 각각의 상기 사용자의 아바타의 위치에 배치함으로써 생성되는 스테레오 오디오를 포함하는 것인, 컴퓨터-구현 방법.
  5. 제1항에 있어서,
    상기 결합된 공간화된 오디오 스트림은 배경 오디오 및 상기 제1 사용자 이외의 상기 복수의 사용자의 사용자로부터 수신된 상기 오디오 스트림에 기초한 공간 오디오를 포함하고,
    상기 배경 오디오는:
    상기 제1 사용자와 별개인 다른 사용자로부터 수신된 오디오; 및
    상기 메타버스 장소 내의 아바타의 움직임을 기반으로 생성된 오디오 중 하나 이상에 기초하여 생성되는 것인, 컴퓨터-구현 방법.
  6. 제1항에 있어서,
    상기 복수의 사용자의 각각의 사용자로부터 수신된 우선순위화된 오디오 스트림의 세트를 결정하는 단계를 더 포함하며, 각 오디오 스트림을 변환하는 단계는 상기 공간화된 오디오 스트림을 생성하기 위해 상기 우선순위화된 오디오 스트림의 세트를 변환하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  7. 제6항에 있어서,
    상기 우선순위화된 오디오 스트림의 세트를 결정하는 단계는:
    상기 메타버스 장소에서의 아바타의 근접성, 상기 메타버스 장소에서의 아바타의 속도, 상기 메타버스 장소에서의 아바타의 방향, 상기 메타버스 장소 내의 아바타에 근접한 가상 객체, 상기 사용자 장치의 성능, 또는 상기 제1 사용자의 사용자 선호도 중 하나 이상에 기초하여 상기 복수의 사용자의 각 사용자로부터 수신된 오디오 스트림의 우선순위를 지정하는 단계를 포함하는, 컴퓨터-구현 방법.
  8. 제7항에 있어서,
    수신하는 아바타에 더 가까운 아바타와 연관된 오디오 스트림이 상기 수신하는 아바타로부터 더 멀리 있는 아바타와 연관된 오디오 스트림보다 우선순위가 되고, 수신하는 아바타를 향해 지향되는 아바타와 연관된 오디오 스트림이 수신하는 아바타와 다른 데로 지향되는 아바타와 연관된 오디오 스트림보다 우선순위가 되고, 수신하는 아바타를 향해 움직이는 아바타와 연관된 오디오 스트림이 수신하는 아바타로부터 멀어지는 아바타와 연관된 오디오 스트림보다 우선순위가 되는 것인, 컴퓨터-구현 방법.
  9. 가상 메타버스에서의 공간화된 오디오를 제공하는 컴퓨터-구현 방법으로서,
    복수의 사용자의 제1 사용자로부터 상기 가상 메타버스의 메타버스 장소와 연관된 오디오를 수신하기 위한 요청을 수신하는 단계 - 상기 제1 사용자는 사용자 장치와 연관되고, 상기 복수의 사용자는 상기 메타버스 장소에서의 복수의 아바타의 각 아바타와 연관됨 -;
    상기 복수의 사용자의 각각의 사용자로부터 수신된 우선순위화된 오디오 스트림의 세트를 결정하는 단계;
    공간화된 오디오 스트림을 생성하기 위해 상기 우선순위화된 오디오 스트림의 세트를 변환하는 단계;
    결합된 공간화된 오디오 스트림을 생성하기 위해 상기 공간화된 오디오 스트림을 결합하는 단계; 및
    상기 결합된 공간화된 오디오 스트림을 상기 사용자 장치로 제공하는 단계
    를 포함하는 컴퓨터-구현 방법.
  10. 제9항에 있어서,
    상기 우선순위화된 오디오 스트림의 세트를 결정하는 단계는:
    상기 메타버스 장소에서의 아바타의 근접성, 상기 메타버스 장소에서의 아바타의 속도, 상기 메타버스 장소에서의 아바타의 방향, 상기 메타버스 장소 내의 아바타에 근접한 가상 객체, 상기 사용자 장치의 성능, 또는 상기 제1 사용자의 사용자 선호도 중 하나 이상에 기초하여 상기 복수의 사용자의 각 사용자로부터 수신된 오디오 스트림의 우선순위를 지정하는 단계를 포함하는, 컴퓨터-구현 방법.
  11. 제10항에 있어서,
    수신하는 아바타에 더 가까운 아바타와 연관된 오디오 스트림이 상기 수신하는 아바타로부터 더 멀리 있는 아바타와 연관된 오디오 스트림보다 우선순위가 되고, 수신하는 아바타를 향해 지향되는 아바타와 연관된 오디오 스트림이 수신하는 아바타와 다른 데로 지향되는 아바타와 연관된 오디오 스트림보다 우선순위가 되고, 수신하는 아바타를 향해 움직이는 아바타와 연관된 오디오 스트림이 수신하는 아바타로부터 멀어지는 아바타와 연관된 오디오 스트림보다 우선순위가 되는 것인, 컴퓨터-구현 방법.
  12. 시스템으로서:
    저장된 명령어를 갖는 메모리; 및
    상기 메모리에 결합되고, 상기 메모리에 액세스하도록 구성된 처리 장치를 포함하며, 상기 명령어는 상기 처리 장치에 의해 실행될 때 상기 처리 장치로 하여금:
    복수의 사용자의 제1 사용자로부터 가상 메타버스의 메타버스 장소와 연관된 오디오를 수신하기 위한 요청을 수신하는 것 - 상기 제1 사용자는 사용자 장치와 연관되고, 상기 복수의 사용자는 상기 메타버스 장소에서의 복수의 아바타의 각 아바타와 연관됨 -;
    상기 메타버스 장소와 연관된 데이터 모델을 검색하는 것 - 상기 데이터 모델은 상기 메타버스 장소에 적용되는 하나 이상의 물리 법칙을 나타내는 하나 이상의 공간 매개변수를 포함함 -;
    상기 데이터 모델로부터 아바타 정보 및 장면 정보를 추출하는 것 - 상기 아바타 정보는 상기 제1 사용자와 연관된 제1 아바타를 포함하는 상기 메타버스 장소에서의 상기 복수의 아바타의 위치, 속도, 또는 방향 중 하나 이상을 포함하고, 상기 장면 정보는 상기 메타버스 장소에서의 상기 제1 아바타에 가상으로 근접한 오클루전, 잔향 또는 가상 벽 중 하나 이상을 포함함 -;
    상기 아바타 정보 및 상기 장면 정보에 기초한 상기 복수의 사용자의 각각의 사용자로부터 수신된 각 오디오 스트림, 및 공간화된 오디오 스트림을 생성하기 위해 상기 하나 이상의 공간 매개변수에 기초한 각각의 상기 오디오 스트림 중 적어도 하나의 하나 이상의 오디오 특성을 변환하는 것;
    결합된 공간화된 오디오 스트림을 생성하기 위하여 상기 공간화된 오디오 스트림을 결합하는 것; 및
    상기 결합된 공간화된 오디오 스트림을 상기 사용자 장치로 제공하는 것
    을 포함하는 동작을 수행하게 하는, 시스템.
  13. 제12항에 있어서,
    상기 공간 매개변수는 아바타 사이의 거리에 기초하여 오디오를 감쇠시키는 거리 감쇠 매개변수를 포함하는 것인, 시스템.
  14. 제12항에 있어서,
    상기 복수의 사용자의 각각의 사용자로부터 수신된 각각의 상기 오디오 스트림은 마이크로폰 장치에서 수신된 모노럴 오디오를 포함하고, 상기 결합된 공간화된 오디오 스트림은 스테레오 오디오를 포함하는 것인, 시스템.
  15. 제14항에 있어서,
    상기 결합된 공간화된 오디오 스트림은 각각의 사용자의 모노럴 오디오를 각각의 상기 사용자의 아바타의 위치에 배치함으로써 생성된 스테레오 오디오를 포함하는 것인, 시스템.
  16. 제12항에 있어서,
    상기 결합된 공간화된 오디오 스트림은 배경 오디오 및 상기 제1 사용자 이외의 상기 복수의 사용자의 사용자로부터 수신된 상기 오디오 스트림에 기초한 공간 오디오를 포함하고,
    상기 배경 오디오는:
    상기 제1 사용자와 별개인 다른 사용자로부터 수신된 오디오; 및
    상기 메타버스 장소 내의 아바타의 움직임을 기반으로 생성된 오디오 중 하나 이상에 기초하여 생성되는 것인, 시스템.
  17. 제12항에 있어서,
    상기 동작은:
    상기 복수의 사용자의 각각의 사용자로부터 수신된 우선순위화된 오디오 스트림의 세트를 결정하는 것을 더 포함하며,
    각 오디오 스트림을 변환하는 것은 상기 공간화된 오디오 스트림을 생성하기 위해 상기 우선순위화된 오디오 스트림의 세트를 변환하는 것을 더 포함하는, 시스템.
  18. 제17항에 있어서,
    상기 우선순위화된 오디오 스트림의 세트를 결정하는 것은:
    상기 메타버스 장소에서의 아바타의 근접성, 상기 메타버스 장소에서의 아바타의 속도, 상기 메타버스 장소에서의 아바타의 방향, 상기 메타버스 장소 내의 아바타에 근접한 가상 객체, 상기 사용자 장치의 성능, 또는 상기 제1 사용자의 사용자 선호도 중 하나 이상에 기초하여 상기 복수의 사용자의 각각의 사용자로부터 수신된 오디오 스트림의 우선순위를 지정하는 것을 포함하는, 시스템.
  19. 제18항에 있어서,
    수신하는 아바타에 더 가까운 아바타와 연관된 오디오 스트림이 상기 수신하는 아바타로부터 더 멀리 있는 아바타와 연관된 오디오 스트림보다 우선순위가 되고, 수신하는 아바타를 향해 지향되는 아바타와 연관된 오디오 스트림이 연관된 오디오 스트림보다 우선순위가 되는, 시스템.
  20. 제12항에 있어서,
    상기 복수의 사용자의 각각의 사용자로부터 수신된 각각의 상기 오디오 스트림을 변환하도록 구성된 공간화된 오디오 매니저; 및
    상기 결합된 공간화된 오디오 스트림을 상기 사용자 장치로 제공하기 전에 상기 사용자 장치에서 비공간화된 오디오를 비활성화하도록 구성된 오디오 장치 오버라이드 모듈을 더 포함하는, 시스템.
KR1020247003111A 2021-07-15 2022-07-15 가상 메타버스에서의 공간화된 오디오 채팅 KR20240027071A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163222304P 2021-07-15 2021-07-15
US63/222,304 2021-07-15
PCT/US2022/037236 WO2023288034A1 (en) 2021-07-15 2022-07-15 Spatialized audio chat in a virtual metaverse

Publications (1)

Publication Number Publication Date
KR20240027071A true KR20240027071A (ko) 2024-02-29

Family

ID=84890376

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247003111A KR20240027071A (ko) 2021-07-15 2022-07-15 가상 메타버스에서의 공간화된 오디오 채팅

Country Status (5)

Country Link
US (1) US20230017111A1 (ko)
EP (1) EP4371297A1 (ko)
KR (1) KR20240027071A (ko)
CN (1) CN117652137A (ko)
WO (1) WO2023288034A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11756248B2 (en) * 2021-08-23 2023-09-12 International Business Machines Corporation Computer graphics object rendering based on priority
US12003949B2 (en) * 2022-01-19 2024-06-04 Meta Platforms Technologies, Llc Modifying audio data transmitted to a receiving device to account for acoustic parameters of a user of the receiving device
CN117082435B (zh) * 2023-10-12 2024-02-09 腾讯科技(深圳)有限公司 虚拟音频的交互方法、装置和存储介质及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005101897A1 (en) * 2004-04-16 2005-10-27 Smart Internet Technology Crc Pty Ltd Apparatuses and methods for use in creating an audio scene
US9466278B2 (en) * 2014-05-08 2016-10-11 High Fidelity, Inc. Systems and methods for providing immersive audio experiences in computer-generated virtual environments
US10206055B1 (en) * 2017-12-28 2019-02-12 Verizon Patent And Licensing Inc. Methods and systems for generating spatialized audio during a virtual experience

Also Published As

Publication number Publication date
CN117652137A (zh) 2024-03-05
WO2023288034A1 (en) 2023-01-19
EP4371297A1 (en) 2024-05-22
US20230017111A1 (en) 2023-01-19

Similar Documents

Publication Publication Date Title
US20230017111A1 (en) Spatialized audio chat in a virtual metaverse
US9592451B2 (en) Directed communication in a virtual environment
US20210187392A1 (en) Online gaming platform voice communication system
US20200228911A1 (en) Audio spatialization
JP7502354B2 (ja) 3次元(3d)環境用の統合された入出力(i/o)
KR20230148239A (ko) 신경망을 사용하는 비디오로부터의 로버스트 얼굴 애니메이션
US11645805B2 (en) Animated faces using texture manipulation
US20240004529A1 (en) Metaverse event sequencing
US20210322880A1 (en) Audio spatialization
US11673059B2 (en) Automatic presentation of suitable content
JP2021514274A (ja) ゲームプラットフォームを使用した、近接するユーザとのグループゲームプレイ
JP7463509B2 (ja) 検索結果における目標ゲームの目立つ表示
KR102396060B1 (ko) 전자 게임에서 카메라 뷰 변경
US20240149165A1 (en) Optimized player positioning system in virtual experiences
WO2023239804A1 (en) Voice chat translation
Kang et al. Study comparing video-based characters and 3D-based characters on mobile devices for chat
CN116917957A (zh) 基于神经网络的鲁棒视频面部动画