IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インフィニット リアリティ インコーポレイテッドの特許一覧

特表2025-503436ナラティブなテキスト及びナラティブな音声のゲームユーザインターフェース
<>
  • 特表-ナラティブなテキスト及びナラティブな音声のゲームユーザインターフェース 図1
  • 特表-ナラティブなテキスト及びナラティブな音声のゲームユーザインターフェース 図2
  • 特表-ナラティブなテキスト及びナラティブな音声のゲームユーザインターフェース 図3
  • 特表-ナラティブなテキスト及びナラティブな音声のゲームユーザインターフェース 図4
  • 特表-ナラティブなテキスト及びナラティブな音声のゲームユーザインターフェース 図5
  • 特表-ナラティブなテキスト及びナラティブな音声のゲームユーザインターフェース 図6
  • 特表-ナラティブなテキスト及びナラティブな音声のゲームユーザインターフェース 図7
  • 特表-ナラティブなテキスト及びナラティブな音声のゲームユーザインターフェース 図8
  • 特表-ナラティブなテキスト及びナラティブな音声のゲームユーザインターフェース 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-02-04
(54)【発明の名称】ナラティブなテキスト及びナラティブな音声のゲームユーザインターフェース
(51)【国際特許分類】
   A63F 13/50 20140101AFI20250128BHJP
   G06F 3/01 20060101ALI20250128BHJP
   G06F 3/16 20060101ALI20250128BHJP
   G09B 21/00 20060101ALI20250128BHJP
   A63F 13/53 20140101ALI20250128BHJP
   A63F 13/54 20140101ALI20250128BHJP
   A63F 13/42 20140101ALI20250128BHJP
【FI】
A63F13/50
G06F3/01 510
G06F3/16 690
G09B21/00 F
G09B21/00 D
A63F13/53
A63F13/54
A63F13/42
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024535791
(86)(22)【出願日】2022-12-16
(85)【翻訳文提出日】2024-08-06
(86)【国際出願番号】 US2022053094
(87)【国際公開番号】W WO2023114444
(87)【国際公開日】2023-06-22
(31)【優先権主張番号】63/265,697
(32)【優先日】2021-12-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.ウィンドウズ
3.JAVA
4.JAVASCRIPT
(71)【出願人】
【識別番号】524225109
【氏名又は名称】インフィニット リアリティ インコーポレイテッド
(74)【代理人】
【識別番号】100121441
【弁理士】
【氏名又は名称】西村 竜平
(74)【代理人】
【識別番号】100154704
【弁理士】
【氏名又は名称】齊藤 真大
(74)【代理人】
【識別番号】100206151
【弁理士】
【氏名又は名称】中村 惇志
(74)【代理人】
【識別番号】100218187
【弁理士】
【氏名又は名称】前田 治子
(74)【代理人】
【識別番号】100227673
【弁理士】
【氏名又は名称】福田 光起
(74)【代理人】
【識別番号】100231038
【弁理士】
【氏名又は名称】正村 智彦
(72)【発明者】
【氏名】バーナード ヴィクター カーチス
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA25
5E555AA33
5E555AA46
5E555BA02
5E555BA05
5E555BA06
5E555BA82
5E555BA86
5E555BB02
5E555BB05
5E555BB06
5E555BC04
5E555BD01
5E555BE08
5E555DA23
5E555DB44
5E555DC09
5E555DD07
5E555EA07
5E555EA14
5E555EA27
5E555FA00
(57)【要約】
コンピュータデバイスの入出力デバイスを介して、ユーザインターフェースを提供するユーザアプリケーションから、ユーザインターフェースのコンテンツを記述するオブジェクトメタデータをナラティブエンジンが受信する。ユーザインターフェースの拡張記述が生成され、当該拡張記述は、前記ユーザインターフェースの周囲の説明と、前記ユーザインターフェースに対して実行されるアクションのリストを含む。前記拡張記述は、出力デバイスを用いて提示される。前記アクションの1つを要求するユーザ入力が処理される。前記拡張記述は、ユーザ入力に基づいて更新される。
【選択図】図1

