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

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

▶ グーグル インコーポレイテッドの特許一覧

特許7488382自動音声認識のためのコンテキスト非正規化
<>
  • 特許-自動音声認識のためのコンテキスト非正規化 図1
  • 特許-自動音声認識のためのコンテキスト非正規化 図2A
  • 特許-自動音声認識のためのコンテキスト非正規化 図2B
  • 特許-自動音声認識のためのコンテキスト非正規化 図3
  • 特許-自動音声認識のためのコンテキスト非正規化 図4A
  • 特許-自動音声認識のためのコンテキスト非正規化 図4B
  • 特許-自動音声認識のためのコンテキスト非正規化 図5
  • 特許-自動音声認識のためのコンテキスト非正規化 図6
  • 特許-自動音声認識のためのコンテキスト非正規化 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-13
(45)【発行日】2024-05-21
(54)【発明の名称】自動音声認識のためのコンテキスト非正規化
(51)【国際特許分類】
   G10L 15/22 20060101AFI20240514BHJP
   G10L 15/26 20060101ALI20240514BHJP
【FI】
G10L15/22 453
G10L15/26
G10L15/22 460Z
【請求項の数】 16
(21)【出願番号】P 2023021326
(22)【出願日】2023-02-15
(62)【分割の表示】P 2021153776の分割
【原出願日】2019-09-03
(65)【公開番号】P2023053332
(43)【公開日】2023-04-12
【審査請求日】2023-02-15
(31)【優先権主張番号】16/192,953
(32)【優先日】2018-11-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】マイケリー、アッサーフ ハーウィッツ
(72)【発明者】
【氏名】アレクシッチ、ペーター
(72)【発明者】
【氏名】モレノ、ペドロ
【審査官】佐久 聖子
(56)【参考文献】
【文献】特開2001-083987(JP,A)
【文献】特開2007-280364(JP,A)
【文献】特開2000-181485(JP,A)
【文献】米国特許第09135231(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/00-17/26
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実装される方法であって、データ処理ハードウェアによって実行されるとき、
ユーザからの音声入力を受信することと、
前記音声入力に関連付けられているコンテキストメタデータを取得することであって、前記コンテキストメタデータは、電子メッセージに含めるために、ユーザデバイス上で現在実行しているメッセージングアプリケーションに向けられた口述音声を前記音声入力が含むことを示す、取得することと、
音声レコグナイザを使用して前記音声入力に対応する未処理の音声認識結果を生成することであって、前記未処理の音声認識結果は前記ユーザによって話された明示的な句読点の語を含む、生成することと、
前記メッセージングアプリケーションに向けられた口述音声を前記音声入力が含むことを示す前記コンテキストメタデータに基づいて、明示的句読点非正規化器を適用して、前記未処理の音声認識結果における前記明示的な句読点の語を、対応する句読点記号に変換することによって、生成された前記未処理の音声認識結果を非正規化されたテキストへと非正規化することと、
前記ユーザデバイスの表示画面上で、前記対応する句読点記号を含む前記非正規化されたテキストを表示することと、
前記コンテキストメタデータに基づいて、生成された前記未処理の音声認識結果に適用する1つまたは複数の非正規化器からなるリストを選択することと、
を含む動作を前記データ処理ハードウェアに実行させ
前記1つまたは複数の非正規化器からなる前記リストを選択することは、複数の非正規化器からなるデフォルトリストを変更することを含み、該変更することは、複数の非正規化器からなる前記デフォルトリストから1つまたは複数の非正規化器を除去することによって行われる、方法。
【請求項2】
コンピュータにより実装される方法であって、データ処理ハードウェアによって実行されるとき、
ユーザからの音声入力を受信することと、
前記音声入力に関連付けられているコンテキストメタデータを取得することであって、前記コンテキストメタデータは、電子メッセージに含めるために、ユーザデバイス上で現在実行しているメッセージングアプリケーションに向けられた口述音声を前記音声入力が含むことを示す、取得することと、
音声レコグナイザを使用して前記音声入力に対応する未処理の音声認識結果を生成することであって、前記未処理の音声認識結果は前記ユーザによって話された明示的な句読点の語を含む、生成することと、
前記メッセージングアプリケーションに向けられた口述音声を前記音声入力が含むことを示す前記コンテキストメタデータに基づいて、明示的句読点非正規化器を適用して、前記未処理の音声認識結果における前記明示的な句読点の語を、対応する句読点記号に変換することによって、生成された前記未処理の音声認識結果を非正規化されたテキストへと非正規化することと、
前記ユーザデバイスの表示画面上で、前記対応する句読点記号を含む前記非正規化されたテキストを表示することと、
前記コンテキストメタデータに基づいて、生成された前記未処理の音声認識結果に適用する1つまたは複数の非正規化器からなるリストを選択することと、
を含む動作を前記データ処理ハードウェアに実行させ、
前記1つまたは複数の非正規化器からなる前記リストを選択することは、複数の非正規化器からなる事前定義されたセットにより複数の非正規化器からなるデフォルトリストを変更することを含み、該変更することは、複数の非正規化器からなる前記事前定義されたセットからの1つまたは複数の非正規化器を複数の非正規化器からなる前記デフォルトリストに追加することによって行われる、方法。
【請求項3】
前記音声入力は、前記ユーザデバイスのマイクロフォンによってキャプチャされる、
請求項1または2に記載の方法。
【請求項4】
前記ユーザデバイスは、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、スマートフォン、またはウェアラブルコンピューティングデバイスを含む、
請求項1または2に記載の方法。
【請求項5】
前記データ処理ハードウェアは、前記ユーザデバイス上にある、
請求項1または2に記載の方法。
【請求項6】
前記1つまたは複数の非正規化器からなる前記リストを選択することは、
対応するキーを使用して、前記データ処理ハードウェアと通信するメモリハードウェアから前記1つまたは複数の非正規化器からなる前記選択されたリストにおける各非正規化器を取り出すことと、
前記メモリハードウェアから取り出された前記1つまたは複数の非正規化器からなる前記選択されたリストにおける各非正規化器を、生成された前記未処理の音声認識結果に順に適用することと、を含む、
請求項1または2に記載の方法。
【請求項7】
前記メモリハードウェアは前記ユーザデバイスにある、
請求項に記載の方法。
【請求項8】
前記音声レコグナイザは、前記データ処理ハードウェア上で実行する、
請求項1または2に記載の方法。
【請求項9】
生成された前記未処理の音声認識結果を前記非正規化されたテキストへと非正規化することは、テキストを非正規化することに関するユーザ嗜好にさらに基づいている、
請求項1または2に記載の方法。
【請求項10】
表示画面と、
前記表示画面と通信するデータ処理ハードウェアと、
命令を記憶し前記データ処理ハードウェアと通信するメモリハードウェアと、を備えるユーザデバイスであって、前記命令は、前記データ処理ハードウェアによる実行時に、
ユーザからの音声入力を受信することと、
前記音声入力に関連付けられているコンテキストメタデータを取得することであって、前記コンテキストメタデータは、電子メッセージに含めるために、前記ユーザデバイス上で現在実行しているメッセージングアプリケーションに向けられた口述音声を前記音声入力が含むことを示す、取得することと、
音声レコグナイザを使用して前記音声入力に対応する未処理の音声認識結果を生成することであって、前記未処理の音声認識結果は前記ユーザによって話された明示的な句読点の語を含む、生成することと、
前記メッセージングアプリケーションに向けられた口述音声を前記音声入力が含むことを示す前記コンテキストメタデータに基づいて、明示的句読点非正規化器を適用して、前記未処理の音声認識結果における前記明示的な句読点の語を、対応する句読点記号に変換することによって、生成された前記未処理の音声認識結果を非正規化されたテキストへと非正規化することと、
前記表示画面上で、前記対応する句読点記号を含む前記非正規化されたテキストを表示することと、
前記コンテキストメタデータに基づいて、生成された前記未処理の音声認識結果に適用する1つまたは複数の非正規化器からなるリストを選択することと、
を含む動作を前記データ処理ハードウェアに実行させ
前記1つまたは複数の非正規化器からなる前記リストを選択することは、複数の非正規化器からなるデフォルトリストを変更することを含み、該変更することは、複数の非正規化器からなる前記デフォルトリストから1つまたは複数の非正規化器を除去することによって行われる、ユーザデバイス。
【請求項11】
表示画面と、
前記表示画面と通信するデータ処理ハードウェアと、
命令を記憶し前記データ処理ハードウェアと通信するメモリハードウェアと、を備えるユーザデバイスであって、前記命令は、前記データ処理ハードウェアによる実行時に、
ユーザからの音声入力を受信することと、
前記音声入力に関連付けられているコンテキストメタデータを取得することであって、前記コンテキストメタデータは、電子メッセージに含めるために、前記ユーザデバイス上で現在実行しているメッセージングアプリケーションに向けられた口述音声を前記音声入力が含むことを示す、取得することと、
音声レコグナイザを使用して前記音声入力に対応する未処理の音声認識結果を生成することであって、前記未処理の音声認識結果は前記ユーザによって話された明示的な句読点の語を含む、生成することと、
前記メッセージングアプリケーションに向けられた口述音声を前記音声入力が含むことを示す前記コンテキストメタデータに基づいて、明示的句読点非正規化器を適用して、前記未処理の音声認識結果における前記明示的な句読点の語を、対応する句読点記号に変換することによって、生成された前記未処理の音声認識結果を非正規化されたテキストへと非正規化することと、
前記表示画面上で、前記対応する句読点記号を含む前記非正規化されたテキストを表示することと、
前記コンテキストメタデータに基づいて、生成された前記未処理の音声認識結果に適用する1つまたは複数の非正規化器からなるリストを選択することと、
を含む動作を前記データ処理ハードウェアに実行させ、
前記1つまたは複数の非正規化器からなる前記リストを選択することは、複数の非正規化器からなる事前定義されたセットにより複数の非正規化器からなるデフォルトリストを変更することを含み、該変更することは、複数の非正規化器からなる前記事前定義されたセットからの1つまたは複数の非正規化器を複数の非正規化器からなる前記デフォルトリストに追加することによって行われる、ユーザデバイス。
【請求項12】
前記音声入力は、前記ユーザデバイスのマイクロフォンによってキャプチャされる、
請求項10または11に記載のユーザデバイス。
【請求項13】
前記ユーザデバイスは、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、スマートフォン、またはウェアラブルコンピューティングデバイスを含む、
請求項10または11に記載のユーザデバイス。
【請求項14】
前記1つまたは複数の非正規化器からなる前記リストを選択することは、
対応するキーを使用して、前記データ処理ハードウェアと通信するメモリハードウェアから前記1つまたは複数の非正規化器からなる前記選択されたリストにおける各非正規化器を取り出すことと、
前記メモリハードウェアから取り出された前記1つまたは複数の非正規化器からなる前記選択されたリストにおける各非正規化器を、生成された前記未処理の音声認識結果に順に適用することと、を含む、
請求項10または11に記載のユーザデバイス。
【請求項15】
前記音声レコグナイザは、前記データ処理ハードウェア上で実行する、
請求項10または11に記載のユーザデバイス。
【請求項16】
生成された前記未処理の音声認識結果を前記非正規化されたテキストへと非正規化することは、テキストを非正規化することに関するユーザ嗜好にさらに基づいている、
請求項10または11に記載のユーザデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、自動音声認識のためのコンテキスト非正規化に関する。
【背景技術】
【0002】
自動音声認識(ASR)システムは、正規化されたテキストでこれらのASRシステムをトレーニングした結果として、正規化されたテキストを含む未処理の音声認識結果を生成する。正規化されたテキストとは、すべての文字が小文字で、すべての句読点が削除された、言語化されたテキストを指す。次に、ASRシステムは、未処理の音声認識結果をユーザのために可読性を高めた形式に非正規化するための複数の非正規化器からなるセットを組み込む。例えば、複数の非正規化器からなるセットは、綴られた数字を言語化し(例えば、「百七十七(one-hundred and seventy-seven)」を「177」に変換する)、適切な文字を大文字にして(例えば、「テキストをジョンに送信する(send a text to john)」を「テキストをジョンに送信する(Send a text to John)」にする)、句読点を追加することによって(例えば、「ありがとう感嘆符」を「ありがとう!」に変換する)、未処理の音声認識結果を変換する場合がある。複数の非正規化器からなるセットは、一連の非正規化器規則に対応しており(最初の非正規化器は未処理の音声認識結果から始めて、以降の各非正規化器は前の非正規化器の出力を入力として受け取る)、最適なものはユーザの状態と嗜好に部分的に依存するので、すべてのASR出力のユースケースに最適な非正規化規則からなる単一のシーケンスは存在しない。その結果、ASRシステムは一般に、手元のアプリケーションに応じて、音声を転写するために異なるASRモジュールに依存している。例えば、あるASRモジュールが、ユーザが音声を口述しているときに使用される場合があり、別のASRモジュールが、ユーザがボイス検索を実行しているときに使用される(be sued)場合がある。複数のASRモジュールを使用しても、各ユーザのためのカスタマイズの非正規化には対応できず、また、音声認識結果を出力するために複数のASRモジュールを維持およびアクセスする必要があるため、コストと遅延が増加する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示は、自動音声認識のためのコンテキスト非正規化に関する。
【課題を解決するための手段】
【0004】
本開示の一態様によれば、未処理の音声認識結果を非正規化するための方法が提供される。前記方法は、自動音声認識(ASR)モジュールのデータ処理ハードウェアにおいて、ユーザからの音声入力を受信することを含む。前記ASRモジュールは、前記ASRモジュールによって生成された正規化されたテキストの非正規化に適用するための複数の非正規化器からなる事前定義されたセットを含む。前記方法は、前記データ処理ハードウェアによって、前記音声入力に関連付けられているコンテキストメタデータを取得することと、前記データ処理ハードウェアによって、前記音声入力に対応する未処理の音声認識結果を生成することと、を含む。生成された未処理の音声認識結果は正規化されたテキストを含む。前記方法は、前記音声入力に関連付けられているコンテキストメタデータに基づいて、前記データ処理ハードウェアによって、生成された前記未処理の音声認識結果に適用する1つまたは複数の非正規化器からなるリストを選択することと、前記データ処理ハードウェアによって、生成された未処理の音声認識結果に順に前記1つまたは複数の非正規化器からなるリストを適用することにより、生成された未処理の音声認識結果を非正規化されたテキストへと非正規化することと、をさらに含む。
【0005】
本開示の実装形態は、以下の任意の特徴のうちの1つまたは複数を含み得る。一部の実装形態では、前記音声入力を受信することは、前記ユーザに関連付けられているユーザデバイスから前記音声入力に対応するオーディオデータを受信することを含み、前記音声入力に関連付けられている前記コンテキストメタデータを取得することは、前記音声入力の前記オーディオデータが受信されたときに、前記ユーザデバイスから前記音声入力に関連付けられている前記コンテキストメタデータを受信することを含む。一部の例では、前記音声入力に関連付けられている前記コンテキストメタデータを取得することは、前記音声入力が受信されたときに、前記ユーザに関連付けられているユーザ識別子を受信することと、前記ユーザ識別子を使用して、前記データ処理ハードウェアと通信するメモリハードウェアから前記コンテキストメタデータを取り出すことと、を含む。前記コンテキストメタデータは、前記音声入力に関連付けられている音声認識カテゴリと、前記ユーザに関連付けられている前記ユーザデバイスで稼働しているアプリケーションと、前記音声入力が受信された時のユーザの場所と、前記ユーザを識別する前記ユーザ識別子と、前記ユーザに関連付けられている人口統計情報と、テキストの非正規化についてのユーザ嗜好と、のうちの少なくとも1つを含んでいてもよい。一部の実装形態では、前記1つまたは複数の非正規化器からなる前記リストを選択することは、複数の非正規化器からなる前記事前定義されたセットにより複数の非正規化器からなるデフォルトリストを変更することを含み、該変更することは、複数の非正規化器からなる前記デフォルトリストから1つまたは複数の非正規化器を除去することと、複数の非正規化器からなる前記事前定義されたセットからの1つまたは複数の非正規化器を複数の非正規化器からなる前記デフォルトリストに追加することと、のうちの少なくとも1つによって行われる。
【0006】
一部の実装形態では、前記方法は、前記データ処理ハードウェアによって、前記音声入力に関連付けられている前記コンテキストメタデータをコンテキストサーバに提供することと、前記データ処理ハードウェアにおいて、前記コンテキストサーバから前記非正規化命令を受信することと、をさらに含み、前記コンテキストサーバは、前記コンテキストメタデータに基づいて、生成された前記未処理の音声認識結果を前記非正規化されたテキストへと非正規化するための非正規化命令を生成するように構成されている。これらの実装形態では、前記1つまたは複数の非正規化器からなる前記リストを選択することは、前記コンテキストサーバから受信した前記非正規化命令を使用して、前記1つまたは複数の非正規化器からなる前記リストを選択することを含む。一部の例では、前記音声入力に関連付けられている前記コンテキストメタデータを前記コンテキストサーバに提供することは、前記音声入力または前記音声入力に関連付けられているオーディオデータを前記コンテキストサーバに提供することなく、前記音声入力に関連付けられている前記コンテキストメタデータを前記コンテキストサーバに提供することを含む。
【0007】
一部の例では、前記非正規化命令は、複数の非正規化器からなるデフォルトリストの開始位置に先頭追加する新たな非正規化器を識別する先頭追加非正規化器命令であって、複数の非正規化器からなる前記デフォルトリストは、前記コンテキストデータがない場合に、生成された前記未処理の音声認識結果に順に適用するための複数の非正規化器からなる前記事前定義されたセットの一部を含む、先頭追加非正規化器命令と、複数の非正規化器からなる前記デフォルトリストの終了位置に後尾追加する新たな非正規化器を識別する後尾追加非正規化器命令と、複数の非正規化器からなる前記デフォルトリストから除去される既存の非正規化器を識別する除去非正規化器命令と、複数の非正規化器からなる前記デフォルトリストにおいて既存の非正規化器を置き換えるために、新たな非正規化器を識別する置換非正規化器命令と、複数の非正規化器からなる前記デフォルトリストに追加する新たな非正規化器を識別し、前記新たな非正規化器に先行または後続する、複数の非正規化器からなる前記デフォルトリストにおける既存の非正規化器を識別する追加非正規化器命令と、を含む命令のうちの1つまたは複数の命令を含む。これに代えて、前記非正規化命令は、複数の非正規化器からなる前記デフォルトリストを複数の非正規化器からなる新たなリストで上書きする上書き命令を含んでいてもよい。複数の非正規化器からなる前記新たなリストは、前記1つまたは複数の非正規化器からなる前記選択されたリストを含んでいてもよい。一部の実装形態では、前記コンテキストサーバは、前記ASRモジュールのクライアントに固有の1つまたは複数のカスタマイズの非正規化規則を受信することと、前記クライアントに固有の前記1つまたは複数のカスタマイズの非正規化規則に基づいてカスタマイズの非正規化器をコンパイルすることと、を行うように構成されている。
【0008】
一部の実装形態では、前記1つまたは複数の非正規化器からなる前記選択されたリストを使用することにより、生成された前記未処理の音声認識結果を前記非正規化されたテキストへと非正規化することは、対応するキーを使用して、メモリハードウェアから前記1つまたは複数の非正規化器からなる前記選択されたリストにおける各非正規化器を取り出すことと、前記メモリハードウェアから取り出された前記1つまたは複数の非正規化器からなる前記選択されたリストにおける各非正規化器を、生成された前記未処理の音声認識結果に順に適用することと、を含む。前記メモリハードウェアは、前記データ処理ハードウェアと通信する。一部の例では、前記メモリハードウェアは前記ASRモジュールにある。他の例では、前記メモリハードウェアは、前記ASRモジュールから離れて配置されたリポジトリを含む。
【0009】
一部の例では、前記方法は、生成された前記未処理の音声認識結果を前記非正規化されたテキストへと非正規化した後、前記非正規化されたテキストを前記ASRモジュールからクライアントデバイスに送信することをさらに含む。これらの例では、前記非正規化されたテキストは前記クライアントデバイスによって受信されたとき、前記クライアントデバイスに、前記クライアントデバイスの表示画面に前記非正規化されたテキストを表示させるように構成されている。一部の実装形態では、前記非正規化されたテキストを前記ASRモジュールから送信することは、前記非正規化されたテキストを前記クライアントデバイスにリアルタイムでストリーミングすることを含む。
【0010】
本開示の別の態様によれば、未処理の音声認識結果を非正規化するためのシステムが提供される。前記システムは、自動音声認識(ASR)モジュールのデータ処理ハードウェアと、前記データ処理ハードウェアと通信する前記ASRモジュールのメモリハードウェアと、を含む。前記ASRモジュールは、前記ASRモジュールによって生成された正規化されたテキストの非正規化に適用するための複数の非正規化器からなる事前定義されたセットを含む。前記メモリハードウェアは、前記データ処理ハードウェアによって実行されるとき、前記データ処理ハードウェアに、ユーザからの音声入力を受信することと、前記音声入力に関連付けられているコンテキストメタデータを取得することと、前記音声入力に対応する未処理の音声認識結果を生成することと、を含む動作を実行させる命令を記憶する。生成された未処理の音声認識結果は正規化されたテキストを含む。前記動作は、前記音声入力に関連付けられているコンテキストメタデータに基づいて、生成された前記未処理の音声認識結果に適用する1つまたは複数の非正規化器からなるリストを選択することと、生成された未処理の音声認識結果に順に前記1つまたは複数の非正規化器からなるリストを適用することにより、生成された未処理の音声認識結果を非正規化されたテキストへと非正規化することと、をさらに含む。
【0011】
本開示の実装形態は、以下の任意の特徴のうちの1つまたは複数を含み得る。一部の実装形態では、前記音声入力を受信することは、前記ユーザに関連付けられているユーザデバイスから前記音声入力に対応するオーディオデータを受信することを含み、前記音声入力に関連付けられている前記コンテキストメタデータを取得することは、前記音声入力の前記オーディオデータが受信されたときに、前記ユーザデバイスから前記音声入力に関連付けられている前記コンテキストメタデータを受信することを含む。一部の例では、前記音声入力に関連付けられている前記コンテキストメタデータを取得することは、前記音声入力が受信されたときに、前記ユーザに関連付けられているユーザ識別子を受信することと、前記ユーザ識別子を使用して、前記メモリハードウェアから前記コンテキストメタデータを取り出すことと、を含む。前記コンテキストメタデータは、前記音声入力に関連付けられている音声認識カテゴリと、前記ユーザに関連付けられている前記ユーザデバイスで稼働しているアプリケーションと、前記音声入力が受信された時のユーザの場所と、前記ユーザを識別する前記ユーザ識別子と、前記ユーザに関連付けられている人口統計情報と、テキストの非正規化についてのユーザ嗜好と、のうちの少なくとも1つを含んでいてもよい。一部の実装形態では、前記1つまたは複数の非正規化器からなる前記リストを選択することは、複数の非正規化器からなる前記事前定義されたセットにより複数の非正規化器からなるデフォルトリストを変更することを含み、該変更することは、複数の非正規化器からなる前記デフォルトリストから1つまたは複数の非正規化器を除去することと、複数の非正規化器からなる前記事前定義されたセットからの1つまたは複数の非正規化器を複数の非正規化器からなる前記デフォルトリストに追加することと、のうちの少なくとも1つによって行われる。
【0012】
一部の実装形態では、前記動作は、前記音声入力に関連付けられているコンテキストメタデータをコンテキストサーバに提供することと、前記コンテキストサーバから前記非正規化命令を受信することと、をさらに含み、前記コンテキストサーバは、前記コンテキストメタデータに基づいて、生成された前記未処理の音声認識結果を前記非正規化されたテキストへと非正規化するための非正規化命令を生成するように構成されている。これらの実装形態では、前記1つまたは複数の非正規化器からなる前記リストを選択することは、前記コンテキストサーバから受信した前記非正規化命令を使用して、前記1つまたは複数の非正規化器からなる前記リストを選択することを含む。一部の例では、前記音声入力に関連付けられている前記コンテキストメタデータを前記コンテキストサーバに提供することは、前記音声入力または前記音声入力に関連付けられているオーディオデータを前記コンテキストサーバに提供することなく、前記音声入力に関連付けられている前記コンテキストメタデータを前記コンテキストサーバに提供することを含む。
【0013】
一部の例では、前記非正規化命令は、複数の非正規化器からなるデフォルトリストの開始位置に先頭追加する新たな非正規化器を識別する先頭追加非正規化器命令であって、複数の非正規化器からなる前記デフォルトリストは、前記コンテキストデータがない場合に、生成された前記未処理の音声認識結果に順に適用するための複数の非正規化器からなる前記事前定義されたセットの一部を含む、先頭追加非正規化器命令と、複数の非正規化器からなる前記デフォルトリストの終了位置に後尾追加する新たな非正規化器を識別する後尾追加非正規化器命令と、複数の非正規化器からなる前記デフォルトリストから除去される既存の非正規化器を識別する除去非正規化器命令と、複数の非正規化器からなる前記デフォルトリストにおいて既存の非正規化器を置き換えるために、新たな非正規化器を識別する置換非正規化器命令と、複数の非正規化器からなる前記デフォルトリストに追加する新たな非正規化器を識別し、前記新たな非正規化器に先行または後続する、複数の非正規化器からなる前記デフォルトリストにおける既存の非正規化器を識別する追加非正規化器命令と、を含む命令のうちの1つまたは複数の命令を含む。追加的に又はこれに代えて、前記非正規化命令は、複数の非正規化器からなる前記デフォルトリストを複数の非正規化器からなる新たなリストで上書きする上書き命令を含んでいてもよい。複数の非正規化器からなる前記新たなリストは、前記1つまたは複数の非正規化器からなる前記選択されたリストを含んでいてもよい。一部の実装形態では、前記コンテキストサーバは、前記ASRモジュールのクライアントに固有の1つまたは複数のカスタマイズの非正規化規則を受信することと、前記クライアントに固有の前記1つまたは複数のカスタマイズの非正規化規則に基づいてカスタマイズの非正規化器をコンパイルすることと、を行うように構成されている。
【0014】
一部の例では、前記1つまたは複数の非正規化器からなる前記選択されたリストを使用することにより、生成された前記未処理の音声認識結果を前記非正規化されたテキストへと非正規化することは、対応するキーを使用して、前記メモリハードウェアから前記1つまたは複数の非正規化器からなる前記選択されたリストにおける各非正規化器を取り出すことと、前記メモリハードウェアから取り出された前記1つまたは複数の非正規化器からなる前記選択されたリストにおける各非正規化器を、生成された前記未処理の音声認識結果に順に適用することと、を含む。一部の例では、前記メモリハードウェアは前記ASRモジュールにある。他の例では、前記メモリハードウェアは、前記ASRモジュールから離れて配置されたリポジトリを含む。
【0015】
一部の実装形態では、前記動作は、生成された前記未処理の音声認識結果を前記非正規化されたテキストへと非正規化した後、前記非正規化されたテキストを前記ASRモジュールからクライアントデバイスに送信することをさらに含む。これらの実装形態では、前記非正規化されたテキストは前記クライアントデバイスによって受信されたとき、前記クライアントデバイスに、前記クライアントデバイスの表示画面に前記非正規化されたテキストを表示させるように構成されている。一部の例では、前記非正規化されたテキストを前記ASRモジュールから送信することは、前記非正規化されたテキストを前記クライアントデバイスにリアルタイムでストリーミングすることを含む。
【0016】
本開示の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載されている。他の態様、特徴、および利点は、説明、図面、および特許請求の範囲から明らかとなる。
【図面の簡単な説明】
【0017】
図1】自動音声認識(ASR)モジュールからの未処理の音声認識結果を非正規化するための例示的なシステムを概略的に示す図。
図2A】ユーザデバイスからのコンテキストメタデータに基づいてテキストを非正規化し、非正規化されたテキストをユーザデバイスに送信する図1のASRモジュールの概略図。
図2B】ユーザデバイスからのコンテキストメタデータに基づいてテキストを非正規化し、非正規化されたテキストをユーザデバイスに送信する図1のASRモジュールの概略図。
図3】未処理の音声認識結果を非正規化するための非正規化器モジュールに非正規化命令を提供するコンテキストサーバを概略的に示す図。
図4A】ユーザに関連付けられているユーザデバイスから受信したパーソナライズされた非正規化規則に基づいて、ユーザのためにパーソナライズされた複数の非正規化器をコンパイルするコンテキストサーバの概略図。
図4B】ユーザに関連付けられているユーザデバイスから受信したパーソナライズされた非正規化規則に基づいて、ユーザのためにパーソナライズされた複数の非正規化器をコンパイルするコンテキストサーバの概略図。
図5】非正規化されたテキストを受信する例示的な出力部の概略図。
図6】未処理の音声認識結果を非正規化する方法のための動作の例示的な構成のフローチャート。
図7】本明細書で説明されるシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイスの概略図。
【発明を実施するための形態】
【0018】
さまざまな図面での同様の参照番号は、同様の要素を示す。
自動音声認識(ASR)システムでの複数の非正規化器の使用は、文法的に正しく、可読性について最適化されたテキストを出力するために最重要である。ASRモジュールは、テキストはすべての句読点が削除され、大文字は含まず、すべての数字は言語化されたテキストを含む(例えば、「177」ではなく「百七十七(one-hundred and seventy-seven)」)といった、「正規化」されたテキストのコーパスでトレーニングされる。結果として、トレーニングされたASRモジュールは、推論中、発話を受信すると、最初に、「正規化された」テキストを示す未処理の音声認識結果(例えば、未処理の転写)を生成する。可読性のために最適化された転写をユーザに提供するために、ASRモジュールは、複数の非正規化器からなるリストを使用して、未処理の音声認識結果を可読性をより高めた形式に変換する。ここで、非正規化器からなるセットの最初の非正規化器は、未処理の音声認識結果を受け取り、以降の各非正規化子は、複数の非正規化器からなるセット内の前の非正規化器の対応する出力を入力として受け取る。各非正規化器は、テキストの入力に対して非正規化のいくつかの態様を実行する、対応する非正規化規則または非正規化モデルに関連付けられている。例えば、大文字化非正規化規則は、「メッセージをジョンに送信する(send a message to john)」というフレーズを「メッセージをジョンに送信する(Send a message to John)」に変換してもよく、言語化非正規化規則は、すべての言語化されたテキスト(例えば「六十五(sixty-five)」)を書面形式(例えば、「65」)に変換し、非明示的句読点非正規化規則は、句読点記号を追加し(例えば、「ありがとうございます先生(thank you sir)」を「ありがとうございます、先生(thank you, sir)」に変換する)、明示的句読点非正規化規則は、句読点記号を生成し(例えば、ありがとう感嘆符を「ありがとう!」に変換する)、翻字非正規化器は、テキストを対応する字に翻字し、表意文字的非正規化器は、対応するテキスト(例えば、「:)」)から表意文字(例えば、スマイリーフェイスの絵文字)を生成し、不快単語非正規化器は、不快な単語中の1つ以上の文字を星、アスタリスク、および/または他の字で置き換えることによって、不快な単語を覆い隠す。
【0019】
本明細書の実装形態は、音声入力のコンテキストに基づいて、対応する音声入力の未処理の音声認識結果に、複数の非正規化からなるコンテキスト化されたリストを動的に適用するように構成された単一のASRモジュールに関する。ここで、ASRモジュールは、ユーザから音声入力(例えば、音声認識要求)を受信してもよく、音声入力に対応する未処理の音声認識結果(例えば、正規化されているテキスト)を生成してもよく、音声入力に関連付けられているコンテキストメタデータを取得してもよく、生成された未処理の音声認識結果を非正規化されたテキストに非正規化するために、音声入力に関連付けられているコンテキストメタデータに基づいて1つまたは複数の非正規化器からなるリストを選択してもよい。ASRモジュールは、1つまたは複数の非正規化器からなる選択されたリストからの各非正規化器を、生成された未処理の音声認識結果に順に適用するように構成される。有利には、複数の非正規化からなる事前定義されたセットを含む単一のASRモジュールは、音声入力に関連付けられているコンテキストメタデータを使用して、複数の非正規化器からなる事前定義されたセットから1つまたは複数の非正規化器からなる適切なリストを選択することによって、ユーザ集団全体に対して音声認識タスクを実行し得る。したがって、所与の音声入力に関連付けられているコンテキストメタデータに基づいて選択される1つまたは複数の非正規化器からなるリストが、複数のASRモジュール/エンジンを必要とせずに、所与の音声入力に対応する未処理の音声認識結果を非正規化する方法をパーソナライズする。
【0020】
ASRモジュールは、音声入力が受信されたときに、ユーザからの音声入力に関連付けられているコンテキストメタデータを受信してもよく、および/または、音声入力を受信した後、別のソースからコンテキストメタデータの少なくとも一部を取り出してもよい。音声入力に関連付けられているコンテキストメタデータは、音声入力に関連付けられている音声認識カテゴリ、非正規化されたテキストを活用することが意図されているユーザデバイスで稼働しているアプリケーション、ユーザを識別するユーザ識別子、音声入力を受信した時のユーザの場所、ユーザに関連付けられている人口統計情報、および/または、テキストの非正規化に関するユーザ嗜好を含み得るが、これらに限定されない。一部のシナリオでは、コンテキストメタデータは、未処理の音声認識結果を非正規化するためにオンザフライで適用するASRモジュール用にユーザが提供する1つまたは複数のパーソナライズされた非正規化規則を含む場合がある。ASRモジュールは、複数の非正規化器からなる事前定義されたセットを記憶するインメモリを含み、ASRモジュールは、未処理の音声認識結果を非正規化に関するコンテキストメタデータに基づいて、そこから適切な複数の非正規化器にアクセスすることができる。例えば、インメモリは、複数の非正規化器からなる事前定義されたセットのキーバリューマップを維持するデータストレージを含んでいてもよく、ASRモジュールは、対応するキーを提供することにより、データストアから任意の所与の非正規化器(つまりバリュー)を取り出し得る。任意選択により、ASRモジュールは、使用頻度の低い非正規化器を記憶する別のリポジトリにアクセスしてもよく、必要に応じて、これらの非正規化器をリポジトリから取り出してよく、これにより、ASRモジュールでのストレージ要件が緩和される。追加的に又はこれに代えて、ASRモジュールは、他のソースから取り出すASRモジュールのカスタマイズの/パーソナライズされた非正規化器を指定する非正規化命令を受け取る場合がある。
【0021】
一部の例では、ASRモジュールは、対応する音声入力に関連付けられているコンテキストメタデータが存在しない場合は常に、未処理の音声認識結果を非正規化するための複数の非正規化器からなるデフォルトリストを使用するように構成されている。したがって、対応する音声入力に関連付けられているコンテキストメタデータが利用可能な場合、ASRモジュールは、コンテキストメタデータに基づいて複数の非正規化器からなるデフォルトリストを変更するように構成されている。具体的には、ASRモジュールは、コンテキストメタデータに基づいて、生成された未処理の音声認識結果を非正規化されたテキストへと非正規化するための非正規化命令を生成することと、非正規化命令をASRモジュールに提供することと、を行うように構成されているコンテキストサーバにコンテキストメタデータを転送する場合がある。ASRモジュールは、音声入力または音声入力に関連付けられているオーディオデータをコンテキストサーバに提供することなく、コンテキストメタデータをコンテキストサーバに転送してもよい。コンテキストサーバは、非正規化命令を生成するためにコンテキストメタデータを処理するだけでよいため、ASRモジュールは、未処理の音声認識結果を生成する一方で、コンテキストサーバは、追加の遅延を発生させることなく、非正規化命令を同時に生成してASRモジュールに提供できる。その後、ASRモジュールは、非正規化命令を使用して、複数の非正規化器からなるデフォルトリストを変更することにより、1つまたは複数の非正規化器からなるリストを選択する。例えば、非正規化命令は、複数の非正規化器からなるデフォルトリストから1つまたは複数の非正規化器を除去することと、1つまたは複数の新たな非正規化器を複数の非正規化器からなるデフォルトリストに追加することと、生成された未処理の音声認識結果を非正規化するための複数の非正規化器からなる変更されたリスト中の各非正規化器を適用するシーケンスを指定することと、のうちの少なくとも1つによって、複数の非正規化器からなるデフォルトリストを変更するようにASRモジュールに命令する場合がある。
【0022】
一部のシナリオでは、前記非正規化命令は、複数の非正規化器からなる前記デフォルトリストを複数の非正規化器からなる新たなリストで上書きする上書き命令を含む。これらのシナリオでは、コンテキストサーバは、複数の非正規化器からなるデフォルトリストに関する知識を持つ必要はなく、複数の非正規化器からなる事前定義されたセットから、複数の非正規化器からなる新たなリスト中の各非正規化器を識別し得る。コンテキストサーバが複数の非正規化器からなるデフォルトリストをどのように変更または上書きするかに関係なく、非正規化命令は、ASRモジュールのデータストアに記憶されている複数の非正規化器からなる事前定義されたセットから対応する各非正規化器(例えば、バリュー)をフェッチ/取り出しするために使用するASRモジュールのキーのみを含むだけでよい。一部の実装形態では、上書き命令は、複数の非正規化器からなるデフォルトリストを、所与のユーザに固有で、複数の非正規化器からなる事前定義されたセットに含まれていない1つまたは複数のパーソナライズされた非正規化器で上書きする。これらの実装形態では、非正規化命令は、ASRモジュールがオンザフライで適用するためのパーソナライズされた非正規化器に対応する実際のデータを含む場合があり、または、非正規化命令は、パーソナライズされた非正規化リポジトリからパーソナライズされた複数の非正規化器をフェッチするために使用するASRモジュールのための対応するキーを含む場合がある。
【0023】
図1を参照して、一部の実装形態では、システム100は、ネットワーク130を介してリモートシステム140と通信することができるユーザ10に関連付けられているユーザデバイス200を含む。リモートシステム140は、スケーラブル/エラスティックリソース142を有する分散システム(例えば、クラウドコンピューティング環境)であり得る。リソース142は、コンピューティングリソース144(例えば、データ処理ハードウェア)および/またはストレージリソース146(例えば、メモリハードウェア)を含む。一部の実装形態では、リモートシステム140は、ユーザデバイス200からの音声入力104に対応するオーディオデータ103を受信することと、音声入力104に対応する未処理の音声認識結果312を生成することと、生成された未処理の音声認識結果312を非正規化されたテキスト322へと非正規化することと、行うように構成された自動音声認識(ASR)モジュール300、300aを実行する。本明細書で使用されるように、未処理の音声認識結果312は、テキストが言語化され、すべての句読点および大文字が取り除かれた、音声入力104に対応するオーディオデータ103から変換された正規化されたテキストに対応する。逆に、非正規化されたテキスト322は、未処理の音声認識結果312の、ユーザ10にとっての可読性を高めた形式へ変換されたものを含む。例えば、未処理の音声認識結果312を非正規化されたテキスト322へと非正規化することは、綴られた数字を言語化し(例えば、「百七十七(one-hundred and seventy-seven)」を「177」に変換する)、適切な文字を大文字にして(例えば、「テキストをジョンに送信する(send a text to john)」を「テキストをジョンに送信する(Send a text to John)」にする)、句読点を追加すること(例えば、「ありがとう感嘆符」を「ありがとう!」に変換する)を含み得る。
【0024】
ユーザデバイス200は、データ処理ハードウェア204およびメモリハードウェア206を含む。ユーザデバイス200は、ユーザ10からの音声入力104をキャプチャし、オーディオデータ103(例えば、電気信号)に変換するためのオーディオキャプチャデバイス(例えば、マイクロフォン)を含み得る。一部の実装形態では、データ処理ハードウェア204は、リモートシステム140上で実行するASRモジュール300aの代わりに、ASRモジュール300、300bを実行するように構成される。ユーザデバイス200は、ネットワーク130を通じてリモートシステム140と通信することができる任意のコンピューティングデバイスであり得る。ユーザデバイス200は、ラップトップ、タブレット、スマートフォン、およびウェアラブルコンピューティングデバイス(例えば、ヘッドセットおよび/または時計)などのモバイルコンピューティングデバイスおよびデスクトップコンピューティングデバイスを含むが、これらに限定されない。
【0025】
示されている例では、ユーザ10は、話すことによって音声入力104をユーザデバイス200に提供することができ、ユーザデバイス200は、音声入力104をキャプチャしてオーディオデータ103に変換することができる。次に、ユーザデバイス200は、オーディオデータ103および音声入力104に関連付けられているコンテキストメタデータ110を含むASR要求102を、リモートシステム140上で実行するASRモジュール300aに送信することができる。ここで、ASR要求102は、音声入力104に関連付けられているコンテキストメタデータ110に基づいて、音声入力104を対応する非正規化されたテキスト322へとアノテーションを行うようにASR300に要求する。ユーザデバイス200は、任意選択により、ASRモジュール300bを実行して、音声入力104を対応する非正規化テされたテキスト322へとアノテーションを行うことができる。例えば、ネットワーク通信がダウンしているか利用できない場合、ユーザデバイス200は、ローカルでASRモジュール300bを実行して、キャプチャされた音声入力104を対応する非正規化テされたテキスト322へとアノテーションを行うことができる。
【0026】
ASRモジュール300は、レコグナイザ310、非正規化器モジュール320、データストレージ340、およびコンテキストサーバ400を含む。コンテキストサーバ400は、ASRモジュール300の構成要素として示されているが、コンテキストサーバ400は、本開示の範囲から逸脱することなく、他の例ではASRモジュール300と通信する別個の構成要素であり得る。ASRモジュール300は、ASR要求102を受信し、音声入力104に対応するオーディオデータ103をレコグナイザ310に提供し、コンテキストメタデータ110をコンテキストサーバ400に転送するように構成されている。ここで、レコグナイザ310は、音声入力104に対応する未処理の音声認識結果312(例えば、正規化されているテキスト)を生成するように構成されており、これと同時に、コンテキストサーバ400は、コンテキストメタデータ110に基づいて、未処理の音声認識結果312を非正規化するための非正規化命令410を生成するように構成されている。したがって、音声入力104も音声入力104に関連付けられているオーディオデータ103もコンテキストサーバ400に提供されないので、コンテキストサーバ400は、非正規化命令410を生成するためにコンテキストメタデータ110を処理するだけでよい。結果として、ASRモジュール300は、追加の遅延を発生させることなく、コンテキストサーバ400を介して非正規化命令410を生成し、レコグナイザ310を介して未処理の音声認識結果312を同時に生成することができる。
【0027】
ASRモジュール300のデータストレージ340(例えば、メモリハードウェア)は、非正規化器モジュール320で受信された正規化されているテキスト(例えば、未処理の音声認識結果312)の入力に対する非正規化のいくつかの態様を実行に係る、それぞれが対応する非正規化規則または非正規化モデルに対応する複数の非正規化器からなる事前定義されたセット350を記憶する。例えば、複数の非正規化器からなる事前定義されたセット350は、大文字化非正規化器、言語化非正規化器、非明示的句読点非正規化器、明示的句読点非正規化器、翻字非正規化器、表意文字的非正規化器、または不快単語非正規化器のうちの少なくとも1つを含み得るが、これらに限定されない。
【0028】
非正規化器モジュール320は、音声入力104に関連付けられているコンテキストメタデータ110に基づいて、未処理の音声認識結果312に適用する1つまたは複数の非正規化器350からなるリストを選択するように構成されている。より詳細には、非正規化器モジュール320は、コンテキストサーバ400によって生成された非正規化命令410を使用して、未処理の音声認識結果312の非正規化に適用する1つまたは複数の非正規化器350からなるリストを選択する。一部の例では、非正規化命令410は、データストレージ340内に記憶された複数の非正規化器からなる事前定義されたセット350から対応する複数の非正規化器350を取り出すことによって、非正規化器モジュール320が選択する1つまたは複数の非正規化器350からなるリストを識別する。これらの例では、命令410は、各非正規化器を識別し、非正規化器モジュール320がデータストレージ340から対応する非正規化器350を取り出すために使用する対応するキー344(図3)を提供する。他の例では、非正規化命令410は、他の複数の非正規化器を識別し、例えば、特定のユーザ10のためにオンザフライでコンパイルされるカスタマイズの/パーソナライズされた非正規化器450(図4Aおよび図4b)、または、データストレージ340内の複数の非正規化器からなる事前定義されたセット350に含まれない、使用頻度の低い複数の非正規化器を識別する。一部の実装形態では、特定のユーザ10に関連付けられているパーソナライズされた複数の非正規化器450は暗号化され、非正規化器モジュール320は、ユーザ10が適切な復号キーを提供する場合にのみ、パーソナライズされた複数の非正規化器を復号できる。
【0029】
コンテキストサーバ400によって取得されるコンテキストメタデータ110は、音声入力104に関連付けられている音声認識カテゴリと、ユーザ10に関連付けられているユーザデバイス200で稼働しているアプリケーションと、ASRモジュール300によって音声入力104が受信された時のユーザ10の場所と、ユーザを識別するユーザ識別子と、ユーザ10に関連付けられている人口統計情報と、テキストの非正規化についてのユーザ嗜好と、のうちの少なくとも1つを含む。
【0030】
音声入力104に関連付けられている音声認識カテゴリは、音声入力104が口述のためにテキストに変換されるか否か、または音声入力104がユーザデバイス200が実行するためのボイス検索またはコマンドとして提供されるか否かを示し得る。後者の場合、ASRモジュール300は、音声入力104によって指定されたボイス検索またはコマンドのアノテーションとして、ユーザデバイス200に表示するために、音声入力104を非正規化されたテキスト322に変換する。音声入力104に関連付けられている音声認識カテゴリは、会話、オーディオ/ビデオ会議、またはボイスメール録音の一部として音声入力104を転写するなどの他のカテゴリを含むことができるが、これらに限定されない。明らかになるように、音声入力104に関連付けられている音声認識カテゴリは、非正規化器モジュール320が未処理の音声認識結果312を非正規化するためにどの非正規化器350を選択するかを決定することができる。別の言い方をすれば、非正規化器モジュール320は、対応する音声入力104に関連付けられている音声認識カテゴリに基づいて、同じ未処理の音声認識結果312を異なる方法で非正規化することができる。
【0031】
コンテキストメタデータ110が、ユーザ10に関連付けられているユーザデバイス200上で稼働するアプリケーションの識別子を含む場合、コンテキストサーバ400は、音声入力に関連付けられている音声認識カテゴリを判別できる可能性がある。例えば、ユーザデバイス200上で現在開いて稼働している口述アプリケーションは、ユーザ10が音声入力104を口述していることを示し得る。音声入力104がASRモジュール300によって受信されたときのユーザ10の場所を含むコンテキストメタデータ110は、その場所で話されている主要な言語および/または方言を判別するよう、コンテキストサーバ400によって使用され得る。例えば、ユーザ10が日本にいる場合、翻字非正規化器を適用して、テキストを対応する字に変換してよく、一方、ユーザ10が別の場所にいる場合、異なる翻字非正規化器を適用してもよいし、翻字非正規化器を適用しなくてもよい。コンテキストメタデータ110内の場所は、ユーザ10の正確な地理的位置が判定されないよう、地理的領域を含んでいてもよい。さらに、ユーザは場所情報の提供に明示的に同意する必要があり、いつでも場所情報の共有をオプトアウトできる。
【0032】
ASR要求102が、ユーザを識別するユーザ識別子を含むコンテキストメタデータ110を提供するとき、コンテキストサーバ400は、ユーザ識別子を使用して、1つまたは複数のコンテキストソース190から追加のコンテキストメタデータ110を取得することができる。例えば、コンテキストサーバ400は、ユーザ識別子を使用して、ユーザ10に関連付けられているユーザプロファイル192からコンテキストメタデータ110を取り出すことができる。ユーザプロファイル192は、年齢、ジェンダー、居住地、話す言葉、教育、職業など、ユーザ10に関連付けられている人口統計情報を含み得る。ユーザ10は、ASRモジュール300によって使用するために人口統計情報を自発的に提供及び記憶に同意し、いつでも人口統計情報を除去するオプションを有する。一部の例では、コンテキストサーバ400は、ユーザ10の場所に代えて、またはそれに加えて、ユーザ10に関連付けられているユーザプロファイル192内の人口統計情報を分析することによって、ユーザ10によって話される主要な言語および/または方言を判別する。ユーザプロファイル192は、さらに、テキストの非正規化に関するユーザ嗜好を含み得る。例えば、非正規化器モジュール320は、デフォルトで、不快単語非正規化器を適用して、テキストにおける不快な単語をマスクすることができるが、テキストの非正規化に関するユーザ嗜好は、不快な言葉をマスクしないことを明示的に示している場合がある。このため、コンテキストサーバ400は、非正規化命令410において、この特定のユーザ10の未処理の音声認識結果312を非正規化するときに、非正規化器モジュール320が不快単語非正規化器を適用してはならないことを指定し得る。したがって、コンテキストサーバ400は、ASR要求102が受信されたときにコンテキストメタデータ110の一部またはすべてを受信することができ、ユーザ10を識別するユーザ識別子に関連付けられているユーザプロファイル192にアクセスすることによって、コンテキストソース190から他のコンテキストメタデータ110を取り出すことができる。
【0033】
未処理の音声認識結果312を非正規化した後、非正規化器モジュール320は、非正規化されたテキスト322の表示を行うように、および/または他の何らかの方法で非正規化されたテキスト322を消費するように構成された出力部500に提供してもよい。図5を参照すると、出力部500は、ユーザデバイス200および/またはユーザが読む非正規化されたテキスト322を提示することができる1つまたは複数の他のユーザデバイスを含み得る。出力部500は、追加的またはこれに代えて、リモートシステム140上で実行する1つまたは複数のアプリケーション/サービスを含み得る。例えば、音声入力104は、音声入力104に対応する非正規化されたテキスト322を観察するためにユーザデバイスがアクセスすることができる、リモートシステム140上で実行するメッセージボードサービスへの入力を含み得る。出力部500はさらに、電気通信会議セッションにおける1人または複数の話者のために転写された音声に対応する非正規化されたテキスト322を提供する転写サービスを含むことができる。追加的に又はこれに代えて、出力部500は、人間の可読性以外の使用のために、非正規化されたテキスト322を消費する他のシステム/モジュールを含み得る。例えば、出力部500は、非正規化されたテキスト322を受信し、合成された音声を生成するテキスト音声システムを含むことができる。ここで、非正規化されたテキスト322は、TTSシステムが合成音声を生成するときに適用するために、対応する非正規化器からの韻律および/または発音タグを含み得る。別の例では、出力部500は、非正規化されたテキスト322を使用してユーザが何を望んでいるかを理解する自然言語理解(NLU)モジュールを含むことができる。一部の例では、人間以外の使用(例えば、TTSシステムおよびNLUモジュール)のために出力部500によって消費される非正規化されたテキスト322は、可読性のために非正規化されておらず、対応する出力部500による処理により適した態様で非正規化/正規化されている。
【0034】
図2Aおよび図2Bは、ASR要求102をASRモジュール300に送信し、非正規化されたテキスト322をASRモジュール300から戻って受信する例示的なユーザデバイス200を示す。ユーザデバイス200は、画面212を含み、画面212に表示するためのグラフィカルユーザインターフェース210を実行する。ユーザデバイス200はさらに、1つまたは複数のソフトウェアアプリケーション210、210a-dを実行する。ソフトウェアアプリケーション210は、コンピューティングデバイスによって実行されると、コンピューティングデバイスにタスクを実行させるコンピュータソフトウェアを指し得る。一部の例では、ソフトウェアアプリケーション210は、「アプリケーション」、「アプリ」、または「プログラム」と呼ばれることがある。例示的なソフトウェアアプリケーション210には、ボイス通信アプリケーション210a、メディアストリーミングアプリケーション210b、メッセージングアプリケーション210c、カレンダアプリケーション210d、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲームが含まれるが、これらに限定されない。
【0035】
図2Aは、現在カレンダアプリケーション210d(実線で示される)を実行し、時刻1に、オーディオデータ103と音声入力104に関連付けられているコンテキストメタデータ110とを含むASR要求102をASRモジュール300に送信するユーザデバイス200を示す。ここで、音声入力104は、所与の日(明日)に所与の個人(スキップフィカニー(Skip Fikany))とともにトピック(ツールの新しいラインについて話し合い)に関して会議時間がいつに記録されているかを判定する、カレンダアプリケーション210dに向けられたボイス検索に対応する。様々な種類のメタデータの中で特に、音声入力104に関連付けられており、ASR要求102で提供されるコンテキストメタデータ110は、カレンダアプリケーション210dが現在ユーザデバイス200上で実行している、および/または音声入力104がカレンダアプリケーション210dに向けられていると識別するアプリケーション識別子を含む。
【0036】
時刻2で、レコグナイザ310は、音声入力104に対応する未処理の音声認識結果312を生成し、時刻3でコンテキストメタデータ110をコンテキストサーバ400に転送する。時刻2および3は、同時に発生してもよく、時刻3は時刻2の前または後に発生してもよい。未処理の音声認識結果312は、「ツールの新しいラインを話し合うスキップフィカニーとの明日の会議がいつであるか(when is my meeting tomorrow with skip fikany to discuss the
new line of tools)」を述べた正規化されたテキストを含み得る。正規化されたテキストは、会議の時間を決定するための検索を実行するためにカレンダアプリケーション210dによって使用され得るが、正規化されたテキストは、ユーザの可読性のために最適化されていない。カレンダアプリケーション210dを識別するアプリケーション識別子を含むコンテキストメタデータ110を使用して、コンテキストサーバ400は、音声入力104に関連付けられている音声認識カテゴリが、カレンダアプリケーション210dにアクセスすることによって実行するユーザデバイス200のボイス検索として音声入力104が提供されていることを示していると、判別することができる。したがって、時刻4で、コンテキストサーバ400は、ボイス検索アプリケーション(例えば、カレンダアプリケーション210d)がユーザデバイス200上で現在実行していることを示すコンテキストメタデータ110に基づいて、非正規化命令410を生成し、非正規化命令410を非正規化器モジュール320に提供する。
【0037】
非正規化器モジュール320は、非正規化命令410を使用して、生成された未処理の音声認識結果312に適用する1つまたは複数の非正規化器350からなるリストを選択する。例えば、非正規化命令410は、1つまたは複数の非正規化器350からなるリストを指定してもよく、非正規化器モジュール320は、データストレージ340内の複数の非正規化器からなる事前定義されたセット350から1つまたは複数の非正規化器350を選択してもよい。コンテキストメタデータ110は、音声入力104がボイス検索アプリケーション(例えば、カレンダアプリケーション210d)に関連付けられていることを示しているので、コンテキストサーバ400は、ボイス検索のための音声入力104におけるいずれの語も明示的な句読点の語を含まない可能性が高いので、非正規化器モジュール320が明示的句読点非正規化器を適用しないことを保証する非正規化命令410を生成する。したがって、この例では、非正規化命令410は、非正規化モジュール320に、複数の非正規化器からなるデフォルトリストから明示的句読点非正規化器を除去するように命令すると考えられ、または、非正規化命令410は、デフォルトリストがないか、またはデフォルトリストが明示的句読点非正規化器を含まない場合、非正規化器モジュール320に明示的句読点非正規化器を含めるようには命令しない。1つまたは複数の非正規化器からなるリストは、第1の非正規化器が未処理の音声認識結果312に適用され、後続の各非正規化器が前の非正規化器からの出力を入力として受け取るように、複数の非正規化器が適用されるべきシーケンスを示す。時刻5で、非正規化器モジュール320は、未処理の音声認識結果312に順に1つまたは複数の非正規化器からなるリスト350を適用することにより、生成された未処理の音声認識結果312を非正規化されたテキスト322へと非正規化する。
【0038】
時刻6で、ASRモジュール300は、音声入力104に対応する非正規化されたテキスト322をユーザデバイス200に提供し、ユーザデバイス200は、グラフィカルユーザインターフェース210に表示されるボイス検索/コマンドウィンドウ216に非正規化されたテキスト322を表示する。ここで、非正規化されたテキスト322は、カレンダアプリケーション210dに向けられたボイス検索に対応する音声入力104に単にアノテーションを付ける。示されている例では、非正規化されたテキスト322は、少なくとも大文字化非正規化器および非明示的非正規化器によって非正規化されている。例えば、非正規化器モジュール320は、大文字化非正規化器を適用して、ボイス検索の初めの最初の文字「W」、個人の名前(スキップ(Skip))の最初の文字「S」、および個人の姓(フィカニー(Fikany))の最初の文字「F」を大文字にしている。非明示的非正規化器は、音声入力104が質問として表現されているため、ボイス検索の最後に疑問符「?」を追加している。特に、非正規化器モジュール320は、未処理の音声認識結果312に明示的句読点非正規化器を適用しなかったので、未処理の音声認識結果312の「新たなライン(new line)」という語は、非正規化されたテキスト322に含まれており、「新たなライン(new line)」という語を誤って省略して代わりに「話し合う(discuss)」という語の後に「ツールの(of tools)」という語で始まる新しい行を開始する口述テキストに変換されるといったことがない。一部の例では、ASRモジュール300は、非正規化されたテキスト322をユーザデバイス200(または他の出力部500)にリアルタイムでストリーミングし、その結果、非正規化されたテキスト322は、ユーザ10が音声を発している間に表示される。
【0039】
図2Bは、現在メッセージングアプリケーション210c(実線で示される)を実行し、時刻1に、オーディオデータ103と音声入力104に関連付けられているコンテキストメタデータ110とを含むASR要求102をASRモジュール300に送信するユーザデバイス200を示す。ここで、音声入力104は、電子メッセージに含めるためにメッセージングアプリケーション210cに向けられた口述音声に対応する。様々な種類のメタデータの中で特に、音声入力104に関連付けられており、ASR要求102で提供されるコンテキストメタデータ110は、メッセージングアプリケーション210cが現在ユーザデバイス200上で実行している、および/または音声入力104がメッセージングアプリケーション210cに提供されていると識別するアプリケーション識別子を含む。
【0040】
時刻2で、レコグナイザ310は、音声入力104に対応する未処理の音声認識結果312を生成し、時刻3でコンテキストメタデータ110をコンテキストサーバ400に転送する。時刻2および3は、同時に発生してもよく、時刻3は時刻2の前または後に発生してもよい。未処理の音声認識結果312は、「親愛なるキャリー コンマ 新たな行 チーズケーキをありがとう 感嘆符(dear carrie comma new line thank you for the cheesecake exclamation point)」と述べている正規化されたテキストを含み得る。メッセージングアプリケーション210cを識別するアプリケーション識別子を含むコンテキストメタデータ110を使用して、コンテキストサーバ400は、音声入力104に関連付けられている音声認識カテゴリが、テキストに変換するためにユーザデバイス200上で実行するメッセージングアプリケーション210cのための口述音声として音声入力104が提供されていることを示していると、判別することができる。したがって、時刻4でコンテキストサーバ400は、口述アプリケーション(例えば、メッセージングアプリケーション210c)がユーザデバイス200上で現在実行していることを示すコンテキストメタデータ110に基づいて、非正規化命令410を生成し、非正規化命令410を非正規化器モジュール320に提供する。ここで、コンテキストサーバ400は、音声入力104は明示的な句読点の語を含む可能性が高いので、非正規化器モジュール320が明示的句読点非正規化器を適用することを保証する非正規化命令410を生成する。例えば、非正規化命令410は、複数の非正規化器からなるデフォルトリストがないか、またはデフォルトリストが明示的句読点非正規化器を含まない場合、非正規化器モジュール320に明示的句読点非正規化器を含めるように命令してもよい。時刻5で、非正規化器モジュール320は、未処理の音声認識結果312に順に1つまたは複数の非正規化器からなるリスト350を適用することにより、生成された未処理の音声認識結果312を非正規化されたテキスト322へと非正規化する。
【0041】
時刻6で、ASRモジュール300は、音声入力104に対応する非正規化されたテキスト322をユーザデバイス200に提供し、ユーザデバイス200は、グラフィカルユーザインターフェース210に表示されるメッセージ/口述ウィンドウ218に非正規化されたテキスト322を表示する。示されている例では、非正規化されたテキスト322は、少なくとも明示的句読点非正規化器および大文字化非正規化器によって非正規化されている。例えば、明示的句読点非正規化器は、未処理の音声認識結果312の「コンマ」という用語を対応する記号「,」に変換し、「新たな行(new line)」という語を「ありがとう(Thank you)」で始まる新しい行を開始する命令として認識する。明示的句読点非正規化器が適用された後、非正規化器モジュール320は、最初の行の最初の文字「D」、宛先の名(キャリー(Carrie))の最初の文字「C」、および2番目の行の最初の文字「T」を大文字にすることによって大文字化非正規化を適用する。特に、仮に、大文字化非正規化器が明示的句読点非正規化器の前に適用された場合、「T」は行の開始文字として識別できずに大文字にされない可能性が高い。
【0042】
図2Aおよび図2Bの例は、複数の非正規化器350からなる同じ事前定義されたセットにアクセスできる全く同じASRモジュール300を使用している。レコグナイザ310は、同じ正規化されたテキストでトレーニングされ、関連付けられているコンテキストメタデータ110が何を含むかに関係なく、所与の音声入力104に対して同じ未処理の音声認識結果312を生成する。しかしながら、コンテキストサーバ400は、音声入力104に関連付けられているコンテキストメタデータ110を使用して、最適な可読性のための非正規化されたテキストへのレコグナイザ310によって生成された未処理の音声認識結果312の非正規化をパーソナライズ/コンテキスト化する。
【0043】
図3は、ASRモジュール300における、非正規化器モジュール320、データストレージ340、およびコンテキストサーバ400の間の相互作用の例を示している。データストレージ340は、非正規化器モジュール320で受信された正規化されているテキストの入力に対する非正規化のいくつかの態様の実行に係る、それぞれが対応する非正規化規則または非正規化モデルに対応する複数の非正規化器からなる事前定義されたセット350を記憶する。非正規化器モジュール320は、コンテキストメタデータ110が存在しない場合、および/またはコンテキストサーバ400が非正規化命令410を提供しない場合に、音声認識結果312の非正規化に適用するために、複数の非正規化器からなるデフォルトリスト348で初期化され得る。示されている例では、複数の非正規化器からなるデフォルトリスト348は、明示的句読点、非明示的句読点、大文字化、および翻字非正規化器を含む。データストレージ340は、対応するキー344を提供することによってデータストレージ340から任意の所与の非正規化器(すなわち、バリュー346)を選択する/取り出すために、非正規化器モジュール320にアクセス可能な複数の非正規化器からなる事前定義されたセット350のキーバリューマップ342を維持する。
【0044】
コンテキストサーバ400から非正規化命令410を受信することに応じて非正規化器モジュール320は、非正規化命令410に基づいて複数の非正規化器からなるデフォルトリスト348を変更することによって、正規化されたテキスト322の非正規化に適用するために1つ以上の非正規化器からなるリスト350を選択することができる。一部の実装形態では、複数の非正規化器からなるデフォルトリスト348の変更には、複数の非正規化器からなるデフォルトリスト348から1つまたは複数の非正規化器を除去すること、および/または、複数の非正規化器からなる事前定義されたセット350からの1つまたは複数の非正規化器を、複数の非正規化器のからなるデフォルトリスト348に追加すること、が含まれる。例えば、非正規化命令410は、先頭追加非正規化器命令、後尾追加非正規化器命令、除去非正規化器命令、置換非正規化器命令、または追加非正規化器命令のうちの1つまたは複数を含む。後尾追加および先頭追加非正規化器命令は、コンテキストサーバ400が複数の非正規化器からなるデフォルトリスト348についての知識を持たない場合に有益であり得る。先頭追加非正規化器命令は、新たな非正規化器(例えば、複数の非正規化器からなる事前定義されたセット350から)を識別して、複数の非正規化器のデフォルトリスト348の開始位置に先頭追加し、これに対し、後尾追加非正規化器命令は、複数の非正規化器からなるデフォルトリストの終了位置に後尾追加する新たな非正規化器を識別する。除去非正規化器命令は、複数の非正規化器からなるデフォルトリスト348から除去される既存の非正規化器を識別し、置換非正規化器命令は、複数の非正規化器からなるデフォルトリスト348において既存の非正規化器を置き換えるために、新たな非正規化器を識別する。追加非正規化器命令は、非正規化器からなるデフォルトリストに追加する新たな非正規化器を識別し、新たな非正規化器に先行または後続する、複数の非正規化器からなるデフォルトリストにおける既存の非正規化器を識別する。
【0045】
一部の実装形態では、コンテキストサーバ400は、複数の非正規化器のデフォルトリスト348から翻字非正規化器を除去するように非正規化器モジュール320に命令する除去非正規化器命令と、不快単語非正規化器を複数の非正規化器からなるデフォルトリスト348に後尾追加するように非正規化器モジュール320に命令する後尾追加非正規化命令と、を含む非正規化命令410を提供する。ここで、除去命令には、複数の非正規化器からなるデフォルトリスト348から除去されるべき翻字非正規化器を識別する対応する翻字キー344を含み、後尾追加命令は、複数の非正規化器からなるデフォルトリスト348に後尾追加されるべき不快単語非正規化器を識別する対応する不快単語キー344を含む。
【0046】
示される例では、非正規化器モジュール320は、コンテキストサーバ400から受信した非正規化命令410を使用して、複数の非正規化器からなるデフォルトリスト348を変更するように構成される。例えば、非正規化命令410は、翻字非正規化器を除去し、不快単語非正規化器を後尾追加すべきであることを指定しているので、非正規化器モジュール320は、キーバリューマップ342によって、複数の非正規化器からなるデフォルトリスト348から残りの明示的句読点、非明示的句読点、および大文字化非正規化器を取り出し、対応するキー344をデータストレージ340に提供することによって複数の非正規化器からなる事前定義されたセット350から不快単語非正規化器を取り出す。
【0047】
一部の例では、非正規化器モジュール320は、対応する複数の非正規化器が未処理の音声認識結果312を非正規化されたテキスト322に非正規化するために適用される順序/シーケンスに関連付けられたシーケンスで対応するキー344を提供する。したがって、対応する複数のキー344を提供することにより、非正規化器モジュール320は、明示的句読点、非明示的句読点、大文字化、およびマスク不快非正規化器に対応する複数の非正規化器352からなる選択されたリストを取り出す。その後、非正規化器モジュール320は、未処理の音声認識結果312に明示的句読点非正規化器を適用し、明示的句読点非正規化器の出力に非明示的句読点非正規化を適用し、大文字化非正規化器を非明示的句読点非正規化器の出力に適用し、マスク不快非正規化器を大文字化非正規化器の出力に適用することによって、未処理の音声認識結果312を非正規化されたテキスト322に非正規化する。
【0048】
図4Aを参照すると、一部の実装形態では、コンテキストサーバ400は、ASRモジュール300のデータストレージ340(例えば、メモリハードウェア206、146)に記憶されている複数の非正規化器からなる事前定義されたセット350に含まれない、特定のユーザ10のためにパーソナライズされた複数の非正規化器450をコンパイルする。ここで、ユーザ10またはサードパーティクライアントは、ユーザ10(またはサードパーティクライアント)が未処理の音声認識結果312を非正規化するために適用したい1つまたは複数のパーソナライズされた非正規化規則402をコンテキストサーバ400に提供することができる。例えば、非正規化規則402は、ユーザ10によって実装されてよく、テキストを非正規化するためにユーザ10によって指定された任意のパーソナライズされた/カスタマイズされた非正規化規則を含んでいてもよく、例えば、特殊な大文字化、リッチフォント、埋め込み(Webサイトへのリンクなど)、特定のレンダリング制約に適合するフォーマッター(短い行/タブなど)である。
【0049】
特定のユーザ10から1つまたは複数の非正規化規則402(例えば、カスタマイズされた/パーソナライズされた非正規化規則)を受信することに応じて、コンテキストサーバ400は、各非正規化規則402に関して対応するパーソナライズされた非正規化器450をコンパイルし、1つまたは複数のパーソナライズされた非正規化器450を、図1のコンテキストソース190の1つに対応し得るパーソナライズされた非正規化器リポジトリ440に記憶する。ユーザ10に固有のパーソナライズされた複数の非正規化器450は、ユーザ10を識別するユーザ識別子12を含み得る。したがって、ユーザ10が、ユーザ識別子12を含むコンテキストメタデータ110を用いて後続のASR要求102を提供するとき、コンテキストサーバ400は、ユーザ識別子12に一致する、リポジトリ440(例えば、コンテキストソース190)に記憶されている任意のパーソナライズされた複数の非正規化器450を識別し得る。次に、コンテキストサーバ400は、パーソナライズされた複数の非正規化器450を適用するように非正規化器モジュール320に命令する非正規化命令410を生成することができる。一部の例では、コンテキストサーバ400は、ユーザ10に関連付けられているパーソナライズされた複数の非正規化器450を暗号化し、非正規化器モジュール320がパーソナライズされた複数の非正規化器450を復号して使用するためにユーザ10が提供しなければならない暗号化キーを識別する暗号化ハッシュ14を適用する。例えば、ユーザ10は、対応する音声入力104を非正規化されたテキスト322に変換するために、ASR要求102においてコンテキストメタデータ110の一部として暗号化キーを提供することができる。
【0050】
一部の実装形態では、パーソナライズされた非正規化器リポジトリ440は、ASRモジュール300から分離されており、これによって、パーソナライズされた複数の非正規化器450(例えば、カスタマイズの複数の非正規化器)は、ASRモジュール300への定期的な更新を待つことを要せずに動的にコンパイルおよび記憶され得る。さらに、パーソナライズされた非正規化器リポジトリ440は、数百万の異なるユーザのために1つまたは複数のパーソナライズされた非正規化器450のそれぞれのセットを潜在的に記憶することになり得るので、ASRモジュール300のデータストレージ340が、全ユーザ集団にアクセス可能な複数の非正規化器からなる事前定義されたセット350に加えて、これらのパーソナライズされた非正規化器450のすべてを記憶し、アクセスを提供することは理想的ではない。一部のシナリオでは、パーソナライズされた非正規化器リポジトリ440は、パーソナライズされた非正規化器450を記憶し、ASRモジュール300の次の定期的(例えば、毎週)更新中に、パーソナライズされた複数の非正規化器をASRモジュール300のデータストレージ340に導入してもよい。一部の例では、パーソナライズされた非正規化器リポジトリ440は、パーソナライズされた複数の非正規化器450を複数の非正規化器からなる事前定義されたセット350と混合することなく、ASRモジュール300上のデータストレージ340と統合される。
【0051】
図4Bを参照すると、一部の実装形態では、ユーザ10は、ユーザデバイス200を介して、ASR要求102のコンテキストメタデータ110の一部として1つまたは複数のパーソナライズされた非正規化規則402を含むASR要求102を提供する。このシナリオでは、ユーザ10は、ASRモジュール300に、1つまたは複数の非正規化規則402をオンザフライで適用するように要求している。示されている例では、1つまたは複数のパーソナライズされた非正規化規則402を含むコンテキストメタデータ110がコンテキストサーバ400に提供され、音声入力104がレコグナイザ310に提供される。レコグナイザ310は、音声入力104に対応する未処理の音声認識結果312を生成する。一方、コンテキストサーバ400は、非正規化規則402ごとに対応するパーソナライズされた非正規化器450をコンパイルし、音声入力104に対応する未処理の音声認識結果312を非正規化するためのパーソナライズされた非正規化器450を含む非正規化命令410を生成するように構成される。したがって、コンテキストサーバ400は、パーソナライズされた非正規化器450を含む非正規化命令410を非正規化器モジュール320に提供し、非正規化器モジュール320は、パーソナライズされた複数の非正規化器450をオンザフライで適用して、未処理の音声認識結果312を対応する非正規化されたテキスト322に非正規化する。
【0052】
一部の実装形態では、ユーザ10は、アドミニストレータが複数の非正規化器からなる事前定義されたセット350またはASRモジュール300の他の態様を更新する必要なしにテストしたい、新しい複数の非正規化器に関連付けられているパーソナライズされた非正規化規則402を提供するASRモジュール300のアドミニストレータを含むことができる。例えば、パーソナライズされた非正規化ルール402は、コンテキストサーバ400に新しい複数の非正規化器をコンパイルさせ、非正規化器モジュール320がテキストを非正規化するために新しい非正規化器を使用するように命令する命令410を生成することができる。したがって、パーソナライズされた非正規化規則402をオンザフライで提供することは、それらをASRモジュール300に導入する前に新しい複数の非正規化器をデバッグするために有益である。
【0053】
図6は、ASRモジュール300の非正規化器モジュール320によって生成された未処理の音声認識結果を非正規化する方法600の動作の例示的な構成のフローチャートである。動作602で、方法600は、ASRモジュール300のデータ処理ハードウェア204、144でユーザ10から音声入力104を受信することを含む。ユーザ10は、音声認識要求102の一部として音声入力104をASRモジュール300に提供するユーザデバイス200に関連付けられ得る。ASRモジュール300は、ユーザデバイス200および/または分散システム140上に常駐することができる。
【0054】
動作604で、方法600は、データ処理ハードウェア204、144によって、音声入力104に関連付けられているコンテキストメタデータ110を取得することを含む。コンテキストメタデータ110は、音声入力104のオーディオデータ103がデータ処理ハードウェア204、144で受信されたときに、ユーザデバイス200から受信され得る。他の例では、コンテキストメタデータ110を取得することは、音声入力104が受信されたときに、ユーザ10に関連付けられているユーザ識別子12を受信することと、ユーザ識別子12を使用して、メモリハードウェア206、146からコンテキストメタデータ110を取り出すことと、を含む。コンテキストメタデータは、音声入力に関連付けられている音声認識カテゴリ(例えば、口述またはボイス検索)の少なくとも1つを含み得る。ユーザデバイス200上で実行しているアプリケーション、音声入力104が受信されたときのユーザの場所、ユーザ識別子12、ユーザに関連付けられている人口統計情報、またはテキストを非正規化するためのユーザ嗜好。例えば、ユーザ嗜好は、1つまたは複数のパーソナライズされた非正規化規則402を含み得る。
【0055】
動作606で、方法600は、データ処理ハードウェア204、144によって、音声入力104に対応する未処理の音声認識結果312を生成することを含む。生成された未処理の音声認識結果312は正規化されたテキストを含む。例えば、正規化されたテキストとは、すべて大文字化されておらずと句読点が削除されたテキストを指す。例えば、ASRモジュール300のレコグナイザ310は、通常、正規化されたテキストのコーパスでトレーニングされるので、レコグナイザ310は、正規化された未処理の音声認識結果312を出力する。
【0056】
動作608で、方法600は、音声入力104に関連付けられているコンテキストメタデータ110に基づいて、生成された未処理の音声認識結果312結果に適用する1つまたは複数の非正規化器352からなるリストを選択することを含む。1つまたは複数の非正規化器352からなるリストを選択することは、複数の非正規化器からなる事前定義されたセット350により複数の非正規化器からなるデフォルトリスト348を変更することを含んでいてもよく、該変更することは、複数の非正規化器からなるデフォルトリスト348から1つまたは複数の非正規化器を除去することと、複数の非正規化器からなる前記事前定義されたセット350からの1つまたは複数の非正規化器を複数の非正規化器からなるデフォルトリストに追加することと、のうちの少なくとも1つによって行われる。
【0057】
動作610で、方法600は、生成された未処理の音声認識結果312に順に前記1つまたは複数の非正規化器352からなるリストを適用することにより、生成された未処理の音声認識結果312を非正規化されたテキスト322へと非正規化することを含む。一部の例では、コンテキストサーバ400は、コンテキストメタデータ110に基づいて、生成された未処理の音声認識結果312を非正規化されたテキスト322へと非正規化するための非正規化命令410を生成する。ここで、ASRモジュール300の非正規化器モジュール320は、コンテキストサーバ400から非正規化命令410を受信し、非正規化命令410を使用して1つまたは複数の非正規化器352からなるリストを選択することができる。例えば、非正規化器モジュール320は、対応するキー344を使用して、メモリハードウェア(例えば、データストレージ340)から1つまたは複数の非正規化器からなる選択されたリスト350における各非正規化器を取り出すことができる。非正規化命令410は、それらの対応するキー344を提供することによって、選択すべき必要な非正規化器を識別し得る。その後、非正規化器モジュール320は、メモリハードウェア340から取り出された1つまたは複数の非正規化器352からなる選択されたリストにおける各非正規化器を、生成された未処理の音声認識結果312に順に適用するように構成されている。
【0058】
ASRモジュール300は、非正規化されたテキスト322を出力部500に送信することができる。出力部500は、図5を参照して上で説明した出力部500のいずれかを含み得る。例えば、出力部500は、クライアントデバイス200の表示画面212に非正規化されたテキスト322を表示するユーザデバイス200または別のユーザデバイスなどのクライアントデバイスを含むことができる。一部の例では、非正規化されたテキスト322は、リアルタイムで出力部500にストリーミングする。
【0059】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)は、コンピューティングデバイスにタスクを実行させるコンピュータソフトウェアを指す場合がある。いくつかの例では、ソフトウェアアプリケーションは、「アプリケーション」、「アプリ」、または「プログラム」を指す場合がある。アプリケーションの例には、システム診断アプリケーション、システム管理アプリケーション、システムメンテナンスアプリケーション、ワード処理アプリケーション、スプレッドシートアプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲームアプリケーションが含まれるが、これらに限定されない。
【0060】
非一時的メモリは、コンピューティングデバイスによって使用するために一時的または永続的にプログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラム状態情報)を格納するために使用される物理デバイスであり得る。非一時的メモリは、揮発性および/または不揮発性のアドレス可能な半導体メモリであり得る。不揮発性メモリの例には、フラッシュメモリおよび読み取り専用メモリ(ROM)/プログラム可能な読み取り専用メモリ(PROM)/消去可能なプログラム可能な読み取り専用メモリ(EPROM)/電子的に消去可能なプログラム可能な読み取り専用が含まれるが、これらに限定されない。メモリ(EEPROM)(例えば、通常、ブートプログラムなどのファームウェアに使用される)。揮発性メモリの例には、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープが含まれるが、これらに限定されない。
【0061】
図7は、この文書で説明されているシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイス700の概略図である。コンピューティングデバイス700は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを目的としている。ここに示されているコンポーネント、それらの接続と関係、およびそれらの機能は、例示のみを目的としており、本書で説明および/または主張されている発明の実装を制限することを意味するものではない。
【0062】
コンピューティングデバイス700は、プロセッサ710(データ処理ハードウェア)、メモリ720(メモリハードウェア)、ストレージデバイス730、メモリ720に接続する高速インターフェース/コントローラ740、高速拡張ポート750、および低速バス770、および記憶装置730に接続する低速インターフェース/コントローラ760を含む。コンポーネント710、720、730、740、750、および760のそれぞれは、様々なバスを使用して相互接続されており、共通のマザーボードに、または必要に応じて他の方法で取り付けることができる。プロセッサ710(例えば、データ処理ハードウェア204、144)は、メモリ720(例えば、メモリハードウェア206、146)または記憶装置730(例えば、メモリ)に格納された命令を含む、コンピューティングデバイス700内で実行するための命令を処理することができる。ハードウェア206、146は、高速インターフェース740に結合されたディスプレイ780(例えば、図2Aおよび2Bの画面212)などの外部入力/出力デバイス上のグラフィカルユーザインターフェース(GUI)のグラフィカル情報を表示する。プロセッサ710は、いくつかの実装形態では、ASRモジュール300およびコンテキストサーバ400を実行する。他の実装形態では、複数のメモリおよび/またはメモリのタイプとともに、必要に応じて、複数のプロセッサおよび/または複数のバスを使用することができる。また、複数のコンピューティングデバイス700を接続することができ、各デバイスは、必要な操作の一部を提供する(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【0063】
メモリ720は、コンピューティングデバイス700内に非一時的に情報を格納する。メモリ720は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであり得る。非一時的メモリ720は、コンピューティングデバイス700によって使用するために一時的または永続的にプログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラム状態情報)を格納するために使用される物理デバイスであり得る。不揮発性メモリの例には、フラッシュメモリおよび読み取り専用メモリ(ROM)/プログラム可能な読み取り専用メモリ(PROM)/消去可能なプログラム可能な読み取り専用メモリ(EPROM)/電子的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)が含まれるが、これらに限定されない(例えば、通常、ブートプログラムなどのファームウェアに使用される)。揮発性メモリの例には、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープが含まれるが、これらに限定されない。
【0064】
記憶装置730は、コンピューティング装置700に大容量記憶装置を提供することができる。いくつかの実装形態では、記憶装置730は、コンピュータ可読媒体である。様々な異なる実施形態では、記憶装置730は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光ディスク装置、またはテープ装置、フラッシュメモリまたは他の同様のソリッドステートメモリ装置、またはストレージエリアネットワークまたはその他の構成における装置を含む装置のアレイであり得る。追加の実装では、コンピュータプログラム製品は、情報キャリアに具体的に具体化される。コンピュータプログラム製品は、実行されると、上記のような1つまたは複数の方法を実行する命令を含む。情報キャリアは、メモリ720、記憶装置730、またはプロセッサ710上のメモリなどの、コンピュータまたは機械で読み取り可能な媒体である。
【0065】
高速コントローラ740は、コンピューティングデバイス700の帯域幅集約型の動作を管理し、低速コントローラ760は、帯域幅集約型のより低い動作を管理する。このような職務の割り当ては例示に過ぎない。いくつかの実装形態では、高速コントローラ740は、メモリ720、ディスプレイ780(例えば、グラフィックプロセッサまたはアクセラレータを介して)、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート750に結合される。いくつかの実装形態では、低速コントローラ760は、記憶装置730および低速拡張ポート790に結合されている。低速拡張ポート790は、様々な通信ポート(例えば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、イーサネットワイヤレス)を含んでいてもよく、例えばネットワークアダプタを介して、キーボード、ポインティングデバイス、スキャナなどの1つまたは複数の入力/出力デバイス、またはスイッチまたはルータなどのネットワークデバイスに結合することができる。
【0066】
コンピューティングデバイス700は、図に示されるように、いくつかの異なる形態で実装され得る。例えば、それは、標準サーバ700aとして、またはそのようなサーバ700aのグループ内での複数回のものとして、ラップトップコンピュータ700bとして、またはラックサーバシステム700cの一部として実装され得る。本明細書に記載のシステムおよび技術の様々な実装は、デジタル電子および/または光回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現することができる。これらの様々な実装は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、データおよび命令を送信するために結合された、特別または汎用であり得る少なくとも1つのプログラム可能なプロセッサを含プログラム可能なシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムでの実装を含むことができる。
【0067】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとも呼ばれる)は、プログラム可能なプロセッサのマシン命令を含み、高レベルの手続き型および/またはオブジェクト指向プログラミング言語、および/またはアセンブリ/機械語で実装され得る。本明細書で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械命令および/またはデータをプログラム可能なプロセッサに提供するために使用される、任意のコンピュータプログラム製品、非一時的なコンピュータ可読媒体、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す場合があり、機械命令を機械可読信号として受信する機械可読媒体が含まれる。「機械可読信号」という用語は、プログラム可能なプロセッサに機械命令および/またはデータを提供するために使用される任意の信号を指す。
【0068】
本明細書に記載のプロセスおよび論理フローは、データ処理ハードウェアとも呼ばれる1つまたは複数のプログラム可能なプロセッサによって実行でき、1つまたは複数のコンピュータプログラムを実行して、入力データを操作し、出力を生成することによって機能を実行する。プロセスとロジックフローは、FPGA(フィールドプログラマブルゲートアレイ)やASIC(特定用途向け集積回路)などの特殊用途のロジック回路によっても実行できる。コンピュータプログラムの実行に適したプロセッサには、例として、汎用および特殊目的の両方のマイクロプロセッサ、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサが含まれる。一般に、プロセッサは、読み取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令とデータを受信する。コンピュータの重要な要素は、命令を実行するためのプロセッサと、命令とデータを格納するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを格納するための1つまたは複数の大容量記憶装置、例えば、磁気、光磁気ディスク、または光ディスクを含むか、またはデータを受信するか、データを転送するか、またはその両方に動作可能に結合される。ただし、コンピュータにそのようなデバイスが必要としない。コンピュータプログラムの命令およびデータを格納するのに適したコンピュータ可読媒体には、不揮発性メモリ、メディア、およびメモリデバイスの全ての形態が含まれ、例として、半導体メモリデバイス(例えば、EPROM、EEPROM、およびフラッシュメモリデバイス)、磁気ディスク(例えば、内蔵ハードディスクまたはリムーバブルディスク)光磁気ディスク、CDROMおよびDVD-ROMディスクが含まれる。プロセッサとメモリは、特別な目的の論理回路によって補完または組み込むことができる。
【0069】
ユーザとの対話を提供するために、本開示の1つまたは複数の態様は、ユーザに情報を表示するためのCRT(ブラウン管)、LCD(液晶ディスプレイ)モニター、またはタッチスクリーン等のディスプレイデバイス、任意選択でユーザがコンピュータに入力を提供可能とするキーボードとポインティングデバイス(マウスやトラックボールなど)を有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなど、任意の形態の感覚的フィードバックであり得る。また、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信できる。さらに、コンピュータは、ユーザが使用するデバイスとの間でドキュメントを送受信することにより、ユーザと対話できる。例えば、Webブラウザから受信した要求に応答して、ユーザのクライアントデバイス上のWebブラウザにWebページを送信する。
【0070】
いくつかの実装形態が説明されている。しかしながら、本開示の趣旨および範囲から逸脱することなく、様々な変更を行うことができることが理解されるであろう。したがって、他の実装形態は、以下の特許請求の範囲内にある。
図1
図2A
図2B
図3
図4A
図4B
図5
図6
図7