特許第6772198号(P6772198)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ アマゾン テクノロジーズ インコーポレイテッドの特許一覧

特許6772198言語モデルスピーチエンドポインティング
<>
  • 特許6772198-言語モデルスピーチエンドポインティング 図000008
  • 特許6772198-言語モデルスピーチエンドポインティング 図000009
  • 特許6772198-言語モデルスピーチエンドポインティング 図000010
  • 特許6772198-言語モデルスピーチエンドポインティング 図000011
  • 特許6772198-言語モデルスピーチエンドポインティング 図000012
  • 特許6772198-言語モデルスピーチエンドポインティング 図000013
  • 特許6772198-言語モデルスピーチエンドポインティング 図000014
  • 特許6772198-言語モデルスピーチエンドポインティング 図000015
  • 特許6772198-言語モデルスピーチエンドポインティング 図000016
  • 特許6772198-言語モデルスピーチエンドポインティング 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6772198
(24)【登録日】2020年10月2日
(45)【発行日】2020年10月21日
(54)【発明の名称】言語モデルスピーチエンドポインティング
(51)【国際特許分類】
   G10L 15/04 20130101AFI20201012BHJP
   G10L 15/10 20060101ALI20201012BHJP
【FI】
   G10L15/04 300C
   G10L15/10 200C
