(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-04
(54)【発明の名称】リップリーディング予測の訂正
(51)【国際特許分類】
G10L 15/25 20130101AFI20240528BHJP
G10L 15/22 20060101ALI20240528BHJP
G10L 15/16 20060101ALI20240528BHJP
【FI】
G10L15/25
G10L15/22 470Z
G10L15/16
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023573630
(86)(22)【出願日】2022-07-20
(85)【翻訳文提出日】2023-11-29
(86)【国際出願番号】 IB2022056652
(87)【国際公開番号】W WO2023007313
(87)【国際公開日】2023-02-02
(32)【優先日】2021-07-28
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-01-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100092093
【氏名又は名称】辻居 幸一
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100141553
【氏名又は名称】鈴木 信彦
(72)【発明者】
【氏名】リー ジョンファ
(72)【発明者】
【氏名】ウヌック マシュー
(72)【発明者】
【氏名】コステラ フランシスコ
(72)【発明者】
【氏名】ジン シウェイ
(57)【要約】
実装は、一般に、リップリーディング予測の訂正に関する。いくつかの実装では、方法は、ユーザのビデオ入力を受け取るステップであって、前記ユーザは前記ビデオ入力において話している、ステップを含む。前記方法は、前記ユーザの口の動きから1又は2以上の単語を予測して、1又は2以上の予測された単語を提供するステップを更に含む。前記方法は、前記1又は2以上の予測された単語から1又は2以上の訂正候補単語を訂正するステップを更に含む。前記方法は、前記1又は2以上の予測された単語から1又は2以上のセンテンスを予測するステップを更に含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
システムであって、
1又は2以上のプロセッサと、
前記1又は2以上のプロセッサによって実行するための1又は2以上の非一時的コンピュータ可読記憶媒体に符号化され、かつ実行時に、前記1又は2以上のプロセッサに動作を実行させるように作動可能であるロジックと、
を含み、前記動作は、
ユーザのビデオ入力を受け取るステップであって、前記ユーザは前記ビデオ入力において話している、ステップと、
前記ユーザの口の動きから1又は2以上の単語を予測して、1又は2以上の予測された単語を提供するステップと、
前記1又は2以上の予測された単語から1又は2以上の訂正候補単語を訂正するステップと、
前記1又は2以上の予測された単語から1又は2以上のセンテンスを予測するステップと、
を含む、
ことを特徴とするシステム。
【請求項2】
前記1又は2以上の単語の予測は、深層学習に基づくことを特徴とする、請求項1に記載のシステム。
【請求項3】
前記1又は2以上の訂正候補単語の訂正は、自然言語処理に基づくことを特徴とする、請求項1に記載のシステム。
【請求項4】
前記1又は2以上の訂正候補単語の訂正は、類推(analogy)に基づくことを特徴とする、請求項1に記載のシステム。
【請求項5】
前記1又は2以上の訂正候補単語の訂正は、単語類似度に基づくことを特徴とする、請求項1に記載のシステム。
【請求項6】
前記1又は2以上の訂正候補単語の訂正は、ベクトル類似度に基づくことを特徴とする、請求項1に記載のシステム。
【請求項7】
前記1又は2以上の訂正候補単語の訂正は、コサイン類似度に基づくことを特徴とする、請求項1に記載のシステム。
【請求項8】
プログラム命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記プログラム命令は、1又は2以上のプロセッサによって実行された時に、前記1又は2以上のプロセッサに動作を実行させるように作動可能であり、前記動作は、
ユーザのビデオ入力を受け取るステップであって、前記ユーザは前記ビデオ入力において話している、ステップと、
前記ユーザの口の動きから1又は2以上の単語を予測して、1又は2以上の予測された単語を提供するステップと、
前記1又は2以上の予測された単語から1又は2以上の訂正候補単語を訂正するステップと、
前記1又は2以上の予測された単語から1又は2以上のセンテンスを予測するステップと、
を含む、
ことを特徴とするコンピュータ可読記憶媒体。
【請求項9】
前記1又は2以上の単語の予測は、深層学習に基づくことを特徴とする、請求項8に記載のコンピュータ可読記憶媒体。
【請求項10】
前記1又は2以上の訂正候補単語の訂正は、自然言語処理に基づくことを特徴とする、請求項8に記載のコンピュータ可読記憶媒体。
【請求項11】
前記1又は2以上の訂正候補単語の訂正は、類推に基づくことを特徴とする、請求項8に記載のコンピュータ可読記憶媒体。
【請求項12】
前記1又は2以上の訂正候補単語の訂正は、単語類似度に基づくことを特徴とする、請求項8に記載のコンピュータ可読記憶媒体。
【請求項13】
前記1又は2以上の訂正候補単語の訂正は、ベクトル類似度に基づくことを特徴とする、請求項8に記載のコンピュータ可読記憶媒体。
【請求項14】
前記1又は2以上の訂正候補単語の訂正は、コサイン類似度に基づくことを特徴とする、請求項8に記載のコンピュータ可読記憶媒体。
【請求項15】
コンピュータ実装方法であって、
ユーザのビデオ入力を受け取るステップであって、前記ユーザは前記ビデオ入力において話している、ステップと、
前記ユーザの口の動きから1又は2以上の単語を予測して、1又は2以上の予測された単語を提供するステップと、
前記1又は2以上の予測された単語から1又は2以上の訂正候補単語を訂正するステップと、
前記1又は2以上の予測された単語から1又は2以上のセンテンスを予測するステップと、
を含む、
ことを特徴とする方法。
【請求項16】
前記1又は2以上の単語の予測は、深層学習に基づくことを特徴とする、請求項15に記載の方法。
【請求項17】
前記1又は2以上の訂正候補単語の訂正は、自然言語処理に基づくことを特徴とする、請求項15に記載の方法。
【請求項18】
前記1又は2以上の訂正候補単語の訂正は、類推に基づくことを特徴とする、請求項15に記載の方法。
【請求項19】
前記1又は2以上の訂正候補単語の訂正は、単語類似度に基づくことを特徴とする、請求項15に記載の方法。
【請求項20】
前記1又は2以上の訂正候補単語の訂正は、ベクトル類似度に基づくことを特徴とする、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
〔関連出願の相互参照〕
[01] 本出願は、2022年1月10日出願の米国特許出願番号第17/572,029号「リップリーディング予測の訂正(CORRECTING LIP-READING PREDICTIONS)」(020699-119300US/ SYP340532US02)を主張するものであり、この出願は、2021年7月28日出願の米国仮特許出願番号第63/203,684号「リップリーディング予測を訂正するための自然言語処理(NATURAL LANGUAGE PROCESSING FOR CORRECTING LIP-READING PREDICTION)」(クライアント整理番号:SYP340532US01)の優先権を主張するものであり、これらの出願は、全ての目的に対してあたかも本出願に全てが示されている如くここに引用により組み込まれる。
【背景技術】
【0002】
[02] オーディオに依拠することなく発話(speech)を認識するリップリーディング技術は、不正確な予測を招く場合がある。例えば、リップリーディング技術は、「寒いです(I’m cold)」という正しい表現から、「Im cord」を認識する場合がある。これは、深層学習モデルが、オーディオ支援なしで唇の動きに依拠するからである。「買う(buy)」と「さよなら(bye)」、又は「引用する(cite)」と「サイト(site)」などの異なる単語に対して、話者の口の形状が類似している場合がある。従来の手法は、エンドツーエンド深層学習モデルを使用して、単語からセンテンスへの予測を行う。しかしながら、現在の最新のモデルと現実世界の推論との間に大きなギャップがある。例えば、モデルは、コマンド+色+前置詞+文字+数字+副詞などの単語又は固定構造のみを予測する場合がある。
【発明の概要】
【課題を解決するための手段】
【0003】
[03] 実装は、一般に、リップリーディング予測の訂正に関する。いくつかの実装では、システムは、1又は2以上のプロセッサを含み、前記1又は2以上のプロセッサによって実行するための1又は2以上の非一時的コンピュータ可読記憶媒体に符号化されるロジックを含む。前記ロジックは、実行時に、前記1又は2以上のプロセッサに動作を実行させるように作動可能であり、前記動作は、ユーザのビデオ入力を受け取るステップであって、前記ユーザは前記ビデオ入力において話している、ステップと、前記ユーザの口の動きから1又は2以上の単語を予測して、1又は2以上の予測された単語を提供するステップと、前記1又は2以上の予測された単語から1又は2以上の訂正候補単語を訂正するステップと、前記1又は2以上の予測された単語から1又は2以上のセンテンスを予測するステップと、を含む。
【0004】
[04] 更に、前記システムについて、いくつかの実装では、前記1又は2以上の単語の予測は、深層学習に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、自然言語処理に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、類推(analogy)に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、単語類似度に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、ベクトル類似度に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、コサイン類似度に基づく。
【0005】
[05] いくつかの実装では、プログラム命令を記憶した非一時的コンピュータ可読記憶媒体が提供される。前記命令は、1又は2以上のプロセッサによって実行された時に、前記1又は2以上のプロセッサに動作を実行させるように作動可能であり、前記動作は、ユーザのビデオ入力を受け取るステップであって、前記ユーザは前記ビデオ入力において話している、ステップと、前記ユーザの口の動きから1又は2以上の単語を予測して、1又は2以上の予測された単語を提供するステップと、前記1又は2以上の予測された単語から1又は2以上の訂正候補単語を訂正するステップと、前記1又は2以上の予測された単語から1又は2以上のセンテンスを予測するステップと、を含む。
【0006】
[06] 更に、前記コンピュータ可読記憶媒体について、いくつかの実装では、前記1又は2以上の単語の予測は、深層学習に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、自然言語処理に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、類推に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、単語類似度に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、ベクトル類似度に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、コサイン類似度に基づく。
【0007】
[07] いくつかの実装では、方法は、ユーザのビデオ入力を受け取るステップであって、前記ユーザは前記ビデオ入力において話している、ステップと、前記ユーザの口の動きから1又は2以上の単語を予測して、1又は2以上の予測された単語を提供するステップと、前記1又は2以上の予測された単語から1又は2以上の訂正候補単語を訂正するステップと、前記1又は2以上の予測された単語から1又は2以上のセンテンスを予測するステップと、を含む。
【0008】
[08] 更に、前記方法について、いくつかの実装では、前記1又は2以上の単語の予測は、深層学習に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、自然言語処理に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、類推に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、単語類似度に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、ベクトル類似度に基づく。いくつかの実装では、前記1又は2以上の訂正候補単語の訂正は、コサイン類似度に基づく。
【0009】
[09] 本明細書の残りの部分及び添付図面の参照により、本明細書に開示する特定の実装の特質及び利点の更なる理解を達成することができる。
【図面の簡単な説明】
【0010】
【
図1】本明細書で説明する実装のために使用することができる、リップリーディング予測を訂正するための例示的な環境のブロック図である。
【
図2】いくつかの実装による、リップリーディング予測を訂正するための例示的なフロー図である。
【
図3】いくつかの実装による、類推に基づく単語予測で使用される単語ベクトルを示す例示的な図である。
【
図4】いくつかの実装による、単語類似度に基づく単語予測で使用される単語ベクトルを示す例示的な図である。
【
図5】いくつかの実装による、予測された単語の数字へのマッピングを示す例示的な図である。
【
図6】本明細書で説明するいくつかの実装のために使用することができる例示的なネットワーク環境のブロック図である。
【
図7】本明細書で説明するいくつかの実装のために使用することができる例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0011】
[17] 本明細書で説明する実装は、自然言語処理を使用して、リップリーディング予測を訂正する。本明細書で説明する実装は、従来のリップリーディング技術の制限に対処する。このようなリップリーディング技術は、オーディオストリームに依拠することなく発話(speech)を認識する。これは、正しくない、不正確な、又は部分的な予測を招く場合がある。例えば、「戻って来ます(I’ll be back)」という正しい表現の代わりに、「ayl biy baek」を認識する場合がある。「寒いです(I’m cold)」という正しい表現の代わりに、「Im cord」を認識する場合がある。「寒くて凍えそうです(I’m freezing)」という正しい表現の代わりに、「Im frez」を認識する場合がある。これは、深層学習モデルが、オーディオ支援なしで唇の動きに依拠するからである。「買う(buy)」と「さよなら(bye)」との間で、又は「引用する(cite)」と「サイト(site)」との間で、話者の口の形状が類似している。人工知能(AI)深層学習モデルにおいて、自然言語処理(NLP)を使用して、文書内の言語の文脈上のニュアンスを含む文書の内容を理解することができる。これは、書き言葉にも適用される。
【0012】
[18] 本明細書で説明する実装は、NLPを使用して、機械学習出力から導出される誤った又は不正確な予測を訂正するためのパイプラインを提供する。例えば、機械学習モデルは、オーディオが存在しない場合、話者の唇の動きから「Im cord」を予測する場合がある。本明細書で説明する実装は、NLP技術を含み、「Im cord」という単語を入力として、その言葉を「寒いです(I’m cold)」という正しい表現に訂正する。本明細書で説明する実装は、NLPを利用することによって、固定構造だけでなく非構造化フォーマットにも適用される。
【0013】
[19] 本明細書でより詳細に説明するように、様々な実装では、システムは、ユーザのビデオ入力を受け取り、ユーザはビデオ入力において話している。システムは、更に、ユーザの口の動きから1又は2以上の単語を予測して、1又は2以上の予測された単語を提供する。システムは、更に、1又は2以上の予測された単語から1又は2以上の訂正候補単語を訂正する。システムは、更に、1又は2以上の予測された単語から1又は2以上のセンテンスを予測する。
【0014】
[20]
図1は、本明細書で説明する実装のために使用することができる、リップリーディング予測を訂正する例示的な環境100のブロック図である。
図1の環境100は、リップリーディング予測を訂正するためのパイプライン全体を示す。いくつかの実装では、環境100は、ビデオ入力を受け取り、ビデオ入力からの単語予測に基づいてセンテンス予測を出力するシステム102を含む。
【0015】
[21] 本明細書でより詳細に説明するように、様々な実装では、システム102の深層学習リップリーディングモジュール104が、単語予測を実行する。システム102のNLPモジュール106が、訂正候補単語の訂正を実行し、センテンスの単語予測を実行する。単語予測及びセンテンス予測を対象とする様々な実装について、例えば
図2に関連して、本明細書でより詳細に説明する。
【0016】
[22] 図示を容易にするために、
図1は、システム102、深層学習リップリーディングモジュール104及びNLPモジュール106の各々に対して1つのブロックを示す。ブロック102、104及び106は、複数のシステム、深層学習リップリーディングモジュール及びNLPモジュールを表すことができる。他の実装では、環境100は、示される構成要素の全てを有さなくてもよく、かつ/又は本明細書で示されるものの代わりに又はそれらに加えて、他のタイプの要素を含む他の要素を有することができる。
【0017】
[23] システム102は、本明細書で説明する実装を実行するが、他の実装では、システム102と関連付けられる任意の適切な構成要素又は構成要素の組み合わせ、又はシステム102と関連付けられる任意の適切な単複のプロセッサは、本明細書で説明する実装を実行することを容易にすることができる。
【0018】
[24]
図2は、いくつかの実装による、リップリーディング予測を訂正するための例示的なフロー図である。本明細書で説明する実装は、NLPを使用して、深層学習モデルの単語予測を訂正し、かつセンテンス予測を訂正するためのパイプラインを提供する。
図1及び
図2の両方を参照すると、ブロック202において、方法を開始して、システム102などのシステムが、ユーザのビデオ入力を受け取り、ユーザはビデオ入力(例えばビデオ)において話している。様々な実装では、システムは、ビデオから画像を抽出して、ユーザの口を識別する。例えば、システムは、3秒間に90フレームの画像を受け取ることができ、リップリーディングモジュールは、リップリーディングモデルを使用して、異なる位置のユーザの口を識別することができる。いくつかの実装では、システムは、分析のためにビデオのユーザの口をトリミングし、この場合、口の形状及び口の動きは特徴領域である。
【0019】
[25] ブロック204において、システムは、ユーザの口の動きから1又は2以上の単語を予測して、1又は2以上の予測された単語を提供する。様々な実装では、システムは、深層学習に基づいて、1又は2以上の単語を予測する。例えば、様々な実装では、システム102の深層学習リップリーディングモジュール104は、リップリーディングモデルを適用して、口の動きから単語を決定又は予測する。
【0020】
[26] 様々な実装では、リップリーディングは、ビデオのみ(例えば、音声ではなく視覚情報のみ)に基づいて何が話されているかを理解するシステムのプロセスである。リップリーディングは視覚的な手がかり(例えば、口の動き)に依存するので、いくつかの口の形状は非常に類似して見える。これは、不正確さを招く場合がある。
【0021】
[27]
図1に関連する上記の例では、システム102の深層学習リップリーディングモジュール104は、単語予測のためにリップリーディングモデルを使用して、単語を予測する。例えば、深層学習リップリーディングは、「AYL.」、「BIY.」、「BAEK.」という個々の単語を予測する場合がある。これらの単語は、深層学習に基づいて、「Ayl biy baek」というセンテンスになる。
【0022】
[28] 別の例では、「th」及び「f」という音の口の動きは、解読するのが難しい場合がある。したがって、微妙な文字及び/又は単語を検出することは重要である。別の例では、「too」及び「to」という単語の口の動きは、同一ではないにしても非常に近く見える。様々な実装では、システム102の深層学習リップリーディングモジュール104は、リップリーディングモデルを適用して、無音で口の動きのみを使用して、グラウンドトゥルース単語予測を決定する。
【0023】
[29] 次に、ブロック206に関連して以下に説明するように、システム102のNLPモジュール106は、リップリーディングモデルを適用して、任意の不正確に予測された単語を訂正する。本明細書でより詳細に説明するように、NLPモジュール106は、NLPを利用して、単語を正確に決定又は予測して(不正確な単語予測を訂正することを含む)、予測された単語のストリングから表現又はセンテンスを正確に予測する。
【0024】
[30] ブロック206において、システムは、1又は2以上の予測された単語から1又は2以上の訂正候補単語を訂正する。深層学習リップリーディングモジュール104は、個々の単語を予測するように機能するが、NLPモジュール106は、リップリーディングモジュール104からの不正確に予測された単語を訂正するとともに、ユーザからの表現又はセンテンスを予測するように機能する。
【0025】
[31] 様々な実装では、システムは、NLP技術を利用して、発話(speech)及びテキストを含む自然言語を解釈する。NLPは、機械が、テキスト類似度、情報検索、文書分類、エンティティ抽出、クラスタリング等などの様々な技術を適用することによって、このようなテキストデータからパターンを理解して抽出できるようにする。NLPは、一般に、テキスト分類、バーチャルアシスタントのためのチャットボット、テキスト抽出及び機械翻訳のために使用される。
【0026】
[32] 様々な実装では、システム102のNLPモジュール106は、自然言語処理に基づいて、1又は2以上の訂正候補単語を訂正する。訂正候補単語は、正しくないように見える単語とすることができる。例えば、「AYL.」、「BIY.」及び「BAEK.」という単語予測は、英語辞書に載っている単語ではないので、訂正候補である。様々な実装では、システム102のNLPモジュール106は、これらの訂正候補単語の訂正を実行する。
【0027】
[33] 様々な実装では、NLPモジュール106は、受け取られる各予測された単語を、ベクトル又は数(例えば、数字のストリング)に変換又はマッピングする。例えば、NLPモジュール106は、「AYL.」を数字1 0 0にマッピングし、「BIY.」を数字0 1 0にマッピングし、「BAEK.」を数字0 0 1にマッピングすることができる。様々な実装では、NLPモジュール106は、また、1又は2以上の他の単語を、これらのベクトル又は数字に変換又はマッピングする。例えば、NLPモジュール106は、「I’ll」を数字1 0 0にマッピングし、「be」を数字0 1 0にマッピングし、「back」を数字0 0 1にマッピングすることができる。NLPモジュール106が単語を受け取り、その単語をベクトル又は数字にマッピングする時に、NLPモジュール106は、そのベクトルと他の記憶されたベクトルとを比較して、最も近いベクトルを識別する。
【0028】
[34] この例示的な実装では、NLPモジュール106は、「AYL.」及び「I’ll」の両方をベクトル又は数字1 0 0にマッピングし、「BIY.」及び「be」の両方をベクトル又は数字0 1 0にマッピングし、「BAEK.」及び「back」の両方をベクトル又は数字0 0 1にマッピングすることを決定する。したがって、NLPモジュール106は、「AYL.」を「I’ll」に訂正し、「BIY.」を「be」に訂正し、「BAEK.」を「back」に訂正する。
【0029】
[35] ブロック208において、システムは、1又は2以上の予測された単語から1又は2以上のセンテンスを予測する。様々な実装では、システム102のNLPモジュール106は、表現又はセンテンスの単語予測を実行する。上記のように、NLPモジュール106は、「AYL.」を「I’ll」に訂正し、「BIY.」を「be」に訂正し、「BAEK.」を「back」に訂正する。次に、システム102のNLPモジュール106は、「戻って来ます(I’ll be back)」というセンテンスを予測する。換言すれば、NLPモジュール106は、訂正候補「AYL. BIY. BAEK.」を、最も近い表現である「戻って来ます(I’ll be back)」に訂正する。
【0030】
[36]
図3及び
図4は、単語予測を対象とする追加の例示的な実装を示す。
図5は、センテンス予測を対象とする追加の例示的な実装を示す。
【0031】
[37]
図3は、いくつかの実装による、類推に基づく単語予測で使用される単語ベクトルを示す例示的な図である。様々な実装では、システム102のNLPモジュール106は、類推に基づいて、1又は2以上の訂正候補単語を訂正する。例えば、上記のように、NLPモジュール106は、この場合、単語類推に基づいて、最も類似している単語を見つける。「男(man)」という単語が「女(woman)」という単語に対するように、「王(king)」という単語は「女王(queen)」という単語に対する。単語類推に基づいて、「王(king)」は「男(man)」に近く、「女王(queen)」は「女(woman)」に近い。
【0032】
[38]
図4は、いくつかの実装による、単語類似度に基づく単語予測で使用される単語ベクトルを示す例示的な図である。様々な実装では、システムは、単語類似度に基づいて、1又は2以上の訂正候補単語を訂正する。例えば、上記のように、NLPモジュール106は、この場合、単語の意味の類似度に基づいて、最も類似している単語を見つける。「良い(good)」及び「すごい(awesome)」という単語は互いに比較的近く、「悪い(bad)」及び「最悪の(worst)」という単語は互いに比較的近い。これらのペアは、意味が類似している単語を含む。
【0033】
[39] 本明細書で示すように、様々な実装では、システムは、ベクトル類似度に基づいて、1又は2以上の訂正候補単語を訂正する。様々な実装では、ベクトルは、システムが比較することができる数である。システムは、ベクトル空間内の単語ベクトル間の類似度を見つけることによって、訂正を実行する。コンピュータプログラムが数を処理するので、システムは、本明細書で説明するように、テキストデータを、ベクトル空間内の数値フォーマットに変換又は符号化する。
【0034】
[40] いくつかの実装では、システムは、2つの単語の間の単語類似度を決定して、数の範囲を指定する。例えば、数の範囲は、値0~1の間の値とすることができる。数の範囲内の数値は、2つの単語が意味的にどれほど近いかを示す。例えば、0の値は、単語同士は近くなく、代わりに意味が非常に異なることを意味することができる。0.5の値は、単語同士は、意味が非常に近いか又は同義語であることを意味することができる。様々な実装では、システムは、コサイン類似度に基づいて、1又は2以上の訂正候補単語を訂正する。コサインは、2つのベクトル(各ベクトルは単語を表す)の間の距離として定義することができる。
図4を参照すると、「良い(good)」及び「すごい(awesome)」という単語は近い。また、「悪い(bad)」及び「最悪の(worst)」という単語も近い。これらのペアは、コサイン類似度を有する。
【0035】
[41] 様々な実装では、符号化中に、システムは、テキストの大きなコーパスを入力として、ベクトル空間を生成する。ベクトル空間のサイズは、特定の実装に応じて変えることができる。例えば、ベクトル空間は、数百次元を有することができる。様々な実装では、システムは、コーパス内の各一意の単語を、空間内の対応するベクトルに割り当てる。
【0036】
[42] システムは、所与のテキストのチャンクのベクトルを有すると、生成されたベクトル間の類似度を計算する。システムは、任意の適切な統計技術を利用して、ベクトル類似度を決定することができる。このような技術は、コサイン類似度である。別の例では、リップリーディングモジュール104は、「Im stop hot」を予測する場合がある。次に、NLPモジュール106は、「Im stop hot」を入力として、その入力と、ベクトル空間内の最も類似するセンテンスとを比較することができる。結果として、NLPモジュール106は、「暑すぎます(I’m too hot)」を見つけて出力する。
【0037】
[43]
図5は、いくつかの実装による、予測された単語の数字へのマッピングを示す例示的な図である。「深層(deep)」、「学習(learning)」、「である(is)」、「難しい(hard)」及び「おもしろい(fun)」という単語が示されている。様々な実装では、システムのNLPモジュールは、各予測された単語を、機械又はコンピュータによって読み取り可能な一連の数字に変換する。例えば、「深層(deep)」を数字502(例えば、1 0 0 0 0)にマッピングし、「学習(learning)」を数字504(例えば、0 1 0 0 0)にマッピングし、「である(is)」を数字506(例えば、0 0 1 0 0)にマッピングし、「難しい(hard)」を数字508(例えば、0 0 0 1 0)にマッピングし、「おもしろい(fun)」を数字510(例えば、0 0 0 0 1)にマッピングする。図示の数字は2進数であるが、他の数字方式を使用することができる(例えば、16進数など)。
【0038】
[44] 様々な実装では、システムのNLPモジュールは、単語類似度に基づいて、及び/又は文法規則及び単語の位置に基づいて、数字を単語に割り当てる。例えば、システムは、「難しい(hard)」という単語及び「困難な(difficult)」という単語を、数字0 0 0 1 0にマッピングすることができる。これらの単語は、意味が類似している。システムは、「おもしろい(fun)」という単語及び「楽しい(joyful)」という単語を、数字0 0 0 0 1にマッピングすることができる。これらの単語は、意味が類似している。「難しい(hard)」及び「おもしろい(fun)」という単語は異なる単語であるが、システムは、文法規則及び単語の位置に基づいて、互いに近い数字を割り当てることができる。例えば、「難しい(hard)」及び「おもしろい(fun)」は、単語ストリング「深層(deep)」、「学習(learning)」、「である(is)」、「難しい(hard)」及び「おもしろい(fun)」の最後に配置される形容詞である。
【0039】
[45] 図示の例では、システムのNLPモジュールは、異なるが類似する2つのセンテンスを予測することができる。一方のセンテンスは、「深層学習は難しい(Deep learning is hard)」であると予測することができる。他方のセンテンスは、「深層学習はおもしろい(Deep learning is fun)」であると予測することができる。システムは、予測される個々の単語に基づいて、他方のセンテンスよりも一方のセンテンスを最終的に予測することができる。例えば、単語ストリングの最後の単語が「おもしろい(fun)」である場合、システムは、「深層学習はおもしろい(Deep learning is fun)」というセンテンスを最終的に予測する。ストリングの最後の単語が、深層学習モジュールによって「funn」又は「fuun」として不正確に予測されても、システムは、数字0 0 0 0 1を予測された単語に割り当てる。システムは、また、数字0 0 0 0 1を「おもしろい(fun)」という単語に割り当てるので、現実の単語であるので「おもしろい(fun)」という単語を使用する。したがって、予測されたセンテンス(「深層学習はおもしろい(Deep learning is fun)」)は意味をなすので、システムによって選択される。
【0040】
[46] ステップ、作動、又は計算は、特定の順番で提示することができるが、この順番は、特定の実装では変更することができる。特定の実装に応じて、ステップの他の順番が可能である。いくつかの特定の実装では、本明細書で順次示される複数のステップは、同時に実行することができる。また、いくつかの実装は、示されるステップの全てを有さなくてもよく、かつ/又は本明細書で示されるものの代わりに又はそれらに加えて、他のステップを有することができる。
【0041】
[47] 本明細書で説明する実装は、様々な利益を提供する。例えば、実装は、深層学習モデルを使用するリップリーディング技術と、NLP技術を使用する単語訂正技術とを組み合わせる。実装は、NLPを利用して、リップリーディングモデルが推論する不正確な単語予測を訂正する。本明細書で説明する実装は、騒々しい環境又は背景ノイズがある時(例えば、ドライブスルーで顧客の注文を受ける時など)に適用することもできる。
【0042】
[48]
図6は、本明細書で説明するいくつかの実装のために使用することができる例示的なネットワーク環境600のブロック図である。いくつかの実装では、ネットワーク環境600は、サーバ装置604及びデータベース606を含むシステム602を含む。例えば、システム602を使用して、
図1のシステム102を実装するとともに、本明細書で説明する実装を実行することができる。ネットワーク環境600は、また、システム602と通信することができる、かつ/又は直接又はシステム602を介して互いに通信することができるクライアント装置610、620、630及び640を含む。ネットワーク環境600は、また、ネットワーク650を含み、ネットワーク650を通じて、システム602及びクライアント装置610、620、630及び640は通信する。ネットワーク650は、Wi-Fiネットワーク、Bluetoothネットワーク、インターネット等などの任意の適切な通信ネットワークとすることができる。
【0043】
[49] 図示を容易にするために、
図6は、システム602、サーバ装置604及びネットワークデータベース606の各々に対して1つのブロックを示し、クライアント装置610、620、630及び640については4つのブロックを示す。ブロック602、604及び606は、複数のシステム、サーバ装置及びネットワークデータベースを表すことができる。また、任意の数のクライアント装置が存在することができる。他の実装では、環境600は、示される構成要素の全てを有さなくてもよく、かつ/又は本明細書で示されるものの代わりに又はそれらに加えて、他のタイプの要素を含む他の要素を有することができる。
【0044】
[50] システム602のサーバ装置604は、本明細書で説明する実装を実行するが、他の実装では、システム602と関連付けられる任意の適切な構成要素又は構成要素の組み合わせ、又はシステム602と関連付けられる任意の適切な単複のプロセッサは、本明細書で説明する実装を実行することを容易にすることができる。
【0045】
[51] 本明細書で説明する様々な実装では、システム602のプロセッサ及び/又は任意のクライアント装置610、620、630及び640のプロセッサが、本明細書で説明する要素(例えば、情報等)を、1又は2以上のディスプレイ画面上のユーザインターフェイスに表示させる。
【0046】
[52]
図7は、本明細書で説明するいくつかの実装のために使用することができる例示的なコンピュータシステム700のブロック図である。例えば、コンピュータシステム700を使用して、
図6のサーバ装置604及び/又は
図1のシステム102を実装するとともに、本明細書で説明する実装を実行することができる。いくつかの実装では、コンピュータシステム700は、プロセッサ702と、オペレーティングシステム704と、メモリ706と、入力/出力(I/O)インターフェイス708とを含むことができる。様々な実装では、プロセッサ702を使用して、本明細書で説明する様々な機能及び特徴を実装するとともに、本明細書で説明する方法の実装を実行することができる。プロセッサ702は、本明細書で説明する実装を実行するものとして説明されているが、コンピュータシステム700の任意の適切な構成要素又は構成要素の組み合わせ、又はコンピュータシステム700又は任意の適切なシステムと関連付けられる任意の適切な単複のプロセッサは、説明されるステップを実行することができる。本明細書で説明する実装は、ユーザ装置上、サーバ上、又はこれらの両方の組み合わせにおいて実行することができる。
【0047】
[53] コンピュータシステム700は、また、ソフトウェアアプリケーション710を含み、ソフトウェアアプリケーション710は、メモリ706に又は他の任意の適切な記憶位置又はコンピュータ可読媒体に記憶することができる。ソフトウェアアプリケーション710は命令を与え、この命令によって、プロセッサ702は、本明細書で説明する実装及び他の機能を実行することができる。ソフトウェアアプリケーションは、1又は2以上のネットワーク及びネットワーク通信と関連付けられる様々な機能を実行するためのネットワークエンジンなどのエンジンを含むこともできる。コンピュータシステム700の構成要素は、1又は2以上のプロセッサ又はハードウェア装置の任意の組み合わせ、及びハードウェア、ソフトウェア、ファームウェア等の任意の組み合わせによって実装することができる。
【0048】
[54] 図示を容易にするために、
図7は、プロセッサ702、オペレーティングシステム704、メモリ706、I/Oインターフェイス708及びソフトウェアアプリケーション710の各々に対して1つのブロックを示す。これらのブロック702、704、706、708及び710は、複数のプロセッサ、オペレーティングシステム、メモリ、I/Oインターフェイス及びソフトウェアアプリケーションを表すことができる。様々な実装では、コンピュータシステム700は、示される構成要素の全てを有さなくてもよく、かつ/又は本明細書で示されるものの代わりに又はそれらに加えて、他のタイプの構成要素を含む他の要素を有することができる。
【0049】
[55] 特定の実装に関連して説明してきたが、これらの特定の実装は単なる例示であり、限定的なものではない。例に示される概念は、他の例及び実装に適用することができる。
【0050】
[56] 様々な実装では、ソフトウェアは、1又は2以上のプロセッサによって実行するための1又は2以上の非一時的コンピュータ可読媒体に符号化される。ソフトウェアは、1又は2以上のプロセッサによって実行された時に、本明細書で説明する実装及び他の機能を実行するように作動可能である。
【0051】
[57] 特定の実装のルーチンを実装するために、C、C++、C#、Java、JavaScript、アセンブリ言語等を含む任意の適切なプログラミング言語を使用することができる。手続き型又はオブジェクト指向などの異なるプログラミング技術を使用することができる。ルーチンは、単一の処理デバイス又は複数のプロセッサ上で実行することができる。ステップ、作動、又は計算は、特定の順番で提示することができるが、この順番は、異なる特定の実装では変更することができる。いくつかの特定の実装では、本明細書で順次示される複数のステップは、同時に実行することができる。
【0052】
[58] 特定の実装は、命令実行システム、装置、又はデバイスによって又はこれに関連して使用するための非一時的コンピュータ可読記憶媒体(機械可読記憶媒体とも呼ばれる)に実装することができる。特定の実装は、ソフトウェア又はハードウェア又はこれらの両方の組み合わせにおいて制御ロジックの形態で実装することができる。制御ロジックは、1又は2以上のプロセッサによって実行された時に、本明細書で説明する実装及び他の機能を実行するように作動可能である。例えば、ハードウェア記憶装置などの有形媒体を使用して、実行可能命令を含むことができる制御ロジックを記憶することができる。
【0053】
[59] 特定の実装は、プログラマブル汎用デジタルコンピュータを使用することによって、及び/又は特定用途向け集積回路、プログラマブル論理デバイス、フィールドプログラマブルゲートアレイ、光学、化学、生物学、量子又はナノ工学システム、構成要素及び機構を使用することによって実装することができる。一般に、特定の実装の機能は、本技術分野で公知の任意の手段によって達成することができる。分散型、ネットワーク型システム、構成要素、及び/又は回路を使用することができる。データの通信又は転送は、有線、無線、又は任意の他の手段によるものとすることができる。
【0054】
[60] 「プロセッサ」は、データ、信号又は他の情報を処理する任意の適切なハードウェア及び/又はソフトウェアシステム、機構又は構成要素を含むことができる。プロセッサは、汎用中央処理装置を有するシステム、複数の処理装置、機能を実現するための専用回路、又は他のシステムを含むことができる。処理は、地理的位置に限定されるか又は時間的制約を有する必要はない。例えば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」等で、その機能を実行することができる。処理の一部は、異なる(又は同じ)処理システムによって、異なる時間及び異なる場所で実行することができる。コンピュータは、メモリと通信する任意のプロセッサとすることができる。メモリは、プロセッサによって実行するための命令(例えば、プログラム又はソフトウェア命令)を記憶するのに適した、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、磁気記憶装置(ハードディスクドライブ等)、フラッシュ、光学記憶装置(CD、DVD等)、磁気又は光ディスク、又は他の有形媒体などの電子記憶装置を含む、任意の適切なデータストレージ、メモリ及び/又は非一時的コンピュータ可読記憶媒体とすることができる。例えば、ハードウェア記憶装置などの有形媒体を使用して、実行可能命令を含むことができる制御ロジックを記憶することができる。命令は、例えば、サーバ(例えば、分散型システム及び/又はクラウドコンピューティングシステム)から配信されるサービス(SaaS)としてソフトウェアの形態で、電子信号に含まれて、電子信号として供給することもできる。
【0055】
[61] 図面/図に示す要素のうちの1又は2以上は、より分離された又は一体化された方法で、又は特定用途に応じて有用であるような特定の場合には更に取り外されるか又は作動不能にされて実装することもできることも理解されるであろう。上記の方法のいずれかをコンピュータに実行させるために機械可読媒体に記憶することができるプログラム又はコードを実装することも本発明の趣旨及び範囲内である。
【0056】
[62] 本明細書の説明及び以下に続く特許請求の範囲で使用される「a、an(英文不定冠詞)」及び「the(英文定冠詞)」は、文脈によって別途明確に指定しない限り、複数の参照物を含む。また、本明細書の説明及び以下に続く特許請求の範囲で使用される「内(in)」の意味は、文脈によって別途明確に指定しない限り、「内(in)」及び「上(on)」を含む。
【0057】
[63] したがって、本明細書で特定の実装を説明したが、修正、様々な変更、及び置換の自由が、以上の開示において意図されており、場合によっては、説明する範囲及び趣旨から逸脱することなく、特定の実装のいくつかの特徴は、他の特徴の対応する使用なしに使用されることは理解されるであろう。したがって、特定の状況又は内容を実質的な範囲及び趣旨に適合させるように、多くの修正を行うことができる。
【符号の説明】
【0058】
100 環境
102 システム
104 深層学習リップリーディングモジュール
106 NLPモジュール
202 ユーザのビデオ入力を受け取り、ユーザはビデオにおいて話している
204 ユーザの口の動きから1又は2以上の単語を予測して、1又は2以上の予測された単語を提供
206 1又は2以上の予測された単語から1又は2以上の訂正候補単語を訂正
208 1又は2以上の予測された単語から1又は2以上のセンテンスを予測
502 数字
504 数字
506 数字
508 数字
510 数字
600 ネットワーク環境
602 システム
604 サーバ装置
606 データベース
610,620,630,640 クライアント装置
650 ネットワーク
700 コンピュータシステム
702 プロセッサ
704 オペレーティングシステム
706 メモリ
708 入力/出力(I/O)インターフェイス
710 ソフトウェアアプリケーション
【国際調査報告】