(58)【調査した分野】(Int.Cl.,DB名)
再帰型ニューラルネットワークは、複数の特徴ベクトルを入力に対応し、前記複数の特徴ベクトルに基づいて前記基準特徴ベクトルを決定する、請求項2に記載のコンピュータ実装方法。
前記基準特徴ベクトルが前記第1の話者からの前記第1音声に対応するか否かに対応する第1のスコアを決定する命令を、前記メモリが有する請求項7に記載のコンピューティングシステム。
再帰型ニューラルネットワークは、複数の特徴ベクトルを入力に対応し、前記複数の特徴ベクトルに基づいて前記基準特徴ベクトルを決定する、請求項7から請求項10のいずれか一項に記載のコンピューティングシステム。
前記第1オーディオデータがウェイクワードに対応すると決定する命令を、前記メモリが有する請求項7から請求項11のいずれか一項に記載のコンピューティングシステム。
【発明を実施するための形態】
【0006】
自動音声認識(ASR)は、コンピュータ科学、人工知能、及び言語学の一分野であり、音声に対応付けられたオーディオデータをその音声を表すテキストに変換することに関するものである。同様に、自然言語理解(NLU)は、コンピュータ科学、人工知能、及び言語学の一分野であり、自然言語を含むテキスト入力からコンピュータが意味を得ることを可能にすることに関するものである。ASR及びNLUは、音声処理システムの一部として一緒に用いられることが多い。
【0007】
ASR及びNLUは計算コストが高い可能性がある。すなわち、ASR及びNLUの処理を妥当な時間内で行うためには著しいコンピューティング資源が必要となる場合がある。このため、音声処理を行うときに分散コンピューティング環境を用いる場合がある。典型的な分散環境は、話しているユーザから音を取り込んで、その音をオーディオ信号に変換するように構成された1つ以上のマイクロフォンを有するローカルデバイスを伴っていてもよい。したがって、オーディオを含む機械的な音波をオーディオ信号/データに変換してもよい。これは、オーディオを表すデータであり、たとえばパルス符号変調(PCM)オーディオデータである。オーディオ信号/データを次に、下流のリモートデバイスに送ってさらなる処理を行ってもよい。たとえばオーディオ信号を最終的なコマンドに変換することである。次にコマンドを、コマンド自体に応じてリモート及びローカルデバイスを組み合わせて実行してもよい。
【0008】
ある状況では、音声コマンドが話される環境は混雑しているか、音が大きいか、またはそうでなければ騒音が多い場合があり、音声処理の妨害になり得るものである。たとえば、ユーザが、システムが実行するコマンドを含む発声を話す場合があるが、ユーザの発声を取り込むデバイスは、他の個人も話をしている環境にある場合がある。システムが、コマンドを話したユーザ(すなわち、所望の話者)に対応するオーディオを特定する状況で問題があり得るため、音声認識を、システムにコマンドを話していない他の人からの音声にではなくその所望のオーディオに対して行ってもよい。
【0009】
所望のユーザからの音声をユーザとのコマンド相互作用の間に特定するシステムの能力を、待ち時間に著しく影響を与えないが、それでもやはりシステムが所望の音声を非所望の音声から区別できるあるやり方で向上させるシステム及び方法が提供される。
【0010】
図1に示すのは、本開示の実施形態による改善された所望の話者の検出を用いて音声認識を実行するように構成されたシステム100である。
図1及び下方の図/説明はシステムの動作を特定の順番で例示しているが、記載したステップは、本開示の意図から逸脱することなく、異なる順番で行ってもよい(ならびにあるステップを取り除くかまたは加えてもよい)。
図1に示すように、システム100は、所望のユーザ(複数可)10にローカルな1つ以上のデバイス110、ならびに1つ以上のネットワーク199、及びネットワーク(複数可)199を介してデバイス110に接続された1つ以上のサーバ120を含んでいてもよい。サーバ(複数可)120(1つ以上の異なる物理デバイスであってもよい)は、ここで説明するように、従来の音声処理(たとえばASR、NLU、クエリ解析など)を行うことができてもよい。単一のサーバによってすべての音声処理を行うことができてもよいし、または複数のサーバ(複数可)120を組み合わせて音声処理を実行してもよい。さらに、サーバ(複数可)120を、あるコマンドを実行する(たとえばユーザ10が話した照会に答える)ように構成してもよい。加えて、ある音声検出またはコマンド実行機能をデバイス110が行ってもよい。
【0011】
図1に示すように、デバイス110が、所望のユーザ10から、話された発声に対応するオーディオ入力11を受け取る。入力オーディオ11はまた、デバイス110にローカルな他の人15からの音声または他のノイズを含んでいてもよい。デバイス110は、オーディオ11をオーディオデータ111に変換して、オーディオデータをサーバ(複数可)120に送ってもよい。そしてサーバ(複数可)120は、話されたコマンドに対応するオーディオデータ111をネットワーク199を介して受け取ってもよい(130)。サーバ120は、入力オーディオデータ111の所望の話者に対応する基準オーディオデータを決定する(132)。基準オーディオデータは入力オーディオデータ111の第1の部分であってもよいし、または後述するように他の基準オーディオデータであってもよい。サーバ120は、基準オーディオデータをエンコードして(134)、エンコードされた基準オーディオデータを得る。基準オーディオデータを前もって入手できた場合には、これをオーディオデータ111を受け取る前に行ってもよい。基準オーディオデータをオーディオデータ111から取った場合には、オーディオデータ111を受け取った後にエンコーディングを行ってもよい。種々のエンコーディング技術(
図9に関連して後述するものを含む)を用いてよい。サーバ120は次に、さらなる入力オーディオデータ(たとえば、さらなるオーディオフレームに対応するオーディオ特徴ベクトル)を、エンコードされた基準オーディオデータを用いて処理する(136)。オーディオフレームは、特定のオーディオデータセット(たとえば、25msに値するPCMまたは同様のオーディオデータ)に対応する。たとえば、サーバ120は、分類器または他のトレーニングされた機械学習モデルを用いて、入力オーディオ特徴ベクトルが基準オーディオデータ中の音声と同じ話者からの音声を表すか否かの判定を、エンコードされた基準オーディオデータを用いて行ってもよい。サーバは次に、各オーディオ特徴ベクトル(及び/または対応するオーディオフレーム)を、所望の音声、非所望の音声、または非音声を含んでいるとラベル付けする(138)。このラベル付けは、各オーディオ特徴ベクトル/入力オーディオフレームに対して、特定のオーディオフレームが所望の音声に対応する第1の確率、特定のオーディオフレームが非所望の音声に対応する第2の確率、及び特定のオーディオフレームが非音声に対応する第3の確率を割り当てることを含んでいてもよい。プロセスを各オーディオ特徴ベクトルに対して繰り返してもよい。システムは次に、エンコードされた基準オーディオデータ及び/または個々のフレームラベル/確率を用いて、入力オーディオフレーム(または対応するオーディオ特徴ベクトル)に対してASR処理を実行する(140)。これによって、システムがそのASR処理を、所望の話者10に対応する入力オーディオ部分にフォーカスすることができてもよい。システムは次に、ASR結果を判定して(142)、ASR結果に対してNLU(144)を実行して、コマンドを実行する(146)。これは、所望のユーザ10の話された発声に対応しているはずである。
【0012】
図2の音声処理システム全体の説明に続いて、本改善を用いて音声認識を行うことのさらなる詳細について後述する。
図2は、話された発声が従来どのように処理されているかの概念図であり、システムは、ユーザが話したコマンド(たとえばウェイクワードに続いてもよい話されたコマンド)を取り込んで実行することができる。例示した種々のコンポーネントを、同じ物理デバイス上に配置してもよいし、または異なる物理デバイス上に配置してもよい。
図2に例示した種々のコンポーネント間の通信を直接行ってもよいし、またはネットワーク199を介して行ってもよい。オーディオ取り込みコンポーネント(たとえば、デバイス110のマイクロフォン)は、話された発声に対応するオーディオ11を取り込む。デバイス110は、ウェイクワード検出モジュール220を用いて、次にオーディオ(またはオーディオに対応するオーディオデータ)を処理して、キーワード(たとえばウェイクワード)がオーディオ中に検出されたか否かを判定する。ウェイクワードを検出した後に、デバイスは、発声に対応するオーディオデータ111を、ASRモジュール250を含むサーバ120に送る。オーディオデータ111を、デバイス110上に配置された音響フロントエンド(AFE)256から、送信前に出力してもよい。またはオーディオデータ111は、リモートAFE256(たとえばASRモジュール250とともに配置されたAFE256)によって処理するための異なる形式であってもよい。
【0013】
ウェイクワード検出モジュール220は、デバイスの他のコンポーネント(たとえば、マイクロフォン(図示せず))とともに動作して、オーディオ11内のキーワードを検出する。たとえば、デバイス110は、オーディオ11をオーディオデータに変換し、オーディオデータをウェイクワード検出モジュール220を用いて処理して、音声が検出されたか否かを判定し、そうである場合には、音声を含むオーディオデータが、オーディオ署名及び/または特定のキーワードに対応するモデルに一致するか否かを判定してもよい。
【0014】
デバイス110は、オーディオデータが音声を含むか否かを判定する種々の技術を用いてもよい。いくつかの実施形態では、ボイス活動検出器222が実装するボイス活動検出(VAD)技術を適用してもよい。このような技術によって、音声がオーディオ入力に存在するか否かを、オーディオ入力の種々の量的側面に基づいて判定してもよい。たとえば、オーディオ入力の1つ以上のフレーム間のスペクトル傾斜、1つ以上のスペクトルバンドにおけるオーディオ入力のエネルギーレベル、1つ以上のスペクトルバンドにおけるオーディオ入力の信号対雑音比、または他の量的側面である。他の実施形態では、デバイス110は、バックグラウンドノイズから音声を区別するように構成された限定された分類器を実装していてもよい。分類器を、線形分類器、サポートベクターマシン、及び決定木などの技術によって実装してもよい。さらに他の実施形態では、隠れマルコフモデル(HMM)または混合ガウスモデル(GMM)技術を適用して、オーディオ入力を音声記憶内の1つ以上の音響モデルと比較してもよい。音響モデルは、音声、ノイズ(たとえば環境ノイズまたはバックグラウンドノイズ)、または沈黙に対応するモデルを含んでいてもよい。さらに他の技術を用いて、音声がオーディオ入力に存在するか否かを判定してもよい。
【0015】
デバイス110が受け取ったオーディオ中にボイス活動が検出された時点で(または音声検出とは別個に)、デバイス110はウェイクワード検出モジュール220を用いてウェイクワード検出を実行して、ユーザがデバイス110にコマンドを話すことを意図したときを判定してもよい。この処理をキーワード検出と言ってもよく、ウェイクワードがキーワードの具体例である。具体的には、キーワード検出は典型的に、言語分析、テキスト分析、または意味解析を行わずに行う。その代わりに、入力オーディオ(またはオーディオデータ)を分析して、オーディオの特定の特徴が、事前構成された音響波形、オーディオ署名、または他のデータと一致するか否かを判定して、入力オーディオが、キーワードに対応する記憶オーディオデータと「一致する」か否かを判定する。
【0016】
したがって、ウェイクワード検出モジュール220は、オーディオデータを、記憶したモデルまたはデータと比較して、ウェイクワードを検出してもよい。ウェイクワード検出に対するアプローチの1つは、一般的な大語彙連続音声認識(LVCSR)システムを適用してオーディオ信号をデコードし、ウェイクワード検索を結果として得られる格子または混乱ネットワーク内で行うことである。LVCSRデコーディングは、比較的高いコンピュータ資源を必要としてもよい。ウェイクワード発見のための別のアプローチでは、各キーウェイクワード単語及び非ウェイクワード音声信号のそれぞれに対して隠れマルコフモデル(HMM)を構築する。非ウェイクワード音声は、他の話し単語、バックグラウンドノイズなどを含む。非ウェイクワード音声特性をモデリングするために構築された1つ以上のHMM(フィラーモデルと言われる)が存在する可能性がある。ビタビデコーディングを用いてデコーディンググラフ内の最良の経路を検索し、デコーディング出力をさらに処理してキーワード存在に対する判定を行う。このアプローチを、ハイブリッドDNN−HMMデコーディングフレームワークを取り入れることによって識別情報を含むように拡張することができる。別の実施形態では、ウェイクワード発見システムをディープニューラルネットワーク(DNN)/再帰型ニューラルネットワーク(RNN)構造上に、HMMを含めずに直接構築してもよい。このようなシステムが、コンテキスト情報を伴うウェイクワードの後側を、DNNに対するコンテキストウィンドウ内にフレームを積み重ねるかまたはRNNを用いることによって推定してもよい。後続の後側閾値調整または平滑化を適用して決定を図る。ウェイクワードを検出するための他の技術(たとえば当該技術分野で知られているもの)を用いてもよい。
【0017】
ウェイクワードが検出された時点で、ローカルデバイス110は、「ウェイク」して、入力オーディオ11に対応するオーディオデータ111をサーバ(複数可)120に、音声処理用に送信することを始めてもよい。そのオーディオに対応するオーディオデータをサーバ120に送って受信側デバイスに配信してもよいし、またはサーバに送って音声処理して、含まれる音声を解釈してもよい(ボイス通信を可能にするために及び/または音声内のコマンドを実行するために)。オーディオデータ111はウェイクワードに対応するデータを含んでいてもよいし、またはウェイクワードに対応するオーディオデータの部分を、送る前にローカルデバイス110によって取り除いてもよい。
【0018】
サーバ(複数可)120によって受け取ったら、システム100は処理すべき音声の開始と終了を判定するために種々の技術を用いてもよい。説明の目的上、システム100において、音声の始点はデバイス110によって決定されると記載し、音声の終点はサーバ120によって決定される(デバイス110から対応するオーディオデータを受け取った後で)と記載するが、異なるコンポーネントが、本開示から逸脱することなく始点決め/終点決めを実行してもよい。
【0019】
オーディオコマンドの開始または終了を判定するために、多くの技術を用いてもよい。一実施形態では、システムは話し単語の休止を判定してもよく、またこのような休止を会話の潜在的な中断と解釈してもよい。したがって、ここでの説明は終点の判定または表明に言及する場合があるが、システムが行うことは、ここで説明する種々の検討に基づいて、話されたコマンドが終了した(すなわち、終点に達した)という推定である。会話の中断を発声間の中断と考えてもよく、したがって発声の開始(始点)または終了(終点)と考えてもよい。また発声の開始/終了を、音声/ボイス特性を用いて検出してもよい。また他の技術を用いて、発声の開始(始点決めとも言われる)または発声の終了(終点決め)を判定してもよい。始点決め/終点決めは、たとえば、沈黙/非音声オーディオフレームの数(たとえば、連続する沈黙/非音声フレームの数)に基づいてもよい。たとえば、いくつかのシステムが、エネルギーベースまたは音響モデルベースのVAD技術を用いてもよい。このような技術によって、音声がオーディオ入力に存在するか否かを、オーディオ入力の種々の量的側面に基づいて判定してもよい。たとえば、オーディオ入力の1つ以上のフレーム間のスペクトル傾斜、1つ以上のスペクトルバンドにおけるオーディオ入力のエネルギーレベル(たとえばボリューム、強度、振幅など)、ゼロ交差率、1つ以上のスペクトルバンドにおけるオーディオ入力の信号対雑音比、または他の量的側面である。これらの因子を1つ以上の閾値と比較して、始点/終点として適格な音声の中断が生じたか否かを判定してもよい。このような閾値をユーザ入力に従って設定してもよいし、またはデバイスによって設定してもよい。いくつかの実施形態では、始点決め/終点決めをさらに、少なくとも時間閾値の間、閾値を満たすエネルギーレベルをオーディオ入力が有すると判定するように構成してもよい。このような実施形態では、比較的短い時間の高エネルギーのオーディオ入力(音声を含むことが比較的起こりそうもない突然のノイズに対応していてもよい)を無視してもよい。始点決め/終点決めは、エネルギーレベルをエネルギーレベル閾値(及び任意的に時間閾値)と比較して、エネルギーレベル閾値が満足されているか否かを判定してもよい。
【0020】
ある実施形態では、HMMまたはGMM技術を適用してオーディオ入力を音声記憶内の1つ以上の音響モデルと比較してもよい。音響モデルは、音声、ノイズ(たとえば環境ノイズまたはバックグラウンドノイズ)、または沈黙/非音声に対応するモデルを含んでいてもよい。非音声フレームは必ずしも完全な沈黙を表していなくてもよい(たとえば、あるノイズが依然としてオーディオ中に存在していてもよい)が、フレームは音声に特有の音響特性が無くてもよく、したがって非音声フレームであるとみなしてもよい。さらに他の技術を用いて、入力オーディオデータ内で音声が開始/終了したか否かを判定してもよい。
【0021】
休止を始点/終点とみなすのに十分な休止の長さは、話者の身元に依存してもよい。システムが話者識別(当該技術分野で知られた技術)を実行するように構成されている場合、システムは話者を特定して、終点をそれ相応に決定するのに十分な休止長さを調整してもよい。またシステムを、異なる話者の休止傾向を学習して、その終点決め処理をそれ相応に調整するように構成してもよい。たとえば、システムトレーニング/登録の間、発声間またはトピック間の話者の休止傾向を記録して、システムの終点決め処理をトレーニングするために用いてもよい。またこのような傾向を実行時に記録して、システムをさらに調整するために用いてもよい。また異なる休止長さを異なる話し言葉に対して構成してもよい。なぜならば、休止長さは話し言葉に応じて変化してもよいからである(たとえば、会話英語での休止は会話スペイン語での休止と異なっていてもよい)。また発声の開始/終了を音声の種々の特性によって判定してもよい。たとえば、音声のピッチ、韻律、ボリューム、リズム、応力、イントネーション、ケプストラムなどであり、これらはデバイスのオーディオ及び/または音声処理コンポーネントによって判定してもよい。たとえば、ボイスの音色が上げるかまたは下がると、新しい発声、コマンドの終了などを示してもよい。システムを、いつ発声が終了するか、したがって音声の終了をいつシステムがマーキングすべきかを示すボイス特性(話者身元に結びつけることができてもよいしできなくてもよい)についてトレーニングしてもよい。これらの技術を用いて、前述した言語モデルを変更/カスタマイズして、言語モデル(複数可)における予想される休止が話者の身元に基づき得るようにしてもよい。
【0022】
前述した技術の変形を用いて、始点決め/終点決めは信頼レベルを決定してもよい。信頼レベルの値は、当該の点(すなわち、始点決め/終点決めが行われるオーディオデータ中の点)の位置が発声/コマンドの開始/終了を表す可能性に対応する。信頼スコアは、マーカー、休止の長さ、話者身元などを決定するために用いる技術などの因子に依存してもよい。たとえば、信頼レベルが信頼レベル閾値を満たす場合、検出された沈黙が十分である(たとえば、音声内の休止の長さが閾値を超える)こと、音声がオーディオ入力内に存在すること、及び発声の開始/終了をマーキングしてもよいことを判定してもよい。しかし、信頼レベルが信頼レベルを満たさない場合、オーディオ入力内に音声がないとシステムは判定してもよい。
【0023】
ウェイクワード/始点が検出された時点で、デバイス110はオーディオデータをサーバ120に送ることを開始してもよい。サーバ120は、終点が検出されるまでオーディオデータに対して音声処理を続ける。したがって、発声に対する音声処理を行うときに、始点から終点までのオーディオデータがシステム100によって考慮される。
【0024】
ある構成では、終点決めに対するプロセスは、前述したような始点決めに対するプロセスと同様である。しかし、終点決めと始点決めとの間の違いの1つは、終点決めの間、終点決めされている発声の内容についてシステムが多少知っていることである。したがって、始点決めはしばしば、事前の音声がないときに行われるが、終点決めは事前の音声(すなわち、終点が検出されている発声の音声)があるときに行われる。
【0025】
さらに、単に休止長さに基づくあるVADまたは他の技術に対する欠点の1つは、中間の発声休止間を区別することと、発声の終了を真に示す休止間を区別することとに問題があることである。さらに、あるシステムでは、ノイズから音声を分離すると適切な休止検出に影響が出る騒音が多い環境で問題に遭遇する場合がある。
【0026】
音声に対応するオーディオデータが特定された時点で、ASRモジュール250はオーディオデータ111をテキストに変換してもよい。ASRは、オーディオデータを、オーディオデータに含まれる音声の単語を表すテキストデータに書き写す。テキストデータを次に、他のコンポーネントによって種々の目的のために用いてもよい。たとえば、システムコマンドを実行すること、データを入力することなどである。オーディオデータ内の話された発声を、ASRを実行するように構成されたプロセッサに入力し、そして、発声とASRモデル記憶装置252c内に記憶された予め設定された言語モデル254との間の類似性に基づいて、発声を解釈する。たとえば、ASR処理は、入力オーディオデータを、音に対するモデル(たとえば、部分語単位または音素)及び音の順序と比較して、オーディオデータの発声中で話された音の順序と一致する単語を特定してもよい。
【0027】
話された発声を解釈し得る異なる方法(すなわち、異なる仮説)それぞれに、特定の単語のセットが発声内で話されたものに一致する可能性を表す確率または信頼スコアを割り当ててもよい。信頼スコアは、多くの因子に基づいてもよい。たとえば、言語音に対するモデル(たとえば、ASRモデル記憶装置252に記憶される音響モデル253)に対する発声内の音の類似性、及び音に一致する特定の単語が文章の特定の箇所に含まれるであろう可能性(たとえば、言語または文法モデルを用いて)である。こうして、話された発声(仮説)のそれぞれの潜在的なテキスト解釈が、信頼スコアに対応付けられる。考えられた因子と割り当てられた信頼スコアとに基づいて、ASR処理250は、オーディオデータ内で認識された最も可能性が高いテキストを出力する。またASR処理は、複数の仮説を格子またはNベストリスト(各仮説が信頼スコアまたは他のスコア(たとえば確率スコアなど)に対応する)の形式で出力してもよい。
【0028】
ASR処理を行うデバイスまたはデバイス(複数)は、音響フロントエンド(AFE)256と音声認識エンジン258とを含んでいてもよい。音響フロントエンド(AFE)256は、マイクロフォンからのオーディオデータを、音声認識エンジンによって処理するためのデータに変換する。音声認識エンジン258は、音声認識データを、音響モデル253、言語モデル254、ならびにオーディオデータ内で伝えられた音声を認識するための他のデータモデル及び情報と比較する。AFEは、オーディオデータ内のノイズを減らしてもよく、またデジタル化されたオーディオデータを、時間間隔を表すフレームに分割して、この時間間隔の間、AFEが、オーディオデータの品質を表す多くの値(特徴と言われる)を決定するとともに、フレーム内のオーディオデータの特徴/品質を表す、これらの値のセット(オーディオ特徴ベクトルと言われる)を決定するようにしてもよい。1つの構成では、各オーディオフレームが25msのオーディオと10ms間隔のフレーム開始とを含み、その結果、隣接するオーディオフレームが15msの重複オーディオを含むスライディングウィンドウとなる。特定のフレームに対する多くの異なる特徴を、当該技術分野で知られているように決定してもよい。各特徴は、ASR処理にとって有用であり得るオーディオの何らかの品質を表す。オーディオデータを処理するためにAFEは多くのアプローチを用いてもよい。たとえば、メル周波数ケプストラム係数(MFCC)、知覚線形予測(PLP)技術、ニューラルネットワーク特徴ベクトル技術、線形判別分析、半結合共分散マトリクス、または当業者に知られている他のアプローチである。こうして、AFEは、特定のオーディオフレームを表す種々のデータを含むオーディオ特徴ベクトルを形成してもよい。
【0029】
音声認識エンジン258は、音声/モデル記憶装置(252)に記憶された情報を参照してAFE256からの出力を処理してもよい。代替的に、ポストフロントエンド処理データ(たとえばオーディオ特徴ベクトル)を、ASR処理を実行するデバイスが、内部AFE以外の別の供給源から受け取ってもよい。たとえば、デバイス110は、オーディオデータを処理してオーディオ特徴ベクトル内に入れて(たとえば、オンデバイスAFE256を用いて)、その情報をサーバにネットワーク199を介して送信して、ASR処理を行ってもよい。オーディオ特徴ベクトルは、エンコードされたサーバに到達してもよく、この場合、オーディオ特徴ベクトルを、音声認識エンジン258を実行するプロセッサによって処理される前にデコードしてもよい。
【0030】
音声認識エンジン258は、受け取ったオーディオ特徴ベクトルを、記憶された音響モデル253及び言語モデル254において知られている言語音素及び単語に一致させることを試みる。音声認識エンジン258は、音響情報及び言語情報に基づいてオーディオ特徴ベクトルに対する認識スコアを計算する。音響情報を用いて、オーディオ特徴ベクトルのグループによって表される意図した音が言語音素に一致する可能性を表す音響スコアを計算する。言語情報を用いて音響スコアの調整を、どんな音及び/または単語が互いに関連付けて用いられているかを考えることによって行い、その結果、ASR処理が文法的に道理にかなった音声結果を出力する可能性を向上させる。用いた特定のモデルは一般的なモデルであってもよいし、または特定のドメインに対応するモデル(たとえば、音楽、銀行業務など)であってもよい。
【0031】
音声認識エンジン258は、オーディオ特徴ベクトルを音素に一致させる多くの技術を用いて、たとえば、隠れマルコフモデル(HMM)を用いて、オーディオ特徴ベクトルが音素と一致し得る確率を決定してもよい。受け取った音をHMMの状態間の経路として表してもよいし、複数の経路が同じ音に対する複数の可能なテキスト一致を表してもよい。音素の代わりに(またはそれに加えて)、セノンを音響単位として用いてもよい。セノンは音素の音響的実現である。各音素は、そのコンテキスト(たとえば、周囲の音素)に応じて多くの異なる音を有していてもよい。英語には約50音素があり得るが数千のセノンがある。ASR処理でセノンを用いると、ASR結果を改善できる場合がある。
【0032】
ASR処理の後に、ASR結果を音声認識エンジン258によって他の処理コンポーネントに送ってもよい。他の処理コンポーネントは、ASRを行うデバイスにローカルであってもよく、及び/またはネットワーク(複数可)199を介して分配してもよい。たとえば、ASRが音声の単一テキスト表現の形式になり、複数の仮説及び対応するスコア、格子などを含むNベストリストをサーバ(たとえば、サーバ120)に送って自然言語理解(NLU)処理(たとえば、テキストをコマンドに変換して実行させること)を、デバイス110によって、サーバ120によって、または別のデバイス(たとえば、検索エンジンなどのような特定のアプリケーションを実行するサーバ)によっても行ってもよい。
【0033】
NLU処理260を行うデバイス(たとえば、サーバ120)は、種々のコンポーネントを含んでいてもよい。たとえば、潜在的に専用プロセッサ(複数可)、メモリ、記憶装置などである。NLU処理用に構成されたデバイスは、名前付きエンティティ認識(NER)モジュール252及び意図分類(IC)モジュール264、結果ランク付け及び分配モジュール266、ならびにNLU記憶装置273を含んでいてもよい。またNLU処理は、エンティティライブラリ記憶装置282に記憶されたガゼッティア情報(284a〜284n)を用いてもよい。ガゼッティア情報をエンティティ解決を得るために用いてもよい。たとえば、ASR結果を異なるエンティティ(たとえば曲タイトル、連絡先など)と一致させることである。ガゼッティアをユーザにリンクしてもよいし(たとえば、特定のガゼッティアを、特定のユーザのミュージックコレクションと対応付けてもよいし)、あるドメイン(たとえばショッピング)にリンクしてもよいし、または種々の他の方法で組織化してもよい。
【0034】
NLU処理はテキスト入力(たとえば、発声11に基づいてASR250から処理された)を取って、テキストの意味解釈を形成することを試みる。すなわち、NLU処理は、個々の単語に基づいてテキストの背後の意味を判定した後、その意味を実現する。NLU処理260はテキスト文字列を解釈して、ユーザからの意図または所望の動作、ならびにデバイス(たとえば、デバイス110)がその動作を終了することができるテキスト中の適切な情報を得る。たとえば、話された発声をASR250を用いて処理して、テキスト「お母さんを呼ぶ」が出力される場合、NLU処理は、ユーザが自分のデバイスの電話を起動して、エンティティ「お母さん」と一致する連絡先との通話を開始することを意図したと判定してもよい。
【0035】
NLUは同じ発声に関するいくつかのテキスト入力を処理してもよい。たとえば、ASR250がNのテキストセグメントを(Nベストリストの一部として)出力する場合、NLUはすべてのNの出力を処理してNLU結果を得てもよい。
【0036】
NLU処理を、NLU処理の一部としてテキストに注釈を付けるように構文解析してタグ付けするように構成してもよい。たとえば、テキスト「お母さんを呼ぶ」の場合、「呼ぶ」には(電話呼び出しを実行する)コマンドとしてタグ付けしてもよく、「お母さん」には、特定のエンティティ及びコマンドの対象としてタグ付けしてもよい(また連絡先リストに記憶された「お母さん」に対応するエンティティに対する電話番号を注釈付き結果に含めてもよい)。
【0037】
音声入力のNLU処理を正しく実行するために、NLU処理260を、発声の「ドメイン」を決定して、終点デバイス(たとえば、サーバ120またはデバイス110)が提供するどのサービスが関連性があり得るかを決定して範囲を限定するように、構成してもよい。たとえば、終点デバイスが、電話サービス、連絡先リストサービス、カレンダ/スケジューリングサービス、音楽プレーヤサービスなどとの相互作用に関係するサービスを提供してもよい。単一テキスト照会内の単語が2つ以上のサービスを包含してもよく、いくつかのサービスが機能的にリンクしていてもよい(たとえば、電話サービス及びカレンダサービスの両方が連絡先リストからのデータを用いてもよい)。
【0038】
名前エンティティ認識モジュール262は、ASR結果の形式で照会を受け取って、意味を解釈するために用いてもよい関連性のある文法及び語彙情報の特定を試みる。そうするために、名前エンティティ認識モジュール262を、受け取った照会に関する場合がある潜在的なドメインを特定することによって開始してもよい。NLU記憶装置273は、特定のデバイスに対応付けられたドメインを特定するデバイス(274a〜274n)のデータベースを含んでいてもよい。たとえば、デバイス110を、音楽、電話通信、カレンダリング、連絡先リスト、及びデバイス固有の通信(しかし、ビデオではない)に対するドメインに対応付けてもよい。加えて、エンティティライブラリは、特定のデバイス上での特定のサービスについてのデータベースエントリ(デバイスID、ユーザID、もしくは家庭用ID、または何らかの他の指標によってインデックス付けされている)を含んでいてもよい。
【0039】
ドメインが、共通のテーマを有する別個の行為セット(たとえば「ショッピング」、「音楽」、「カレンダリング」など)を表してもよい。したがって、各ドメインを、特定の言語モデル及び/または文法データベース(276a〜276n)、意図/動作の特定のセット(278a〜278n)、及び特定の個人化語彙(286)に対応付けてもよい。各ガゼッティア(284a〜284n)は、特定のユーザ及び/またはデバイスに対応付けられたドメインインデックス付けされた語彙情報を含んでいてもよい。たとえば、ガゼッティアA(284a)はドメインインデックス語彙情報286aa〜286anを含んでいてもよい。ユーザの音楽ドメイン語彙情報は、たとえば、アルバムタイトル、アーチスト名、及び曲名を含んでいてもよいが、ユーザの連絡先リスト語彙情報は、連絡先の名前を含んでいてもよい。あらゆるユーザのミュージックコレクション及び連絡先リストはおそらく異なっているため、この個人化情報によってエンティティ解決は改善される。
【0040】
それぞれの特定されたドメインに適用可能なルール、モデル、及び情報を適用して、照会を処理する。たとえば、照会が通信及び音楽の両方を潜在的に包含する場合、照会を、文法モデルと通信に対する語彙情報とを用いてNLU処理し、文法モデルと音楽に対する語彙情報とを用いて処理する。モデルの各セットが生成する照会に基づいた応答を得点して(以下でさらに説明する)、適用したすべてのドメインから得られた全体的に最も高くランク付けされた結果を通常、正しい結果であると選択する。
【0041】
意図分類(IC)モジュール264は照会を構文解析して、特定したドメインそれぞれに対する意図または意図(複数)を決定する。意図は、照会に応答する行うべき動作に対応する。各ドメインを、意図にリンクされた単語のデータベース(278a〜278n)に対応付ける。たとえば、音楽意図データベースは、単語及び語句、たとえば「静かな」、「ボリュームオフ」、及び「ミュート」を、「ミュート」意図にリンクしてもよい。ICモジュール264は、照会内の単語を意図データベース278内の単語及び語句と比較することによって、特定したドメインそれぞれに対する潜在的な意図を特定する。
【0042】
特定の解釈した応答を形成するために、NER262は、対応するドメインに対応付けられた文法モデルと語彙情報とを適用する。各文法モデル276は、特定のドメイン(すなわち、総称)について音声内に一般的に見出されるエンティティの名前(すなわち、名詞)を含むが、ガゼッティア284からの語彙情報286はユーザ(複数可)及び/またはデバイスに対して個人化される。たとえば、ショッピングドメインに対応付けられた文法モデルは、人々がショッピングについて話し合うときに広く用いられる単語のデータベースを含んでいてもよい。
【0043】
ICモジュール264が特定した意図を、満たすべき「スロット」または「フィールド」を伴うドメイン固有の文法フレームワーク(276に含まれる)にリンクする。たとえば、「音楽を再生する」が特定の意図である場合、文法(276)フレームワークまたはフレームワーク(複数)が、文章構造たとえば「{アーチスト名}を再生する」、「{アルバム名}を再生する」、「{曲名}を再生する」、「{曲名}を{アーチスト名}によって再生する」などに対応してもよい。しかし認識をより柔軟に行うために、これらのフレームワークを通常、文章として構築することはせず、むしろスロットを文法上のタグに対応付けることに基づく。
【0044】
たとえば、NERモジュール260は、名前付きエンティティを認識する前に、照会を構文解析して、文法規則及びモデルに基づいて単語を主語、目的語、動詞、前置詞などと特定する。特定した動詞をICモジュール264が用いて意図を特定してもよい。意図を次にNERモジュール262が用いてフレームワークを特定する。「再生」の意図に対するフレームワークが、特定の「目的語」及び任意の目的語修飾語(たとえば、前置詞句)、たとえば{アーチスト名}、{アルバム名}、{曲名}などの再生に適用可能なスロット/フィールドのリストを特定してもよい。NERモジュール260は次に、ドメイン固有の個人化語彙(複数可)内の対応するフィールドを検索して、照会内の目的語または目的語修飾語としてタグ付けされた単語及び語句を、データベース(複数可)内で特定されているものと一致させることを試みる。
【0045】
この処理には意味上のタグ付けが含まれる。これは、単語または単語の組み合わせのそれらのタイプ/意味論的意味によるラベル付けである。構文解析を発見的な文法規則を用いて行ってもよいし、またはNERモデルを、隠れマルコフモデル、最大エントロピーモデル、対数線形モデル、条件付き確率場(CRF)などの技術を用いて構成してもよい。
【0046】
たとえば、「ローリングストーンズによるマザーズリトルヘルパーを再生する」の照会を構文解析して、{動詞}「再生する」、{目的語}「マザーズリトルヘルパー」、{目的語前置詞}「による」、及び{目的語修飾語}「ローリングストーンズ」としてタグ付けしてもよい。このプロセスの時点で、「再生する」を、音楽ドメインに対応付けられた単語データベースに基づいて動詞と特定する。これはICモジュール264が「音楽を再生する」意図に対応して決定する。「マザーズリトルヘルパー」及び「ローリングストーンズ」の意味について判定は行っていないが、文法規則及びモデルに基づいて、これらの語句が照会の目的語に関すると判定される。
【0047】
意図にリンクされたフレームワークを次に用いて、どのデータベースフィールドを検索してこれらの語句の意味を決定するかを決める。たとえばユーザの定期刊行物を検索してフレームワークスロットとの類似性を探す。したがって、「音楽を再生する意図」に対するフレームワークが、特定の目的語を、{アーチスト名}、{アルバム名}、及び{曲名}に基づいて分解する試みを示してもよく、また同じ意図に対する別のフレームワークが、目的語修飾語を{アーチスト名}に基づいて分解すること、目的語を、特定された{アーチスト名}にリンクされた{アルバム名}及び{曲名}に基づいて分解する試みを示してもよい。ガゼッティアを検索しても、ガゼッティア情報を用いたスロット/フィールドの解決がされない場合、NERモジュール262は、ドメインに対応付けられた汎語のデータベース(NLU記憶装置273内)を検索してもよい。したがって、たとえば、「ローリングストーンズ」による「歌」と言われるアルバム名または曲名が決定できない後で、照会が「ローリングストーンズによる歌を再生する」だった場合、NER262はドメイン語彙を検索して単語「歌」を探す。代替的に、汎語をガゼッティア情報の前にチェックしてもよいし、または両方を試みてもよく、2つの異なる結果を潜在的に形成してもよい。
【0048】
NERモジュール262が用いる比較処理によって、どのくらい詳細にデータベースエントリがタグ付き照会単語または語句に匹敵するか、どのくらい詳細に照会の文法構造が、適用された文法フレームワークに対応するかを、エントリとフレームワークの他のスロットを満たすように特定された情報との間の関係をデータベースが示すか否かに基づいて、分類(すなわち、得点)してもよい。
【0049】
またNERモジュール262は、文脈上の運用ルールを用いてスロットを満たしてもよい。たとえば、ユーザが特定の歌の休止を以前にリクエストし、その後、ボイス制御型デバイスに「どうぞ私の音楽を休止解除して下さい」とリクエストした場合、NERモジュール262は推論ベースのルールを適用して、ユーザが現時点で再生を望む歌―すなわちユーザが音楽の休止をリクエストした時に再生されていた歌の名前に対応付けられたスロットを満たすようにしてもよい。
【0050】
NLU処理の結果を、照会に対する属性意味にタグ付けしてもよい。したがって、たとえば、「ローリングストーンズによるマザーズリトルヘルパーを再生する」は、{ドメイン}音楽、{意図}音楽を再生する、{アーチスト名}「ローリングストーンズ」、{メディアタイプ}歌、及び{曲タイトル}「マザーズリトルヘルパー」という結果を形成してもよい。別の例として、「ローリングストーンズによる歌を再生する」は、{ドメイン}音楽、{意図}音楽を再生する、{アーチスト名}「ローリングストーンズ」、及び{メディアタイプ}歌を形成してもよい。
【0051】
NLU処理からの出力(タグ付きテキスト、コマンドなどを含んでいてもよい)を次に、コマンドプロセッサ290に送ってもよい。コマンドプロセッサ290は、同じまたは別個のサーバ120上にシステム100の一部として配置してもよい。宛先コマンドプロセッサ290をNLU出力に基づいて決定してもよい。たとえば、NLU出力に音楽を再生するコマンドが含まれる場合、宛先コマンドプロセッサ290は、音楽再生コマンドを実行するように構成された音楽再生アプリケーション(たとえば、デバイス110上または音楽再生器具内に配置されるもの)であってもよい。NLU出力が検索要求を含む場合、宛先コマンドプロセッサ290は、検索コマンドを実行するように構成された検索エンジンプロセッサ(たとえば、検索サーバ上に配置されたもの)を含んでいてもよい。
【0052】
ニューラルネットワークを用いて、音響モデル処理と言語モデル処理とを含むASR処理を実行してもよい。ASRに対するニューラルネットワーク例を
図3に例示する。ニューラルネットワークを、入力層302、中間層304、及び出力層306を用いて構築してもよい。中間層は隠れ層としても知られている場合がある。隠れ層の各ノードは、入力層内の各ノードと出力層内の各ノードとに接続されている。
図3では単一の隠れ層を用いて例示しているが、ニューラルネットワークは複数の中間層を含んでいてもよい。この場合、隠れ層内の各ノードは、次の高位層及び次の下位層内の各ノードに接続している。入力層の各ノードはニューラルネットワークへの潜在的な入力を表し、出力層の各ノードはニューラルネットワークの潜在的な出力を表す。次の層内のあるノードから別のノードまでの各接続を、重みまたはスコアに対応付けてもよい。ニューラルネットワークは、単一出力を出力してもよいし、または可能な出力の重み付けされたセットを出力してもよい。
【0053】
一態様では、ニューラルネットワークを再帰接続によって構成してもよく、それにより、ネットワークの隠れ層の出力が、次の入力セットのために隠れ層内に再び戻る。このようなニューラルネットワークを
図4に例示する。入力層402の各ノードは隠れ層404の各ノードに接続する。隠れ層404の各ノードは出力層406の各ノードに接続する。例示したように、次の入力セットの処理を行うために、隠れ層404の出力を隠れ層内にフィードバックする。再発接続を取り入れたニューラルネットワークを、再帰型ニューラルネットワーク(RNN)と言ってもよい。
【0054】
音響モデルがニューラルネットワークを用いる場合、ニューラルネットワーク入力層の各ノードが、音響特徴のオーディオ特徴ベクトルの音響特徴(たとえば、音声認識を行う第1のパスの後に出力され得るもの)を表してもよく、また出力層の各ノードが、部分語単位(たとえば音素、トライフォンなど)に対応するスコア及び/またはオーディオ特徴ベクトルが表す音に対応し得る関連状態を表す。ニューラルネットワークに対して入力が与えられたときに、特定の入力が与えられたときに特定の出力が正しい出力である確率を表す割り当てられたスコアをそれぞれが有する多くの潜在的な出力が出力される。音響モデルニューラルネットワークのトップスコアリング出力を次にHMM内に供給してもよく、HMMは結果を言語モデルに送る前に音の間の遷移を決定してもよい。
【0055】
言語モデルがニューラルネットワークを用いる場合、ニューラルネットワーク入力層の各ノードは以前の単語を表してもよく、出力層の各ノードは、トレーニングされたニューラルネットワーク言語モデルが決定した潜在的な次の単語を表してもよい。言語モデルを再帰型ニューラルネットワーク(ニューラルネットワーク(たとえば、
図4に例示したネットワーク)が処理した単語の何らかの履歴を取り入れる)として構成してもよいので、潜在的な次の単語の予測は、直近の単語ではなく発声内の以前の単語に基づいてもよい。また言語モデルニューラルネットワークは、次の単語に対する重み付け予測を出力してもよい。
【0056】
ニューラルネットワークによる処理を、各ノード入力及びネットワークの構造に対して学習した重みによって決定する。特定の入力が与えられたら、ニューラルネットワークは、ネットワーク全体の出力層が計算されるまで、一度に一層で出力を決定する。
【0057】
トレーニング中に最初に接続重みをニューラルネットワークが学習してもよい。ここでは、与えられた入力を既知の出力に対応付ける。トレーニングデータのセットにおいて種々のトレーニング例をネットワーク内に供給する。各例では典型的に、入力から出力までの正しい接続の重みを1に設定して、すべての接続に重み0を与える。トレーニングデータ内の例をニューラルネットワークによって処理したとき、入力をネットワークに送って、対応付けられた出力と比較して、どのようにネットワーク性能が対象性能に匹敵するかを判定してもよい。トレーニング技術(たとえば、逆伝播)を用いて、ニューラルネットワークの重みを、トレーニングデータを処理するときにニューラルネットワークによって形成される誤差を減らすように更新してもよい。状況によっては、ニューラルネットワークを格子全体を用いてトレーニングして、格子全体が処理されたときの音声認識を向上させてもよい。
【0058】
前述したように、音声認識の間に、ASRモジュール250/音声認識エンジン258が音響モデル253を用いて、入力オーディオデータ特徴ベクトルと一致する可能な音素または他の音声単位を決定してもよい。起こりそうな音素及び関連する状態/状態遷移を、潜在的な音素の格子を渡る経路内に形成してもよい。各経路は、オーディオ特徴ベクトルが表すオーディオデータに潜在的に一致する音素の進行を表す。1つの経路が、各音素に対して計算された認識スコアに応じて1つ以上の他の経路と重なってもよい。ある確率が、状態から状態までの各移行に対応付けられている。また累積経路スコアを各経路に対して計算してもよい。オーディオ特徴ベクトルに基づいてスコアを決定するこのプロセスは、音響モデリングと言ってもよい。スコアをASR処理の一部として組み合わせるとき、スコアを互いに掛け合わせて(または他の方法で組み合わせて)所望の組合せスコアに到達してもよいし、または確率を対数ドメインに変換して加えて処理を助けてもよい。
【0059】
また音声認識エンジン258は、言語モデルまたは文法に基づいて経路の分岐のスコアを計算してもよい。言語モデリングには、整合のとれた単語及び文章を形成するためにどの単語を一緒に用いる可能性が高いかに対するスコアを決定することが含まれる。言語モデルを適用すると、オーディオデータ中に含まれる音声をASRモジュール250が正しく解釈する可能性が向上する場合がある。たとえば、入力オーディオが「ハロー」のように聞こえる場合、「HELO」、「HALO」、及び「YELO」の潜在的な音素経路を戻す音響モデル処理を言語モデルによって調整して、「HELO」(単語「ハロー」と解釈される)、「HALO」(単語「光輪」と解釈される)、及び「YELO」(単語「イエロー」と解釈される)の認識スコアを、話された発声内の各単語の言語コンテキストに基づいて調整してもよい。
【0060】
図5に、音響モデリングと言語モデリングとの間の関係を例示する。例示したように、経路502に含まれる処理された音素をそれぞれ、音響モデルスコアAM
1〜AM
7に対応付ける。次に言語モデルを適用して、経路504内の各単語を言語モデルスコアLM
1またはLM
2に対応付ける。
【0061】
言語モデリングの一部として(またはASR処理の他のフェーズにおいて)、音声認識エンジン258は、コンピュータ資源を節約するために、話された発声に対応する可能性がほとんどない低認識スコア状態または経路(言語モデルに従って認識スコアが低いため、または他の理由で)を取り除いて廃棄してもよい。このように取り除いた経路は不活性であると考えられる。さらに、ASR処理の間、音声認識エンジン258は、以前に処理した発声部分に対してさらなる処理パスを繰り返して実行してもよい。後のパスは、前のパスの結果を取り入れて、結果を精緻化して改善してもよい。現時点で処理されてシステムの潜在的な出力と考えられている経路は、活性な仮説であると考えられる。
【0062】
音声認識エンジン258は、潜在的な経路を、音声認識結果を表す格子内に組み合わせてもよい。サンプル格子を
図6に示す。格子602は、音声認識結果の複数の潜在的な経路を示している。大きなノード間の経路は潜在的な単語(たとえば「ハロー」、「イエロー」など)を表し、より小さいノード間の経路は潜在的な音素(たとえば、「H」、「E」、「L」、「O」及び「Y」、「E」、「L」、「O」)を表す。説明の目的上、個々の音素は、格子の最初の2つの単語に対してのみ示している。ノード604とノード606との間の2つの経路は、2つの潜在的な単語選択「ハローハウ」または「イエローナウ」を表している。ノード間の各経路点(たとえば潜在的な単語)は、認識スコアに対応付けられている。また格子に渡る各経路に認識スコアを割り当ててもよい。最も高い認識スコア経路(認識スコアは、音響モデルスコア、言語モデルスコア、及び/または他の因子の組み合わせである)を、対応付けられたオーディオ特徴ベクトルに対するASR結果として、音声認識エンジン258によって戻してもよい。
【0063】
また異なる弧を同じ時間データに対応付けてもよい。たとえば、弧「ハロー」を、音声認識エンジン258が処理した第1のグループのオーディオフレームに対する時間データに対応付けて、「ハロー」に対応する弧を渡るようにしてもよい。同じ時間データを弧「イエロー」に対応付けてもよい。なぜならば、「ハロー」に対応する弧と同じ第1のグループのオーディオフレームを、弧「イエロー」を渡るように処理したからである。すなわち、音声認識エンジン258は、その第1のグループのオーディオフレームに対応し得る2つの潜在的な単語を決定した。時間データを、格子602のマトリックス/ベクトル表現のための弧に対応付けてもよい。
【0064】
図7に例示するのは、格子602に沿って存在する異なる潜在的な経路である。
図7に示すように、経路702は「ハローハウアーユー」になり、経路704は「イエローナウアー」になり、経路706は「イエローワウアウア」になる。図からわかるように、小さい格子例602においてでさえ多くのこのような経路が可能である。このような経路の例802〜810を
図8に示す。音声処理を行うときに、音声認識処理が何千もの異なる経路(すなわち、仮説)を考慮するのは珍しいことではない。各仮説をスコアに対応付けて、それを他の仮説に対してランク付けしてもよい。スコアは、入力オーディオデータ、音響モデルからの処理、言語モデルのトレーニングなどに基づいてもよい。前述したように、ASRコンポーネントは、Nベストリスト(たとえば、
図8に示す潜在的な結果のリスト)を出力してもよいし、単一のトップスコアリング返答(たとえば、802)を出力してもよいし、または格子全体を出力してもよい。
【0065】
エンコーディングは、一続きの特徴をベクトル空間内に射影するための一般的な技術である。エンコーディングの目標の1つは、データ点を多次元のベクトル空間内に射影することによって、種々の動作をベクトル組合せ上で行ってそれら(またはそれらが含むデータ)がどのように互いに関係づけられるかを決定することである。たとえば、2つの文章たとえば「今日の天気は?」及び「今日は雨?」の使用法をベクトル空間(各ベクトルには、どのようにまたはいつ文章が用いられるかを表すデータ点が入る)内に射影した場合、2つの文章はおそらく、最後にはベクトル射影空間内で互いに近くなる結果、2つの文章の同じような使用法が表されることになるだろう。ある特徴をベクトル空間内にエンコードして種々の動作を実行することは貴重である可能性がある。
【0066】
数学的表記では、一続きの特徴データ表現x
1,…x
n,…x
Nが与えられ、x
nはD次元ベクトル(Dは各特徴データ表現における特定値の構成可能な数を表す)であると、エンコーダE(x
1,…x
N)=yは、特徴順序をyに射影する(yはF次元ベクトル)。Fはベクトルの固定長であり、エンコードされたベクトル及び他のシステム構成のユーザに応じて構成可能である。たとえば、Fは音声処理で用いるのに100〜1000値であってもよいが、任意のサイズを用いてもよい。任意の特定のエンコーダ950を、同じサイズのベクトルを出力するように構成することによって、任意の特定のエンコーダ950からの出力エンコード済みベクトルサイズの連続性が確実になる(しかし、異なるエンコーダが異なる固定サイズのベクトルを出力してもよい)。値yは、順序x
1,…x
Nの埋め込みと言ってもよい。x
n及びyの長さは固定されて、既知のアプリオリであるが、特徴順序x
1,…x
NのNの長さは必ずしも既知のアプリオリではない。エンコーダEを、再帰型ニューラルネットワーク(RNN)として、たとえば、長短期メモリRNN(LSTM−RNN)またはゲート付き再帰型ユニットRNN(GRU−RNN)として、実装してもよい。RNNは、ノードのネットワークを数値的に表し得るツールである。各ノード表現は、ネットワークの先行部分についての情報を含んでいる。たとえば、RNNは、順序を固定サイズベクトルに変換する特徴ベクトルの順序の線形変換を実行する。結果として得られるベクトルは、本来は任意に長くなる可能性がある縮小ベクトル空間内での順序の特徴を維持する。特徴データ値の順序を消費した後のRNNの出力はエンコーダ出力である。RNNエンコーダがエンコーダ出力を消費する種々の方法が存在する。たとえば、限定することなく、線形、一方向(正または逆)、双線形、本質的に前方へ及び後方の埋め込みの連結、または、木、順序の構文解析木に基づく。加えて、注意モデルを用いることができる。これは、入力のある部分に注意を「引き付ける」ことを学習する別のRNNまたはDNNである。注意モデルを、入力を消費する前述の方法と組み合わせて用いることができる。
【0067】
図9に、RNNエンコーダ950の動作を例示する。入力特徴部値順序は、特徴値x
1902から始まり、特徴値x
n904を通って続き、特徴値x
N906で終わり、RNNエンコーダ950内に入力される。RNNエンコーダ950は、前述したように、入力特徴部値を処理してもよい。RNNエンコーダ950は、エンコードされた特徴ベクトルy910を出力する。特徴ベクトルy910は長さFの固定長特徴ベクトルである。エンコーダ(たとえば950)を、以下に示すように音声処理とともに用いてもよい。
【0068】
ASR処理の場合、ベース入力は典型的に、オーディオフレームに対応するオーディオ特徴ベクトルの形式のオーディオデータである。前述したように、典型的な音響特徴(たとえば、ログフィルタバンクエネルギー(LFBE)特徴、MFCC特徴、または他の特徴)を決定して、各オーディオフレームに対するオーディオ特徴ベクトルを形成するように用いる。オーディオデータをRNN内に送ることは、高速フーリエ変換(FFT)の振幅及び(フェーズ)スペクトルを用いて、またはオーディオ信号を一続きのデータ内に射影する他の技術によって、可能である。音響特徴のアライメントが存在する場合、それを追加入力として加えてもよい。アライメント情報を、ビタビアライメントを用いてワンホットベクトルとして与えることもできるし、またはバウム‐ウェルチアライメントを用いてすべての可能な状態に対する確率分布として与えることもできる。アライメントを、セノン、音素のレベル、またはアプリケーションに適した任意の他のレベルで与えることができる。
【0069】
NLU処理の場合、ベース入力は典型的に、単語系列の形式のテキストである。単語系列は通常、一連のワンホットベクトルとして表される(すなわち、語彙内のZの入手可能な単語を表すZサイズのベクトルであり、順序内の特定の単語を表すように1ビット高い)。ワンホットベクトルは、大量の汎用データについてトレーニングされた他のモデルからの情報によって増大することが多い。汎用データはたとえば(しかし限定することなく)、どのように個々の単語がテキストコーパス内で用いられているかを表す単語埋め込み、タグ付け者(たとえば、品詞(POS)または名前付きエンティティタグ付け者)からのラベル、パーサ(たとえば、意味または依存関係パーサ)からのラベルなどである。
【0070】
たとえば、RNNを用いて単語系列をエンコードするために、RNNエンコーダに順序の各単語を1つずつ与える。RNN処理は第1の単語、そして第2の単語などである。RNNには、すべての以前の状態からのすべての情報を有するその状態を維持するメカニズムがある。したがって、各単語に対して、RNNは単語及びその内部状態を処理し、その結果、再帰的に動作する。最後の単語の後、最終状態は単語系列に対応するベクトル全体の表現である。ここで、単語系列をベクトル空間内の固定サイズベクトル(すなわち、エンコーダ出力)として表し、それ相応に動作させる。
【0071】
エンコーダRNNを周知の技術(たとえば、時間逆伝播(BTT)アルゴリズムを伴う確率的勾配降下法(SGD)方法)を用いてトレーニングして、誤差信号を順序を通して伝播することによって、エンコーダネットワークのパラメータを学習してもよい。
【0072】
分類器は、入力をある構成されたクラスに分類する既知の機械学習ベースのツールである。分類器を、前述したRNNエンコードされたベクトルを用いる方法でトレーニングしてもよい。したがって、分類器を、特徴x
1,…x
Nの入力セットを固定数のクラス1…Cに分類するようにトレーニングしてもよい(Cは2であってもよく、分類器を、入力特徴部ベクトルを単純に一方のカテゴリまたは他方に分類するように構成してもよい)。RNNエンコードされたデータ上で動作するように分類器を構成するために、ソフトマックス層とRNNエンコーダとを伴うDNNを用いてもよい。当該技術分野で知られているように、出力サイズに応じて階層的なソフトマックス層を用いることができる。DNNは入力としてRNNエンコーダ出力を取って、最も高いスコアリングクラスが選択され得るすべてのクラス上に渡る確率分布を形成する。数学的表記では、順序x
1,…x
N、及びエンコーダEが与えられたら、分類器Hを次のように表現してもよい。
【数1】
ここで、p(c│y)はDNNとして実装される。
【0073】
エンコーダRNN、Eと分類器Hとを、交差エントロピ目的関数と時間逆伝播(BTT)アルゴリズムとを伴うSGD方法を用いて一緒にトレーニングしてもよい。SGEの代わりに、ニューラルネットワークの学習に適用される任意の他の機械学習技術をBTTに適用することができる。エンコーダEを、特徴データのサンプル順序についてトレーニングしてもよい。分類器Hを、エンコーダEとともに特徴ベクトル出力例についてトレーニングしてもよい。既知の機械学習技術を用いてH及びEをトレーニングしてもよく、たとえば勾配フィードバック技術を用いてH及びEにおけるパラメータ/重みを更新してもよい。
【0074】
前述のエンコーディング技術を用いて、多くの音声処理タスクを向上させてもよい。詳細には、それを用いて音声の基準部分をエンコードしてもよく、それを次に、ある下流タスク(たとえば、音声検出及び音声認識)に対して用いてもよい。音声検出は、入力オーディオが音声を含むかまたは非音声(すなわち、沈黙、ノイズなど)を含むかを判定するタスクである。さらに、音声検出はまた、検出した音声が「所望の」音声であるか否かを判定するタスクを含んでいてもよい(任意の他の人からの音声(またはノイズ)ではなく特定の人からの音声である場合と同様である)。音声認識は、入力オーディオ内にどの単語が検出されたかを判定するタスクである。音声認識はまた、非所望の話者が話す単語(たとえば、部屋内の他の個人からの音声、または他の場合には音声処理コンポーネントが検出可能な音声)ではなくて、入力オーディオ内のどの単語が「所望の」話者に対応するかを判定するタスクを含んでいてもよい。
【0075】
音声検出及び音声認識を助けるために、基準オーディオデータを用いて、入力音声が所望の話者に対応するシステム決定を助けてもよい。このような基準オーディオデータ(アンカーオーディオデータとも言われる)は、所望の話者の音声(すなわち、アンカーオーディオセグメント)に対応してもよい。前述のエンコーダ技術を用いることによって、音声検出器または音声認識器が所望の音声を非所望の音声及び/またはノイズから区別することを助ける固定サイズベクトル空間における基準オーディオデータの埋め込みを、システムが計算してもよい。
【0076】
たとえば、ある状況では、システムは、話者Sからの音声のみを検出/認識することを希望してもよい(またはそのように構成されていてもよい)。したがって、話者Sからの基準音声サンプルが与えられた場合、同じ音声x’
1…x’
mに対するオーディオフレームを得てもよい。これらのフレームは基準オーディオデータと言ってもよい。
【0077】
基準音声サンプルは多くの方法で得てもよい。第1の例では、ユーザがシステムとの相互作用を話す特定の入力発声に対して、発声はウェイクワードから始まってもよい。たとえば、「アレクサ、音楽を再生して」は、音楽を再生するためのシステムに対する発声であってもよく、「アレクサ」がウェイクワードである。このような状況では、システムはウェイクワードの話者の音声を分離することを望んでもよい。なぜならば、この個人は、システムに命令を出している可能性がある個人であり、したがって、音声検出/ASRの目的に対して所望の話者になるからである。したがって、ウェイクワードトリガされた相互作用に対して、システムはウェイクワードの開始及び終了時間を決定してもよく、したがって、ウェイクワードオーディオの話しに対応するオーディオデータを分離してもよい。その分離したオーディオデータを基準オーディオデータとして用いてもよい。
【0078】
たとえば、
図10に例示するように、入力オーディオデータ111をウェイクワード確認モジュール1020によって処理して、入力オーディオデータ111内のウェイクワードを特定することを、ウェイクワード/キーワード検出技術(たとえば、前述したもの)を用いて行ってもよい。ウェイクワード確認モジュール1020は次に、入力オーディオデータ111内でウェイクワードが検出されているかまたは検出されていないかの確認1030を出力してもよい。ウェイクワードが検出されている場合、さらなる処理を行うために、入力オーディオデータを下流コンポーネント(たとえばASRモジュール250)に送ってもよい。また、ウェイクワード確認モジュール1020は、入力オーディオデータ111内のウェイクワード開始時間1032とウェイクワード終了時間1034とに対応するタイムスタンプを決定してもよい。タイムスタンプ1032及び1034は、開始/終了フレームもしくはウェイクワードに対応するオーディオ特徴ベクトルの指標、またはウェイクワードに対する開始/終了時間の他の指標であってもよい。したがって、タイムスタンプ1032及び1034をこのように用いて、
図11に例示するように、入力オーディオデータ111内のウェイクワード部分の境界を定めてもよい。
【0079】
オーディオデータのウェイクワード部分は、オーディオデータの第1の部分を含んでいてもよい。
図11に示すように、開始タイムスタンプ1032はウェイクワードの開始を示してもよく、終了タイムスタンプ1034はウェイクワードの終了を示してもよい。こうして、オーディオデータの第1の部分1102は、開始位置で開始して、終了位置で終了してもよく、それらの間に第1の複数のオーディオ特徴ベクトルを含んでいてもよい。(なお、入力オーディオデータ111は、バッファリングまたは他の処理構成に起因してウェイクワードの前に発声する何らかのオーディオデータを含んでいてもよい。このようなオーディオデータを音声処理の一部として処理してもよいし、または無視してもよい)。こうして、オーディオデータ111を少なくとも2つの部分に分割してもよい。ウェイクワードを含む第1の部分1102と、さらなるオーディオデータを含む第2の部分1104である。入力オーディオデータ111の非ウェイクワード部分はしばしばペイロードと言われ、下流の音声処理のフォーカスであってもよい。ペイロードは、第2の部分、第3の部分、第4の部分などを含んでいてもよい。個々の部分はオーディオ特徴ベクトルから構成されていてもよい。第1の部分1102を構成するオーディオ特徴ベクトル(すなわち、ウェイクワードに対応する特徴ベクトル)を、基準オーディオデータとして選択してもよい。
【0080】
第2の例では、ウェイクワードは必ずしも、特定の入力オーディオデータ信号を始めなくてもよい(たとえば非ウェイクワードシステムにおいて、またはウェイクワードが必要でないシステムを伴う進行中セッションの一部である発声内で)。このような状況では、ASR処理は入力オーディオ内の単語を認識する際の第1のパスを形成してもよい。システムは、その入力オーディオの何らかの第1の部分が、所望の話者に対応すると判定してもよい。たとえば第1の単語、第1の2つの単語、第1の3つの単語などである。入力オーディオのその早期部分を基準オーディオであると判定してもよく、早期部分に対応するフレームが基準オーディオデータであってもよい。その基準オーディオデータを次に、以下に述べるように用いて、さらなる処理(たとえば、音声検出、ASRにおける第2のパスなど)を行ってもよい。したがって、
図11の説明図において、オーディオデータ1102の第1の部分は、たとえウェイクワードを含んでいなかったとしても、やはり基準オーディオデータとして用いてもよい。
【0081】
第3の例では、基準オーディオデータを、所望の話者からの以前の記録(たとえば、ボイストレーニングセッションの間に取った記録)から取ってもよい。たとえば、
図12に示すように、構成セッションの間、システムサーバ120はプロンプトオーディオデータ1202をローカルデバイス110に送ってもよい。プロンプトオーディオデータは、たとえば、ユーザ10に「どうぞサンプル文章を話して下さい」を促すプロンプトに対応するオーディオデータを含んでいてもよい。ローカルデバイス110は、プロンプトに対応するオーディオを出力してもよい。ユーザ10は次に、サンプル文章、たとえば「ハロー、私の名前はジョーです」を話してもよい。サンプル文章に対応するオーディオ11をデバイス110が取り込んで、オーディオデータ1204に変換し、それをローカルデバイス110がサーバ120に送ってもよい。オーディオデータ1204を次に、ユーザプロファイル記憶装置1802に送って、ユーザ10に対応付けられたユーザプロファイル内に記憶してもよい。さらなるコマンドが、ユーザ10に対応付けられたデバイス(たとえばデバイス110またはおそらくは、電話機、タブレット、またはユーザ10のユーザプロファイルに対応付けられた他のデバイス)から来る場合、オーディオデータ1204を基準オーディオデータとして用いてもよい。
【0082】
第4の例では、システムは、システムに以前の文章(たとえば、特定の入力デバイスが受け取った以前の発声)を話した話者が所望の話者であるという想定を形成してもよい。したがって、以前の文章からの入力オーディオデータの一部を基準オーディオデータとして用いてもよい。たとえば、
図13に例示するように、実行時に、デバイス110は、第1の発声(たとえば「アレクサ、タイマを設定して」)に対応するオーディオを取り込んでもよい。デバイス110は、音声処理のために、第1の発声に対応する第1のオーディオデータ1302をサーバ120に送ってもよい。サーバ120は、第1のオーディオデータ1302に対して音声処理を実行してもよく、コマンドを実行するためにさらなる情報が必要であると判定してもよい。システムは次に、デバイス110が出力すべきプロンプトオーディオデータ1304(たとえば「時間はどのくらい?」)を決定して送ってもよい。デバイス110は次に、第2の発声(たとえば「5分間」)に対応する第2のオーディオを取り込んでもよい。デバイス110は、第2の発声に対応する第2のオーディオデータ1306をサーバ120に送って音声処理を図ってもよい。サーバ120は、第2のオーディオデータ1306が第1のオーディオデータ1302と同じセッションまたは交換の一部であることを知っていてもよく、第1のオーディオデータ1302を基準オーディオデータとして用いてもよい。
【0083】
決定されたら、基準オーディオデータ(特徴ベクトルx’
1…x’
mを含む)をエンコーダによってエンコードして、エンコードされた基準オーディオデータE(x’
1…x’
m)としてもよい。このエンコードされた基準オーディオデータ(エンコードされた特徴ベクトルであってもよい)を次に、音声検出及び/または音声認識に対して用いてもよい。たとえば、
図14に示すように、基準オーディオデータに対するオーディオ特徴ベクトルは、オーディオ特徴ベクトルx’
11402〜オーディオ特徴ベクトルx’
m1404を含んでいてもよい。ウェイクワードに対応する基準オーディオデータの例では、オーディオ特徴ベクトルx’
11402がウェイクワード開始時間1032に対応してもよく、オーディオ特徴ベクトルx’
m1404がウェイクワード終了時間1034に対応してもよい。オーディオ特徴ベクトルをRNNエンコーダ1450によって処理して、エンコードされた基準特徴ベクトルy
基準1410を形成してもよい。これは、RNNエンコーディングによって、単一の特徴ベクトルにおけるオーディオ特徴ベクトルx’
11402からオーディオ特徴ベクトルx’
m1404までの基準オーディオデータ全体を表す。RNNエンコーダ1450を、システム構成に応じて、第1の入力オーディオ特徴ベクトル(たとえば、入力オーディオ特徴ベクトルx’
11402)を最初に処理するように構成してもよいし、または入力オーディオ特徴ベクトルを逆の順序で(たとえば、入力オーディオ特徴ベクトルx’
m1404を最初に)処理するように構成してもよい。RNNエンコーダ1450は、ゲート付き再帰型ユニット(GRU)、長短期間メモリ(LSTM)RNN、または後ろ向きの(たとえば、再帰型)特性を有する他の可能なモデルを含んでいてもよい。
【0084】
基準オーディオデータを、従来の再帰的なログ振幅平均減算(log−amplitude mean subtraction(LAMS))を適用することによって正規化されるログフィルタバンクエネルギー(LFBE)特徴を伴うエンコーダ1450を用いてエンコードしてもよい。エンコーダを、所望の音声セグメントの固定長ベクトル表現を取り込むように構成してもよい。このベクトルを次に、さらなるオーディオデータが基準オーディオデータの話者に一致するか否かを判定するために用いてもよい。たとえば、基準特徴ベクトル1410を発声の入力オーディオデータの特徴とともに用いて、後述するようにフレームが所望の音声を含むか否かについてのフレームレベルの判定を行ってもよい。
【0085】
前述したように、入力オーディオデータは一続きのオーディオフレーム(各フレームは、音響信号から得られた一続きの特徴で形成される)を含んでいてもよい。典型的な特徴としては、対数フィルタバンクエネルギー(LFBE)、メル周波数ケプストラム係数(MFCC)、知覚線形予測(PLP)、または任意の他の有意義な特徴であって、デジタル化されたオーディオ信号自体を含むオーディオ信号から得ることができるものが挙げられる。音声検出の目標の1つは、各入力オーディオフレームを(1)所望の音声、(2)非所望の音声、または(3)非音声としてラベル付けすることである。詳細には、システムは各オーディオフレームに対して、3つの前述のカテゴリうちの1つに対応するとして、異なる確率を割り当ててもよい。したがって、下流プロセスでは、ラベル及び/または異なる確率を用いて、所望の音声対非所望の音声対非音声に伴う異なる事柄を行ってもよい。
【0086】
リアルタイムシステム(すなわち入力オーディオフレームを、それが入ってきたときに必要以上の待ち時間なしにかなり迅速に分類するシステム)における音声検出が、原因となってもよい。すなわち、システムは、現在フレームを分類するときに過去のオーディオフレームを考えてもよいが、小さい固定サイズの先読みウィンドウ以外に多くの将来のオーディオを考えなくてもよい。
【0087】
フレームワイズな音声検出器は、形式H(n;x
1…x
n+d)を有していてもよく、Pr(n番目のフレームが「所望の音声」x
1…x
n+d)の確率を予測してもよい。Hを異なる方法で実装することができ、良く知られている従来技術の選択は、Hを(ディープ)ニューラルネットワーク(DNN)または再帰型ニューラルネットワーク(RNN)として実装することである。またHは、エンコードされた基準オーディオデータベクトルを入力として用いるように実装してもよい。したがって、システムは、エンコーダアプローチを用いてアンカーセグメントを固定サイズのベクトル空間内に射影してもよく、次にそれをさらなる特徴としてフレームワイズな音声検出器内に供給する。
【数2】
ここで、Hは次のものを入力と考える。エンコードされた基準オーディオデータベクトル、分類/ラベル付けすべき特定のオーディオフレーム、特定のオーディオフレームより前のある数のオーディオフレーム、特定のオーディオフレームの後のある数のオーディオフレーム。したがって、任意の特定のオーディオフレームをラベル付けするときに、オーディオフレームのスライディングウィンドウを用いて、何らかのコンテキストを分類器Hに与えてもよい。
【0088】
図15に示すように、特定のオーディオフレームnに対して、フレームnに対応するオーディオ特徴ベクトルx
n1502を、分類器H1520内に、オーディオ特徴ベクトルx
nの前に入力オーディオデータに現れるいくつかのオーディオ特徴ベクトル(たとえば、オーディオ特徴ベクトルx
n−d1504〜オーディオ特徴ベクトルx
n−1(例示せず))と、オーディオ特徴ベクトルx
nの後に入力オーディオデータに現れるいくつかのオーディオ特徴ベクトル(たとえば、オーディオ特徴ベクトルx
n+1(例示せず)〜特徴ベクトルx
n+d1506)とともに、供給する。一例では、スライディングウィンドウ寸法は5フレームであり、そのため、フレームnに対する特徴ベクトルを、オーディオ特徴ベクトルx
nの前に2つのオーディオ特徴ベクトル、オーディオ特徴ベクトルx
nの後に2つのオーディオ特徴ベクトルを伴って供給する。他のウィンドウ寸法を構成してもよい。
【0089】
分類器Hの出力は、それぞれの所望ラベルに対して異なるスコア1530を含んでいてもよい。たとえば、特定のオーディオデータフレームが所望の音声に対応する第1のスコア、特定のオーディオデータフレームが非所望の音声に対応する第2のスコア、及び特定のオーディオデータフレームが非音声に対応する第3のスコアである。代替的に、分類器Hは単純に、特定のスコアとともにどのカテゴリに特定のフレームが対応するか(たとえば、所望の音声)に関する特定のオーディオフレームに対するラベル1540であってもよい。この実施態様を、特定のオーディオフレームに第1の確率である1、第2の確率である0、及び第3の確率である0を与えるものと考えてもよい。分類/ラベル付け処理を複数の入力オーディオフレームに対して繰り返してもよい。ラベルは、特定のオーディオフレームn(及び/またはオーディオ特徴ベクトルx
n)が所望の音声(すなわち、基準オーディオデータと同じ話者からの音声)に対応するか、非所望の音声(すなわち、基準オーディオデータとは異なる話者からの音声)に対応するか、または非音声に対応する表示を含んでいてもよい。
【0090】
あるシステム構成では、分類器H1520が、特定のオーディオ特徴ベクトルx
nに対応するラベルを出力するようにトレーニングされてもよく、一方で、他の構成では、出力ラベル(及び/またはスコア)が、分類器H1520に入力される特徴ベクトルのグループに対応してもよい。こうして、システムは(スライディングウィンドウ配置によるフレームごとではなくて)グループとしてのデータに値する複数のフレームを評価してもよい。出力ラベル及び/またはスコアを次に、種々の下流目的に対して用いてもよい。
【0091】
E(x’
1…x’
m)は、所望の音声がどのように「見える」かについての情報を含み、x
1…x
n+dは、現在の音声がどのように「見える」かについての情報を含んでいる。こうして、エンコードされた基準オーディオデータベクトルはHに対する基準点を与えて、各オーディオフレームをオーディオフレームが所望の音声に対応する確率によって分類する。
【0092】
HをDNNまたはRNN(LSTM−RNNまたはGRU−RNNまたは任意の他のRNN変形とすることができる)として実装してもよい。H及びEを、時間逆伝播(BTT)アルゴリズムまたは任意の他の好適な学習アルゴリズムを伴う確率的勾配降下法(SGD)の方法を用いて一緒にトレーニングしてもよい。トレーニング時に、所望の音声を含むフレームを肯定的な例としてマーキングするが、他のフレームを否定的な例としてマーキングする(すなわち、非所望の音声または非音声に対応する)。分類器H1520をRNNエンコーダ1450と同時にトレーニングすることで、分類器1520にとって有用な基準特徴ベクトルをエンコーダ1450が形成し、したがって、分類器1520が、RNNエンコーダ1450が出力した形式のベクトルを用いて、入力をどのように分類するかを学習するようにしてもよい。
【0093】
本開示の他の実施形態では、エンコードされた基準オーディオデータを、音声検出を判定する際に他の方法で用いてもよい。たとえば、システムは、ログフィルタバンクエネルギー(LFBE)ドメイン内の基準オーディオデータの平均を推定してもよく、そしてそれを、同じ発声のすべての以後のオーディオ特徴ベクトルから差し引いて、基準オーディオデータに対するエネルギーレベルの違いをあらわにしてもよい。このアプローチをログ振幅平均減算(LAMS)と言ってもよい。正規化された特徴を次に、フィードフォワードディープニューラルネットワーク(DNN)ベースの分類に対して用いる。したがって、基準オーディオデータ(ウェイクワードに対応してもよいし、または所望のユーザからの他の音声に対応してもよい)に対して、システムは、所望のユーザに固有の十分な情報であって、入力オーディオデータからその情報を差し引くことによって用いることができる情報を抽出して、入力オーディオデータが所望のユーザからの音声に対応するか否かを十分にテストしてもよい。
【0094】
騒音が多い状態に対して堅固な音声処理システムを作るための技術の1つは、ケプストラム平均減算である。ケプストラム係数を、時間ドメインオーディオ信号の短時間フーリエ変換(STFT)を計算することによって形成し、フィルタバンクエネルギーをメル間隔フィルタバンク内に組み合わせ、係数の対数を取り、そしてそれを離散コサイン変換(DCT)を用いて変換する。本システムは対数フィルタバンクエネルギー(LFBE)を用いてもよい。対数フィルタバンクエネルギーは、ケプストラム係数と同じ処理チェーンに従うが、それらに最終的なDCT変換を適用しない。規格化技術はLAMSであってもよい。
【0095】
LAMSは音声伝達関数特性の規格化を助ける。音声信号をX
t=S
t*H
tとモデリングする。ここで、X
t、S
t、及びH
tは、時間ドメイン遠距離場オーディオデータ(X
t)、音声信号(S
t)、及び伝達関数(H
t)である。静的な伝達関数を用いて、音声信号の推定を次のように得ることができる。
【数3】
伝達関数をオフライン及びオンライン方法で推定することができる。オフライン方法では、特徴当たりの平均を所望の音声セグメントに対して最初に計算する。そして、特徴当たりの平均を当初の特徴から差し引く。
尚、所望の音声セグメントは以下の数式で表される。
【数4】
【0096】
前述のシステムは、音声及びノイズ特性が、分析したセグメントの全体を通して比較的静的な環境では良好に機能する。オンラインシステムまたはより動的な音響環境では、平均統計量はその代わりに時間とともに継続的に更新される。一般的な選択の1つは、時間的に変化する平均推定を自己回帰/再帰的な更新を用いて更新することである。
【数5】
αは、推定量が、より速く動く声特性を取り込むことなく、静止しているかまたはゆっくりと変化する環境特性を取り込めるように選択する。継続的に更新するオンラインLAMS推定であれば、所望及び妨害音声特徴を変換してより同様に見えるようにすることができるが、これは我々の目標とは反対である。たとえば、アンカー単語の後に妨害音声がきて、そして所望の音声がくる場合、再帰的なLAMSによって妨害及び所望の音声内のエネルギーピークが重なる。
【0097】
LAMS方法によって、システムが、特徴を所望の範囲で、また所望及び妨害音声間の特徴をより良好に区別するために保つことができてもよい。平均推定量に対しては、システムは基準オーディオデータに対して平均の特徴値を計算してもよい。所望の話者からの音声を認識するタスクに対しては、この制約は好都合である。基準オーディオデータを所望の話者の音声の一例として用いてもよく、そしてLAMSを差し引くことによって、システムは所望の話者に対応する特徴をゼロ平均に近づくようにシフトしてもよい。これによって、システムは、所望の話者の音声をより良好に分類するように、分類器(たとえば、DNN)をトレーニングすることができる。この方法は、発声のアンカー単語の特性に依存する特徴規格化方法と考えることができる。このような方法によって、特徴を各発声に対して動的な方法で正規化することができる。なぜならば、LAMSはそれぞれの新しい基準オーディオデータに対して常に推定されるからである。
【0098】
こうして、システムは所望のユーザから基準オーディオデータを得てもよい。基準オーディオデータは、ランタイム発声のウェイクワード部分に対応するオーディオデータであってもよい。システムは次に、LFBEドメイン内の基準オーディオデータの平均値を推定してもよい。その平均を次に、同じ発声の以後の特徴オーディオ特徴ベクトルから差し引いてもよい。その結果、特定のオーディオ特徴ベクトルと基準オーディオデータとの間のエネルギーレベルの差になる。この技術はログ振幅平均減算と言ってもよい。エネルギーレベル差(減算によって正規化された)を次に、フィードフォワードディープニューラルネットワーク(DNN)または他の機械学習トレーニングされたモデル内に供給して、分類してもよい。モデルを、エネルギーレベル差を、(基準オーディオデータを話した)所望のユーザに属する音声を表すとして、または異なる人に属する非音声または音声を表すとして分類するように構成してもよい。
【0099】
音声認識(すなわち、ASR)の目標は、入力オーディオデータに対応する話し単語を認識する。音声認識に対する統計的アプローチによって、観察される特徴x
1,…x
Nが与えられたときに、単語Wの最も可能性が高い順序を見出すタスクが解決される。
【数6】
【0100】
ASRの精緻化された目標は、入力オーディオデータに対応する所望の単語系列を認識することである。「所望」の単語系列を、入力オーディオデータ内の任意の音声をカバーすると考えてもよいし、または所望の特定の人からの音声(しかし任意の他の人(他の話者)からの音声ではない)をカバーすると考えてもよい。この問題は次のように表現してもよい。
【数7】
状態s
nはHMMモデリングにおける状態、単語または電話またはセノンまたは任意の他の部分語単位を指す。電話を例として、量p(s
n=A|x
1…x
n+d)は、位置「n」で話された電話「A」の確率推定であり、p(s
n=B|x
1…x
n+d)は、位置「n」で話された電話「B」の確率推定である等。1つまたは少数の特別な「電話」を用いて沈黙及びノイズを表している。
【0101】
音声検出について前述したように、エンコードされた基準オーディオデータベクトルE(x’
1…x’
m)を追加入力として与えて、音声認識システムを所望の単語系列の方に「ガイド」してもよい。したがって、
【数8】
【0102】
1つの実施態様は、E(x’
1…x’
m)に依存してASRの間にフレームワイズな状態確率の計算を行うことである。
【数9】
【0103】
ここで、pはDNNまたはRNN(LSTM−RNNまたはGRU−RNNまたは任意の他のRNN変形とすることができる)として実装してもよく、またp及びEを前述したように一緒にトレーニングする。音声検出間の違いの1つは、音声認識において、判定は(所望の)音声と非音声との間で行われるのみではなく、音声の単位(電話、セノンなど)の間でも行われることである。p及びEを、非所望の音声が既存の非音声クラス(または新たに規定された非所望の音声クラス)にマッピングされるトレーニングデータについてトレーニングした場合、アプローチは、非所望の音声を無視することと、音声の単位間の違い及び音声とノイズとの間の違いを改善することとの両方を学習することができる。トレーニングデータに何らの非所望の音声も含まれない場合、アプローチは、話者及び/または音響条件適応を学習する可能性があり、すなわち、音声の単位間の違い及び音声とノイズとの間の違いを改善する可能性がある。
【0104】
システムは
図15の音声ラベル付けからのラベル/スコアを用いて、ボイス活動検出(VAD)を実行してもよい。たとえば、
図16Aに示すように、オーディオ特徴ベクトル1502に対応するラベル(複数可)1540(及び/またはスコア(複数可)1530)をVADモジュール222に入力してもよい。(またオーディオ特徴ベクトル1502自体をシステム構成に応じてVADモジュール222に入力してもよい)。VADモジュール222はしたがって、オーディオ特徴ベクトルが所望の音声としてまたは非所望の音声としてラベル付けされているかを、ボイス活動が検出されていると表明するか否かにおいて考えてもよく、こうして、音声処理システムのさらなる下流の動作が引き起こされる。たとえば、入力オーディオが音声に対応するが、必ずしも所望の音声には対応しない場合、VADモジュール222を、検出した音声を表明しないように構成して、システムが非所望の音声を処理することがないようにしてもよい。このように、VADモジュール222を、検出されている十分な量の所望の音声のみに依存して検出された音声を表明するようにトレーニングしてもよい。
【0105】
またシステムは、ASRの目的のためのASRモジュールに対する入力として、音声ラベル付けプロセスから決定されたラベル/スコアを用いてもよい。たとえば、
図16Bに示すように、オーディオ特徴ベクトル1502に対応するラベル(複数可)1540(及び/またはスコア(複数可)1530)を、入力ASRモジュール250に(したがって、音声認識エンジン258に)入力してもよい。(またオーディオ特徴ベクトル1502自体をシステム構成に応じてASRモジュール250に入力してもよい)。ASRモジュール250は次に、ASRを行うときにラベル1540及び/またはスコア(複数可)1530を考慮してもよい。たとえば、所望の音声に対応するとラベル付けされたオーディオ特徴ベクトルを、非所望の音声(または非音声)に対応するとラベル付けされたオーディオ特徴ベクトルより重く重み付けしてもよい(すなわち、トップ仮説に最終的に影響を与える可能性がより高い)。ASR目的に対して、分類器H1520は、音響モデルという形を取ってもよい。ラベル/スコア1530(またはラベル1540)は、特定の音声ユニットに対応してもよい。たとえば、音響モデル分類器H1520が、セノン(または他の音響単位)とともに各特定のセノンに対する対応するスコアのリストを出力してもよい(また、このような複雑な音響モデリングに対して用いてもよい基準特徴ベクトル1410を出力するようにトレーニングされたエンコーダ1450に対応してもよい)。結果として得られるセノン及びスコアの出力リストを次に、ASRモジュール250の下流の言語モデルまたは他のASRコンポーネント部分を用いて、ASR出力のテキストを形成してもよい。
【0106】
図17に例示するのは、入力オーディオデータを、ウェイクワードを含む基準データを用いて、所望の音声または非所望の音声として分類する例である。この例では、第1のユーザは発声「アレクサ、再生して何か音楽を」を話す。しかし、第1のユーザが話している間に、第2のユーザが部屋に入ってきて、たとえば「ハロー」と言う。しかし第2のユーザの「ハロー」という話は、第1のユーザが「再生して」と「何か」とを言う間に発声する。したがって、書き写されたオーディオデータ111はテキスト「アレクサ、再生してハロー何か音楽を」となるであろう。このようなテキストに対してNLU及びさらなる処理を行うと、第1のユーザの所望の動作になり得るが(特に、ユーザがシステムにアデルの「ハロー」の再生を望んだ場合)、第1のユーザのデフォルトの音楽選択は何か他のものであってもよく、したがって第2のユーザの発声が第1のユーザの意図するコマンドと干渉してもよい。
【0107】
図示するように、オーディオデータ111は、第1のユーザが話したウェイクワード「アレクサ」を含むオーディオデータの第1の部分1102を含む。第1の部分を次に用いて、前述したように、オーディオデータの第2の部分1104のフレームを分類するときに用いる基準オーディオデータ1702に対応する基準エンコードされた特徴ベクトルを形成してもよい。分類技術を用いて、システムは、単語「再生する」(1704)と「ある音楽」(1708)とに対応するオーディオデータが「アレクサ」の話者のボイスに一致し、したがって所望の音声に対応することを、一方で、単語「ハロー」(1706)に対応するオーディオデータが「アレクサ」の話者のボイスに一致せず、したがって非所望の音声に対応すると判定することができる。したがってシステムは、「ハロー」を無視して、第1のユーザが話したテキスト「アレクサ、再生して何か音楽を」のみを処理する。
【0108】
システムはまた、ウェイクワード(または入力オーディオの他の部分)の話者の身元を特定することを試みてもよいが、話者識別と言われる技術(ここでは、オーディオを所望の音声/非所望の音声/非音声としてラベル付けし、このようなラベルを用いる技術)が、話者の身元が必要ではないという点で、話者識別とは別個であり、したがって、記載した技術を話者識別を行うことなく行ってもよい。
【0109】
さらに、RNNエンコーダ1450と分類器1520とを、入力オーディオデータを分類して音声検出を行うために基準オーディオデータをエンコードするように構成されていて、したがってASRモジュール250の上流に配置してもよいと例示しているが、それらはまた、ASRモジュール250の一部として実装してもよく、したがって、基準ベースの音声認識を行うために、エンコードされたベクトルに異なる特徴が含まれることになり得る。さらに、分類器1520が決定したラベル1540を他の目的に対して用いてもよい。終点決めモジュールがラベルを用いて音声終点を表明してもよい。たとえば、連続番号のフレーム/オーディオ特徴ベクトルを非所望または非音声として分類した場合、終点決めモジュールは所望の音声の終了に達したことを表明してもよい。
【0110】
サーバ120は、ユーザアカウントに関するデータを含んでいてもよいしまたはこれを参照してもよい。これを、
図18に例示するユーザプロファイル記憶装置1802によって示す。ユーザプロファイル記憶装置は、サーバ120に隣接して配置してもよいし、または他の場合には種々のコンポーネントと、たとえばネットワーク165を介して、通信してもよい。ユーザプロファイル記憶装置1802は、システム100と相互作用する個々のユーザ、家庭、アカウントなどに関する種々の情報を含んでいてもよい。説明するために、
図18に示すように、ユーザプロファイル記憶装置1802は、特定の個々のユーザアカウント1804に対応付けられたデバイスに関するデータを含んでいてもよい。一例では、ユーザプロファイル記憶装置1802はクラウドベースの記憶装置である。このようなデータは、異なるデバイスに対する装置識別子(ID)及びインターネットプロトコル(IP)アドレス情報、ならびにユーザがデバイスを参照し得る名前を含んでいてもよい。またデバイスを記述するさらなる修飾語句を、デバイスの目的語のタイプの記述と一緒に列記してもよい。さらに、ユーザアカウント1804は、
図12に関連して前述したように、基準オーディオデータとして用いてもよいサンプルユーザ音声を含んでいてもよいしまたはこれに対応付けられていてもよい。さらに、ユーザプロファイル記憶装置1802は、記憶された基準オーディオデータ1204を含んでいてもよいが、それはまた、またはその代わりに、記憶された基準オーディオデータ1204に対応するエンコードされた基準特徴ベクトル1410を記憶していてもよく、その結果、システムは、実行時に基準オーディオデータをエンコードする必要があるのではなくて、実行時に、記憶されたエンコードされた基準特徴ベクトル1410を単に参照してもよい。
【0111】
図19は、記載したシステムとともに用いてもよいローカルデバイス110を概念的に例示するブロック図である。
図20は、リモートデバイスのコンポーネント例を概念的に例示するブロック図である。リモートデバイスは、たとえばASR、NLU処理、またはコマンド処理を助け得るリモートサーバ120である。複数のこのようなサーバ120がシステムに含まれていてもよい。たとえば、ASRモデルをトレーニングするための1つのサーバ(複数可)120、ASRを行うための1つのサーバ(複数可)、NLUを行うための1つのサーバ(複数可)120などである。動作時には、これらのデバイス(またはデバイスのグループ)がそれぞれ、対応するデバイス(110/120)上に存在するコンピュータ可読でコンピュータ実行可能な命令を含んでいてもよい。これについては後でさらに説明する。
【0112】
これらのデバイス(110/120)はそれぞれ、1つ以上のコントローラ/プロセッサ(1904/2004)を含んでいてもよい。これらはそれぞれ、データ及びコンピュータ可読命令を処理するための中央演算処理装置(CPU)と、対応するデバイスのデータ及び命令を記憶するためのメモリ(1906/2006)とを含んでいてもよい。メモリ(1906/2006)は、揮発性ランダムアクセスメモリ(RAM)、不揮発性読み出し専用メモリ(ROM)、不揮発性磁気抵抗(MRAM)、及び/または他のタイプのメモリを別個に含んでいてもよい。各デバイスはまた、データ記憶装置コンポーネント(1908/2008)を、データ及びコントローラ/プロセッサ実行可能命令を記憶するために含んでいてもよい。各データ記憶装置コンポーネントは別個に、1つ以上の不揮発性記憶装置タイプ(たとえば、磁気記憶装置、光記憶装置、固体記憶装置など)を含んでいてもよい。各デバイスはまた、リムーバブルまたは外部不揮発性メモリ及び/または記憶装置(たとえばリムーバブルメモリカード、メモリキードライブ、ネットワーク接続された記憶装置など)に、対応する入出力装置インターフェース(1902/2002)を通して接続されてもよい。
【0113】
各デバイス(110/120)及びその種々のコンポーネントを動作させるためのコンピュータ命令を、対応するデバイスのコントローラ(複数可)/プロセッサ(複数可)(1904/2004)によって実行することを、実行時にメモリ(1906/2006)を一時的な「作業用」記憶装置として用いて行ってもよい。デバイスのコンピュータ命令を、非一時的な方法で、不揮発性メモリ(1906/2006)、記憶装置(1908/2008)、または外部デバイス(複数可)に記憶してもよい。代替的に、ソフトウェアに加えてまたはその代わりに、実行可能命令の一部または全部を、対応するデバイス上のハードウェアまたはファームウェアに埋め込んでもよい。
【0114】
各デバイス(110/120)は、入出力装置インターフェース(1902/2002)を含んでいる。種々のコンポーネントを入出力装置インターフェースを通して接続してもよい。これについては後でさらに説明する。さらに、各デバイス(110/120)は、対応するデバイスのコンポーネント間でデータを伝えるためのアドレス/データバス(1924/2024)を含んでいてもよい。またデバイス(110/120)内の各コンポーネントを、他のコンポーネントにバス(1924/2024)を介して接続することに加えて(またはその代わりに)、他のコンポーネントに直接接続してもよい。
【0115】
図19のデバイス110を参照して、デバイス110はディスプレイ1918を含んでいてもよい。ディスプレイ1918は、タッチインターフェース1919を含んでいてもよい。またはデバイス110は「ヘッドレス」であってもよく、入力用に話されたコマンドに主に基づいてもよい。別のデバイスとの接続が開いたことをユーザに示す方法として、デバイス110を、視覚インジケータ(たとえば、LEDまたは同様のコンポーネント(例示せず))を用いて構成してもよい。これは、デバイス110によって色を変えるか、点滅するか、または他の場合には視覚的表示を与えてもよい。デバイス110はまた、入出力装置インターフェース1902を含んでいてもよい。入出力装置インターフェース1902は、種々のコンポーネント、たとえばオーディオ出力コンポーネント(たとえばスピーカー1960)、有線ヘッドセットもしくは無線ヘッドセット(例示せず)、またはオーディオを出力することができる他のコンポーネントに接続する。デバイス110はまた、オーディオ取り込みコンポーネントを含んでいてもよい。オーディオ取り込みコンポーネントは、たとえば、マイクロフォン1950またはマイクロフォンの配列、有線ヘッドセットまたは無線ヘッドセット(例示せず)などであってもよい。マイクロフォン1950をオーディオを取り込みするように構成してもよい。マイクロフォンの配列が含まれている場合、出所の音の地点までのおおよその距離を、配列の中の異なるマイクロフォンが取り込んだ音の間の時間及び振幅差に基づく音源位置測定によって求めてもよい。デバイス110(マイクロフォン1950、ウェイクワード検出モジュール220、ASRモジュール250などを用いている)を、検出されたオーディオデータに対応するオーディオデータを決定するように構成してもよい。またデバイス110(入出力装置インターフェース1902、アンテナ1914などを用いる)を、オーディオデータをサーバ120に送信してさらなる処理を行うように、または内部コンポーネントたとえばウェイクワード検出モジュール220を用いてデータを処理するように構成してもよい。
【0116】
たとえば、アンテナ(複数可)を介して、入出力装置インターフェース1902を1つ以上のネットワーク199に、無線ローカルエリアネットワーク(WLAN)(たとえばWiFi)無線、ブルートゥース、及び/または無線ネットワーク無線、たとえば無線通信ネットワーク(たとえば、ロングタームエボリューション(LTE)ネットワーク、ワイマックスネットワーク、3Gネットワーク)と通信可能な無線などを介して接続してもよい。また有線接続(たとえばイーサネット)をサポートしてもよい。ネットワーク(複数可)199を通して、音声処理システムをネットワーク環境を介して分配してもよい。
【0117】
デバイス110及び/またはサーバ120は、ASRモジュール250を含んでいてもよい。デバイス110内のASRモジュールは、能力が限定されていてもよいしまたは拡張されていてもよい。ASRモジュール250は、ASRモデル記憶コンポーネント252に記憶された言語モデル254と、自動音声認識処理を実行するASRモジュール250とを含んでいてもよい。限定された音声認識が含まれている場合、ASRモジュール250を、限定された数の単語(たとえば、デバイスが検出するキーワード)を特定するように構成してもよいが、拡張された音声認識を、はるかにより大きい範囲の単語を認識するように構成してもよい。またASRモジュール250(または別のコンポーネント)を、前述した技術を用いてASR信頼をチェックするように構成してもよい。
【0118】
デバイス110及び/またはサーバ120は、限定または拡張されたNLUモジュール260を含んでいてもよい。デバイス110内のNLUモジュールは、能力が限定されていてもよいしまたは拡張されていてもよい。NLUモジュール260は、名前エンティティ認識モジュール262、意図分類モジュール264、及び/または他のコンポーネントを含んでいてもよい。NLUモジュール260はまた、記憶された知識交換及び/またはエンティティライブラリを含んでいてもよいし、またはこれらの記憶装置を別個に配置してもよい。
【0119】
デバイス110及び/またはサーバ120はまた、前述したように、話されたコマンドに対応付けられたコマンド/機能を実行するように構成されたコマンドプロセッサ290を含んでいてもよい。
【0120】
デバイス110は、前述したようにボイス活動検出を実行するボイス活動検出(VAD)モジュール222を含んでいてもよい。VADモジュール222は、前述した技術を取り入れていてもよい。たとえば、
図16Aに関連して述べたように、オーディオ特徴ベクトル及び対応するラベルを考えることである。
【0121】
デバイス110は、ウェイクワード検出モジュール220を含んでいてもよい。これは、別個のコンポーネントであってもよいし、またはASRモジュール250に含まれていてもよい。ウェイクワード検出モジュール220は、オーディオ信号を受け取って、オーディオ内での特定の表現(たとえば構成されたキーワード)の発生を検出する。これは、特定の時間に渡って周波数の変化を検出することを含んでいてもよい。周波数の変化は、キーワードに対応するとしてシステムが認識する特定のオーディオ署名になる。キーワード検出は、個々の指向性オーディオ信号(たとえば、該当する場合には、ポストビーム形成で処理されたもの)を分析することを含んでいてもよい。キーワード検出(キーワード発見としても知られている)の当該技術分野で知られた他の技術を用いてもよい。いくつかの実施形態では、デバイス110を、ウェイク表現が検出されているかまたはウェイク表現が生じた可能性がある指向性オーディオ信号のセットを特定するように一括して構成してもよい。
【0122】
ウェイクワード検出モジュール220は、取り込まれたオーディオを受け取ってオーディオを処理し(たとえば、モデル(複数可)232を用いて)、オーディオが、デバイス110及び/またはシステム100によって認識可能な特定のキーワードに対応するか否かを判定する。記憶装置1908は、ウェイクワード検出モジュール220が前述のアルゴリズム及び方法を実行できるようにするキーワード及び機能に関するデータを記憶してもよい。ローカルに記憶された音声モデルを、デバイス110がユーザによってネットワークにアクセスするように構成される前に、既知の情報に基づいて事前構成してもよい。たとえば、モデルは、ユーザ装置が出荷されるかまたは配置が予測される領域に固有の、またはユーザプロファイルなどに基づいてユーザ自身に固有の言語及び/またはアクセントであってもよい。一態様において、モデルを、別のデバイスからのユーザの音声またはオーディオデータを用いて事前トレーニングしてもよい。たとえば、ユーザは、話したコマンドを介してユーザが操作する別のユーザ装置を所有していてもよく、この音声データをユーザプロファイルに対応付けてもよい。次に他のユーザ装置からの音声データを利用して、デバイス110のローカルに記憶された音声モデルをトレーニングするために用いることを、ユーザ装置110がユーザに届けられるかまたはユーザによってネットワークにアクセスするように構成される前に行ってもよい。ウェイクワード検出モジュール220は、記憶装置1108にアクセスして、取り込んだオーディオを記憶したモデル及びオーディオシーケンスと比較することを、オーディオ比較、パターン認識、キーワード発見、オーディオ署名、及び/または他のオーディオ処理技術を用いて行ってもよい。
【0123】
サーバはまた、前述したようにデータをベクトル形式にエンコードするためのRNNエンコーダ950を含んでいてもよい。サーバはまた、前述した種々のモデルまたは分類器をトレーニングまたは再トレーニングするためのモデルトレーニングコンポーネント2070を含んでいてもよい。種々の機械学習技術を用いて、前述した種々のステップを実行してもよい。たとえば、RCのトレーニング/再トレーニング、エンティティタグ付け者、意味上のパーサなどである。種々の機械学習技術に従って、モデルをトレーニングして動作させてもよい。このような技術には、たとえば、ニューラルネットワーク(たとえばディープニューラルネットワーク及び/または再帰型ニューラルネットワーク)、推論エンジン、トレーニングされた分類器などが含まれていてもよい。トレーニングされた分類器の例としては、サポートベクターマシン(SVM)、ニューラルネットワーク、決定木、アダブースト(「適応型ブースティング」の省略形)を決定木と組み合わせたもの、及びランダムフォレストが挙げられる。一例としてSVMにフォーカスすると、SVMは、付随する学習アルゴリズムを伴う教師あり学習モデルである。学習アルゴリズムは、データを分析してデータ中のパターンを認識するものであり、分類及び回帰分析を行うために広く用いられている。トレーニング例のセット(それぞれ、2つのカテゴリのうちの1つに属するとマーキングされる)が与えられた場合、SVMトレーニングアルゴリズムは、新しい例を一方のカテゴリまたは他に割り当てるモデルを構築して、それを非確率的二値線形分類器にする。より複雑なSVMモデルを、2つを超えるカテゴリを特定するトレーニング設定を用いて構築してもよい。SVMはどのカテゴリが入力データに最も似ているかを判定する。SVMモデルを、別個のカテゴリの例が明確なギャップによって分割されるようにマッピングしてもよい。新しい例を次に、その同じ空間内にマッピングして、それがギャップのどちら側に位置するかに基づくカテゴリに属すると予測する。分類器は、どのカテゴリデータが最も厳密に一致するかを示す「スコア」を発してもよい。スコアはどのくらい詳細にデータがカテゴリに一致するかの表示を与えてもよい。
【0124】
機械学習技術を適用するために、機械学習処理自体をトレーニングする必要がある。機械学習コンポーネント(たとえば、この場合、第1または第2のモデルのうちの一方)をトレーニングすると、トレーニング例に対して「グラウンドトゥルース」を設定する必要がある。機械学習では、用語「グラウンドトゥルース」は、教師あり学習技術に対するトレーニング設定の分類の精度を指す。種々の技術を用いてモデルをトレーニングしてもよい。たとえば、逆伝播、統計学習、教師あり学習、半教師あり学習、確率的学習、または他の既知の技術である。
【0125】
サーバ120はまた、
図10に関連して前述したように動作することができるウェイクワード確認モジュール1020を含んでいてもよい。サーバ120はまた、
図15に関連して前述したように、分類器1520を用いて入力オーディオデータをラベル付けすることができる音声ラベル付けモジュール2050を含んでいてもよい。音声ラベル付けモジュール2050はまた、エンコードされた基準特徴ベクトル1410を形成するRNNエンコーダ1450を含んでいてもよい。
【0126】
前述したように、複数のデバイスを単一の音声処理システム内で用いてもよい。このようなマルチデバイスシステムでは、デバイスはそれぞれ、音声処理の異なる態様を行うために異なるコンポーネントを含んでいてもよい。複数のデバイスは重複するコンポーネントを含んでいてもよい。デバイス110及びサーバ120のコンポーネントは、
図19及び20に例示したように、典型的であり、スタンドアローンのデバイスで配置してもよいし、またはより大きいデバイスまたはシステムのコンポーネントとして、全体的または部分的に含まれていてもよい。
【0127】
図21に例示するように、複数のデバイス(120、120x、110a〜110f)がシステム100のコンポーネントを含んでいてもよく、デバイスをネットワーク199を介して接続してもよい。ネットワーク199は、ローカルもしくはプライベートネットワークを含んでいてもよいし、またはワイドネットワークたとえばインターネットを含んでいてもよい。デバイスを、有線または無線接続を通してネットワーク199に接続してもよい。たとえば、音声制御型デバイス110a、タブレットコンピュータ110b、スマートフォン110c、冷蔵庫110d、スマートウォッチ110e、及び/または車両110fを、ネットワーク199に、無線サービスプロバイダを通して、WiFiまたはセルラーネットワーク接続などを介して接続してもよい。他のデバイスが、ネットワーク接続されたサポートデバイスとして含まれている。たとえば、サーバ120、アプリケーション開発者デバイス120xなどである。サポートデバイスを、有線接続または無線接続を通してネットワーク199に接続してもよい。ネットワークデバイス110はオーディオを、1つ以上の内蔵または接続されたマイクロフォン1950またはオーディオ取り込みデバイスを用いて取り込んでもよく、処理は、同じデバイスまたはネットワーク199を介して接続された別のデバイスのASR、NLU、または他のコンポーネント(たとえば、1つ以上のサーバ120のASR250、NLU260など)によって行われる。
【0128】
ここで開示した考え方を、多くの異なるデバイス及びコンピュータシステム内で適用してもよい。たとえば、汎用コンピューティングシステム、音声処理システム、及び分散コンピューティング環境などである。
【0129】
本開示の前述の態様は例示的であることが意図されている。それらは、本開示の原理及び適用を説明するために選択されており、網羅的であることも本開示を限定することも意図されていない。開示した態様の多くの変更及び変形が当業者には明らかであり得る。コンピュータ及び音声処理の分野において普通の技量を有する人であれば、ここで説明したコンポーネント及び処理ステップが、他のコンポーネントもしくはステップ、またはコンポーネントもしくはステップの組み合わせと互換性があり、それでもやはり本開示の効果及び優位点を実現し得ることが分かるはずである。また、当業者であれば分かるように、本開示は、ここで開示した具体的な詳細及びステップの一部または全部を伴わずに実施してもよい。
【0130】
開示したシステムの態様を、コンピュータ方法として実装してもよいし、または製造品たとえばメモリデバイスまたは非一時的なコンピュータ可読記憶媒体として実装してもよい。コンピュータ可読記憶媒体は、コンピュータによって読取可能であってもよく、また本開示で記載した処理をコンピュータまたは他のデバイスに実行させる命令を含んでいてもよい。コンピュータ可読な記憶媒体を、揮発性コンピュータメモリ、不揮発性コンピュータメモリ、ハードドライブ、固体メモリ、フラッシュドライブ、リムーバブルディスク、及び/または他のメディアによって実装してもよい。加えて、モジュール及びエンジンのうちの1つ以上のコンポーネントを、ファームウェアまたはハードウェアの場合と同様に実装してもよい(たとえば、音響フロントエンド256)。これは、とりわけ、アナログ及び/またはデジタルフィルタ(たとえば、デジタル信号プロセッサ(DSP)に対するファームウェアとして構成されたフィルタ)を含んでいる。
【0131】
本開示で用いたように、用語「a」または「1つ」は、特に記載のない限り、1つ以上の物品を含んでいてもよい。さらに、語句「に基づく」は、特に記載のない限り、「に少なくとも部分的に基づく」を意味することが意図されている。
【0132】
条項
1.自動音声認識(ASR)用に所望の話者からの音声を特定するためのコンピュータ実装方法であって、
音声に対応するオーディオデータを受け取ることであって、前記オーディオデータは複数のオーディオフレームを含む、前記受け取ることと、
前記複数のオーディオフレームを処理して、前記オーディオデータの第1の部分に対応する第1の複数のオーディオ特徴ベクトルと、前記オーディオデータの第2の部分に対応する第2の複数のオーディオ特徴ベクトルとを決定することと、
前記第1の複数のオーディオ特徴ベクトルはウェイクワードに対応していると判定することと、
前記第1の複数のオーディオ特徴ベクトルを再帰型ニューラルネットワークエンコーダを用いて処理して、所望の話者からの音声に対応する基準特徴ベクトルを決定することと、
前記第2の複数のオーディオ特徴ベクトルと前記基準特徴ベクトルとを、ニューラルネットワーク分類器を用いて処理して、前記第2の複数内の第1のオーディオ特徴ベクトルに対応する第1のスコアを決定することであって、前記第1のオーディオ特徴ベクトルが前記所望の話者が話したオーディオに対応する可能性に対応する、前記第1のスコアを決定することと、
前記スコアは閾値を上回っていると判定することと、
前記第1の特徴ベクトルが前記所望の話者からの音声に対応しているという表示を形成することと、
前記第1の特徴ベクトルに対応する第1の重みを、前記所望の話者からの音声に対応する前記第1の特徴ベクトルに基づいて決定することと、
前記第1の重みと前記第1の特徴ベクトルとを用いてASRを行うことと、を含む前記コンピュータ実装方法。
【0133】
2.前記複数のオーディオフレームの少なくとも一部を処理して、前記第2の部分に対応する第3の複数のオーディオ特徴ベクトルを決定することと、
前記第3の複数のオーディオ特徴ベクトルと前記基準特徴ベクトルとを前記ニューラルネットワーク分類器を用いて処理して、前記第3の複数内の第2のオーディオ特徴ベクトルに対応する第2のスコアを決定することであって、前記第2のオーディオ特徴ベクトルが前記所望の話者が話したオーディオに対応する可能性に対応する、前記第2のスコアを決定することと、
前記第2のスコアは前記閾値を下回っていると判定することと、
前記第3の特徴ベクトルは、前記ウェイクワードとして異なる話者からの音声に対応しているという第2の表示を形成することと、
前記第3の特徴ベクトルに対応する第2の重みを、前記ウェイクワードとしての異なる話者からの音声に対応する前記第3の特徴ベクトルに基づいて決定することであって、前記第2の重みは前記第1の重みよりも小さい、前記決定することと、をさらに含む条項1に記載のコンピュータ実装方法。
【0134】
3.前記第1の特徴ベクトルに対応する第1のオーディオフレームの前に位置するオーディオフレームに対応する第1の特徴ベクトル対を特定することと、
前記第1のオーディオフレームの後に位置するオーディオフレームに対応する第2の特徴ベクトル対を特定することと、をさらに含み、
前記第2の複数のオーディオ特徴ベクトルと前記基準特徴ベクトルとを前記ニューラルネットワーク分類器を用いて処理することは、前記第1の特徴ベクトル対、前記第1の特徴ベクトル、及び前記第2の特徴ベクトル対を処理して、前記第1のスコアを決定することをさらに含む、条項1に記載のコンピュータ実装方法。
【0135】
4.コンピュータ実装方法であって、
入力オーディオデータを受け取ることと、
基準オーディオデータを特定することと、
前記基準オーディオデータを再帰型ニューラルネットワークを用いて処理して、基準特徴ベクトルを決定することと、
前記入力オーディオデータの一部と前記基準特徴ベクトルとを分類器を用いて処理して、前記一部が、前記基準オーディオデータと同じ話者からの音声に対応するか否かを判定することと、を含む前記コンピュータ実装方法。
【0136】
5.前記入力オーディオデータの第1の部分がキーワードを含むと判定することと、
前記第1の部分を前記基準オーディオデータとして選択することと、をさらに含む条項4に記載のコンピュータ実装方法。
【0137】
6.入力オーディオデータを受け取ることは、第1のデバイスとの第1の相互作用の一部として第1のオーディオデータを受け取ることと、前記第1のデバイスとの第2の相互作用の一部として第2のオーディオデータを受け取ることとを含み、
前記方法は、
前記第1のオーディオデータを前記基準オーディオデータとして選択することと、
前記第2のオーディオデータを前記入力オーディオデータの前記一部として選択することと、をさらに含む、条項4に記載のコンピュータ実装方法。
【0138】
7.前記入力オーディオデータを受け取る前に、第1の話者に対応するトレーニングオーディオデータを記憶することをさらに含み、
前記基準オーディオデータを特定することは、前記トレーニングオーディオデータを前記基準オーディオデータとして選択することを含む、条項4に記載のコンピュータ実装方法。
【0139】
8.基準オーディオデータを再帰型ニューラルネットワークを用いて処理することは、前記トレーニングオーディオデータを前記再帰型ニューラルネットワークを用いて処理して、前記入力オーディオデータを受け取る前に、前記基準特徴ベクトルを決定することを含む、条項7に記載のコンピュータ実装方法。
【0140】
9.前記入力オーディオデータの前記一部に対応する複数の特徴ベクトルを特定すること、をさらに含み、
前記入力オーディオデータの前記一部と前記基準特徴ベクトルとを前記分類器を用いて処理することは、前記複数の特徴ベクトルを処理して、前記複数の特徴ベクトル内の第1の特徴ベクトルが、前記基準オーディオデータと前記同じ話者からの音声に対応するか否かに対応する第1のスコアを決定することを含む、条項4に記載のコンピュータ実装方法。
【0141】
10.前記第1のスコアに基づいて、前記第1の特徴ベクトルに対応する第1の重みを決定することと、
前記第1の重みと前記第1の特徴ベクトルとを用いて音声認識を実行することと、をさらに含む、条項9に記載のコンピュータ実装方法。
【0142】
11.前記入力オーディオデータの第2の部分に対応する第2の複数の特徴ベクトルを特定することと、
前記オーディオデータの前記第2の部分と前記基準特徴ベクトルとを前記分類器を用いて処理して、前記第2の複数の特徴ベクトル内の第2の特徴ベクトルが、基準オーディオデータと前記同じ話者からの音声に対応するか否かに対応する第2のスコアを決定することであって、前記第2のスコアは前記第1のスコアよりも低い、前記決定することと、
前記第2の特徴ベクトルに対応する第2の重みを決定することであって、前記第2の重みは前記第1の重みよりも小さい、前記決定することと、をさらに含む、条項10に記載のコンピュータ実装方法。
【0143】
12.前記再帰型ニューラルネットワークは、
複数のオーディオ特徴ベクトルを入力して単一ベクトルを出力するように構成され、
前記単一ベクトルは、
前記複数のオーディオ特徴ベクトルのそれぞれから情報を取り入れる、条項4に記載のコンピュータ実装方法。
【0144】
13.コンピューティングシステムであって、
少なくとも1つのプロセッサと、
命令を含むメモリデバイスであって、
前記命令は、
前記少なくとも1つのプロセッサによって実行されて、
前記システムを、
入力オーディオデータを受け取ることと、
基準オーディオデータを特定することと、
前記基準オーディオデータを再帰型ニューラルネットワークを用いて処理して基準特徴ベクトルを決定することと、
前記入力オーディオデータの一部と前記基準特徴ベクトルとを分類器を用いて処理して、前記一部が、前記基準オーディオデータと同じ話者からの音声に対応するか否かを判定することと、を行うように構成するように動作可能である前記メモリデバイスと、
を含む前記コンピューティングシステム。
【0145】
14.前記システムを、
前記入力オーディオデータの第1の部分がキーワードを含むと判定することと、
前記第1の部分を前記基準オーディオデータとして選択することと、
を行うように構成する命令をさらに含む、条項13に記載のコンピューティングシステム。
【0146】
15.前記システムを入力オーディオデータを受け取るように構成する前記命令は、前記システムを、第1のデバイスとの第1の相互作用の一部として第1のオーディオデータを受け取り、前記第1のデバイスとの第2の相互作用の一部として第2のオーディオデータを受け取るように構成する命令を含み、前記コンピューティングシステムはさらに、前記システムを、
前記第1のオーディオデータを前記基準オーディオデータとして選択することと、
前記第2のオーディオデータを前記入力オーディオデータの前記一部として選択することと、を行うように構成する命令を含む、条項13に記載のコンピューティングシステム。
【0147】
16.前記命令は、前記システムを、
前記入力オーディオデータを受け取る前に、第1の話者に対応するトレーニングオーディオデータを記憶するように構成し、
前記システムを前記基準オーディオデータを特定するように構成する前記命令は、前記システムを、前記トレーニングオーディオデータを前記基準オーディオデータとして選択するように構成する命令を含む、条項13に記載のコンピューティングシステム。
【0148】
17.前記システムを、基準オーディオデータを再帰型ニューラルネットワークを用いて処理するように構成する前記命令は、
前記システムを、前記トレーニングオーディオデータを前記再帰型ニューラルネットワークを用いて処理して、前記入力オーディオデータを受け取る前に、前記基準特徴ベクトルを決定するように構成する命令を含む、条項13に記載のコンピューティングシステム。
【0149】
18.前記システムを、前記入力オーディオデータの前記一部に対応する複数の特徴ベクトルを特定するように構成する命令をさらに含み、
前記システムを、前記入力オーディオデータの前記一部と前記基準特徴ベクトルとを前記分類器を用いて処理するように構成する前記命令は、
前記システムを、前記複数の特徴ベクトルを処理して、前記複数の特徴ベクトル内の第1の特徴ベクトルが前記基準オーディオデータと前記同じ話者からの音声に対応するか否かに対応する第1のスコアを決定するように構成する命令を含む、条項13に記載のコンピューティングシステム。
【0150】
19.前記システムを、
前記第1のスコアに基づいて、前記第1の特徴ベクトルに対応する第1の重みを決定することと、
前記第1の重みと前記第1の特徴ベクトルとを用いて音声認識を実行することと、
を行うように構成する命令をさらに含む、条項13に記載のコンピューティングシステム。
【0151】
20.前記システムを、
前記入力オーディオデータの第2の部分に対応する第2の複数の特徴ベクトルを特定することと、
前記オーディオデータの前記第2の部分と前記基準特徴ベクトルとを前記分類器を用いて処理して、前記第2の複数の特徴ベクトル内の第2の特徴ベクトルが、前記基準オーディオデータと前記同じ話者からの音声に対応するか否かに対応する第2のスコアを決定することであって、前記第2のスコアは前記第1のスコアよりも低い、前記決定することと、
前記第2の特徴ベクトルに対応する第2の重みを決定することであって、前記第2の重みは前記第1の重みよりも小さい、前記決定することと、を行うように構成する命令をさらに含む、条項19に記載のコンピューティングシステム。
【0152】
21.前記再帰型ニューラルネットワークは、複数のオーディオ特徴ベクトルを入力して単一ベクトルを出力するように構成され、
前記単一ベクトルは、前記複数のオーディオ特徴ベクトルのそれぞれから情報を取り入れる、条項13に記載のコンピューティングシステム。