KR20190003355A - 비디오 게임을 위한 인터랙티브 음성-제어 컴패니언 애플리케이션 - Google Patents
비디오 게임을 위한 인터랙티브 음성-제어 컴패니언 애플리케이션 Download PDFInfo
- Publication number
- KR20190003355A KR20190003355A KR1020180071776A KR20180071776A KR20190003355A KR 20190003355 A KR20190003355 A KR 20190003355A KR 1020180071776 A KR1020180071776 A KR 1020180071776A KR 20180071776 A KR20180071776 A KR 20180071776A KR 20190003355 A KR20190003355 A KR 20190003355A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- video game
- utterance
- game
- query
- Prior art date
Links
- 230000002452 interceptive effect Effects 0.000 title claims description 26
- 230000004044 response Effects 0.000 claims abstract description 180
- 238000010801 machine learning Methods 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 111
- 230000008569 process Effects 0.000 claims description 71
- 230000006870 function Effects 0.000 claims description 47
- 238000012545 processing Methods 0.000 claims description 44
- 230000009471 action Effects 0.000 claims description 42
- 230000003993 interaction Effects 0.000 claims description 31
- 230000008451 emotion Effects 0.000 claims description 8
- 230000014759 maintenance of location Effects 0.000 description 12
- 238000012790 confirmation Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000033001 locomotion Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003334 potential effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000007620 mathematical function Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000036316 preload Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 229910000906 Bronze Inorganic materials 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000010974 bronze Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- KUNSUQLRTQLHQQ-UHFFFAOYSA-N copper tin Chemical compound [Cu].[Sn] KUNSUQLRTQLHQQ-UHFFFAOYSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002996 emotional effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000013488 ordinary least square regression Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/215—Input arrangements for video game devices characterised by their sensors, purposes or types comprising means for detecting acoustic signals, e.g. using a microphone
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing 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/424—Processing 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/79—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/04—Segmentation; Word boundary detection
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/45—Controlling the progress of the video game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/10—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
- A63F2300/1081—Input via voice recognition
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/6027—Methods for processing data by generating or executing the game program using adaptive systems learning from user actions, e.g. for skill level adjustment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/26—Speech to text systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Acoustics & Sound (AREA)
- Computational Linguistics (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- General Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
음성 인식을 사용하여, 사용자는 컴패니언 애플리케이션과 인터랙트하여 모바일 장치로부터의 비디오 게임을 제어할 수 있다. 유리하게는, 사용자는, 예를 들어, 사용자의 위치 때문에 비디오 게임이 이용 가능하지 않을 때 컴패니언 애플리케이션과 인터랙트 할 수 있다. 또한, 기계 학습은 컴패니언 애플리케이션, 또는 그 대응하는 비디오 게임에 대한 사용자의 참여의 레벨을 향상시키거나 유지하도록 예측되는 사용자 발화들에 대한 음성 응답들을 생성하는 것을 용이하게 하는데 사용될 수 있다.
Description
소프트웨어 개발자들은 일반적으로 그들의 소프트웨어를 사용하여 가능한 한 오랫동안 사용자를 참여시키고자 한다. 사용자가 소프트웨어에 참여하는 시간이 길수록 소프트웨어가 성공할 가능성이 더 높아진다. 사용자의 참여의 기간과 소프트웨어의 성공 사이의 관계는 비디오 게임들과 관련하여 특히 중요하다. 사용자가 특정 비디오 게임을 플레이하는 시간이 길수록 사용자가 게임을 즐긴 가능성이 더 높고, 따라서 사용자는 게임을 계속 플레이 할 가능성이 높아진다.
참여의 원칙은 싱글 플레이어 게임들(single player games)에만 제한되지 않으며 멀티플레이어 비디오 게임들(multiplayer video games)에도 적용될 수 있다. 사용자들에게 즐거운 멀티플레이어 경험들을 제공하는 비디오 게임들은 사용자들이 다시 게임을 할 가능성이 더 높다. 반대로, 사용자들에게 형편없는 멀티플레이어 경험들을 제공하는 비디오 게임들은 높은 수의 사용자들을 유지할 가능성이 적다. 따라서, 비디오 게임 개발의 과제들 중 하나는 즐거운 게임플레이 경험의 확률을 보장하거나 증가시키는 메커니즘(mechanism)을 제공하는 것이다.
본 개시의 시스템들, 방법들 및 장치들은 각각 혁신적인 여러 측면들을 가지며, 그 중 단일 하나가 여기에 개시된 바람직한 속성들의 전부를 단독으로 책임지는 것은 아니다. 본 명세서에서 설명된 주제의 하나 이상의 구현들의 세부 사항들은 첨부 도면들 및 이하의 설명에서 설명된다.
본 개시의 특정 실시예들에서, 컴퓨터-구현 방법(computer-implemented method)은 개시된다. 상기 방법은 특정 컴퓨터-실행 가능한 명령어들(specific computer-executable instructions)로 구성된 인터랙티브 컴퓨팅 시스템(interactive computing system)에 의해 구현된다. 상기 방법은 사용자 컴퓨팅 장치(user computing device)로부터 발화를 수신하는 단계를 포함할 수 있다. 상기 발화는 사용자에 의해 언급되고(spoken) 비디오 게임(video game)과 관련된 하나 이상의 언급된 단어들(one or more spoken words)을 포함할 수 있다. 또한, 상기 방법은 상기 발화에 대한 발화 분류(utterance classification)를 결정하는 단계를 포함할 수 있고, 및 상기 발화 분류가 명령(command)에 대응한다고 결정하는 것에 응답하여, 상기 방법은 상기 발화에 의해 참조된 상기 명령을 결정하는 단계를 포함할 수 있다. 또한, 상기 방법은 상기 명령과 관련된 상기 비디오 게임을 결정하는 단계를 포함할 수 있다. 상기 비디오 게임은 복수의 비디오 게임들 중 하나일 수 있다. 또한, 상기 방법은 상기 사용자와 관련된 사용자 계정을 식별하는 단계 및 상기 사용자 계정 및 상기 비디오 게임과 관련된 호스트 시스템을 식별하는 단계를 포함할 수 있다. 상기 호스트 시스템은 상기 비디오 게임의 인스턴스(instance)의 적어도 제1 부분(at least a first portion)을 호스팅하도록(host) 구성될 수 있다. 또한, 상기 방법은
상기 호스트 시스템에서 상기 사용자 계정과 관련된 사용자 게임 계정(user game account)을 로드하는(loading) 단계 및 상기 비디오 게임을 액세스하는 상기 사용자 없이 상기 호스트 시스템에서 상기 사용자의 사용자 게임 계정에 관해 상기 사용자를 대신하여 상기 명령을 실행하는 단계를 포함할 수 있다.
특정 실시예들에서, 상기 방법은 상기 발화의 우선 순위(priority)를 결정하는 단계 상기 발화의 우선 순위에 따라 상기 발화를 프로세싱 하는 단계를 더 포함할 수 있다. 상기 발화의 우선 순위에 따라 상기 발화를 프로세싱 하는 단계는 상기 우선 순위가 임계 우선 순위(threshold priority) 아래일 때 상기 발화를 프로세싱하는 이차 프로세싱 시스템(secondary processing system)에 상기 발화를 제공하는 단계를 포함할 수 있다. 일부 실시예들에서, 상기 발화는 상기 사용자 컴퓨팅 장치에 의해 호스팅되는 컴패니언 애플리케이션(companion application)으로부터 수신될 수 있다. 상기 컴패니언 애플리케이션은 상기 비디오 게임과 별개지만 관련된다(companion application distinct from but associated with the video game).
특정 실시예들에서, 상기 사용자를 대신하여 상기 명령을 실행하는 단계는 상기 비디오 게임의 인스턴스의 적어도 제2 부분을 실행하도록 구성되는 헤드리스 클라이언트(headless client)를 인스턴스화하는(instantiating) 단계, 상기 헤드리스 클라이언트에서 상기 비디오 게임의 인스턴스의 제2 부분을 실행하는 단계, 및 상기 헤드리스 클라이언트에서 상기 명령을 실행하는 단계를 포함할 수 있다. 또한, 상기 발화 분류가 질의(query)에 대응한다고 결정하는 것에 응답하여, 상기 방법은 상기 질의에 관련된 하나 이상의 지식 소스들을 액세스하는 단계를 더 포함할 수 있다. 상기 하나 이상의 지식 소스들 중 적어도 하나는 게임-상태 정보의 저장소(repository of game-state information)를 포함할 수 있다. 또한, 상기 방법은 상기 하나 이상의 지식 소스들로부터 획득된 데이터에 적어도 부분적으로 기초하여 상기 질의에 대한 질의 응답(query response)을 생성하는 단계 및 상기 사용자 컴퓨팅 장치에 상기 질의 응답을 전송하는 단계를 포함할 수 있다. 상기 질의 응답을 생성하는 단계는 상기 사용자에 대한 사용자 인터랙션 데이터(user interaction data)를 액세스 하는 단계, 상기 하나 이상의 지식 소스들로부터 획득된 상기 데이터에 적어도 부분적으로 기초하여 복수의 적합한 질의 응답들(eligible query responses)을 결정하는 단계, 및 상기 사용자 인터랙션 데이터 및 파라미터 함수(parameter function)에 기초하여 상기 적합한 질의 응답들의 각각에 대한 스코어(score)를 생성하는 단계를 포함할 수 있다. 상기 파라미터 함수는 기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성될 수 있다. 또한, 상기 방법은 상기 적합한 질의 응답들의 각각에 대한 상기 스코어에 적어도 부분적으로 기초한 상기 복수의 적합한 질의 응답들로부터 상기 질의 응답을 선택하는 단계를 포함할 수 있다. 또한, 상기 방법은 상기 발화에 대응하는 신호의 하나 이상의 특징들을 결정하는 단계를 포함할 수 있다. 상기 적합한 질의 응답들의 각각에 대한 상기 스코어를 생성하는 단계는 상기 발화에 대응하는 상기 신호의 하나 이상의 특징들에 더 기초할 수 있다. 일부 실시예들에서, 상기 복수의 적합한 질의 응답들로부터 상기 질의 응답을 선택하는 단계는 상기 복수의 질의 응답들로부터 상기 남아 있는 적합한 질의 응답들(remaining eligible query)과 비교하여 상기 사용자로부터의 참여를 더 증가시킬 가능성이 있는 상기 질의 응답을 선택하는 단계를 포함할 수 있다.
특정 실시예들에서, 상기 발화 분류가 문장(statement)에 대응한다고 결정하는 것에 응답하여, 상기 방법은 액션(action)을 결정하도록 파라미터 함수에 상기 문장을 적용하는 단계를 더 포함할 수 있다. 상기 액션은 상기 비디오 게임에 관해 상기 사용자의 참여의 레벨(level of engagement)을 증가시키거나 유지시키는 복수의 액션들로부터 선택될 수 있다. 또한, 상기 방법은 상기 비디오 게임의 인스턴스의 실행에 관해 상기 액션을 수행하는 단계를 포함할 수 있다. 상기 액션을 결정하도록 상기 파라미터 함수에 상기 문장을 적용하는 단계는 상기 파라미터 함수에 대한 복수의 발화들에 대응하는 복수의 문장들을 적용하는 단계를 포함할 수 있다. 또한, 상기 방법은 상기 하나 이상의 언급된 단어들을 결정하도록 상기 발화에 음성 인식(voice recognition)을 수행하는 단계를 더 포함할 수 있다.
본 개시의 특정 실시예들은 시스템에 관한 것이다. 상기 시스템은 상기 비디오 게임의 적어도 제1 부분을 호스팅하도록 구성된 애플리케이션 호스트 시스템(application host system) 및 하나 이상의 하드웨어 프로세서들(hardware processors)을 포함하는 인터랙티브 컴퓨팅 시스템(interactive computing system)을 포함할 수 있다. 상기 인터랙티브 컴퓨팅 시스템은 특정 컴퓨터-실행 가능한 명령어들을 실행하도록 구성되어 사용자 컴퓨팅 장치로부터 발화를 적어도 수신할 수 있다. 상기 발화는 사용자에 의해 언급되고 비디오 게임과 관련될 수 있다. 또한, 상기 시스템은 상기 발화에 대한 발화 분류를 결정하고 상기 발화 분류가 명령에 대응한다고 결정하는 것에 응답하여, 상기 발화에 의해 참조된 상기 명령을 결정할 수 있다. 또한, 상기 시스템은 상기 명령과 관련된 상기 비디오 게임을 결정할 수 있다. 상기 비디오 게임은 복수의 비디오 게임들 중 하나일 수 있다. 또한, 상기 시스템은 상기 사용자와 관련된 사용자 계정을 식별하고, 복수의 애플리케이션 호스트 시스템들로부터 상기 사용자 계정 및 상기 비디오 게임과 관련된 상기 애플리케케이션 호스트 시스템을 식별하고, 상기 애플리케이션 호스트 시스템에서 상기 사용자 계정과 관련된 사용자 게임 계정을 로드하고, 및 상기 애플리케이션 호스트 시스템에서 상기 사용자의 사용자 게임 계정에 관해 상기 사용자를 대신하여 상기 명령을 실행할 수 있다.
특정 실시예들에서, 상기 인터랙티브 컴퓨팅 시스템은 상기 사용자를 대신하여 상기 명령을 실행하도록 더 구성되어 상기 비디오 게임의 인스턴스의 적어도 제2 부분을 실행하도록 구성되는 헤드리스 클라이언트를 인스턴스화하고, 상기 헤드리스 클라이언트에서 상기 비디오 게임의 인스턴스의 제2 부분을 실행하고, 상기 헤드리스 클라이언트에서 상기 명령을 실행한다. 상기 발화 분류가 질의에 대응한다고 결정하는 것에 응답하여, 상기 인터랙티브 컴퓨팅 시스템은 특정 컴퓨터-실행 가능한 명령어들을 실행하도록 더 구성되어 적어도, 상기 질의에 관련된 하나 이상의 지식 소스들을 액세스하고, 상기 하나 이상의 지식 소스들로부터 획득된 데이터에 적어도 부분적으로 기초하여 상기 질의에 대한 질의 응답을 생성하고, 및 상기 사용자 컴퓨팅 장치에 상기 질의 응답을 전송할 수 있다. 일부 실시예들에서, 상기 인터랙티브 컴퓨팅 시스템은 상기 질의 응답을 생성하도록 더 구성되어, 상기 사용자에 대한 사용자 인터랙션 데이터를 액세스 하고, 상기 하나 이상의 지식 소스들로부터 획득된 상기 데이터에 적어도 부분적으로 기초하여 복수의 적합한 질의 응답들을 결정하고, 상기 사용자 인터랙션 데이터 및 파라미터 함수에 기초하여 상기 적합한 질의 응답들의 각각에 대한 스코어를 생성할 수 있다. 상기 파라미터 함수는 기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성될 수 있다. 또한, 상기 시스템은 상기 적합한 질의 응답들의 각각에 대한 상기 스코어에 적어도 부분적으로 기초한 상기 복수의 적합한 질의 응답들로부터 상기 질의 응답을 선택하도록 더 구성될 수 있다.
특정 실시예들에서, 상기 발화 분류가 문장에 대응한다고 결정하는 것에 응답하여, 상기 인터랙티브 컴퓨팅 시스템은 특정 컴퓨터-실행 가능한 명령어들을 실행하도록 더 구성되어 적어도, 액션을 결정하도록 파라미터 함수에 상기 문장을 적용하고, 및 상기 비디오 게임의 인스턴스의 실행에 관해 상기 액션을 수행한다. 일부 실시예들에서, 상기 인터랙티브 컴퓨팅 시스템은 상기 파라미터 함수에 상기 문장을 적용하도록 더 구성되어, 상기 사용자 컴퓨팅 장치로부터, 상기 문장을 포함하는, 복수의 문장들을 수신하고, 상기 복수의 문장들의 각각의 감정(sentiment)을 결정하고, 집합된 감정(aggregated sentiment)을 획득하도록 상기 복수의 문장들의 각각의 감정들을 집합하고(aggregating), 및 상기 파라미터 함수에 상기 집합된 감정을 제공한다.
본 개시의 특정 실시예들은 하나 이상의 컴퓨팅 장치들에 의해 실행될 때, 상기 하나 이상의 컴퓨팅 장치들이 특정 작동들(particular operations)을 수행하도록 구성한 컴퓨터 실행 가능한 명령어들을 저장하는 비-일시적 컴퓨터-판독 가능한 저장 매체에 관한 것이다. 상기 작동들은 사용자 컴퓨팅 장치로부터 발화를 수신하는 단계를 포함할 수 있다. 상기 발화는 비디오 게임과 관련될 수 있다. 또한, 상기 작동들은 상기 발화 분류가 명령에 대응한다고 결정하는 단계, 상기 발화에 의해 참조된 상기 명령을 식별하는 단계, 상기 발화로 수신된 식별자(identifier received with the utterance)에 대응하는 상기 비디오 게임의 사용자 계정을 식별하는 단계, 및 상기 사용자 계정에 적어도 부분적으로 기초하여 상기 비디오 게임의 호스트 시스템을 선택하는 단계를 포함할 수 있다. 상기 호스트 시스템은 상기 비디오 게임의 인스턴스의 적어도 제1 부분을 호스팅하도록 구성될 수 있다. 일부 경우들에서, 상기 작동들은 상기 호스트 시스템에서 상기 사용자 계정과 관련된 게임 데이터를 로드하는 단계 및 상기 비디오 게임을 액세스하는 상기 사용자 없이 상기 사용자 계정과 관련된 사용자를 대신하여 상기 호스트 시스템에서 상기 비디오 게임의 인스턴스에 상기 명령을 실행하는 단계를 포함할 수 있다.
특정 실시예들에서, 상기 명령을 실행하는 단계는 상기 비디오 게임의 인스턴스의 적어도 제2 부분을 실행하도록 구성되는 헤드리스 클라이언트를 인스턴스화하는 단계, 상기 헤드리스 클라이언트에서 상기 비디오 게임의 인스턴스의 제2 부분을 실행하는 단계, 및 상기 헤드리스 클라이언트에서 상기 명령을 실행하는 단계를 포함한다.
특정 실시예들 및 예시들이 여기에 개시되어 있지만, 본 발명의 주제는 구체적으로 개시된 실시예들에서의 예시들을 다른 대안적인 실시예들 및/또는 사용들, 및 그 수정들 및 등가물들로 확장한다.
도면들 전체에서, 참조 번호들은 참조된 요소들 사이의 대응을 나타내기 위해 재사용된다. 도면들은 여기에 기술된 주제의 실시예들을 예시하기 위해 제공되며 그의 범위를 제한하지 않는다.
도 1a는 비디오 게임을 위한 컴패니언 애플리케이션 시스템의 하나 이상의 실시예들을 구현할 수 있는 네트워크 컴퓨팅 환경의 일 실시예를 도시한다.
도 1b는 도 1a의 모델 생성 시스템의 일 실시예를 도시한다.
도 1c는 도 1a의 참여 시스템의 일 실시예를 도시한다.
도 2는 발화 프로세싱을 위한 프로세스의 일 실시예의 흐름도를 나타낸다.
도 3은 명령 실행 프로세스의 일 실시예의 흐름도를 나타낸다.
도 4는 참여-기반 발화 응답 선택 프로세스의 일 실시예의 흐름도를 나타낸다.
도 5는 예측 모델 생성 프로세스의 일 실시예의 흐름도를 나타낸다.
도 6은 사용자 컴퓨팅 시스템의 일 실시예를 도시한다.
도 7은 도 6의 사용자 컴퓨팅 시스템을 위한 하드웨어 구성의 일 실시예를 도시한다.
도 1a는 비디오 게임을 위한 컴패니언 애플리케이션 시스템의 하나 이상의 실시예들을 구현할 수 있는 네트워크 컴퓨팅 환경의 일 실시예를 도시한다.
도 1b는 도 1a의 모델 생성 시스템의 일 실시예를 도시한다.
도 1c는 도 1a의 참여 시스템의 일 실시예를 도시한다.
도 2는 발화 프로세싱을 위한 프로세스의 일 실시예의 흐름도를 나타낸다.
도 3은 명령 실행 프로세스의 일 실시예의 흐름도를 나타낸다.
도 4는 참여-기반 발화 응답 선택 프로세스의 일 실시예의 흐름도를 나타낸다.
도 5는 예측 모델 생성 프로세스의 일 실시예의 흐름도를 나타낸다.
도 6은 사용자 컴퓨팅 시스템의 일 실시예를 도시한다.
도 7은 도 6의 사용자 컴퓨팅 시스템을 위한 하드웨어 구성의 일 실시예를 도시한다.
개시
일반적으로 많은 사용자들에게 어필(appeal)하는 비디오 게임이 바람직하다. 또한, 사용자의 참여를 유지해서 사용자가 여러 게임 세션들 동안 또는 장시간 동안 비디오 게임을 계속 플레이하거나 사용하도록 하는 비디오 게임이 바람직하다. 사용자가 비디오 게임을 플레이할 수 없는 시간의 기간들(periods of time)이 종종 있다. 예를 들어, 사용자는 직장, 학교, 가족 의무 등과 같은 책임들을 가질 수 있다. 일부 경우들에서, 사용자의 추가 책임들은 사용자가 비디오 게임 시스템(video game system) 또는 다른 호스트 컴퓨팅 시스템 비디오 게임의 호스트들(other host computing system the hosts of video game)을 사용하거나 액세스(accessing)하는 것을 막을 수 있다.
여기에 제시된 실시예들은 사용자가 비디오 게임과 인터랙트 할 수 없는 시간의 기간 동안 사용자 참여를 유지하기 위해 비디오 게임과 관련된 인터랙티브 컴패니언 애플리케이션을 사용한다. 컴패니언 애플리케이션은 사용자가 비디오 게임 자체를 실행하지 않고도 비디오 게임의 적어도 일부분과 인터랙트 할 수 있게 한다. 예를 들어, 컴패니언 애플리케이션은 사용자가 사용자의 캐릭터 또는 팀(user's character or team)을 변경하거나, 비디오 게임을 플레이 할 때 사용자가 사용할 수 있는 디지털 아이템들(digital items)을 구매 또는 판매하거나, 사용자의 캐릭터 또는 팀에게 액션(action)을 취하도록 지시하거나, 또는 비디오 게임에서 얻은 기술 포인트를 게임-내 캐릭터의 다른 측면에 할당할 수 있게 한다. 또한, 사용자는 컴패니언 애플리케이션을 사용하여 사용자의 캐릭터의 상태, 이용 가능한 미션들의 리스트(list of available missions), 또는 현재 비디오 게임을 플레이 하고 있거나 특정 호스트 서버에서 현재 비디오 게임을 플레이 하고 있는 사용자들의 수와 같은, 비디오 게임에 대한 정보를 획득할 수 있다.
일부 경우들에서, 컴패니언 애플리케이션은 사용자가 비디오 게임과 관련된 메타-게임들(meta-games) 또는 미니-게임들(mini-games)을 플레이 할 수 있게 하거나 실행한다. 이러한 미니-게임들 중 일부는 비디오 게임에 영향을 줄 수 있다. 예를 들어, 사용자가 비디오 게임을 플레이 할 때 비디오 게임에서 사용될 수 있는 캐릭터 코스튬들(character costumes), 기술 포인트들(skill points), 아바타들(avatars), 무기들(weapons), 또는 특수 아이템들(special items)을 잠금해제 하거나 획득할 수 있게 하는 미니-게임을 플레이할 수 있다. 종종, 미니-게임들은 관련된 비디오 게임을 실행할 능력이 없을 수 있는 장치들에서 미니-게임들이 플레이 될 수 있게 하는 관련 비디오 게임보다 더 낮은 시스템 요구 사항들과 관련될 수 있다.
특정 실시예들에서, 컴패니언 애플리케이션은 사용자의 음성 입력에 대한 응답을 생성할 수 있다. 컴패니언 애플리케이션은 사용자의 참여를 최대화하거나 향상시킬 응답을 결정할 수 있다. 사용자의 참여를 향상시킬 수 있는 응답의 결정은 사용자에 의해 제공된 음성 입력 또는 발화들(utterances)의 분석에 기초하여 결정될 수 있다. 하나 이상의 기계 학습 알고리즘을 사용하여, 증가하는 사용자 참여의 목표 내에서 예측 모델 또는 파라미터 함수는 히스토리컬 인터랙션들(historical interactions)에 기초하여 결정될 수 있다. 히스토리컬 사용자 정보 또는 히스토리컬 발화들을 포함할 수 있는, 히스토리컬 인터랙션들은, 이전에 비디오 게임을 플레이 한 사용자들의 히스토리컬 세트(historical set)에 관한 사용자 참여 또는 유지 비율(retention rate)의 예상 레벨(expected level)을 예측하는 예측 모델을 생성하는 기계 학습 시스템에 공급될 수 있다. 일부 경우들에서, 예측 모델을 생성하기 위한 목적 함수는 사용자 참여 이외의 목적을 위해 최적화될 수 있다. 예를 들어, 목적 함수는 다른 사용자들에게 사용자 행동과 관련될 수 있다.
유리하게는, 특정 실시예들에서, 컴패니언 애플리케이션은 일부 비디오 게임들보다 실행에 더 적은 리소스들을 요구할 수 있는 "라이트(light)"또는 "라이트(lite)" 애플리케이션 일 수 있어, 컴패니언 애플리케이션이 비디오 게임을 호스팅하지 못할 수 있는 컴퓨터 시스템을 포함하는 더 다양한 컴퓨팅 시스템들에서 작동하도록 할 수 있다. 예를 들어, 컴패니언 애플리케이션은 비디오 게임을 실행하는데 요구될 수 있는 계산 리소들이 더 적은 스마트 폰(smart phone) 또는 컴퓨팅 장치에서 작동할 수 있다. 또한, 일부 경우들에서, 컴패니언 애플리케이션은 클라우드 서비스의 일부로서 또는 네트워크를 통해 적어도 부분적으로 작동할 수 있다. 일부 경우들에서, 사용자는 아마존 에코(Amazon Echo)® 또는 구글 홈(Google Home)™ 장치들과 같은, 음성 제어 스피커(voice controlled speaker)를 통해 컴패니언 애플리케이션과 인터랙트 할 수 있다.
일부 실시예들에서, 여기에 개시된 음성 제어 특징들은 그것이 실행되는 동안 비디오 게임과 인터랙트 하는데 사용될 수 있다. 예를 들어, 음성 제어 특징들은 사용자가 게임패드(gamepad) 또는 다른 사용자 입력 장치를 통해 플레이 가능한 캐릭터를 제어하는 동안 비-플레이어 캐릭터(non-player character)(NPC)를 제어하는데 사용될 수 있다.
설명을 단순화하기 위해, 본 개시는 주로 비디오 게임과 관련하여 설명된다. 그러나, 본 개시는 그 자체로 제한되지 않으며 애플리케이션들의 다른 유형들에 적용될 수 있다. 예를 들어, 여기에 개시된 실시예들은 교육용 애플리케이션들(예를 들어, 사용자들이 새로운 언어를 학습하는 것을 돕는 애플리케이션들) 또는 사용자 참여를 유지하는 것이 중요할 수 있는 다른 애플리케이션들에 적용될 수 있다.
네트워크 컴퓨팅 환경 예시
도 1a는 음성-제어 컴패니언 애플리케이션(voice-controlled companion application)(106)의 하나 이상의 실시예들을 구현할 수 있는 네트워크 컴퓨팅 환경(networked computing environment)(100)의 일 실시예를 도시한다. 네트워크 컴퓨팅 환경(100)은 네트워크(104)를 통해 인터랙티브 컴퓨팅 시스템(101)과 통신할 수 있는 사용자 컴퓨팅 시스템(user computing system)(110)을 포함한다. 또한, 네트워크 컴퓨팅 환경(100)은 제한되지는 않지만, 다수의 추가 사용자 컴퓨팅 시스템들을 포함할 수 있다. 추가 사용자 컴퓨팅 시스템들 중 적어도 일부는 사용자 컴퓨팅 시스템(110)과 동일하거나 유사하게 구성될 수 있다.
사용자 컴퓨팅 시스템(110)은 컴패니언 애플리케이션(106)을 포함하거나, 호스팅하거나, 실행할 수 있다. 컴패니언 애플리케이션(106)은 비디오 게임을 실행하지 않고 사용자가 비디오 게임과 인터랙트 할 수 있게 하는 애플리케이션의 임의의 유형을 포함할 수 있다. 예를 들어, 컴패니언 애플리케이션(106)은 사용자가 비디오 게임과 관련된 옥션 하우스(auction house)에 액세스 할 수 있게 할 수 있다. 다른 예시로서, 컴패니언 애플리케이션(106)은 사용자가 캐릭터들을 거래하거나, 게임 아이템들을 획득하거나, 게임 아이템들을 판매하거나, 사용자의 캐릭터 분대를 재구성하거나, 비디오 게임을 플레이하기 위한 팁 또는 조언을 획득하거나, 게임 뉴스를 획득하거나, 게임 내에서 미션을 구독하거나, 또는 사용자가 비디오 게임 자체의 인스턴스(instance)에 액세스하지 않고 수행될 수 있는 임의의 다른 액션 또는 질의를 수행할 수 있게 할 수 있다. 컴패니언 애플리케이션을 통해 발생할 수 있는 비디오 게임(112)과의 인터랙션들의 추가적인 예시들은 하기 도 2와 관련하여 도입된 표 1에 관하여 여기에서 제공된다. 인터랙션들 중 일부는 비디오 게임(112) 자체와 인터랙트 할 필요가 없지만, 비디오 게임(112)에 관한 정보를 제공하거나 비디오 게임(112)의 플레이에 영향을 미칠 수 있는 다른 애플리케이션들과 인터랙트 할 수 있다. 컴패니언 애플리케이션(106)은 게임 그 자체가 아닐 수 있지만, 비디오 게임(112)에 관한 정보 또는 비디오 게임(112)의 요소들을 변경하는 능력을 제공할 수 있다. 다른 실시예들에서, 컴패니언 애플리케이션(106)은 게임 특징들을 포함할 수 있다. 예를 들어, 컴패니언 애플리케이션(106)은 결과가 비디오 게임(112)에 영향을 미치거나 미치지 않을 수 있는 미니 게임들에 대한 액세스를 제공할 수 있다.
사용자 컴퓨팅 시스템(110)은 사용자 컴퓨팅 시스템(110)과 인터랙트 하는 사용자에 의해 만들어진 하나 이상의 발화들을 캡처할 수 있는 오디오 캡처 시스템(audio capture system)(102)을 더 포함할 수 있다. 오디오 캡처 시스템은 하나 이상의 마이크(microphones)로부터 발화를 수신할 수 있다. 또한, 오디오 캡처 시스템(102)은 하나 이상의 발화들을 하나 이상의 단어들, 명령들 또는 스피치(speech)로 변환할 수 있다. 단어들은 하나 또는 여러 언어들로 표시될 수 있다. 또한, 단어는 비디오 게임(112)과 관련된 가상의 단어들을 포함할 수 있다. 일부 실시예들에서, 오디오 캡처 시스템(102)은 클라우드 또는 네트워크-기반 시스템과 인터랙트 하여 사용자에 의해 언급된(spoken by) 발화들을 용이하게 인식할 수 있다. 예를 들어, 오디오 캡처 시스템(102)은 캡처된 발화를 하나 이상의 단어들로 변환할 수 있는 음성 인식 시스템(114)과 인터랙트 할 수 있다. 오디오 캡처 시스템(102)은, 마이크를 통해, 사용자로부터 발화 또는 오디오를 수신할 수 있다. 이러한 캡처된 오디오는 음성 인식 시스템(114)에 전송될 수 있다. 일부 경우들에서, 캡처된 오디오는, 음성 인식 시스템(114)에 그것이 제공되기 전에, 컴패니언 애플리케이션(106)에 의해 또는 사용자 컴퓨팅 시스템(110)에서의 오디오 프로세싱 시스템에 의해 프로세싱된다(processed). 예를 들어, 음성 인식 시스템(114)에 오디오를 전송하기 전에 하나 이상의 노이즈 필터링 프로세스들(noise filtering processes)이 수행될 수 있다.
음성 인식 시스템(114)은 오디오 캡처 시스템(102)에 의해 캡처된 오디오를 단어들 또는 다른 인식된 사운드들로 파싱(parsing) 할 수 있는 오디오 또는 음성 분석 시스템일 수 있거나 포함할 수 있다. 대안적으로, 또는 부가적으로, 파싱된 단어들은 여기에 설명된 실시예들에 따른 프로세싱을 위해 디스패치 시스템(dispatch system)(116)에 제공될 수 있다.
컴패니언 애플리케이션(106)을 통해 오디오 캡처 시스템(102)에 의해 캡처된 발화들은 네트워크(104)를 통해 인터랙티브 컴퓨팅 환경(101)의 디스패치 시스템(116)에 제공될 수 있다. 디스패치 시스템(116)은 발화들에 응답하여 수행할 하나 이상의 액션들을 결정하기 위해 수신된 발화들을 분석할 수 있는 하나 이상의 하드웨어 프로세서들을 포함하는 하나 이상의 컴퓨팅 시스템들을 포함할 수 있다. 디스패치 시스템(116)은 수신된 발화들에 대한 응답을 용이하게 하는 다수의 서브시스템들(subsystems)을 포함할 수 있다. 예를 들어, 디스패치 시스템(116)은 발화 분류기(utterance classifier)(118), 명령 관리자(command manager)(120), 및 질의 및 문장 관리자(query and statement manager)(122)를 포함할 수 있다.
발화 분류기(118)는 발화가 명령, 질의 또는 문장인지 여부를 결정할 수 있다. 일부 실시예들에서, 발화 분류기는 이전 또는 이전 시점에서 획득되거나 캡처된 또는 획득된 트레이닝 데이터(training data)에 적어도 부분적으로 기초하여 발화의 분류를 결정하는 기계 학습 시스템을 이용할 수 있다. 또한, 특정 실시예들에서, 발화 분류기(118)는 발화의 우선 순위 레벨을 결정할 수 있다. 발화의 우선 순위 레벨에 기초하여, 디스패치 시스템(116)은 발화를 프로세싱 할 것인지, 언제 발화를 프로세싱 할 것인지, 또는 프로세싱을 위해 발화를 이차 컴퓨팅 시스템(secondary computing system)(미도시)에 제공할지 여부를 결정할 수 있다.
명령 관리자(120)는 발화 분류기(118)가 명령으로 결정한 발화를 프로세싱(process) 할 수 있다. 일부 실시예들에서, 특정 명령들은 미리 로드되거나(preloaded) 그렇지 않으면 명령 관리자(120)에 의해 인식될 수 있다. 명령 관리자(120)는 명령 실행 시스템(122)과 관련하여 미리 로드된 명령들을 실행할 수 있다. 일부 실시예들에서, 명령들은 사용자 컴퓨팅 시스템(108) 또는 애플리케이션 호스트 시스템(124)에서 비디오 게임의 상태에서의 변경을 유발 또는 요구하는 임의의 액션을 포함할 수 있다. 명령 관리자(120)에 의해 인식되지 않는 명령들은 대화 관리자(conversation manager)(128)에서 컨텍스트 관리자(context manager)(134)로 제공될 수 있다. 컨텍스트 관리자(134)는 발화로부터 명령을 식별할 수 있고, 일부 경우들에서 명령을 실행하기 위한 컨텍스트 정보, 및 명령의 아이덴티티(identity)를, 명령 관리자(120)에 제공할 수 있다. 명령 관리자(120)는 명령 실행 시스템(122)과 관련하여 명령을 실행할 수 있다.
또한, 명령 실행 시스템(122)은 비디오 게임(112)에서 명령을 실행할 수 있다. 명령을 실행하는 것은 비디오 게임(112)을 호스팅하는(hosts) 애플리케이션 호스트 시스템(124)을 식별하는 것을 포함할 수 있다. 또한, 일부 경우들에서, 명령을 실행하는 것은 애플리케이션 호스트 시스템(124)에서 명령을 실행하도록 헤드리스 클라이언트(headless client)를 인스턴스화하는 것(instantiating)을 포함할 수다. 헤드리스 클라이언트는 사용자 컴퓨팅 시스템(108)을 나타낼 수 있고, 비디오 게임(112)의 클라이언트 부분과 같은, 사용자 컴퓨팅 시스템(108)에서 정상적으로 실행되는 비디오 게임(112)의 일부분을 실행할 수 있는 반면, 비디오 게임의 서버 부분(server portion)은 애플리케이션 호스트 시스템(124)에서 실행된다. 헤드리스 클라이언트는 모니터 없이 또는 비디오 게임(112)으로부터 그래픽을 디스플레이 하지 않고 작동하도록 구성된 컴퓨팅 시스템에서 실행되거나 포함할 수 있다. 헤드리스 클라이언트는 명령 실행 시스템(122)에 의해 제어되거나 개시될(initiated) 수 있다. 일부 경우들에서, 일단 헤드리스 클라이언트가 명령 실행 시스템(122)에 의해 개시되면, 애플리케이션 호스트 시스템에 의해 호스팅되는 비디오 게임(112)의 일부분과 함께 비디오 게임(112)의 일부분을 실행할 수 있다. 헤드리스 클라이언트는 사용자 컴퓨팅 시스템(108 또는 110) 대신에 역할을 할 수 있고, 비디오 게임(112)의 실행을 가능하게 하기 위해 애플리케이션 호스트 시스템(124)과 인터랙트 할 수 있다. 따라서, 비디오 게임(112)의 완전한 기능 인스턴스는 그래픽 또는 오디오를 포함하는 사용자 인터페이스 데이터를 디스플레이하거나 출력 없이 애플리케이션 호스트 시스템(124) 및 헤드리스 클라이언트의 조합에서 또는 헤드리스 클라이언트에서 실행될 수 있다. 유리하게는, 특정 실시예들에서, 헤드리스 클라이언트의 사용은 컴패니언 애플리케이션(106)에 의해 획득된 발화들에서 참조된 명령들이 사용자가 비디오 게임(112)과 사용자 인터랙트 하지 않고 실행될 수 있게 한다.
명령을 실행한 결과는 사용자 인터페이스 시스템(126)에 의해 출력될 수 있다. 사용자 인터페이스 시스템(126)은 컴패니언 애플리케이션(106)을 통해 사용자에게 제시하기(presentation) 위해 오디오, 비디오 또는 이미지들을 사용자 컴퓨팅 시스템(110)에 전송할 수 있다. 일부 경우들에서, 출력은 사용자 컴퓨팅 시스템(108)에서 비디오 게임(112)에 의해 제시될 수 있다.
질의들 및 문장들과 같은 명령이 아닌 것으로 결정된 발화들은 질의 및 문장 관리자(122)에 제공될 수 있다. 질의 및 문장 관리자(122)는 질의들 또는 문장들인 발화들의 프로세싱을 관리하기 위한 관리 시스템을 포함할 수 있다. 질의 및 문장 관리자(122)는 발화들을 인텐트 관리자(intent manager)(132)에 제공할 수 있다. 인텐트 관리자(132)는 발화가 질의 또는 문장인지를 결정하기 위한 시스템을 포함할 수 있다. 또한, 인텐트 관리자(132)는 사용자의 마음의 상태를 나타낼 수 있는 발화의 특징들을 결정할 수 있다. 사용자의 마음의 상태는 사용자의 발화에 응답하는 방법 또는 사용자의 발화에 대한 응답이 어떤 형태(form)를 취해야 하는지를 결정하기 위해 사용될 수 있다.
발화의 특징들은 사용자의 마음의 상태를 나타내는 발화의 특성들(characteristics)을 포함할 수 있다. 이러한 특성들은 발화에 대응하는 오디오 또는 스피치 신호의 특징들로부터 도출될 수 있다. 특징들은 오디오 또는 스피치 신호의 시간적 또는 스펙트럼 특징들(temporal or spectral features)일 수 있다. 예를 들어, 특성들은 발화의 주파수 측정치들로부터 결정될 수 있는 발화의 톤을 포함할 수 있다. 피치가 높을수록 사용자로부터의 흥분(excitement)을 더 크게 나타낼 수 있다. 발화의 특징들은 특정 사용자가 상이한 사용자들 간의 톤에서의 차이들을 설명하기 위한 기준선과 비교될 수 있다. 또한, 특정 사용자에 대한 기준선은 사용자에 대해 흥분되지 않은 음성의 톤과 흥분된 음성의 톤 간의 차이를 결정하는데 사용될 수 있다.
대화 관리자(128)는 지식 관리자(knowledge manager)(130)를 더 포함할 수 있다. 지식 관리자(130)는 발화에 포함된 질의에 응답하여 정보를 식별하는데 사용될 수 있다. 지식 관리자(130)는 하나 이상의 지식 저장소들에 액세스하여 질의에 응답한 정보를 획득할 수 있다. 또한, 일부 경우들에서, 지식 관리자(130)는 하나 이상의 추가 시스템들에 액세스하여 질의에 응답한 정보를 획득할 수 있다. 지식 관리자가 질의에 응답한 정보를 획득하도록 액세스 할 수 있는 시스템들 및 저장소들의 일부 비-제한적인 예시들은 뉴스 서비스(news service)(143), 게임 데이터 엔진(game data engine)(144), 및 추천 서비스(recommendation service)(145)를 포함한다.
뉴스 서비스(143)는 비디오 게임(112) 또는 비디오 게임(112)의 발행자(publisher)에 관한 뉴스를 제공할 수 있는 임의의 시스템을 포함할 수 있다. 예를 들어, 사용자는 비디오 게임(112)을 위해 출시되는 임의의 새로운 패치들(any new patches)이 있는지 여부, 비디오 게임(112)에 대한 새로운 다운로드 가능한 콘텐츠가 있는지 여부, 발행자들이 비디오 게임(112)에 대한 속편(sequel)을 출시하는지 여부 등을 포함할 수 있다. 또한, 뉴스 서비스는 비디오 게임(112)에 관련된 프로모션들에 관한 정보를 포함할 수 있다. 이러한 프로모션들은 확장(expansions), 다운로드 가능한 컨텐츠(downloadable content)(DLC), 또는 후속들과 같은, 추가 제품들에 대한 것일 수 있다. 대안적으로, 또는 추가적으로, 프로모션들은 게임-내 아이템들에 대한 할인, 게임-내 크레딧들(in-game credits)에 대한 할인, 제한된 시간 동안의 보너스 경험 포인트들 등과 같은 게임-내 컨텐츠에 대한 것일 수 있다.
게임 데이터 엔진(144)은 비디오 게임(112)의 상태 또는 비디오 게임(112)의 실행에 특정한 정보를 제공할 수 있는 임의의 시스템을 포함할 수 있다. 예를 들어, 게임 데이터 엔진(144)은 비디오 게임(112)에서 이용 가능한 플레이 가능한 캐릭터들 또는 아이쳄들에 대한 정보를 제공할 수 있는 비디오 게임 저장소(video game repository)(147)을 포함할 수 있다. 다른 예시로서, 비디오 게임 저장소(147)는 비디오 게임(112) 내의 이용 가능한 미션들 또는 위치들에 관한 정보를 제공할 수 있다. 일부 경우들에서, 게임 데이터 엔진(144)에 의해 제공된 정보는 특정 사용자에 특정될 수 있다. 예를 들어, 비디오 게임(112)의 사용자가 이용 가능한 임무들은 사용자 특정한 것(user specific)일 수 있다. 일부 실시예들에서, 게임 데이터 엔진(144)은 또한 하나 이상의 애플리케이션 호스트 시스템(124)에 관한 정보를 획득할 수 있다. 예를 들어, 게임 데이터 엔진은, 특정 사용자들이 온라인 인지 또는 특정 애플리케이션 호스트 시스템(124)에 있는지 여부, 또는 어떤 애플리케이션 호스트 시스템(124)이 비디오 게임(112)에 이용 가능한 특정 특징들을 가질 수 있는지, 상이한 애플리케이션 호스트 시스템들(difference application host systems)(124)에서의 로드를 결정할 수 있다.
또한, 게임 데이터 엔진(144)은 비디오 게임(112)의 사용자 계정에 특정한 정보를 제공하는 사용자 데이터 저장소(user data repository)(148)를 포함할 수 있다. 예를 들어, 사용자 데이터 저장소(148)는 비디오 게임(112)의 사용자가 이용 가능한 캐릭터들, 비디오 게임 (112)의 사용자가 소유한 아이템들, 또는 비디오 게임(112)의 사용자가 이용 가능한 크레딧들을 식별할 수 있다. 추가적 예시들로서, 사용자 데이터 저장소는 비디오 게임(112)을 어떻게 사용자의 스코어가 다른 사용자들과 비교하는지, 사용자가 얼마나 자주 플레이했는지에 대한 정보, 또는 비디오 게임(112)과의 사용자의 인터랙션과 관련된 임의의 다른 정보를 포함할 수 있다.
추천 서비스(145)는 비디오 게임(112)에 관한 추천을 생성할 수 있는 임의의 시스템을 포함할 수 있다. 추천은 비디오 게임(112)의 사용자의 액세스 또는 비디오 게임(112)의 플레이와 관련될 수 있다. 예를 들어, 추천은 비디오 게임(112)을 플레이 할 때 사용자가 채택해야 할 플레이 스타일(a play style that the user should adopt), 사용자가 플레이를 시도해야 할 미션들, 또는 사용자가 획득해야 할 아이템들에 관한 것일 수 있다. 대안적으로, 또는 추가적으로, 추천들은 비디오 게임(112)의 사용자의 플레이에 기초하여 사용자가 흥미를 가질 수 있는 애플리케이션들 또는 다른 게임들에 관할 수 있다. 예를 들어, 추천 서비스(145)는 비디오 게임(112)과 유형이 유사한 다른 비디오 게임들, 비디오 게임(112)에서의 사용자의 흥미들에 기초하여 사용자가 흥미를 가질 수 있는 새로운 소스들, 또는 사용자에게 흥미로울 수 있는 업커밍 비디오 게임 대회(upcoming video game conventions)를 추천할 수 있다.
대화 관리자(128)는 컨텍스트 관리자(134)를 더 포함할 수 있다. 컨텍스트 관리자(134)는 발화에 의해 참조되는 명령들을 결정할 수 있는 임의의 시스템을 포함할 수 있다. 일부 실시예들에서, 컨텍스트 관리자는 이전의 대화들 또는 발화들의 히스토리, 제공된 속성들, 및 결정된 응답들을 사용하여 발화에 의해 참조되는 명령을 결정하는 것을 용이하게 할 수 있다. 컨텍스트 관리자(134)는 명령을 실행하기 위한 파라미터들을 식별할 수 있고, 명령 실행 시스템(122)을 사용하여 명령을 실행하기 위해 명령 관리자(120)에 파라미터들을 제공할 수 있다. 일부 실시예들에서, 컨텍스트 관리자(134)는 사용자에 의해 요청될 수 있는 명령들을 예측 또는 미리 로드할 수 있고, 수행될 명령을 요구하는 발화에 앞서 명령 관리자(120)에 명령을 실행하기 위한 정보 또는 파라미터들을 제공할 수 있다. 유리하게는, 특정 실시예들에서, 미리 로드한 또는 예측한 명령들(preloading or predicting commands)은 특정 명령들의 낮은-대기 시간 요구 사항들(low-latency requirements)을 만족시키거나 시간에 민감한 명령들에 대한 시간 지연을 감소시킬 수 있다. 일부 경우들에서, 시간에 민감하거나 낮은-대기 시간 요구 명령들은 미리 로드될 수 있다. 수행될 것으로 예측된 명령들은 적어도 부분적으로 히스토리컬 데이터에 기초하여 예측될 수 있다. 일부 실시예들에서, 명령들은 사용자의 하나 이상의 이전 발화들에 적어도 부분적으로 기초하여 수행되도록 예측될 수 있다. 예를 들어, 사용자가 특정 아이템에 대한 비용 정보를 요청하면, 컨텍스트 관리자(134)는 사용자가 옥션 하우스(auction house)로부터 구매될 아이템을 요청할 수 있다고 예측할 수 있다. 그러면, 컨텍스트 관리자(134)는 명령 관리자(120)에서 애플리케이션 프로그래밍 인터페이스(application programming interface)(API) 호출 또는 옥션 하우스로부터 아이템을 구매하기 위해 요구되는 추가 정보를 미리 로드할 수 있다. 유리하게는, 특정 실시예들에서, 명령 관리자(120)에서 명령들을 수행하기 위한 명령들 및/또는 미리 로드한 정보(preloading information)를 예측함으로써, 요청된 명령을 실행할 때 대기 시간을 감소시킴으로써 디스패치 시스템(116)의 응답성을 향상시킬 수 있다.
대화 관리자(128)는 응답 생성기(response generator)(138)를 사용하여 발화에 대한 응답을 생성할 수 있다. 응답 생성기(138)는 응답 또는 발화를 생성할 수 있는 임의의 시스템을 포함할 수 있다. 일부 실시예들에서, 응답 생성기(138)는 발화에 대한 하나 이상의 잠재적 응답들(potential responses)의 사용자의 참여에 대한 영향을 평가할 수 있는 참여 시스템(engagement system)(140)을 포함할 수 있다. 참여 시스템(140)은 기계 학습 기술들을 사용하여 생성된 하나 이상의 파라미터 함수들 또는 예측 함수들을 적용하여 발화에 대한 잠재적 응답의 발화에 대한 참여를 예측 및 영향을 줄 수 있다. 파라미터 함수들은 모델 생성 시스템(146)에 의한 트레이닝 데이터를 사용하여 생성될 수 있으며, 이는 도 1b에 관해 아래에서 보다 상세히 설명된다.
일부 실시예들에서, 발화에 대한 응답은 특정 성격 유형(particular personality type)을 반영하도록 수정될 수 있다. 성격 특색 엔진(personality trait engine)(142)은 사용자의 참여를 향상시키도록 결정된 특정 성격을 반영하도록 발화를 수정할 수 있다. 예를 들어, 특정 사용자에 대한 보다 경쾌한 응답이 보다 심각한 응답과 비교하여 향상된 참여를 가져올 것으로 참여 시스템(140)이 결정하면, 성격 특색 엔진(142)은 응답 생성기(138)에 의해 생성된 응답을 보다 경쾌하게 수정할 수 있다. 또한, 성격 특색 엔진(142)은 발화에 대한 응답에 농담을 삽입할 수 있다.
응답 생성기(138)는 사용자 인터페이스 시스템(126)에 의해 사용자 컴퓨팅 시스템(110)에 출력될 수 있다. 또한, 응답 생성기(138)는 디스패치 시스템(116)에서 수신된 발화들을 저장하고 로그 저장소(log repository)(136)에서 발화들에 응답할 수 있다. 로그 저장소(136)에 저장된 정보는 모델 생성 시스템(146)에 의해 생성된 예측 모델들에 대한 파라미터 모델들을 업데이트하는데 사용될 수 있다.
도시되지는 않았지만, 네트워크 컴퓨팅 환경(100)은 인터랙티브 컴퓨팅 환경(101)과 인터랙트하는 데 사용될 수 있는 하나 이상의 관리 또는 운영 컴퓨팅 시스템들(management or administration computing systems)을 더 포함할 수 있다. 운영자와 같은 사용자는 관리 컴퓨팅 시스템을 사용하여 인터랙티브 컴퓨팅 환경(101)에 관한 유지 보수 작업들을 수행할 수 있다. 예를 들어, 운영자는 뉴스 서비스(143)와 같은 지식 관리 시스템들 중 하나 이상을 업데이트하여 비디오 게임(112)에 관련된 최신 뉴스에 액세스 할 수 있다.
또한, 대화 관리자(128)에서의 디스패치 시스템(116)이 개별 시스템들로서 도시되어 있지만, 특정 실시예들에서 디스패치 시스템(116) 및/또는 대화 관리자(128)는 비디오 게임(112)의 부분으로서 포함될 수 있다. 예를 들어, 대화 관리자(128)는 애플리케이션 호스트 시스템(124)에 의해 호스팅되는 비디오 게임(112)의 부분의 일부로서(as part of the portion of the video game 112) 포함될 수 있다.
네트워크 컴퓨팅 환경(100)에 도시된 시스템들의 각각은 컴퓨터 하드웨어로서 구현될 수 있다. 그러나, 특정 실시예들에서, 시스템들의 일부는 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로서 구현될 수 있다. 예를 들어, 발화 분류기(118)는 디스패치 시스템(116)의 하나 이상의 하드웨어 프로세서들에 의해 구현되는 소프트웨어일 수 있다.
일부 실시예들에서, 오디오 캡처 시스템(102)에 의해 캡처된 발화는 컴패니언 애플리케이션(106)의 인스턴스 대신에 또는 그에 추가하여 비디오 게임(112)과 인터랙트하는 데 사용될 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(108)은 오디오 캡처 시스템(102)을 사용하여 발화들을 캡처할 수 있다. 이러한 발화들은 비디오 게임(112)의 NPC를 명령하는 것과 같이, 비디오 게임(112)과 인터랙트하는데 사용될 수 있다.
사용자 컴퓨팅 시스템들(108, 110)은 통신 네트워크(104)를 통해 통신을 설정하기 위한 하드웨어 및 소프트웨어 구성 요소들을 포함할 수 있다. 예를 들어, 사용자 컴퓨팅 시스템들(108, 110)은 네트워크(예를 들어, 인터넷) 또는 인트라넷(intranet)을 통한 통신을 용이하게 하는 네트워킹 장비 및 네트워크 소프트웨어 애플리케이션들(예를 들어, 웹 브라우저(web browser))를 구비할 수 있다. 사용자 컴퓨팅 시스템들(108, 110)은 중앙 프로세싱 유닛들(central processing units) 및 아키텍처들(central processing units and architectures), 메모리, 대용량 저장소, 그래픽 프로세싱 유닛들(graphics processing units), 통신 네트워크 가용성(availability) 및 대역폭, 등과 같은, 다양한 로컬 컴퓨팅 리소스들을 가질 수 있다. 또한, 사용자 컴퓨팅 시스템들(108, 110)은 컴퓨팅 시스템의 임의의 유형을 포함할 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(108, 110)은 데스크톱들(desktops), 랩탑들(laptops), 비디오 게임 플랫폼들(video game platforms), 텔레비전 셋-톱 박스들(television set-top boxes), 텔레비전들(예를 들어, 인터넷 TV들), 네트워크-가능 키오스크들(network-enabled kiosks), 차량-콘솔 장치들(car-console devices), 컴퓨터화된 가전 기기들(computerized appliances), 웨어러블 장치들(예를 들어, 컴퓨팅 기능을 구비한 스마트 시계들 및 안경들), 및 무선 모바일 장치들(예를 들어, 스마트 폰들, PDA들, 태블릿들 등)를 포함하지만, 몇 가지 예시일 뿐이다. 특정 실시예들에서, 비디오 게임(112)은 비디오 게임 콘솔(video game console)에서 실행될 수 있다. 일부 이러한 경우들에서, 사용자 발화 또는 입력은 게임 패드 입력을 통해 수신될 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템들(108, 110)은 도 6 및 도 7과 관련하여 후술되는 실시예들 중 하나 이상을 포함할 수 있다.
모델 생성 시스템(146)의 실시예들은 하나 이상의 기계 학습 알고리즘들을 사용하여 하나 이상의 예측 모델들 또는 파라미터 함수들을 생성할 수 있다. 이들 파라미터 함수들 중 하나 이상은 입력들의 세트에 기초하여 예상되는 값 또는 발생(occurrence)을 결정하는데 사용될 수 있다. 예를 들어, 예측 모델은, 예를 들어, 사용자에 대한 히스토리컬 사용자 인터랙션 정보 또는 사용자에 의해 만들어진 히스토리컬 발화와 같은, 예측 모델에 대한 하나 이상의 입력들에 기초한 비디오 게임(112)을 사용자가 계속 플레이 할 확률 또는 예상 참여 모델(expected engagement level)을 결정하는데 사용될 수 있다. 추가 예시들로서, 예측 모델은 예측 모델에 대한 하나 이상의 입력들에 기초하여 비디오 게임에 대한 게임-내 아이템들 구매시 사용자에 의해 소비된 돈의 예상된 양 또는 유지율을 결정하는데 사용될 수 있다. 일부 경우들에서, 예측 모델은 예측 모델로 지칭될 수 있고, 예를 들면 출력이 사용자가 비디오 게임(112)을 계속해서 플레이하는 예측과 같은, 동작 또는 이벤트의 예측일 수 있거나 관련될 수 있기 때문이다. 다수의 알고리즘들의 상이한 유형들은 모델 생성 시스템(146)에 의해 사용될 수 있다. 예를 들어, 여기에서 특정 실시예들은 로지스틱 회귀 모델(logistical regression model)을 사용할 수 있다. 그러나, 그 중에서도, 선형 회귀 모델, 이산 선택 모델, 또는 일반화된 선형 모델과 같은, 다른 알고리즘도 가능하다.
기계 학습 알고리즘들은 모델 생성 시스템(146)에 의해 수신된 새로운 입력에 기초하여 시간이 지남에 따라 모델들을 적응적으로 개발 및 업데이트하도록 구성될 수 있다. 예를 들어, 새로운 사용자 정보가 이용 가능할 때 모델들은 주기적으로 재생성될 수 있어 사용자 정보가 시간이 지남에 따라 발달할(evolves) 때 모델에서의 예측을 더 정확하게 유지할 수 있다. 모델 생성 시스템(146)은 여기에서 더 상세하게 설명된다. 모델이 생성된 후, 그것은 참여 시스템(140)에 제공될 수 있다.
파라미터 함수들 또는 예측 모델들을 생성하고 업데이트하는데 사용될 수 있는 기계 학습 알고리즘들의 일부 비-제한적인 예시들은, 회귀 알고리즘(예를 들어, 보통 최소 자승 회귀(Ordinary Least Squares Regression)과 같은), 인스턴스-기반 알고리즘들(instance-based algorithms)(예를 들어, 학습 벡터 양자화(Learning Vector Quantization)와 같은), 의사 결정 트리 알고리즘들(decision tree algorithms)(예를 들어, 분류 및 회귀 트리들), 베이지안 알고리즘들(Bayesian algorithms)(예를 들어, 나이브 베이즈(Naive Bayes)와 같은), 클러스터링 알고리즘들(clustering algorithms)(예를 들어, k-평균 클러스터링(k-means clustering)과 같은), 연관 규칙 학습 알고리즘들(association rule learning algorithms)(예를 들어, 선험적 알고리즘들(Apriori algorithms)과 같은), 인공 신경망 알고리즘들(artificial neural network algorithms)(예를 들어, 퍼셉트론(Perceptron)과 같은), 깊이 학습 알고리즘들(deep learning algorithms)(예를 들어, 깊이 볼츠만 기계(Deep Boltzmann Machine)와 같은), 차원성 감소 알고리즘들(dimensionality reduction algorithms)(예를 들어, 주성분 분석(Principal Component Analysis)), 앙상블 알고리즘들(ensemble algorithms)(예를 들어, 스택 일반화(Stacked Generalization)와 같은), 및/또는 다른 기계 학습 알고리즘들을 포함하는, 감독 및 비-감독 기계 학습 알고리즘들(supervised and non-supervised machine learning algorithms)을 포함할 수 있다.
참여 시스템(140)은 모델 생성 시스템(146)에 의해 생성된 예측 모델에 사용자에 대한 사용자 인터랙션 데이터 및/또는 사용자 발화들의 애플리케이션에 기초하여 사용자에 대한 참여의 레벨을 결정하기 위한 하나 이상의 시스템들을 포함할 수 있다. 일부 경우들에서, 응답 생성기(138)는 발화에 대한 응답에 포함할 정보, 응답의 톤, 또는 응답의 유형을 결정하기 위해 참여 시스템(140)에 의해 결정된 예상 참여 레벨을 사용할 수 있다.
네트워크(104)는 통신 네트워크의 임의의 유형을 포함할 수 있다. 예를 들어, 네트워크(104)는 하나 이상의 광역 네트워크(WAN), 근거리 네트워크(LAN), 셀룰러 네트워크(cellular network), 애드혹 네트워크(ad hoc network), 위성 네트워크, 유선 네트워크, 무선 네트워크, 및 등등을 포함할 수 있다. 또한, 일부 경우들에서, 네트워크(104)는 인터넷을 포함할 수 있다.
모델 생성 시스템 예시
도 1b는 도 1a의 모델 생성 시스템(146)의 일 실시예를 도시한다. 모델 생성 시스템(146)은 다수의 사용자들에 대한 히스토리컬 데이터(152)에 기초하여 하나 이상의 예측 모델들(160)을 결정하는데 사용될 수 있다. 일반적으로, 필수적이지는 않지만, 히스토리컬 데이터(152)는 수백, 수천, 수십만 또는 그 이상의 사용자들과 같은, 다수의 사용자들과 관련된 데이터를 포함한다. 그러나, 본 개시는 그 자체로 제한되지 않으며, 사용자들의 수는 사용자들의 임의의 수를 포함할 수 있다. 또한, 히스토리컬 데이터(152)는, 예를 들어, 하나 이상의 애플리케이션 호스트 시스템들(124) 및/또는 하나 이상의 사용자 컴퓨팅 시스템들(108 및/또는 110)과 같은, 하나 이상의 데이터 소스들로부터 수신된 데이터를 포함할 수 있다. 또한, 히스토리컬 데이터(152)는 다른 데이터 소스들로부터의 데이터, 상이한 데이터 유형들, 및 컴패니언 애플리케이션(106) 및/또는 비디오 게임(112)과의 하나 이상의 사용자의 인터랙션에 의해 생성된 임의의 데이터를 포함할 수 있다. 일부 실시예들에서, 히스토리컬 데이터(152)는 수백만의 데이터 포인트들과 같은 데이터 포인트들의 매우 많은 수를 포함할 수 있고, 이는 하나 이상의 데이터 세트들로 집합될 수 있다. 일부 경우들에서, 히스토리컬 데이터(152)는 사용자 데이터 저장소(148)로부터 액세스될 수 있다. 일부 실시예들에서, 히스토리컬 데이터(152)는 컴패니언 애플리케이션(106) 또는 비디오 게임(112)에 대한 히스토리컬 정보로 제한되지만, 다른 실시예들에서는, 히스토리컬 데이터(152)는 하나 이상의 다른 비디오 게임들 또는 컴패니언 애플리케이션들로부터의 정보를 포함할 수 있다. 또한, 일부 실시예들에서, 히스토리컬 데이터의 하나 이상의 서브세트들은, 예를 들어 지난 6 개월로부터의 데이터만 포함하도록 제한되는 것과 같은, 날짜 제한(date restriction)에 의해 제한된다.
히스토리컬 데이터(152)는 비디오 게임(112) 또는 컴패니언 애플리케이션(106)에 관한 사용자들에 대한 사용자 인터랙션 데이터를 포함할 수 있다. 또한, 히스토리컬 데이터(152)는 사용자들에 의해 언급된 발화들에 대한 대화 관리자(128) 또는 디스패치 시스템(116)에 의해 생성된 응답들에 다른 사용자들이 어떻게 반응했는지에 관한 정보를 포함할 수 있다.
또한, 모델 생성 시스템(146)은, 일부 경우들에서, 피드백 데이터(feedback data)(154)를 수신할 수 있다. 이 데이터는, 관리자와 같은, 사용자가 모델 생성 시스템(146)에 추가 입력을 제공할 수 있게 하는 감독 모델 생성 프로세스의 부분으로서 수신될 수 있다. 예를 들어, 히스토리컬 데이터(152)에 이상이 존재하는 경우, 사용자는 모델 생성 시스템(146)이 태그된 데이터를 다르게 처리할 수 있게 하는 비정상적인 데이터를 태그 할 수 있고, 예를 들어 데이터에 다른 가중치를 적용하거나 모델 생성 프로세스로부터 데이터를 제외하는 것과 같다.
또한, 모델 생성 시스템(146)은 제어 데이터(control data)(156)를 수신할 수 있다. 이 제어 데이터(156)는 모델 생성 시스템(146)이 모델을 결정하기 위한 하나 이상의 특징들 또는 특성들을 식별할 수 있다. 또한, 일부 경우들에서, 제어 데이터(156)는 제어 데이터(156)에서 식별된 하나 이상의 특징들에 대한 값을 나타낼 수 있다. 예를 들어, 제어 데이터(156)는, 예측 모델이 히스토리컬 데이터(152)를 사용하여 생성되어 사용자들이 비디오 게임(112)을 플레이한 시간의 길이(이는 참여의 척도(measure of engagement)로서 역할을 할 수 있음)를 결정하는 것을 나타낸다. 사용자가 게임을 플레이한 시간의 양이 공지되면, 이 데이터는 제어 데이터(156)의 부분으로서 또는 히스토리컬 데이터(152)의 부분으로서 제공될 수 있다. 다른 예시로서, 예를 들어, 사용자들이 시간의 임계 기간 동안 비디오 게임(112)을 플레이했는지 또는 시간의 특정 임계 기간 후에 비디오 게임(112)을 계속 플레이하는지 여부에 기초하여, 결정된 바와 같은 유지율을 추정하기 위해 예측 모델이 생성되어야 하는 경우, 제어 데이터(156)는 데이터가 히스토리컬 데이터(152)에 포함되는 사용자들에 대한 컴패니언 애플리케이션(106)과의 인터랙션들의 히스토리 및 유지율을 포함할 수 있다.
모델 생성 시스템(146)은 일반적으로 예측 모델(160)의 생성을 위한 모델 생성 규칙 세트(170)를 포함할 수 있다. 규칙 세트(170)는 하나 이상의 파라미터들(162)을 포함할 수 있다. 파라미터들의 각 세트(162)는 파라미터 함수를 획득하도록 하나 이상의 수학적 함수들을 사용하여 조합될 수 있다. 또한, 하나 이상의 특정 파라미터들은 가중치들(164)에 의해 가중될 수 있다. 일부 경우들에서, 파라미터 함수는 가중치들의 각각의 세트(164)와 파라미터들의 세트를 조합함으로써 획득될 수 있다. 예측 모델(160) 및/또는 예측 모델들(160)의 각각의 파라미터들(162)은, 히스토리컬 데이터(152), 피드백 데이터(154), 및 제어 데이터(156)와 같은, 특정 입력 데이터에 기초하여 트레이닝 프로세스(training process) 동안 도출되고, 출력 기준이 정의될 수 있으며, 이는 트레이닝 목적들을 위해 사용되는, 제어 데이터(156)와 함께 포함될 수 있다. 모델 생성 규칙 세트(170)는 모델 생성 시스템(146)이 해지율을 결정하는 것과 같은, 정의된 목적 함수에 기초하여 모델을 생성하는데 사용하는 특정 기계 학습 규칙들 및/또는 알고리즘들을 정의할 수 있다. 일부 실시예들에서, 초기 파라미터들(162) 및 가중치들(164)은 모델 생성 프로세스의 개시 동안 수동으로 제공될 수 있다. 파라미터들(162) 및 가중치들(164)은 예측 모델(160)을 생성하기 위해 모델 생성 단계 동안 업데이트되고 수정될 수 있다. 일부 실시예들에서, 가중치들은 파라미터 함수들 또는 예측 모델들 자체에 적용될 수 있다. 예를 들어, 특정 예측 모델(160)에 포함된 파라미터들의 수 또는 수학적 복잡도는 특정 예측 모델(160)에 대한 가중치들에 영향을 미칠 수 있으며, 이는 특정 예측 모델(160)이 선택되는 선택 확률 또는 선택 알고리즘 및/또는 모델의 생성에 영향을 미칠 수 있다.
모델 생성 시스템(146)은 데이터의 다양한 특성들 및 파라미터들에 따라 히스토리컬 데이터 세트들을 필터링(filter)하고 분류(categorize)할 수 있다. 예를 들어, 데이터는 데이터 소스(예를 들어, 컴패니언 애플리케이션 인터랙션 데이터, 게임 애플리케이션 데이터, 호스트 애플리케이션 데이터, 또는 사용자 프로파일 데이터와 같은), 정보 유형(예를 들어, 발화 명령들, 발화 문장들(utterance statements), 발화 질의들, 게임플레이 정보, 거래 정보, 인터랙션 정보, 또는 게임 계정 정보와 같은), 상대방 데이터(예를 들어, 상대방의 기술, 상대방에 의해 선택 또는 플레이 되는 역할, 또는 상대방 대 성공률(success rate verse opponent)과 같은), 팀원 데이터(예를 들어, 팀원의 기술, 팀원에 의해 선택 또는 플레이 되는 역할들, 또는 특정 팀원과 플레이 할 때 성공률과 같은) 또는 데이터와 관련된 다른 카테고리들에 의해 분류될 수 있다. 모델 생성 시스템(146)은 추가 프로세싱을 위해 정보를 식별하기 위해 정보를 필터링 할 수 있다. 일부 실시예들에서, 모델 생성 시스템(146)은 추가 프로세싱 전에 복수의 데이터 유형들 또는 카테고리들로 히스토리컬 데이터(152)를 필터링하고 분리하도록 구성된다. 또한, 일부 경우들에서, 히스토리컬 데이터(152)의 일부는 모델 생성 시스템(146)에 의해 결정된 임계 관련성을 만족시키지 않는 관련성과 관련되는 데이터에 기초하여 히스토리컬 데이터(152)로부터 필터링되거나 제거될 수 있다.
예측 모델(160)이 생성된 후에, 모델은 참여 시스템(140) 및/또는 응답 생성기(138)의 실행 동안 비디오 게임(112) 또는 컴패니언 애플리케이션(106)의 사용자로부터 수신된 발화에 대한 응답을 승인, 거절, 또는 선택하는데 사용될 수 있다. 일부 경우들에서, 예측 모델(160)은 발화에 대한 오디오 또는 시각적 응답, 또는 발화에 응답하여 수행되는 액션을 작동하는 것을 용이하게 하는데 사용될 수 있다. 다른 경우들에서, 예측 모델(160)은 발화에 대한 특정 응답이, 예를 들어, 특정 임계 참여율(particular threshold engagement rate)과 같은 조건들의 세트(set of conditions)를 만족시키는지를 확인하는데 사용될 수 있다.
참여 시스템 예시
도 1c는 도 1a의 참여 시스템(140)의 일 실시예를 도시한다. 참여 시스템(140)은 모델 생성 시스템(146)에 의해 생성된 예측 모델들(160) 중 하나 이상을 적용하거나 사용할 수 있다. 별도의 시스템으로 도시되었지만, 일부 경우들에서, 참여 시스템(140)의 특징들은 응답 생성기(138)에 의해 수행된다. 참여 시스템(140)은 입력 데이터(172)를 프로세싱하기 위해 하나 이상의 예측 모델들(160A, 160B, 160N)(이는 집합적으로 "예측 모델들(160)" 또는 단수로 "예측 모델(160)"로 지칭될 수 있음)을 사용하여 출력 데이터(174)를 획득할 수 있다.
참여 시스템(140)은 컴패니언 애플리케이션(106) 또는 비디오 게임(112)으로부터 수신된 발화에 대한 응답의 결정 중에 예측 모델(들)(160)을 적용할 수 있다. 일부 실시예들에서, 예측 모델들(160)은 복수의 발화들을 수신한 후 적용될 수 있다. 예를 들어, 일련의 문장들이 오디오 캡처 시스템(102)에 의해 캡처되고 대화 관리자(128)에 의해 집합될 수 있다. 집합된 일련의 문장들은 예측 모델(160)에 적용되어, 문장들에 응답한 경우, 어떤 액션을 취할지, 문장들에 응답한 액션을 취할지 여부, 또는 예상된 참여의 레벨을 결정할 수 있다. 일부 경우들에서, 예측 모델들(160)은 트리거가 발생한 후에 문장들에 적용된다. 예를 들어, 사용자가 일련의 매치들(series of matches)을 실패한 후에, 문장들은 사용자에 대한 참여 레벨 또는 예상 유지율을 결정하기 위해 예측 모델들(160)에 적용될 수 있다. 예측 모델(160)에 발화들을 적용할 때, 추가 입력 데이터(additional input data)(172)는 또한 공급될 수 있다. 입력 데이터(172)는 비디오 게임(112) 또는 컴패니언 애플리케이션(106)을 플레이하는 사용자와 관련된 하나 이상의 데이터의 조각들(one or more pieces of data)을 포함할 수 있거나, 비디오 게임(112)의 인스턴스를 플레이하고자 하는 바램(desire to play an instance of the video game 112)을 나타낼 수 있다. 이 데이터는 컴패니언 애플리케이션(106)에 대한 사용자 인터랙션 데이터, 비디오 게임(112)에 대한 사용자 인터랙션 데이터, 사용자에 대한 프로파일 데이터, 및 참여 레벨 또는 사용자에 대한 유지율 또는 해지율을 결정하기 위해 예측 모델(160)에 적용될 수 있는 임의의 다른 데이터를 포함할 수 있다. 또한, 입력 데이터(172)는 사용자의 상대방 및/또는 팀원으로서 선택될 수 있는 하나 이상의 추가 사용자들과 관련된 하나 이상의 데이터의 조각들을 포함할 수 있다. 추가 사용자들과 관련된 데이터는 사용자에 대해 수신된 것과 동일한 데이터의 유형, 사용자에 대해 수신된 데이터 유형의 서브세트, 및/또는 사용자에 대해 수신된 데이터의 추가 유형들을 포함할 수 있다. 일부 실시예들에서, 입력 데이터(172)는 그것이 참여 시스템(140)에 제공되기 전에 필터링될 수 있다.
일부 실시예들에서, 단일 예측 모델(160)은 참여 시스템(140)에 대해 존재할 수 있다. 그러나, 도시된 바와 같이, 참여 시스템(140)이 다수의 예측 모델들(160)을 포함하는 것이 가능하다. 참여 시스템(140)은, 입력 데이터(172)와 관련된 추가 식별자들 및/또는 입력 데이터(172)에 기초하여 사용하는, 임의의 모델들(160A-N)과 같은, 검출 모델(detection model)을 결정할 수 있다. 추가적으로, 선택된 예측 모델(162)은 입력 데이터(172)로서 제공된 특정 데이터에 기초하여 선택될 수 있다. 입력 데이터(172)의 부분으로서 데이터의 특정 유형들의 가용성은 예측 모델(160)의 선택에 영향을 미칠 수 있다. 예를 들어, 입력 데이터의 부분으로서 인구통계학적 데이터(demographic data)(예를 들어, 연령, 성별, 제1 언어)의 포함은 예측 모델(160A)의 사용을 초래할 수 있다. 그러나, 특정 사용자에 대해 인구통계학적 데이터가 이용 가능하지 않다면, 예측 모델(160B)이 대신 사용될 수 있다. 일부 경우들에서, 입력 데이터(172)는 수신된 발화에 응답하여 사용자에게 공급될 수 있는, 응답의 내용 또는 응답의 톤(tone)과 같은 응답 옵션(response option)을 포함할 수 있다.
출력 데이터(174)는 사용자가 비디오 게임(112)을 계속 플레이하는 시간의 길이와 관련된 예상 참여 레벨일 수 있다. 대안적으로, 또는 부가적으로, 출력 데이터(174)는 사용자, 또는 사용자들의 세트가 비디오 게임(112)을 플레이하는 것을 중단하는 예측과 관련된 해지율 또는 보유율일 수 있다. 예를 들어, 일부 실시예들에서, 참여 레벨은 임계 시간 기간 내에 비디오 게임(112)의 후속 플레이 세션을 위해 리턴(return) 할 입력 데이터(172)로서 포함된 것과 유사하거나 동일한 데이터와 연관된 사용자들의 예측된 백분율을 나타내는 0 및 100 사이일 수 있다. 일부 경우들에서, 출력 데이터(174)는 또한 참여 레벨에 대한 이유를 식별할 수 있다. 예를 들어, 참여 시스템(140)은 특정 사용자에 대한 90% 참여 레벨이 컴패니언 애플리케이션(106)을 통해 만들어진 발화의 톤에 적어도 부분적으로 기초한다는 것을 나타낼 수 있다. 그러나, 참여 시스템(140)은 다른 사용자에 대한 90% 참여 레벨이 적어도 부분적으로 사용자가 위치하는 지리적 영역에서의 동결 온도 미만(below freezing temperature)에 기초될 수 있다. 다른 예시로서, 참여 시스템(140)은 사용자에 대한 20% 참여 레벨이 사용자의 기술 레벨에 대해 이용 가능한 미션들의 부족에 적어도 부분적으로 기초할 수 있음을 나타낼 수 있다.
예측 모델(160A, 160B, 160N)은, 일반적으로 각각, 하나 이상의 파라미터들(162A, 162B, 162N)의 세트를 포함할 수 있다(이는 "파라미터(162)"로 집합적으로 지칭될 수 있음). 파라미터들의 각 세트(162)(파라미터들(162A)와 같은)는 하나 이상의 수학적 함수들을 사용하여 조합되어 파라미터 함수를 획득할 수 있다. 또한, 파라미터들(162A, 162B, 162N)로부터의 하나 이상의 특정 파라미터들은 가중치들(164A, 164B, 164N)(집합적으로 "가중치들(164)"로 지칭될 수 있음)에 의해 가중될 수 있다. 일부 경우들에서, 파라미터 함수는 파라미터들의 세트(파라미터(162A)와 같은)를 가중치(164)의 각각의 세트(가중치들(164A)와 같은)와 조합함으로써 파라미터 함수를 획득할 수 있다.
발화 프로세싱을 위한 프로세스 예시
도 2는 발화 프로세싱을 위한 프로세스(process for utterance processing)(200)의 일 실시예의 흐름도를 나타낸다. 프로세스(200)는 사용자로부터의 하나 이상의 발화들을 수신할 수 있는 임의의 시스템에 의해 구현될 수 있으며, 하나 이상의 발화들에 응답하여 취할 응답 또는 액션을 결정할 수 있다. 전체 또는 부분적으로, 프로세스(200)는, 예를 들어, 그 중에서도, 오디오 캡처 시스템(102), 컴패니언 애플리케이션(106), 인터랙티브 컴퓨팅 환경(101), 디스패치 시스템(116), 대화 관리자(128), 또는 명령 실행 시스템(122)에 의해 구현될 수 있다. 설명을 단순화하기 위해, 임의의 수의 시스템들이, 전체적으로 또는 부분적으로, 프로세스(200)를 구현할 수 있지만, 프로세스(200)는 특정 시스템들과 관련하여 설명될 것이다. 또한, 프로세스(200)는 발화가 수신될 때마다 반복될 수 있거나 특정 발화들에 응답하여 또는 특정 수의 발화가 수신된 후에 수행될 수 있음을 이해해야 한다. 일부 경우들에서, 프로세스(200)는 트리거(trigger)에 응답하여 수행된다. 예를 들어, 프로세스(200)는 사용자로부터 명령을 수신하는 것에 응답하여 또는 컴패니언 애플리케이션(106)과 인터랙트 하는 사용자에 응답하여 수행될 수 있다.
프로세스(200)은 디스패치 시스템(116)이 발화를 수신하는 블록(202)에서 시작한다. 발화는 사용자 컴퓨팅 시스템(108) 또는 사용자 컴퓨팅 시스템(110)의 오디오 캡쳐 시스템(102)으로부터 수신될 수 있다. 일부 경우들에서, 발화는 음성 인식 시스템(114)으로부터 수신될 수 있다.
블록(204)에서, 발화 분류기(118)는 발화에 대한 발화 분류를 결정한다. 발화 분류는 명령, 질의, 또는 문장(statement)을 포함할 수 있습니다. 일부 경우들에서, 발화 분류는 미결정 분류를 포함할 수 있다. 예를 들어, 발화 분류기(118)가 발화가 명령, 질의 또는 문장인지를 결정할 수 없다면, 발화는 미결정으로 분류될 수 있다. 발화가 미결정인 경우, 그러한 것으로 표시하는 메시지 또는 에러 메시지는 사용자 컴퓨팅 시스템(110)에 전송되어 사용자에게 제시될 수 있다. 이 에러 메시지는 시각적 또는 오디오 피드백, 또는 시각적 및 오디오 피드백의 조합으로 사용자에게 제시될 수 있습니다.
블록(206)에서, 발화 분류기(118)는 발화에 우선 순위를 할당할 수 있다. 일부 경우들에서, 발화에 할당된 우선 순위에 기초하여, 발화가 계속해서 프로세싱되어야 하는지 여부 또는 발화가 우선 순위가 더 높은 발화에 이어 프로세싱되어야 하는지 여부가 결정될 수 있다. 또한, 일부 경우들에서, 발화에 할당된 우선 순위에 기초하여, 발화가 프로세싱을 위해 2 차 시스템(secondary system)에 제공되어야 하는지 여부가 결정될 수 있으며, 이는 디스패치 시스템(116) 보다 발화를 프로세싱하는데 더 오래 걸릴 수 있다. 일부 경우들에서, 발화의 우선 순위는 발화 유형에 기초한다. 예를 들어, 명령은 비디오 게임(112)의 상태를 달라지게 할 가능성이 있기 때문에 질의 또는 문장보다 더 높은 우선 순위를 가질 수 있다. 반대로, 사용자가 질의에 대한 응답을 빠르게 수신하기를 원하기 때문에 질의는 명령보다 더 높은 우선 순위를 가질 수 있지만, 컴패니언 애플리케이션(106)을 통해 수신된 명령의 결과는 사용자가 비디오 게임(112)의 세션을 플레이하기로 선출할(elects) 때까지 사용자에게 영향을 미치지 않을 수 있다. 특정 실시예들에서, 블록(206)을 둘러싸는 점선으로 표시된 바와 같이, 블록(206)과 관련된 작동들은 선택적(optional)이거나 생략될 수 있다.
결정 블록(decision block)(208)에서, 발화 분류기(118)는 발화가 명령, 질의 또는 문장으로서 블록(204)에서 분류되는지를 결정한다. 발화가 명령으로서 분류되는 것으로 결정되면, 명령 관리자(120)는 발화에 대응하는 명령을 블록(210)에서 식별한다. 명령 관리자(120)는 명령 관리자(120)에에 이용 가능한 또는 명령 관리자(120)에서 저장되어 있는 명령들의 저장소에 액세스함으로써 발화에 대응하거나 발화에 의해 참조되는 특정 명령을 식별할 수 있다. 일부 경우들에서, 명령 관리자(120)는 더 공통된 명령들과 관련된 정보를 저장할 수 있다. 이러한 경우들에서, 덜 공통된 명령들은 명령 관리자(120)에 의해 인식되지 않을 수 있다. 명령이 명령 관리자(120)에 의해 인식되지 않으면, 발화는 발화에서 참조된 명령을 식별하도록, 비디오 게임 저장소(147)와 같은, 하나 이상의 지식 저장소들을 액세스할 수 있는 컨텍스트 관리자(134)에 공급될 수 있다.
일부 실시예들에서, 블록(210)은 식별된 명령이 비디오 게임(112)의 현재 상태와 관련하여 또는 발화가 수신된 특정 시간 기간(particular time period)에서 실행될 수 있는지를 결정하는 단계를 포함할 수 있다. 명령이 특정 시간에 또는 비디오 게임(112)의 현재 상태와 관련하여 실행될 수 없다고 결정되는 경우, 명령은 거부될 수 있다. 명령을 거부하는 단계는 명령이 실행될 수 없다는 것을 사용자에게 경고하는 단계를 포함할 수 있다.
식별된 명령은 명령 실행 시스템(122)에 공급될 수 있으며, 이는 블록(212)에서 명령을 실행할 수 있다. 명령을 실행하는 단계는 애플리케이션 호스트 시스템(124)에 의해 호스팅되는 비디오 게임(112)에 대해 명령을 실행하는 단계를 포함할 수 있다. 일부 경우들에서, 명령을 실행하는 단계(212)는 다단계 프로세스(multistep process)일 수 있다. 명령을 실행하는 단계는 비디오 게임(112)의 상태 변화를 유발할 수 있다. 일반적으로, 질의는 비디오 게임(112)의 상태 변화를 유발하지 않을 것이다. 이 다단계 프로세스의 하나의 비-제한적인 예시는 도 3에 관해 더 상세하게 설명된다.
결정 블록(208)에서 발화가 질의인 것으로 결정되면, 질의 및 문장 관리자(122)는 블록(214)에서 발화에 대응하는 특정 질의를 결정한다. 일부 실시예들에서, 블록(214)은 질의가 수사학적 질의(rhetorical query)인지 여부를 결정하는 단계를 포함할 수 있다. 질의가 수사학적 질의일 경우, 프로세스(200)는 질의를 하나의 문장으로서 취급(treat)할 수 있다.
블록(216)에서, 지식 관리자(130)는 질의에 의해 연루된 하나 이상의 지식 소스들을 결정할 수 있다. 일부 실시예들에서, 지식 소스들은 비디오 게임 저장소(147)와 같은 하나 이상의 저장소들일 수 있다. 대안적으로 또는 추가적으로, 지식 소스는 비디오 게임(112) 자체를 포함할 수 있다. 일부 경우들에서, 지식 관리자(130)는 비디오 게임 112)이 실행되어 질의에 대한 응답을 결정하게 할 수 있다. 예를 들어, 사용자가 사용자의 워리어들의 밴드(user's band of warriors)가 특정 마을로 송신될 수 있는지 여부를 묻는 경우, 지식 관리자(130)는 비디오 게임(112)을 인스턴스화하고, 사용자가 마을을 발견했는지 여부, 사용자가 마을로 가는 통로를 구매할 수 있는 충분한 게임-내 크레딧들을 갖고 있는지 여부 및/또는 사용자의 워리어들의 밴드가 추가 액션 없이 그들의 현재 위치를 떠날 수 있는지 여부를 결정하도록 사용자의 계정을 로드(load)할 수 있다.
블록(218)에서, 지식 관리자(130)는 질의에 대답하기 위한 데이터를 획득하도록 식별된 하나 이상의 지식 소스들에 액세스 할 수 있다. 질의에 응답하기 위해 데이터가 식별될 수 없다면, 그와 같은 에러 메시지가 사용자에게 제시되기 위해 사용자 컴퓨팅 시스템(110)에 공급되거나 전송될 수 있다.
블록(220)에서, 응답 생성기(138)는 하나 이상의 지식 소스들로부터 획득된 데이터에 적어도 부분적으로 기초하여 질의 응답을 생성한다. 일부 실시예들에서, 응답 생성기(138)는 현재 세션 동안 및/또는 비디오 게임(112) 또는 컴패니언 애플리케이션(106)과 인터랙트하는 이전 세션들 동안 사용자에 의해 만들어진 이전 발화들에 적어도 부분적으로 기초하여 질의 응답을 생성할 수 있다. 예를 들어, 질의 응답이 게임-관련 유머(game-related humor)를 포함할 때 사용자가 더 긴 참여의 히스토리를 갖는다면, 응답 생성기(128)는 질의 응답을 생성할 때 게임-관련 유머를 포함할 수 있다. 또한, 명령들 또는 문장들에 대한 응답들은 사용자-감지 선호도(user-detected preferences)를 기반으로 커스터마이징(customized) 될 수 있다. 일부 실시예들에서, 사용자는 응답 선호도(response preferences)를 지정할 수 있다. 질의 응답 생성 프로세스들의 하나의 비-제한적인 예시는 도 4와 관련하여 후술된다.
블록(222)에서, 사용자 인터페이스 시스템(126)은 질의 응답을 출력한다. 질의 응답을 출력하는 단계는, 질의 응답을 사용자에게 출력할 수 있는, 사용자 컴퓨팅 시스템(110)에 질의 응답을 전송하는 단계를 포함할 수 있다. 일부 경우들에서, 질의 응답은 오디오로서 출력된다. 대안적으로, 또는 추가적으로, 질의 응답은 비디오 또는 이미지로서 출력될 수 있다. 그러나, 본 개시는 질의 응답에 생성될 수 있는 출력의 유형에 제한되지 않는다. 예를 들어, 일부 경우들에서, 질의 응답은 사용자 컴퓨팅 시스템(110) 또는 관련된 게임 패드가 진동하도록 유발하는 것과 같은, 물리적 응답으로서 출력될 수 있다. 일부 실시예들에서, 질의 응답은 응답 생성기(138)에 의해 디스패치 시스템(116)에 제공될 수 있으며, 이는 사용자에게 제시하기 위해, 컴패니언 애플리케이션(106) 또는 비디오 게임(112)에 응답을 제공할 수 있다.
결정 블록(208)에서 발화가 문장인 것으로 결정되면, 참여 시스템(140)은 블록(224)에서 하나 이상의 예측 모델들에 문장을 적용한다. 일부 실시예들에서, 문장은 하나 이상의 예측 모델들에 다른 문장들과 함께 집합적으로(in aggregate) 적용될 수 있다. 문장들은 예측 모델들에 문장들의 토너 감정(toner sentiment)에 대응하는 집합된 스코어를 공급할 때 문장들의 감정 또는 톤을 비교하여 집합될 수 있다. 또한, 일부 실시예들에서, 블록(224)은 하나 이상의 예측 모델들에 하나 이상의 질의들을 적용하는 단계를 포함할 수 있다.
블록(226)에서, 응답 생성기(138)는 하나 이상의 예측 모델들에 문장을 적용한 결과에 기초하여 액션을 결정한다. 일부 실시예들에서, 하나 이상의 예측 모델들은 액션을 출력으로서 제공한다. 다른 실시예들에서, 하나 이상의 잠재적인 액션들이 입력으로서 예측 모델에 공급되고, 예측 모델은 응답 옵션(response option)에 대한 참여 스코어를 출력한다. 응답 생성기(138)는 하나 이상의 잠재적 액션들에 대해 생성된 참여 스코어들에 기초하여 액션 또는 응답 옵션을 선택할 수 있다. 일부 실시예들에서, 하나의 잠재적 액션은 어떠한 액션도 취하지 않을 수 있다. 취할 액션들의 다른 비-제한적인 예시들은 비디오 게임(112)의 난이도(difficulty level) 조정하기, 다른 구성 요소 또는 상대방의 유형 선택하기, 질의 또는 명령문에 응답하여 공급되는 응답들에 다소간의 농담들을 도입하기, 사용자와의 더 짧거나 더 긴 대화들을 하기, 또는 사용자의 참여 스코어를 수정할 수 있는 액션의 임의의 다른 유형을 포함할 수 있다.
블록(228)에서, 응답 생성기(138)는 블록(226)에서 결정된 액션을 실행한다. 전술한 바와 같이, 액션은 어떠한 액션도 취하지 않는 것을 포함할 수 있다. 다시 말해, 일부 경우들에서, 문장들은 액션이 수행되지 않을 수도 있다. 그러한 경우들에서, 블록(228)은 생략될 수 있다. 일부 경우들에서, 액션을 실행하는 단계는 비디오 게임(112)의 난이도를 조정하는 것과 같이, 비디오 게임(112)의 상태를 조정하는 단계를 포함할 수 있다. 추가적으로, 또는 대안적으로, 액션을 실행하는 단계는, 예를 들어, 사용자에 의해 만들어진 하나 이상의 문장들과 관련된 오디오를 출력함으로써 사용자와 대화하는 단계를 포함할 수 있다. 예를 들어, 사용자가 비디오 게임(112)에서 보스(boss)와 좌절하고 있음을 나타내는 다수의 문장들을 만드는(makes) 경우, 응답 생성기(138)는 사용자에게 말하는 오디오 출력을 생성할 수 있다: "와우! 너는 위대한 일을 하고 있어. 다음 번에 보스를 이길거야." 응답 생성기(138)는 예측 모델이 그러한 출력이 사용자의 참여 레벨을 증가시킬 가능성이 있다고 나타내는 경우 오디오 출력을 생성할 수 있다. 대안적으로, 또는 추가적으로, 비디오 게임(112)의 난이도에 대한 조정이 사용자의 참여 레벨을 증가시킬 가능성이 있다는 것을 예측 모델이 나타낼 경우, 응답 생성기(138)는 보스가 패배하기 쉽게 만들기 위해 비디오 게임(112)의 상태를 조정할 수 있다.
블록(202)에서 수신된 발화들은 비디오 게임(112)과 인터랙트하는 것에 관련된 또는 비디오 게임(112)에 관련된 발화의 임의의 유형을 포함할 수 있다. 앞서 설명한 바와 같이, 발화들은 비디오 게임(112)의 게임 상태를 조정할 수 있는 명령들, 비디오 게임(112)에 대한 정보를 요청하는 질의들, 또는 비디오 게임(112)에 관련된 문장들일 수 있다. 컴패니언 애플리케이션(106)을 사용하여 사용자에 의해 언급될 수 있는 비디오 게임(112)과 관련된 발화들의 일부 비-제한적인 예시들은 하기 표 1에 열거된다(listed). 표 1의 제1 열은 발화들의 잠재적 주제들을 열거한다. 표 1의 제2 열은 1열의 각 주제에 대한 잠재적 발화들을 열거한다.
주제 | 발화 |
클럽/스쿼드/팀(Club/Squad/team) | 내 클럽(스쿼드)은 어때? 내 클럽 설명 내 클럽에 (아이템들, 플레이어들, 자산들, 등)이 얼마나 있어? 내 클럽을 어떻게 향상시킬 수 있어? 내 스쿼드에 가장 잘 어울리는 것은? 내 클럽을 재편성 해? 내 스쿼드의 케미스트리(Chemistry of my squad)? 최고의 팀 스쿼드? 내 팀을 향상시키 데 드는 비용? 소모할 수 있는 (건강 부스트, 계약 부스트, 무기 부스트)로 내 플레이어들을 부스트(Boost my players with consumables (health boost, contract boost, weapon boost))? |
액션/이적(Auction/Transfer) | XXX에 대한 이적 검색.그 플레이어가 옥션 하우스에서 얼마 하고 있는지 나에게 말해줘. 이적 시장(transfer market.) 검색. 이적 시장에서 최고의 플레이어들. XXX 가격 범위에서의 아이템들. 지정된 속성들(스타일, 위치, 기원(origin), 품질, 등)을 구비한 아이템들. 지금 구입할 수 있는 아이템들. XXX 아이템에 대한 입찰해줘. 내 아이템들에 대한 새 입찰을 나에게 업데이트 해줘. 이적 대상 배치. 미판매 아이템들을 재상장(Relist). 판매된 아이템들 제거. 지금 구입해(Buy now). |
팁/추천(Tips/Recommendations) | 나에게 팁 좀 줘.향상시킬 팁. 더 나은 팁. 매치 연습. 추천된 지도. 상점으로부터 추천된 아이템들. 내 팀을 최적화하기 위해 어떤 플레이어를 획득해야하는지 나에게 말해줘. XXX을 하는 가장 좋은 방법은 무엇이야? 다음에 내가 어떤 게임을 플레이 해야하지? 나를 위해 게임을 추천해줘? |
상점(Store) | 어떤 팩(packs)이 이용 가능하지?XXX의 가치는 무엇이야? 상점으로부터 금/은/청동/등 팩(gold/silver/bronze/etc. pack)을 구입해. 시장에서의 모든 아이템들을 열거해. |
명령(Commands) | 어떤 미션들이 이용 가능하지? 내 팀을 X에게 보내줘.건강 팩을 구입하고 플레이어 X에게 적용해. 플레이어 X에게 더 가까이 오라고 말해. 방어/공격/등 배열을 취해(Assume). |
사용자 피드백(User Feedback) | 내 피드백은 XXX이야.나는 X를 추가해야 한다고 생각해. 나는 X를 좋아하지 않았어. X 기능을 제거해. 기능 X 추가 지도에는 더 많은 X가 필요해. |
플레이어 상태(Player Stats) | 얼마나 많은 목표(goals)가 있어?얼마나 많은 시간을 플레이했어? 내 리더보드 위치(My leaderboard position)? 리더 보드에서의 내 친구 위치? 내가 얼마나 많은 킬(kills)을 해야 하지? 내가 얼마나 많은 킬을 했어? 킬의 횟수는 얼마야? 내 킬 죽음 비율(My kill death ratio)? 내 킬 죽음 비율은 얼마야? 내가 가장 많이 플레이한 게임은 무엇이지? 플레이된 게임? {날짜} 이후에 플레이된 게임? {날짜}에 플레이된 게임? {날짜} 이후에 무엇이 플레이되었지? {날짜}에 내가 무엇을 플레이 했지? {날짜}에서 내가 무엇을 플레이 했지? {날짜} 이후에 어떤 게임을 플레이 했지? {날짜}에 어떤 게임을 플레이 했지? {날짜} 이후에 어떤 게임을 플레이 했지? 내가 {게임}을 얼마나 했어? 얼마나 많이 {게임}을 플레이하나? 내가 {게임}을 해본 적 있나? {날짜} 이후에 내가 {게임}을 플레이 한적 있나? 내가 {게임}을 플레이한 마지막 시간은 언제지? 내가 언제 {게임}을 마지막으로 했지? 내가 {게임}을 플레이한 마지막 시간? {게임}의 마지막 플레이 날짜? 플레이된 마지막 시간? 플레이된 마지막 게임? |
소셜(Social) | 내 이름은 {이름}이다.내 친구 XXX에게 요청해. 내 친구들 중 온라인? 내 친구 XXX에게 메시지해. 내 친구에게 도전해. 임의의 친구에게 선물 보내. |
뉴스(News) | {게임}에서의 뉴스는 무엇?{게임}에 대한 뉴스를 나에게 줘. {게임}에서의 가장 최신 뉴스는 무엇이지? 언제 새로운 기능이 출시될지? |
표 1의 예시들로부터 볼 수 있듯이, 발화들은 문법적으로 올바르지 않을 수 있다. 또한, 질의인 발화들은 문장들 또는 명령들로서 말해질 수 있다. 따라서, 특정 실시예들에서, 디스패치 시스템(116)은 자연어 프로세싱(natural language processing) 및 기계 학습 알고리즘의 조합을 사용하여 발화의 인텐트(intent)를 결정하여 발화의 의미를 결정할 수 있다. 또한, 대화 관리자(128)는 발화의 의미를 유도하기 위해 발화를 수용 가능한 발화들의 목록 및 히스토리컬 발화들과 비교할 수 있다. 일부 실시예들에서, 발화가 모호할 때와 같이, 대화 관리자(128)는 사용자가 발화의 대화 관리자(128)의 식별과 사용자의 발화가 일치(matches)하는지를 사용자가 확인하는 것을 요구할 수 있다. 일부 실시예들에서, 대화 관리자(128)는 대화 관리자(128)의 히스토리컬 사용에 기초하여 발화에 대한 가장 가능성 있는 의미를 선택할 수 있다.
명령 실행 프로세스 예시
도 3은 명령 실행 프로세스(300)의 일 실시예의 흐름도를 나타낸다. 프로세스(300)는 사용자로부터 수신된 발화에 응답하여 비디오 게임(112)에서 명령을 실행할 수 있는 임의의 시스템에 의해 구현될 수 있다. 전체적으로 또는 부분적으로, 프로세스(300)는, 예를 들어, 그 중에서도, 오디오 캡처 시스템(102), 컴패니언 애플리케이션(106), 인터랙티브 컴퓨팅 환경(101), 디스패치 시스템(116), 명령 관리자(120), 또는 명령 실행 시스템(122)에 의해 구현될 수 있다. 전체적으로 또는 부분적으로, 시스템들의 임의의 수는 프로세스(300)을 구현할 수 있지만, 논의를 단순화하기 위해, 프로세스(300)는 특정 시스템들과 관련하여 설명될 것이다. 또한, 프로세스(300)는 명령이 블록(212)의 작동들의 부분으로서 실행될 때마다 수행될 수 있다.
프로세스(300)는 명령 관리자(120)가 수신된 발화에 적어도 부분적으로 기초하여 식별된 명령에 대응하는 비디오 게임(112)을 식별하는 블록(302)에서 시작한다. 일부 경우들에서, 비디오 게임(112)은 수신된 발화에 적어도 부분적으로 기초하여 식별될 수 있다. 다른 경우들에서, 비디오 게임(112)은 컴패니언 애플리케이션(106)에 의해 식별될 수 있다. 비디오 게임(112)은 또한 사용자 로그인과 같은, 사용자 계정 정보에 기초하여 식별될 수 있다. 일부 경우들에서, 사용자 로그인은 게임 서비스와 관련될 수 있고, 따라서 특정 비디오 게임에 특정되지 않을 수 있다. 이러한 경우들에서, 비디오 게임(112)을 식별하기 위해 사용자의 게임 계정과 관련된 스크린이름(screenname)과 같은 추가 정보가 요구될 수 있다. 사용자는 일부 경우들에서 비디오 게임을 구두로 또는 컴패니언 애플리케이션(106)의 사용자 인터페이스와 인터랙트 함으로써 지정할 수 있다. 다른 경우들에서, 컴패니언 애플리케이션(106)은 특정 비디오 게임(112)에 특정될 수 있으며, 따라서 비디오 게임(112)은 컴패니언 애플리케이션(106)과의 사용자의 인터랙션에 기초하여 본질적으로 또는 자동으로 식별될 수 있다. 일부 경우들에서, 발화는 비디오 게임(112)에 의해 수신되고, 따라서 비디오 게임(112)은 자체 식별한다.
블록(304)에서, 명령 관리자(120)는 명령에 대응하는 게임 계정을 식별한다. 게임 계정은 비디오 게임(112), 사용자, 비디오 게임(112)의 사용자에 의해 플레이되는 캐릭터, 또는 비디오 게임(112)에서의 저장-파일 또는 게임-프로파일에 특정될 수 있다. 일부 경우들에서, 게임 계정은 게임 애플리케이션과 관련된 게임 계정 정보를 포함할 수 있다. 예를 들어, 게임 계정 정보는 사용자 계정 정보(사용자이름, 디스플레이 이름, 이메일 도메인(email domains), 생년월일, 보안 질문에 대한 답변과 같은), 사용자 인증 정보(사용자이름 및 패스워드와 같은), 게임 프로파일 정보(예를 들어, 여러 게임-내 사용자 프로파일의 설정들과 같은), 게임 파일 저장, 게임-내 캐릭터들과 관련된 특성들(예를 들어, 캐릭터 장비, 캐릭터 레벨, 업적 등과 같은), 또는 다른 정보를 저장할 수 있다. 게임 계정은 발화를 말한 사용자와 관련된 계정을 포함할 수 있다. 일부 경우들에서, 발화는 게임 계정의 아이덴티티를 포함할 수 있다. 다른 경우들에서, 게임 계정은 발화를 수신하기 전에 발생하는 컴패니언 애플리케이션(106) 또는 비디오 게임(112)에 대한 사용자 로그인에 기초하여 식별될 수 있다.
블록(306)에서, 명령 실행 시스템(122)은 게임 계정에서의 비디오 게임(112)과 관련된 호스트 시스템을 결정한다. 호스트 시스템은 비디오 게임(112)의 적어도 일부분을 실행하도록 구성된 애플리케이션 호스트 시스템(124)을 포함할 수 있다. 일부 경우들에서, 호스트 시스템은 비디오 게임(112)의 적어도 일부분을 실행하도록 구성된 사용자 컴퓨팅 시스템(108)일 수 있다. 블록(306)은 비디오 게임(112)을 호스팅하도록 구성된 복수의 애플리케이션 호스트 시스템들(124)을 식별하는 단계를 포함할 수 있다. 특정 애플리케이션 호스트 시스템(124)은 발화를 제공한 사용자와 관련된 게임 계정에 적어도 부분적으로 기초하여 복수의 애플리케이션 호스트 시스템들(124)로부터 선택될 수 있다.
일부 실시예들에서, 블록(306)에서 식별된 시스템은 비디오 게임 자체보다는 비디오 게임의 지원 구성 요소(supporting component)를 호스팅한다. 예를 들어, 명령이 비디오 게임(112)과 관련된 옥션 하우스에서의 거래와 관련이 있는 경우, 블록(306)에서 식별된 시스템은 비디오 게임(112)에 대응하는 영속성 유니버스(persistent universe)의 하나 이상의 인스턴스에 대해 옥션 하우스를 호스팅하는 단계에 쓰이는(dedicated) 애플리케이션 호스트 시스템일 수 있다.
블록(308)에서, 명령 실행 시스템(122)은 애플리케이션 호스트 시스템(124)에서 블록(304)에서 식별된 게임 계정을 로드한다. 게임 계정을 로드하는 단계는 사용자와 관련된 비디오 게임(112) 또는 특정 저장 게임을 로드하는 단계를 포함할 수 있다. 또한, 게임 계정을 로드하는 단계는 사용자의 비디오 게임(112)의 플레이와 관련된 특정 상태로 비디오 게임(112)을 되돌리거나(reverting) 설정하는 단계를 포함할 수 있다. 비디오 게임(112)의 특정 상태는 비디오 게임(112)의 사용자의 가장 최근의 플레이 세션에 대응할 수 있다. 일부 경우들에서, 예를 들어, 비디오 게임(112)이 다른 사용자들에 의해 인터랙트되는 영속성의 세계(persistent world)를 포함하기 때문에, 비디오 게임(112)은 사용자의 가장 최근의 플레이 세션 이후에 변경될 수 있다. 이러한 일부 경우들에서, 게임 계정을 로드하는 단계는 비디오 게임(112)의 특정 부분에 대하여 사용자와 관련된 플레이 가능한 캐릭터를 로드하는 단계를 포함할 수 있다.
일부 실시예들에서, 게임 계정을 로드하는 단계는 사용자를 대신하여 애플리케이션 호스트 시스템(124)과 인터랙트 하도록 구성된 헤드리스 클라이언트를 인스턴스화하는 단계를 포함할 수 있다. 일부 경우들에서, 헤드리스 클라이언트는 애플리케이션 호스트 시스템에서 비디오 게임(112)과 인터랙트하도록 구성될 수 있다. 또한, 블록(308)은 비디오 게임(112) 또는 비디오 게임(112)의 일부분을 실행하는 단계를 포함할 수 있다. 비디오 게임(112)을 실행하는 단계는 비디오 게임(112)이 사용자의 게임 계정에 적어도 부분적으로 기초하여 식별되는 비디오 게임(112) 내의 사용자의 진행(user's progress)에 대응하는 상태와 같은, 특정 상태(particular state)에 도달하게 유발하는 단계를 포함할 수 있다. 한다.
일부 실시예들에서, 블록(308)은 애플리케이션 호스트 시스템(124)에서 비디오 게임(112)의 인스턴스에 로그인하는데 사용될 수 있는 사용자 자격 증명(user credentials)을 수신하는 단계를 포함할 수 있다. 사용자 자격 증명은 사용자 컴퓨팅 시스템(108) 또는 사용자 컴퓨팅 시스템(110)으로부터 수신될 수 있다. 일부 경우들에서, 컴패니언 애플리케이션(106)의 사용자 계정은 애플리케이션 호스트 시스템(124)에서 비디오 게임(112)의 사용자의 계정과 쌍을 이룬다. 일부 이러한 경우들에서, 컴패니언 애플리케이션(106)이 비디오 게임(112)에 사용자 자격 증명을 자동으로 제공할 수 있기 때문에 사용자가 사용자 자격 증명을 비디오 게임(112)에 공급하는 것이 필요할 수 있다.
블록(310)에서, 명령 실행 시스템(122)은 블록(304)에서 식별된 게임 계정에 대응하는 사용자를 대신하여 명령을 실행한다. 명령을 실행하는 단계는 하나 이상의 어플리케이션 프로그래머 인터페이스(application programmer interface)(API) 호출들을 만드는 단계를 포함할 수 있다. 일부 실시예들에서, 예를 들어, 비디오 게임(112)의 현재 상태가 명령을 실행하기 위해 필요한 조건들을 만족시키지 않기 때문에, 명령은 식별되지 않거나 명령을 실행할 수 없을 수도 있다. 이러한 일부 경우들에서, 요청된 명령은 로그 저장소(136)에 로그될 수 있다. 일부 실시예들에서, 명령은 비디오 게임(112)이 명령을 실행하기 위해 필요한 조건들을 만족하는 미래 시점에서 실행될 수 있다.
블록(312)에서, 명령 실행 시스템(122)은 명령의 실행과 관련된 확인 메시지(confirmation message)를 생성한다. 확인 메시지는 명령이 성공적으로 실행되었음을 나타낼 수 있다. 대안적으로, 또는 추가적으로, 확인 메시지는 명령의 결과를 나타낼 수 있다. 예를 들어, 명령이 옥션 하우스에서 하나의 갑옷(armor)을 판매하는 것이라면, 확인 메시지는 옥션 하우스의 판매 완료시 하나의 갑옷에 대해 획득된 가격을 나타낼 수 있다. 또한, 확인 메시지는 명령을 실행한 결과로서 비디오 게임(112)에 대한 임의의 상태 변화들을 나타낼 수 있다.
확인 메시지는 컴패니언 애플리케이션(106)에 제공될 수 있다. 컴패니언 애플리케이션(106)은 확인 메시지가 사용자 컴퓨팅 시스템(110)의 스피커들을 사용하여 및/또는 사용자 컴퓨팅 시스템(110)의 디스플레이에 사용자를 출력되도록 유발할 수 있다. 명령이 실행에 실패하면, 확인 메시지는 명령이 실행되었음(command felt execute)을 나타낼 수 있으며, 일부 경우들에서, 실패의 원인을 제시하고 명령을 실행할 수 있다.
참여-기반 발화 응답 프로세스 예시
도 4는 참여-기반 발화 응답 선택 프로세스(an engagement-based utterance response selection process)(400)의 일 실시예의 흐름도를 나타낸다. 프로세스(400)는 발화에 대한 응답을 생성할 수 있는 임의의 시스템에 의해 구현될 수 있다. 프로세스(400)는, 전체적으로 또는 부분적으로, 예를 들어, 그 중에서도, 오디오 캡처 시스템(102), 컴패니언 애플리케이션(106), 인터랙티브 컴퓨팅 환경(101), 디스패치 시스템(116), 명령 관리자(120), 대화 관리자(128), 응답 생성기(138), 또는 명령 실행 시스템(122)에 의해 구현될 수 있다. 임의의 수의 시스템들이, 전체적으로 또는 부분적으로, 프로세스(400)를 구현할 수 있지만, 논의를 단순화하기 위해, 프로세스(400)는 특정 시스템들에 대해 설명될 것이다. 또한, 프로세스(400)는 질의 응답이 블록(220)의 작동들의 일부로서 생성될 때마다 수행될 수 있다. 일부 실시예들에서, 프로세스(400)는 문장을 프로세싱하거나 발화에 의해 참조된 명령을 실행하기 위한 프로세스의 부분으로서 수행될 수 있다.
프로세스(400)는 인텐트 관리자(132)가 사용자 컴퓨팅 장치(110)로부터 수신된 발화를 수신하는 블록(402)에서 시작한다. 블록(404)에서 인텐트 관리자는 발화의 특징들을 결정한다. 발화의 특징들은 발화의 톤 및/또는 발화의 감정을 포함할 수 있다. 발화의 특징들을 결정하기 위해, 인텐트 관리자는 감정 분석 및/또는 하나 이상의 다른 자연어 프로세싱 알고리즘을 수행할 수 있다. 또한, 일부 실시예들에서, 발화의 특징들을 결정하는 단계는 발화가 높은 피치 또는 낮은 피치인지 여부를 결정하는 단계를 포함할 수 있으며, 이는 사용자가 흥분하는지 여부를 나타낼 수 있다.
블록(406)에서, 참여 시스템(140)은 발화를 말한 사용자에 대한 사용자 인터랙션 데이터에 액세스한다. 이 사용자 인터랙션 데이터는 사용자 데이터 저장소(148)에 저장될 수 있다. 사용자 인터랙션 데이터는 비디오 게임(112)에 관한 사용자에 의해 만들어진 과거 발화들의 히스토리 또는 사용자에 의해 컴패니언 애플리케이션(106)에 제공된 과거 발화들을 포함할 수 있다.
블록(408)에서, 응답 생성기(138)는 블록(402)에서 수신된 발화에 대한 복수의 잠재적 응답을 결정한다. 발화에 대한 복수의 잠재적 응답은, 비디오 게임 저장소(147) 또는 뉴스 서비스(143)과 같은, 하나 이상의 지식 소스들로부터의 질의 결정에 대한 응답에 적어도 부분적으로 기초할 수 있다. 대안적으로 또는 부가적으로, 발화에 대한 복수의 잠재적 응답들은 사용자에 의해 만들어진 하나 이상의 문장들에 기초할 수 있다.
일부 경우들에서, 복수의 응답들의 각각은 동일하거나 유사한 정보를 포함할 수 있다. 그러나, 복수의 잠재적 응답들의 각각은 정보를 다르게 나타낼 수 있다. 예를 들어, 복수의 잠재적 응답들의 각각은 상이한 톤 또는 상이한 응답의 길이를 가질 수 있다. 다른 예시로서, 복수의 잠재적 응답들 중 일부는 하나 이상의 농담들을 포함할 수 있는 반면 다른 잠재적 응답들은 농담을 포함하지 않을 수 있다. 일부 경우들에서, 발화에 대한 복수의 응답들 중 일부는 상이한 정보를 포함할 수 있다. 예를 들어, 일부 응답들은 다른 잠재적 응답들의 일부에서 사용자의 질의에 응답하는 보다 자세한 정보를 포함할 수 있다.
예측 모델을 사용하여, 참여 시스템(140)은 복수의 응답들의 각각에 대한 참여 스코어를 결정한다. 참여 스코어는 블록(404)에서 결정된 발화의 특징들 및/또는 블록(406)에서 획득된 사용자에 대한 사용자 인터랙션 데이터에 적어도 부분적으로 기초하여 결정될 수 있다. 일부 경우들에서, 발화에 대한 잠재적 응답과 함께, 사용자 인터랙션 데이터 및/또는 발화의 특징들은 발화 그 자체와 함께 예측 모델에 공급될 수 있다. 생성된 참여 스코어는 발화에 대한 특정 응답이 사용자에게 출력되는 경우 사용자에게 가능성이 있는 참여의 레벨을 나타낼 수 있다. 예를 들어, 참여 스코어가 80인 발화에 대한 응답은 참여 스코어가 20인 발화에 대한 응답 보다 계속해서 컴패니언 애플리케이션(106) 및/또는 비디오 게임(112)과 인터랙트 하고 참여할 가능성이 높다는 것을 나타낼 수 있다.
블록(412)에서, 응답 생성기(138)는 복수의 응답들의 각각에 대한 참여 스코어에 기초한 복수의 응답들로부터 발화에 대한 응답을 선택한다. 발화에 대한 응답은 질의 응답으로서 출력될 수 있다. 대안적으로, 또는 부가적으로, 발화에 대한 응답은 사용자에 의해 만들어진 하나 이상의 문장 발화들에 기초할 수 있다.
일부 경우들에서, 발화 응답은 사용자에 의해 언급된 명령에 응답할 수 있다. 예를 들어, 사용자는 축구 비디오 게임(112)에서 사용자의 축구 팀의 플레이어들의 스쿼드(squad of players)를 재구성하는 명령을 발화(utter)할 수 있다. 복수의 잠재적 응답들은 축구 팀이 재구성되었음을 나타내는 짧은 문장(short statement), 축구 팀이 재구성되었음을 나타내고 농담을 포함하는 더 긴 문장(longer statement), 또는 축구 팀의 재구성을 확인하고 재구성된 축구 팀이 다음 매치의 결과에 영향을 줄 가능성이 있는 방법에 대한 정보를 제공하는 더 긴 문장을 포함할 수 있다. 명령에 대한 상이한 잠재적 응답에 대한 생성된 참여 스코어에 기초하여, 응답 생성기(138)는 짧은 문장, 농담을 구비한 더 긴 문장, 또는 사용자의 축구 팀에 관한 추가 세부 사항을 구비한 더 긴 문장을 출력할지 여부를 결정할 수 있다.
예측 모델 생성 프로세스 예시
도 5는 예측 모델 생성 프로세스의 일 실시예의 흐름도를 나타낸다. 프로세스(500)는 하나 이상의 파라미터들을 포함하는 하나 이상의 파라미터 함수들 또는 예측 모델들을 생성할 수 있는 임의의 시스템에 의해 구현될 수 있다. 일부 경우들에서, 프로세스(500)는 히스토리컬 데이터 또는 다른 공지된 데이터에 기초하여 하나 이상의 파라미터 함수들 또는 예측 모델들을 개발하기 위한 트레이닝 프로세스로서 역할을 한다. 프로세스(500)는, 전체적으로 또는 부분적으로, 예를 들어, 그 중에서도, 인터랙티브 컴퓨팅 환경(101), 참여 시스템(140), 모델 생성 시스템(146), 또는 사용자 컴퓨팅 시스템(110)에 의해 구현될 수 있다. 임의의 수의 시스템들이, 전체적으로 또는 부분적으로, 프로세스(500)를 구현할 수 있지만, 논의를 단순화하기 위해, 프로세스(500)는 특정 시스템들에 대해 설명될 것이다. 또한, 프로세스(500)는 시간이 지남에 따라 반복적으로 업데이트되거나 수행될 수 있음을 이해해야 한다. 예를 들어, 프로세스(500)는 새로운 비디오 게임의 추가 또는 출시(release)로, 또는 비디오 게임(112)을 플레이 하는 사람 또는 분석을 위해 이용 가능한 새로운 사용자들의 임계 수의 추가로 월 1 회 반복될 수 있다. 그러나, 프로세스(500)는 더 많거나 더 적게(more or less) 종종 수행될 수 있다.
프로세스(500)는 모델 생성 시스템(146)이 비디오 게임(112)의 다수의 사용자들에 대한 사용자 인터랙션 데이터를 포함하는 히스토리컬 데이터(152)를 수신하는 블록(502)에서 시작한다. 사용자 인터랙션 데이터는 컴패니언 애플리케이션(106) 또는 비디오 게임(112)을 통해 사용자로부터 수신된 발화들을 포함할 수 있다. 이 히스토리컬 데이터(152)는 모델 생성 시스템(146)에 대한 트레이닝 데이터로서 기능할 수 있고 연령, 지리적 위치, 성별 또는 사회 경제적 분류와 같은, 사용자 인구통계학적 또는 특성들을 더 포함할 수 있다. 대안으로, 또는 부가적으로, 히스토리컬 데이터(152)는 하나 이상의 사용자들의 플레이 스타일(play style)에 관한 정보; 비디오 게임(112)을 플레이하는데 소비된 돈의 양; 비디오 게임(112)에 관한 사용자 성공 또는 실패 정보(예를 들어, 사용자 승률); 비디오 게임(112)을 플레이하는 플레이 빈도; 특정 선택 게임 요소들(예를 들어, 사용 가능한 부스트들(boosts), 레벨 스킵들(level skips), 게임-내 힌트들(in-game hints), 파워 업들(power ups) 등)을 사용하는 빈도; 비디오 게임(112)에 대한 게임-내 아이템들을 구매하는데 소비된 실제 돈의 양(예를 들어, 미국 달러 또는 유럽 유로); 기타 등등을 포함할 수 있다. 또한, 히스토리컬 데이터(152)는 다수의 사용자들로부터 사용자와 비디오 게임(112)을 플레이 한 하나 이상의 다른 사용자들에 관한 데이터를 포함할 수 있다. 일부 경우들에서, 히스토리컬 데이터(152)는 사용자 인터랙션 데이터 및 사용자의 다수 세트들(multiple sets)에 대한 다른 사용자 또는 비디오 게임 관련 데이터를 포함할 수 있으며, 여기서 각 세트는 상대방, 팀원 또는 둘 모두 함께 비디오 게임의 멀티플레이어 인스턴스를 플레이하는 사용자들의 그룹을 포함한다. 사용자 또는 비디오 게임 데이터는 상술한 데이터뿐만 아니라, 비디오 게임(112)에 관한 각각의 사용자에 대한 기술 정보 및/또는 비디오 게임(112)에서 수행될 수 있는 하나 이상의 액션들 및/또는 비디오 게임(112)의 하나 이상의 요소들(레벨들 또는 장애물들과 같은)을 포함할 수 있다. 또한, 데이터는 게임-내 캐릭터 선택 환경 설정, 역할 환경 설정, 및 다른 사용자들의 플레이 스타일, 선호도 또는 기술들을 구별하는데 사용될 수 있는 다른 정보를 포함할 수 있다.
블록(504)에서, 모델 생성 시스템(146)은 히스토리컬 데이터(152)에 대응하는 원하는 예측 기준(desired prediction criteria)을 나타내는 제어 데이터(156)를 수신한다. 이 제어 데이터(156)는 모델 생성 시스템(146)이 모델을 결정하기 위한 하나 이상의 특징들 또는 특성들을 나타낼 수 있다. 대안으로 또는 부가적으로, 제어 데이터(156)는 수신된 히스토리컬 데이터(152)와 관련된 특징들 또는 특성들에 대한 값을 포함할 수 있다. 예를 들어, 제어 데이터(156)는, 모델 생성 시스템(146)에 의해 생성될 모델에 의해 예측될 원하는 특징으로서, 참여 레벨, 해지율 또는 유지율을 식별할 수 있다. 참여 레벨은 사용자가 비디오 게임(112)을 얼마나 오래 플레이 할 것인지, 또는 특정 기간 내에 비디오 게임(112)의 추가 게임 세션들을 얼마나 플레이 할 것인지를 나타낼 수 있다. 해지율 또는 보유율은 비디오 게임(112)의 플레이를 중단하는 히스토리컬 데이터(152)와 연관된 사용자들의 백분율에 대응할 수 있다. 또한, 제어 데이터(156)는 히스토리컬 데이터와 관련된 유지율을 식별할 수 있다. 예를 들어, 제어 데이터(156)는 히스토리컬 데이터(152)에 포함되는 데이터를 가진 사용자들의 특정(certain of the users)에 대해 유지율이 60%임을 나타낼 수 있다. 일부 실시예들에서, 제어 데이터(156)는 모델 생성 시스템(146)에 의해 생성될 모델에 의해 예측되는 다수의 특성들 또는 특징들을 포함할 수 있다. 예를 들어, 제어 데이터(156)는, 데이터가 히스토리컬 데이터(152)로서 제공되었던 사용자들에 대해, 두 유지율 및 유지율에 대한 이유(임계 기술 델타(threshold skill delta) 보다 많이 발산하는(diverging) 상대방들의 기술 레벨, 또는 경기가 완료되기 전에 비디오 게임(112)의 인스턴스를 종료하는 팀원들 및/또는 상대방들의 임계 백분율 보다 높은 것과 같은), 또는 데이터가 히스토리컬 데이터(152)로서 제공되었던 사용자들에 의해 소비된 평균 화폐 양 및 유지율을 식별할 수 있다.
블록(506)에서, 모델 생성 시스템(146)은 히스토리컬 데이터(152) 및 제어 데이터(156)에 기초하여 하나 이상의 예측 모델들(160)을 생성한다. 예측 모델들(160)은, 일부 경우들에서, 제어 데이터(156) 및 히스토리컬 데이터(152)에 기초하여 예측 모델(160)을 생성하는 모델 생성 규칙세트(170) 또는 수학적 알고리즘을 사용하여 조합될 수 있는 하나 이상의 변수들 또는 파라미터들(162)을 포함할 수 있다. 또한, 특정 실시예들에서, 블록(506)은 하나 이상의 피드백 데이터(154)를 적용하는 단계를 포함할 수 있다. 예를 들어, 예측 모델(160)이 감독 기계 학습 프로세스의 부분으로서 생성되는 경우, 사용자(예를 들어, 관리자)는 예측 모델 (160)이 생성 될 때 및/또는 예측 모델(160) 생성 프로세스를 정제하도록 모델 생성 시스템 (146)에 하나 이상의 입력들을 제공할 수 있다. 예를 들어, 사용자는 특정 지역 또는 지리적 영역에 정전(power outage)이 있음을 알고 있을 수 있다. 그러한 경우에, 사용자는 정전 동안 영향받은 지리적 지역으로부터의 사용자들에 대응할 수 있는 히스토리컬 데이터(152)의 부분의 가중치를 감소시키기 위해 피드백 데이터(154)를 공급할 수 있다. 또한, 일부 경우들에서, 변수들 또는 파라미터들 중 하나 이상은, 예를 들어, 가중치들(164)을 사용하여 가중될 수 있다. 변수에 대한 가중치의 값은 히스토리컬 데이터(152), 제어 데이터(156) 및/또는 임계 불일치(threshold discrepancy) 내의 만족들, 또는 만족하는 예측 모델(160)을 생성하는데 있어 변수가 갖는 영향에 적어도 부분적으로 기초할 수 있다. 일부 경우들에서, 변수들 및 가중치들의 조합은 예측 모델(160)을 생성하는데 사용될 수 있다.
블록(508)에서, 예측 모델(160)의 정확성 및 선택적으로는, 임의의 관련된 페널티(penalty) 또는 가중치(weighting)에 적어도 부분적으로 기초하여, 모델 생성 시스템(146)은 예측 모델(160)을 선택한다. 일부 실시예들에서, 모델 생성 시스템(146)은 다른 예측 모델(160)에 비해 더 낮은 페널티와 관련된 예측 모델(160)을 선택한다. 그러나, 일부 실시예들에서, 예를 들어 예측 모델(160)의 출력이 더 낮은 페널티와 관련된 예측 모델 보다 더 정확한 임계 정도(threshold degree)이면, 모델 생성 시스템(146)은 더 높은 페널티와 관련된 예측 모델을 선택할 수 있다. 특정 실시예들에서, 블록(508)은 선택적이거나 생략될 수 있다. 예를 들어, 일부 경우들에서, 예측 모델들(160)은 페널티와 관련되지 않을 수 있다. 그러한 일부 경우들에서, 예측 모델은 예측 모델에 의해 생성된 출력의 정확성에 기초하여 복수의 예측 모델들로부터 선택되거나 랜덤으로(random) 선택될 수 있다.
컴퓨팅 시스템의 개요
도 6은 사용자 컴퓨팅 시스템(110)의 일 실시예를 도시하며, 이는 게이밍 시스템(gaming system)으로도 지칭될 수 있다. 또한, 도 6은 사용자 컴퓨팅 시스템(110)에 특정적이지만, 사용자 컴퓨팅 시스템(108)은 동일하거나 유사한 구성을 가질 수 있음을 이해해야 한다. 대안적으로, 사용자 컴퓨팅 시스템(108)은 사용자 컴퓨팅 시스템(110)과 상이한 구성을 가질 수 있다. 도시된 바와 같이, 사용자 컴퓨팅 시스템(110)은 다수의 요소들을 포함할 수 있는 단일 컴퓨팅 장치일 수 있다. 그러나, 일부 경우들에서, 사용자 컴퓨팅 시스템(110)은 다수의 장치들을 포함할 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 중앙 프로세싱 유닛 및 그래픽 프로세싱 유닛을 포함하는 하나의 장치, 디스플레이를 포함하는 다른 장치, 및 키보드 또는 마우스와 같은, 입력 메카니즘을 포함하는 다른 장치를 포함할 수 있다.
사용자 컴퓨팅 시스템(110)은 게임 시스템을 실행할 수 있는 컴퓨팅 시스템의 일 실시예일 수 있다. 도 6의 비-제한적인 예시에서, 사용자 컴퓨팅 시스템(110)은 터치스크린 디스플레이(1002)를 통해 사용자로부터 입력을 수신할 수 있는 터치-가능한 컴퓨팅 장치이다. 그러나, 사용자 컴퓨팅 시스템(110)은 그 자체로 제한되지 않으며 비-터치 가능한 실시예들을 포함할 수 있으며, 이는 터치스크린 디스플레이(602)를 포함하지 않는다.
사용자 컴퓨팅 시스템(110)은 터치스크린 디스플레이(602) 및 터치스크린 인터페이스(604)를 포함하고, 게임 애플리케이션을 실행하도록 구성된다. 이 게임 애플리케이션은 컴패니언 애플리케이션(106), 비디오 게임(112), 또는 비디오 게임 실행 환경 또는 애플리케이션 실행 환경과 같은, 비디오 게임(112) 또는 컴패니언 애플리케이션(106)과 함께 또는 그 지원 하에 실행하는 애플리케이션일 수 있다. 게임 애플리케이션(112)으로 설명되었지만, 일부 실시예들에서 애플리케이션(112)은 언어 소프트웨어 또는 교육 소프트웨어와 같은, 다수의 사용자 컴퓨팅 시스템들에 걸쳐 다수의 사용자들과 인터랙트 할 능력이 있을 수 있는 애플리케이션의 다른 유형일 수 있다. 사용자 컴퓨팅 시스템(110)이 터치스크린 디스플레이(602)를 포함하지만, 터치스크린 디스플레이(602)에 추가하여 또는 대신하여 다양한 입력 장치들이 사용될 수 있다는 것이 인식된다.
사용자 컴퓨팅 시스템(110)은 중앙 프로세싱 유닛들(central processing units)((CPU들), 그래픽 프로세싱 유닛들(graphics processing units)(GPU들), 및 가속 프로세싱 유닛들(accelerated processing units)(APU들)과 같은 하나 이상의 프로세서들을 포함할 수 있다. 또한, 사용자 컴퓨팅 시스템(110)은 하나 이상의 데이터 저장 요소들을 포함할 수 있다. 또한, 사용자 컴퓨팅 시스템(110)은 랜덤-액세스 메모리(RAM)와 같은, 하나 이상의 휘발성 메모리 요소들을 포함할 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 게임 애플리케이션(112) 실행의 목적을 위해 생성된 특수 컴퓨팅 장치일 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 비디오 게임 콘솔일 수 있다. 사용자 컴퓨팅 시스템(110)에 의해 실행되는 게임 애플리케이션들(112)은 특정 애플리케이션 프로그래밍 인터페이스(application programming interface)(API)를 사용하여 생성되거나 사용자 컴퓨팅 시스템(110)에 특정될 수 있는 특정 명령어 세트로 컴파일(compiled) 될 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 게임 애플리케이션들(112) 및 비-게임 애플리케이션들을 실행할 수 있는 범용 컴퓨팅 장치일 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 통합된 터치스크린 디스플레이를 구비한 랩탑 또는 외부 터치스크린 디스플레이를 구비한 데스크탑 컴퓨터일 수 있다. 사용자 컴퓨팅 시스템(110)의 일 예시적인 실시예의 구성 요소들은 도 6과 관련하여 더 상세히 설명된다.
터치스크린 디스플레이(602)는 정전식 터치스크린(capacitive touchscreen), 저항성 터치스크린(resistive touchscreen), 표면 탄성파 터치스크린(surface acoustic wave touchscreen), 또는 사용자로부터, 터치 입력들로도 지칭되는, 촉각 입력들(tactile inputs)을 수신하도록 구성되는 터치스크린 기술의 다른 유형일 수 있다. 예를 들어, 터치 입력들은 스크린을 터치하는 손가락, 스크린을 터치하는 다수의 손가락들, 스타일러스(stylus), 또는 터치스크린 디스플레이(602) 상에 터치 입력을 등록하는데 사용될 수 있는 다른 자극물들(stimuli)을 통해 수신될 수 있다. 터치스크린 인터페이스(604)는 터치 입력을 데이터로 변환하고, 운영 시스템(operating system) 및 게임 애플리케이션(112)과 같은 사용자 컴퓨팅 시스템(110)의 구성 요소들에 의해 해석될 수 있도록 데이터를 출력할 수 있다. 터치스크린 인터페이스(604)는 촉각 터치 입력 터치의 특성들을 터치 입력 데이터로 변환할 수 있다. 터치 입력의 일부 예시적인 특성들은 형상, 크기, 압력, 위치, 방향, 운동량(momentum), 지속 시간 및/또는 다른 특성들을 포함할 수 있다. 터치스크린 인터페이스(604)는 예를 들어 탭(tap)(예를 들어, 단일 위치에서의 터치 및 릴리스) 또는 스와이프(swipe)(예를 들어, 단일 터치 입력에서 터치스크린상의 복수의 위치들을 통한 이동)와 같은, 터치 입력의 유형을 결정하도록 구성될 수 있다. 터치스크린 인터페이스(604)는 동시에 또는 실질적으로 병렬로 발생하는 다수의 터치 입력들과 관련된 터치 입력 데이터를 검출 및 출력하도록 구성될 수 있다. 일부 경우들에서, 동시 터치 입력들은 사용자가 터치스크린 디스플레이(602) 상에서 제1 터치를 유지하는 인스턴스들(instances)을 포함할 수 있으며, 그 후 터치스크린 디스플레이(602) 상에서 제2 터치를 수행할 수 있다. 터치스크린 인터페이스(1004)는 터치 입력들의 움직임을 검출하도록 구성될 수 있다. 터치 입력 데이터는 프로세싱을 위해 사용자 컴퓨팅 시스템(110)의 구성 요소들로 전송될 수 있다. 예를 들어, 터치 입력 데이터는 프로세싱을 위해 게임 애플리케이션(112)에 직접 전송될 수 있다.
일부 실시예들에서, 터치 입력 데이터는 게임 애플리케이션(112)에 출력되기 전에 터치스크린 인터페이스(604), 운영 시스템, 또는 다른 구성 요소들에 의한 프로세싱 및/또는 필터링을 거칠 수 있다. 일 예시로서, 원시 터치 입력 데이터(, raw touch input data)는 터치 입력으로부터 캡쳐될(captured) 수 있다. 원시 데이터를 필터링하여 배경 잡음을 제거할 수 있고, 입력과 관련된 압력 값들을 측정할 수 있으며, 터치 입력과 관련된 위치 좌표들을 계산할 수 있다. 게임 애플리케이션(112)에 제공된 터치 입력 데이터의 유형은 터치스크린 인터페이스(604)의 특정 구현 및 터치스크린 인터페이스(604)와 관련된 특정 API에 좌우될 수 있다. 일부 실시예들에서, 터치 입력 데이터는 터치 입력의 위치 좌표들을 포함할 수 있다. 터치 신호 데이터는 정의된 빈도로 출력될 수 있다. 터치 입력들을 프로세싱하는 단계는 초당 여러 번 계산될 수 있으며 터치 입력 데이터는 추가 프로세싱을 위해 게임 애플리케이션에 출력될 수 있다.
게임 애플리케이션(112)은 사용자 컴퓨팅 시스템(110) 상에서 실행되도록 구성될 수 있다. 게임 애플리케이션(112)은 또한 비디오 게임, 게임, 게임 코드 및/또는 게임 프로그램으로서 지칭될 수 있다. 게임 애플리케이션은 사용자 컴퓨팅 시스템(110)이 사용자가 게임을 플레이하기 위해 사용할 수 있는 소프트웨어 코드(software code)를 포함하는 것으로 이해될 수 있다. 게임 애플리케이션(112)은 사용자 컴퓨팅 시스템(110)에게 실행하도록 프로세서 명령어들을 알리는 소프트웨어 코드를 포함할 수 있지만, 상수들(constants), 이미지들 및 다른 데이터 구조들과 관련된 데이터와 같이, 게임의 플레이에 사용되는 데이터를 포함할 수도 있다. 예를 들어, 도시된 실시예에서, 게임 애플리케이션은 게임 엔진(game engine)(612), 게임 데이터(game data)(614), 및 게임 상태 정보(game state information)(616)를 포함한다. 전술한 바와 같이, 여기에 설명된 실시예들은 교육용 소프트웨어 또는 화상회의(videoconferencing)와 같은, 비디오 게임들 이외의 애플리케이션들에 사용될 수 있다. 따라서, 일부 이러한 경우들에서, 게임 애플리케이션(112)은 호스트로서 역할을 하는, 서버, 또는 복수의 사용자 컴퓨팅 시스템들 중 하나를 선택하고 네트워크를 통해 통신하는 다수의 사용자들을 포함할 수 있는 애플리케이션들의 다른 유형들로 대체될 수 있다.
터치스크린 인터페이스(604) 또는 운영 시스템과 같은 사용자 컴퓨팅 시스템(110)의 다른 구성 요소는 터치 입력들과 같은 사용자 입력을 게임 애플리케이션(112)에 제공할 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110) 마우스, 키보드, 카메라, 게임 제어기 등과 같은 대안 또는 추가 사용자 입력 장치들을 포함할 수 있다. 또한, 사용자 컴퓨팅 시스템(110)은 가상 현실 디스플레이 및/또는 증강 현실 디스플레이를 포함할 수 있다. 사용자는 터치스크린 인터페이스(604) 및/또는 하나 이상의 대안 또는 추가 사용자 입력 장치들을 통해 게임 애플리케이션(112)과 인터랙트 할 수 있다. 게임 엔진(612)은 사용자 컴퓨팅 시스템(110) 내의 게임 애플리케이션(112)의 작동의 측면들을 실행하도록 구성될 수 있다. 게임 애플리케이션 내의 게임플레이의 측면들의 실행은, 적어도 부분적으로, 수신된 사용자 입력, 게임 데이터(614), 및 게임 상태 정보(616)에 기초할 수 있다. 게임 데이터(614)는 게임 규칙들, 사전 기록된 모션 캡쳐 포즈들/경로들, 환경 설정들, 제약들, 애니메이션 기준 곡선들(animation reference curves), 골격 모델들(skeleton models) 및/또는 다른 게임 애플리케이션 정보를 포함할 수 있다. 또한, 게임 데이터(614)는 게임 애플리케이션(112)의 난이도를 설정 또는 조정하는데 사용되는 정보를 포함할 수 있다.
게임 엔진(612)은 게임 규칙들에 따라 게임 내에서 게임플레이를 실행할 수 있다. 게임 규칙들의 일부 예시들은 채점 규칙들, 가능한 입력들, 동작들/이벤트들, 입력들에 응답한 움직임, 등을 포함할 수 있다. 다른 구성 요소들은 허용되는 입력들이 무엇인지 및 어떻게 게임을 진행하는지, 및 게임플레이의 다른 측면들을 제어할 수 있다. 게임 애플리케이션(112)의 실행 동안, 게임 애플리케이션(112)은 게임 상태 정보(616)를 저장할 수 있고, 이는 캐릭터 상태들, 환경 상태들, 장면 객체 저장(scene object storage), 및/또는 게임 애플리케이션(112)의 실행의 상태와 관련된 다른 정보를 포함할 수 있다. 예를 들어, 게임 상태 정보(616)는 캐릭터 위치, 캐릭터 동작, 게임 레벨 속성들, 및 게임 애플리케이션의 상태에 기여하는 다른 정보와 같은, 특정 시점에서 게임 애플리케이션의 상태를 식별할 수 있다.
게임 엔진(612)은 사용자 입력들을 수신하고, 게임 애플리케이션(112)에 적합한 동작들, 충돌들, 달리기들, 던짐들(throws), 공격들 및 다른 이벤트들과 같은, 게임-내 이벤트들을 결정할 수 있다. 작동 중에, 게임 엔진(612)은 적합한 게임-내 이벤들을 결정하기 위하여 게임 데이터(614) 및 게임 상태 정보(616)를 판독할 수 있다. 일 예시에서, 게임 엔진(912)이 캐릭터 이벤트들을 결정한 후에, 캐릭터 이벤트들은 캐릭터들이 이벤트들에 응답하여 만들 수 있는 적절한 모션들을 결정할 수 있는 움직임 엔진(movement engine)으로 전달될 수 있고, 그 모션들을 애니메이션 엔진(animation engine)에 전달할 수 있다. 애니메이션 엔진은 캐릭터들에 대한 새로운 포즈들을 결정하고 스키닝 및 렌더링 엔진(skinning and rendering engine)에 새로운 포즈를 제공할 수 있다. 스키닝 및 렌더링 엔진은 생물(animate), 무생물(inanimate) 및 배경 객체들(objects)을 전체 장면으로 조합하기 위하여 객체 결합기(object combiner)에 캐릭터 이미지들을 제공할 수 있다. 전체 장면은 렌더러(renderer)로 전달될 수 있으며, 이는 사용자에게 디스플레이 할 새 프레임을 생성할 수 있다. 프로세스는 게임 애플리케이션의 실행 동안 각 프레임을 렌더링하기 위해 반복될 수 있다. 프로세스가 캐릭터의 컨텍스트(context)로 설명되었지만, 프로세스는 이벤트들을 프로세싱하고 사용자에게 디스플레이하기 위해 출력을 렌더링하는 임의의 프로세스에 적용될 수 있다.
일부 경우들에서, 비디오 게임 엔진(612)의 적어도 일부는 비디오 게임 서버들(152) 중 하나와 같은 서버에 상주(reside)할 수 있다. 또한, 일부 경우들에서, 완전한 비디오 게임 엔진(612)은 서버에 상주할 수 있다. 따라서, 일부 경우들에서, 비디오 게임 엔진(612)은 사용자 컴퓨팅 시스템(110)에 호스팅된 비디오 게임 애플리케이션(112)의 부분으로부터 생략될 수 있다. 유사하게는, 일부 실시예들에서, 비디오 게임 상태 정보(616) 및 비디오 게임 데이터(614)는 사용자 컴퓨팅 시스템(110)에 추가하여 또는 대신에 서버에 호스팅될 수 있다. 또한, 일부 경우들에서, 비디오 게임 애플리케이션(112) 내에서 수행되는 사용자의 액션들은 비디오 게임(112)의 일부분을 호스팅하는 서버로 전송될 수 있다. 서버는 충돌들(collisions), 공격들(attacks) 또는 움직임들(movements)과 같은, 비디오 게임 애플리케이션(112)에 대한 사용자의 인터랙션의 결과를 계산하거나 결정할 수 있다. 그 다음, 서버는 사용자의 액션들의 결과를 사용자 컴퓨팅 시스템(110)에서의 비디오 게임 애플리케이션(112)에 송신할 수 있다. 비디오 게임 애플리케이션(112)은 그 결과를 사용자에게 디스플레이하는 것과 같은, 결과에 응답하여 액션을 수행할 수 있다.
컴퓨팅 시스템의 하드웨어 구성 예시
도 7은 도 6의 사용자 컴퓨팅 시스템(110)에 대한 하드웨어 구성의 일 실시예를 도시한다. 사용자 컴퓨팅 시스템(108)은 사용자 컴퓨팅 시스템(110)과 유사하게 또는 동일하게 구성될 수 있음을 이해해야 한다. 대안적으로, 사용자 컴퓨팅 시스템(108)은 사용자 컴퓨팅 시스템(110)과 상이한 구성을 가질 수 있다. 사용자 컴퓨팅 시스템(110)의 다른 변형들은 사용자 컴퓨팅 시스템(110)에 대한 구성 요소들을 제거 또는 추가하는 것과 같이, 여기에 명시적으로 제시된 예시들을 대체할 수 있다. 사용자 컴퓨팅 시스템(110)은 전용 게임 장치, 스마트 폰, 태블릿, 개인 컴퓨터, 데스크탑, 랩톱, 스마트 텔레비전, 자동차 콘솔 디스플레이 등을 포함할 수 있다. 또한, (도 7에 명시적으로 도시되지는 않았지만) 도 6과 관련하여 설명된 바와 같이, 사용자 컴퓨팅 시스템(110)은 선택적으로 터치스크린 디스플레이(602) 및 터치스크린 인터페이스(604)를 포함할 수 있다.
도시된 바와 같이, 사용자 컴퓨팅 시스템(110)은 사용자 컴퓨팅 시스템(110)의 다른 구성 요소들 및 사용자 컴퓨팅 시스템(110) 외부의 구성 요소들과도 인터랙트하는 프로세싱 유닛(20)을 포함한다. 게임 매체(12)와 통신할 수 있는 게임 매체 판독기(game media reader)(22)가 포함될 수 있다. 게임 매체 판독기(22)는 CD-ROM 또는 DVD들과 같은 광 디스크들을 판독할 수 있는 광 디스크 판독기, 또는 게임 매체(12)로부터 데이터를 수신 및 판독할 수 있는 판독기일 수 있다. 일부 실시예들에서, 게임 매체 판독기(22)는 선택적이거나 생략될 수 있다. 예를 들어, 게임 콘텐츠 또는 애플리케이션들은 네트워크 I/O(38)를 통해 네트워크를 통해 액세스되어 게임 매체 판독기(22) 및/또는 게임 매체(12)를 선택적으로 렌더링할 수 있다.
사용자 컴퓨팅 시스템(110)은 별도의 그래픽 프로세서(24)를 포함할 수 있다. 일부 경우들에서, 그래픽 프로세서(24)는 APU와 같은 프로세싱 유닛(20)에 내장될 수 있다. 이러한 경우들에서, 그래픽 프로세서(24)는 프로세싱 유닛(20)과 랜덤 액세스 메모리(RAM; Random Access Memory)를 공유할 수 있다. 대안적으로 또는 부가적으로, 사용자 컴퓨팅 시스템(110)은 프로세싱 유닛(20)으로부터 분리된 이산 그래픽 프로세서(discrete graphics processor)(24)를 포함할 수 있다. 일부 이러한 경우들에서, 그래픽 프로세서(24)는 프로세싱 유닛(20)으로부터 별도의 RAM을 가질 수 있다. 또한, 일부 경우들에서, 그래픽 프로세서(24)는 하나 이상의 추가 그래픽 프로세서들 및/또는 임베디드 또는 비-이산적인 그래픽 프로세싱 유닛과 함께 동작할 수 있으며, 이는 마더보드(motherboard)에 임베디드(embedded) 될 수 있으며 온-보드 그래픽 칩(on-board graphics chip) 또는 장치라고 지칭된다.
또한 사용자 컴퓨팅 시스템(110)은 I/O(32), 사용자 I/O(34), 디스플레이 I/O(36), 및 네트워크 I/O(38)와 같은, 입력/출력을 가능하게 하는 다양한 구성 요소들을 포함한다. 전술 한 바와 같이, 입력/출력 구성 요소들은, 일부 경우에서, 터치-가능 장치들을 포함할 수 있다. I/O(32)는 사용자 컴퓨팅 시스템(110)에 대한 저장소를 제공하기 위하여 저장 요소(40)과, 및 장치(42)를 통해, 이동식 저장 매체(removable storage media)(44)와 인터랙트한다. 프로세싱 유닛(20)은 I/O(32)를 통해 통신하여 게임 상태 데이터 및 임의의 공유 데이터 파일들과 같은, 데이터를 저장할 수 있다. 저장소(40) 및 이동식 저장 매체(44) 이외에, ROM(판독 전용 메모리)(46) 및 RAM(48)을 포함하는 사용자 컴퓨팅 시스템(110)이 또한 도시된다. RAM(48)은, 프로세싱 유닛(20) 및/또는 그래픽 프로세서(24)에 의해 액세스되는 모든 데이터에, 또는 게임이 플레이 될 때와 같이, 자주 액세스되는 데이터에 사용될 수 있다.
사용자 I/O(34)는 프로세싱 유닛(20)과 게임 제어기와 같은 사용자 장치 사이에서 명령들을 송신 및 수신하는데 사용된다. 일부 실시예들에서, 사용자 I/O(34)는 터치스크린 입력들을 포함할 수 있다. 전술한 바와 같이, 터치스크린은 정전식 터치스크린, 저항성 터치스크린, 또는 사용자로부터 촉각 입력들을 통해 사용자 입력을 수신하도록 구성되는 터치스크린 기술의 다른 유형일 수 있다. 디스플레이 I/O(36)는 플레이 되는 게임으로부터 이미지들을 디스플레이 하는 데 사용되는 입력/출력 기능들을 제공한다. 네트워크 I/O(38)는 네트워크에 대한 입력/출력 기능들을 위해 사용된다. 네트워크 I/O(38)는, 게임이 온라인으로 플레이되거나 온라인으로 액세스 될 때와 같이, 게임의 실행 동안 사용될 수 있다.
디스플레이 출력 신호들은 디스플레이 I/O(36)에 의해 생성될 수 있고, 그래픽, 사용자 인터페이스, 비디오 및/또는 다른 시각적 콘텐츠와 같은, 디스플레이 장치 상에 사용자 컴퓨팅 시스템(110)에 의해 생산된 시각적 콘텐츠를 디스플레이하기 위한 신호들을 포함할 수 있다. 사용자 컴퓨팅 시스템(110)은 디스플레이 I/O(36)에 의해 생산된 디스플레이 출력 신호들을 수신하도록 구성된 하나 이상의 통합된 디스플레이들을 포함할 수 있으며, 이는 사용자에게 디스플레이하기 위해 출력될 수 있다. 일부 실시예들에 따라, 디스플레이 I/O(36)에 의해 생산된 디스플레이 출력 신호들은 또한 사용자 컴퓨팅 시스템(110) 외부의 하나 이상의 디스플레이 장치들로 출력될 수 있다.
또한, 사용자 컴퓨팅 시스템(110)은 클락(50), 플래시 메모리(52) 및 다른 구성 요소들과 같은, 게임에 사용될 수 있는 다른 특징들을 포함할 수 있다. 오디오/비디오 플레이어(56)는 또한 영화와 같은 비디오 시퀀스를 플레이하는데 사용될 수 있다. 다른 구성 요소들이 사용자 컴퓨팅 시스템(110)에 제공될 수 있고 당업자는 사용자 컴퓨팅 시스템(110)의 다른 변형들을 이해할 수 있음을 이해할 수 있다.
프로그램 코드는 ROM(46), RAM(48) 또는 저장소(40)(하드 디스크, 다른 자기 저장소, 광학 저장소, 고체 상태 드라이브(solid state drives) 및/또는 다른 비-휘발성 저장소, 또는 이들의 조합 또는 변형을 포함할 수 있음)에 저장될 수 있다. 프로그램 코드의 적어도 일부는 프로그램 가능한(ROM, PROM, EPROM, EEPROM 등) ROM, 저장소(40), 및/또는 게임 매체(12)에 저장될 수 있다(이는 CD-ROM, 카트리지(cartridge), 메모리 칩(memory chip) 등 일 수 있거나, 필요에 따라 네트워크 또는 다른 전자 채널(electronic channel)을 통해 획득될 수 있음). 일반적으로, 프로그램 코드는 유형의 비-일시적 신호 전달 매체(tangible non-transitory signal-bearing medium)에서 구현될 수 있습니다.
랜덤 액세스 메모리(RAM)(48) (및 가능하게는 다른 저장소)는 필요에 따라 변수들 및 다른 게임 및 프로세서 데이터를 저장하는데 사용될 수 있다. RAM은 사용되며 게임의 플레이 중에 생성되는 데이터를 홀드하며(holds), 그의 부분은 프레임 버퍼, 게임 상태 및/또는 사용자 입력을 해석하고 게임 디스플레이를 생성하기 위해 필요하거나 사용할 수 있는 다른 데이터를 위해 보유될 수 있다. 일반적으로, RAM(48)은 휘발성 저장소이고, RAM(48) 내에 저장된 데이터는 사용자 컴퓨팅 시스템(110)이 꺼지거나 전력을 잃을 때 손실될 수 있다.
사용자 컴퓨팅 시스템(110)이 게임 미디어(12)를 판독하고 게임을 제공함에 따라, 정보는 게임 매체(12)로부터 판독되어 RAM(48)과 같은 메모리 장치에 저장될 수 있다. 추가적으로, 저장소(40), ROM(46), 네트워크를 통해 액세스되는 서버들(미도시), 이동식 저장 매체(46)로부터의 데이터는 판독되어 RAM(48)으로 로딩될 수 있다. 데이터가 RAM(48)에서 발견되는 것으로 설명되었지만, 데이터는 RAM(48)에 저장될 필요가 없고 프로세싱 유닛(20)에 액세스 가능한 다른 메모리에 저장되거나 게임 매체(12) 및 저장소(40)와 같은 몇몇 매체들 사이에 분배될 수 있음을 이해할 것이다.
반드시 모든 목적들 또는 이점들이 여기에 설명된 임의의 특정 실시예들에 따라 달성될 필요는 없다는 것을 이해해야 한다. 따라서, 예를 들어, 당업자는 특정 실시예들이 여기에 교시되거나 제안된 바와 같이 다른 목적들 또는 이점들을 반드시 달성하지 않으면서 본원에서 교시된 이점들 또는 장점들의 그룹을 달성하거나, 증가시키거나, 최적화하는 방식으로 작동하도록 구성될 수 있다는 것을 인식할 것이다.
여기에 설명된 모든 프로세스들은, 하나 이상의 컴퓨터들 또는 프로세서들을 포함하는 컴퓨팅 시스템에 의해 실행되는 소프트웨어 코드 모듈들(software code modules)을 통해, 구현될 수 있고 완전히 자동화될 수 있다. 코드 모듈들은 비-일시적 컴퓨터 판독-가능 매체 또는 다른 컴퓨터 저장 장치의 임의의 유형에 저장될 수 있다. 일부 또는 모든 방법들은 특수한 컴퓨터 하드웨어에서 구현될 수 있다.
여기에 설명된 것 이외의 많은 다른 변형들이 이 개시로부터 명백할 것이다. 예를 들어, 실시예에 따라, 여기에 설명된 임의의 알고리즘들의 특정 동작들, 이벤트들 또는 기능들은 상이한 시퀀스로 수행될 수 있고, 추가, 병합 또는 전부 생략될 수 있다(예를 들어, 설명된 모든 동작들 또는 이벤트들이 알고리즘의 실행에 필요한 것은 아님). 또한, 특정 실시예들에서, 동작들 또는 이벤트들은, 예를 들어, 순차적이라기 보다는, 멀티-스레드 프로세싱, 인터럽트 프로세싱, 또는 다중 프로세서들 또는 프로세서 코어들을 통해, 또는 다른 병렬 아키텍처들을 통해, 동시에 수행될 수 있다. 또한, 상이한 작업들 또는 프로세스들이 함께 기능할 수 있는 상이한 기계들 및/또는 컴퓨팅 시스템들에 의해 수행될 수 있다.
여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들 및 모듈들은, 프로세싱 유닛 또는 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC; application specific integrated circuit), 필드 프로그램 가능 게이트 어레이(FPGA; field programmable gate array) 또는 다른 프로그래 가능 로직 장치, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 구성 요소들, 또는 여기에 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합에 의해 구현될 수 있다. 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 프로세서는 제어기, 마이크로제어기(microcontroller) 또는 상태 기계(state machine), 이들의 조합 등일 수 있다. 프로세서는 컴퓨터-실행 가능 명령어들을 처리하도록 구성된 전기 회로를 포함할 수 있다. 다른 실시예에서, 프로세서는 컴퓨터-실행 가능 명령어들을 프로세싱 하지 않고 로직 작동들을 수행하는 FPGA 또는 다른 프로그램 가능한 장치를 포함한다. 프로세서는 컴퓨팅 장치들의 조합, 예를 들어, DSP와 마이크로 프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 함께 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성들로서 구현될 수도 있다. 여기에서 주로 디지털 기술과 관련하여 설명되었지만, 프로세서는 또한 주로 아날로그 구성 요소들을 포함할 수 있다. 컴퓨팅 환경은 마이크로프로세서 기반 컴퓨터 시스템, 메인프레임 컴퓨터, 디지털 신호 프로세서, 휴대용 컴퓨팅 장치, 장치 제어기, 또는 전자 기기 내의 계산 엔진 등등을 포함하지만, 이에 한정되지 않는 컴퓨터 시스템의 임의의 유형을 포함할 수 있다.
다른 말로 표현하자면, 달리 명시하지 않는 한, "할 수 있다(can)", "할 수 있다(could)", "할 수 있다(might)"또는 "할 수 있다(may)"와 같은 조건부 언어는 일반적으로 특정 실시예들이 포함하는 것을 전달하는데 사용된 맥락 내에서 달리 이해되고, 다른 실시예들은 특정 특징들, 요소들 및/또는 단계들을 포함하지 않는다. 따라서, 이러한 조건부 언어는 하나 이상의 실시예들에 대해 특징들, 요소들 및/또는 단계들이 임의의 방식으로든 요구되거나, 또는 하나 이상의 실시예들이, 이들 특징들, 요소들 및/또는 단계들이 임의의 특정 실시예에 포함되거나 수행될 것인지 여부를 사용자 입력 또는 프롬프팅(prompting)과 또는 없이, 결정하기 위한 로직을 반드시 포함한다는 것을 암시하도록 일반적으로 의도되지 않는다.
"X, Y 또는 Z 중 적어도 하나"라는 문구와 같은 분리성 언어는, 달리 명시하지 않는 한, 일반적으로 아이템, 용어 등이 X, Y 또는 Z 또는 이들의 임의의 조합(예를 들어, X, Y 및/또는 Z)일 수 있음을 제시하는데 사용된 문맥으로 이해된다. 따라서, 이러한 분리성 언어는 특정 실시예들이 각 제시되는 X 중 적어도 하나, Y 중 적어도 하나, 또는 Z 중 적어도 하나를 필요로 한다는 것을 일반적으로 암시해야 하는 것이 아니며, 그렇게 의도되지 않는다.
첨부된 도면들에 도시된 및/또는 여기에 설명되는 흐름도에서의 임의의 프로세스 설명들, 요소들 또는 블록들은 프로세스에서 특정 논리 기능들 또는 요소들을 구현하기 위한 하나 이상의 실행 가능 명령어들을 포함하는 코드의 부분들, 세그먼트들, 또는 모듈들을 잠재적으로 나타내는 것으로 이해될 수 있다. 대안 구현예들은 요소들 또는 기능들이 삭제되거나, 도시된 것으로부터 순서대로 실행되거나, 또는 논의될 수 있는 여기에 설명된 실시예들의 범위 내에 포함되며, 실질적으로 동시에 또는 역순서로 포함하고, 당업자에 의해 이해할 수 있는 관련 기능들에 따른다.
다르게 명시되지 않는 한, "일(a)"또는 "일(an)"과 같은 항목들은 일반적으로 하나 이상의 설명된 아이템들을 포함하도록 해석될 수 있다. 따라서, "에 구성되는 장치(a device configured to)"와 같은 문구는 하나 이상의 인용된 장치들을 포함하도록 의도된다. 이러한 하나 이상의 열거된 장치는 명시된 기재 사항들을 수행하도록 집합적으로 구성될 수도 있다. 예를 들어, "기재 사항들 A, B 및 C를 수행하도록 구성된 프로세서"는 기재 사항들 B 및 C를 수행하도록 구성된 제2 프로세서와 함께 작동하는 기재 사항 A를 수행하도록 구성된 제1 프로세서를 포함할 수 있다.
전술한 실시예들에 많은 변형들 및 수정들이 이루어질 수 있으며, 그 요소들은 다른 허용 가능한 예시들 중 하나로 이해되어야 한다는 점이 강조될 수 있다. 이러한 모든 수정들 및 변형은 본 개시의 범위 내에 포함되는 것으로 의도된다.
Claims (20)
- 컴퓨터-구현 방법에 있어서,
특정 컴퓨터-실행 가능한 명령어들로 구성된 인터랙티브 컴퓨팅 시스템에 의해 구현되는 바와 같이,
사용자 컴퓨팅 장치로부터 발화를 수신하는 단계 - 상기 발화는 사용자에 의해 언급되고 비디오 게임과 관련된 하나 이상의 언급된 단어들을 포함함 -;
상기 발화에 대한 발화 분류를 결정하는 단계; 및
상기 발화 분류가 명령에 대응한다고 결정하는 것에 응답하여:
상기 발화에 의해 참조된 상기 명령을 결정하는 단계;
상기 명령과 관련된 상기 비디오 게임을 결정하는 단계 - 상기 비디오 게임은 복수의 비디오 게임들 중 하나임 -;
상기 사용자와 관련된 사용자 계정을 식별하는 단계;
상기 사용자 계정 및 상기 비디오 게임과 관련된 호스트 시스템을 식별하는 단계 - 상기 호스트 시스템은 상기 비디오 게임의 인스턴스의 적어도 제1 부분을 호스팅하도록 구성됨 -;
상기 호스트 시스템에서 상기 사용자 계정과 관련된 사용자 게임 계정을 로드하는 단계; 및
상기 비디오 게임을 액세스하는 상기 사용자 없이 상기 호스트 시스템에서 상기 사용자의 사용자 게임 계정에 관해 상기 사용자를 대신하여 상기 명령을 실행하는 단계
를 포함하는 컴퓨터-구현 방법. - 제1항에 있어서,
상기 발화의 우선 순위를 결정하는 단계; 및
상기 발화의 우선 순위에 따라 상기 발화를 프로세싱 하는 단계
를 더 포함하는 컴퓨터-구현 방법. - 제2항에 있어서,
상기 발화의 우선 순위에 따라 상기 발화를 프로세싱 하는 단계는 상기 우선 순위가 임계 우선 순위 아래일 때 상기 발화를 프로세싱하는 이차 프로세싱 시스템에 상기 발화를 제공하는 단계
를 포함하는 컴퓨터-구현 방법. - 제1항에 있어서,
상기 발화는 상기 사용자 컴퓨팅 장치에 의해 호스팅되는 컴패니언 애플리케이션으로부터 수신되고, 상기 컴패니언 애플리케이션은 상기 비디오 게임과 별개지만 관련되는
컴퓨터-구현 방법. - 제1항에 있어서,
상기 사용자를 대신하여 상기 명령을 실행하는 단계는,
상기 비디오 게임의 인스턴스의 적어도 제2 부분을 실행하도록 구성되는 헤드리스 클라이언트를 인스턴스화하는 단계;
상기 헤드리스 클라이언트에서 상기 비디오 게임의 인스턴스의 제2 부분을 실행하는 단계; 및
상기 헤드리스 클라이언트에서 상기 명령을 실행하는 단계
를 포함하는 컴퓨터-구현 방법. - 제1항에 있어서,
상기 방법은, 상기 발화 분류가 질의에 대응한다고 결정하는 것에 응답하여:
상기 질의에 관련된 하나 이상의 지식 소스들을 액세스하는 단계 - 상기 하나 이상의 지식 소스들 중 적어도 하나는 게임-상태 정보의 저장소를 포함함 -;
상기 하나 이상의 지식 소스들로부터 획득된 데이터에 적어도 부분적으로 기초하여 상기 질의에 대한 질의 응답을 생성하는 단계; 및
상기 사용자 컴퓨팅 장치에 상기 질의 응답을 전송하는 단계
를 더 포함하는 컴퓨터-구현 방법. - 제6항에 있어서,
상기 질의 응답을 생성하는 단계는,
상기 사용자에 대한 사용자 인터랙션 데이터를 액세스 하는 단계;
상기 하나 이상의 지식 소스들로부터 획득된 상기 데이터에 적어도 부분적으로 기초하여 복수의 적합한 질의 응답들을 결정하는 단계;
상기 사용자 인터랙션 데이터 및 파라미터 함수에 기초하여 상기 적합한 질의 응답들의 각각에 대한 스코어를 생성하는 단계 - 상기 파라미터 함수는 기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성됨 -; 및
상기 적합한 질의 응답들의 각각에 대한 상기 스코어에 적어도 부분적으로 기초한 상기 복수의 적합한 질의 응답들로부터 상기 질의 응답을 선택하는 단계
를 포함하는 컴퓨터-구현 방법. - 제7항에 있어서,
상기 발화에 대응하는 신호의 하나 이상의 특징들을 결정하는 단계
를 더 포함하고,
상기 적합한 질의 응답들의 각각에 대한 상기 스코어를 생성하는 단계는 상기 발화에 대응하는 상기 신호의 하나 이상의 특징들에 더 기초하는
컴퓨터-구현 방법. - 제7항에 있어서,
상기 복수의 적합한 질의 응답들로부터 상기 질의 응답을 선택하는 단계는 상기 복수의 질의 응답들로부터 상기 남아 있는 적합한 질의 응답들과 비교하여 상기 사용자로부터의 참여를 더 증가시킬 가능성이 있는 상기 질의 응답을 선택하는 단계
를 포함하는 컴퓨터-구현 방법. - 제1항에 있어서,
상기 발화 분류가 문장에 대응한다고 결정하는 것에 응답하여:
액션을 결정하도록 파라미터 함수에 상기 문장을 적용하는 단계 - 상기 액션은 상기 비디오 게임에 관해 상기 사용자의 참여의 레벨을 증가시키거나 유지시키는 복수의 액션들로부터 선택됨 -; 및
상기 비디오 게임의 인스턴스의 실행에 관해 상기 액션을 수행하는 단계
를 더 포함하는 컴퓨터-구현 방법. - 제10항에 있어서,
상기 액션을 결정하도록 상기 파라미터 함수에 상기 문장을 적용하는 단계는 상기 파라미터 함수에 대한 복수의 발화들에 대응하는 복수의 문장들을 적용하는 단계
를 포함하는 컴퓨터-구현 방법. - 제1항에 있어서,
상기 하나 이상의 언급된 단어들을 결정하도록 상기 발화에 음성 인식을 수행하는 단계
를 더 포함하는 컴퓨터-구현 방법. - 시스템에 있어서,
상기 비디오 게임의 적어도 제1 부분을 호스팅하도록 구성된 애플리케이션 호스트 시스템;
하나 이상의 하드웨어 프로세서들을 포함하는 인터랙티브 컴퓨팅 시스템
을 포함하고,
상기 인터랙티브 컴퓨팅 시스템은 특정 컴퓨터-실행 가능한 명령어들을 실행하도록 구성되어 적어도:
사용자 컴퓨팅 장치로부터 발화를 수신하고 - 상기 발화는 사용자에 의해 언급되고 비디오 게임과 관련됨 -;
상기 발화에 대한 발화 분류를 결정하고;
상기 발화 분류가 명령에 대응한다고 결정하는 것에 응답하여:
상기 발화에 의해 참조된 상기 명령을 결정하고;
상기 명령과 관련된 상기 비디오 게임을 결정하고 - 상기 비디오 게임은 복수의 비디오 게임들 중 하나임 -;
상기 사용자와 관련된 사용자 계정을 식별하고;
복수의 애플리케이션 호스트 시스템들로부터 상기 사용자 계정 및 상기 비디오 게임과 관련된 상기 애플리케케이션 호스트 시스템을 식별하고;
상기 애플리케이션 호스트 시스템에서 상기 사용자 계정과 관련된 사용자 게임 계정을 로드하고; 및
상기 애플리케이션 호스트 시스템에서 상기 사용자의 사용자 게임 계정에 관해 상기 사용자를 대신하여 상기 명령을 실행하는
시스템. - 제13항에 있어서,
상기 인터랙티브 컴퓨팅 시스템은 상기 사용자를 대신하여 상기 명령을 실행하도록 더 구성되어:
상기 비디오 게임의 인스턴스의 적어도 제2 부분을 실행하도록 구성되는 헤드리스 클라이언트를 인스턴스화하고;
상기 헤드리스 클라이언트에서 상기 비디오 게임의 인스턴스의 제2 부분을 실행하고; 및
상기 헤드리스 클라이언트에서 상기 명령을 실행하는
시스템. - 제13항에 있어서,
상기 발화 분류가 질의에 대응한다고 결정하는 것에 응답하여, 상기 인터랙티브 컴퓨팅 시스템은 특정 컴퓨터-실행 가능한 명령어들을 실행하도록 더 구성되어 적어도:
상기 질의에 관련된 하나 이상의 지식 소스들을 액세스하고;
상기 하나 이상의 지식 소스들로부터 획득된 데이터에 적어도 부분적으로 기초하여 상기 질의에 대한 질의 응답을 생성하고; 및
상기 사용자 컴퓨팅 장치에 상기 질의 응답을 전송하는
시스템. - 제15항에 있어서,
상기 인터랙티브 컴퓨팅 시스템은 상기 질의 응답을 생성하도록 더 구성되어:
상기 사용자에 대한 사용자 인터랙션 데이터를 액세스 하고;
상기 하나 이상의 지식 소스들로부터 획득된 상기 데이터에 적어도 부분적으로 기초하여 복수의 적합한 질의 응답들을 결정하고;
상기 사용자 인터랙션 데이터 및 파라미터 함수에 기초하여 상기 적합한 질의 응답들의 각각에 대한 스코어를 생성하고 - 상기 파라미터 함수는 기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성됨 -; 및
상기 적합한 질의 응답들의 각각에 대한 상기 스코어에 적어도 부분적으로 기초한 상기 복수의 적합한 질의 응답들로부터 상기 질의 응답을 선택하는
시스템. - 제13항에 있어서,
상기 발화 분류가 문장에 대응한다고 결정하는 것에 응답하여, 상기 인터랙티브 컴퓨팅 시스템은 특정 컴퓨터-실행 가능한 명령어들을 실행하도록 더 구성되어 적어도:
액션을 결정하도록 파라미터 함수에 상기 문장을 적용하고; 및
상기 비디오 게임의 인스턴스의 실행에 관해 상기 액션을 수행하는
시스템. - 제17항에 있어서,
상기 인터랙티브 컴퓨팅 시스템은 상기 파라미터 함수에 상기 문장을 적용하도록 더 구성되어:
상기 사용자 컴퓨팅 장치로부터, 상기 문장을 포함하는, 복수의 문장들을 수신하고;
상기 복수의 문장들의 각각의 감정을 결정하고;
상기 집합된 감정을 획득하도록 상기 복수의 문장들의 각각의 감정들을 집합하고; 및
상기 파라미터 함수에 상기 집합된 감정을 제공하는
시스템. - 하나 이상의 컴퓨팅 장치들에 의해 실행될 때, 상기 하나 이상의 컴퓨팅 장치들이 작동들을 수행하도록 구성한 컴퓨터 실행 가능한 명령어들을 저장하는 비-일시적 컴퓨터-판독 가능한 저장 매체에 있어서,
사용자 컴퓨팅 장치로부터 발화를 수신하는 단계 - 상기 발화는 비디오 게임과 관련됨 -;
상기 발화 분류가 명령에 대응한다고 결정하는 단계;
상기 발화에 의해 참조된 상기 명령을 식별하는 단계:
상기 발화로 수신된 식별자에 대응하는 상기 비디오 게임의 사용자 계정을 식별하는 단계;
상기 사용자 계정에 적어도 부분적으로 기초하여 상기 비디오 게임의 호스트 시스템을 선택하는 단계 - 상기 호스트 시스템은 상기 비디오 게임의 인스턴스의 적어도 제1 부분을 호스팅하도록 구성됨 -;
상기 호스트 시스템에서 상기 사용자 계정과 관련된 게임 데이터를 로드하는 단계; 및
상기 비디오 게임을 액세스하는 상기 사용자 없이 상기 사용자 계정과 관련된 사용자를 대신하여 상기 호스트 시스템에서 상기 비디오 게임의 인스턴스에 상기 명령을 실행하는 단계
를 포함하는 비-일시적 컴퓨터-판독 가능한 저장 매체. - 제19항에 있어서,
상기 명령을 실행하는 단계는,
상기 비디오 게임의 인스턴스의 적어도 제2 부분을 실행하도록 구성되는 헤드리스 클라이언트를 인스턴스화하는 단계;
상기 헤드리스 클라이언트에서 상기 비디오 게임의 인스턴스의 제2 부분을 실행하는 단계; 및
상기 헤드리스 클라이언트에서 상기 명령을 실행하는 단계
를 포함하는 비-일시적 컴퓨터-판독 가능한 저장 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/639,973 | 2017-06-30 | ||
US15/639,973 US10449440B2 (en) | 2017-06-30 | 2017-06-30 | Interactive voice-controlled companion application for a video game |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190003355A true KR20190003355A (ko) | 2019-01-09 |
KR102190684B1 KR102190684B1 (ko) | 2020-12-14 |
Family
ID=64734570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180071776A KR102190684B1 (ko) | 2017-06-30 | 2018-06-22 | 비디오 게임을 위한 인터랙티브 음성-제어 컴패니언 애플리케이션 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10449440B2 (ko) |
KR (1) | KR102190684B1 (ko) |
CN (1) | CN109200578B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220165598A (ko) * | 2021-06-08 | 2022-12-15 | 국민대학교산학협력단 | Ai 스피커를 이용한 매트 기반의 인지력/체력 향상게임 시스템 및 방법 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10449440B2 (en) | 2017-06-30 | 2019-10-22 | Electronic Arts Inc. | Interactive voice-controlled companion application for a video game |
US10621317B1 (en) | 2017-09-14 | 2020-04-14 | Electronic Arts Inc. | Audio-based device authentication system |
US10629192B1 (en) | 2018-01-09 | 2020-04-21 | Electronic Arts Inc. | Intelligent personalized speech recognition |
US10878808B1 (en) * | 2018-01-09 | 2020-12-29 | Amazon Technologies, Inc. | Speech processing dialog management |
CA3128973A1 (en) | 2019-03-04 | 2020-09-10 | Bhaskar Bhattacharyya | Data compression and communication using machine learning |
US11547930B2 (en) * | 2019-04-19 | 2023-01-10 | Skydance Media | Voice control for virtual reality platform |
US10926173B2 (en) | 2019-06-10 | 2021-02-23 | Electronic Arts Inc. | Custom voice control of video game character |
US11033824B2 (en) * | 2019-06-14 | 2021-06-15 | Roblox Corporation | Predictive data preloading |
US10901689B1 (en) * | 2019-07-11 | 2021-01-26 | International Business Machines Corporation | Dynamic augmented reality interface creation |
US11250322B2 (en) * | 2019-07-15 | 2022-02-15 | Sony Interactive Entertainment LLC | Self-healing machine learning system for transformed data |
CN111081225B (zh) * | 2019-12-31 | 2022-04-01 | 思必驰科技股份有限公司 | 技能语音唤醒方法及装置 |
CN111311321B (zh) * | 2020-02-14 | 2021-11-02 | 北京百度网讯科技有限公司 | 用户消费行为预测模型训练方法、装置、设备及存储介质 |
US11238100B2 (en) * | 2020-02-28 | 2022-02-01 | International Business Machines Corporation | Adapting conversational agent communications to different stylistic models |
WO2021183160A1 (en) * | 2020-03-13 | 2021-09-16 | Google Llc | Controlling agents in a video game using semantic machine learning and a natural language action grammar |
US11544595B2 (en) * | 2020-03-30 | 2023-01-03 | Microsoft Technology Licensing, Llc | Integrated GLMix and non-linear optimization architectures |
CN111899732A (zh) * | 2020-06-17 | 2020-11-06 | 北京百度网讯科技有限公司 | 语音输入方法、装置及电子设备 |
US20220114912A1 (en) * | 2020-10-13 | 2022-04-14 | MySureStart, Inc. | Digital platform for proxy mentor / mentee communication |
CN113707144B (zh) * | 2021-08-24 | 2023-12-19 | 深圳市衡泰信科技有限公司 | 一种高尔夫模拟器的控制方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030022160A (ko) * | 2000-06-27 | 2003-03-15 | 일렉트로닉 아트 아이엔씨. | 콘텐츠의 에피소딕 전달 |
JP2004061843A (ja) * | 2002-07-29 | 2004-02-26 | Denso Corp | 音声対話におけるしりとりゲーム装置及びプログラム |
US20110211677A1 (en) * | 2005-08-02 | 2011-09-01 | Basner Charles M | Voice operated, matrix-connected, artificially intelligent address book system |
KR20160030943A (ko) * | 2013-07-15 | 2016-03-21 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 음성 입력에 기초한 표 데이터에 관한 연산의 수행 기법 |
WO2016111881A1 (en) * | 2015-01-09 | 2016-07-14 | Microsoft Technology Licensing, Llc | Headless task completion within digital personal assistants |
Family Cites Families (85)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716150A (zh) * | 1996-09-04 | 2006-01-04 | 英特托拉斯技术公司 | 一种从用户站点向外部站点发布使用数据的方法 |
US20080147404A1 (en) | 2000-05-15 | 2008-06-19 | Nusuara Technologies Sdn Bhd | System and methods for accent classification and adaptation |
US7369997B2 (en) * | 2001-08-01 | 2008-05-06 | Microsoft Corporation | Controlling speech recognition functionality in a computing device |
US7467087B1 (en) | 2002-10-10 | 2008-12-16 | Gillick Laurence S | Training and using pronunciation guessers in speech recognition |
US8443288B2 (en) * | 2002-11-22 | 2013-05-14 | Sony Pictures Entertainment Inc. | Ubiquitous companion agent |
US7303474B2 (en) * | 2003-06-24 | 2007-12-04 | At&T Bls Intellectual Property, Inc. | Methods and systems for establishing games with automation using verbal communication |
US7266495B1 (en) | 2003-09-12 | 2007-09-04 | Nuance Communications, Inc. | Method and system for learning linguistically valid word pronunciations from acoustic data |
US8323106B2 (en) * | 2008-05-30 | 2012-12-04 | Sony Computer Entertainment America Llc | Determination of controller three-dimensional location using image analysis and ultrasonic communication |
WO2006019987A2 (en) * | 2004-07-15 | 2006-02-23 | Mad Doc Software, Llc | Audio visual games and computer programs embodying interactive speech recognition and methods related thereto |
US20070244751A1 (en) * | 2006-04-17 | 2007-10-18 | Gary Zalewski | Using visual environment to select ads on game platform |
US9349201B1 (en) * | 2006-08-03 | 2016-05-24 | Sony Interactive Entertainment America Llc | Command sentinel |
TWI322945B (en) | 2006-09-18 | 2010-04-01 | Quanta Comp Inc | Audio data transmission system and audio data transmission method |
US8926395B2 (en) | 2007-11-28 | 2015-01-06 | Patent Category Corp. | System, method, and apparatus for interactive play |
KR20100009292A (ko) | 2008-07-18 | 2010-01-27 | 삼성전자주식회사 | 페어링 방법 및 제어 디바이스 |
US8374873B2 (en) | 2008-08-12 | 2013-02-12 | Morphism, Llc | Training and applying prosody models |
US8095365B2 (en) | 2008-12-04 | 2012-01-10 | At&T Intellectual Property I, L.P. | System and method for increasing recognition rates of in-vocabulary words by improving pronunciation modeling |
US8177643B2 (en) * | 2008-12-05 | 2012-05-15 | Microsoft Corporation | Out-of-band voice communication with interactive voice response services during gameplay |
US20110086712A1 (en) | 2009-09-15 | 2011-04-14 | Katherine Cargill | Online games integrated with an online green mall |
JP5443918B2 (ja) | 2009-09-18 | 2014-03-19 | 株式会社ソニー・コンピュータエンタテインメント | 端末装置、音声出力方法および情報処理システム |
US8556724B2 (en) * | 2009-09-30 | 2013-10-15 | Zynga Inc. | Apparatuses, methods and systems for an online game manager |
US8676581B2 (en) * | 2010-01-22 | 2014-03-18 | Microsoft Corporation | Speech recognition analysis via identification information |
US20120225703A1 (en) * | 2010-10-21 | 2012-09-06 | Aibelive Co., Ltd | Method for playing a video game on a mobile device |
US20120100900A1 (en) * | 2010-10-21 | 2012-04-26 | Aibelive Co., Ltd | Method for operating a mobile device to control a main Unit in playing a video game |
US8490871B1 (en) | 2011-04-28 | 2013-07-23 | Amazon Technologies, Inc. | Method and system for product restocking using machine-readable codes |
US8656067B2 (en) | 2011-07-29 | 2014-02-18 | Hewlett-Packard Development Company, L.P. | Peripheral device identification for pairing |
JP5596649B2 (ja) | 2011-09-26 | 2014-09-24 | 株式会社東芝 | 文書マークアップ支援装置、方法、及びプログラム |
US8469816B2 (en) * | 2011-10-11 | 2013-06-25 | Microsoft Corporation | Device linking |
RU2621633C2 (ru) * | 2011-10-28 | 2017-06-06 | Мэджик Лип, Инк. | Система и способ для дополненной и виртуальной реальности |
KR101351575B1 (ko) | 2012-05-22 | 2014-01-22 | 성균관대학교산학협력단 | 이어폰 포트를 이용한 신호 처리 시스템 및 방법 |
US20130325474A1 (en) | 2012-05-31 | 2013-12-05 | Royce A. Levien | Speech recognition adaptation systems based on adaptation data |
US8831957B2 (en) * | 2012-08-01 | 2014-09-09 | Google Inc. | Speech recognition models based on location indicia |
US20140122086A1 (en) * | 2012-10-26 | 2014-05-01 | Microsoft Corporation | Augmenting speech recognition with depth imaging |
US9266018B2 (en) * | 2012-11-08 | 2016-02-23 | Audible, Inc. | Customizable in-vehicle gaming system |
JP5851051B2 (ja) | 2012-12-04 | 2016-02-03 | 株式会社Nttドコモ | 情報処理装置、サーバ装置、対話システムおよびプログラム |
US20140163980A1 (en) | 2012-12-10 | 2014-06-12 | Rawllin International Inc. | Multimedia message having portions of media content with audio overlay |
US20140164507A1 (en) | 2012-12-10 | 2014-06-12 | Rawllin International Inc. | Media content portions recommended |
CN103888436B (zh) | 2012-12-20 | 2018-09-14 | 伊姆西公司 | 用户认证的方法和装置 |
JPWO2014103568A1 (ja) | 2012-12-28 | 2017-01-12 | ソニー株式会社 | 情報処理装置、情報処理方法、およびプログラム |
EP2967322A4 (en) * | 2013-03-11 | 2017-02-08 | Magic Leap, Inc. | System and method for augmented and virtual reality |
US9129478B2 (en) * | 2013-05-20 | 2015-09-08 | Microsoft Corporation | Attributing user action based on biometric identity |
US20140372892A1 (en) * | 2013-06-18 | 2014-12-18 | Microsoft Corporation | On-demand interface registration with a voice control system |
US9741339B2 (en) | 2013-06-28 | 2017-08-22 | Google Inc. | Data driven word pronunciation learning and scoring with crowd sourcing based on the word's phonemes pronunciation scores |
US10186262B2 (en) * | 2013-07-31 | 2019-01-22 | Microsoft Technology Licensing, Llc | System with multiple simultaneous speech recognizers |
US8994774B2 (en) * | 2013-08-01 | 2015-03-31 | Sony Corporation | Providing information to user during video conference |
US9889383B2 (en) | 2013-10-03 | 2018-02-13 | Voyetra Turtle Beach, Inc. | Configuring headset voice morph based on player assignment |
US9767803B1 (en) * | 2013-12-16 | 2017-09-19 | Aftershock Services, Inc. | Dynamically selecting speech functionality on client devices |
KR102250599B1 (ko) | 2014-02-11 | 2021-05-10 | 이주협 | 엄지손가락을 이용한 터치 실행 장치 |
US9412363B2 (en) * | 2014-03-03 | 2016-08-09 | Microsoft Technology Licensing, Llc | Model based approach for on-screen item selection and disambiguation |
US9582246B2 (en) * | 2014-03-04 | 2017-02-28 | Microsoft Technology Licensing, Llc | Voice-command suggestions based on computer context |
KR20150122510A (ko) | 2014-04-23 | 2015-11-02 | 엘지전자 주식회사 | 영상 표시 장치 및 그것의 제어방법 |
KR102248474B1 (ko) * | 2014-04-30 | 2021-05-07 | 삼성전자 주식회사 | 음성 명령 제공 방법 및 장치 |
US20150347912A1 (en) | 2014-05-27 | 2015-12-03 | Sony Corporation | Activity tracking based recommendation |
US20150370272A1 (en) | 2014-06-23 | 2015-12-24 | Google Inc. | Intelligent configuration of a smart environment based on arrival time |
US10262655B2 (en) * | 2014-11-03 | 2019-04-16 | Microsoft Technology Licensing, Llc | Augmentation of key phrase user recognition |
US9795879B2 (en) * | 2014-12-31 | 2017-10-24 | Sony Interactive Entertainment America Llc | Game state save, transfer and resume for cloud gaming |
KR102460459B1 (ko) | 2015-02-27 | 2022-10-28 | 삼성전자주식회사 | 전자 장치를 이용한 카드 서비스 방법 및 장치 |
US9685156B2 (en) * | 2015-03-12 | 2017-06-20 | Sony Mobile Communications Inc. | Low-power voice command detector |
CN106157955A (zh) * | 2015-03-30 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种语音控制方法及装置 |
US20170010860A1 (en) * | 2015-07-07 | 2017-01-12 | Matthew James Henniger | System and method for enriched multilayered multimedia communications using interactive elements |
US9811313B2 (en) * | 2015-08-17 | 2017-11-07 | Microsoft Technology Licensing, Llc | Voice-triggered macros |
US9443192B1 (en) * | 2015-08-30 | 2016-09-13 | Jasmin Cosic | Universal artificial intelligence engine for autonomous computing devices and software applications |
KR20170031517A (ko) | 2015-09-11 | 2017-03-21 | 엘지전자 주식회사 | 이동 단말기 및 그의 동작 방법 |
KR102443087B1 (ko) | 2015-09-23 | 2022-09-14 | 삼성전자주식회사 | 전자 기기 및 그의 음성 인식 방법 |
US10549204B2 (en) * | 2015-09-30 | 2020-02-04 | Sony Interactive Entertainment America Llc | Systems and methods for providing augmented data-feed for game play re-creation and dynamic replay entry points |
US9653075B1 (en) * | 2015-11-06 | 2017-05-16 | Google Inc. | Voice commands across devices |
US9886958B2 (en) * | 2015-12-11 | 2018-02-06 | Microsoft Technology Licensing, Llc | Language and domain independent model based approach for on-screen item selection |
US20170171594A1 (en) | 2015-12-14 | 2017-06-15 | Le Holdings (Beijing) Co., Ltd. | Method and electronic apparatus of implementing voice interaction in live video broadcast |
JP6784022B2 (ja) | 2015-12-18 | 2020-11-11 | ヤマハ株式会社 | 音声合成方法、音声合成制御方法、音声合成装置、音声合成制御装置およびプログラム |
CN105912187A (zh) | 2015-12-30 | 2016-08-31 | 乐视致新电子科技(天津)有限公司 | 语音控制方法及其设备 |
EP3400081B1 (en) | 2016-01-06 | 2019-12-18 | Evollve, Inc. | Robot having a changeable character |
US10152965B2 (en) | 2016-02-03 | 2018-12-11 | Google Llc | Learning personalized entity pronunciations |
CN105957530B (zh) | 2016-04-28 | 2020-01-03 | 海信集团有限公司 | 一种语音控制方法、装置和终端设备 |
US10332513B1 (en) * | 2016-06-27 | 2019-06-25 | Amazon Technologies, Inc. | Voice enablement and disablement of speech processing functionality |
US10311863B2 (en) | 2016-09-02 | 2019-06-04 | Disney Enterprises, Inc. | Classifying segments of speech based on acoustic features and context |
US10304463B2 (en) * | 2016-10-03 | 2019-05-28 | Google Llc | Multi-user personalization at a voice interface device |
US10449440B2 (en) | 2017-06-30 | 2019-10-22 | Electronic Arts Inc. | Interactive voice-controlled companion application for a video game |
US11423879B2 (en) * | 2017-07-18 | 2022-08-23 | Disney Enterprises, Inc. | Verbal cues for high-speed control of a voice-enabled device |
US10607595B2 (en) | 2017-08-07 | 2020-03-31 | Lenovo (Singapore) Pte. Ltd. | Generating audio rendering from textual content based on character models |
US10621317B1 (en) | 2017-09-14 | 2020-04-14 | Electronic Arts Inc. | Audio-based device authentication system |
JP6682488B2 (ja) | 2017-10-03 | 2020-04-15 | 株式会社スクウェア・エニックス | コマンド処理プログラム、画像コマンド処理装置、及び画像コマンド処理方法 |
US10600404B2 (en) | 2017-11-29 | 2020-03-24 | Intel Corporation | Automatic speech imitation |
US10629192B1 (en) | 2018-01-09 | 2020-04-21 | Electronic Arts Inc. | Intelligent personalized speech recognition |
US10586369B1 (en) | 2018-01-31 | 2020-03-10 | Amazon Technologies, Inc. | Using dialog and contextual data of a virtual reality environment to create metadata to drive avatar animation |
KR101935585B1 (ko) | 2018-10-02 | 2019-04-05 | 넷마블 주식회사 | 게임 커맨드 인식 방법 및 장치 |
US20200251089A1 (en) | 2019-02-05 | 2020-08-06 | Electronic Arts Inc. | Contextually generated computer speech |
-
2017
- 2017-06-30 US US15/639,973 patent/US10449440B2/en active Active
-
2018
- 2018-06-22 KR KR1020180071776A patent/KR102190684B1/ko active IP Right Grant
- 2018-06-29 CN CN201810722328.2A patent/CN109200578B/zh active Active
-
2019
- 2019-09-30 US US16/587,835 patent/US11077361B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030022160A (ko) * | 2000-06-27 | 2003-03-15 | 일렉트로닉 아트 아이엔씨. | 콘텐츠의 에피소딕 전달 |
JP2004061843A (ja) * | 2002-07-29 | 2004-02-26 | Denso Corp | 音声対話におけるしりとりゲーム装置及びプログラム |
US20110211677A1 (en) * | 2005-08-02 | 2011-09-01 | Basner Charles M | Voice operated, matrix-connected, artificially intelligent address book system |
KR20160030943A (ko) * | 2013-07-15 | 2016-03-21 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 음성 입력에 기초한 표 데이터에 관한 연산의 수행 기법 |
WO2016111881A1 (en) * | 2015-01-09 | 2016-07-14 | Microsoft Technology Licensing, Llc | Headless task completion within digital personal assistants |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220165598A (ko) * | 2021-06-08 | 2022-12-15 | 국민대학교산학협력단 | Ai 스피커를 이용한 매트 기반의 인지력/체력 향상게임 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR102190684B1 (ko) | 2020-12-14 |
US20200129851A1 (en) | 2020-04-30 |
US10449440B2 (en) | 2019-10-22 |
CN109200578A (zh) | 2019-01-15 |
CN109200578B (zh) | 2021-10-22 |
US20190001219A1 (en) | 2019-01-03 |
US11077361B2 (en) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102190684B1 (ko) | 비디오 게임을 위한 인터랙티브 음성-제어 컴패니언 애플리케이션 | |
US11471764B2 (en) | Predictive execution of distributed game engines | |
KR102060879B1 (ko) | 비디오 게임 애플리케이션 내의 게임플레이 파라미터들의 실시간 동적 수정 및 최적화 | |
CN111375196B (zh) | 基于感知的动态游戏状态配置 | |
US11344814B2 (en) | Multiplayer video game matchmaking system and methods | |
KR102170560B1 (ko) | 멀티 플레이어 비디오 게임 매치 메이킹 최적화 | |
US11478713B1 (en) | Automated detection of emergent behaviors in interactive agents of an interactive environment | |
US10940396B2 (en) | Example chat message toxicity assessment process | |
US10357713B1 (en) | Utilizing gaming behavior to evaluate player traits | |
KR102549681B1 (ko) | 게임내 자원 서페이싱 플랫폼 | |
WO2015153878A1 (en) | Modeling social identity in digital media with dynamic group membership | |
CN112274924A (zh) | 在应用门户中管理用户体验的系统和计算机实现的方法 | |
CN111372662A (zh) | 用于提供游戏服务的设备、方法及计算机程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |