(58)【調査した分野】(Int.Cl.,DB名)
前記入力が発話された入力であり、前記発話された入力は、前記発話された入力の目的として前記変換規則を選択することを難読化する、請求項3に記載のコンピュータ実装方法。
前記変換規則が、前記音声入力の一部に対応する単語内の所定のオフセットの文字を選択し、前記文字が前記エントリ・フィールド入力の一部を形成する、請求項1に記載のコンピュータ実装方法。
前記音声入力が少なくとも1つの単語を含み、前記少なくとも1つの単語が、以前の音声入力における前記少なくとも1つの単語の使用に依存して受け入れられる、請求項1に記載のコンピュータ実装方法。
情報の音声入力のためのコンピュータ使用可能コードを含むコンピュータ使用可能記憶媒体を備えるコンピュータ使用可能プログラムであって、前記コンピュータ使用可能コードは、
前記音声入力が生成される環境の特徴を検出するコンピュータ使用可能コードと、
前記環境の前記特徴に応答して前記音声入力に対する変換規則を選択するコンピュータ使用可能コードと、
プロセッサおよびメモリを使用して、前記変換規則を使用してなされた前記音声入力に対して当該変換規則を適用するためのコンピュータ使用可能コードと、
前記変換規則は、前記音声入力がエントリ・フィールド入力を難読化して、当該エントリ・フィールド入力と区別されることを可能としているものであり、当該変換規則を前記音声入力に適用して機密情報を含む前記エントリ・フィールド入力を生成するためのコンピュータ使用可能コードと、
アプリケーションに前記エントリ・フィールド入力を提供するためのコンピュータ使用可能コードであって、前記エントリ・フィールド入力は前記アプリケーション内のエントリ・フィールドに読み込むために使用される、前記エントリ・フィールド入力を提供するためのコンピュータ使用可能コードと、
を含む、コンピュータ使用可能プログラム。
前記コンピュータ使用可能コードはデータ処理システム内のコンピュータ読み取り可能記憶媒体に格納され、前記コンピュータ使用可能コードはリモート・データ処理システムからネットワークを介して転送される、請求項15に記載のコンピュータ使用可能プログラム。
前記コンピュータ使用可能コードはサーバ・データ処理システム内のコンピュータ読み取り可能記憶媒体に格納され、前記コンピュータ使用可能コードは、リモート・データ処理システムに関連付けられたコンピュータ読み取り可能記憶媒体内で使用するために、前記リモート・データ処理システムへネットワークを介してダウンロードされる、請求項15に記載のコンピュータ使用可能プログラム。
【発明を実施するための形態】
【0009】
本明細書に記載された例示的実施形態との関連において、ユーザからの音声入力を受け入れるデータ処理システムは、マイクロフォンなどの音声捕捉デバイスを用いて構成されるものと想定される。音声入力とは、実施形態を使用して最終的にテキストに変換可能な音声パターンである。音声入力を実行する動作は、音声入力がデータ処理システムに提供される様式である。特に指定されていない限り、音声入力は人間が生成する音声パターン、機械が生成する音声パターン、人間の可聴範囲内の音声、極超短波または超低周波の音声、あるいはそれらの組み合わせを含むことができる。
【0010】
例示的実施形態は、アイズフリーあるいはハンズフリーまたはその両方のデータ入力方法を使用する傾向が増えていることを認識している。音声入力は、ユーザが声、音、または発話を使用してデータ入力を提供することができる、アイズフリーおよびハンズフリー・ソリューションである。さらに例示的実施形態は、音声入力方法を使用して入力される何らかのデータがセキュリティに敏感な可能性があることを認識している。たとえば、携帯電話などのデータ処理システムに向かってパスワードを発話するユーザは、立ち聞きされることを避けたい可能性がある。患者の医療情報を音声で入力する医師は、音声入力の便利さを望むが、その情報を他人に聞かれるリスクについても懸念する可能性がある。
【0011】
個人情報、データ・セキュリティ情報、認証情報、医療情報、および多くの他のカテゴリの情報は、広く機密情報とみなされる。しかしながら例示的実施形態は、その情報、または一般的に機密情報とみなされるデータに限定されることは意図されない。たとえば人の年齢に関する情報はその人にとっての機密情報であるが、他の人にとってはそうではない可能性がある。一般に、例示的実施形態の範囲内では、その入力が実施形態から恩恵を受けることのできる任意の情報を機密情報とみなすことができる。
【0012】
例示的実施形態は、ポータブル・デバイスを含むがこれに限定されないデータ処理システム上での機密情報の音声入力に対処することが、音声入力の入力者(provider)に近接する他の人物またはデバイスによる意図的な盗聴または不可避の立ち聞きのリスクがあるために問題であることを認識している。障害のある人は特に、周囲に居る人物を検出できない可能性があるため、自分をプライベートな状況に引き離すことができない可能性があるため、および、彼らにとって音声入力が入力手段として唯一開かれたモダリティ(modality)である可能性があるため、こうした音声観察に対して脆弱である。
【0013】
本発明を説明するために使用される例示的実施形態は、一般に、前述の問題および音声入力の実行に関する他の問題に対処し、解決する。例示的実施形態は、機密情報の音声入力のための方法、システム、およびコンピュータ・プログラム製品を提供する。
【0014】
例示的実施形態は、ある入力および変換に関して単なる例として説明される。こうした説明は、本発明に限定されることは意図されていない。たとえば、所定のインデックスで文字を選択することによる音声入力の変換に関して説明される例示的実施形態は、制限なしに音声入力を変換する他の様式に関して実装可能である。
【0015】
例示的実施形態は、あるデータ、データ構造、ファイル・システム、ファイル名、ディレクトリ、および経路(path)に関して、単なる例として説明される。こうした説明は、本発明に限定されることは意図されていない。たとえば、ローカル・アプリケーション名および経路に関して説明される例示的実施形態は、本発明の範囲内でリモート経路(path)上のアプリケーションとして実装可能である。
【0016】
さらに例示的実施形態は、任意の種類のデータ、データ・ソース、または、データ・ネットワークを介したデータ・ソースへのアクセスに関して実装可能である。任意のタイプのデータ・ストレージ・デバイスは、本発明の範囲内で、データ処理システムでローカルにまたはデータ・ネットワークを介して、本発明の実施形態にデータを提供することができる。
【0017】
例示的実施形態は、特定のコード、設計、アーキテクチャ、レイアウト、概略図、およびツールを使用して単なる例として説明され、例示的実施形態に限定するものではない。さらに例示的実施形態は、説明を明瞭にするために単なる例として、特定のソフトウェア、ツール、およびデータ処理環境を使用するいくつかのインスタンスで説明される。例示的実施形態は、他の同等または同様の目的の構造、システム、アプリケーション、またはアーキテクチャと共に使用することができる。例示的実施形態は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装可能である。
【0018】
本開示における例は、単に説明を明瞭にするために使用され、例示的実施形態に限定されるものではない。追加のデータ、動作、アクション、タスク、アクティビティ、および操作は本開示から考案可能であり、例示的実施形態の範囲内で同等に企図される。
【0019】
本明細書に列挙されるいずれの利点も、例示的実施形態に限定されることは意図されていない。追加または異なる利点は、特定の例示的実施形態によって実現可能である。さらに特定の例示的実施形態は、前述の利点のいくつかまたはすべてを有するか、またはいずれも有さない可能性がある。
【0020】
図面を参照すると、特に
図1および
図2を参照すると、これらの図面は、例示的実施形態を内部に実装可能なデータ処理環境の例示的な図である。
図1および
図2は単なる例であり、異なる実施形態を内部に実装可能な環境に関していかなる制限も主張または示唆することは意図されていない。特定の実装は、以下の説明に基づいて、示された環境に対して多くの修正を行うことができる。
【0021】
図1は、例示的実施形態を内部に実装可能なデータ処理システムのネットワークを示す図表現である。データ処理環境100は、例示的実施形態を内部に実装可能なコンピュータのネットワークである。データ処理環境100はネットワーク102を含む。ネットワーク102は、データ処理環境100内で互いに接続された様々なデバイスおよびコンピュータ間に通信リンクを提供するために使用される媒体である。ネットワーク102は、有線、無線の通信リンク、または光ファイバ・ケーブルなどの接続を含むことができる。サーバ104およびサーバ106は、ストレージ・ユニット108と共にネットワーク102に結合される。ソフトウェア・アプリケーションは、データ処理環境100内の任意のコンピュータ上で実行可能である。
【0022】
加えて、クライアント110、112、および114もネットワーク102に結合される。サーバ104または106などのデータ処理システム、あるいはクライアント110、112、または114はデータを含むことが可能であり、その上で実行するソフトウェア・アプリケーションまたはソフトウェア・ツールを有することができる。
【0023】
デバイス120は、ネットワーク102に接続されたポータブル・デバイスの例である。サーバ104および106のいずれか、クライアント110、112、および114のいずれか、または音声入力を受け入れるデバイス120には、マイクロフォンなどの音声捕捉デバイス(図示せず)が装備されている。例として、デバイス120は、エントリ・フィールド122を含むフォームを提示するアプリケーション(図示せず)を含む。ユーザ126からの音声124は、実施形態に従ってエントリ・フィールド122のためのデータに変換される音声入力を形成する。実施形態を実装するアプリケーションはデバイス120内で実行する。
【0024】
サーバ104および106、ストレージ・ユニット108、ならびにクライアント110、112、および114は、有線接続、無線通信プロトコル、または他の好適なデータ接続を使用してネットワーク102に結合することができる。クライアント110、112、および114は、たとえばパーソナル・コンピュータまたはネットワーク・コンピュータとすることができる。
【0025】
示された例では、サーバ104はブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、クライアント110、112、および114に提供することができる。クライアント110、112、および114は、この例ではサーバ104に対するクライアントとすることができる。クライアント110、112、114、またはそれらの何らかの組み合わせは、それら独自のデータ、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションを含むことができる。データ処理環境100は、図示されていない追加のサーバ、クライアント、および他のデバイスを含むことができる。
【0026】
示された例では、データ処理環境100はインターネットとすることができる。ネットワーク102は、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)および他のプロトコルを使用して互いに通信する、ネットワークおよびゲートウェイの集合を表すことができる。インターネットの中心には、データおよびメッセージをルーティングする何千という商用、行政用、教育用、および他のコンピュータ・システムを含む、主要ノードまたはホスト・コンピュータ間のデータ通信リンクの基幹がある。もちろん、データ処理環境100は、たとえばイントラネット、ローカル・エリア・ネットワーク(LAN)、またはワイド・エリア・ネットワーク(WAN)などの、いくつかの異なるタイプのネットワークとしても実装可能である。
図1は例として意図されたものであり、異なる例示的実施形態に対するアーキテクチャ上の制限としては意図されていない。
【0027】
データ処理環境100は、他の用途の中でも特に、例示的実施形態を内部に実装可能なクライアント・サーバ環境を実装するために使用することができる。クライアント・サーバ環境は、ネットワーク全体にわたってソフトウェア・アプリケーションおよびデータを分散させ、結果としてクライアント・データ処理システムとサーバ・データ処理システムとの間での対話を使用することでアプリケーションを機能させることができる。データ処理環境100は、ネットワーク全体にわたって分散された相互運用可能なソフトウェア構成要素をコヒーレントなビジネス・アプリケーションとしてまとめてパッケージングすることができる、サービス指向アーキテクチャを採用することもできる。
【0028】
図2を参照すると、この図は例示的実施形態を内部に実装可能なデータ処理システムのブロック図を示す。データ処理システム200は、
図1におけるサーバ104またはクライアント110などのコンピュータの例であり、その内部に例示的実施形態のプロセスを実装するコンピュータ使用可能プログラム・コードまたは命令を例示的実施形態のために配置することができる。
【0029】
示された例では、データ処理システム200は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)202ならびにサウス・ブリッジおよび入力/出力(I/O)コントローラ・ハブ(SB/ICH)204を含むハブ・アーキテクチャを採用する。処理ユニット206、メイン・メモリ208、およびグラフィクス・プロセッサ210は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)202に結合される。処理ユニット206は1つまたは複数のプロセッサを含むことが可能であり、1つまたは複数の異種プロセッサ・システムを使用して実装可能である。グラフィクス・プロセッサ210は、ある実装においてアクセラレーテッド・グラフィクス・ポート(AGP)を介してNB/MCHに結合可能である。
【0030】
示された例では、ローカル・エリア・ネットワーク(LAN)アダプタ212はサウス・ブリッジおよびI/Oコントローラ・ハブ(SB/ICH)204に結合される。オーディオ・アダプタ216、キーボードおよびマウス・アダプタ220、モデム222、読み取り専用メモリ(ROM)224、ユニバーサル・シリアル・バス(USB)および他のポート232、ならびにPCI/PCIeデバイス234が、バス238を介してサウス・ブリッジおよびI/Oコントローラ・ハブ204に結合される。ハード・ディスク・ドライブ(HDD)226およびCD−ROM230は、バス240を介してサウス・ブリッジおよびI/Oコントローラ・ハブ204に結合される。PCI/PCIeデバイスは、たとえばイーサネット・アダプタ、アドイン・カード、およびノートブック・コンピュータ用のPCカードを含むことができる。PCIはカード・バス・コントローラを使用するが、PCIeは使用しない。ROM224は、たとえばフラッシュ・バイナリ入力/出力システム(BIOS)とすることができる。ハード・ディスク・ドライブ226およびCD−ROM230は、たとえば集積ドライブ・エレクトロニクス(IDE)またはシリアル拡張技術アタッチメント(SATA)インターフェースを使用することができる。スーパーI/O(SIO)デバイス236はサウス・ブリッジおよびI/Oコントローラ・ハブ(SB/ICH)204に結合することができる。
【0031】
オペレーティング・システムは処理ユニット206上で実行する。オペレーティング・システムは、
図2のデータ処理システム200内の様々な構成要素の制御を調整および提供する。オペレーティング・システムは、Microsoft(R)Windows(R)(MicrosoftおよびWindowsは、米国あるいは他の諸国またはその両方におけるMicrosoft Corporationの商標である)、またはLinux(R)(Linuxは、米国あるいは他の諸国またはその両方におけるLinus Torvaldsの商標である)などの市販のオペレーティング・システムとすることができる。Javaプログラミング・システムなどのオブジェクト指向プログラミング・システムは、オペレーティング・システムと共に実行可能であり、データ処理システム200上で実行するJavaプログラムまたはアプリケーションからオペレーティング・システムへの呼び出しを提供する(JavaおよびすべてのJavaベースの商標およびロゴは、Oracleあるいはその関連会社またはその両方の商標または登録商標である)。
【0032】
オペレーティング・システム、オブジェクト指向プログラミング・システム、例示的実施形態のプロセス、およびアプリケーションまたはプログラムに関するプログラム命令は、ハード・ディスク・ドライブ226などのストレージ・デバイス上に配置され、処理ユニット206による実行のために、たとえばメイン・メモリ208、読み取り専用メモリ224、または1つまたは複数の周辺デバイスなどのメモリにロードすることができる。プログラム命令は不揮発性メモリ内に永続的に格納すること、および、そこからロードすることまたは所定の位置で実行することのいずれかも可能である。たとえば実施形態に従った統合プログラムを不揮発性メモリに格納し、そこからDRAMにロードすることが可能である。
【0033】
図1〜
図2のハードウェアは、実装に応じて変更可能である。
図1〜
図2に示されたハードウェアに加えて、またはそれらに代わって、フラッシュ・メモリ、等価の不揮発性メモリ、または光ディスク・デバイスなどの、他の内部ハードウェアまたは周辺デバイスを使用することができる。加えて、例示的実施形態のプロセスをマルチプロセッサ・データ処理システムに適用することもできる。
【0034】
いくつかの例では、データ処理システム200は、オペレーティング・システム・ファイルあるいはユーザ生成データまたはその両方を格納するための不揮発性メモリを提供するように、一般にフラッシュ・メモリと共に構成された、携帯情報端末(PDA)とすることができる。バス・システムは、システム・バス、I/Oバス、およびPCIバスなどの、1つまたは複数のバスを備えることができる。もちろんバス・システムは、ファブリックまたはアーキテクチャに接続された異なる構成要素またはデバイス間にデータの転送を提供する、任意のタイプの通信ファブリックまたはアーキテクチャを使用して実装することができる。
【0035】
通信ユニットは、モデムまたはネットワーク・アダプタなどの、データを送信および受信するために使用される1つまたは複数のデバイスを含むことができる。メモリは、たとえばメイン・メモリ208、またはノース・ブリッジおよびメモリ・コントローラ・ハブ202内に見られるキャッシュなどのキャッシュとすることができる。処理ユニットは、1つまたは複数のプロセッサまたはCPUを含むことができる。
【0036】
図1〜
図2に示された例および前述の例は、アーキテクチャ上の制限を示唆することを意味していない。たとえばデータ処理システム200は、PDAの形を取ることに加えて、タブレット・コンピュータ、ラップトップ・コンピュータ、または電話デバイスとすることもできる。
【0037】
図3を参照すると、この図は、例示的実施形態に従った機密情報の音声入力例のブロック図を示す。データ処理システム302は、
図1のサーバ104および106、クライアント110、112、および114、またはデバイス120のうちのいずれかと同様である。単なる例として、またそれに対する例示的実施形態のいかなる制限も示唆することなく、データ処理システム302は
図1のデバイス120と同様に示される。
【0038】
ユーザ304は、データ処理システム302内のマイクロフォン308を介してデータ処理システム302に音声入力306を提供する。データ処理システム302は、実施形態を実装する音声入力アプリケーション310を含む。データ処理システム302内で実行する他のアプリケーション312は、エントリ・フィールド314を提示する。エントリ・フィールド314にはデータが読み込まれることになる。
【0039】
例示的実施形態に従って動作する音声入力アプリケーション310は、エントリ・フィールド入力314内への音声入力306をエントリ・フィールド316のためのデータ318に変換するプロセスを含む。例としてエントリ・フィールド316は、ユーザ304によって、またはデータ処理システム302内のプロセスによって、データ入力のために選択される。音声入力306のエントリ・フィールド入力316への変換は、1つまたは複数の変換規則によって実行される。変換規則とは、音声入力306がエントリ・フィールド入力316へと処理される際に従う論理である。
【0040】
たとえば変換規則の例が、音声入力306内のあらゆる単語の2番目の文字を使用してエントリ・フィールド入力316が構築されることであるものと想定してみる。たとえばユーザ304が音声入力306として、「EPILOG CAMERA ASSIGN ESSENTIAL」という句を発話する。他の動作の中でも特に、音声入力アプリケーション310はその変換規則を使用して、認識された単語「EPILOG」、「CAMERA」、「ASSIGN」、および「ESSENTIAL」からそれぞれ「P」、「A」、「S」、および「S」の文字が選択されるように、その句の変換を実行する。この文字をまとめて「PASS」を形成し、これがエントリ・フィールド314への入力となるデータである。
【0041】
音声入力アプリケーション310は、音声入力の句「EPILOG CAMERA ASSIGN ESSENTIAL」から単語「PASS」を構築する。音声入力アプリケーション310は、単語「PASS」のエントリ・フィールド入力316をアプリケーション312に提供する。アプリケーション312はこのデータ「PASS」をエントリ・フィールド314に適用する。この例の変換規則を使用して、この例の様式で動作すると、ユーザ304が音声入力306を発話した場合、実施形態が実際のデータ「PASS」を盗聴または立ち聞きから難読化することができる。
【0042】
示された例は、音声入力から認識された単語へのオフセットに基づいて、1ステップ変換規則を使用する。同様に実施形態は、任意の好適な変換規則を使用して、所与の音声入力306を適切なエントリ・フィールド入力316に変換することができる。
【0043】
たとえば他の変換規則は、2ステップ変換プロセスを含むことができる。ユーザは頭字語を発話することが可能であり、第1の変換ステップはこの頭字語を完全なテキスト形式に変換し、第2の変換ステップはあるオフセットで文字を完全なテキスト単語に識別する。したがってこの2ステップ変換例の動作例では、音声入力として発話された「E.D.I」が結果として「Electronic Data Interchange」となり、これが各単語の最初の2文字を選択することにより、結果として「eldain」となり、「eldain」はエントリ・フィールド入力を形成する。
【0044】
他の例として、他の変換規則は3ステップ変換プロセスを含むことができる。たとえばユーザは「England」と発話することができる。変換プロセスでの第1のステップは、辞書を使用するなどによって、国の名前が発話されていることを認識する。第2のステップは、データベースを使用するなどによって、その国の首都、すなわち「London」を識別する。第3のステップは、ジオコーディング(geocoding)アプリケーションを使用してその都市の緯度および経度が51および0であることを特定し、この数字を連結して数字の組み合わせ「510」を形成する。したがって実施形態は、ユーザが「510」の代わりに「England」と言えるようにすることによって、数字の組み合わせ(510)の機密情報を難読化する。
【0045】
任意の数およびタイプの変換を組み合わせて、音声入力アプリケーション310で使用するための変換規則を作成することができる。このように使用可能な変換のさらにいくつかの例は、発話された単語または発話された単語から導出された単語内でのあるインデックス・オフセットでの文字セット、その名前が発話されたかまたは発話された単語から導出された都市の緯度および経度、タイムゾーン、または人口、日付の数字に対応する文字に変換された発話された日付、カスタム辞書を使用して数字に変換された文字および日付を形成する数字、数として使用される単語の長さ、1つまたは複数のリポジトリを使用することによって名前および数を示す名前として認識された単語、発話または導出されたn番目の単語のみを使用すること、あるいは、発話または導出されたn文字より長い単語のみを考慮することである。
【0046】
ある実施形態では、ある結果を達成するための制御の単語として、大文字または特殊なキーボード文字などの、キーワードのセットを割り当てることができる。ある実施形態は、キーワードの使用が容易に予測できないように、キーワードのセットを定義する。たとえば重さの単語(たとえば「重い」、「トン」、「ポンド」、または「キロ」)は、結果として記号「#」が入力されることになる。例示的実施形態の範囲を逸脱することなく、他の方式も同様に使用することができる。
【0047】
任意数のこれらおよび他の同様に使用可能な変換を組み合わせて、音声入力アプリケーション310における変換を形成することができる。さらにある実施形態では、変換の回数、変換の組み合わせ、またはその両方を変更することができる。たとえば一実施形態は、ユーザが存在できる環境に応じて変換のタイプを変更する。たとえばある実施形態は、ユーザが雑音の多い環境に居ることを、マイクロフォン308を通じて感知することができる。したがって音声入力アプリケーション310は、ユーザがより静かな環境(したがって、恐らくはユーザの近隣に立ち聞きする人が少ない場所)に居る時よりもより複雑な変換を使用するように決定する。
【0048】
他の実施形態として、ある実施形態は、ユーザが雑音の多い環境に居ることを、マイクロフォン308を通じて感知することができる。したがって音声入力アプリケーション310は、ユーザがより静かな環境に居る時よりも複雑でない変換で、より短い単語を使用できるように決定する(恐らくは、雑音の多い区域では静かな区域よりも音声認識が困難であるため)。その逆に、複雑な単語は、その固有の音質によってしばしば容易に認識されるため、ある実施形態の音声入力アプリケーション310は、ユーザが雑音の多い環境内でそうした音質を備える特に指定された単語を使用できるようにする。
【0049】
ある実施形態は、音声入力アプリケーション310が異なるユーザに対して異なる変換を使用するように、ユーザ特有の変換プロセスを作成することができる。ある実施形態は、発話された単語または導出された単語から認識される場合、単語を表示することもできる。ある実施形態は、発話された単語または導出された単語から認識される場合、単語を読み返すことも可能である。ある実施形態は、ユーザが認識された単語を拒否し、音声入力を再試行できるようにすることも可能である。
【0050】
ある実施形態は、ある単語の使用を完全に禁止することもできる。ある実施形態は、単語を所定の回数の音声入力後にのみ音声入力で再使用できるようにすることなどによって、単語の頻繁な再使用を禁止することができる。ある実施形態は、同じ音声入力における単語の反復を禁止することができる。ある実施形態は、ある単語の代替形式を許可または禁止することができる。ある実施形態は、「Q」または「X」などの稀な文字を備えた単語に対して、こうした規則を緩和することができる。ある実施形態は、異なるエントリ・フィールドに対して、異なる変換規則またはそれらの組み合わせを使用することができる。
【0051】
本明細書で説明される変換および追加の機能は単なる例示的なものであって、実施形態を限定するものではない。当業者であれば、この開示から多くの他の変換および変換プロセスの修正を想起することが可能であり、例示的実施形態の範囲内で同様に企図される。
【0052】
図4を参照すると、この図は例示的実施形態に従った音声入力アプリケーションの構成例を示すブロック図である。音声入力アプリケーション400は
図3の音声入力アプリケーション310として使用することができる。
【0053】
示された構成は、音声入力アプリケーション400の様々な機能構成要素を実装する、単なる例示的様式である。当業者であれば、そこから同様の機能を達成するために、異なる方法で音声入力アプリケーション400を実装することが可能であり、それらの代替構成は、例示的実施形態の範囲内で企図される。
【0054】
示された構成例によれば、音声入力アプリケーション400は音声入力402を受信する。音声入力アプリケーション400は、ユーザまたはシステムによって提供される音声入力を受信する402ための構成要素404を含む。構成要素406は受信した音声入力を処理する。構成要素408は処理された音声入力を変換する。構成要素410は処理された音声入力から構築されたエントリ・フィールド入力を送信する。エントリ・フィールド入力412は音声入力アプリケーション400によって生成される出力であり、他のアプリケーション内にエントリ・フィールドを読み込むために使用可能である。
【0055】
音声入力アプリケーション400内に様々な構成要素が示されているが、ある実装では、例示的実施形態の範囲を逸脱することなく、音声入力アプリケーション400の外部に構成要素の機能を実装することができる。たとえば一実施形態では、構成要素406、408、またはそれらの組み合わせは、ウェブ・サービスの形などのように、音声入力アプリケーション400の外部に実装される。
【0056】
構成要素406などで受信した音声入力の処理は、一般にユーザおよびユーザ入力に関し、特に音声入力に関する他の動作を含むことができる。たとえば一実施形態では、構成要素406は認証および許可機能(まとめて許可機能)414を実装し、これを、音声入力402を提供するユーザまたはシステムがその実行を許可されるかどうか、音声入力402が許可されたユーザからのものであるかどうか、音声入力402が許可された様式で提供されているかどうか、またはそれらの組み合わせを決定するために使用することができる。他の実施形態では、構成要素406は音声入力アプリケーション400の外部のサービスまたはアプリケーションによって提供可能な許可機能414を呼び出す。
【0057】
一実施形態では、構成要素406は音声テキスト変換などの知られた音声処理機能のための音声認識機能416を同様に実装するかまたは呼び出すことができる。他の実施形態では、構成要素406は他の機能418を同様に実装するかまたは呼び出すことができる。一例として、他の機能418は、雑音除去または低減、頭字語の拡張または長形式の短縮、代替スペリング選択などの、事前変換機能を含むことができる。いくつかの他の例として、他の機能418は、1つまたは複数のカスタムまたは標準辞書、1つまたは複数のカスタムまたは標準シソーラスを呼び出すこと、あるいは音声入力402内で認識されるかまたはそこから導出された単語または句の修正または訂正を実行することを、含むことができる。
【0058】
ある実施形態では、構成要素408は変換規則のリポジトリ420を使用する。構成要素408は、処理された音声入力の変換を実行する際に、リポジトリ420から1つまたは複数の変換規則を選択する。
【0059】
図5を参照すると、この図は例示的実施形態に従った音声入力アプリケーションにおける変換例のプロセス流れ図を示す。プロセス500は、
図4の音声入力アプリケーション400内で実装可能である。
【0060】
ユーザまたはシステムが頭字語「IBM」を含む音声入力502を提供すると想定してみる(IBMおよびInternational Business Machinesは、米国および諸外国におけるインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である)。処理504は音声入力502の入力者を認証し、音声入力502で音声認識を実行し、認識された音声を処理する。処理504の結果として認識された音声入力506が生じ、プロセス500はこれを頭字語として認識する。事前変換修正508は、頭字語IBMを対応する長形式の「International Business Machines」に修正し、これが処理された音声入力510を形成する。
【0061】
プロセス500は1つまたは複数の選択された変換規則512を処理された音声入力510に適用する。たとえば選択された変換規則は、処理された音声入力510内の各単語の3番目の文字を選択するものとすることができる。選択された変換規則512の適用の結果として、エントリ・フィールド入力514が生じる。上記の例を使用して、「TSC」がエントリ・フィールド入力514に対応するデータを形成する。プロセス500はエントリ・フィールド入力514を、エントリ・フィールド内でデータを使用するアプリケーションに送信する。
【0062】
図6を参照すると、この図は例示的実施形態に従った機密情報の音声入力のプロセス例の流れ図を示す。プロセス600は、
図4の音声入力アプリケーション400内に実装可能である。
【0063】
プロセス600は、音声入力を受信することによって開始される(ステップ602)。プロセス600は、オプションで、周辺雑音または音響などに関する環境検出、デフォルトの変換規則を使用する代わりの変換規則の選択、入力者認証、音声認識、またはそれらの組み合わせなどを実行することができる(ステップ604)。
【0064】
一実施形態では、変換規則は、ある変換規則の使用を事前設定することによって自動的に選択される。こうした変換規則の選択方法では、ユーザは事前設定された変換規則に気付く。
【0065】
他の実施形態では、音声入力アプリケーションは、使用されている変換規則に関して十分個人的または秘密裡にユーザに通知する。たとえばある実施形態は、イヤフォンが使用されていることを検出し、個別オーディオ・アナウンスを介して「第2文字規則を使用すること」をユーザにアドバイスする。
【0066】
他の実施形態では、ユーザはユーザ・インターフェースを使用して変換規則セットから変換規則のサブセットを選択する。たとえばユーザは、物理またはソフトウェア生成ボタン、デバイスのジャイロスコープ動作、あるいは選択を実行するための任意の好適な種類のジェスチャを使用することができる。
【0067】
他の実施形態では、ユーザは、発話された単語、コードワード、コマンド、またはキーワードを使用して、変換規則セットから変換規則のサブセットを選択する。たとえば一実施形態では、「第2文字規則」を使用させるために、ユーザは規則を示すための第1の単語を発話する。「Broccoli Epilog Camera AssignEssential」では、第1の単語を使用して残りの単語を解釈するための変換規則を選択する。単語「Broccoli」からの文字「B」はアルファベットの第2文字であり、実施形態によって、ユーザがそれに続く各単語の第2文字を使用したいこと、すなわち前述の例で説明した第2文字規則を示すために使用される。
【0068】
プロセス600は、事前変換処理を音声入力に適用する(ステップ606)。プロセス600は、ステップ606を必要な回数だけ反復することによって、任意回数の事前変換処理を適用することができる。たとえばプロセス600は、話者非依存または話者依存の音声認識を使用するために実装可能である。一実施形態では、プロセス600は、ユーザの生体認証を容易にする、トレーニング・セットとして以前に使用されたユーザの音声に関する認識を改善する、次善の環境での音声認識の精度を向上させる、またはそれらの組み合わせのために、話者依存音声認識を使用するために実装される。
【0069】
プロセス600は、1つまたは複数のデフォルトまたは選択された変換規則に従って、処理された音声入力を変換する(ステップ608)。プロセス600は、この変換からエントリ・フィールド入力を生成する(ステップ610)。プロセス600は、このエントリ・フィールド入力をエントリ・フィールドに出力する(ステップ612)。その後、プロセス600は終了する。
【0070】
図面内の流れ図およびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。この点で、流れ図またはブロック図内の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、またはコードの一部を表すことができる。いくつかの代替の実装では、ブロック内に示された機能が図面内に示された順序とは異なる順序で実行可能であることにも留意されたい。たとえば、連続して示される2つのブロックは実際にはほぼ同時に実行可能であるか、ブロックは関連する機能に応じて時には逆の順序で実行可能である。ブロック図あるいは流れ図またはその両方の各ブロックは、指定された機能または動作を実行する特定用途向けハードウェアベース・システム、あるいは特定用途向けハードウェアおよびコンピュータ命令の組み合わせによって実装可能であることにも留意されよう。
【0071】
このようにして、コンピュータ実装の方法、システム、およびコンピュータ・プログラム製品が、機密情報の音声入力のための例示的実施形態内に提供される。ある実施形態は、あるアプリケーションにおいて音声認識とデータ入力との間に論理の層として実装可能である。ある実施形態は、ユーザまたはシステムが1つの音声パターンを生成できるようにする一方で、音声パターンから計算された無関係のデータを入力することによって、機密情報を難読化する。
【0072】
音声パターンのプロバイダは、ある実施形態をいくつかのエントリ・フィールドに対しては選択的に使用し、他に対しては使用しないことができる。ある実施形態は、変換規則の選択肢を音声パターンのプロバイダに提供することができるか、または変換規則を自動的に選択してよい。
【0073】
ある実施形態は、生体認証などの他のデータ・セキュリティ機能および他の方法と共に実装可能である。たとえばある実施形態は、ユーザ位置の全地球測位システム(GPS)を介した位置把握を使用して、ユーザが安全な位置に居るかどうか、および強力な変換規則または緩い変換規則のいずれを使用するかを決定することができる。
【0074】
当業者であれば理解されるように、本発明の態様はシステム、方法、またはコンピュータ・プログラム製品として具体化することができる。したがって本発明の態様は、完全にハードウェア実施形態、完全にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、本明細書ではすべてが全体として「回路」、「モジュール」、または「システム」と呼ばれる場合のあるソフトウェアとハードウェアの態様を組み合わせた実施形態の、形を取ることができる。さらに本発明の態様は、1つまたは複数のコンピュータ読み取り可能ストレージ・デバイス、またはその上に具体化されたコンピュータ読み取り可能プログラム・コードを有するコンピュータ読み取り可能媒体内に具体化された、コンピュータ・プログラム製品の形を取ることができる。
【0075】
1つまたは複数のコンピュータ読み取り可能ストレージ・デバイスあるいはコンピュータ読み取り可能媒体の任意の組み合わせを使用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体とすることができる。コンピュータ読み取り可能ストレージ・デバイスは、たとえば、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいはそれらの任意の好適な組み合わせとすることができるが、これらに限定されるものではない。コンピュータ読み取り可能ストレージ・デバイスのより具体的な例(非網羅的リスト)は、1本または複数本のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光ストレージ・デバイス、磁気ストレージ・デバイス、またはそれらの任意の好適な組み合わせを含むものである。本書との関連において、コンピュータ読み取り可能ストレージ・デバイスは、命令実行のシステム、装置、またはデバイスによって、あるいはそれらに関連して使用するためのプログラムを含むかまたは格納することが可能な、任意の有形のデバイスまたは媒体とすることができる。
【0076】
コンピュータ読み取り可能ストレージ・デバイスまたはコンピュータ読み取り可能媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RFなど、またはそれらの任意の好適な組み合わせを含むがこれらに限定されない任意の適切な媒体を使用して、伝送可能である。
【0077】
本発明の態様に関する動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語、および、「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで作成可能である。プログラム・コードは、完全にユーザのコンピュータ上、部分的にユーザのコンピュータ上、スタンドアロン型ソフトウェア・パッケージとして、一部はユーザのコンピュータ上および一部はリモート・コンピュータ上、または、完全にリモート・コンピュータまたはサーバ上で、実行可能である。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介して、ユーザのコンピュータに接続することができるか、あるいは(たとえばインターネット・サービス・プロバイダを使用するインターネットを介して)外部コンピュータに接続することができる。
【0078】
本明細書では、本発明の実施形態に従った方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図あるいはブロック図またはその両方を参照しながら、本発明の態様について説明している。流れ図あるいはブロック図またはその両方の各ブロック、および、流れ図あるいはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実装可能であることを理解されよう。これらのコンピュータ・プログラム命令は、1つまたは複数の汎用コンピュータ、特定用途向けコンピュータ、または機械を作製するための他のプログラマブル・データ処理装置の、1つまたは複数のプロセッサに提供可能であり、結果として命令は、コンピュータまたは他のプログラマブル・データ処理装置の1つまたは複数のプロセッサを介して実行し、流れ図あるいはブロック図またはその両方のブロックに指定された機能/動作を実装するための手段を作成することになる。
【0079】
これらのコンピュータ・プログラム命令は、1つまたは複数のコンピュータ、1つまたは複数の他のプログラマブル・データ処理装置、あるいは1つまたは複数の他のデバイスに対して、特定の様式で機能するように指示することが可能な、1つまたは複数のコンピュータ読み取り可能ストレージ・デバイスまたはコンピュータ読み取り可能媒体内にも格納可能であり、結果として、1つまたは複数のコンピュータ読み取り可能ストレージ・デバイスまたはコンピュータ読み取り可能媒体内に格納された命令は、流れ図あるいはブロック図またはその両方のブロックに指定された機能/動作を実装する命令を含む製品を作製することになる。
【0080】
コンピュータ・プログラム命令は、コンピュータ実装プロセスを生成するために、1つまたは複数のコンピュータ、1つまたは複数の他のプログラマブル・データ処理装置、あるいは1つまたは複数の他のデバイス上で一連の動作ステップを実行させるために、1つまたは複数のコンピュータ、1つまたは複数の他のプログラマブル・データ処理装置、あるいは1つまたは複数の他のデバイス上にロードすることも可能であり、結果として、1つまたは複数のコンピュータ、1つまたは複数の他のプログラマブル・データ処理装置、あるいは1つまたは複数の他のデバイス上で実行する命令が、流れ図あるいはブロック図またはその両方のブロックに指定された機能/動作を実装するためのプロセスを提供することになる。
【0081】
本明細書で使用される用語は、単に特定の実施形態を説明するためのものであり、本発明を限定することは意図されていない。本明細書で使用される場合、単数形「a」、「an」、および「the」は、文脈に明確に示されていない限り、複数形も含むことが意図される。さらに、「comprise(含む)」あるいは「comprising(含んでいる)」またはその両方の用語は、本明細書で使用される場合、記載された機能、整数、ステップ、動作、要素、あるいは構成要素、またはそれらすべての存在を指定するものであるが、1つまたは複数の他の機能、整数、ステップ、動作、要素、構成要素、あるいはそれらのグループ、またはそれらすべての存在、または追加を除外するものではないことを理解されよう。
【0082】
以下の特許請求の範囲におけるすべての手段またはステップならびに機能要素の対応する構造、材料、動作、および等価物は、具体的に請求された他の請求要素と組み合わせて機能を実行するための任意の他の構造、材料、または動作を含むことが意図されている。本発明の説明は、例示および説明のために提示されてきたものであり、開示された形の本発明を網羅するかまたはこれに限定されることは意図されていない。当業者であれば、本発明の範囲および趣旨を逸脱することなく、多くの修正および変形が明らかとなろう。実施形態は、本発明の原理および実際の適用例を最も良く説明するように、ならびに、他の当業者が、企図された特定の用途に適した様々な修正を伴う様々な実施形態について本発明を理解できるように、選択および説明されたものである。