【特許請求の範囲】
【請求項1】
入力デバイス及び出力デバイスを含むコンピュータデバイスを含み、
当該コンピュータデバイスが、ナラティブエンジンを実行して、
ユーザインターフェースを提供するユーザアプリケーションから前記入力デバイス及び前記出力デバイスを介して、前記ユーザインターフェースのコンテンツを記述するオブジェクトメタデータを受信し、
前記ユーザインターフェースの拡張記述を生成し、ここで当該拡張記述が、前記ユーザインターフェースの環境の記述と、前記ユーザインターフェースに対して実行されるアクションのリストとを含んでおり、
前記出力デバイスを用いて前記拡張記述を提示し、
前記アクションの1つを要求するユーザ入力を処理し、かつ
前記ユーザ入力に基づいて拡張記述を更新する、
ようにプログラムされているシステム。
【請求項2】
前記コンピュータデバイスがさらに、
アプリケーションプログラミングインターフェース(API)を用いて前記ユーザアプリケーションから前記オブジェクトメタデータを受け取り、当該APIが、サポートされる前記ユーザインターフェースのタイプ毎に拡張機能を含んでおり、前記ナラティブエンジンが特定のユーザインターフェースのタイプの前記オブジェクトメタデータにアクセスできるようにプログラムされている請求項1に記載のシステム。
【請求項3】
前記ユーザインターフェースが3Dエンジンによってレンダリングされる3Dユーザインターフェースであり、当該3Dユーザインターフェースの要素が前記オブジェクトメタデータに従ってレンダリングされ、当該オブジェクトメタデータが前記APIを介してナラティブエンジンによってアクセスされる請求項2に記載のシステム。
【請求項4】
前記ユーザインターフェースが、ウェブブラウザによってレンダリングされるウェブユーザインターフェースであり、
当該ウェブユーザインターフェースの要素が、ハイパーテキストトランスファープロトコル(HTTP)マークアップに含まれる前記オブジェクトメタデータに従ってレンダリングされ、
前記オブジェクトメタデータは、前記APIを介して前記ナラティブエンジンによって前記HTTPマークアップからアクセスされる、請求項2に記載のシステム。
【請求項5】
前記ユーザインターフェースが、コンソールアプリケーションユーザインターフェースであり、
前記オブジェクトメタデータが、前記コンソールアプリケーションのコンソールテキストバッファからAPIを介して前記ナラティブエンジンによりアクセスされる請求項2に記載のシステム。
【請求項6】
前記拡張記述が前記ユーザインターフェース上に重ねられたオーバーレイとして提示される請求項1に記載のシステム。
【請求項7】
前記拡張記述が、コンピュータ生成音声として聴覚的に提示される請求項1に記載のシステム。
【請求項8】
前記ナラティブエンジンが、前記ナラティブエンジンのユーザの障害のレベル又はタイプに基づいて前記拡張記述を提示する方法を定義するユーザ設定を含む請求項1に記載のシステム。
【請求項9】
前記ナラティブエンジンがさらに、
注意フィルタにより、前記オブジェクトメタデータのプロパティを用いて前記オブジェクトメタデータをフィルタリングし、前記オブジェクトメタデータ内の関連オブジェクトを決定し、
前記オブジェクトメタデータを、ユーザのアバターから所定の距離内にある前記ユーザインターフェースの要素に限定する、
前記オブジェクトメタデータを、前記ユーザの視野内にある前記ユーザインターフェースの前記要素に限定する、又は
前記オブジェクトメタデータを、マウスカーソルから所定の2D距離内にある前記ユーザインターフェースの要素に限定し、前記オブジェクトメタデータを、有効になっている前記ユーザインターフェースの要素に限定する、の1つ以上を含むようにプログラムされている請求項1に記載のシステム。
【請求項10】
前記ナラティブエンジンがさらに、
前記関連オブジェクトの前記プロパティと利用可能なアクションを記述するインターフェースモデルを構築し、
記述生成部を用いて、前記関連オブジェクトの前記プロパティに基づいて前記環境の記述を生成し、前記関連オブジェクトの前記利用可能なアクションに基づいて当該アクションのリストを生成するようにプログラムされている、請求項9に記載のシステム。
【請求項11】
前記記述作成部が、自然言語テキストと、記述される前記関連オブジェクトの前記プロパティ又は前記利用可能なアクションの値のプレースホルダとを含むテンプレートを用いて、前記拡張記述を生成するように構成されている請求項10に記載のシステム。
【請求項12】
前記ナラティブエンジンがさらに、
音声テキスト化エンジンを用いて、前記ユーザ入力を認識テキストに変換し、
前記インターフェースモデル内における前記利用可能なアクションの名前について前記認識テキストをスキャンし、
発話された前記利用可能なアクションを実行するよう前記ユーザアプリケーションに指示するようプログラムされている請求項10に記載のシステム。
【請求項13】
前記ユーザインターフェースを提供するユーザアプリケーションからコンピュータデバイスの入力デバイス及び出力デバイスを介して、前記ユーザインターフェースのコンテンツを記述するオブジェクトメタデータを受信するステップと、
前記ユーザインターフェースの拡張記述を生成するステップであり、当該拡張記述が、前記ユーザインターフェースにおける環境の記述と、前記ユーザインターフェースに対して実行されるアクションのリストを含むステップと、
前記出力デバイスを用いて前記拡張記述を提示するステップと、
前記アクションの1つを要求するユーザ入力を処理するステップと、
前記ユーザ入力に基づいて前記拡張記述を更新するステップと、を含む方法。
【請求項14】
アプリケーションプログラミングインターフェース(API)を用いて、前記ユーザアプリケーションから前記オブジェクトメタデータを受信するステップをさらに含み、前記APIが、サポートされるユーザインターフェースのタイプごとの拡張機能を含んでおり、特定のユーザインターフェースのタイプ毎の前記オブジェクトメタデータへのアクセスを可能にする請求項13に記載の方法。
【請求項15】
前記拡張記述が、前記ユーザインターフェースに重ね合わされたオーバーレイとして提示される請求項13に記載の方法。
【請求項16】
前記拡張記述が、コンピュータ生成音声として聴覚的に提示される請求項13に記載の方法。
【請求項17】
ユーザの障害のレベル又はタイプを示すユーザ設定に従って、前記拡張記述を提示するステップをさらに含む請求項13に記載の方法。
【請求項18】
前記オブジェクトメタデータのプロパティを用いて前記オブジェクトメタデータをフィルタリングし、前記オブジェクトメタデータ内の関連オブジェクトを決定するステップをさらに含み、
当該ステップが、
前記オブジェクトメタデータを、ユーザのアバターから所定の距離内にある前記ユーザインターフェースの要素に限定するステップ、
前記オブジェクトメタデータを、前記ユーザの視野内にある前記ユーザインターフェースの要素に限定するステップ、又は
前記オブジェクトメタデータを、マウスカーソルから所定の2D距離内にある前記ユーザインターフェースの要素に限定し、前記オブジェクトメタデータを、有効になっている前記ユーザインターフェースの要素に限定するステップ、
の一つ以上を含む請求項13に記載の方法。
【請求項19】
前記関連オブジェクトの前記プロパティと利用可能なアクションを記述するインターフェースモデルを構築するステップと、
記述生成部を用いて、前記関連オブジェクトの前記プロパティに基づいて前記環境の記述を生成し、前記関連オブジェクトの前記利用可能なアクションに基づいて前記アクションのリストを生成するステップと、をさらに含む請求項18に記載の方法。
【請求項20】
自然言語テキストと、記述される関連オブジェクトの前記プロパティ又は前記利用可能なアクションの値のプレースホルダと、を含むテンプレートを用いて、前記拡張記述を生成するステップをさらに含む請求項19に記載の方法。
【請求項21】
音声テキスト化エンジンを用いて、前記ユーザ入力を認識テキストに変換するステップと、
前記インターフェースモデル内における前記利用可能なアクションの名前について前記認識テキストをスキャンするステップと、
発話された前記利用可能なアクションを実行するよう前記ユーザアプリケーションに指示するステップと、をさらに含む請求項19に記載の方法。
【請求項22】
コンピュータデバイスの1又は複数のプロセッサにより実行されると、前記コンピュータデバイスに動作を実行させるナラティブエンジンの命令を含む非一時的なコンピュータ可読媒体であって、当該動作が、
前記コンピュータデバイスの入力デバイス及び出力デバイスを介して、ユーザインターフェースを提供するユーザアプリケーションから、前記ユーザインターフェースのコンテンツを記述するオブジェクトメタデータを受信するステップであって、前記ナラティブエンジンのAPIを用いて、前記ユーザアプリケーションから前記オブジェクトメタデータを受信することを含み、前記APIが、サポートされる前記ユーザインターフェースのタイプ毎の拡張機能を含んでおり、特定のユーザインターフェースのタイプの前記オブジェクトメタデータへのアクセスを可能にすることを含むステップと、
前記オブジェクトメタデータのプロパティを用いて前記オブジェクトメタデータをフィルタリングし、前記オブジェクトメタデータ内の関連オブジェクトを決定するステップと、
前記関連オブジェクトを用いて前記ユーザインターフェースの拡張記述を生成するステップであって、当該拡張記述が、前記ユーザインターフェースの環境の記述と、前記ユーザインターフェースに対して実行されるアクションのリストとを含むステップと、
前記出力デバイスを用いて、前記拡張記述を、前記ユーザインターフェースに重ね合わされたオーバーレイとして、又はコンピュータ生成音声として聴覚的に、1つ以上提示するステップと、
前記アクションの一つを要求するユーザ入力を処理するステップと、
前記ユーザ入力に基づいて前記拡張記述を更新するステップと、
前記出力デバイスを用いて、前記更新された拡張記述を提示するステップと、
を含む、非一時的なコンピュータ可読媒体。

