(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-18
(45)【発行日】2024-11-26
(54)【発明の名称】音声議事録からの文書の更新および実装
(51)【国際特許分類】
G06F 16/17 20190101AFI20241119BHJP
G06F 40/197 20200101ALI20241119BHJP
【FI】
G06F16/17 200
G06F40/197
(21)【出願番号】P 2022522011
(86)(22)【出願日】2020-10-09
(86)【国際出願番号】 IB2020059511
(87)【国際公開番号】W WO2021070135
(87)【国際公開日】2021-04-15
【審査請求日】2023-03-24
(32)【優先日】2019-10-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ベラー,チャールズ
(72)【発明者】
【氏名】ジョシ,アカンクシャ
(72)【発明者】
【氏名】シヴァスワミー,ヘマン,クレール
(72)【発明者】
【氏名】ナンビアー,スニル
【審査官】原 秀人
(56)【参考文献】
【文献】特開2014-203352(JP,A)
【文献】米国特許出願公開第2019/0129695(US,A1)
【文献】特開2017-211430(JP,A)
【文献】特開2004-326404(JP,A)
【文献】国際公開第2007/132690(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/20-40/58
(57)【特許請求の範囲】
【請求項1】
文書を更新するための方法であって、
テキスト文書をトピックベースのテキスト区分に区切るステップと、
1または複数のプロセッサによって、前記テキスト文書に関連した音声ファイルを受信するステップと、
1または複数のプロセッサによって、前記音声ファイルをテキストに変換し、前記音声ファイルのテキスト表現を生成するステップと、
前記音声ファイルの前記テキスト表現を、トピックベースの音声区分に区切るステップと、
前記トピックベースのテキスト区分からの特定のトピックベースのテキスト区分を、前記トピックベースの音声区分からの特定のトピックベースの音声区分にマッチングするステップであって、前記トピックベースのテキスト区分からの前記特定のトピックベースのテキスト区分および前記トピックベースの音声区分からの前記特定のトピックベースの音声区分は、同一のトピックのものである、マッチングするステップと、
前記特定のトピックベースのテキスト区分の内容と前記特定のトピックベースの音声区分の内容との間の差分を識別するステップと、
前記特定のトピックベースのテキスト区分の内容と前記特定のトピックベースの音声区分の内容との間の前記差分に基づいて、前記特定のトピックベースの音声区分により新規の基準が満たされることを判定するステップと
前記特定のトピックベースの音声区分により前記新規の基準が満たされると判定したことに応答して、前記特定のトピックベースのテキスト区分の内容を、前記特定のトピックベースの音声区分の内容で更新し、前記テキスト文書の更新バージョンを生成するステップと
を含む方法。
【請求項2】
前記テキスト文書は、デバイスの動作を制御し、
前記方法は、
前記テキスト文書の前記更新バージョンを利用して、前記デバイスの動作を修正するアクションを実行するステップ
を含む、請求項1に記載の方法。
【請求項3】
前記音声ファイルは、前記テキスト文書の後に生成されたものである、請求項1
または2に記載の方法。
【請求項4】
1または複数のプロセッサによって、前記音声ファイルの前記テキスト表現に自然言語処理を適用し、前記テキスト文書に対する候補文書更新を識別するステップ
をさらに含む、請求項1
~3のいずれか1項に記載の方法。
【請求項5】
前記特定のトピックベースの音声区分を話した話者の役割に基づいて、前記特定のトピックベースの音声区分により前記新規の基準が満たされることを判定するステップ
をさらに含む、請求項1~
4のいずれか1項に記載の方法。
【請求項6】
前記特定のトピックベースの音声区分に対する重要性スコアを決定するステップであって、前記重要性スコアは、前記特定のトピックベースのテキスト区分を更新する場合に前記特定のトピックベースの音声区分が前記テキスト文書に加える変更のタイプに基づく、決定するステップと、
前記特定のトピックベースの音声区分に対する前記重要性スコアに基づいて、前記特定のトピックベースの音声区分により前記新規の基準が満たされると決定するステップと
をさらに含む、請求項1~
5のいずれか1項に記載の方法。
【請求項7】
フィードバックのために前記特定のトピックベースの音声区分をユーザに提供するステップと、
前記ユーザからの前記フィードバックを受信したことに基づいて、前記テキスト文書を更新するステップと、
更新された前記テキスト文書を再索引付けするステップと
を含む、請求項1~
6のいずれか1項に記載の方法。
【請求項8】
前記テキスト文書は、1または複数のプロセッサによって実行された場合に、デバイスのコントローラに、前記デバイスの動作を修正するアクションを実行させるソース・コードである、請求項1~
7のいずれか1項に記載の方法。
【請求項9】
文書を更新するためのコンピュータ・システムであって、前記コンピュータ・システムは、1または複数のプロセッサと、1または複数のコンピュータ可読メモリと、1または複数のコンピュータ可読非一時的ストレージ媒体と、前記1または複数のコンピュータ可読非一時的ストレージ媒体のうちの少なくとも1つに格納され、前記1または複数のコンピュータ可読メモリの少なくとも1つを介した前記1または複数のプロセッサの少なくとも1つによる実行のためのプログラム命令とを含み、格納される前記プログラム命令は、
テキスト文書をトピックベースのテキスト区分に区切るステップであって、前記テキスト文書は、デバイスの動作を制御する、区切るステップと、
前記テキスト文書に関連した音声ファイルを受信するステップと、
前記音声ファイルをテキストに変換し、前記音声ファイルのテキスト表現を生成するステップと、
前記音声ファイルの前記テキスト表現を、トピックベースの音声区分に区切るステップと、
前記トピックベースのテキスト区分からの特定のトピックベースのテキスト区分を、前記トピックベースの音声区分からの特定のトピックベースの音声区分にマッチングするステップであって、前記トピックベースのテキスト区分からの前記特定のトピックベースのテキスト区分および前記トピックベースの音声区分からの前記特定のトピックベースの音声区分は、同一のトピックのものである、マッチングするステップと、
前記特定のトピックベースのテキスト区分の内容と前記特定のトピックベースの音声区分の内容との間の差分を識別するステップと、
前記特定のトピックベースのテキスト区分の内容と前記特定のトピックベースの音声区分の内容との間の前記差分に基づいて、前記特定のトピックベースの音声区分により新規の基準が満たされることを判定するステップと
前記特定のトピックベースの音声区分により前記新規の基準が満たされると判定したことに応答して、前記特定のトピックベースのテキスト区分の内容を、前記特定のトピックベースの音声区分の内容で更新し、前記テキスト文書の更新バージョンを生成するステップと、
前記テキスト文書の前記更新バージョンを利用して、前記デバイスの動作を修正するアクションを実行するステップと
を含む方法を行うように実行される、コンピュータ・システム。
【請求項10】
前記音声ファイルは、前記テキスト文書の後に生成されたものである、請求項
9に記載のコンピュータ・システム。
【請求項11】
前記方法は、
前記特定のトピックベースの音声区分を話した話者の役割に基づいて、前記特定のトピックベースの音声区分により前記新規の基準が満たされることを判定するステップ
をさらに含む、請求項
9または
10に記載のコンピュータ・システム。
【請求項12】
前記方法は、
前記特定のトピックベースの音声区分に対する重要性スコアを決定するステップであって、前記重要性スコアは、前記特定のトピックベースのテキスト区分を更新する場合に前記特定のトピックベースの音声区分が前記テキスト文書に加える変更のタイプに基づく、決定するステップと、
前記特定のトピックベースの音声区分に対する前記重要性スコアに基づいて、前記特定のトピックベースの音声区分により前記新規の基準が満たされると決定するステップと
をさらに含む、請求項9~11のいずれか1項に記載のコンピュータ・システム。
【請求項13】
前記テキスト文書は、1または複数のプロセッサによって実行された場合に、前記デバイスのコントローラに、前記デバイスの動作を修正するアクションを実行させるソース・コードである、請求項
9~
12のいずれか1項に記載のコンピュータ・システム。
【請求項14】
文書を更新するためのコンピュータ・プログラムを格納する記録媒体であって、前記コンピュータ・プログラムは、コンピュータに請求項1~
8のいずれか1項に記載の方法の各ステップを実行させるためのものである、記録媒体。
【請求項15】
コンピュータ可読媒体に格納され、デジタル・コンピュータの内部メモリに読み込み可能なコンピュータ・プログラムであって、前記コンピュータ・プログラムが前記デジタル・コンピュータ上で実行されたとき、請求項1~
8のいずれか1項に記載の方法を実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、関連する議事録の音声記録によって更新される文書の分野に関する。より具体的には、本発明は、音声議事録の音声ファイルに基づいて、デバイスを制御するために使用される文書を更新する分野に関する。
【背景技術】
【0002】
ソース・コード・リスト、会議書き起こし、機器の操作マニュアルなどのテキスト文書は、しばしば非常に長大である。このようなテキスト文書を手動で更新することは、時間がかかり、誤りがちな試みである。さらに、変化が後続する口頭での会話に基づいている場合、そのような口頭での変化を適切にテキスト文書に組み込むための有用な方法は現在存在しない。したがって、本発明の1または複数の実施形態は、(例えば、口頭の議事録の音声記録からの)口頭の議事録から、更新を迅速もしくは自動的にまたは両方で加えてテキスト文書を更新する。
【0003】
よって、上記課題を解決すことが当該技術分野で必要とされている。
【発明の概要】
【0004】
第1の側面からみると、本発明は、文書を更新するための方法を提供し、方法は、テキスト文書をトピックベースのテキスト区分に区切るステップと、1または複数のプロセッサによって、テキスト文書に関連した音声ファイルを受信するステップと、1または複数のプロセッサによって、音声ファイルをテキストに変換し、音声ファイルのテキスト表現を生成するステップと、音声ファイルのテキスト表現を、トピックベースの音声区分に区切るステップと、トピックベースのテキスト区分からの特定のトピックベースのテキスト区分を、トピックベースの音声区分からの特定のトピックベースの音声区分にマッチングするステップであって、トピックベースのテキスト区分からの特定のトピックベースのテキスト区分およびトピックベースの音声区分からの特定のトピックベースの音声区分は、同一のトピックのものである、マッチングするステップと、特定のトピックベースのテキスト区分の内容と特定のトピックベースの音声区分の内容との間の差分を識別するステップと、特定のトピックベースのテキスト区分の内容と特定のトピックベースの音声区分の内容との間の差分に基づいて、特定のトピックベースの音声区分により新規の基準が満たされることを判定するステップと、特定のトピックベースの音声区分により新規の基準が満たされると判定したことに応答して、特定のトピックベースのテキスト区分の内容を、特定のトピックベースの音声区分の内容で更新し、テキスト文書の更新バージョンを生成するステップとを含む。
【0005】
さらなる側面からみると、本発明は、文書を更新するためのコンピュータ・システムを提供し、本コンピュータ・システムは、1または複数のプロセッサと、1または複数のコンピュータ可読メモリと、1または複数のコンピュータ可読非一時的ストレージ媒体と、1または複数のコンピュータ可読非一時的ストレージ媒体のうちの少なくとも1つに格納され、1または複数のコンピュータ可読メモリの少なくとも1つを介した1または複数のプロセッサの少なくとも1つによる実行のためのプログラム命令とを含み、格納されるプログラム命令は、テキスト文書をトピックベースのテキスト区分に区切るステップであって、テキスト文書は、デバイスの動作を制御する、区切るステップと、テキスト文書に関連した音声ファイルを受信するステップと、音声ファイルをテキストに変換し、音声ファイルのテキスト表現を生成するステップと、音声ファイルのテキスト表現を、トピックベースの音声区分に区切るステップと、トピックベースのテキスト区分からの特定のトピックベースのテキスト区分を、トピックベースの音声区分からの特定のトピックベースの音声区分にマッチングするステップであって、トピックベースのテキスト区分からの特定のトピックベースのテキスト区分およびトピックベースの音声区分からの特定のトピックベースの音声区分は、同一のトピックのものである、マッチングするステップと、特定のトピックベースのテキスト区分の内容と特定のトピックベースの音声区分の内容との間の差分を識別するステップと、特定のトピックベースのテキスト区分の内容と特定のトピックベースの音声区分の内容との間の差分に基づいて、特定のトピックベースの音声区分により新規の基準が満たされることを判定するステップと、特定のトピックベースの音声区分により新規の基準が満たされると判定したことに応答して、特定のトピックベースのテキスト区分の内容を、特定のトピックベースの音声区分の内容で更新し、テキスト文書の更新バージョンを生成するステップと、テキスト文書の更新バージョンを利用して、デバイスの動作を修正するアクションを実行するステップとを含む方法を行うように実行される。
【0006】
さらなる側面から見ると、本発明は、文書を更新するためのコンピュータ・プログラム製品であって、処理回路により読み取り可能であり、処理回路によって本発明のステップを実行する方法を実行するための命令を格納するためのコンピュータ可読記録媒体を含む、コンピュータ・プログラム製品を提供する。
【0007】
さらなる側面から見ると、本発明は、コンピュータ可読媒体に格納され、デジタル・コンピュータの内部メモリに読み込み可能なコンピュータ・プログラムであって、プログラムがコンピュータ上で実行されたとき、本発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【0008】
さらなる態様から見ると、本発明は、プログラムコードが具現化されたコンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品を提供し、コンピュータ可読ストレージ媒体は、それ自体は一時的な信号自体ではなく、プログラムコードは、プロセッサによって読み取り可能であり、かつ、方法を行うように実行可能であり、方法は、テキスト文書をトピックベースのテキスト区分に区切るステップであって、テキスト文書は、デバイスの動作を制御する、区切るステップと、テキスト文書に関連した音声ファイルを受信するステップと、音声ファイルをテキストに変換し、音声ファイルのテキスト表現を生成するステップと、音声ファイルのテキスト表現を、トピックベースの音声区分に区切るステップと、トピックベースのテキスト区分からの特定のトピックベースのテキスト区分を、トピックベースの音声区分からの特定のトピックベースの音声区分にマッチングするステップであって、トピックベースのテキスト区分からの特定のトピックベースのテキスト区分およびトピックベースの音声区分からの特定のトピックベースの音声区分は、同一のトピックのものである、マッチングするステップと、特定のトピックベースのテキスト区分の内容と特定のトピックベースの音声区分の内容との間の差分を識別するステップと、特定のトピックベースのテキスト区分の内容と特定のトピックベースの音声区分の内容との間の差分に基づいて、特定のトピックベースの音声区分により新規の基準が満たされることを判定するステップと、特定のトピックベースの音声区分により新規の基準が満たされると判定したことに応答して、特定のトピックベースのテキスト区分の内容を、特定のトピックベースの音声区分の内容で更新し、テキスト文書の更新バージョンを生成するステップと、テキスト文書の更新バージョンを利用して、デバイスの動作を修正するアクションを実行するステップとを含む。
【0009】
本発明の実施形態においては、方法は、テキスト文書が制御するデバイスに関するキャプチャした音声議事録を有する音声ファイルに基づいて、テキスト文書を修正し、またテキスト文書を利用する。1または複数のプロセッサもしくはユーザまたはその両方は、テキスト文書をトピックベースのテキスト区分に区切り、ここで、テキスト文書は、デバイスの動作を制御する。プロセッサ(複数可)は、テキスト文書に関連した音声ファイルを受信し、音声ファイルをテキストに変換し、音声ファイルのテキスト表現を生成する。プロセッサ(複数可)もしくはユーザまたはその両方は、音声ファイルのテキスト表現を、トピックベースの音声区分に区切り、それから、トピックベースのテキスト区分からの特定のトピックベースのテキスト区分を、トピックベースの音声区分からの特定のトピックベースの音声区分にマッチングし、ここで、トピックベースのテキスト区分からの特定のトピックベースのテキスト区分およびトピックベースの音声区分からの特定のトピックベースの音声区分は、同一のトピックのものである。プロセッサ(複数可)もしくはユーザまたはその両方は、特定のトピックベースのテキスト区分の内容と特定のトピックベースの音声区分の内容との間の差分を識別し、特定のトピックベースのテキスト区分の内容と特定のトピックベースの音声区分の内容との間の差分に基づいて、特定のトピックベースの音声区分により新規の基準が満たされることを判定する。特定のトピックベースのテキスト区分の内容と特定のトピックベースの音声区分の内容との間の差分を識別したことに応答して、また、特定のトピックベースの音声区分により新規の基準が満たされると判定したことに応答して、プロセッサ(複数可)もしくはユーザまたはその両方は、特定のトピックベースのテキスト区分の内容を、特定のトピックベースの音声区分の内容で更新し、テキスト文書の更新バージョンを生成する。プロセッサ(複数可)もしくはユーザまたはその両方は、それから、テキスト文書の更新バージョンを利用して、デバイスの動作を修正するアクションを実行する。
【0010】
1または複数の実施形態においては、本明細書で説明される方法(複数可)は、コンピュータ・プログラム製品の実行もしくはコンピュータ・システムまたはその両方によって実行される。
【0011】
以下、以下の図面に示すように、単なる例として、好ましい実施形態を参照しながら本発明について説明する。
【図面の簡単な説明】
【0012】
【
図1】本発明が種々の実施形態において実装される例示的なシステムおよびネットワークを示す図。
【
図2】本発明の1または複数のコンポーネントの高レベル概観図。
【
図3】本発明の1または複数の実施形態で使用される例示的な深層ニューラル・ネットワークを示す図。
【
図4】本発明の1または複数の実施形態にしたがって実行される1または複数のステップの高レベルフローチャート。
【
図5】本発明の実施形態によるクラウド・コンピューティング環境を示す図。
【
図6】本発明の一実施形態によるクラウド・コンピュータ環境の抽象モデル・レイヤを示す図。
【発明を実施するための形態】
【0013】
1または複数の実施形態において、本発明は、任意の統合の可能な技術的な詳細のレベルでのシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組み合わせである。1または複数の実施形態において、コンピュータ・プログラム製品は、プロセッサに本発明の側面を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体を含んでもよい。
【0014】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持し格納する有形のデバイスであってよい。コンピュータ可読記憶媒体は、例えば、これに限定されるものではないが、電子的ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは上記の任意の適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な例示の非網羅的リストとしては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリースティック、フロッピー(登録商標)ディスク、パンチカードまたは記録された命令を有する溝内の隆起構造のような機械的エンコードされたデバイス、および上記の任意の適切な組み合わせが含まれる。コンピュータ可読記憶媒体は、本明細書で使用されるように、電波、自由伝搬する電磁波、導波路または他の伝送媒体を伝搬する電磁波(たとえば、ファイバ光ケーブルを通過する光パルス)または、ワイヤを通して伝送される電気信号のような、それ自体が一時的な信号として解釈されるものではない。
【0015】
本明細書で説明されるコンピュータ可読プログラム命令は、それぞれのコンピュータ/処理デバイスに、コンピュータ可読記憶媒体から、または、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはこれらの組み合わせといったネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジ・サーバまたはこれらの組み合わせを含んでもよい。各コンピュータ/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【0016】
1または複数の実施形態において、本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、1以上のプログラミング言語の任意の組み合わせで書かれたソース・コードあるいはオブジェクト・コードを含み、1以上のプログラミング言語は、Java(登録商標),Smalltalk(登録商標)、C++またはこれらに類するものなどのオブジェクト指向言語、Cプログラミング言語または類似のプログラミング言語などの従来型の手続型言語を含む。1または複数の実施形態においては、コンピュータ可読プログラム命令は、スタンド・アローンのソフトウェア・パッケージとして、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上かつ部分的に遠隔のコンピュータ上で、または、完全に遠隔のコンピュータまたはサーバ上で実行される。後者のシナリオでは、また、1または複数の実施形態においては、遠隔のコンピュータは、ユーザのコンピュータに、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じて接続され、あるいは接続は、(例えば、インターネット・サービス・プロバイダを用いてインターネットを通じて)外部コンピュータになされる。いくつかの実施形態においては、電気的回路は、本発明の側面を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電気的回路を個別化することによって、コンピュータ可読プログラム命令を実行し、この電気的回路は、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む。
【0017】
本明細書において、本発明の実施形態に従った方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、本発明の側面が説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されてもよいことが理解されよう。
【0018】
1または複数の実施形態において、これらのコンピュータ可読プログラム命令は、汎用コンピュータ、特定用途コンピュータのプロセッサまたは他のプログラマブル・データ処理装置に提供され、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置を介して実行される命令が、フローチャート図もしくはブロック図またはその両方のブロックまたは複数のブロックにおいて特定される機能/作用を実装するための手段を作成するように、マシンを生成する。1または複数の実施形態において、これらのコンピュータ可読プログラム命令は、また、コンピュータ、プログラマブル・データ処理装置もしくは他のデバイスまたはこれらの組み合わせに特定のやり方で機能するよう、1または複数の実施形態において、指示できるコンピュータ可読記憶媒体に格納され、それに格納された命令を有するコンピュータ可読記憶媒体に、フローチャート図もしくはブロック図またはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装する命令を含む製品が含まれるようにする。
【0019】
1または複数の実施形態において、コンピュータ可読プログラム命令は、また、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに読み込まれ、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で実行される命令が、フローチャートもしくはブロックまたはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装するように、コンピュータ実装処理を生成する。
【0020】
図面におけるフローチャート図およびブロック図は、本発明の種々の実施形態に従ったシステム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性および動作を示す。この点に関して、フローチャート図またはブロック図の各ブロックは、特定のロジック機能(複数可)を実装するための1以上の実行可能な命令を含む、モジュール、セグメントまたは命令の部分を表す。いくつかの代替の実装では、ブロックにおいて言及された機能は、図面に示された順序から外れて生じる。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行され、あるいは、複数のブロックが、関与する機能性に応じて逆の順序で実行される。本発明の1または複数の実施形態におけるブロック図もしくはフローチャート図またはその両方の各ブロックおよびブロック図もしくはフローチャート図またはその両方の複数のブロックの組み合わせが、特定の機能または作用を実行し、または、特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実行する、特定目的ハードウェアベースのシステムによって実装されることに留意されたい。
【0021】
以下、図面、特に
図1を参照すると、本発明の実装によりもしくは実装においてまたはその両方で利用することができる例示的なシステムおよびネットワークのブロック図が示される。コンピュータ102についておよびコンピュータ102内に示される、図示したハードウェアおよびソフトウェアの両方を含む例示的なアーキテクチャの一部または全部は、人工知能124および/またはソフトウェア配備サーバ150および/またはテキスト文書サーバ(複数可)152および/または物理デバイス154および/またはコントローラ145および/または音声ファイル・サーバ(複数可)158および/または
図2に示すテキスト更新および利用ロジック(TUUL,Text Updating and Utilization Logic)および/または
図3に図示されるディープ・ニューラル・ネットワーク324内に示されるニューロン/ノードによって、利用され得ることに留意されたい。
【0022】
例示的なコンピュータ102は、システム・バス106に結合されるプロセッサ104を含む。プロセッサ104は、1つまたは複数のプロセッサを利用してもよく、各々のプロセッサは、1つまたは複数のプロセッサ・コアを有する。ディスプレイ110を駆動/サポートするビデオ・アダプタ108が、また、システム・バス106に結合される。システム・バス106は、バス・ブリッジ112を介して入力/出力(I/O)バス114に結合される。I/Oインタフェース116が、I/Oバス114に結合される。I/Oインタフェース116は、キーボード118、マウス120、メディアトレイ122(CD-ROMドライブ、マルチメディア・インタフェースなどのようなストレージ・デバイスを含んでもよい)、人工知能124および外部USBポート(複数可)126を含む種々のI/Oデバイスとの通信を与える。I/Oインタフェース116に接続されるポートの形式は、コンピュータ・アーキテクチャ分野の当業者に既知の任意のものであってよく、一実施形態においては、これらのポートの一部または全部は、ユニバーサル・シリアル・バス(USB)ポートである。
【0023】
図示されるように、コンピュータ102は、また、ネットワーク128とのネットワーク・インタフェース130を用いて、人工知能124および/またはソフトウェア配備サーバ150および/またはテキスト文書サーバ(複数可)152および/または物理デバイス154(コントローラ145経由)および/または音声ファイル・サーバ(複数可)158と通信することができる。ネットワーク・インタフェース130は、ネットワーク・インタフェース・カード(NIC)などのハードウェア・ネットワーク・インタフェースである。ネットワーク128は、インターネットなどの外部のネットワークであってもよく、または、イーサネット(登録商標)、仮想プライベート・ネットワーク(VPN)などの内部ネットワークであってもよい。物理デバイス1543の1または複数の例は、以下に提示する。
【0024】
ハード・ドライブ・インタフェース132も、また、システム・バス106に結合される。ハード・ドライブ・インタフェース132は、ハード・ドライブ134にインタフェースする。一実施形態においては、ハード・ドライブ134は、またシステム・バス106に結合されるシステム・メモリ136に投入する(populates)。システム・メモリは、コンピュータ102における揮発性メモリの最も下位レベルとして定義される。この揮発性メモリは、付加的なより上位レベルの揮発性メモリ(図示せず)を含み、それには、キャッシュ・メモリ、レジスタおよびバッファが含まれるが、これらに限られない。システム・メモリ136に投入されるデータは、コンピュータ102のオペレーティング・システム(OS)138およびアプリケーション・プログラム144を含む。
【0025】
OS138は、アプリケーション・プログラム144のようなリソースへの透過的なユーザアクセスを提供するためのシェル140を含む。一般に、シェル140は、インタープリタおよびユーザとオペレーティング・システムとの間のインタフェースを提供するプログラムである。より具体的には、シェル140は、コマンドライン・ユーザ・インタフェースに入力されるまたはファイルから入力されるコマンドを実行する。そのため、シェル140は、コマンド・プロセッサとも参照され、一般に、オペレーティング・システム・ソフトウェア階層の最上位レベルであり、コマンド・インタープリタとして機能する。シェルは、システムのプロンプトを提供し、キーボード、マウスまたは他のユーザ入力メディアにより入力されるコマンドを解釈し、解釈したコマンド(複数可)を、処理のためにオペレーティング・システムの適切なより下位レベル(例えば、カーネル142)に送信する。シェル140は、テキスト・ベースのライン指向のユーザ・インタフェースであるが、本発明は、グラフィカル、音声、ジェスチャなどのような他のユーザ・インタフェースのモードも等しく良好にサポートすることに留意されたい。
【0026】
図示されるように、OS138は、また、カーネル142も含み、カーネル142は、OS138の他の部分およびアプリケーション・プログラム144によって求められる本質的なサービスの提供を含む、より下位レベルのOS138の機能性を含み、ここで、本質的なサービスには、メモリ管理、プロセスおよびタスク管理、ディスク管理並びにマウスおよびキーボード管理が含まれる。
【0027】
アプリケーション・プログラム144は、例示的なやり方ではブラウザ146として示される、レンダラを含む。ブラウザ146は、ワールド・ワイド・ウェブ(WWW)クライアント(すなわち、コンピュータ102)が、ハイパーテキスト転送プロトコル(HTTP)メッセージングを用いてインターネットとの間でネットワーク・メッセージを送受信するのを可能とするプログラム・モジュールおよび命令を含み、ひいては、ソフトウェア配備サーバ150および他のコンピュータ・システムとの通信を可能にする。
【0028】
コンピュータ102のシステム・メモリ(並びにソフトウェア配備サーバ150のシステム・メモリ)内のアプリケーション・プログラム144は、また、文書修正および利用ロジック(DMUL,Document Modification and Utilization Logic)148も含む。DMUL148は、
図2~
図4に説明されるものを含む、下記に説明されるプロセスを実装するコードを含む。一実施形態においては、コンピュータ102は、例えばオンデマンドベースで、ソフトウェア配備サーバ150からDMUL148をダウンロードしてもよく、ここで、DMUL148のコードは、実行のために必要とされるまでダウンロードされない。さらに、本発明の一実施形態においては、ソフトウェア配備サーバ150は、本発明と関連した機能(DMUL148の実行を含む)の全てを実行し、よって、コンピュータ102が、DMUL148を実行するために自分の内部コンピューティング・リソースを使用することから免れることに留意されたい。
【0029】
コンピュータ102内に図示されるハードウェア要素は、網羅的であることを意図するものではなく、むしろ、本発明により必要とされる本質的なコンポーネントを強調するために表されるものであることに留意されたい。例えば、コンピュータ102は、磁気カセット、デジタル・バーサタイル・ディスク(DVD)、ベルヌーイ・カートリッジなどのような代替的なメモリ・ストレージ・デバイスを含んでもよい。これらおよび他の変形例が、本発明の範囲内にあるように意図される。
【0030】
本発明の1または複数の実施形態は、(1)テキスト文書を取り込むことによって、議事録の音声記録からテキスト文書を更新する。この処理は、テキスト文書を複数の小単位(例えば、特定の主題についてのページまたは段落)に区切ること、小単位のトピックおよびキーワード情報を分析することと、検索エンジン内で分析された文書を索引付けすることによって実行される。
【0031】
システムは、(2)スピーチ・ツー・テキスト(STT)プログラムを用いて音声議事録を変換した後、音声議事録を追跡することと、書き起こされたスピーチ(speech)の窓(例えば、1~2発話(utterance))を格納し、候補更新を作成することと、トピック/キーワードについて候補更新を分析することとによって、候補更新を識別する。
【0032】
システムは、(3)候補更新が文書を更新するのに十分に関連する/重要であるか否かを判定する。本発明の1または複数の実施形態においては、全体的な更新スコアは、(a)話者の重要度および(b)内容特有のスコアの組み合わせである。
【0033】
(a)話者の重要度は、話者の役割によって決定される。例えば、会議が特定の機器を制御するソフトウェアに対する変更に関するものである場合、その特定の機器を担当するオペレータまたは技術者である会議参加者は、その特定の機器に不慣れなもしくは全く操作したことがないまたはその両方である他の会議参加者よりも重要度において高くランク付けされる。
【0034】
本発明の実施形態においては、話者の同一性もしくは役割またはその両方は、音声認識もしくは顔認識またはその両方を、同一性:役割のマッチングとともに用いて決定される。例えば、音声ファイルが音声/映像ファイルの一部である場合、既知の人物などのデータベースに顔特徴点をマッピングする既知の任意の顔認識システムを適用することにより、話者の顔認識が用いられる。同様に、音声ファイルが単なる音声ファイルである場合、(例えば、話者の言葉のデジタルファイルを作成する高速フーリエ変換(FFT)を使用して)話者の音声クリップを、既知の話者によって話された類似する言葉のデータベースと比較することによって、話者認識が実現され、それによって特定の話者を識別する。
【0035】
(b)内容スコアを使用して、固有の重要度についての候補更新内の言語を識別する。例えば、「特定の機器の動作を変更する」というような会議中に話された言語は、「ランチを注文しましょうか?」よりも高くスコア付けされるであろう。
【0036】
異なるパッセージ(一節,passage)が異なるトピックに関する場合は、話者の重要性も変化することが多いであろう。すなわち、特定の機器を動作させることに関して話す技術者は、その特定の機器の動作を議論する場合の会計士より上にランク付け/スコア付けされることになるが、そのトピックが、その特定の機器を購入/維持するための契約の価格条件を変更するものである場合は、会計士は、その技術者より上にランク付け/スコア付けされることになるであろう。
【0037】
本発明の1または複数の実施形態においては、特定のテキストのパッセージの更新スコアは、話者重みづけしたバージョンのcontent_scoreである:update_score=speaker_importance*content_score。
【0038】
すなわち、元のテキスト文書中の特定のパッセージを更新するという決定は、変更が考慮されているテキスト文書中のパッセージの主題に関する音声ファイルからの話者の重要性と、その特定のパッセージにおける内容の重要性との組み合わせに基づく。例えば、話者が、テキスト文書からの特定のパッセージに関して重要でないとスコア付けされた場合、システムは、その特定のパッセージに関して彼または彼女が話したことを考慮から外す(disregard)であろう。同様に、特定のパッセージ自体が重要でないと判断された場合(例えば、操作マニュアルにおける一般的なマーケティング情報、特定の機器の操作に影響を与えないソース・コードなど)、それは、変更されないであろう。しかしながら、話者の重要度と内容スコアとの積が十分に高い場合、テキスト文書からのパッセージは変更/更新されるであろう。
【0039】
よって、製造オペレータが会議で口頭にてデバイスの動作パラメータを変更することを推奨した場合(speaker_importance)であって、これら動作パラメータの変更が、デバイスがどのように機能するかについて大きな影響を与える場合(content_score)、高いupdate_scoreを理由として変更が行われるであろう。
【0040】
このようにして、候補更新のupdate_scoreを使用して、それが十分に高い(閾値を超える)場合に更新を自動的にトリガしてもよく、あるいは、更新を後押しすることを決定するために人間によって精査されてもよい。更新する決定がなされると、次いで、システムは、テキスト文書からの関連セクションの候補更新を識別するであろう。そうでなければ、候補更新は破棄され、システム処理は、候補更新を識別する(2)のステップに戻る。
【0041】
システムは、(4)分析された候補更新に基づいて検索クエリを生成すること、クエリを検索の索引に送信すること、関連する段落(小単位)を索引から検索(パッセージ検索)することと、検索された段落を文書アップデータ(自動モジュールまたは人間のユーザ)に提示することによって、テキスト文書中の関連セクションを識別する。すなわち、テキスト文書の各セクション(サブユニット)が、各セクションの主題に応じて識別され、それにより、特定の参加者によって議事に対して発話された音声ファイルからスコア付けされたパッセージにマッチされ得るようにする。
【0042】
次に、システムは、(5)(上記の信頼の更新スコアに基づいて自動的に、またはユーザの手動の選択に基づいて)内容で更新するためのセクションを選択すること、新しい内容を選択されたセクションと比較して、新たな情報を表すかどうかを確認することと、新しい情報が存在する場合に、そのセクションに内容を追加することと、追加された内容でそのセクションに対する索引を更新する(再索引付けする)ことによって、テキスト文書を更新および再索引付けする。すなわち、一度音声ファイルから関連する内容がテキスト文書内の特定のパッセージを更新するために識別されると、その関連する内容は、その特定のパッセージを修正するために使用され、テキスト文書は、修正の位置を示すために再索引付けされる。
【0043】
よって、システムは、信頼/更新スコアに基づいて、内容で更新するためのテキスト文書のセクションを選択する。システムは、新規の基準(つまり、新しい情報が、有意に異なるデータを提供し、その有意に異なるデータが重要であるか?)を満たすための情報新規性スコアを生成するために、(音声ファイルからの)新しい内容と、(テキスト文書からの)選択されたセクションとを比較して、選択されたセクションの文脈分析、トピック/フレーズ検出などの技術を用いて、新しい情報を表すかどうかを確認する。音声ファイル中に新たな情報が存在する場合には、選択されたセクションに追加される。この内容の包含/更新は、上述した更新スコアが事前定義された閾値よりも大きい場合は、自動的である。その選択された区間について、テキスト文書の索引が更新される。本発明の実施形態においては、索引は、テキスト文書のどのパッセージが更新されたかを示すのみならず、索引内で(音声ファイルからの)新しい内容も示す。
【0044】
このように、本発明の1または複数の実施形態は、音声ファイルからの候補更新が文書の修正をもたらすべきか否かを決定し、候補更新を関連文書セクションと比較して、それが新しい情報であるか否かを識別し、候補更新からの新しい情報のみで関連文書セクションを更新もしくは修正またはその両方をし、もしくはテキスト文書が変更される場合にテキスト文書をリアルタイムで変更/再索引し、またはこれらの組み合わせを行う。
【0045】
ここで
図2を参照すると、本発明の1または複数のコンポーネントの高レベル概観図が提示される。
【0046】
図2に示すように、テキスト更新および利用ロジック(TUUL)202(例えば、
図1に示すコンピュータ102)は、
図1で説明したテキスト文書サーバ(複数可)152からテキスト文書204を受信する。TUUL202は、テキスト文書204を複数のトピックベースのテキスト区分に区切り、ここで、複数のトピックベースのテキスト区分は、トピックベースのテキスト区分206、トピックベースのテキスト区分208、トピックベースのテキスト区分210およびトピックベースのテキスト区分212を含む。ここで、4つのトピックベースのテキスト区分が、例示の目的のために図示されているが、トピックベースのテキスト区分の数は、4よりも大きくてもよいし、または少なくてもよいことが理解される。
【0047】
本発明の第1の実施形態においては、TUUL202は、まず、テキスト文書204を複数のテキスト区分に分割し、その後、各テキスト区分のトピック/主題を決定する。
【0048】
本発明の第2の実施形態においては、TUUL202は、テキストのセクションを調査して、セクションの文脈/内容/主題を決定し、同一の文脈/内容/主題の後続のパッセージをそのセクションに追加することを継続する。
【0049】
すなわち、第2の実施形態においては、TUUL202は、(例えば、キーワード識別、自然言語処理などを用いて)、あるパッセージを、そのあるパッセージの特定の主題に関するものであるとして識別する。その後、あるパッセージの直後に到来する後続のパッセージ(follow-on passages)が評価されて、それらが同一の主題のものに関するか否かを判定する。もしそうであれば、これらの後続のパッセージは、最初に識別された特定のパッセージに含ませられる。
【0050】
しかしながら、第1の実施形態においては、TUUL202は、まず、テキスト文書204を、所定の性質の区分(例えば、文、段落、章など)に分割し、区分各々の主題/トピックを決定する。次いで同一の主題/トピックに関連する複数の区分が集約されて、TUUL202により、関連する区分へのグローバルな変更/修正がなされ得るようなる。
【0051】
第3の実施形態においては、本発明は、(1)同一の主題ついての後続のパッセージを組み合わせるため、また(2)同一主題の下で各組み合わせたパッセージおよび他のパッセージを相関させるために、第1の実施形態および第2の実施形態の組み合わせを利用し、これにより、相関されたパッセージを、音声ファイル214からの内容によって更新される候補とすることができる。
【0052】
TUUL202は、次いで、
図1に示す音声ファイル・サーバ(複数可)158から音声ファイル214を検索し、音声ファイル214を、トピックベースの音声区分216、トピックベースの音声区分218、トピックベースの音声区分220およびトピックベースの音声区分222に区切る。
【0053】
上述したテキスト文書204からのテキスト区分と同様に、4つのトピックベースの音声区分が例示の目的で図示されているが、トピックベースの音声区分の数は、4よりも大きくてもよいし、または少なくてもよいことが理解される。
【0054】
テキスト文書204を複数のテキスト区分に分割するために記載されたプロセスと同様に、音声ファイル214は、それらの主題/トピックに基づき、それらのトピック、後続の音声のパッセージ、音声のパッセージの所定のサイズなどに従って複数の音声区分に分割される。
【0055】
しかしながら、音声ファイル214が区切られる前に、まず、(例えばスピーチ・ツー・テキスト変換処理を用いて)テキストファイルに変換される。したがって、音声ファイル214の一部として示されるトピックベースの音声区分の各々は、実際には、音声パッセージのテキスト変換である。このように、TUUL202は、音声ファイル214のこれらのテキスト・バージョンを、所定の性質の区分(例えば、文、段落、章など)に分割し、区分各々の主題/トピックを決定する。次いで同一の主題/トピックに関連する区分が集約されて、TUUL202によって、関連する区分へのグローバルな変更/修正がなされ得るようなる。
【0056】
テキスト文書204の区切り処理(segmentation)と同様に、音声ファイル214のテキスト変換は、同一の主題ついての後続のパッセージを組み合わせ、もしくは同一主題の下で各組み合わせたパッセージおよび他のパッセージを相関させ、またはその両方をし、これにより、相関された音声パッセージを、テキスト文書204のテキスト区分を更新するための候補とすることができる。
【0057】
本発明の実施形態においては、それぞれの音声ファイル214およびテキスト文書204内のそれらの位置のみならず、上述したように、これらの一致するトピック、関連性、重要性などに基づいて、あるテキスト区分に種々の音声区分が関連付けられる。
【0058】
例えば、トピックベースのテキスト区分206が、デバイスAを制御することに関連するテキスト(例えば、ソース・コード、操作マニュアルからのものなど)であり、トピックベースのテキスト区分208が、デバイスBを制御することに関連するテキストであり、トピックベースのテキスト区分210が、デバイスAもしくはデバイスBまたはその両方のサイズ、色などを記述する在庫を記述した文言であり、トピックベースのテキスト区分212が、デバイスAもしくはデバイスBまたはその両方の金銭的コストを記述するものと仮定する。
【0059】
さらに、説明の目的のため(また、本発明の範囲を限定するものではなく)、トピックベースの音声区分216が、議事/会議中のデバイスAおよびデバイスBをどのように制御するかについての人物W(例えば、第1のオペレータまたは設計エンジニア)による口頭での発言のテキスト変換であり、トピックベースの音声区分218が、人物X(例えば会計士)による、デバイスAの費用を説明する口述の発言のテキスト変換であり、トピックベースの音声区分220が、デバイスBをどのように制御するかについての人物Y(例えば、第2のオペレータまたは設計エンジニア)による口述の発言のテキスト変換であり、トピックベースの音声区分222が、(例えば、音声ファイル214が最初にキャプチャされた会議/議事への)関係者がどこへランチに行こうかを尋ねる人物Zによる口述の発言のテキスト変換であると仮定する。
【0060】
さらに、TUUL202が、トピックベースの音声区分216と、トピックベースのテキスト区分206およびトピックベースのテキスト区分208が同一の主題/トピック(すなわち、デバイスAもしくはデバイスBまたはその両方を制御すること)に関連すると判定したと仮定する。このように、TUUL202は、本明細書で議論されるように、人物Wの役割およびトピックベースのテキスト区分206および/またはトピックベースのテキスト区分208および/またはトピックベースの音声区分216の重要性に応じて、トピックベースの音声区分216が、トピックベースのテキスト区分206およびトピックベースのテキスト区分208を修正するための候補であると決定するであろう。
【0061】
同様に、TUUL202は、(トピックベースの音声区分218およびトピックベースのテキスト区分212の両方がデバイスAもしくはデバイスBまたはその両方のコストに関連していることに基づいて)、トピックベースの音声区分218が、トピックベースのテキスト区分212を修正するための価値のある候補であるか否かを判定する。
【0062】
同様に、トピックベースの音声区分220およびトピックベースのテキスト区分208の両方がデバイスBを制御することを対象としている場合、新規の基準(すなわち、変更に価値がある、提案されている変更のレベル、デバイスBの操作を変更する場合の変化の重要性および人物Yの役割/評判など)が満たされると仮定すると、TUUL202は、次いで、トピックベースの音声区分220がトピックベースのテキスト区分208を更新するための良い候補であると判定するであろう。
【0063】
デバイスAもしくはデバイスBまたはその両方のサイズ、色などに関する在庫を記述した文言を変更すべきではないため、トピックベースのテキスト区分210は、修正の候補ではないであろう。
【0064】
会議においてランチに行く人を尋ねることは、テキスト文書204の内容とは関係がないため、トピックベースの音声区分222は、テキスト文書204内のいずれのテキスト区分を修正するための候補ではない。
【0065】
ここで、TUUL202が、話者の役割、テキスト区分の重大さ、発話された音声区分の重大さなどに基づいて、トピックベースの音声区分216の内容がトピックベースのテキスト区分206内で現在発見された内容とは異なることから、トピックベースのテキスト区分206がトピックベースの音声区分216の内容によって修正されるべきと判定されたと仮定する。例えば、デバイスAが回転式機器のユニットであり、人物Wが、文書204が生成された後、会議において、「デバイスAは、名目上の動作速度を、1分間当たり2000回転から2500RPMに高速化する」と言ったと仮定する。このように、トピックベースのテキスト区分206およびトピックベースの音声区分216両方がデバイスAの動作パラメータに関するものであると判定したTUUL202は、トピックベースのテキスト区分206を自動的に修正して「2000RMP」を「2500RPM」に変更するであろう。テキスト文書204が、デバイスAについての操作マニュアルである場合、この変更は、その中でデバイスAのオペレータの参考のためになされる。しかしながら、テキスト文書204が、デバイスA(例えば、物理デバイス154)の動作を制御するためにコントローラ156によって使用されるソース・コードである場合、次いで、TUUL202は、(例えばソース・コード中のコメント、動作速度を制御することに関連するものとしてTUULにとって既知のソース・コードなどから)、デバイスAの動作を変更するためのテキスト文書204内の適切なソース・コードを識別し、ソース・コードのこの部分を自動的に変更する。
【0066】
(トピックベースのテキスト区分208についての)トピックベースの音声区分216もしくはトピックベースの音声区分220またはその両方、もしくは(トピックベースのテキスト区分212についての)トピックベースの音声区分218、またはその両方からそれぞれ取得される新しい情報(つまり、トピックベースのテキスト区分208もしくはトピックベースのテキスト区分212またはその両方に既に存在するものからの差異)を用いて、同様のやり取り/評価/修正が、トピックベースのテキスト区分208もしくはトピックベースのテキスト区分212またはその両方に対して選択的にTUUL202によって行われる。
【0067】
本発明の1または複数の実施形態においては、TUUL202は、自然言語処理(NLP)もしくは機械学習(ML)またはその両方を使用して、必要があれば、テキスト文書204からのいずれのテキスト区分が、
図2に示される音声ファイル214内の音声区分のうちの1または複数によって修正されるべきかを決定する。
【0068】
本発明の1または複数の実施形態においては、TUUL202は、
図1に示す人工知能124を使用して、必要があれば、テキスト文書204からのいずれのテキスト区分が、
図2に示される音声ファイル214内の音声区分のうちの1または複数によって修正されるべきかを決定する。
【0069】
本発明の1または複数の実施形態においては、人工知能124は、深層ニューラル・ネットワーク(DNN)または畳み込みニューラル・ネットワーク(CNN)において見出されるような、電子的なニューラル・ネットワーク・アーキテクチャを利用する。
【0070】
好ましい実施形態においては、深層ニューラル・ネットワーク(DNN)を用いて、テキスト文書サーバ(複数可)152から受信したテキスト・コーパスからの文書中のテキスト/数値データを評価し、一方で、CNNを用いて画像コーパスからの画像を評価する。
【0071】
CNNは、相互接続された電子的なニューロンを利用する点でDNNと類似する。しかしながら、CNNは、(1)CNNが、そのサイズがフィルタサイズ、ストライド値、パディング値などに基づいたニューラル層を有し、(2)CNNが、画像データを解析するために畳み込みスキームを利用する点で、DNNとは相違する。CNNは、予測出力を生成する(結果を得る)ために、ピクセルデータのフィルタリングおよびプーリング(2つの関数に対する数学的演算)の畳み込み(すなわち、結果を得るための2つの関数に対する数学的演算)に基づき、その「畳み込み」という名が付けられる。
【0072】
電子的なニューラル・ネットワーク(DNNまたはCNN)内のロジック・ユニットは、「ニューロン」または「ノード」と参照される。電子的なニューラル・ネットワークが完全にソフトウェアで実装される場合、各ニューロン/ノードは、別個のコードのひとまとまり(すなわち、あるアクションを実行する命令)である。電子的なニューラル・ネットワークが完全にハードウェアで実装される場合、各ニューロン/ノードは、ハードウェア・ロジック(例えば、プロセッサ、ゲートアレイなど)の別個のひとまとまりである。電子的なニューラル・ネットワークが、ハードウェアおよびソフトウェアの組み合わせとして実装される場合、各ニューロン/ノードは、命令のセットもしくはハードウェア・ロジックのひとまとまりまたはその両方である。
【0073】
名前が暗に伝えるように、ニューラル・ネットワークは、おおよそ生物学的ニューラル・ネットワーク(例えば、人間の脳)をモデルにしている。生物学的ニューラル・ネットワークは、相互に影響する相互接続された一連のニューロンから構成される。例えば、第1のニューロンは、第2のニューロンによって受領される(第1のニューロンからの)神経伝達物質の放出を通じて、シナプスにより第2のニューロンに電気的に接続され得る。これらの神経伝達物質は、第2のニューロンを興奮または抑制することができる。興奮/抑制された、相互接続されたニューロンのパターンは、最終的には、思考、筋肉の動き、記憶探索などを含む、生物学的な結果をもたらす。この生物学的なニューラル・ネットワークの説明は、高度に単純化されているが、高レベルで概観すると、1または複数の生物学的ニューロンが、生物学的・電気的に接続された1または複数の他の生物学的ニューロンの動作に影響を及ぼすということである。
【0074】
電子的ニューラル・ネットワークは、同様に、電子的ニューロンから構成される。しかしながら、生物学的なニューロンとは異なり、電子的ニューロンは、技術的には「抑制性」であることはないが、しばしば「興奮性」で程度が変化するのみである。
【0075】
電子ニューラル・ネットワークにおいて、ニューロンは、入力層、隠れ層(複数可)および出力層として知られる層状に配置される。入力層は、入力データを取り込み、それを一連の隠れ層のニューロンへ送出するニューロン/ノードを含み、ここで、隠れ層のうちの1つの層のすべてのニューロンは、隠れ層のうちの次の層のすべてのニューロンと相互接続する。隠れ層のうちの最終層は、計算結果を出力層に出力し、出力層は、ベクトル情報を保持するための1または複数のノードであることが多い。
【0076】
ここで、
図3を参照すると、本発明の1または複数の実施形態による、更新されたテキスト文書区分の目的で、テキストデータ(例えば、
図2に示されるテキスト文書204の区分もしくは音声ファイル214の区分またはその両方)を評価するために用いられる深層ニューラル・ネットワーク(DNN)324が提示される。
【0077】
例えば、例示の目的で、DNN324への入力が、(デバイスBを制御することを参照する)
図2からのトピックベースのテキスト区分208と、(デバイスBがどのように動作/制御されるべきかについての人物Wにより発言された言葉のテキスト・バージョンである)トピックベースの音声区分216と、(デバイスBがどのように動作/制御されるべきかについての人物Yにより発言された言葉のテキスト・バージョンである)トピックベースの音声区分220と、(例えばトピックベースのテキスト区分208を変更または更新するために満たすべき基準)新規の基準301であると仮定する。新規の基準301の要素の例は、特に限定されるものではないが、特定のトピックベースのテキスト区分および特定のトピックベースの音声区分において発見される共通の主題、トピックベースの音声区分において発見される単語を誰が話したか、トピックベースのテキスト区分およびトピックベースの音声区分の内容間の差分の量、トピックベースのテキスト区分において発見される内容の重要度、もしくはトピックベースの音声区分の内容またはこれらの組み合わせなどを含む。
【0078】
図3に示すように、DNN324における電子的なニューロンは、入力層303、隠れ層305および出力層307として知られる層状に配置される。入力層303は、入力データを取り込み、一連のニューロンの隠れ層(例えば、隠れ層305)にそれを送信するニューロン/ノードを含み、ここで、隠れ層における1つの層からのニューロンは、隠れ層305における次の層のニューロンすべてに相互接続される。隠れ層305における最終層は、そして、演算結果を出力層307に出力し、ここで、出力層307は、それぞれベクトル情報を保持する複数のノードであることが多い。本発明の実施形態においては、出力層307内の各ニューロンは、
図3に示すように、出力302への特定の出力に関連付けられる。
【0079】
図3に示す例では、出力302における2つの出力、更新されたトピックベースのテキスト区分315の第1のバージョン(「テキスト区分315」)と、更新されたトピックベースのテキスト区分315の第2のバージョン(「テキスト区分317」)は、DNN324によって生成される。
【0080】
例えば、入力層303に示される入力に基づいて、テキスト区分315は、トピックベースのテキスト区分208の変更されたバージョンであってよく、ここで、デバイスBの動作を制御するためのソース・コード(これは本発明の実施形態においてトピックベースのテキスト区分208である)、(本発明の他の実施形態においてトピックベースのテキスト区分208である)操作マニュアルなどが、トピックベースの音声区分216において発見された変更を反映するように変更される。同様に、テキスト区分317は、トピックベースの音声区分220の内容でトピックベースのテキスト区分208を変更した結果であってもよい。
【0081】
すなわち、DNN324について本明細書で説明された動作を使用して、DNN324は、(トピックベースの音声区分220に対してトピックベースの音声区分216により新規の基準301がどれだけ良く満たされるかに基づいて)、トピックベースの音声区分216からの内容またはトピックベースの音声区分220からの内容、または、トピックベースの音声区分216およびトピックベースの音声区分220からの内容の組み合わせが、トピックベースのテキスト区分208を変更する最良の候補であることを決定することができる。
【0082】
よって、もし、DNN324が、トピックベースの音声区分220において人物Yが何を言ったかよりも、トピックベースの音声区分216において人物Wがだれで彼/彼女が何を言ったかの方が、トピックベースのテキスト区分208に対し、より関連する/重要であると決定する場合、次いで、トピックベースのテキスト区分208は、トピックベースの音声区分216の内容で更新される。しかしながら、もし、DNN324が、トピックベースの音声区分216において人物Wが何を言ったかよりも、トピックベースの音声区分220において人物Yがだれで彼/彼女が何を言ったかの方が、トピックベースのテキスト区分208に対し、より関連する/重要であると決定する場合、次いで、トピックベースのテキスト区分208は、トピックベースの音声区分220の内容で更新される。もし、DNN324が、トピックベースのテキスト区分208に対して、人物Wおよび人物Yが等しく重要であり、彼らの両方が言ったことが等しく関連する場合、かつ、彼らが言ったことが互いに矛盾しない場合、次いで、トピックベースの音声区分216およびトピックベースの音声区分220の両方からの内容が、トピックベースのテキスト区分208に組み込まれる。
【0083】
上述したように、図示されたDNN324における各ノードは、図示したニューロン309のような電子的なニューロンを表す。ブロック311において示されるように、各ニューロン(ニューロン309を含む)は、数学的関数、出力値、重みおよびバイアス値などの複数の特徴を含む。
【0084】
数学的関数は、1または複数の上流のニューロンからのデータを処理するための数学的方式である。例えば、中間の隠れ層305において示されるニューロンのうちの1または複数が、ニューロン309にデータ値を送信すると仮定する。ニューロン309は、次いで、1または複数の出力値を作成するために、ブロック311において示される数学的関数を実行することによって、これらのデータ値を処理し、この出力値は、隠れ層305内の他のニューロンまたは出力層307におけるニューロンなどの別のニューロンに送信される。各ニューロンは、また、そのニューロンもしくは接続された他のニューロンまたはその両方に特有の重みを有する。さらに、出力値(複数可)に、バイアス値(複数可)が加算されて、ここで、バイアス値は、出力値を増加または減少させ、DNN324がさらに微調整されることを可能とする。
【0085】
例えば、ニューロン313が、そのデータの解析結果をニューロン309へ送信していると仮定する。ニューロン309は、ニューロン313から特定的に到来するデータがどれだけ重要であるかを定義する第1の重みを有する。データが重要である場合、ニューロン313から来るデータは、重く重み付けされ、もしくはバイアス値だけ増加され、またはその両方がなされ、ひいては、ニューロン309内の数学的関数(複数可)は、より高い出力を生成し、これは、出力層307内のニューロンにより重い影響を及ぼすであろう。同様に、ニューロン313がニューロン309の動作に重要であると判定された場合、ニューロン313における重みが増加され、ニューロン309が、ニューロン313における数学的関数の出力についてより高い値を受信するようになる。あるいは、ニューロン309の出力に影響するために使用される重みもしくはバイアスまたはその両方を減少させることによって、ニューロン309の出力が最小化されてもよい。これらの重み/バイアスは、DNN324におけるニューロンの1つ、いくつかまたは全部について、調整可能であり、出力層307から信頼の出力が結果としてもたらされるようにする。このような調整は、代替的に、手動または自動的に実行される。
【0086】
手動で調整される場合、数学的関数(複数可)、出力値(複数可)、重み(複数可)もしくはバイアス値(複数可)またはこれらの組み合わせは、出力層307からの出力が期待値に一致するまでユーザによって反復的に調整される。例えば、テキスト区分315がトピックベースの音声区分216からの内容を使用してトピックベースのテキスト区分208を更新し、一方で、テキスト区分317がトピックベースの音声区分220からの内容を使用してトピックベースのテキスト区分208を更新するものと仮定する。さらに、出力302は、更新されたテキスト区分を、より信頼できる/適切な順序で、出力すると仮定する。よって、DNN324が、トピックベースの音声区分216が、トピックベースの音声区分220よりもトピックベースのテキスト区分209に対しより関連性があり、かつ、より重要であると解釈するため、DNN324は、テキスト区分315をテキスト区分317よりも上にランク付けし、出力する。しかしながら、DNN324のレビューアが、トピックベースの音声区分220からのキーワード、話者の役割などが、実際に、トピックベースの音声区分216で見つかったものよりも新規の基準301を満たすことについてより良いものであると決定するとさらに仮定する。このようにして、ブロック311に示される数学的関数(複数可)、出力値(複数可)、重み(複数可)もしくはバイアス値(複数可)またはこれらの組み合わせは、テキスト区分317がテキスト区分315よりも高くランク付けおよび表示されるまで手動で調整される。
【0087】
自動的に調整される場合、数学的関数、出力値、重みもしくはバイアスまたはこれらの組み合わせは、「バックプロパゲーション(backpropagation)」を用いて調整され、ここで、「勾配降下(Gradient Descent)法」が、正確な出力302を提供するために、各数学的関数、出力値、重みもしくはバイアスまたはこれらの組み合わせをどのように調整するべきかを決定する。すなわち、ブロック311に示される数学的関数(複数可)、出力値(複数可)、重み(複数可)もしくはバイアス値(複数可)またはこれらの組み合わせは、新規の基準がトピックベースの音声区分216よりもトピックベースの音声区分220による方が実際に良好に満たされると仮定すると、テキスト区分317が、テキスト区分315よりも上位にランク付けされ、表示されるまで、再帰的に調整される。
【0088】
図4を参照すると、本発明の1または複数の実施形態により実行される1または複数のステップの高レベルのフローチャートが提示される。
【0089】
開始ブロック402の後、1または複数のプロセッサもしくはユーザまたはその両方は、ブロック404に記載されているように、テキスト文書を、複数のトピックベースのテキスト区分に区切る。本発明の実施形態においては、テキスト文書は、デバイスの動作を制御する。すなわち、テキスト文書は、デバイスの電子コントローラを制御するソース・コードであるか、もしくは、デバイスを制御するための操作マニュアルであるか、またはその両方である。
【0090】
ブロック406で説明されているように、1または複数のプロセッサ(例えば、
図1に示すプロセッサ104)は、テキスト文書に関連する音声ファイルを受信する。例えば、
図2において、音声ファイル214は、テキスト文書204に関連し、これは、これらの両方がデバイスAもしくはデバイスBまたはその両方に関連するためである。本発明の実施形態においては、音声ファイル214およびテキスト文書204は、音声ファイル214およびテキスト文書204に関連付けられたメタデータ(例えば、「デバイスA」、「デバイスB」、「動作制御」など)、音声ファイル214のタイトル(「デバイスAおよびデバイスBの動作に対する推奨される変更」)およびテキスト文書204のタイトル(例えば「デバイスAおよびデバイスBの動作」)などに基づいて、互いに関連しているとみなされる。
【0091】
ブロック408で説明されるように、プロセッサ(複数可)は、(例えば、既知のスピーチ・ツー・テキスト(STT)アルゴリズムを使用して)、音声ファイルをテキストに変換し、音声ファイルのテキスト表現を生成する。
【0092】
ブロック410で説明されように、プロセッサ(複数可)もしくはユーザまたはその両方は、音声ファイルのテキスト表現を、複数のトピックベースの音声区分に区切る。例えば、音声ファイル314のテキスト・バージョンが、これらの内容、使用されるキーワードなどに基づいて、
図2において示されるトピックベースの音声区分216,218,220,222に区分され、これは、トピックベースの音声区分216,218,220,222の各々の主題/内容を識別するためである。
【0093】
ブロック412において説明されるように、プロセッサ(複数可)もしくはユーザまたはその両方は、複数のトピックベースのテキスト区分からの特定のトピックベースのテキスト区分を、複数のトピックベースの音声区分からの特定のトピックベースの音声区分にマッチングし、ここで、トピックベースのテキスト区分からの特定のトピックベースのテキスト区分およびトピックベースの音声区分からの特定のトピックベースの音声区分は、同一のトピックのものである。例えば、
図2において、トピックベースの音声区分220のトピックは、「デバイスBを制御すること」であり、トピックベースのテキスト区分208と同一のトピックである。
【0094】
ブロック414において説明されるように、プロセッサ(複数可)もしくはユーザまたはその両方は、特定のトピックベースのテキスト区分の内容と特定のトピックベースの音声区分の内容との間の差分を識別する。例えば、トピックベースのテキスト区分208およびトピックベースの音声区分220が、「デバイスBを制御すること」の同一のトピックを対象とする場合でさえ、これらの内容は異なる可能性がある。つまり、トピックベースのテキスト区分208は、「デバイスBを2500RPMで動作する」との発言である一方で、トピックベースの音声区分220は、「デバイスBを2000RPMで動作する」という発言である可能性がある。
【0095】
ブロック416で説明されるように、プロセッサ(複数可)もしくはユーザまたはその両方は、特定のトピックベースのテキスト区分の内容と特定のトピックベースの音声区分の内容との間の差分に基づいて、特定のトピックベースの音声区分により新規の基準が満たされることを判定する。上記例においては、「2000RPM」は、「2500RPM」から、この新規の(つまり新しい情報であるとの)基準を満たすのに十分に異なる。
【0096】
ブロック418において説明されるように、特定のトピックベースの音声区分により新規の基準が満たされると判定したことに応答して、プロセッサ(複数可,もしくは
図3に示されるDNN324またはその両方)は、特定のトピックベースのテキスト区分の内容を、特定のトピックベースの音声区分の内容で更新し、テキスト文書の更新バージョンを作成する(
図3に示した更新されたトピックベースのテキスト区分315の第1のバージョン)。この更新が、ニューラル・ネットワークまたは同様の人工知能によって実行される場合、次いで、この更新は、
図3に示すDNN324について上述した処理を用いて実行される。この更新が、
図1に示されたプロセッサ104によって実行される場合は、
図3に示す更新されたトピックベースのテキスト区分315の第1のバージョンの生成は、(1)選択されたテキスト/音声ファイル区分の内容間の差分を識別し、(2)この差分が有意である(例えば、所定範囲を超えて動作値を変更する)ことを決定し、(3)テキスト区分を新しいコンテンツの音声区分で更新するプログラムを実行するプロセッサ104によって作成される。
【0097】
ブロック420において説明されるように、プロセッサは、テキスト文書の更新されたバージョンを利用して、デバイスの動作を修正するアクションを実行する。例えば、テキスト文書がソース・コードである場合、次いで、
図2に示すTUUL202は、コントローラ156によって制御される物理デバイス154の動作を変更するために、ソース・コードのこの更新されたバージョンを使用してコントローラ156を再プログラムする。上記の例では、次いで、物理デバイス154(例えば、ポンプ)は、2000rpmの回転から2500RPMで回転するように切り替えるであろう。これにより、あるセットの条件で最適なやり方で行うことによって、デバイスの動作が向上される。
【0098】
本フローチャートは、終端ブロック422で終了する。
【0099】
本発明の実施形態においては、音声ファイルは、テキスト文書の後に生成されたものである。よって、音声ファイルの内容は、既に存在しているテキスト文書を修正する。
【0100】
本発明の実施形態においては、プロセッサ(複数可)は、音声ファイルのテキスト・ベースの表現に自然言語処理(NLP)を適用し、テキスト文書に対する候補文書更新を識別する。例えば、ここで、人物Wが、「我々はデバイスBの回転速度を25%高速化するべきだと思う」と発言し、トピックベースの音声区分216が、人物Wによって発言された単語のテキスト・バージョンであると仮定する。NLPは、この発言が、(1)デバイスBに関するものであること、および、(2)デバイスBの回転速度を25%だけ増加するためのものであることを認識する。よって、NLPは、トピックベースのテキスト区分208を評価し、それが(1)デバイスBの動作に関することであり、(2)それが、現在回転速度2000RPMで動作しているものであることを認識するであろう。このように、システムは、この情報を、トピックベースのテキスト区分208において、デバイスBの回転速度を2500RPMに増加ことに関連づけるであろう。
【0101】
本発明の実施形態において、プロセッサ(複数可)は、さらに、特定のトピックベースの音声区分を話した話者の役割に基づいて、特定のトピックベースの音声区分により新規の基準が満たされることを判定する。すなわち、上記で議論したように、この情報の差異が新規(有意に異なる)であることを示す、音声区分およびテキスト区分において見つかったものの間の情報における差異のみではなく、上記で議論したように、話者の役割もまた、新規な/異なる情報が有意であるか否かを示す。すなわち、ポンプのオペレータが、ポンプの回転速度を25%増加させなければならないと発言した場合、この発言には、ポンプに関連する技術的または運用上の役割を有さない人物が、ポンプの回転数を25%減少すべきであると発言した場合より大きな信用が与えられる。
【0102】
本発明の実施形態においては、プロセッサ(複数可)は、特定のトピックベースの音声区分に対する重要性スコアを決定し、ここで、重要性スコアは、特定のトピックベースのテキスト区分を更新する場合に特定のトピックベースの音声区分がテキスト文書に加える変更のタイプに基づくものであり、プロセッサ(複数可)は、特定のトピックベースの音声区分に対する重要性スコアに基づいて、特定のトピックベースの音声区分により新規の基準が満たされると決定する。例えば、
図2において人物WがデバイスBの回転速度を25%増大させることを推奨する(トピックベースの音声区分216)一方で、人物Yが、白ではなくグレイに塗ることを推奨(トピックベースの音声区分220)した場合、トピックベースの音声区分216には、NLPまたは話者が何を話しているのかを識別する類似のロジックの使用を通じて、トピックベースの音声区分220よりも高いレベルの重要度が割り当てられる。ひいては、ポンプ(デバイスB)の色がその性能に影響を与えはしないので、トピックベースのテキスト区分208は、デバイスBの回転速度を2500RPMに増大することを反映するように修正される一方で、人物YのデバイスBをグレイに塗るとの提案は無視される。
【0103】
本発明の実施形態においては、プロセッサ(複数可)は、フィードバックのために特定のトピックベースの音声区分をユーザに提供し、ユーザからのフィードバックを受信したことに基づいて、テキスト文書を更新し、更新されたテキスト文書を再索引付けする。すなわち、一度、
図2に示すテキスト文書204が本明細書で説明される処理を用いて全体で更新されると、それは承認フィードバックのためにユーザに送信される。一度、ユーザが、変更をレビューして、承認すると、テキスト文書204は、索引において、いかなる変更がなされたのか、テキスト文書204内のいずれの位置にそれが位置するのかを示すために、再索引付けされる。
【0104】
本発明の実施形態においては、
図1および
図2において説明されているように、テキスト文書は、1または複数のプロセッサによって実行された場合に、デバイスのコントローラに、デバイスの動作を修正するアクションを実行させるソース・コードである。
【0105】
1または複数の実施形態においては、本発明は、クラウド・コンピューティングを用いて実装される。それにもかかわらず、この開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書で詳述される教示の実装は、クラウド・コンピューティング環境に限定されないことに理解されたい。むしろ、本発明の実施形態は、現時点で知られた、またはこれから開発される他の任意のタイプのコンピューティング環境と併せて実装可能である。
【0106】
クラウド・コンピューティングは、最小の管理労力またはサービス・プロバイダとの対話で迅速にプロビジョニングおよびリリースされ得る、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシンおよびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能とする、サービス配布のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデルおよび少なくとも4つのデプロイメント・モデルを含む。
【0107】
特性は、以下の通りである。
オンデマンド・セルフ・サービス:クラウド・コンシューマは、サービス・プロバイダとの人的な対話を必要とせずに自動的に必要なだけ、サーバ時間およびネットワーク・ストレージなどのコンピュータ能力を一方的にプロビジョニングすることができる。
広帯域ネットワーク・アクセス:能力は、ネットワーク越しに利用可能であり、異種シン・クライアントまたはシック・クライアント・プラットフォーム(例えば、モバイルフォン、ラップトップ、PDA)による使用を促進する標準的なメカニズムを介して、アクセスされる。
リソース・プーリング:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて複数のコンシューマに提供するためにプールされ、種々の物理的および仮想的リソースが需要に従って動的に割り当てられ、また、再割り当てられる。コンシューマは、一般的に、提供されるリソースの正確な場所を管理したり、知識を有したりせず、しかし、より高度な抽象レベル(例えば国、州、またはデータセンタ)にて場所をまだ指定することが可能であるという意味で、場所の独立感がある。
迅速な弾力性:能力は、迅速かつ柔軟に、いくつかの場合では自動的に、プロビジョニングされて素早くスケール・アウトすることができ、また、迅速にリリースされて素早くスケール・インすることができる。コンシューマにとって、プロビジョニング利用可能な能力は、しばしば外面的には無制限のように見え、任意の時間に任意の量を購入することができる。
測量されたサービス:クラウドシステムは、サービスのタイプにとって適切なある抽象レベル(例えば、ストレージ、処理、帯域幅、アクティブ・ユーザ)での計量能力を利用することによって、自動的にリソース使用を制御し、また最適化する。リソース使用量は、監視され、制御されおよび報告されて、利用サービスのプロバイダおよびコンシューマの双方に対する透明性を提供する。
ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えばウェブベースの電子メール)などのシン・クライアント・インタフェースを介して種々のクライアント・デバイスからアクセス可能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または、限定されたユーザ固有のアプリケーション構成設定の潜在的な例外を除いて個々のアプリケーション能力すらも含む下層のインフラストラクチャを管理または制御しない。
プラットフォーム・アズ・ア・サービス(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを用いて作成された、コンシューマ作成または獲得のアプリケーションをクラウド・インフラストラクチャ上にデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システムまたはストレージを含む下層のクラウド・インフラストラクチャを管理または制御しないが、デプロイされたアプリケーションおよび場合によってはアプリケーション・ホスティング環境の構成への制御を有する。
インフラストラクチャ・アズ・ア・サービス(IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、および、コンシューマが、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアをデプロイし、稼働させることができる他の基本的なコンピューティング・リソースを提供することである。コンシューマは、下層のクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションに対する制御、および、場合によっては、選択したネットワーキング・コンポーネント(例えば、ホストファイアウォール)の限定された制御を有する。
【0108】
デプロイメント・モデルは、以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、1つの組織のためだけに使用される。1または複数の実施形態においては、これは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスが存在し、またはこれらの組み合わせである。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織により共有され、共通の懸念(例えば、ミッション、セキュリティ要件、ポリシーおよびコンプライアンスに関する考慮事項)を有する特定のコミュニティをサポートする。一または複数の実施形態においては、それは、組織または第三者によって管理されてもよく、もしくはオンプレミスまたはオフプレミスが存在し、またはこれらの組み合わせである。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆、または、大きな業界団体が利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2以上のクラウド(プライベート、コミュニティまたはパブリック)の混成であり、これらのクラウドは、固有のエンティティのままであるが、しかし、データおよびアプリケーションのポータビリティを可能とする標準化されたまたは独自の技術(例えばクラウド間の負荷分散のためのクラウド・バースティング)によって結合される。
【0109】
クラウド・コンピューティング環境は、ステートレス性、低結合、モジュール性および意味論的な相互運用性に重点を置いたサービス指向である。クラウド・コンピューティングの核心は、相互接続された複数のノードのネットワークを含んだインフラストラクチャである。
【0110】
ここで、
図5を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示するように、クラウド・コンピューティング環境50は、1以上のクラウド・コンピューティング・ノード10を含み、これと、例えば、パーソナル・デジタル・アシスタント(PDA)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54Cもしくは自動車コンピュータ・システム54Nまたはこれらの組み合わせなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスがお互いに通信する。さらに、ノード10は、互いに通信する。一実施形態においては、これらのノードは、プライベート、コミュニティ、パブリックもしくはハイブリッド・クラウドなど上述したような、またはこれらの組み合わせなどの1以上のネットワークにおいて、物理的にまたは仮想的にグループ化(図示しない)されてもよい。これは、クラウド・コンピューティング環境50が、インフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせをサービスとして提供することを可能とし、これらについては、クラウド・コンシューマは、リソースをローカル・コンピューティング・デバイス上で維持する必要がない。
図5に示されるコンピューティング・デバイス54A~54Nのタイプは、説明する目的のみであり、コンピューティング・ノード10およびクラウド・コンピューティング環境50が、任意のタイプのネットワーク、ネットワークアドレス可能な接続(例えば、ウェブ・ブラウザを使用して)またはこれらの両方を介して、任意のタイプのコンピュータ化されたデバイスと通信することができることが理解される。
【0111】
ここで、
図6を参照すると、クラウド・コンピューティング環境50(
図5)によって提供される機能抽象レイヤのセットが示される。
図6に示すコンポーネント、レイヤおよび機能が、説明する目的のみであり、本発明の実施形態は、これらに限定されないことが事前に理解されるであろう。示すように、以下の層および対応する機能が提供される。
【0112】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム61、RISC(縮約命令セットコンピュータ)アーキテクチャに基づくサーバ62、サーバ63,ブレードサーバ64、ストレージ・デバイス65およびネットワークおよびネットワーキング・コンポーネント66を含む。いくつかの実施形態においては、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0113】
仮想化レイヤ70は、抽象化レイヤを提供し、そこから1または複数の実施形態において提供される次の仮想化エンティティの例、仮想化サーバ71、仮想化ストレージ72、バーチャル・プライベート・ネットワークを含む仮想化ネットワーク73、仮想化アプリケーションおよびオペレーティング・システム74、および仮想クライアント75などが提供される。
【0114】
一例においては、管理レイヤ80は、以下に説明する機能を提供する。リソース・プロビショニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。メータリングおよびプライシング82は、リソースがクラウド・コンピューティング環境内で利用されるコストの追跡およびこれらのソースの消費に対する請求またはインボイスの送付を提供する。一例においては、これらのリソースは、アプリケーション・ソフトウェアのライセンスを含む。セキュリティは、クラウド・コンシューマおよびタスクについての本人確認、並びに、データおよび他のリソースに対する保護を提供する。ユーザポータル83は、コンシューマおよびシステム管理者に対しクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル・マネジメント84は、要求されるサービス・レベルを満たすようにクラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル合意(SLA)の計画と履行85は、SLAに従って、将来の要求が予期されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
【0115】
ワークロード・レイヤ90は、1または複数の実施形態において、クラウド・コンピューティング環境が利用される機能性の例を提供する。ワークロードおよびこのレイヤから提供される機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育配信93、データ・アナリティクス処理94、トランザクション処理95、本明細書で説明される本発明の特徴の1または複数を実行する文書更新および利用処理96が含まれる。
【0116】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的とし、本発明を限定することを意図するものではない。本明細書で使用されるように、単数形「a」、「an」および「the」は、文脈が明確に示さない限り、複数形も含むことを意図している。さらに、用語”含む(comprise)”もしくは”含んでいる(comprising)”またはこれらの両方は、この明細書で使用される場合、記載された特徴、整数、ステップ、動作、要素もしくはコンポーネントまたはこれらの組み合わせの存在を指定し、1以上の他の特徴、整数、ステップ、動作、要素、コンポーネントもしくはこれらのグループまたはこれらの組み合わせの存在または追加を除外するものではないことを理解されたい。
【0117】
以下の特許請求の範囲における、対応する構造、材料、動作および全てのミーンズまたはステップ・プラス・ファンクション要素の均等物は、明確に特許請求されるように他の特許請求された要素と組み合わせで実行するための任意の構造、材料または動作を含むことが意図される。本発明の種々の実施形態の説明は、例証および説明を目的として提示されたものであるが、網羅的であることまたは本発明を開示された形態に限定することを意図するものではない。本発明の範囲から逸脱することなく多くの変更および変形が、当業者にとって明らかとなるであろう。実施形態は、本発明の原理および実際的な用途を最も良く説明するために、また、当業者が、企図した特定の使用に適した種々の変更とともに種々の実施形態について本発明を理解できるように、選択され、説明されたものである。
【0118】
本発明の1または複数の実施形態においては、本開示において説明されるいずれの方法も、VHDL(VHSICハードウェア記述言語)プログラムおよびVHDLチップを用いて実装される。VHDLは、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)および他の類似の電子デバイスのための例示的なデザイン・エントリ言語である。よって、本発明の1または複数の実施形態においては、本明細書で説明されるいずれのソフトウェア実装方法も、ハードウェアベースのVHDLプログラムによってエミュレートされ、次いで、これは、FPGAのようなVHDLチップに適用される。
【0119】
このように本出願の本発明の実施形態について詳細に説明し、その例示的な実施形態を参照したが、添付の特許請求の範囲において定義される本発明の範囲から逸脱することなく、変更および変形が可能であることが明らかであろう。