【請求項の数】13
【全頁数】32
(21)【出願番号】特願2017-567084(P2017-567084)
(86)(22)【出願日】2016年6月27日
(65)【公表番号】特表2018-523156(P2018-523156A)
(43)【公表日】2018年8月16日
(86)【国際出願番号】US2016039491
(87)【国際公開番号】WO2017003903
(87)【国際公開日】20170105
【審査請求日】2019年4月10日
(31)【優先権主張番号】14/753,811
(32)【優先日】2015年6月29日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】ビョルン ホフマイスター
(72)【発明者】
【氏名】アリヤ ラストロウ
(72)【発明者】
【氏名】バイヤン リウ
【審査官】 岩田 淳
(56)【参考文献】
【文献】 特開2003−255972(JP,A)
【文献】 特開2008−015120(JP,A)
【文献】 特開平06−043895(JP,A)
【文献】 特開昭64−081997(JP,A)
【文献】 酒井 啓行, 外4名,音響モデルと言語モデルに基づく音声区間検出を用いたハンズフリー音声認識アルゴリズムの評価,情報処理学会研究報告,日本,社団法人情報処理学会 Information Processing Society of Japan,2007年12月20日,第2007巻, 第129号,第13-18ページ
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/00−17/26
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
複数の仮説を決定するために音声データに対して音声認識処理を実行することと、
前記複数の仮説の中から最高の確率を有するトップスコア仮説を含む少なくとも1つの仮説のための休止を決定することであって、前記休止が、前記音声データの第1の点の直前である、ことと、
前記複数の仮説のそれぞれについて、前記第1の点の直前のそれぞれの休止持続時間を決定し、
前記複数の仮説のそれぞれについて前記休止持続時間を合計することによって前記第1の点に対応する前記音声データの予想休止持続時間を決定し、
前記予想休止持続時間を閾値と比較する
ことによって、スピーチのエンドポイントが前記音声データの前記第1の点で発生すると判断することと、
含むコンピュータ実装方法。
【請求項2】
前記複数の仮説のそれぞれに対応する確率を決定することと、
前記予想休止持続時間を決定する前に、それぞれの休止持続時間を前記対応する確率で乗算することと、
をさらに含む、請求項に記載のコンピュータ実装方法。
【請求項3】
第2の複数の仮説を決定することであって、
前記第2の複数の仮説が、前記複数の仮説の部分集合であり、
前記第2の複数の仮説のそれぞれが終了状態にある
ことと、
前記第2の複数の仮説のそれぞれについて前記休止持続時間を合計することによって第2の予想休止持続時間を決定することと、
前記第2の予想休止持続時間が第2の閾値を超えると判断することと、
をさらに含む、請求項に記載のコンピュータ実装方法。
【請求項4】
前記休止を決定することが、前記第1の点の直前の連続する非スピーチフレームの数を決定することを含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
非スピーチ音声フレームの前記数を決定することが、前記第1の点の直前の連続する非スピーチフレームの数のカウンタを維持することを含む、請求項に記載のコンピュータ実装方法。
【請求項6】
非スピーチ音声フレームの前記数を決定することが、前記第1の点の直前の連続する非スピーチノードの数を決定することを含む、請求項に記載のコンピュータ実装方法。
【請求項7】
コンピューティングシステムであって、
少なくとも1つのプロセッサと、
前記システムに、
複数の仮説を決定するために音声データに対して音声認識処理を実行することと、
前記複数の仮説の中から最高の確率を有するトップスコア仮説を含む少なくとも1つの仮説のための休止を決定することであって、前記休止が、前記音声データの第1の点の直前である、ことと、
前記複数の仮説のそれぞれについて、前記第1の点の直前のそれぞれの休止持続時間を決定し、
前記複数の仮説のそれぞれについて前記休止持続時間を合計することによって前記第1の点に対応する前記音声データの予想休止持続時間を決定し、
前記予想休止持続時間を閾値と比較する
ことによって、スピーチのエンドポイントが前記音声データの前記第1の点で発生すると判断することと、
を含む動作を実行させるための、前記少なくとも1つのプロセッサによって実行するよう作動する命令を含むメモリと、を備えコンピューティングシステム。
【請求項8】
前記動作は
前記複数の仮説のそれぞれに対応する確率を決定することと、
前記予想休止持続時間を決定する前に、それぞれの休止持続時間を前記対応する確率で乗算することと、
をさらに含む、請求項に記載のコンピューティングシステム。
【請求項9】
前記動作は
第2の複数の仮説を決定することであって、
前記第2の複数の仮説が、前記複数の仮説の部分集合であり、
前記第2の複数の仮説のそれぞれが終了状態にある、
ことと、
前記第2の複数の仮説のそれぞれについて前記休止持続時間を合計することによって第2の予想休止持続時間を決定することと、
前記第2の予想休止持続時間が第2の閾値を超えると判断することと、
をさらに含む、請求項に記載のコンピューティングシステム。
【請求項10】
前記休止を決定することが、前記第1の点の直前の連続する非スピーチフレームの数を決定することを含む、請求項に記載のコンピューティングシステム。
【請求項11】
前記休止を決定することが、前記第1の点の直前の連続する非スピーチノードの数を決定することを含む、請求項に記載のコンピューティングシステム。
【請求項12】
非スピーチ音声フレームの前記数を決定することが、前記第1の点の直前の連続する非スピーチフレームの数のカウンタを維持することを含む、請求項11に記載のコンピューティングシステム。
【請求項13】
非スピーチ音声フレームの前記数を決定することが、前記第1の点の直前の連続する非スピーチノードの数を決定することを含む、請求項11に記載のコンピューティングシステム。
【発明の詳細な説明】
【背景技術】
【0001】
音声認識システムは、人間が、完全に音声に依存しているコンピューティングデバイスと対話できるところまで進歩してきた。係るシステムは、受信された音声入力の多様な品質に基づいて、人間のユーザーにより話された単語を識別する技術を使用する。自然言語理解処理技術と組み合わされた音声認識は、ユーザーが話したコマンドに基づいてタスクを実行するための、スピーチをベースにしたユーザーによるコンピューティングデバイスの制御を可能にする。音声認識及び自然言語理解処理技術の組合せは、通常、音声処理と呼ばれる。また、音声処理はユーザーのスピーチを、次いで多様なテキストベースのソフトウェアアプリケーションに提供され得るテキストデータに変換もし得る。
【0002】
音声処理は、人間とコンピュータの対話を改善するためにコンピュータ、ハンドヘルドデバイス、電話コンピュータシステム、キオスク、及び多種多様な他の装置によって使用されてよい。
【0003】
本開示のより完全な理解のために、ここで添付図面と併せて解釈される以下の説明が参照される。
【図面の簡単な説明】
【0004】
図1】本開示の実施形態に係る自動音声認識(ASR)のためのシステムを示す図である。
図2】話された言葉が本開示の実施形態に従ってどのように処理され得るのかの概念図である。
図3】本開示の一態様に係る音素処理及び単語処理を示す図である。
図4】本開示の一態様に係る音声認識ラティスを示す図である。
図5】本開示の一態様に係る音声認識ラティスを示す図である。
図6図4のラティスと関連付けられたいくつかの仮説を示す図である。
図7】音声認識システムによって考慮され得るいくつかの仮説を示す図である。
図8】本開示の実施形態に係る装置の例の構成要素を概念的に示すブロック図である。
図9】本開示の実施形態に係るサーバの例の構成要素を概念的に示すブロック図である。
図10】システムで使用するためのコンピュータネットワークの例を示す図である。
【発明を実施するための形態】
【0005】
自動音声認識(ASR)は、スピーチと関連付けられた音声データをそのスピーチを表すテキストに変換することに関するコンピュータ科学、人工知能、及び言語学の分野である。同様に、自然言語理解(NLU)は、コンピュータが自然言語を含むテキスト入力から意味を引き出すことを可能にすることに関するコンピュータ科学、人工知能、及び言語学の分野である。ASR及びNLUは、多くの場合音声処理システムの一部としてともに使用される。
【0006】
ASR及びNLUは計算コストが高いことがある。すなわち、妥当な時間枠の中でASR処理及びNLU処理を処理するためにはかなりのコンピューティングリソースが必要となることがある。このため、分散コンピューティング環境が音声処理を実行するときに使用されることがある。典型的な係る分散環境は、ユーザーの話から音を取り込み、それらの音を音声信号に変換するように構成されている1つ以上のマイクを有するローカルデバイスを必要とすることがある。音声信号は次いで、例えば音声信号を最終的なコマンドに変換する等、追加の処理のために下流のリモートデバイスに送信されてよい。該コマンドは、コマンド自体に応じてリモートデバイス及びローカルデバイスの組合せによって実行されてよい。
【0007】
分散音声処理システムの一部として、ローカルデバイスは、検出されたすべての音声をリモートデバイスに継続的に送信するように構成されてよい。係る手法にはいくつかの欠点がある。1つの欠点は、係る通信がかなりの帯域幅及びネットワークリソースを必要とすることである。係る手法の別の欠点は、プライバシーの懸念により、ローカルデバイスがすべての取り込まれた音声をリモートデバイスに送信することが望ましくなくなる場合がある点である。さらに別の欠点は、大部分の音声でコマンドが発行されていないときに、リモートデバイスがすべての入信音声を処理するかなりのコンピューティングリソースを無駄にすることがある点である。
【0008】
これらの問題を説明するために、ローカルデバイスは、ユーザーが追加のコマンドを話すことができるように、ユーザーがローカルデバイスをウェイクするために特定のウェイクコマンドを話すときにだけ起動するように構成されてよい。(ウェイクワードと呼ばれることがある)ウェイクコマンドは、システムが追加の処理を実行するための指示を含んでよい。ローカルデバイスはウェイクワードを求めて継続的に傾聴してよく、ウェイクワードを含まないいかなる検出音声も無視してよい。通常、システムはウェイクワードを検出し、次いでウェイクワードに続くあらゆる後続の音声(さらにおそらく固定されているが短時間の音声事前ウェイクワード)を処理して、後続の音声の中のあらゆるコマンドを検出するように構成される。一例として、ウェイクワードは、ユーザーがデバイスを参照する名前を含むことがある。したがって、デバイスが「Alexa」と名付けられ、ウェイクワードが「Alexa」であるならば、ユーザーは「Alexa、なにか音楽を再生しなさい」と言うことによって音声制御デバイスに音楽を再生するように命令し得る。デバイスは、ウェイクワード「Alexa」を認識すると、後続の音声(この例では「なにか音楽を再生しなさい」)がなんらかの種類のコマンドを含むと理解し、その音声に対して音声処理を実行して該コマンドが何の実行のためであるのかを判断するだろう。提供されるサービス/コマンドは、アクションまたは活動を実行すること、媒体をレンダリングすること、情報を入手及び/または提供すること、ローカルデバイスを介して生成または合成されたスピーチにより情報を提供すること、ユーザーの代わりにインターネットベースのサービスを開始すること等を含んでよい。
【0009】
音声データの処理をいつ停止するかを決定するために、エンドポインティングと呼ばれるプロセスが使用されてよい。従来のエンドポインティング技術は、通常音声データで検出される休止に依存するが、係る技術は不正確であることがあり、特にユーザーが文の途中で話すのを休止してその後まもなく再開するときにエラーにつながることがある。現在のシステムは休止中のエンドポイントを決定し、その結果、不正確なときに音声処理を停止させることがある。
【0010】
有望な発話エンドポイントを決定するときに仮説が検討される場合に、この問題を解決するシステムが提供される。
【0011】
図1は、例えば上述されたシステムのようなシステムを示す。図示されるように、システム100はユーザー10の場所に音声制御デバイス110を含むことがある。デバイス110は、ネットワーク199を介して1つ以上のサーバ(複数可)120に接続されてよい。システム100は、デバイス110がユーザー10によって話される音声を取り込み、サーバ(複数可)が図2を参照して以下に説明されるように、該音声に対して音声処理を実行する分散音声処理システムであってよい。図1に示されるように、システムは入力音声に対応する音声データを決定してよく(152)、システムのデコーダ/音声認識エンジンによって検討されている複数のアクティブな仮説を決定するために該音声データに対してASRを実行してよい(154)。また、システムはアクティブな仮説ごとに休止長さを決定(156)してもよい。システムは、例えば、ラティスの特定のノードの直前の非スピーチの量を追跡し、継続的に休止長さ/休止持続時間を決定してよい。代わりに、システムは、処理中の特定のときにそれぞれのアクティブな仮説の終わりの直前の非スピーチの量をチェックしてよい。休止長さは、例えば各仮説の終わりの直前の非スピーチフレームの数によって決定されてよい。システムは次いで、それぞれのアクティブな仮説の重み付けされた休止長さを音声認識エンジンによって決定されるそれぞれの仮説の「ASR確率」で乗算することによって重み付けされた休止長さを決定してよい(158)。システムは次いで、予想休止持続時間に達するためにアクティブな仮説の重み付けされた休止長さを互いに加算してよい(160)。また、システムは終了状態での予想休止持続時間に達するために終了状態でのアクティブな仮説の重み付けされた休止長さを加算してもよい(162)。システムは次いで、累積重み付き休止長さを1つ以上の閾値と比較してよい(164)。例えば、システムは、予想休止持続時間を第1の閾値と比較し、終了状態での予想休止持続時間を第2の閾値と比較してよい。システムは次いで、予想休止持続時間がそのそれぞれの閾値を超えるときエンドポイントを決定してよい(166)。したがって、エンドポイントの決定は、話されたコマンドが終了した旨の推定値であり、該推定値の信頼は予想休止持続時間に基づく。したがって、予想休止持続時間が閾値を超えるときにエンドポイントが決定される。システムは、このようにして1つ以上のASR仮説によって見られる休止または非スピーチの量に基づいて有望なエンドポイントを指定してよい。有望なエンドポイントが決定されると、システムは、例えばNLP及び/または他のコマンド処理等、受聴された音声に対する他の動作を実行してよい。
【0012】
図1のシステム100は、図2に説明される多様な音声処理構成要素を使用し、動作してよい。図2は、話された言葉がどのように処理されるかの概念図である。示されている多様な構成要素は、同じまたは異なる物理的装置上に位置してよい。図2に示される多様な構成要素間の通信は直接的にまたはネットワーク199にわたって発生することがある。システムは、(携帯電話、タブレット等の)汎用装置または音楽を再生するように構成されたオーディオ装置のような特定の目的の装置であってよいデバイス110を含んでよい。以下の教示は多くの異なるタイプのデバイス110に当てはまるが、システムの動作は本目的のためにオーディオ装置110の例を使用し、示されてよい。オーディオ装置110は、サービス及び機能性を提供するためにオーディオ装置110の他の要素と連携して機能するように構成された複数のアプリケーションを含んでよい。アプリケーションは、例えば音楽プレーヤ等のメディアプレイバックサービスを含んでよい。アプリケーションによって実行または提供される他のサービスまたは動作は、例として、エンターテインメント(例えば、ゲーム、音楽、映画または他のコンテンツを発見し、再生すること)、個人管理(カレンダー、メモ取り等)、オンラインショッピング、金融取引、データベース照会等を要求し、消費することを含んでよい。いくつかの実施形態では、アプリケーションは、オーディオ装置110にプリインストールされてよく、オーディオ装置110の中心となる機能を実装してよい。他の実施態様では、アプリケーションの1つ以上は、ユーザー10によってインストールされてよい、またはそれ以外の場合オーディオ装置110がユーザー10によって初期化された後にインストールされてよく、ユーザー10によって所望されるように追加の機能またはカスタマイズされた機能を実装してよい。
【0013】
オーディオ装置110のマイク等の音声取込み構成要素は、話された言葉に相当する音声を取り込む。発話の始まり及び/または終わりを決定し、発話に相当する音声信号を構成する等の話された言葉を取り込むための詳細は以下に説明される。発話の表現を含む音声信号/音声データ111は、ASR構成要素250に送信されてよい。ASR構成要素250はオーディオ装置110に対してローカルであってよい、及び/またはリモートサーバ120に位置してよい。ASR構成要素250は音声をテキストに変換する。ASR構成要素250はこのようにして音声データを、音声データに含まれるスピーチの単語を表すテキストデータに転記する。テキストデータは次いで、システムコマンドを実行する、データを入力する等、多様な目的のために他の下流構成要素によって使用されてよい。下流構成要素は、ASR出力で動作する任意の数の構成要素またはアプリケーションであってよい。説明のために、多くの係る下流アプリケーションがこれらの技術のために想定されているが、NLUプロセスは以下に説明されるように初期のASR出力の利点を説明するので、この説明はNLUプロセス及びアプリケーションを使用する。例えば、NLUプロセスはASR出力を取り、早期ASR出力の認識されたスピーチに基づいて、例えばアクション(コマンド、「アプリケーション応答」または「アプリ応答」と呼ばれることもある)を決定してよい。
【0014】
音声データ内の話された言葉はASRを実行するするように構成されたプロセッサに入力され、該プロセッサは次いで、該言葉とASR知識ベース(ASRモデル記憶装置252)に記憶された予め設定された言語モデル254との間の類似性に基づいて該言葉を解釈する。例えば、ASRプロセスは、入力された音声データを音(例えば、サブワード単位または音素)のモデル及び音のシーケンスと比較して、音声データ内の言葉で話された該音のシーケンスに一致する単語を識別してよい。
【0015】
話された言葉が解釈される異なる方法(すなわち、異なる仮説)には、単語の特定の集合が言葉の中で話された単語と一致する可能性を表す確率または信頼スコアがそれぞれ割り当てられてもよい。信頼スコアは、例えば、言語音のモデル(例えば、ASRモデル記憶装置252に記憶された音響モデル253)に対する言葉の中の音の類似性、及び音と一致する特定の単語が(例えば、言語モデルもしくは文法モデルまたはダイアログベースの対話型音声応答(IVR)システムを使用して)特定の場所で文に含まれる可能性を含むいくつかの要因に基づいてよい。したがって、話される言葉(仮説)のそれぞれの潜在的なテキスト解釈は信頼スコアと関連付けられる。検討された要因及び割り当てられた信頼スコアに基づいて、ASRプロセス250は、音声データで認識される最も可能性のあるテキストを出力する。また、ASRプロセスは、それぞれの仮説が信頼スコアまたは他のスコア(例えば確率スコア等)に対応する、ラティスまたはまたはNベストリストの形で複数の仮説を出力してもよい。
【0016】
ASRプロセス250を実行する1つまたは複数のデバイスは、音響フロントエンド(AFE)256及び音声認識エンジン/デコーダ258を含んでよい。音響フロントエンド(AFE)256は、マイクからの音声データを音声認識エンジンによる処理のためのデータに変換する。音声認識エンジン258は、音声認識データを音響モデル253、言語モデル254及び他のデータモデル、ならびに音声データで伝達されるスピーチを認識する情報と比較する。AFEは音声データのノイズを低減し、AFEがフレーム内の発話部分の特徴/品質を表す特徴ベクトルと呼ばれる値の集合を決定する時間間隔を表すフレームにデジタル化された音声データを分割してよい。メル周波数ケプストラム係数(MFCC)、知覚線形予測(PLP)技術、ニューラルネットワーク特徴ベクトル技術、線形判別分析、半結合共分散行列、または当業者に既知の他の手法等、いくつかの手法が音声データを処理するためにAFEによって使用されてよい。AFE256は、デバイス110またはサーバ120に位置してよい。デバイス110にある場合、デバイスは追加の処理のために特徴ベクトル等のAFEの出力をネットワーク199を介してサーバ120に送信してよい。
【0017】
音声認識エンジン258は、スピーチ/モデル記憶装置(252)に記憶された情報を参照してAFE256からの出力を処理してよい。代わりに、(特徴ベクトル等の)フロントエンド処理後データは、内部AFEに加えて、別のソースからASR処理を実行するデバイスによって受け取られてよい。例えば、機器110は音声データを特徴ベクトルに処理し、ASR処理のためにその情報をネットワーク199上でサーバに送信してよい。特徴ベクトルは符号化されてサーバに達してよく、その場合特徴ベクトルは、音声認識エンジン258を実行するプロセッサによる処理の前に復号されてよい。処理のための特徴ベクトルを決定するためにスライディングウインドウ技術が使用されてよい。例えば、音声の各フレームは長さ25ミリ秒(ms)であってよいが、次の音声フレームは前のフレームの終わりから10msで開始する。したがって、特定の点からの音声データは複数のフレームに現れることがある。フレームに対応する短期振幅スペクトルを入手するために高速フーリエ変換(FFT)が適用されてよい。次いで、例えば、フィルタバンクを適用して特徴量を入手することによってフレームデータの特徴値が決定されてよく、該特徴値は次いで音声フレームに対応する特徴ベクトルに含まれてよい。1つ以上の特徴ベクトルが単一のフレームに対応してよい。また、特徴ベクトルを入手するための他の技術も使用されてよい。
【0018】
音声認識エンジン258は、受信された特徴ベクトルを、記憶された音響モデル253及び言語モデル254で既知の言語音素及び単語に一致させようと試みる。音声認識エンジン258は、音響情報及び言語情報に基づいて特徴ベクトルの認識スコアを計算する。音響情報は、特徴ベクトル群によって表される意図された音が言語音素と一致する可能性を表す音響スコアを計算するために使用される。言語情報は、どの音及び/または単語が互いにコンテキストで使用されるのかを検討することによって音響スコアを調整するために使用され、それによりASRプロセスが文法的に意味をなすスピーチ結果を出力する可能性を改善する。
【0019】
音声認識エンジン258は、例えば、隠れマルコフモデル(HMM)を使用する等、特徴ベクトルを音素に一致させるためのいくつかの技術を使用して、特徴ベクトルが音素と一致する確率を決定してよい。受聴された音はHMMの状態間の経路として表されてよく、複数の経路は同じ音に対する複数の考えられるテキストの一致を表してよい。
【0020】
ASR処理に続いて、ASR結果は音声認識エンジン258によって、ASRを実行するデバイスにローカルであってよい、及び/またはネットワーク(複数可)199にわたって分散されてよい他の処理構成要素に送信されてよい。例えば、スピーチの単一のテキスト表現、複数の仮説を含むNベストリスト、及びそれぞれのスコア、ラティス等を含む形をとるASR結果は、例えばデバイス110による、サーバ120による、または(例えばサーチエンジンを実行するサーバ等)別のデバイスのどちらかによる、実行のためのコマンドへのテキストの変換等の自然言語理解(NLU)のためにサーバ120等のサーバに送信されてよい。
【0021】
NLU処理260を実行するデバイス(例えば、サーバ120)は、潜在的に専用プロセッサ(複数可)、メモリ、記憶装置等を含む多様な構成要素を含んでよい。NLU処理のために構成されたデバイスは、固有表現認識(NER)モジュール252及び意図分類(IC)モジュール264、結果ランク付け及び分配モジュール266、ならびに知識ベース272を含んでよい。NLUプロセスは、エンティティライブラリ記憶装置282に記憶された案内書情報(284a〜284n)を利用してもよい。案内書情報は、例えば、ASR結果を異なるエンティティ(例えば曲名、連絡先名等)に一致させるエンティティレゾルーションに使用されてよい。案内書はユーザーにリンクされてよい(例えば、特定の案内書は特定のユーザーの音楽コレクションと関連付けられてよい)、(例えばショッピング等)特定のドメインにリンクされてよい、またはさまざまな他の方法で編成されてよい。
【0022】
NLUプロセスは、(例えば発話11に基づいてASR250から処理される等)テキスト入力を取り、テキストの意味論的解釈を行おうとする。つまり、NLUプロセスは個々の単語に基づいてテキストの背後にある意味を決定し、その意味を実装する。NLU処理260は、ユーザーからの意図または所望されるアクション、及びデバイス(例えば、デバイス110)がそのアクションを完了できるようにするテキスト内の情報の関連する部分を引き出すためにテキスト文字列を解釈する。例えば、話された言葉がASR250を使用して処理され、テキスト「ママに電話しなさい」を出力する場合、NLUプロセスは、ユーザーが自分のデバイス内の電話機を起動させ、エンティティ「ママ」に一致する連絡先との電話を開始することを意図していたと判断してよい。
【0023】
NLUは同じ発話に関係するいくつかのテキスト入力を処理してよい。例えば、ASR250が(Nベストリストの一部として)N個のテキストセグメントを出力する場合、NLUはNLU結果を入手するためにすべてのN個の出力を処理してよい。
【0024】
以下にさらに説明されるように、NLUプロセスはNLU処理の一部としてテキストに注釈を付けるために解析及びタグ付けされるように構成されてよい。例えば、テキスト「ママに電話しなさい」の場合、「電話をしなさい」が(電話呼び出しを実行するための)コマンドとしてタグ付けされ、「ママ」はコマンドの特定のエンティティ及びターゲットとしてタグ付けられてよい(ならびに連絡先リストに記憶された「ママ」に相当するエンティティの電話番号が注釈付きの結果に含まれてよい)。
【0025】
スピーチ入力のNLU処理を正しく実行するために、NLUプロセス260は、エンドポイントデバイス(例えば、サーバ120またはデバイス110)によって提供されるどのサービスが関連性があり得るのかを判断し、絞り込むように、発話の「ドメイン」を決定するように構成されてよい。例えば、エンドポイントデバイスは、電話サービス、連絡先リストサービス、カレンダー/スケジューリングサービス、音楽プレーヤサービス等との対話に関係するサービスを提供してよい。単一のテキストクエリ内の単語は複数のサービスを暗示してよく、いくつかのサービスは機能的にリンクされてよい(例えば、電話サービスとカレンダーサービスの両方とも連絡先リストのデータを活用してよい)。
【0026】
名前エンティティ認識モジュール262はASR結果の形でクエリを受け取り、意味を解釈するために使用されてよい関連する文法及び語彙情報を識別しようとする。そうするために、名前エンティティ認識モジュール262は、受信されたクエリに関係することがある潜在的なドメインを識別することによって開始してよい。NLU知識ベース272は、特定のデバイスと関連付けられたドメインを識別するデバイスのデータベース(274a〜274n)を含む。例えば、デバイス110は、音楽、電話、カレンダー、連絡先リスト、及びデバイス特有の通信のためのドメインに関連付けられてよいが、ビデオには関連付けられないことがある。さらに、エンティティライブラリは、デバイスID、ユーザーID、もしくは世帯IDによって索引付けられる、または他のなんらかの指標によって索引付けられるかのどちらかの特定のデバイスでの特定のサービスについてのデータベースエントリを含んでよい。
【0027】
ドメインは、例えば「買い物」、「音楽」、「カレンダー」等の共通のテーマを有する活動の離散的な集合を表してよい。したがって、各ドメインは、特定の言語モデル及び/または文法データベース(276a〜276n)、意図/アクションの特定の集合(278a〜278n)、及び特定の個人化された語彙(286)に関連付けられてよい。各案内書(284a〜284n)は、特定のユーザー及び/またはデバイスに関連付けられたドメイン索引語彙情報を含んでよい。例えば、案内書A(284a)は、ドメイン索引語彙情報286aa〜286anを含む。ユーザーの連絡先リスト語彙情報が連絡先の名前を含む可能性があるのに対し、例えば、ユーザーの音楽ドメイン語彙情報はアルバムタイトル、アーティスト名、曲名等を含む可能性がある。すべてのユーザーの音楽コレクション及び連絡先リストはおそらく異なるため、この個人化された情報はエンティティレゾルーションを改善する。
【0028】
クエリは、識別された各ドメインに適用可能な規則、モデル、及び情報を適用して処理される。例えば、クエリが通信と音楽の両方を潜在的に暗示する場合、クエリは通信について文法モデル及び語彙情報を使用し、NLU処理され、音楽について文法モデル及び語彙情報を使用し、処理される。モデルの各集合によって生成されたクエリに基づく応答が採点され(以下にさらに詳述される)、すべての適用されたドメインからの全体的に最高のランク付けされた結果が正しい結果であるように通常選択される。
【0029】
意図分類(IC)モジュール264は、識別された各ドメインの1つまたは複数の意図を決定するためにクエリを解析し、意図はクエリに対応する、実行されるアクションに相当する。各ドメインは、意図にリンクされた単語のデータベース(278a〜278n)と関連付けられる。例えば、音楽意図データベースは、例えば「静か」、「音量オフ」、「ミュート」等の単語及び句を「ミュート」意図にリンクしてよい。ICモジュール264は、クエリ内の単語を意図データベース278内の単語及び句に比較することによって識別されたドメインごとに潜在的な意図を識別する。
【0030】
特定の解釈された応答を生成するために、NER262はそれぞれのドメインと関連付けられた文法モデル及び語彙情報を適用する。案内書284からの語彙情報286はユーザー(複数可)及び/またはデバイスに対して個人化されるのに対し、各文法モデル276は、特定のドメインについて一般的にスピーチ(つまり一般用語)の中で発見されるエンティティ(つまり名詞)の名前を含む。例えば、ショッピングドメインに関連付けられた文法モデルは、人々が買い物について話し合うときに一般的に使用される単語のデータベースを含んでよい。
【0031】
ICモジュール264によって識別された意図は、埋められる「スロット」または「フィールド」を有する(276に含まれる)ドメイン特有の文法フレームワークにリンクされる。例えば、「音楽を再生する」が識別された意図である場合、1つまたは複数の文法(276)フレームワークは「再生する{アーティスト名}」、「再生する{アルバム名}」、「再生する{曲名}」、「再生する{アーティスト名}の{曲名}」等の文の構造に対応してよい。しかしながら、認識をより柔軟にするために、これらのフレームワークは通常、文として構成されるのではなく、むしろスロットを文法タグと関連付けることに基づくだろう。
【0032】
例えば、NERモジュール260は、名前付きエンティティを認識する前に、文法規則及びモデルに基づいて主語、目的語、動詞、前置詞等として単語を識別するためにクエリを解析してよい。識別された動詞は、フレームワークを識別するためにNERモジュール262によって次いで使用される意図を識別するためにICモジュール264によって使用されてよい。「再生する」の意図のためのフレームワークは、識別された「目的語」を再生するために適用可能なスロット/フィールド、及び例えば{アーティスト名}、{アルバム名}、{曲名}等、任意の目的語修飾子(例えば、前置詞句)のリストを指定してよい。NERモジュール260は次いで、文法上の目的語または目的語修飾子としてタグ付けされたクエリ内の単語及び句をデータベース(複数可)内で識別された単語及び句と一致させようとして、ドメインに特有で個人化された語彙(複数可)内の対応するフィールドを検索する。
【0033】
このプロセスは、単語または単語の組合せの、そのタイプ/意味論的意味に従った標識化である意味論的タグ付けを含む。構文解析は発見的文法規則を使用して実行されてよい、またはNERモデルは、例えば隠れマルコフモデル、最大エントロピーモデル、対数線形モデル、条件付き確率場(CRF)等の技術を使用し、構築されてよい。
【0034】
例えば、「ローリングストーンズのマザーズ・リトル・ヘルパーを再生してください」のクエリは、{動詞}:「再生する」、{目的語}:「マザーズ・リトル・ヘルパー」、{目的語前置詞}:「の」、及び{目的語修飾子}:「ローリングストーンズ」として解析され、タグ付けされる可能性がある。プロセスのこの点で、「再生する」は、ICモジュール264が「音楽を再生する」意図に相当すると判断する音楽ドメインに関連付けられた単語データベースに基づいて動詞として識別される。「マザーズ・リトル・ヘルパー」及び「ローリングストーンズ」の意味に関しては判断は下されていないが、文法の規則及びモデルに基づいて、これらの句はクエリの文法的目的語に関係すると判断される。
【0035】
意図にリンクされたフレームワークは、次いでフレームワークスロットとの類似性がないかユーザーのガゼットを検索する等、これらの句の意味を決定するためにどのデータベースフィールドが検索されるべきかを判断するために使用される。したがって、「音楽を再生する意図」のフレームワークは、識別された目的語に基づいた{アーティスト名}、{アルバム名}、及び{曲名}を分解しようとすることを示す可能性があり、同じ意図のための別のフレームワークは、{アーティスト名}に基づいた目的語修飾子を分解し、識別された{アーティスト名}にリンクされた{アルバム名}及び{曲名}に基づいて目的語を分解しようとすることを示す可能性がある。案内書の検索が案内書情報を使用し、スロット/フィールドを分解しない場合、NERモジュール262は(NLUの知識ベース272内の)ドメインに関連付けられた一般的な単語をデータベースで検索してよい。したがって、例えば、クエリが「ローリングスローンズの歌を再生する」ことであった場合、NER262は、「ローリングストーンズ」の「歌」と呼ばれるアルバム名または曲名を決定できなかった後に、単語「歌」がないかドメイン用語集を検索してよい。代替案では、一般的な単語が案内書情報の前にチェックされてよい、または両方とも試され、潜在的に2つの異なる結果を生じさせことがある。
【0036】
NERモジュール262によって使用される比較プロセスは、データベースエントリがタグ付けされたクエリの単語または句とどの程度密接に類似しているのか、クエリの文法構造が適用された文法フレームワークにどの程度密接に対応しているのかを、及びデータベースがエントリとフレームワークの他のスロットを埋めるために特定された情報との間の関係を示すかどうかに基づいて分類(つまり、採点)してよい。
【0037】
また、NERモジュール262はスロットを埋めるために文脈上の動作規則を使用してもよい。例えば、ユーザーが特定の歌を一時停止するように以前に要求し、その後、音声制御デバイスに「音楽の一時停止を解除してください」と要求していた場合、NERモジュール262は、ユーザーが現在再生を希望している歌―つまりユーザーが該音楽を一時停止することを要求したときに再生していた歌―の名前と関連付けられたスロットを埋めるために推論に基づくルールを適用してよい。
【0038】
NLU処理の結果は、意味をクエリに起因するとするためにタグ付けされてよい。したがって、例えば、「ローリングストーンズのマザーズ・リトル・ヘルパーを再生してください」は、{ドメイン}音楽、{意図}音楽を再生する、{アーティスト名}「ローリングストーンズ」、{媒体タイプ}歌、及び{歌の題名}「マザーズ・リトル・ヘルパー」の結果を生じさせる可能性がある。別の例として、「ローリングストーンの歌を再生してください」は、{ドメイン}音楽、{意図}音楽を再生する、{アーティスト名}「ローリングストーンズ」、及び{媒体タイプ}歌を生じさせる可能性がある。
【0039】
(タグ付けされたテキスト、コマンド等を含むことがある)NLU処理からの出力は、次いでシステム100の一部として同じサーバまたは別個のサーバ120に位置してよいコマンドプロセッサ290に送信されてよい。宛先コマンドプロセッサ290は、NLU出力に基づいて決定されてよい。例えば、NLU出力が音楽を再生するコマンドを含む場合、宛先コマンドプロセッサ290は、例えば音楽再生コマンドを実行するように構成された、オーディオ装置110または音楽再生機器に位置する音楽再生アプリケーション等の音楽再生アプリケーションであってよい。サーバは、(発話コマンドデータと呼ばれることもある)発話に含まれるコマンドに対応するデータを構成してよい。システム構成に応じて、発話コマンドデータはNLU260によって作成され、NLU260から出力されてよく、この場合コマンドは(サーバ120、デバイス110に位置する、もしくは他のどこかに位置する)コマンドプロセッサ290によって実行されてよい、または発話コマンドデータはコマンドプロセッサ290によって作成され、コマンドプロセッサ290から出力されてよく、この場合発話コマンドデータは下流構成要素に送信されてよい。
【0040】
ここで、音声データ111内のスピーチの識別を参照すると、例えばシステム100は処理されるスピーチの始まり及び終わりを決定するための多様な技術を使用してよい。説明のために、システム100では、スピーチの開始点はデバイス110によって決定されるとして説明され、スピーチのエンドポイントは(デバイス110からの対応する音声データの受信後に)サーバ120によって決定されるとして説明されるが、異なる構成要素が本開示から逸脱することなく開始点処理/エンドポインティングを実行してよい。
【0041】
スピーチがデバイス110によって受聴された音声で検出されると、デバイスは、ユーザーがいつデバイス110に対しコマンドを話すのかを決定するためにウェイクワード検出を実行してよい。上述されたように、ウェイクワードは、デバイス110がデバイス110によって検出される多様な音声入力の中で認識するように構成される特別な単語である。ウェイクワードは、このようにして通常デバイス110及び/または全体的なシステム100によって実行されるコマンドに関連付けられる。ウェイクワードの検出に続いて、デバイス110は、(ウェイクワード自体を含むことがある)発話に対応する音声データをサーバ(複数可)120に送信してよい。サーバ(複数可)120は次いで、エンドポイントが検出されるまで(以下に説明する)音声データ111に対して音声処理を実行してよく、発話に含まれる結果として生じるいかなるコマンドを実行してもよい。
【0042】
音声コマンドの始まりまたは終わりを決定するために、いくつかの技術が使用されてよい。一実施形態では、システムは、話された単語の中の休止を判断し、それらの休止を会話の中の潜在的な中断として解釈してよい。したがって、本明細書の説明はエンドポイントを決定することまたは宣言することを参照することがあるが、システムが行うことは、本明細書に説明される多様な考察に基づいて、話されたコマンドが終了した(つまりエンドポイントに達した)旨の推定である。会話の中の中断は発話間の中断と見なされ、したがって、発話の始まり(開始点)または終わり(エンドポイント)と見なされてよい。また、発話の始まり/終わりはスピーチ/音声の特性を用いて検出されてもよい。発話の始まり(開始点処理とも呼ばれる)または発話の終わり(エンドポインティング)を決定するために他の技術が使用されてもよい。開始点処理/エンドポインティングは、例えば、無音/非スピーチ音声のフレームの数、例えば連続する無音/非スピーチフレームの数に基づいてよい。例えば、いくつかのシステムはエネルギーベースまたは音響モデルベースの音声活動検出(VAD)技術を利用してよい。係る技術はスピーチが音声入力に存在するかどうかを、音声入力の1つ以上のフレーム間のスペクトル勾配、1つ以上のスペクトル帯での音声入力のエネルギーレベル(例えば、量、強度、振幅等)、ゼロ交差率、1つ以上のスペクトル帯での音声入力の信号対雑音比等の音声入力の多様な定量的な態様、または他の定量的な態様に基づいて判断してよい。これらの要因は、開始点/エンドポイントとして認定されるスピーチの中の中断が発生したかどうかを判断するために1つ以上の閾値と比較されてよい。係る閾値は、ユーザー入力に従って設定されることもあれば、デバイスによって設定されることもある。いくつかの実施形態では、開始点処理/エンドポインティングは、音声入力が少なくとも閾値持続時間の間、閾値を満たすエネルギーレベルを有すると判断するようにさらに構成されてよい。係る実施形態では、スピーチを含む可能性が相対的に低い突然のノイズに相当する比較的短い持続時間の高エネルギー音声入力は無視されてよい。開始点処理/エンドポインティングは、エネルギーレベルをエネルギーレベル閾値と(及び任意選択で閾値持続時間と)比較して、エネルギーレベル閾値が満たされるかどうかを判断してよい。
【0043】
特定の実施形態では、隠れマルコフモデル(HMM)またはガウス混合モデル(GMM)技術が音声入力をスピーチ記憶装置の1つ以上の音響モデルと比較するために適用されてよく、該音響モデルはスピーチ、(例えば環境雑音または背景雑音等の)ノイズ、または無音/非スピーチに対応するモデルを含んでよい。スピーチが入力音声データで開始/終了するのかどうかを判断するためにさらに他の技術が使用されてよい。
【0044】
多様な機械学習技術は、上述されたように発話の始まりまたは発話の終わりを判断するために使用されてよい。係る技術は、例えば、(ディープニューラルネットワーク及び/またはリカレントニューラルネットワーク等の)ニューラルネットワーク、推論エンジン、訓練された分類器等を含んでよい。訓練された分類器の例は、サポートベクターマシン(SVM)、ニューラルネットワーク、決定木、決定木と組み合わされたAdaBoost(「適応ブースト」の略)、ランダムフォレストを含む。例としてSVMに焦点を当てると、SVMは、データを分析し、データ内のパターンを認識し、一般的に分類及び回帰分析に使用される関連付けられた学習アルゴリズムを有する備えた教師付き学習モデルである。それぞれが2つのカテゴリの内の1つに属するとしてマークされる訓練例の集合を所与として、SVM学習アルゴリズムは、新しい例を一方のカテゴリまたは他方のカテゴリに割り当て、それを非確率的二項線形分類器にするモデルを構築する。より複雑なSVMモデルは2つ超のカテゴリを識別する訓練集合を用いて構築されてよく、SVMはどのカテゴリが入力データに最も類似するのかを決定する。SVMモデルは、別々のカテゴリの例が明確なギャップによって分けられるように写像されてよい。新しい例は次いでその同じ空間に写像され、新しい例がギャップのどちらの側に位置するのかに基づいてカテゴリに属すると予測される。分類器は、データがどのカテゴリに最も厳密に一致するかを示す「スコア」を発行してよい。スコアは、データが該カテゴリにどの程度厳密に一致するかの指標を提供してよい。
【0045】
機械学習技術を適用するためには、機械学習プロセス自体を訓練する必要がある。この場合、例えば第1のモデルまたは第2のモデルの内の1つ等の機械学習構成要素を訓練するには、訓練例のための「基礎的な事実」を確立することが必要である。機械学習では、用語「基礎的な事実」は教師付き学習技術のための訓練集合の分類の精度を指す。バックプロパゲーション、統計学的学習、教師付き学習、半教師付き学習、確率論的学習、または他の既知の技法を含む多様な技法がモデルを訓練するために使用され得る。多くの異なる訓練例の発話が訓練中に使用されてよい。
【0046】
サンプル発話音声の訓練例は、発話開始、発話終結、休止の存続/長さ等についての標識化された基礎的な事実とともに係る判断を下すために実行時での使用のために訓練機械学習モデルに対して使用されてよい。さらに、休止の長さ及び潜在的発話の意味内容を表すタグが、モデル訓練時の使用のために識別され、訓練データに挿入されてよい。実行時処理中、スピーチの中の休止の長さを表すモデル及び意味論的なタグは、例えば発話の終わりを決定する前にシステムがより多くのスピーチを待機すべきである可能性を決定するために使用されてもよい。決定に応じて、発声の始まりが確立される前に処理されてよい非スピーチのフレーム数が調整される。検出されたスピーチの前の非スピーチフレームの数は、デバイス/システムが発話の始まりまたは終わりをいつ決定するのかを決定してよい。
【0047】
休止を開始点/エンドポイントとして認定するのに十分な休止の長さは、話者の身元に依存することがある。システムが話者識別(当技術分野で既知である技術)を実行するように構成される場合、システムは話者を識別し、それに応じてエンドポイントを決定するのに十分な休止長さを調整してよい。また、システムは異なる話者の休止傾向を学習し、それに応じてそのエンドポインティング処理を調整するように構成されてもよい。例えば、システム訓練/登録中、発話間またはトピック間の話者の休止傾向が記録され、システムのエンドポインティング処理を訓練するために使用されてよい。また、係る傾向は実行時に記録され、システムをさらに調整するために使用されてもよい。休止長さは、話される言語に応じて変わる可能性がある(例えば会話型の英語の休止は会話型のスペイン語の休止とは異なる場合がある)ため、異なる休止長さが話される異なる言語に対して構成されてもよい。また、発話の始まり/終わりは、デバイスの音声及び/またはスピーチ処理構成要素によって決定されるスピーチのピッチ、韻律、音量、リズム、ストレス、イントネーション、ケプストラム等を含むスピーチの多様な特性によって決定されてもよい。例えば、声の上昇調または下降調は、新しい発話、コマンドの終わり等を示すことがある。システムは、発話がいつ終了するのか、したがってスピーチの終わりがいつシステムによってマークされるべきなのかを示す(話者の身元に結び付けられることもあれば、結び付けられないこともある)声の特性に対して訓練してよい。これらの技術は、言語モデル(複数可)の予想される休止が話者の身元に基づいてよいように、上述の言語モデルを修正/カスタマイズするために使用されてよい。
【0048】
上述の多様な技術を使用して、開始点処理/エンドポインティングは、その値が、問題の点(つまり開始点処理/エンドポインティングが発生する音声データ内の点)の位置が発話/コマンドの開始/終了を表す可能性に相当する信頼水準を決定してよい。信頼スコアは、マーカ、休止の長さ、話者の身元等を決定するために使用される技術等の要因に依存することがある。例えば、信頼水準が信頼水準閾値を満たす場合、検出された無音が十分である(例えば、スピーチの中の休止の長さが閾値を超える)こと、スピーチが音声入力に存在すること、及び発話の始まり/終わりがマークされ得ることが判断されてよい。しかしながら、信頼水準が信頼水準閾値を満たさない場合、システムは、音声入力にスピーチがないと判断してよい。
【0049】
ウェイクワード/開始点が検出されると、デバイス110はサーバ120に音声データを送信し始めてよい。サーバ120は、エンドポイントが検出されるまで音声データに対する音声処理を継続する。したがって、開始点からエンドポイントへの音声データは、発話のために音声処理を実行するときにシステム100によって検討される。
【0050】
従来、エンドポインティングのプロセスは、上述されたよう開始点処理のプロセスに類似している。しかしながら、エンドポインティングと開始点処理の1つの相違点は、エンドポインティング時に、システムがエンドポインティングされている発話の内容に関するなんらかの知識を有する点である。したがって、開始点処理は事前のスピーチがないときに発生することがあるが、エンドポインティングは、事前のスピーチ、つまりそのエンドポイントが検出中である発話のスピーチがあるときに発生する。
【0051】
さらに、現在のVADまたは単に休止長さに依存する他の技法の1つの欠点は、それらが発話中間休止と、それらが本当に発話の終わりを示す休止とを区別することが困難である点である。さらに、現在のシステムは、ノイズからスピーチを分離することが適切な休止検出に影響を与える雑音の多い環境では困難に遭遇することがある。
【0052】
提供されているのは、発話のエンドポイントを決定するときにスピーチの内容を利用する音声処理システムである。本システムは、エンドポイントを決定するときに、音響モデル及び言語モデルからの情報を使用し、スピーチの内容を検討する。このシステムは、現在のVADまたは単に休止長さに依存する他の技法を改良し、このようにして発話中間休止と発話休止の終わりとを区別するシステムの能力を改善する。エンドポイント検出器は、音声認識エンジン258によって決定される異なる仮説に基づいてエンドポイントを決定してよい。個々の仮説に基づいて、システムは、エンドポイントを宣言するために、複数のアクティブなスピーチ仮説にわたる予想休止長さ、及び実際の休止長さが平均予想休止長さに一致するかどうかを判断する。文末を含むアクティブな仮説を検討することにより、システムは、その内の予想と文末休止持続時間とをよりロバストに区別できる。
【0053】
エンドポインティング中の音響モデル及び言語モデルのデータの組込みを理解するために、一部の追加データが音声認識エンジン258の詳細な動作に関して以下に提供される。
【0054】
上述のように、音声認識の間、ASRモジュール250/音声認識エンジン258は、入信音声データ特徴ベクトルに一致する考えられる音素または他の音声単位を決定するために音響モデル253を活用してよい。可能性のある音素及び関係する状態/状態遷移、例えばHMM状態は、潜在的な音素のラティスを横切る経路に形成されてよい。各経路は、特徴ベクトルによって表される音声データに潜在的に一致する音素の進行を表す。1つの経路は、音素ごとに計算された認識スコアに応じて、1つ以上の他の経路と重複してよい。特定の確率は、状態から状態への各遷移に関連付けられる。累積経路スコアが経路ごとに計算されてもよい。特徴ベクトルに基づいてスコアを決定するこのプロセスは、音響モデリングと呼ばれることがある。ASR処理の一部としてスコアを結合するとき、スコアは所望の結合スコアに達するために互いに乗算(または他の方法で結合)されてよい、または確率が対数ドメインに変換されて処理を支援するために加算されてよい。
【0055】
また、音声認識エンジン258は言語モデルまたは文法に基づいて経路の分岐のスコアを計算してもよい。言語モデリングは、まとまりのある単語または文を形成するためにどの単語がともに使用される可能性が高いのかのスコアを決定することを含む。言語モデルの適用は、ASRモジュール250が音声データに含まれるスピーチを正しく解釈する可能性を改善してよい。例えば、「ハロー」のように聞こえる入力音声の場合、「HELO」、「HALO」、及び「YELO」の潜在的な音素経路を返す音響モデル処理は、話された言葉の中の各単語の言語コンテキストに基づいて、(単語「こんにちは」として解釈される)「HELO」、(単語「後光」として解釈される)「HALO」、及び(単語「黄色」として解釈される)「YELO」の認識スコアを調整するために言語モデルによって調整されてよい。
【0056】
図3は音響モデルと言語モデルとの関係を示す。図示されるように、経路302に含まれる処理された各音素は、AMからAMまでの音響モデルスコアと関連付けられる。次いで、言語モデルは経路304内の各単語を言語モデルスコアLMまたはLMと関連付けるために適用される。
【0057】
言語モデリングの一部として(またはASR処理の他の段階で)、音声認識エンジン258は、計算リソースを節約するために、言語モデルに従って低い認識スコアのためまたは他の理由のためのどちらかによって、話された言葉に一致する可能性がほとんどない低認識スコア状態または経路を切り取り、破棄してよい。係る切り取られた経路/仮説は非アクティブと見なされる。アクティブな仮説は、音声認識エンジン258によって依然として検討されている仮説である。したがって、アクティブな仮説は、それらがこれまで切り取りを回避してきたので、特定の閾値を上回る信頼スコアを有することがある。ASR処理が続行するにつれ、他の仮説が入信音声データ及び音響モデル処理に基づいてアクティブな検討から追加及び/または削除されるので、ASR処理の異なる点で異なる仮説が「アクティブ」と見なされてよい。さらに、ASR処理中、音声認識エンジン258は、以前に処理された発声部分に対して追加の処理パスを反復的に実行してよい。後のパスは、結果をさらに正確にして改善するために初期のパスの結果を組み込んでよい。現在処理中でシステムの潜在的な出力と見なされている経路は、このようにしてアクティブな仮説と見なされる。
【0058】
音声認識エンジン258は、潜在的な経路を音声認識結果を表すラティスに結合してよい。サンプルラティスは図4に示される。ラティス402は、音声認識結果の複数の潜在的な経路を示す。大きいノード間の経路は潜在的な単語(例えば「こんにちは」、「黄色」等)を表し、より小さいノード間の経路は潜在的な音素(例えば「H]、「E」、「L」、「O」、及び「Y」、「E」、「L」、「O])を表す。説明のために、個々の音素はラティスの最初の2つの単語についてだけ示される。ノード404とノード406との間の2つの経路は、2つの可能性のある単語選択肢、「ハローハウ」または「イエローナウ」を表す。(例えば潜在的な単語等の)ノード間の各経路点は認識スコアと関連付けられる。また、ラティスを横切る各経路には、認識スコアが割り当てられてもよい。認識スコアが、音響モデルスコア、言語モデルスコア、及び/または他の因子の組み合わせである最高の認識スコア経路は、音声認識エンジン258によって関連特徴ベクトルのASR結果として返されてよい。
【0059】
図5に示されるのは、ラティス402に沿った異なる潜在的な経路である。図5に示されるように、経路502は「ハローハウアー」を生じさせ、経路504は「イエローナウアー」を生じさせ、経路506は「イエローワウアワ」を生じさせる。分かるように、多くの係る経路は小さい例のラティス402でも可能である。係る経路602〜610の一例は図6に示される。音声処理を行うときに何千もの異なる経路、つまり仮説を検討することは音声認識プロセスにとって珍しいことではない。各仮説はスコアと関連付けられ、他の仮説と比して該仮説にランク付けしてよい。スコアは、入力音声データ、音響モデルからの処理、言語モデルの訓練等に基づいてよい。
【0060】
各仮説は、特定の仮説の発話の終わりを示す終了状態を含んでよい。終了状態は、例えばHMM状態等、特定の仮説が完了したことを示すために音響モデル及び/または言語モデルによって使用される状態である。システムがラティスを横切って潜在的な仮説を検討するにつれ、システムは、特定の仮説の信頼スコアに基づいて発話が終了状態に潜在的に達したかどうかを検討する。発話が終了状態に達した可能性は、このようにして終了状態に達した可能性のある特定の仮説の全体的な信頼に依存することがある。また、発話が終了状態に達した可能性はこのようにして、例えば仮説の個々の単語及びスピーチが続行するかどうかに依存することもある。例えば、「天気はどんなですか?」はそれ自体は完全な発話であってよいが、その後には「シアトルで」、「1月に」、「明日」等の追加の単語が続くことがある。これは図7に示される。図7に示されるすべての発話は、システムが単語「天気はどんなですか?」をすでに認識した後に前向きに検討中であってよい例の仮説である。多くの他の例も考えられる。追加の単語が認識されない場合、システムは終了状態に達したと判断し、702を最高スコアの発話として選択してよい。しかしながら、追加の単語が、システムに702を破棄させ、代わりに残りの仮説を検討させる可能性がある。したがって、システムがより多くの単語を処理するにつれて、個々の仮説はより可能性が高くなるまたはより可能性が低くなる(または完全に脱落して非アクティブ仮説になる)ことがある。逆に、休止が長く続くほど、システムはその時点での完全な仮説を選択し、まだ終了状態に達していない仮説を破棄する可能性が高くなる。従来の処理中では、文中休止と文末休止を区別することは困難である場合がある。例えば、「天気はどんなですか?」と話すとき、ユーザーは「シアトルの[休止]天気はどんなですか」または「明日の[休止]シアトルの[休止]天気はどんなですか」等のなんらかの休止後に追加情報を加えることがある。HMMベースのASRシステムでは、文末の確率は言語モデルの終了状態によってモデル化される。例えば、特定の仮説のエンドポイントを決定するために、音響モデルが特定数の非スピーチフレームを認識した場合、対応する仮説は、仮説の事前の単語が完全な発話を示すと仮定して終了状態を示すことがある。
【0061】
音声認識エンジン258を使用するエンドポイント検出器は、仮説情報を利用できる。以下に詳細に説明されるように、システムはラティスを通って進むにつれて、エンドポイントに達した可能性は、全体的な休止持続時間及びASRエンジンによって検討中であるアクティブな仮説を検討することによって決定されてよい。(例えば、特定のフレームがスピーチを含むのか、それともスピーチを含まないのかに関して特定の仮説が異なる結果として)異なる仮説が経験される異なる休止持続時間に対応することがあるので、複数のアクティブ仮説にわたって休止持続時間を検討することが望ましいことがある。
【0062】
ASRモジュール250は、スピーチを含まない、またはスピーチと見なされるのに十分な音声特徴を含まない受信音声フレームの数を追跡してよい。係るフレームは非スピーチフレーム、つまり休止フレームと見なされてよい。非スピーチフレームまたは休止フレームは、フレームに関連付けられた1つ以上の特徴ベクトル(複数可)からのデータを1つ以上の閾値と比較して、特徴ベクトル(複数可)が、処理されるスピーチに相当する可能性がある音声を表すのか、それともノイズ、無音、背景の会話(つまり処理されないスピーチ)等の他の音声等に相当する可能性がある音声を表すのかを判断することによって決定されてよい。したがって、非スピーチ/休止フレームは、それぞれのフレームの音声データがASR処理のための発話に相当しないと判断されるフレームである。機械学習技術(例えば本明細書に説明されている技術)は、モデルを訓練して入信音声データが非スピーチ/休止フレームにいつ一致するかを決定するために使用されてよい。非スピーチフレームの追跡は、例えばノード(複数可)/経路(複数可)が、例えば1つ以上の非スピーチ/休止フレーム等、非スピーチの特定の持続時間を表すアクティブな仮説の終わりに係るノード(複数可)/経路(複数可)を追加することによって音響モデル及び/または言語モデルによる処理に組み込まれてよい。係るノード(複数可)/経路(複数可)は、非スピーチノード(複数可)/経路(複数可)または休止ノード(複数可)/経路(複数可)と見なされてよい。係る休止ノード(複数可)/経路(複数可)は、休止または非スピーチを含んでいた音声の特定の持続時間を示すことがある。係るノード(複数可)/経路(複数可)は、意味論的なタグ、状態インジケータ、または他の非スピーチアイテム等の他の非スピーチを含んでもよい他のノード(複数可)/経路(複数可)から区別されてよい。
【0063】
代わりにまたはさらに、ASRモジュール250は、例えば仮説ごとに1つ、その仮説によって予測された直前の非スピーチフレームの数をカウントする1つ以上のカウンタを実行してよい。システムは、処理中に係るカウンタを参照して、どれほど多くの非スピーチが特定の仮説に関連付けられるのかを決定してよい。また、システムは、休止ノード(複数可)/経路(複数可)に遭遇したとき、特に、休止ノード(複数可)/経路(複数可)が継続中の休止の持続時間を追跡しない場合に係るカウンタを参照してもよい。カウンタはシステムに対して、休止がどれほど長く継続中であるのかを示す。処理のためにスピーチを含むフレームを予測すると、その特定の仮説に対するカウンタはリセットされてよい。さらに、仮説の終わりがもはや非スピーチに関連付けられた経路及び/またはノードでなくてよいように、音素経路/ノードが仮説に追加されてよい。一例として、第1の仮説が非スピーチフレームを予測する場合、第1の仮説に関連付けられたカウンタは1に設定されよい、及び/または経路/ノードは非スピーチを示す第1の仮説の終わりに追加されてよい。第1の仮説がさらに5つ非スピーチフレームを予測する場合、カウンタが最終的に6という値に達するまで、カウンタは毎回インクリメントされてよい。さらに、非スピーチ経路/非スピーチノード(つまり非スピーチを示す経路またはノード)は、さらに5つの非スピーチのフレームを示す第1の仮説の終わりに追加されてよい。第1の仮説が次いでスピーチを含むフレームを予測する場合、カウンタはゼロにリセットされてよく、音素経路/ノードが第1の仮説の終わりに追加されてよい。したがって、音声処理の任意の特定の点で、システムは特定のカウンタを見て、特定の点の直前の仮説によって予測された非スピーチの量を決定してよい。また、システムは仮説によって予測された非スピーチの量を決定するために、特定のポイントの直前の非スピーチの経路/ノードの数をカウントしてもよい。ASR処理の現在の点に対する単一の仮説の休止持続時間は、仮説が現在の点の直前の非スピーチ状態にあった連続フレームの数、または仮説が現在スピーチ状態にある場合はゼロとして計算されてもよい。特定の仮説について予測/確かめられた非スピーチを決定/推定するための他の方法も考えられる。さらに、(例えば、フレームを超える)非スピーチの持続時間のための他の測定基準も使用されてよい。
【0064】
システムは、仮説によって予測された非スピーチに基づいてエンドポイントを決定してよい。例えば、システムは、単一の仮説(例えば、トップスコア仮説)が非スピーチ(例えば、閾値を超えた一定量の非スピーチ)を示すと判断してよく、したがってシステムはエンドポイントを宣言してよい。しかしながら、多くの異なる仮説によって予測された非スピーチに基づいてエンドポインティングの決定を下し、それにより異常値仮説の潜在的影響を平滑化することが望ましいこともある。したがって、エンドポイント処理の決定を単一の仮説の単一の休止持続時間に基づかせる代わりに、システムは、複数の仮説を見て、それぞれの休止持続時間のそれぞれの仮説と関連付けられた信頼に基づいてそれぞれの休止持続時間に潜在的に重み付けすることによって計算される推定休止持続時間である予想休止持続時間を決定してよい。複数の仮説にわたる発話の予想休止持続時間を入手するために、システムはこのようにして各個々の仮説の確率またはスコアを検討し、仮説のそれぞれの確率を使用し、各仮説の休止持続時間に重み付けしてよい。システムは次いで、検討中の音声データの全体的な休止持続時間を決定するために重み付けされたすべての休止持続時間をグループ化してよい。この全体的な休止持続時間は、予想休止持続時間と呼ばれることがある。したがって、仮説に確率を割り当て、アクティブな仮説にわたる休止持続時間の加重平均を計算することによって、システムは予想休止持続時間を導き出してよい。システムは、現在、言語モデルの終了状態にある仮説に対してのみ予想休止持続時間を計算することによって発話の終わりでの予想休止持続時間をさらに定義してよい。以下で説明されるように、終了状態での仮説のための全体的な予想休止時持続時間及び/または予想休止持続時間が特定の閾値(複数可)を超えるとき、システムはエンドポイントを決定し、このようにしてシステムが音声処理を完了し、発話全体の認識結果を返してよい。予想休止持続時間、終了状態での仮説の予想休止持続時間、及び他のエンドポインティングの決定は、例えばASRモジュール250と通信するエンドポインティングモジュール890によって実行されてよい。
【0065】
【0066】
【0067】
【0068】
言語モデルのトップスコア仮説に基づいてエンドポインティングを決定するこの説明された方法は、入力された発話に対する言語モデルの動作を検討しつつ、エンドポイント検出の効果的な手法を提供する。
【0069】
しかしながら、この手法の1つの難点は、上記の手法が、どの仮説がトップスコア仮説と見なされるのかに左右され、トップスコア仮説が処理されたフレーム間で急速に変化する可能性がある点である。例えば、HMMベースのASRデコーダでは、言語モデルは、音声処理エンジン258の動作を通じて特定の仮説を補正することがある。さらに、音声処理エンジン258の最適化は、非平滑ステップ関数の形をとるラティスの特定の経路に沿った言語モデルスコアの分散をもたらすことがある。ノイズ等の他の要因は「トップ」仮説間の迅速な切替えの一因となることがある。トップスコア仮説である異なる仮説間の変動、及びエンドポインティングシステムに対する対応する複雑な事態を説明するために、システムは、以下に説明するように、予想される休止に基づくエンドポイント検出に達するために複数のアクティブ仮説を検討してよい。以下の予想される休止に基づくエンドポイント検出は、すべてのアクティブ仮説を使用するものとして説明されるが、アクティブ仮説の部分集合、例えば特定のスコア閾値を超えるアクティブな仮説、特定数のアクティブな仮説だけ等も検討されてよい。これらの変形形態は、以下では明示的に説明されるのではなく、以下に例示されるようなすべてのアクティブな仮説を検討する代わりに、説明された方法の一部として検討されるべきである。
【0070】
【0071】
【0072】
方程式6の発話の終わりDendでの予想休止持続時間は、終了状態でのアクティブな仮説全体での加重平均予想休止持続時間と見なされてよい。理解できるように、DとしてのD≧Dendはアクティブな仮説を含むが、Dendだけが終了状態にあるアクティブな仮説を含む。発話の途中の休止の場合、Dendという値は小さいままである。しかし、入力音声の休止の長さが長くなるにつれ、検討中のより多くのアクティブな仮説が終了状態に達し、Dendという値はDという値に収束し、このようにしてすべてのアクティブな仮説が終了状態になると、D=Dendに達する。
【0073】
【0074】
条件2は、最善の仮説に基づいたエンドポインティングを参照して上述されたものと同様に、エンドポインティングの安全弁として働く。音声認識エンジン258がエラーに遭遇する場合、システムは、エンドポインティングが絶対に起こらないループを経験したくない。したがって、安全閾値Tは、すべてのアクティブな仮説が閾値Tを超える場合にエンドポイントが宣言されるように構成されてよい。T、T’、及びTendという値は所望されるシステム性能に達するように構成できるが、Tが安全閾値としての機能を果たすためにTがT’及びTendよりも大きいことが理解できる。多様な閾値は、上述された機械学習技術を使用して開発訓練データ集合に対して最適化されてよい。さらに、上記の技術は既存の言語モデルとともに使用されてよいが、言語モデルの訓練中に、言語モデルは仮説の中の終了状態を慎重に選択するために最適化されてよい。例えば、既知のエンドポイントを有する発話の訓練集合が使用されてよく、言語モデルはエンドポイントを見逃すことのコスト関数を最小限に抑えるように訓練されてよい。他の係る訓練構成も可能である。
【0075】
上記の言語モデルに基づくエンドポインティング技術は、他のエンドポインティング技術、例えばVAD技術と組み合わされてよい。一例として、発話の始まりの処理中、システムは偽のエンドポインティングトリガを経験することがある。これを説明するために、音声処理の開始時(すなわち一定の持続時間)、システムはVAD技術を使用してエンドポイントがないかチェックし、該持続時間の経過後上述のような言語モデル技術に切り替えてよい。
【0076】
別のエンドポインティング機構は、上述の複数の機械学習技術を使用してよい。例えば、(SVM等の)分類器または他のモデルは、最善仮説の休止と(潜在的に終了状態にあるアクティブな仮説を含む)複数のアクティブな仮説にわたる予想休止持続時間の両方に基づいてエンドポイントを決定するように訓練されてよい。分類器は、音声データ、休止持続時間等を表すいくつかの異なる訓練発話/エンドポイントとともにいくつかのサポートベクトルを使用し、訓練されてよい。
【0077】
図8は、特定の音声受聴能力/処理能力を組み込んでよいローカルデバイス110を概念的に示すブロック図である。図9は、ASR処理及び/またはNLU処理を支援してよいリモートサーバ120等のリモートデバイスの例の構成要素を概念的に示すブロック図である。ASR用の1つのリモートデバイス、NLU用の1つのリモートデバイス等、複数の係るリモートデバイスがシステムに含まれてよい。動作中、これらのデバイスのそれぞれは、以下でさらに説明されるように、それぞれのデバイス(110/120)に常駐するコンピュータ可読命令及びコンピュータ実行可能命令を含んでよい。
【0078】
これらのデバイス(110/120)のそれぞれは、データ及びコンピュータ可読命令を処理するための中央演算処理装置(CPU)ならびにそれぞれのデバイスのデータ及び命令を記憶するためのメモリ(806/906)をそれぞれ含んでよい1つ以上のコントローラ/プロセッサ(804/904)を含んでよい。メモリ(806/906)は、揮発性ランダムアクセスメモリ(RAM)、不揮発性読出し専用メモリ(ROM)、不揮発性磁気抵抗(MRAM)、及び/または他のタイプのメモリを個々に含んでよい。また、各デバイスは、データ及びコントローラ/プロセッサ実行可能命令を記憶するためのデータ記憶装置構成要素(808/908)も含んでよい。各データ記憶装置構成要素は、磁気記憶、光学式記憶、ソリッドステート記憶等の1つ以上の不揮発性記憶装置タイプを個々に含んでよい。また、各デバイスは、それぞれの入出力装置インタフェース(802/902)を通して(例えばリムーバブルメモリカード、メモリキードライブ、ネットワーク化された記憶装置等の)リムーバブルメモリまたは外付け不揮発性メモリ及び/またはストレージに接続されてもよい。
【0079】
各デバイス(110/120)及びその多様な構成要素を動作させるためのコンピュータ命令は、実行時にメモリ(806/906)を一時「作業用」記憶装置として使用して、それぞれのデバイスのコントローラ(複数可)/プロセッサ(複数可)(804/904)によって実行されてよい。デバイスのコンピュータ命令は、不揮発性メモリ(806/906)、記憶装置(808/908)、または外付けデバイス(複数可)に非一過性で記憶されてよい。代わりに、実行可能命令のいくつかまたはすべては、ソフトウェアに加えて、またはソフトウェアの代わりにそれぞれのデバイスのハードウェアまたはファームウェアに埋め込まれてもよい。
【0080】
各デバイス(110/120)は入出力装置インタフェース(802/902)を含む。以下でさらに説明されるように、さまざまな構成要素は入出力装置インタフェースを通して接続されてよい。さらに、各デバイス(110/120)は、それぞれのデバイスの構成要素の間でデータを伝達するためのアドレスバス/データバス(824/924)を含んでよい。また、デバイス(110/120)の中の各構成要素は、バス(824/924)をわたって他の構成要素に接続されるのに加えて(接続される代わりに)他の構成要素に直接的に接続されてもよい。
【0081】
図8の音声制御機器110を参照すると、入出力装置インタフェース802は、例えばマイク818またはマイクアレイ、スピーカまたはスピーカ(複数可)816、無線通信をサポートする1つ以上のアンテナ814等のさまざまな構成要素に接続する。アンテナ(複数可)によって、入出力装置インタフェース802は、(WiFi等の)ワイヤレスローカルエリアネットワーク(WLAN)無線機、ブルートゥース、及び/または例えばロングタームエボリューション(LTE)ネットワーク、WiMAXネットワーク、3Gネットワーク等の無線通信ネットワークと通信できる無線機等のワイヤレスネットワーク無線機を介して1つ以上のネットワーク199に接続してよい。イーサネットなどの有線接続もサポートされてよい。ネットワーク(複数可)199を通して、音声処理システムはネットワーク化された環境全体に分散されてよい。
【0082】
デバイスはASRモジュール250を含んでよい。記憶装置808は、ASRモジュール250によって使用されるASRモデル252を含んでよい。ASRモジュール250は、デバイスのウェイクワード等の限られた数の単語を識別するように構成されることもあれば、はるかに大きい範囲の単語を認識するために拡張音声認識を実行するように構成されることもある。また、デバイスは特定のNLU機能を含むことがある限定されたまたは拡張されたNLUモジュール260を含むこともあれば、NLUモジュール260に関して上述されたような拡張されたNLU機能を含むこともある。また、記憶装置808はNLU知識ベース272及び/またはエンティティライブラリ282を含んでもよい。また、デバイスは上述の仮説を使用し、エンドポインティングを実行するためにエンドポインティングモジュール890を含んでもよい。また、デバイスは、話されたコマンドの追加の実行のためにコマンドプロセッサ290を含んでもよい。
【0083】
図9に示されるように、1つ以上のサーバ120はASRモジュール250、NLUモジュール260、エンドポインティングモジュール890、及び/またはコマンドプロセッサ290を含んでよい。コマンドプロセッサ290は、発話と関連付けられたコマンドを実行するように構成されてよい。
【0084】
上述のように、複数のデバイスが単一の音声処理システムで利用されてよい。係るマルチデバイスシステムでは、デバイスのそれぞれが音声処理の異なる態様を実行するための異なる構成要素を含んでよい。複数のデバイスは重複する構成要素を含んでよい。図8及び図9に示されるデバイス110及びサーバ120の構成要素は例示的であり、スタンドアロンデバイスとして配置されてよい、またはより大きなデバイスもしくはシステムの構成要素として全体もしくは一部として含まれてよい。
【0085】
図10に示されるように、複数のデバイス(110a〜110d、及び120a〜120c)はシステム100の構成要素を含んでよく、デバイスはネットワーク199を介して接続されてよい。ネットワーク199は、データネットワーク及び/または音声ネットワークを含む任意のタイプの通信ネットワークを表し、有線インフラ(例えばケーブル、CAT5、光ファイバケーブル等)、無線インフラ(例えばWiFi、RF、セルラー、マイクロ波、衛星、ブルートゥース等)、及び/または他の接続技術を使用し、実装されてよい。デバイスはこのようにして、有線接続または無線接続のどちらかを通してネットワーク199に接続されてよい。ネットワーク199はローカルネットワークもしくはプライベートネットワークを含むこともあれば、インターネット等の広域ネットワークを含むこともある。例えば、音声制御装置110a、タブレットコンピュータ110b、スマートフォン110c、及び冷蔵庫110dは、WiFiネットワーク接続またはセルラーネットワーク接続等を介して無線サービスプロバイダを通してネットワーク199に接続されてよい。他のデバイスは、ラップトップコンピュータ120a、デスクトップコンピュータ120b、及びサーバ120c等のネットワーク接続されたサポートデバイスとして含まれる。サポートデバイス120は、有線接続または無線接続を通してネットワーク199に接続してよい。ネットワーク化されたデバイス110は、例えば1つ以上のサーバ120cのASR250、NLU260等の同じデバイスまたはネットワーク199を介して接続された別のデバイスのASR、NLU,または他の構成要素により実行される処理を用いて1つ以上の内蔵もしくは接続されたマイク818または音声取込み装置を使用し、音声を取り込んでよい。
【0086】
本明細書に開示される概念は、例えば汎用コンピューティングシステム、音声処理システム、及び分散コンピューティング環境を含むいくつかの異なるデバイス及びコンピュータシステム内で適用されてよい。したがって、上述のモジュール、構成要素及び/またはプロセスは、本開示の範囲から逸脱することなく結合または再編成されてよい。上述の任意のモジュールの機能は、複数のモジュールの間で割り当てられることもあれば、異なるモジュールと結合されることもある。上述したように、モジュールのいずれかまたはすべては1つ以上の汎用マイクロプロセッサで、または1つ以上の特殊用途のデジタルシグナルプロセッサもしくは他の専用マイクロプロセッシングハードウェアで具現化されてよい。また、1つ以上のモジュールが処理装置によって実装されるソフトウェアで具現化されてもよい。さらに、モジュールの1つ以上がプロセスから完全に省略されてよい。
【0087】
本開示の上記の態様は例示的であることが意図されている。該態様は、開示の原則及び応用を説明するために選ばれたものであり、網羅的であることまたは本開示を制限することを意図するものではない。開示された態様の多くの修正形態及び変形形態が当業者にとって明らかである場合がある。コンピュータ及び音声処理の分野の当業者は、本明細書に説明された構成要素及びプロセスステップが他の構成要素もしくはステップ、または構成要素もしくはステップの組合せと交換可能であり、依然として本開示の利点及び優位点を達成することを認識すべきである。さらに、本開示が、本明細書に開示される特定の詳細及びステップの一部またはすべてなしで実施され得ることが当業者に明らかであるべきである。
【0088】
開示されたシステムの態様は、コンピュータ方法として、またはメモリデバイスもしくは非一過性のコンピュータ可読記憶媒体等の製造品として実施されてよい。コンピュータ可読記憶媒体は、コンピュータにより読取り可能であってよく、コンピュータまたは他のデバイスに本開示に説明されるプロセスを実行させるための命令を含んでよい。コンピュータ可読記憶媒体は、揮発性コンピュータメモリ、不揮発性コンピュータメモリ、ハードドライブ、ソリッドステートメモリ、フラッシュドライブ、リムーバブルディスク、及び/または他の媒体により実装されてよい。さらに、モジュール及びエンジンの1つ以上の構成要素は、とりわけアナログフィルタ及び/またはデジタルフィルタ(例えばデジタルシグナルプロセッサ(DSP)に対するファームウェアとして構成されたフィルタ)を含む音響フロントエンド256等のファームウェアまたはハードウェアとして実装されてよい。
【0089】
例えばとりわけ「できる」、「できるだろう」、「可能性がある」、「してよい」、「例えば」等の本明細書で使用される条件言語は、特に明記しない限り、または使用される文脈の中で他の意味で理解されない限り、特定の実施形態が特定の特徴、要素、及び/またはステップを含み、一方他の実施形態は特定の特徴、要素、及び/またはステップを含まないことを概して伝えることを意図している。したがって、係る条件言語は、特徴、要素、及び/もしくはステップが1つ以上の実施形態にいずれにせよ必要とされること、または1つ以上の実施形態が必ず、著者のインプットまたはプロンプトありでまたはなしで、これらの特徴、要素、及び/もしくはステップが含まれるのか、それとも任意の特定の実施形態で実行されるべきかを決定するための論理を含むことを概して暗示することを意図していない。用語「comprising(含む、備える)」、「including(含む)」、「有する」等は同義語であり、オープンエンド方式で包括的に使用され、追加の要素、特徴、行為、動作等を排除しない。また、用語「または」は、使用されるとき、例えば要素のリストを接続するために、用語「または」がリスト中の要素の1つ、いくつか、またはすべてを意味するようにその包括的な意味で(及びその排他的な意味ではなく)使用される。
【0090】
句「X、Y、及びZの少なくとも1つ」等の接続的言語は、特に明記しない限り、項目、用語等がX、Y、もしくはZ、またはその組合せのどちらかであってよいことを伝えるために一般的に使用される文脈で理解される。したがって、係る接続的言語は概して、特定の実施形態がXの少なくとも1つ、Yの少なくとも1つ、及びZの少なくとも1つがそれぞれ存在することを必要とすることを暗示することを意図していない。
【0091】
本開示において使用されるように、用語「a」、または「one」は、特に明記しない限り1つ以上の項目を含んでもよい。さらに、句「に基づき」は、特に明記しない限り「少なくとも部分的に基づき」を意味することが意図される。
【0092】
条項
1.自動音声認識(ASR)処理中にエンドポイントを決定するためのコンピュータ実装方法であって、
スピーチを表す音声データを受信することと、
前記音声データに対してASR処理を行って複数の仮説を決定することと、
前記複数の仮説のそれぞれについて、前記それぞれの仮説が前記音声データに対応するそれぞれの確率を決定することと、
前記複数の仮説のそれぞれについて、第1の点の直前の非スピーチ音声フレームのそれぞれの数を決定することと、
前記複数の仮説のそれぞれについて、それぞれの仮説の前記確率を前記それぞれの仮説の非スピーチ音声フレームの前記数で乗算することによって重み付けされた休止持続時間を決定することと、
前記複数の仮説のそれぞれについて前記重み付けされた休止持続時間を合計することによって累積的な予想休止持続時間を決定することと、
前記予想休止持続時間が閾値を超えると判断することと、
前記第1の点を可能性のあるエンドポイントに対応するとして指定することと、を含む前記コンピュータ実装方法。
【0093】
2.第2の複数の仮説を決定することであって、
前記第2の複数の仮説が、前記複数の仮説の部分集合であり、
前記第2の複数の仮説のそれぞれが、それぞれの終了状態にある、前記決定することと、
前記第2の複数の仮説のそれぞれについて前記重み付けされた休止持続時間を合計することによって第2の予想休止持続時間を決定することと、
前記第2の予想休止持続時間が第2の閾値を超えると判断することと、をさらに含む、条項1に記載のコンピュータ実装方法。
【0094】
3.それぞれの仮説ごとに非スピーチ音声フレームの前記数を決定することが、仮説ごとに、前記第1の点の直前の連続する非スピーチノードの数を決定することを含む、条項1に記載のコンピュータ実装方法。
【0095】
4.それぞれの仮説ごとに非スピーチ音声フレームの前記数を決定することが、仮説ごとに、前記第1の点の直前の連続する非スピーチフレームの数のカウンタを維持することを含む、条項1に記載のコンピュータ実装方法。
【0096】
5.コンピュータ実装方法であって、
少なくとも1つの仮説を決定するために音声データに対して音声認識処理を実行することと、
前記少なくとも1つの仮説の休止を決定することであって、前記休止が前記音声データの第1の点の直前に位置する、前記決定することと、
前記スピーチのエンドポイントが前記音声データの前記第1の点で発生すると判断することと、を含む前記コンピュータ実装方法。
【0097】
6.前記少なくとも1つの仮説が、複数の仮説の中から最高の確率を有するトップスコア仮説を含む、条項5に記載のコンピュータ実装方法。
【0098】
7.前記少なくとも1つの仮説が複数の仮説を含み、前記方法がさらに、
前記複数の仮説のそれぞれについて、前記第1の点の直前のそれぞれの休止持続時間を決定することと、
前記複数の仮説のそれぞれについて前記休止持続時間を合計することによって前記第1の点に対応する前記音声データの予想休止持続時間を決定することと、
前記予想休止持続時間を閾値と比較することと、をさらに含む、条項5に記載のコンピュータ実装方法。
【0099】
8.前記複数の仮説のそれぞれについて、各それぞれの仮説に対応する確率を決定することと、
前記予想休止持続時間を決定する前に、各休止持続時間を前記対応する仮説の前記確率で乗算することと、をさらに含む、条項7に記載のコンピュータ実装方法。
【0100】
9.第2の複数の仮説を決定することであって、
前記第2の複数の仮説が、前記複数の仮説の部分集合であり、
前記第2の複数の仮説のそれぞれが、それぞれの終了状態にある、前記決定することと、
前記第2の複数の仮説のそれぞれについて前記休止持続時間を合計することによって第2の予想休止持続時間を決定することと、
前記第2の予想休止持続時間が第2の閾値を超えると判断することと、をさらに含む、条項8に記載のコンピュータ実装方法。
【0101】
10.前記休止を決定することが、前記第1の点の直前の連続する非スピーチフレームの数を決定することを含む、条項5に記載のコンピュータ実装方法。
【0102】
11.非スピーチ音声フレームの前記数を決定することが、仮説ごとに、前記第1の点の直前の連続する非スピーチフレームの数のカウンタを維持することを含む、条項10に記載のコンピュータ実装方法。
【0103】
12.非スピーチ音声フレームの前記数を決定することが、前記第1の点の直前の連続する非スピーチノードの数を決定することを含む、条項10に記載のコンピュータ実装方法。
【0104】
13.コンピューティングシステムであって、
少なくとも1つのプロセッサと、
前記システムに、
少なくとも1つの仮説を決定するために音声データに対して音声認識処理を実行することと、
前記少なくとも1つの仮説の休止を決定することであって、前記休止が前記音声データの第1の点の直前に位置する、前記決定することと、
前記スピーチのエンドポイントが前記音声データの前記第1の点で発生すると判断することと、を含むアクションのセットを実行させるために前記少なくとも1つのプロセッサによって実行するよう作動する命令を含むメモリと、を備える前記コンピューティングシステム。
【0105】
14.前記少なくとも1つの仮説が、複数の仮説の中から最高の確率を有するトップスコア仮説を備える、条項13に記載のコンピューティングシステム。
【0106】
15.前記少なくとも1つの仮説が複数の仮説を含み、アクションの前記セットがさらに、
前記複数の仮説のそれぞれについて、前記第1の点の直前のそれぞれの休止持続時間を決定することと、
前記複数の仮説のそれぞれについて前記休止持続時間を合計することによって前記第1の点に対応する前記音声データの予想休止持続時間を決定することと、
前記予想休止持続時間を閾値と比較することと、をさらに含む、条項13に記載のコンピューティングシステム。
【0107】
16.アクションの前記セットが、
前記複数の仮説のそれぞれについて、各それぞれの仮説に対応する確率を決定することと、
前記予想休止持続時間を決定する前に、各休止持続時間を前記対応する仮説の前記確率で乗算することと、をさらに含む、条項13に記載のコンピューティングシステム。
【0108】
17.アクションの前記セットが、
第2の複数の仮説を決定することであって、
前記第2の複数の仮説が、前記複数の仮説の部分集合であり、
前記第2の複数の仮説のそれぞれが、それぞれの終了状態にある、前記決定することと、
前記第2の複数の仮説のそれぞれについて前記休止持続時間を合計することによって第2の予想休止持続時間を決定することと、
前記第2の予想休止持続時間が第2の閾値を超えると判断することと、をさらに含む、条項16に記載のコンピューティングシステム。
【0109】
18.前記休止を決定することが、前記第1の点の直前の連続する非スピーチフレームの数を決定することを含む、条項13に記載のコンピューティングシステム。
【0110】
19.非スピーチ音声フレームの前記数を決定することが、前記第1の点の直前の連続する非スピーチフレームの数のカウンタを維持することを含む、条項18に記載のコンピューティングシステム。
【0111】
20.非スピーチ音声フレームの前記数を決定することが、前記第1の点の直前の連続する非スピーチノードの数を決定することを含む、条項18に記載のコンピューティングシステム。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10