【発明の詳細な説明】
【技術分野】
【0001】
・関連出願の相互参照
本出願は、2021年12月19日に出願された米国仮出願第63/265,697号の利益を主張するものであり、その開示内容は参照によりその全体が本明細書に組み込まれる。
【背景技術】
【0002】
本開示の態様は、表示又は保存されたコンピュータデータをナラティブな散文(narrative prose)として解釈するユーザインターフェースに関する。さらなる態様は、テキスト又は音声テキスト入力からインターフェースを通じて収集されるコンピュータ入力に関する。さらなる態様は、身体障害のある又は盲目のプレーヤーが利用可能なコンピュータインターフェースに関する。
【発明の概要】
【0003】
1つ又は複数の例示的な実施例において、システムは、入力デバイス及び出力デバイスを備えるコンピュータデバイスを含む。コンピュータデバイスは、ナラティブエンジン(narrative engine)を実行するようにプログラムされており、ユーザインターフェースを提供するユーザアプリケーションから入力デバイス及び出力デバイスを介して、ユーザインターフェースのコンテンツを記述するオブジェクトメタデータを受信し、拡張された記述は、ユーザインターフェース内の状況の記述及びユーザインターフェースに対して実行されるアクションのリストを含んでおり、そしてユーザインターフェースの拡張された記述を生成し、出力デバイスを用いて拡張された記述を提示し、アクションの1つを要求するユーザ入力を処理し、拡張された記述(又は説明)をユーザ入力に基づいて更新する。
【0004】
1つ又は複数の例示的な実施例において、方法は、コンピュータデバイスの入力デバイス及び出力デバイスを介して、ユーザインターフェースを提供するユーザアプリケーションから、ユーザインターフェースのコンテンツを記述するオブジェクトメタデータを受信するステップと、ユーザインターフェースの拡張記述を生成するステップであって、拡張記述は、ユーザインターフェースの環境の記述及びユーザインターフェースに対して実行されるアクションのリストを含むステップと、出力デバイスを用いて拡張記述を提示するステップと、アクションの1つを要求するユーザ入力を処理するステップと、ユーザ入力に基づいて拡張記述を更新するステップとを含む。
【0005】
1つ又は複数の例示的な実施例において、非一過性のコンピュータ可読媒体は、コンピュータデバイスの1つ又は複数のプロセッサによって実行されたとき、コンピュータデバイスに動作を実行させるナラティブエンジンの命令を含み、当該動作が、コンピュータデバイスに、ユーザインターフェースを提供するユーザアプリケーションからコンピュータデバイスの入力及び出力デバイスを介して、ユーザインターフェースのコンテンツを記述するオブジェクトメタデータ受信し、ナラティブエンジンのアプリケーションプログラミングインターフェース(API)を用いてユーザアプリケーションからオブジェクトメタデータを受信し、APIが、特定のユーザインターフェースのタイプのオブジェクトメタデータへのアクセスを可能にするためにサポートされるユーザインターフェースのタイプ毎の拡張機能を含み、オブジェクトメタデータのプロパティを用いてオブジェクトメタデータをフィルタリングし、オブジェクトメタデータ内の関連オブジェクトを決定し、関連オブジェクトを用いてユーザインターフェースの拡張記述を生成し、拡張記述が、ユーザインターフェースの環境の記述と、ユーザインターフェースに対して実行されるアクションのリストを含み、入力デバイス及び出力デバイスを用いて、拡張記述を、ユーザインターフェースにインターポーズされたオーバーレイとして、又はコンピュータが生成した音声として、1つ又は複数で提示し、アクションの1つを要求するユーザ入力を処理し、ユーザ入力に基づいて拡張記述を更新し、出力デバイスを用いて更新された拡張記述を提示することを含む。
【図面の簡単な説明】
【0006】
図1図1は、ユーザアプリケーションを操作するためのナラティブインターフェースを実装するコンピュータデバイスを含むシステムの一例を示している。
図2図2は、ナラティブインターフェースの実装例のさらなる詳細を示す図である。
図3図3は、2Dゲームのユーザインターフェースにおけるナラティブエンジンの使用例を示す図である。
図4図4は、2Dアプリケーションのユーザインターフェースにおけるナラティブエンジンの使用例を示す図である。
図5図5は、3Dゲームのユーザインターフェースにおけるナラティブエンジンの使用例を示す図である。
図6図6は、ストアアプリケーションのユーザインターフェースにおけるナラティブエンジンの使用例を示す図である。
図7図7は、図6のストアユーザインターフェースに示される財布アイテムのオブジェクトメタデータの一例を示す図である。
図8図8は、ナラティブエンジンの操作のためのメインインターフェースループを示すプロセス例である。
図9図9は、ユーザ入力に応答するナラティブエンジンのプロセス例を示す図である。
【発明を実施するための形態】
【0007】
本開示の実施形態を本明細書で説明する。しかしながら、開示された実施形態は単なる例示であり、他の実施形態は様々な代替形態を取り得ることを理解されたい。図は必ずしも縮尺通りではなく、一部の特徴は、特定の構成要素の詳細を示すために誇張又は最小化され得る。したがって、本明細書に開示された特定の構造的及び機能的な詳細は、限定的なものとして解釈されるものではなく、単に、当業者が実施形態を様々に採用することを教示するための代表的な基礎として解釈されるものである。当業者であれば理解できるように、いずれか1つの図を参照して図示及び説明した様々な特徴を、1つ又は複数の他の図に図示した特徴と組み合わせて、明示的に図示又は説明されていない実施形態を作り出すことができる。図示された特徴の組み合わせは、典型的な用途のための代表的な実施形態を提供する。しかしながら、本開示の教示と一致する特徴の様々な組み合わせ及び改変が、特定の用途のために所望され得る。
【0008】
本開示の態様は、コンピュータユーザインターフェース情報を解釈し、ナラティブな説明的な散文として伝えるためのアプローチに関し、このナラティブな説明的な散文は、テキスト読み上げエンジンによって、表示されかつ音声で発話される。一例として、ビデオゲームのプレーヤーは、自然な音声入力又はテキスト入力を通して、コンピュータゲーム内のイベントを制御又はトリガすることができる。全盲のプレーヤーは、音声出力と、テキスト又は音声入力とで、インターフェースを使用することができる。耳の不自由なプレーヤーは、テキスト及び/又はグラフィック出力と、テキスト入力又は音声入力でインターフェースを使用することができる。利用される音声-テキスト変換やテキスト読み上げは、最新のスマートフォンやパーソナルコンピュータで利用することができる。
【0009】
一例として、ナラティブインターフェースは、ターンベースのコンピュータゲームで使用されると効果的である。他の例では、ナラティブインターフェースは、例えばワープロ又はウェブサイト等の、2Dアプリケーションで使用されると効果的である。さらに別の例では、ナラティブインターフェースは、例えばメタバース又は3Dビデオゲーム等の、3Dアプリケーションとともに使用されると効果的である。
【0010】
図1は、ユーザアプリケーション118の操作のためのナラティブエンジン122を実装するためのコンピュータデバイス102を含む例示的なシステム100を示す。コンピュータデバイス102は、例えばスマートフォン、タブレット、デスクトップコンピュータ、スマートウォッチ、ビデオゲームコンソール、スマートテレビ(TV)、仮想現実(VR)ヘッドセット、拡張現実(AR)メガネ等、様々なタイプのデバイスであってよい。形態にかかわらず、コンピュータデバイス102は、ストレージ106、ネットワークデバイス108、出力デバイス114及び入力デバイス116に動作可能に接続されたプロセッサ104を含む。これは単なる例示であり、より多くの、より少ない、又は異なる構成要素を有するコンピュータデバイス102が使用されてもよいことに留意すべきである。
【0011】
プロセッサ104は、中央処理装置(CPU)及び/又はグラフィックス処理装置(GPU)の機能を実装する1つ又は複数の集積回路を含み得る。いくつかの例では、プロセッサ104は、CPU及びGPUの機能を統合したシステムオンチップ(SoC)である。SoCは、オプションとして、例えば、ストレージ106及びネットワークデバイス108等の他のコンポーネントを、単一の統合デバイスに含めることができる。他の例では、CPUとGPUは、PCI(Peripheral Component Interconnect)エクスプレス又は他の適切な周辺データ接続等の周辺接続デバイスを介して、互いに接続される。一実施例では、CPUは、例えばx86、ARM、Power、又はMIPS(microprocessor without interlocked pipeline stage)の命令セットファミリのうちの1つの命令セットを実装する、市販の中央処理装置である。1つのプロセッサ104のみが示されているが、多くの検討において、コンピュータデバイス102は、様々な相互接続された機能を有する複数のプロセッサ104を含み得ることに留意すべきである。
【0012】
ストレージ106は、不揮発性メモリと揮発性メモリデバイスの両方を含んでもよい。不揮発性メモリは、例えばNAND型フラッシュメモリ等、磁気及び光学記憶媒体、又はシステムが非活性化されるか電力を失ったときにデータを保持する任意の他の適切なデータ記憶装置等の固体メモリを含む。揮発性メモリには、システム100の動作中にプログラム命令及びデータを格納する静的及び動的ランダムアクセスメモリ(RAM)が含まれる。
【0013】
ネットワークデバイス108のそれぞれは、コンピュータデバイス102が外部デバイスからデータを送信及び/又は受信することを可能にする、様々なデバイスのいずれかを含み得る。適切なネットワークデバイス108の例には、イーサネットインターフェース、Wi-Fiトランシーバ、セルラトランシーバ、BLUETOOTH若しくはBLUETOOTH Low Energy(BLE)トランシーバ、又は他のコンピュータもしくは外部データストレージデバイスからデータを受信する他のネットワークアダプタもしくは周辺相互接続デバイスが含まれる。
【0014】
一例において、ネットワークデバイス108は、通信ネットワーク112を介して、コンピュータデバイス102が1つ以上のリモートサーバ110又は他のデバイスにアクセスすることを可能にし得る。通信ネットワーク112は、いくつかの非限定的な例として、例えばインターネット、ケーブルテレビ配信ネットワーク、衛星リンクネットワーク、ローカルエリアネットワーク、及び電話ネットワークのような、1つ又は複数の相互接続された通信ネットワークを含んでもよい。リモートサーバ110は、音声テキスト変換、データベースアクセス、アプリケーション及び/又はデータファイルのダウンロード、インターネット検索等、様々なクラウドサービスをコンピュータデバイス102に提供するように構成されたデバイスを含んでよい。
【0015】
出力デバイス114は、電子ディスプレイスクリーン、プロジェクター、プリンター又はグラフィカル表示を再現する他の適切な装置等の、グラフィカル又はビジュアル表示装置を含んでよい。別の例として、出力デバイス114は、例えばラウドスピーカー又はヘッドフォン等のオーディオデバイスを含んでもよい。さらに別の例として、出力デバイス114は、点字キーボード等の触覚デバイスや、点字や他の物理的出力を表示するように構成された、ユーザが触れて近くできる機械的なデバイスを含んでもよい。GPUを含むシステムの場合、GPUプロセッサ104は、少なくとも2次元(2D)の、必要に応じて3次元(3D)グラフィックスを出力デバイス114に表示するためのハードウェア及びソフトウェアを含んでもよい。
【0016】
入力デバイス116は、ユーザからの制御入力をコンピュータデバイス102が受け取ることを可能にする様々なデバイスのいずれかを含み得る。ヒューマンインターフェース入力を受け取る適切な入力デバイス116の例は、キーボード、マウス、トラックボール、タッチスクリーン、マイクロフォン、ヘッドセット及びグラフィックタブレット等を含み得る。
【0017】
動作中、プロセッサ104は、ストレージ106から取り出された記憶されたプログラム命令を実行する。したがって、記憶されたプログラム命令は、プロセッサ104の動作を制御し、本明細書で説明する動作を実行するためのソフトウェアを含む。このソフトウェアは、例えば、1つ以上のユーザアプリケーション118及びナラティブエンジン122を含み得る。
【0018】
ユーザアプリケーション118は、定義されたユーザインターフェース120を有する、プロセッサ104によって実行可能な様々なタイプのソフトウェアアプリケーションを含んでよい。いくつかの例として、ユーザアプリケーション118は、ビデオゲーム、ウェブサイト、ストア、生産性アプリケーション、メタバースコンポーネント等であってもよい。
【0019】
ユーザインターフェース120は、入力デバイス116及び出力デバイス114の使用を通じてユーザとシステム100が相互作用する態様を指す。いくつかの例では、ユーザアプリケーション118は、ウェブサイト又はワードプロセッサのような2Dインターフェースを規定することができる。他の例では、ユーザアプリケーション118は、一人称視点のビデオゲーム又はメタバースアプリケーションのような、3Dインターフェースを規定することができる。さらに別の例では、ユーザアプリケーション118は、コマンドラインアプリケーション又はテキストアドベンチャー等のテキストインターフェースを規定することができる。さらに、いくつかの例では、ユーザインターフェース120は、2Dディスプレイスクリーン等の2方式で、出力デバイス114を介して提示されてもよい。他の例では、ユーザインターフェース120は、VR又はARヘッドセットを使用する等、3D方式で、出力デバイス114を介して提示されてもよい。さらに別の例では、ユーザインターフェース120は、オーディオインターフェースを用いて、出力デバイス114を介して、提示されてもよい。
【0020】
ナラティブエンジン122は、ユーザインターフェース120のバインドソフトウェアアクション又はアクションのシーケンスを、API124を通じて自然言語で使用できるように構成され、これによりユーザはユーザアプリケーション118に対する制御レベルを高めることができる。
【0021】
図2は、ナラティブエンジン122のさらなる態様を示す。示されるように、ナラティブエンジン122は、API124を介して、ユーザインターフェース120からオブジェクトメタデータ202を受信することができる。ナラティブエンジン122は、注意フィルタ204を用いて、オブジェクトメタデータ202を、ユーザに関連する一連の関連オブジェクト206にフィルタリングすることができる。関連オブジェクト206は、オブジェクトインタプリタ208に提供され、インターフェースモデル210が生成される。インターフェースモデル210は、関連オブジェクト206のプロパティ212と利用可能なアクション214を説明することができる。記述生成部(Description creator)216は、インターフェースモデル210、テキストテンプレート217、及びユーザ設定220を用いて、拡張記述(augmented description)218を生成し、API124を介してユーザインターフェース120に提供する。これには、たとえば、オーバーレイ生成部222を用いて、拡張記述218をユーザインターフェース120にテキストとして提供すること、及び/又はテキスト読み上げエンジン224を用いて、拡張記述218をユーザインターフェース120に音声で提供することが含まれる。さらに、ナラティブエンジン122は、API124を介してユーザインターフェース120からユーザ入力226を受け取るように構成されてもよい。このユーザ入力226は、コマンド実行部228に提供され、ユーザアプリケーション118によって処理されてよい。ユーザ入力226はまた、音声テキスト化エンジン230に提供されてよく、これはコマンド認識部234を用いて、インターフェースモデル210内のアクションを識別し、コマンド実行部228に処理のために与えられてよい(例えば、API124又はその他の方法で)。
【0022】
本明細書では、ナラティブエンジン122の例示的なモジュール化について説明するが、ナラティブエンジン122の構成要素は、より少ない構成要素に組み込まれてもよいし、より少ない構成要素に組み合わされてもよいし、単一の構成要素に組み合わされてもよいことに留意されたい。例えば、オブジェクトインタプリタ208、記述生成部216、オーバーレイ生成部222、テキスト読み上げエンジン224、コマンド実行部228、音声テキスト化エンジン230、コマンド認識部234及びコマンド実行部228の各々が別々に記載されているが、これらのコンポーネントは、ハードウェア、及び/又はソフトウェアとハードウェアとの組み合わせにおいて、1つ又は複数のコントローラにより、別々に又は組み合わせて実装されてもよい。
【0023】
オブジェクトメタデータ202は、ユーザインターフェース120内のインターフェース要素の態様を規定する、公開された、又はその他の方法で入手可能な情報を参照してもよい。2Dインターフェースの場合、これらのインターフェース要素は、例えばウィンドウ、ダイアログボックス、ボタン、スライダ、テキストボックス、ウェブページリンク等の2D要素を指してよい。3Dインターフェースの場合、これらのインターフェース要素は、例えば、木、家、アバター、車両のモデル等の、3Dシーン内の3Dメッシュオブジェクトを指してよい。テキストベースのインターフェースの場合、インターフェース要素は、ユーザプロンプト等のテキストブロックや、利用可能なテキストコマンドを表示するために使用されるヘルプコマンドへの応答等の他のテキストベースの情報を指してもよい。
【0024】
API124は、ナラティブエンジン122がユーザインターフェース120からオブジェクトメタデータ202を受信できるようにするために使用されるコンピュータコードを含んでもよい。一例として、Unity又は他の3Dエンジンでレンダリングされるような3Dシーンの場合、レンダリングされる各オブジェクトは、オブジェクトメタデータ202を有してもよい。このオブジェクトメタデータ202は、API124を介して、ナラティブエンジン122によってアクセスされてよい。別の例では、2Dウェブページの場合、ウェブページのハイパーテキスト転送プロトコル(HTTP)マークアップは、API124を介してナラティブエンジン122によって読み取られ得るオブジェクトメタデータ202を含むか、又は他の方法でオブジェクトメタデータ202を規定してよい。さらに別の例では、ウィンドウズアプリケーションの場合、ウィンドウの位置、テキスト及びその他の属性は、デスクトップ上のウィンドウのエニュメレーションを介して、及び/又は他のオペレーティングシステム(OS)レベルのインターフェース機能を介して、API124によってキャプチャされてもよい。さらに別の例では、コンソールアプリケーションの場合、コンソールバッファテキストは、API124を介してナラティブエンジン122によって読み取られてもよい。いくつかの例では、API124は、サポートされる新しいユーザインターフェース120のタイプ毎に作成されるシム又は拡張機能を要求し、ナラティブエンジン122がその特定のユーザインターフェース120のタイプのオブジェクトメタデータ202にアクセスできるようにしてもよい。例えば、レンダリングされたJavaアプリケーションがサポートされる場合、API124にシム又は拡張機能を追加して、レンダリングされたJava制御情報がナラティブエンジン122に公開されるようにしてよい。
【0025】
注意フィルタ204は、オブジェクトメタデータ202を関連オブジェクト206にフィルタリングするように構成されてもよい。例えば、注意フィルタ204は、単に、すべてのオブジェクトメタデータ202の処理を可能にしてもよい。しかし、これは、複雑なインターフェース又は混雑した3Dシーンでは実用的でない場合がある。さらに、例えば、3Dシーン内のユーザの位置、2Dインターフェース内のマウスポインタの位置、ユーザによって実行されている現在のタスク等、ユーザの注意に関連する基準に基づいて考慮されるインターフェース要素の範囲を制限することが望ましい場合がある。一例では、注意フィルタ204は、オブジェクトメタデータ202のプロパティに基づいて、オブジェクトメタデータ202をフィルタリングしてもよい。3Dロケーションの例を続けると、注意フィルタ204は、オブジェクトメタデータ202を、ユーザ又はユーザのアバターから予め定義された距離内にあるオブジェクト、及び/又はユーザの視野内にあるオブジェクトに制限してもよい。2Dの例では、注意フィルタ204は、オブジェクトメタデータ202を、マウスカーソルから予め定義された2Dの距離内にあるコントロール、及び/又は有効になっているインターフェース要素に制限してもよい。
【0026】
オブジェクトインタプリタ208は、関連オブジェクト206を受信し、この受信した関連オブジェクト206に基づいてインターフェースモデル210をコンパイルするように構成される。一例として、オブジェクトインタプリタ208は、注意フィルタ204によってフィルタリングされた関連オブジェクト206のプロパティ212及び利用可能なアクション214を含むものとして、インターフェースモデル210を生成してもよい。そうすることでオブジェクトインタプリタ208は、ユーザインターフェース120内のコンテンツを増大させるためと、ユーザのコマンド選択を改善するためとの両方に使用され得る、一連の情報を作成してもよい。
【0027】
2Dインターフェースの例では、オブジェクトメタデータ202は、コントロールプロパティ212(例えば、名前、所有者、画面位置、テキスト、ボタン識別子(ID)、リンク参照ID等)等のプロパティ212情報を含んでもよい。また、オブジェクトメタデータ202は、ボタンを押す又はアクティブにする、場所にスクロールする、テキストを受信する、テキストを削除する等の、利用可能なアクション214を含んでもよい。3Dインターフェースの例では、オブジェクトメタデータ202は、プロパティ212情報(例えば、メッシュ名、クリエータID、モデルID、色、シェーディング、テクスチャ、サイズ、位置等)を含んでもよい。利用可能なアクション214は、オブジェクトを移動させる、ドアを開ける、車を発進させる、車の速度又は方向を調整する等の態様を含んでもよい。テキストインターフェースの例では、オブジェクトメタデータ202は、プロンプトのテキスト等のプロパティ212情報を含んでもよい。利用可能なアクション214は、コマンドラインによって公開されるテキストコマンドを含んでもよい。例えば、ヘルプコマンドを発行して、利用可能なテキストコマンドを表示してもよい。
【0028】
記述生成部216は、ユーザインターフェース120を拡張するために、インターフェースモデル210の拡張記述(augmented description)218を生成するように構成されてもよい。一例において、記述生成部216は、関連オブジェクト206のプロパティ212を記述する自然言語を生成してもよい。別の例では、記述生成部216は、関連オブジェクト206の利用可能なアクション214を記述する自然言語を生成してもよい。
【0029】
一例では、記述生成部216は、テキストテンプレート217を用いて、関連オブジェクト206のメタデータに基づいて自然言語の記述を提供してもよい。各テンプレート217は、記述される関連オブジェクト206のプロパティ212又は利用可能なアクション214の値のための、1つ又は複数のプレースホルダとともに、自然言語テキストを含んでもよい。値のプレースホルダが関連オブジェクト206のメタデータによって指定される場合、テンプレート217は、関連オブジェクト206又は一連の関連オブジェクト206に適用されてよい。本明細書の例に示すように、プロパティ212及び使用可能なアクション214の名前は、テンプレート217において角括弧内で指定されるが、これは単なる例であり、パラメータ化テキストのための他のアプローチが使用されてもよい(例えば、プロンプト情報から自然言語テキストを生成するためのAI技術の使用等)。
【0030】
一例では、環境を記述する情報を生成するために、記述生成部216は、“あなたは[アプリケーション名]を用いています”、又は“[オブジェクト名]の近くにいます”、又は“あなたは[方向]を向いています”、又は“[属性]である[オブジェクト名]が近くにあります”等のテンプレート217を利用することができる。例えば、インターフェースモデル210内の関連オブジェクト206の1つにアプリケーション名のプロパティ212が指定されている場合、テンプレート217“[アプリケーション名]を用いています”が使用されてもよい。
【0031】
別の例では、利用可能なアクション214のリストを生成するために、記述生成部216は、例えば、“ここから、あなたは、[コンマで区切られたリストにフォーマットされた利用可能なアクション214のリスト]ができます”のようなテンプレート217を利用することができ、ここで利用可能なアクション214の各々は、コマンド名、ツールチップテキスト、属性名等のメタデータに基づいてリストされてよい。拡張記述218の作成の態様はまた、ユーザ設定220に基づいてもよい。例えば、ユーザ設定220は、拡張記述218の生成のための冗長性のレベルを示してもよい(例えば、属性の簡潔なリストに対して完全な文であるテンプレート217を使用する)。
【0032】
オーバーレイ生成部222は、ユーザインターフェース120の出力デバイス(複数可)114を介して、拡張記述218をユーザに視覚的に提供するように構成されてもよい。一例において、オーバーレイ生成部222は、拡張記述218を、テキスト情報として(例えば、高コントラストの色及び/又はフォントで)既存のディスプレイの上に提供してもよい。
【0033】
テキスト読み上げエンジン224は、ユーザインターフェース120の出力デバイス114を介して、拡張記述218をユーザに音声で提供するように構成される場合がある。一例として、テキスト読み上げエンジン224は、様々な音声合成技術のいずれかを用いて、通常の言語テキストを音声に変換し、これをスピーカ、ヘッドフォン、又は他の音声出力デバイス114を介して再生してもよい。
【0034】
いくつかの例では、ユーザ設定220はさらに、記述生成部216がどのように拡張記述218をユーザに提供すべきかを示してもよい。これらのユーザ設定220は、ユーザの障害のレベル又はタイプに基づいてもよい。例えば、ユーザが視覚障害者である場合、ユーザ設定220は、テキスト読み上げエンジン224を介して拡張記述218がユーザに話されることを示してもよい。あるいは、ユーザが聴覚障害者である場合、ユーザ設定220は、オーバーレイ生成部222を介して拡張記述218がユーザに表示されることを示してもよい。これらの設定は、ユーザに障害がある場合以外の状況で使用されてもよいことに留意されたい。たとえば、騒音レベルのために聞き取れない可能性のある情報を説明するためにオーバーレイ生成部222を使用することによって、大音量の部屋でのアプリケーションの使用を可能にするために、これらの設定が使用されてもよい。
【0035】
コマンド実行部228は、ユーザによって要求された利用可能なアクション214をナラティブエンジン122に実行させるように構成されてもよい。コマンド実行部228は、ユーザインターフェース120の1つ以上の入力デバイス116からユーザ入力226を受け取ってよい。いくつかの例では、ユーザ入力226は、ナラティブエンジン122による処理なしにユーザアプリケーション118が理解し得るアクションを含んでよい。たとえば、ユーザ入力226は、利用可能なアクション214の1つにマッピングされたコントロールを押すことを含んでもよい。このような例では、ナラティブエンジン122のコマンド実行部228は、処理のためにユーザ入力226をユーザアプリケーション118に渡すだけでもよい。
【0036】
他の例では、ユーザ入力226は、拡張記述218によって示されるコマンドを実行する指示であってもよいが、ユーザアプリケーション118が処理できない可能性がある方法で実行されてよい。例えば、拡張記述218は、ユーザが特定のコマンドを口に出して実行させることを示してよい。しかし、ユーザアプリケーション118は音声サポートを欠いていてもよい。したがって、ユーザ入力226は、ナラティブエンジン122の音声テキスト化エンジン230にさらに提供されて、この音声テキスト化エンジン230が、ユーザ入力226を、本明細書では認識テキスト232と呼ばれるテキスト表現に処理してもよい。
【0037】
コマンド認識部234は、認識テキスト232を受信し、認識テキスト232を処理して、利用可能なアクション214のうち何らかの実行するものがあれば、それを特定してもよい。例えば、コマンド認識部234は、認識テキスト232をスキャンして、アクションワード(例えば、インターフェースモデル210内の利用可能なアクション214の名前)を探してもよい。別の例では、コマンド認識部234は、“help”等の予め定義された動詞又は他のアクションをスキャンしてもよい。そのような利用可能なアクション214が見つかった場合、コマンド認識部234は、話された利用可能なアクション214を実行するようにコマンド実行部228に指示してよい。
【0038】
図3は、2Dゲームのユーザインターフェース120に対するナラティブエンジン122の使用例を示す。この例は動的に作成されたテキストブロック(動的テキストブロックともいう)302を示しており、これは拡張記述218を含んでおり、2Dゲームのユーザアプリケーション118とともにユーザインターフェース120に表示される。
【0039】
示されるように、ユーザインターフェース120は、ゲームユーザアプリケーション118によってスクリーン出力デバイス114に提示されるさまざまなオブジェクトを含む。各オブジェクトは、API124を介してナラティブエンジン122によってアクセスされ得る様々なオブジェクトメタデータ202を公開してよい。たとえば、API124は、ユーザインターフェース120のゲームオブジェクトをナラティブエンジン122が列挙できるように構成されてもよい。この受け取ったデータに基づいて、ナラティブエンジン122は、拡張記述218を構築してもよい。拡張記述218は、動的テキストブロック302に表示され、ディスプレイ出力デバイス114に表示されてよい。
【0040】
多くの例では、動的テキストブロック302は、最初にユーザの環境(surroundings)の記述を含み、それから利用可能なアクション214が続いてよい。動的テキストブロック302の各要素は、プレーヤアバター310の位置、プレーヤアバター310の視線308内にあるゲームオブジェクト312、又はオーディオイベントの説明を参照する。例えば、動的テキストブロック302は、フレーズ303「あなたは、脱出不可能な部屋に立っている。」で始まる。このフレーズ303のテキストは、ユーザがいる場所で発生するオーディオイベントの説明から取得されてよい。動的テキストブロック302内のフレーズ304「近くに鍵がある。」は、プレーヤアバター310の視線308としてマークされた領域内にあるキーゲームオブジェクト316を指している。動的テキストブロック302内のフレーズ306「北に出口がある。」は、プレーヤアバター310の視線308としてマークされた領域内にあるドアゲームオブジェクト314を直接指している。
【0041】
注意フィルタ204は、プレーヤアバター310の位置を受信し、プレーヤアバター310及び/又は視線308を用いて、オブジェクトメタデータ202から関連オブジェクト206を決定してもよい。一例において、注意フィルタ204は、関連オブジェクト206として、任意のインターフェース要素を含むように視線308を定義してもよく、この任意のインターフェース要素は、プレーヤアバター310の現在の部屋の位置と同じ部屋に要素があることを示すオブジェクトメタデータ202を有してよい(例えば、ドアゲームオブジェクト314、キーゲームオブジェクト316)。これらの関連オブジェクト206は、オブジェクトインタプリタ208によってインターフェースモデル210に含められてよい。例えば他の部屋の鍵や他の部屋の出入り口等の他のオブジェクトは、関連性がなく、拡張記述218に含まれない。
【0042】
拡張記述218のテキストは、インターフェースモデル210の関連オブジェクト206のプロパティ212が適合するテキストテンプレート217を用いてコンパイルされてよい。例えば、テンプレート217「近くに、[オブジェクト名]があります」は、そのオブジェクトが、オブジェクト名のプロパティ212を有し、かつプレーヤアバター310の視線308内にあるときに、キーゲームオブジェクト316のために利用されてよい。
【0043】
動的テキストブロック302には示されていないが、インターフェースモデル210は、1つ以上の利用可能なアクション214をさらに含んでもよい。これらは、ユーザによって呼び出され得るコマンドとして利用可能であってもよい。例えば、キーゲームオブジェクト316はピックアップ方法を指定することができ、この方法は、インターフェースモデル210の利用可能なアクション214に追加されてよく、ユーザがキーとピックアップアクションを含むコマンドを言うと、コマンド認識部234が要求されたコマンドを識別し、処理のためにコマンド実行部228に送信するようにしてよい。
【0044】
図4は、2Dアプリケーションのユーザインターフェース120に対するナラティブエンジン122の使用例を示す。この例では、拡張記述218を含む動的テキストブロック402を示しており、これは2Dユーザアプリケーション118とともに、ユーザインターフェース120に表示される。
【0045】
示されるように、動的テキストブロック402は、2Dユーザアプリケーション118を説明する様々な情報を含む。例えば、動的テキストブロック402は、アプリケーション名を示すフレーズ404を含んでもよい。これは、関連オブジェクト206から取得されたインフォーカスアプリケーションの名前を用いて生成されてよく、例えば「あなたは[アプリケーション名]を用いています。」のようなアプリケーション名を受け取るテンプレート217に適用されてよい。
【0046】
動的テキストブロック402の追加要素は、ソフトウェア内の関連オブジェクト206(例えばフレーズ404に示されるような)や、頻繁に使用されるメニュー項目又は機能(例えば、フレーズ406に示されるような)によって表される潜在的なユーザのアクションを参照してもよい。動的テキストブロック402のフレーズ408「あなたの“ピン留め”したメモは、“買い物”と“To-Do”です。」は、ユーザが要素410によってユーザインターフェース120に示されるようにそれらの項目をピン留めしており、それらのノートが比較的重要であることを示しているため、動的テキストブロック402で優先されて早い位置に配置されてもよい。
【0047】
多くの例では、動的テキストブロック402は、ユーザの状況の説明を最初に含み、その後に利用可能なアクション214が続いてよい。ここで、利用可能なアクション214は、例えば、新しいメモを作成する、メモを検索する、タイトルによりメモを選択する等、ユーザインターフェース120で利用可能なメニューコマンドを含んでよい。この順序は単なる一例であり、プロパティ212と利用可能なアクション214の他の順序が用いられてもよい。
【0048】
図5は、3Dゲームのユーザインターフェース120に対するナラティブエンジン122の使用例を示す。この例では、拡張記述218を含む動的テキストブロック502を示しており、これは、3Dアプリケーションのユーザアプリケーション118とともにユーザインターフェース120に表示される。
【0049】
示されるように、動的テキストブロック502は、3Dユーザアプリケーション118を説明する様々な情報を含む。例えば、動的テキストブロック502は、3Dアプリケーション内のユーザの位置を示すフレーズ503を含んでもよい。これは、ユーザの位置に最も近い関連オブジェクト206に基づいて選択されてよい。ここでは、家のオブジェクト510がユーザに最も近い。いくつかの例では、ユーザが位置するマップのセクションはマップエリア等のプロパティ212でマークされてもよく、選択されたオブジェクトはランドマークオブジェクト等のプロパティ212でマークされてもよく、ナラティブエンジン122は、「あなたは、[マップエリア]の[ランドマークオブジェクト]の近くにいます。」等のテンプレート217を用いてもよい。
【0050】
別の例では、動的テキストブロック502は、インターフェースモデル210に含まれる他のユーザの数を説明するフレーズ508を含んでもよい。例えば、テンプレート217は、「[数][オブジェクトタイプ]がここにいる(ある)」のように使用されてよい。ここで、“オブジェクトタイプ”は、インターフェースモデル210内の関連オブジェクト206の1つ又は複数のタイプのプロパティ212であり、“数”は、その同じタイプを有するそれらの関連オブジェクト206の数である。
【0051】
動的テキストブロック502は、ユーザがユーザアプリケーション118とともに行っている進行中のインタラクションに関するコンテキスト認識情報を含んでもよい。この例では、ユーザの1人(ダニー)が選択されており、そのユーザに関連するコマンドのメニューがユーザインターフェース120で利用可能である。したがって、動的テキストブロック502には、ユーザであるダニーとのやりとりが調整されているコンテキストを説明するフレーズ504が含まれてもよい。さらに、例えば、「ここから、[カンマで区切られたリストにフォーマットされた利用可能なアクション214のリスト]ができます」等、利用可能なアクション214のリストを含むフレーズ506が提供されてもよい。ここで、利用可能なアクション214の各々は、選択されたダニーの関連オブジェクト206のメソッドメタデータに基づいてリストアップされてもよい。したがって、ここでもまた、拡張記述218は、最初にユーザのコンテキストの説明を含み、続いて利用可能なアクション214を含むが、他の順序であってもよい。
【0052】
図6は、ストアアプリケーションのユーザインターフェース120のためのナラティブエンジン122の使用例を示す。このストアは、ユーザが、例に示すような財布等のアイテムを買い物できるようにしてもよい。いくつかの例として、ストアのユーザインターフェース120は、ウェブアプリケーション又はモバイルアプリを介してユーザに提示されてもよい。別の例では、ストアユーザインターフェース120は、メタバースストアのような3Dユーザインターフェース120の一部として提示されてもよい。メタバースの例では、ユーザは、例えば、仮想アシスタントへの音声コマンドを用いて目的地として店舗を設定することにより、店舗レベルに入り、商品店舗に移動してもよい。
【0053】
ユーザは、特定のブランドの財布を求めるようなコマンドを、自然な話し言葉又はテキストで提供することができる。ユーザインターフェース120は、そのコマンドに応答して提供されてよい。示されるように、財布の名前602は、財布のメッシュ604、財布の記述606、及び様々なスタイル608のリストと共に提示される。スタイル608の各々は、そのスタイル608に対応するテクスチャ610及び価格612を含んでもよい。ユーザインターフェース120はまた、高さ、奥行き、幅、重さ、ショルダーストラップの長さ等のアイテムのサイズ614の情報を含んでもよい。
【0054】
図7は、図6のストアのユーザインターフェース120に示された財布アイテムのオブジェクトメタデータ202の例を示す。例えば、オブジェクトメタデータ202は、財布の名前602、財布に対応するメッシュ604、財布の記述606、及び財布のスタイル608のセットを指定することができ、各スタイル608は、それぞれのテクスチャ610及び価格612を含んでもよい。さらに、現在選択されているテクスチャ610は、メッシュ604がどのようにテクスチャされるかを記述するために、選択されたテクスチャタグで指定されてもよい。
【0055】
オブジェクトメタデータ202は、ユーザインターフェース120自体をレンダリングするのに使用されてもよい。さらに、オブジェクトメタデータ202は、API124を介してユーザインターフェース120から受信され、注意フィルタ204及びオブジェクトインタプリタ208によってインターフェースモデル210にコンパイルされ、ナラティブエンジン122がストアユーザインターフェース120のプレゼンテーションに追加のアクセス可能な機能を提供できるようにしてもよい。オブジェクトメタデータ202がJavaScriptオブジェクト記法(JSON)で示されているが、これは単に一例であり、オブジェクトメタデータ202の様々なフォーマットが使用されてもよいことに留意されたい。
【0056】
たとえば、ナラティブエンジン122を受け付けるナラティブエンジン122は、注意フィルタ204を用いて、ストアの財布の部分で利用可能な関連オブジェクト206までオブジェクトメタデータ202をフィルタリングし、その一方で、オブジェクトインタプリタ208を用いて、関連オブジェクト206のインターフェースモデル210を生成してもよい。ユーザインターフェース120が表示されることに応答して、ナラティブエンジン122は、拡張記述218を構築してもよい。一例では、拡張記述218は、自然言語で、財布の名前602、財布の記述606、及び様々なスタイルのリスト608を示す拡張記述218を含んでもよい。ナラティブエンジン122は、テキスト読み上げエンジン224を用いて、拡張記述218を話し始めてもよい。
【0057】
対話例では、ユーザは、完全な拡張記述218がナラティブエンジン122によって読まれる前に中断し、「茶色の革はありますか?」と言うことができる。ナラティブエンジン122は、ユーザ入力226の受信に応答して、音声テキスト化エンジン230を用いて、ユーザ入力226を認識テキスト232に変換してもよい。コマンド認識部234は、認識テキスト232を用いて、利用可能なアクション214を識別してよい。一例では、スタイル608のリストは、スタイル608からの選択をサポートするインターフェースモデル210の利用可能なアクション214にコンパイルされてもよい。利用可能なアクション214は、“茶色の革”という単語を含む単一のスタイル608を含んでもよい。ナラティブエンジン122は、「スタイルは、“ブラウンレザーのエクステリア、タンラムスキンのインテリア”を含む。このスタイルの価格は5200ドルです。」という応答を構築してもよい。
【0058】
さらなる対話例では、ユーザは「サイズは?」と尋ねてもよい。ここでも、ナラティブエンジン122は、音声テキスト化エンジン230を用いて、ユーザ入力226を認識テキスト232に変換してもよい。コマンド認識部234は、認識テキスト232を用いて、インターフェースモデル210にサイズのプロパティ212があることを認識し、例えば、「財布は、21cmの高さ、11cmの深さ、27cmの幅、0.6kgの重さ、及び54.5cmのショルダーストラップの落差を有する」等、財布のサイズ614を言うフェーズを構築してもよい。重要なことは、ナラティブエンジン122による財布オブジェクトの追加の知識なしに、質問に対する答えがインターフェースモデル210から得られてもよい。
【0059】
図8は、ナラティブエンジン122の操作のためのメインインターフェースループを示す例示的なプロセス800を示す。一例では、本明細書で詳細に説明するように、プロセス800は、ナラティブエンジン122及びユーザアプリケーション118を実行するコンピュータデバイス102によって実行されてよい。
【0060】
操作802において、ナラティブエンジン122はオブジェクトメタデータ202を受け取る。一例では、ナラティブエンジン122は、API124を用いて、ユーザインターフェース120からオブジェクトメタデータ202をキャプチャするか又は他の方法で受信する。一例では、Unity又は他の3Dエンジンでレンダリングされるような3Dシーンの場合、レンダリングされる各オブジェクトは、API124によってキャプチャされ得るオブジェクトメタデータ202を有していてもよい。別の例では、2Dウェブページの場合、ウェブページのHTTPマークアップは、API124を介してナラティブエンジン122によって読み取られ得るオブジェクトメタデータ202を含むか又は他の方法で定義してもよい。さらに別の例では、ウィンドウの位置、テキスト及び他の属性は、デスクトップ上のウィンドウの列挙を介して、及び/又は他のOSレベルのインターフェース機能を用いて、API124によってキャプチャされてもよい。さらに別の例では、コンソールアプリケーションの場合、コンソールバッファテキストは、API124を介してナラティブエンジン122によって読み取られてよい。
【0061】
操作804において、ナラティブエンジン122は、ユーザの周辺環境を記述する。これには、注意フィルタ204を用いてオブジェクトメタデータ202をフィルタリングして関連オブジェクト206を決定するステップと、オブジェクトインタプリタ208を用いてインターフェースモデル210を構築するステップと、記述生成部216を用いて関連オブジェクト206のプロパティ212に基づいて拡張記述218を生成するステップとが含まれてよい。
【0062】
一例では、ナラティブエンジン122の注意フィルタ204は、操作802で受信したオブジェクトメタデータ202を、関連オブジェクト206にフィルタリングしてもよい。ビデオゲームの場合、このオブジェクトメタデータ202は、どのように定義されるにせよ、視線308内、又は他の方法でユーザの近くにあるゲームオブジェクト312を含んでもよい。2Dアプリケーション(例えば、ワードプロセッサ、他の生産性アプリケーション、ウェブページ等)の場合、オブジェクトメタデータ202は、ユーザインターフェース120を構成するウィンドウ、ダイアログボックス、ボタン、スライダ、テキストボックス、ウェブページリンク等を参照してもよい。コンソールアプリケーションの場合、オブジェクトメタデータ202は、コンソールに表示されるテキストを含んでもよい。いくつかの例では、注意フィルタ204は、単に、すべてのオブジェクトメタデータ202の処理を可能にしてもよい。他の例では、コンテキストをより関連性の高い環境に絞り込むために、注意フィルタ204は、オブジェクトメタデータ202を、オブジェクトメタデータ202のプロパティ212に基づいてフィルタリングしてもよく、例えば、オブジェクトメタデータ202を、ユーザから予め定義された距離内にあるオブジェクト、及び/又はユーザの視野内にあるオブジェクトに限定してもよく、オブジェクトメタデータ202をマウスカーソルから予め定義された2D距離内にあるコントロールに限定してもよく、及び/又はオブジェクトメタデータ202を、有効化されているインターフェース要素に限定してもよい。
【0063】
記述生成部216は、関連オブジェクト206のプロパティ212を記述する自然言語を生成してもよい。別の例では、記述生成部216は、関連オブジェクト206の利用可能なアクション214を記述する自然言語を生成してもよい。記述生成部216は、テキストテンプレート217を用いて、関連オブジェクト206のメタデータに基づいて自然言語の記述を提供してもよい。各テンプレート217は、記述される関連オブジェクト206のプロパティ212又は利用可能なアクション214の値のための1つ又は複数のプレースホルダとともに、自然言語テキストを含んでもよい。例えば、環境を記述する情報を生成するために、記述生成部216は、「あなたは[アプリケーション名]を用いています」、又は「あなたは[オブジェクト名]の近くに位置しています」、又は「あなたは[方向]を向いています」、又は「近くに[属性]である[オブジェクト名]があります」等のテンプレート217を用いてもよい。
【0064】
操作806において、ナラティブエンジン122は、ユーザインターフェース120内の対話型オブジェクトを一覧表示する。操作804と同様に、ナラティブエンジン122は、再び記述生成部216を用いて、関連オブジェクト206のプロパティ212に基づいて拡張記述218を生成してよい。しかしながら、この例では、利用可能なアクション214は、ユーザによってユーザインターフェース120で実行され得る利用可能なコマンドのリストを構築するために使用されてよい。例えば、「ここから、[カンマ区切りのリストにフォーマットされた利用可能なアクション214のリスト]ができます」のように、利用可能なアクション214のリストを含むフレーズが提供されてもよく、ここで、利用可能なアクション214の各々は、選択された関連オブジェクト206のメソッドメタデータに基づいてリストアップされてもよい。例えば、キーゲームオブジェクト316が、インターフェースモデル210にピックアップ可能アクション214を有する場合、記述生成部216は、キーをピックアップするコマンドが利用可能であることを示す文又はフレーズを拡張記述218に追加してもよい。
【0065】
操作810において、ナラティブエンジン122は、拡張記述218をユーザインターフェース120に提示する。一例では、ナラティブエンジン122は、テキスト読み上げエンジン224を用いて、拡張記述218をシミュレートされた人間の音声に変換し、その音声をスピーカ又はヘッドフォン等の音声出力デバイス114に提供してよい。別の例では、ナラティブエンジン122は、オーバーレイ生成部222を用いて、拡張記述218の視覚的テキスト表現を作成し、ディスプレイ出力デバイス114を介してユーザインターフェース120の既存のコンテキストの上に提供してもよい。ユーザ設定220は、拡張記述218を視覚的に提示するか、聴覚的に提示するか、両方提示するか、又は何らかの他の方法で提示するかを決定するために利用されてよい。例えば、ユーザ設定220は、ユーザの障害のレベル又はタイプに基づいて、拡張記述218をどのように提示するかを決めてよい。
【0066】
操作812において、ナラティブエンジン122はユーザ入力226を処理する。この処理は、API124を介してユーザインターフェース120からユーザ入力226を受信すること、ユーザ入力226を音声テキスト化エンジン230に提供して認識テキスト232を生成すること、及びコマンド認識部234によって使用されて、(例えば、API124を介して又はその他の方法で)処理のためにコマンド実行部228に与えられるインターフェースモデル210内のアクションを識別することを含んでもよい。ユーザ入力226の処理のさらなる態様については、プロセス900に関して詳細に説明する。
【0067】
操作814において、ナラティブエンジン122はユーザ入力226に基づいてアップデートする。一例では、操作812におけるユーザ入力226は、ユーザインターフェース120の状態を変更し得る1つ又は複数のコマンドの実行を含んでもよい。これにより、ナラティブエンジン122は、操作802に戻って、オブジェクトメタデータ202を再び受付け、インターフェースモデル210を更新し、新しい拡張記述218を生成する等の動作を行ってよい。いくつかの例では、ナラティブエンジン122がユーザ入力226の結果ではないユーザインターフェース120の変化を検出する、又はナラティブエンジン122が更新を実行する周期的タイムアウトの満了に基づく等、他の条件に基づいて制御が操作802に渡されてもよい。
【0068】
図9は、ナラティブエンジン122がユーザ入力226に応答するためのプロセス900の例を示す。プロセス800と同様に、プロセス900は、本明細書で詳細に論じるように、ナラティブエンジン122及びユーザアプリケーション118を実行するコンピュータデバイス102によって実行されてよい。
【0069】
操作902で、ナラティブエンジン122はユーザ入力226を受け取る。ユーザ入力226は、1つ又は複数の入力デバイス116を介してコンピュータデバイス102に受信されてよい。ユーザ入力226は、コンピュータデバイス102によってユーザアプリケーション118に提供されてもよい。ユーザ入力226はまた、ナラティブインターフェースの操作を容易にするための追加処理のために、ナラティブエンジン122に提供されてよい。
【0070】
操作904において、ナラティブエンジン122は、ユーザ入力226が音声を含むかテキストを含むかを決定する。ユーザ入力226が音声入力、たとえばマイクから受信されたものである場合、制御は操作906に進む。そうでない場合、制御は操作908に進む。
【0071】
操作906で、ナラティブエンジン122は音声を認識テキスト232に変換する。一例では、ナラティブエンジン122は、音声テキスト化エンジン230を用いて、ユーザ入力226を、認識テキスト232としてのテキスト表現に解析する。操作906の後、制御は操作908に進む。
【0072】
操作908において、ナラティブエンジン122は、認識テキスト232を解析する。一例では、コマンド認識部234は、認識テキスト232を受信し、認識テキスト232を処理して、利用可能なアクション214のうちどれを実行するかを特定してよい。例えば、コマンド認識部234は、認識テキスト232をスキャンして、アクションワード、例えば、インターフェースモデル210内の利用可能なアクション214の名前を検索することができる。別の例では、コマンド認識部234は、例えば「ヘルプ」等の予め決められた動詞又は他のアクションをスキャンしてもよい。
【0073】
操作910で、ナラティブエンジン122は、アクションが存在するかどうかを判定する。そのような利用可能なアクション214が見つかった場合、制御は操作912に移る。そうでない場合、制御は操作914に移る。操作912において、ナラティブエンジン122は、アクションが実行可能かどうかを決定する。一例では、ナラティブエンジン122は、アクションがユーザアプリケーション118のアーキテクチャ内で起こり得ることを確認してよい。そうでない場合、制御は操作914に移る。
【0074】
操作914で、ナラティブエンジン122は、発生したエラーを記述する。一例では、エラーは、認識テキスト232においてアクションが検出されなかったことを示してもよい。そのような例では、エラーは、認識テキスト232に利用可能なアクション214が見つからなかったことを示してもよい。別の例では、エラーは、指示された関連オブジェクト206に対して利用可能なアクション214を実行できないことを示してもよい。一例として、認識テキスト232「車を拾う」は、「拾う」というアクションが鍵等の他のオブジェクトに対して利用可能であるにもかかわらず、実行できなくてもよい。このような例では、「車は、拾うというアクションをサポートしていない」というエラーが表示されてよい。いくつかの例では、このエラーは、テキスト読み上げエンジン224を介して、又はオーバーレイ生成部222を介して、ユーザに返されてよい。
【0075】
操作916で、ナラティブエンジン122はアクションを実行する。たとえば、ナラティブエンジン122は、コマンド認識部234に指示して、話された利用可能なアクション214をコマンド実行部228に実行するように指示することができる。操作916の後、制御は操作902に戻る。
【0076】
プロセス800~900はループ状のシーケンスで示されているが、多くの実施例において、プロセス800~900は連続的に実行されてもよい。またプロセス800~900に示されるように、、プロセス800~900の1つ又は複数の動作が、同時に実行されてよく、及び/又は順序から外れて実行されてもよい。
【0077】
したがって、ナラティブエンジン122は、ユーザアプリケーション118の情報を評価し、それをテキストとして、及び/又は音声としてユーザに提示してもよい。次に、ナラティブエンジン122は、ユーザからのテキスト又は音声等のユーザ入力226を処理する。この入力は、アプリケーション機能をトリガするために使用されてよい。
【0078】
本明細書で開示されるプロセス、方法、又はアルゴリズムは、処理装置、コントローラ、又はコンピュータに配信可能であり、処理装置、コントローラ、又はコンピュータによって実施可能であり、既存の任意のプログラマブル電子制御ユニット又は専用電子制御ユニットを含むことができる。同様に、プロセス、方法、又はアルゴリズムは、コントローラ又はコンピュータによって実行可能なデータ及び命令として、読み取り専用メモリ(ROM)デバイス等の書き込み不可能な記憶媒体に永久的に記憶された情報、及びフロッピーディスク、磁気テープ、コンパクトディスク(CD)、RAMデバイス、及び他の磁気媒体及び光学媒体等の書き込み可能な記憶媒体に変更可能に記憶された情報を含むが、これらに限定されない多くの形態で記憶することができる。プロセス、方法、又はアルゴリズムは、ソフトウェア実行可能オブジェクトに実装することもできる。あるいは、プロセス、方法、又はアルゴリズムは、ASIC(特定用途向け集積回路)、FPGA(Field-Programmable Gate Array)、ステートマシン、コントローラ、又は他のハードウェアコンポーネントもしくはデバイス等の適切なハードウェアコンポーネント、又はハードウェア、ソフトウェア、及びファームウェアコンポーネントの組み合わせを用いて、全体又は一部を具体化することができる。
【0079】
例示的な実施形態を上述したが、これらの実施形態が特許請求の範囲に包含される全ての可能な形態を説明することを意図するものではない。本明細書で使用される言葉は、限定ではなく説明の言葉であり、本開示の精神及び範囲から逸脱することなく様々な変更が可能であることが理解される。先に説明したように、様々な実施形態の特徴を組み合わせて、明示的に記載又は図示されていない可能性のある本発明のさらなる実施形態を形成することができる。様々な実施形態は、1つ又は複数の所望の特性に関して、他の実施形態又は先行技術の実施形態よりも利点を提供するか、又は好ましいものとして説明され得るが、当業者は、特定の用途及び実施形態に依存する所望の全体的なシステム属性を達成するために、1つ又は複数の特徴又は特性が妥協され得ることを認識する。これらの属性には、強度、耐久性、ライフサイクル、市場性、外観、パッケージング、サイズ、サービス性、重量、製造可能性、組立容易性等が含まれ得るが、これらに限定されない。このように、任意の実施形態が、1つ又は複数の特性に関して他の実施形態又は従来技術の実施形態よりも望ましくないと記載されている限りにおいて、これらの実施形態は、本開示の範囲外ではなく、特定の用途にとって望ましくあり得る。
【0080】
本明細書に記載されたプロセス、システム、方法、ヒューリスティックス等に関して、そのようなプロセス等のステップは、ある順序に従って発生するものとして記載されてきたが、そのようなプロセスは、記載されたステップが本明細書に記載された順序以外の順序で実行されても実施され得ることが理解されるべきである。さらに、特定のステップが同時に実行され得ること、他のステップが追加され得ること、又は本明細書に記載される特定のステップが省略され得ることが理解されるべきである。換言すれば、本明細書における工程の説明は、特定の実施形態を例示する目的で提供され、決して特許請求の範囲を限定するように解釈されるべきではない。
【0081】
したがって、上記の説明は例示であって制限的なものではないことを理解されたい。提供された例以外の多くの実施形態及び適用は、上記の説明を読めば明らかであろう。範囲は、上記の説明を参照して決定されるべきではなく、代わりに、添付の特許請求の範囲を参照して、そのような特許請求の範囲が権利を有する等価物の全範囲と共に決定されるべきである。本明細書で議論される技術において将来の発展が起こり、開示されるシステム及び方法がそのような将来の実施形態に組み込まれることが予期され、意図される。まとめると、本出願は修正及び変形が可能であることを理解されたい。
【0082】
特許請求の範囲において使用される全ての用語は、本明細書において反対の明示的な指示がなされない限り、本明細書に記載される技術に精通する者によって理解されるように、最も広く合理的な解釈及び通常の意味を与えられることが意図される。特に、“a”、“the”、“said”等の単数冠詞の使用は、特許請求の範囲に反対の明示的な限定が記載されていない限り、示された要素の1つ以上を記載するものと読み取るべきである。
【0083】
本開示の要約は、読者が本技術開示の性質を迅速に把握できるようにするために提供されるものである。本開示の要約は、特許請求の範囲の範囲又は意味を解釈又は制限するために使用されないことを理解した上で提出される。さらに、前述の詳細な説明では、開示を合理化する目的で、様々な実施形態において様々な特徴がグループ化されていることが分かる。この開示方法は、特許請求される実施形態が、各請求項に明示的に記載されているよりも多くの特徴を必要とするという意図を反映していると解釈されるべきではない。むしろ、以下の請求項が反映するように、発明的主題は、単一の開示された実施形態の全ての特徴よりも少ない特徴にある。従って、以下の特許請求の範囲は、各請求項が別個に特許請求される主題としてそれ自体で成り立つ状態で、本明細書に組み込まれる。
【0084】
例示的な実施形態が上述されているが、これらの実施形態が本発明の全ての可能な形態を説明することを意図するものではない。むしろ、本明細書で使用される言葉は、限定ではなく説明の言葉であり、本発明の精神及び範囲から逸脱することなく様々な変更がなされ得ることが理解される。さらに、様々な実施形態の特徴を組み合わせて、本発明のさらなる実施形態を形成することもできる。

図1
図2
図3
図4
図5
図6
図7
図8
図9
【国際調査報告】