(57)【特許請求の範囲】
【請求項１】
方法(400)であって、
音声合成デバイス(300)のデータ処理ハードウェア(112)において、合成音声(160)に変換するためのテキスト入力データ(302)を受信するステップと、
前記データ処理ハードウェア(112)によって、またユーザデバイス(110)に割り当てられている少なくとも1つのホットワード(130)の存在を検出するように訓練されているホットワード認識モデル(320)を使用して、前記テキスト入力データ(302)の発音が前記ホットワード(130)を含んでいるかどうかを決定するステップであって、前記ホットワード(130)は、前記ユーザデバイス(110)によって受信されたオーディオ入力データに含まれるときに前記ホットワード(130)および/または前記オーディオ入力データ内の前記ホットワード(130)の後に続く1つもしくは複数の他の語を処理するために前記ユーザデバイス(110)上でウェイクアッププロセスを起動するように構成される、ステップと、
前記テキスト入力データ(302)の前記発音が前記ホットワード(130)を含むときに、
前記テキスト入力データ(302)からオーディオ出力信号(304)を生成するステップと、
前記データ処理ハードウェア(112)によって、前記オーディオ出力信号(304)を出力するために前記オーディオ出力信号(304)をオーディオ出力デバイス(118)に提供するステップであって、前記オーディオ出力信号(304)は、前記ユーザデバイス(110)のオーディオキャプチャデバイス(116)によってキャプチャされたときに前記ユーザデバイス(110)上の前記ウェイクアッププロセスの起動を防ぐように構成される、ステップと
を含む、方法(400)。
【請求項２】
前記テキスト入力データ(302)の前記発音が前記ホットワード(130)を含むかどうかを決定するステップは、
前記テキスト入力データ(302)の単語、部分単語、またはテキスト読み上げシーケンスのうちの少なくとも1つが前記ホットワード(130)に関連付けられていると決定するステップを含む、請求項1に記載の方法(400)。
【請求項３】
前記ホットワード認識モデル(320)は、前記ユーザデバイス(110)に割り当てられている前記ホットワード(130)のテキスト読み上げシーケンスまたはオーディオ表現に対して訓練される、請求項1または2に記載の方法(400)。
【請求項４】
前記テキスト入力データ(302)は第1の言語を含み、
前記オーディオ出力信号(304)は前記テキスト入力データ(302)の異なる言語の翻訳を含む、請求項1から3のいずれか一項に記載の方法(400)。
【請求項５】
前記データ処理ハードウェア(112)によって、前記音声合成デバイス(300)の動作環境内の前記ユーザデバイス(110)の存在を検出するステップと、
前記データ処理ハードウェア(112)によって、前記ホットワード認識モデル(320)を訓練するために前記ユーザデバイス(110)に割り当てられている前記ホットワード(130)を取得するクエリを前記ユーザデバイス(110)に対して実行するステップと
をさらに含む、請求項1から4のいずれか一項に記載の方法(400)。
【請求項６】
前記データ処理ハードウェア(112)によって、前記ホットワード認識モデル(320)を訓練するために少なくとも前記ユーザデバイス(110)に割り当てられている前記ホットワード(130)を取得するクエリをリモートホットワードリポジトリ(142)に対して実行するステップをさらに含む、請求項1から5のいずれか一項に記載の方法(400)。
【請求項７】
前記テキスト入力データ(302)から前記オーディオ出力信号(304)を生成するステップは、
前記オーディオ出力信号(304)が合成音声(160)に対応していることを指示し、前記合成音声(160)内の前記ホットワード(130)の検出を無視することを前記ユーザデバイス(110)のホットワード検出器(200)に命令するウォーターマーク(352)を、前記オーディオ出力信号(304)に挿入するステップを含む、請求項1から6のいずれか一項に記載の方法(400)。
【請求項８】
前記テキスト入力データ(302)から前記オーディオ出力信号(304)を生成するステップは、
前記テキスト入力データ(302)に対するテキスト読み上げ出力を表す音声波形を決定するステップと、
前記ユーザデバイス(110)のホットワード検出器(200)による前記ホットワード(130)の検出を逃れるように前記ホットワード(130)に関連付けられている音を取り除くか、または改変することによって前記音声波形を改変するステップと
を含む、請求項1から6のいずれか一項に記載の方法(400)。
【請求項９】
前記テキスト入力データ(302)から前記オーディオ出力信号(304)を生成するステップは、
前記テキスト入力データ(302)を表す音声波形を決定するステップと、
前記ユーザデバイス(110)のホットワード検出器(200)による前記ホットワード(130)の検出を逃れるように前記音声波形をフィルタ処理するステップと
を含む、請求項1から6のいずれか一項に記載の方法(400)。
【請求項１０】
方法(500)であって、
ユーザデバイス(110)のホットワード検出器(200)において、ホットワード(130)を含むオーディオ入力データを受信するステップであって、前記ホットワード(130)は、前記ホットワード(130)および/または前記オーディオ入力データ内の前記ホットワード(130)の後に続く1つもしくは複数の他の語を処理するために前記ユーザデバイス(110)上でウェイクアッププロセスを起動するように構成される、ステップと、
前記ホットワード検出器(200)によって、前記オーディオ入力データが合成音声(160)を含むかどうかを、前記オーディオ入力データ内の前記ホットワード(130)および合成音声(160)の存在を検出するように構成されたホットワード検出器モデル(220)を使用して決定するステップと、
前記オーディオ入力データが合成音声(160)を含んでいるときに、前記ホットワード検出器(200)によって、前記ホットワード(130)および/または前記オーディオ入力データ内の前記ホットワード(130)の後に続く前記1つもしくは複数の他の語を処理するための前記ユーザデバイス(110)上の前記ウェイクアッププロセスの起動を防ぐステップと
を含み、
前記ホットワード検出器モデル(220)は、
前記ユーザデバイス(110)に割り当てられている前記ホットワード(130)を発語する一人または複数のユーザに対応する人間により生成されたオーディオデータを含むポジティブ訓練サンプル(212b)と、
1つまたは複数の音声合成器デバイス(300)から出力される合成音声発話(160)を含むネガティブ訓練サンプル(212a)と
を含む複数の訓練サンプルに対して訓練される、方法(500)。
【請求項１１】
前記ネガティブ訓練サンプル(212a)の前記合成音声発話(160)のうちの少なくとも1つは、前記ユーザデバイス(110)に割り当てられている前記ホットワード(130)を発音するものである、請求項10に記載の方法(500)。
【請求項１２】
前記ネガティブ訓練サンプル(212a)の前記合成音声発話(160)のうちのどの1つも、前記ユーザデバイス(110)に割り当てられている前記ホットワード(130)を発音するものでない、請求項10に記載の方法(500)。
【請求項１３】
前記オーディオ入力データが合成音声(160)を含むかどうかを決定するステップは、
前記ホットワード検出器モデル(220)を使用して、前記オーディオ入力データを文字起こしするまたは意味解釈することなく前記オーディオ入力データの音響特徴の分析を通じて前記オーディオ入力データ内の合成音声(160)の存在を検出するステップを含む、請求項10から12のいずれか一項に記載の方法(500)。
【請求項１４】
システム(100)であって、
音声合成デバイス(300)のデータ処理ハードウェア(112)と、
前記データ処理ハードウェア(112)と通信するメモリハードウェア(114)と
を備え、前記メモリハードウェア(114)は、前記データ処理ハードウェア(112)によって実行されたとき、前記データ処理ハードウェア(112)に、
合成音声(160)に変換するためのテキスト入力データ(302)を受信することと、
ユーザデバイス(110)に割り当てられている少なくとも1つのホットワード(130)の存在を検出するように訓練されているホットワード認識モデル(320)を使用して、前記テキスト入力データ(302)の発音が前記ホットワード(130)を含んでいるかどうかを決定することであって、前記ホットワード(130)は、前記ユーザデバイス(110)によって受信されたオーディオ入力データに含まれるときに前記ホットワード(130)および/または前記オーディオ入力データ内の前記ホットワード(130)の後に続く1つもしくは複数の他の語を処理するために前記ユーザデバイス(110)上でウェイクアッププロセスを起動するように構成される、決定することと、
前記テキスト入力データ(302)の前記発音が前記ホットワード(130)を含むときに、
前記テキスト入力データ(302)からオーディオ出力信号(304)を生成することと、
前記オーディオ出力信号(304)を出力するために前記オーディオ出力信号(304)をオーディオ出力デバイス(118)に提供することであって、前記オーディオ出力信号(304)は、前記ユーザデバイス(110)のオーディオキャプチャデバイス(116)によってキャプチャされたときに前記ユーザデバイス(110)上の前記ウェイクアッププロセスの起動を防ぐように構成される、提供することと
を含む動作を実行させる命令を記憶する、システム(100)。
【請求項１５】
前記テキスト入力データ(302)の前記発音が前記ホットワード(130)を含むかどうかを決定することは、
前記テキスト入力データ(302)の単語、部分単語、またはテキスト読み上げシーケンスのうちの少なくとも1つが前記ホットワード(130)に関連付けられていると決定することを含む、請求項14に記載のシステム(100)。
【請求項１６】
前記ホットワード認識モデル(320)は、前記ユーザデバイス(110)に割り当てられている前記ホットワード(130)のテキスト読み上げシーケンスまたはオーディオ表現に対して訓練される、請求項14または15に記載のシステム(100)。
【請求項１７】
前記テキスト入力データ(302)は第1の言語を含み、
前記オーディオ出力信号(304)は前記テキスト入力データ(302)の異なる言語の翻訳を含む、請求項14から16のいずれか一項に記載のシステム(100)。
【請求項１８】
前記動作は、
前記音声合成デバイス(300)の動作環境内の前記ユーザデバイス(110)の存在を検出することと、
前記ホットワード認識モデル(320)を訓練するために前記ユーザデバイス(110)に割り当てられている前記ホットワード(130)を取得するクエリを前記ユーザデバイス(110)に対して実行することと
をさらに含む、請求項14から17のいずれか一項に記載のシステム(100)。
【請求項１９】
前記動作は、前記ホットワード認識モデル(320)を訓練するために少なくとも前記ユーザデバイス(110)に割り当てられている前記ホットワード(130)を取得するクエリをリモートホットワードリポジトリ(142)に対して実行することをさらに含む、請求項14から18のいずれか一項に記載のシステム(100)。
【請求項２０】
前記テキスト入力データ(302)から前記オーディオ出力信号(304)を生成することは、
前記オーディオ出力信号(304)が合成音声(160)に対応していることを指示し、前記合成音声(160)内の前記ホットワード(130)の検出を無視することを前記ユーザデバイス(110)のホットワード検出器(200)に命令するウォーターマーク(352)を、前記オーディオ出力信号(304)に挿入することを含む、請求項14から19のいずれか一項に記載のシステム(100)。
【請求項２１】
前記テキスト入力データ(302)から前記オーディオ出力信号(304)を生成することは、
前記テキスト入力データ(302)に対するテキスト読み上げ出力を表す音声波形を決定することと、
前記ユーザデバイス(110)のホットワード検出器(200)による前記ホットワード(130)の検出を逃れるように前記ホットワード(130)に関連付けられている音を取り除くか、または改変することによって前記音声波形を改変することと
を含む、請求項14から19のいずれか一項に記載のシステム(100)。
【請求項２２】
前記テキスト入力データ(302)から前記オーディオ出力信号(304)を生成することは、
前記テキスト入力データ(302)を表す音声波形を決定することと、
前記ユーザデバイス(110)のホットワード検出器(200)による前記ホットワード(130)の検出を逃れるように前記音声波形をフィルタ処理することと
を含む、請求項14から19のいずれか一項に記載のシステム(100)。
【請求項２３】
システム(100)であって、
ユーザデバイス(110)のデータ処理ハードウェア(112)と、
前記データ処理ハードウェア(112)と通信するメモリハードウェア(114)と
を備え、前記メモリハードウェア(114)は、前記データ処理ハードウェア(112)によって実行されたとき、前記データ処理ハードウェア(112)に、
前記ユーザデバイス(110)のホットワード検出器(200)において、ホットワード(130)を含むオーディオ入力データを受信することであって、前記ホットワード(130)は、前記ホットワード(130)および/または前記オーディオ入力データ内の前記ホットワード(130)の後に続く1つもしくは複数の他の語を処理するために前記ユーザデバイス(110)上でウェイクアッププロセスを起動するように構成される、受信することと、
前記ホットワード検出器(200)によって、前記オーディオ入力データが合成音声(160)を含むかどうかを、前記オーディオ入力データ内の前記ホットワード(130)および合成音声(160)の存在を検出するように構成されたホットワード検出器モデル(220)を使用して決定することと、
前記オーディオ入力データが合成音声(160)を含んでいるときに、前記ホットワード検出器(200)によって、前記ホットワード(130)および/または前記オーディオ入力データ内の前記ホットワード(130)の後に続く前記1つもしくは複数の他の語を処理するための前記ユーザデバイス(110)上の前記ウェイクアッププロセスの起動を防ぐことと
を含む動作を実行させる命令を記憶し、
前記ホットワード検出器モデル(220)は、
前記ユーザデバイス(110)に割り当てられている前記ホットワード(130)を発語する一人または複数のユーザに対応する人間により生成されたオーディオデータを含むポジティブ訓練サンプル(212b)と、
1つまたは複数の音声合成器デバイス(300)から出力される合成音声発話(160)を含むネガティブ訓練サンプル(212a)と
を含む複数の訓練サンプルに対して訓練される、システム(100)。
【請求項２４】
前記ネガティブ訓練サンプル(212a)の前記合成音声発話(160)のうちの少なくとも1つは、前記ユーザデバイス(110)に割り当てられている前記ホットワード(130)を発音するものである、請求項23に記載のシステム(100)。
【請求項２５】
前記ネガティブ訓練サンプル(212a)の前記合成音声発話(160)のうちのどの1つも、前記ユーザデバイス(110)に割り当てられている前記ホットワード(130)を発音するものでない、請求項23に記載のシステム(100)。
【請求項２６】
前記オーディオ入力データが合成音声(160)を含むかどうかを決定することは、
前記ホットワード検出器モデル(220)を使用して、前記オーディオ入力データを文字起こしするまたは意味解釈することなく前記オーディオ入力データの音響特徴の分析を通じて前記オーディオ入力データ内の合成音声(160)の存在を検出することを含む、請求項23から25のいずれか一項に記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ホットワード認識(hotword-aware)音声合成に関するものである。
【背景技術】
【０００２】
音声認識対応(speech-enabled)環境(たとえば、家庭、職場、学校、自動車など)では、ユーザはクエリまたはコマンドを声に出して、クエリを捌き回答する、および/またはコマンドに基づき機能を実行するコンピュータベースシステムに対して発語することができる。音声認識対応環境は、環境の様々な部屋またはエリアにわたって分散されている、接続されたマイクロホンデバイスのネットワークを使用して実装され得る。これらのデバイスは、ホットワードを使用して、発話が環境内に存在する別の個人に向けられるのと対照的に、与えられた発話がシステムにいつ向けられたかを識別するのを助け得る。したがって、これらのデバイスは、スリープ状態またはハイバネーション状態で動作し、検出された発話がホットワードを含んでいるときのみ目覚めるものとしてよい。デバイスが検出された発話内のホットワードによって目覚めた後、デバイスは、ホットワードおよび/またはそのホットワードの後に続く1つもしくは複数の語に対してさらなる処理を実行する。言い換えると、ホットワードおよび/または1つもしくは複数の語は、デバイスによって実行されるべきクエリもしくは音声コマンドを形成する。音声合成器が音声認識対応環境内でさらに行き渡るにつれ、ホットワードを含む、またはホットワードのように聞こえる他の単語/部分単語(sub-word)を含む、合成された発話は、デバイスがスリープ/ハイバネーション状態から目覚め、合成された発話の処理を、合成された発話がそのデバイスに向けられていないとしても開始することを引き起こし得る。別の言い方をすると、合成音声は、意図せずにデバイスを活性化し、音声合成器のユーザを失望させることが多い。その結果、環境内で発話を受け取ったシステムは、システムに向けられた人間の音声の発話とシステムに向けられていない近くのあるデバイスから出力された合成音声の発話とを識別する何らかの手段を有していなければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ユーザデバイス上でウェイクアッププロセスの起動を防ぐための方法が提供される。この方法は、音声合成デバイスのデータ処理ハードウェアにおいて、合成音声に変換するためのテキスト入力データを受信することと、データ処理ハードウェアによって、またユーザデバイスに割り当てられている少なくとも1つのホットワードの存在を検出するように訓練されているホットワード認識モデルを使用して、テキスト入力データの発音がホットワードを含んでいるかどうかを決定することであって、ホットワードはユーザデバイスによって受信されたオーディオ入力データに含まれるときにホットワードおよび/またはオーディオ入力データ内のホットワードの後に続く1つもしくは複数の他の語を処理するためにユーザデバイス上でウェイクアッププロセスを起動するように構成される、決定することとを含む。テキスト入力データの発音がホットワードを含むときに、この方法は、また、テキスト入力データからオーディオ出力信号を発生することと、データ処理ハードウェアによって、オーディオ出力信号をオーディオ出力デバイスに提供してオーディオ出力信号を出力することとを含む。オーディオ出力信号はユーザデバイスのオーディオキャプチャデバイスによってキャプチャされたときにユーザデバイス上のウェイクアッププロセスの起動を防ぐように構成される。
【課題を解決するための手段】
【０００４】
本開示の実装形態は、次の任意選択の特徴のうちの1つまたは複数を含み得る。いくつかの実装形態において、テキスト入力データの発音がホットワードを含むかどうかを決定することは、テキスト入力データの単語、部分単語、またはテキスト読み上げシーケンス(text-to-speech sequence)のうちの少なくとも1つがホットワードに関連付けられていると決定することを含む。ホットワード認識モデルは、ユーザデバイスに割り当てられているホットワードのテキスト読み上げシーケンスまたはオーディオ表現に対して訓練され得る。それに加えて、テキスト入力データは第1の言語を含み、オーディオ出力信号はテキスト入力データの異なる言語の翻訳を含み得る。
【０００５】
いくつかの例において、この方法は、また、データ処理ハードウェアによって、音声合成デバイスの動作環境内のユーザデバイスの存在を検出することと、データ処理ハードウェアによって、ホットワード認識モデルを訓練するためにユーザデバイスに割り当てられているホットワードを取得するクエリをユーザデバイスに対して実行することとを含む。それに加えて、または代替的に、この方法は、ホットワード認識モデルを訓練するために少なくともユーザデバイスに割り当てられているホットワードを取得するクエリをリモートホットワードリポジトリに対して実行することを含み得る。
【０００６】
いくつかの実装形態において、テキスト入力データからオーディオ出力信号を発生することは、オーディオ出力信号が合成音声に対応していることを指示し、合成音声内のホットワードの検出を無視することをユーザデバイスのホットワード検出器に命令するウォーターマークを、オーディオ出力信号内に挿入することを含む。他の実装形態において、オーディオデータを生成することは、テキスト入力データに対するテキスト読み上げ出力を表す音声波形(speech waveform)を決定することと、ユーザデバイスのホットワード検出器によるホットワードの検出を逃れるようにホットワードに関連付けられている音を取り除くか、または改変することによって音声波形を改変することとを含む。さらに別の実装形態において、オーディオデータを生成することは、テキスト入力データを表す音声波形を決定することと、ユーザデバイスのホットワード検出器によるホットワードの検出を逃れるようにオーディオ波形をフィルタ処理することとを含む。
【０００７】
本開示の別の態様は、ユーザデバイス上でウェイクアッププロセスの起動を防ぐための方法を提供する。この方法は、ユーザデバイスのホットワード検出器において、ホットワードを含むオーディオ入力データを受信することであって、ホットワードはホットワードおよび/またはオーディオ入力データ内のホットワードの後に続く1つもしくは複数の他の語を処理するためにユーザデバイス上でウェイクアッププロセスを起動するように構成される、受信することと、ホットワード検出器によって、オーディオ入力データが合成音声を含むかどうかを、オーディオ入力データ内のホットワードおよび合成音声の存在を検出するように構成されたホットワード検出器モデルを使用して決定することと、オーディオ入力データが合成音声を含んでいるときに、ホットワード検出器によって、ホットワードおよび/またはオーディオ入力データ内のホットワードの後に続く1つもしくは複数の他の語を処理するためのユーザデバイス上のウェイクアッププロセスの起動を防ぐこととを含む。
【０００８】
この態様は、以下のオプションの特徴のうちの1つまたは複数を含み得る。いくつかの実装形態において、ホットワード検出器モデルは、ポジティブ訓練サンプルおよびネガティブ訓練サンプルを含む複数の訓練サンプルに対して訓練される。ポジティブ訓練サンプルは、ユーザデバイスに割り当てられているホットワードを発語する一人または複数のユーザに対応する人間により生成されたオーディオデータを含む。ネガティブ訓練サンプルは、1つまたは複数の音声合成器デバイスから出力される合成音声発話を含む。いくつかの例において、ネガティブ訓練サンプルの合成音声発話のうちの少なくとも1つは、ユーザデバイスに割り当てられているホットワードを発音するものである。他の例では、ネガティブ訓練サンプルの合成音声発話のうちのどれも、ユーザデバイスに割り当てられているホットワードを発音するものでない。オーディオ入力データが合成音声を含むかどうかを決定することは、ホットワード検出器モデルを使用して、オーディオ入力データを文字起こしするまたは意味解釈することなくオーディオ入力データの音響特徴(acoustic feature)の分析を通じてオーディオ入力データ内の合成音声の存在を検出することを含み得る。
【０００９】
本開示の別の態様は、ユーザデバイス上でウェイクアッププロセスの起動を防ぐためのシステムを提供する。システムは、音声合成デバイスのデータ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアとを備える。メモリハードウェアは、データ処理ハードウェアによって実行されたときに、データ処理ハードウェアに、合成音声に変換するためのテキスト入力データを受信することと、ユーザデバイスに割り当てられている少なくとも1つのホットワードの存在を検出するように訓練されているホットワード認識モデルを使用して、テキスト入力データの発音がホットワードを含んでいるかどうかを決定することであって、ホットワードはユーザデバイスによって受信されたオーディオ入力データに含まれるときにホットワードおよび/またはオーディオ入力データ内のホットワードの後に続く1つもしくは複数の他の語を処理するためにユーザデバイス上でウェイクアッププロセスを起動するように構成される、決定することとを含む動作を実行させる命令を記憶する。テキスト入力データの発音がホットワードを含むときに、これらの動作は、また、テキスト入力データからオーディオ出力信号を発生することと、オーディオ出力信号をオーディオ出力デバイスに提供してオーディオ出力信号を出力することとを含む。オーディオ出力信号はユーザデバイスのオーディオキャプチャデバイスによってキャプチャされたときにユーザデバイス上のウェイクアッププロセスの起動を防ぐように構成される。
【００１０】
本開示の実装形態は、次の任意選択の特徴のうちの1つまたは複数を含み得る。いくつかの実装形態において、テキスト入力データの発音がホットワードを含むかどうかを決定することは、テキスト入力データの単語、部分単語、またはテキスト読み上げシーケンスのうちの少なくとも1つがホットワードに関連付けられていると決定することを含む。ホットワード認識モデルは、ユーザデバイスに割り当てられているホットワードのテキスト読み上げシーケンスまたはオーディオ表現に対して訓練され得る。それに加えて、テキスト入力データは第1の言語を含み、オーディオ出力信号はテキスト入力データの異なる言語の翻訳を含み得る。
【００１１】
いくつかの例において、これらの動作は、また、音声合成デバイスの動作環境内のユーザデバイスの存在を検出することと、ホットワード認識モデルを訓練するためにユーザデバイスに割り当てられているホットワードを取得するクエリをユーザデバイスに対して実行することとを含む。それに加えて、または代替的に、これらの動作は、また、ホットワード認識モデルを訓練するために少なくともユーザデバイスに割り当てられているホットワードを取得するクエリをリモートホットワードリポジトリに対して実行することを含み得る。
【００１２】
いくつかの実装形態において、テキスト入力データからオーディオ出力信号を発生することは、オーディオ出力信号が合成音声に対応していることを指示し、合成音声内のホットワードの検出を無視することをユーザデバイスのホットワード検出器に命令するウォーターマークを、オーディオ出力信号内に挿入することを含む。他の実装形態において、オーディオデータを生成することは、テキスト入力データに対するテキスト読み上げ出力を表す音声波形を決定することと、ユーザデバイスのホットワード検出器によるホットワードの検出を逃れるようにホットワードに関連付けられている音を取り除くか、または改変することによって音声波形を改変することとを含む。さらに別の実装形態において、オーディオデータを生成することは、テキスト入力データを表す音声波形を決定することと、ユーザデバイスのホットワード検出器によるホットワードの検出を逃れるようにオーディオ波形をフィルタ処理することとを含む。
【００１３】
本開示の別の態様は、ユーザデバイス上でウェイクアッププロセスの起動を防ぐためのシステムを提供する。システムは、ユーザデバイスのデータ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアとを備える。メモリハードウェアは、データ処理ハードウェアによって実行されたときに、データ処理ハードウェアに、ユーザデバイスのホットワード検出器において、ホットワードを含むオーディオ入力データを受信することであって、ホットワードはホットワードおよび/またはオーディオ入力データ内のホットワードの後に続く1つもしくは複数の他の語を処理するためにユーザデバイス上でウェイクアッププロセスを起動するように構成される、受信することと、ホットワード検出器によって、オーディオ入力データが合成音声を含むかどうかを、オーディオ入力データ内のホットワードおよび合成音声の存在を検出するように構成されたホットワード検出器モデルを使用して決定することと、オーディオ入力データが合成音声を含んでいるときに、ホットワード検出器によって、ホットワードおよび/またはオーディオ入力データ内のホットワードの後に続く1つもしくは複数の他の語を処理するためのユーザデバイス上のウェイクアッププロセスの起動を防ぐこととを含む動作を実行させる命令を記憶する。
【００１４】
この態様は、以下のオプションの特徴のうちの1つまたは複数を含み得る。いくつかの実装形態において、ホットワード検出器モデルは、ポジティブ訓練サンプルおよびネガティブ訓練サンプルを含む複数の訓練サンプルに対して訓練される。ポジティブ訓練サンプルは、ユーザデバイスに割り当てられているホットワードを発語する一人または複数のユーザに対応する人間により生成されたオーディオデータを含む。ネガティブ訓練サンプルは、1つまたは複数の音声合成器デバイスから出力される合成音声発話を含む。いくつかの例において、ネガティブ訓練サンプルの合成音声発話のうちの少なくとも1つは、ユーザデバイスに割り当てられているホットワードを発音するものである。他の例では、ネガティブ訓練サンプルの合成音声発話のうちのどれも、ユーザデバイスに割り当てられているホットワードを発音するものでない。オーディオ入力データが合成音声を含むかどうかを決定することは、ホットワード検出器モデルを使用して、オーディオ入力データを文字起こしするまたは意味解釈することなくオーディオ入力データの音響特徴の分析を通じてオーディオ入力データ内の合成音声の存在を検出することを含み得る。
【００１５】
本開示の1つまたは複数の実装形態の詳細が、添付図面と以下の説明とで述べられる。他の態様、特徴、および利点は、説明と図面、さらには特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１６】
【図１】例示的な音声認識対応環境の概略図である。
【図２】音声認識対応環境からの例示的なホットワード検出器の概略図である。
【図３Ａ】ホットワード認識訓練器を組み込んだ例示的な合成音声システムの概略図である。
【図３Ｂ】ホットワード認識訓練器を組み込んだ例示的な合成音声システムの概略図である。
【図４】音声合成デバイスにおいて合成音声に変換するためテキスト入力データ内のホットワードの存在を検出する方法に対する動作の例示的な割り振りのフローチャートである。
【図５】オーディオ入力データが合成音声を含むときにユーザデバイス上でウェイクアッププロセスが起動するのを防ぐ方法に対する動作の例示的な割り振りのフローチャートである。
【図６】本明細書において説明されているシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイスの概略図である。
【発明を実施するための形態】
【００１７】
様々な図面内の類似の参照記号は、類似の要素を示す。
【００１８】
音声認識対応環境では、環境(たとえば、家庭、職場、学校などの部屋または他のエリア)全体にわたって分散されている接続されたマイクロホンデバイスのネットワークを使用して実装され得る、コンピュータベースシステムをユーザがインタラクティブに操作する方式は、音声入力(すなわち、オーディオコマンド)を通じて、その手段単独でないとしても、主に、なされるように設計される。より多くのデバイスが、オーディオコマンドを使用してユーザデバイスの動作を命令している。合意によって、システムの注目を喚起するように発語される所定の語(すなわち、キーワード)が予約される、「ホットワード」(「注目語」、「ウェイクアップフレーズ/ワード」、「トリガーフレーズ」、または「ボイスアクション起動コマンド」とも称される)の使用を通じて、システムは、システムに向けられた発話(すなわち、発話内のホットワードの後に続く1つまたは複数の語を処理するためにウェイクアッププロセスを起動する)と環境内の個人に向けられた発話とを識別することができる。別の言い方をすると、ユーザデバイスは低電力モードで動作し得るが、ホットワードを検出した後、ユーザデバイスはマイクロホンによってキャプチャされたすべてのオーディオデータが検出され、処理され、分析されるようにフルパワーモードに切り替わり得る。しかしながら、音声合成器(speech synthesizer)(たとえば、テキスト読み上げ(TTS: text-to-speech)システム)からの合成音声の出力が音声認識対応環境内でますます広まるにつれ、付近のユーザデバイスに割り当てられているホットワード、またはホットワードを構成するもしくはホットワードのように聞こえる単語もしくは部分単語を含む合成音声は、意図せずにユーザデバイス上のホットワード検出器(たとえば、ホットワーダ(hotworder))に、ホットワードの存在を検出させ、合成音声内の語を処理するためにウェイクアッププロセスを起動させ得る。本明細書で使用される場合、「合成音声(synthesized speech)」および「合成発話(synthesized utterance)」という用語は交換可能に使用される。本明細書で使用される場合、TTSシステムまたは音声合成デバイスから出力される合成音声は、非可聴(non-audible)由
来のデータ入力からの機械出力を含む。機械出力は、TTSシステムに関連付けられているデバイスによって動作が実行されることをユーザに通知するか、またはTTSシステムに関連付けられているデバイスにユーザによって提供された命令を受け取ったことを通知することができる。したがって、合成音声は、テレビ、マルチメディアセットトップボックス、ステレオ、ラジオ、コンピュータシステム、または放送音声を出力することができる他の種類のデバイスから出力される放送音声から区別可能である。
【００１９】
たとえば、ユーザの家庭などの、音声認識対応環境において、ユーザは、1つまたは複数のモバイルデバイス(たとえば、スマートフォンおよび/またはタブレット)と、スマートスピーカー/ディスプレイデバイスとを有し得る。スマートスピーカー/ディスプレイデバイスは、合成音声を出力し、さらには音声クエリまたは音声コマンドの前に対応するユーザデバイスに割り当てられているホットワードが付くときに実行されるべき音声クエリまたは音声コマンドの処理をトリガーするためにデジタルアシスタントとして動作し得る。ユーザの方に向けられているデバイスのうちの1つ(たとえば、スマートスピーカー)から出力される合成音声が環境内の他のデバイスのうちの1つ(たとえば、ユーザのタブレット)に割り当てられているホットワードを構成する1つもしくは複数の単語または部分単語を含む。たとえば、「Dog」という語が、ユーザのタブレットにホットワードとして割り当てられ、合成音声の一部が、「hotdog」という語を発声するものであり得る。その結果、他のデバイスのマイクロホンがその合成音声をキャプチャし、ホットワード検出器が「hot」という語が前に付く「dog」という語を検出し、ユーザのタブレットをトリガーし、意図せずにウェイクアッププロセスを起動し得る。したがって、合成音声内のホットワードの発音は、意図せずに、付近の音声認識対応デバイスをスリープ/ハイバネーション状態から付近の音声認識対応デバイスがその合成音声を処理する(すなわち、文字起こししおよび/または意味解釈する)ことを開始するアクティブ状態に遷移させ得る。
【００２０】
本開示の目的は、TTSオーディオ(たとえば、合成音声)によって生成される、ホットワード、またはホットワードのように聞こえる他の語の使用によって引き起こされる1つまたは複数の他のユーザデバイスのウェイクアッププロセスの起動を回避することである。これは、ウェイクアッププロセスの意図しない起動を防ぎ、それによって、ユーザデバイスがより長い間低電力状態に留まり節電することを可能にする。
【００２１】
合成発話内のホットワードの発音を検出したことに応答してウェイクアッププロセスを意図せずに起動することを防ぐために、本明細書の実装形態は、ホットワードの存在を検出する際に使用するホットワード認識モデルを生成するために付近のデバイスに割り当てられているホットワードをTTSシステムの訓練パイプライン内に投入することを対象とする。ホットワード認識モデルは、付近のデバイスに割り当てられているホットワードの任意の組合せ、特定のユーザによって所有制御される1つもしくは複数のデバイスに関連付けられているホットワードのリスト、および/またはウェイクアッププロセスを起動するために任意の所与のデバイスに割り当てられ得るすべての潜在的なホットワードのリストに対して訓練され得る。たとえば、音声合成器デバイスは、ホットワード認識モデルを使用して、合成音声に変換するためのテキスト入力データの発音がホットワードを含むかどうかを決定するものとしてよい。いくつかの例において、ホットワード認識モデルは、ホットワードのシーケンスまたは文字列などのホットワードのオーディオ表現(たとえば、音響特徴)に対して訓練される。したがって、合成音声に変換するためのテキスト入力データ(テキストおよびコンテンツ)を受信する音声合成デバイスは、テキスト入力データを前処理して個別のシーケンス(TTSシーケンス)を取得し、ホットワード認識モデルを使用して、聞こえるように発音されたときに、TTSシーケンスとホットワード認識モデルから取得されたホットワードシーケンスとの間の一致もしくは類似性を識別することによってホットワードを構成するか、またはホットワードの音の似たフレーズを構成するシーケンスを認識するものとしてよい。たとえば、「dawg」というフレーズを含むテキスト入力データであれば、聞こえるように発音されたときに「dog」という語に対するホットワードの音の似たフレーズを構成するであろう。したがって、ホットワード認識モデルは、テキスト入力データの発音がホットワードを含む(たとえば、ホットワードを構成するか、またはホットワードの音の似たフレーズを構成する)かどうかを検出するように訓練される。TTSシステムは、複数の言語でホットワードまたはホットワードの音の似たフレーズを検出する訓練がホットワード認識モデルに対してなされるように複数の言語に関して訓練された多言語TTSシステムを含み得る。
【００２２】
ホットワード認識モデルを使用することと対照的に、音声合成デバイスが単にテキスト形式の知られているホットワードのログまたはホワイトリストを保持していた場合、音声合成デバイスは、ホットワードを構成するテキスト入力データ内のスペルが間違っている単語を認識することに失敗し、ホットワードを構成する単語内の部分単語を認識することに失敗するであろう。たとえば、音声合成デバイスが単に知られているホットワードのホワイトリストを参照した場合、音声合成デバイスは、「dog」という語に対するホットワードを構成するフレーズ「dawg」に対するテキスト入力データを認識することに失敗し(「dawg」のスペリングがホワイトリストに含まれていなかった場合)、「hotdog」というフレーズに対するテキスト入力データ内の部分単語「dog」を認識することに失敗するであろう(「hotdog」がホワイトリストに含まれていなかった場合)。
【００２３】
実装形態は、音声合成デバイスがテキスト入力データの発音がホットワードを含むと決定した後、オーディオ出力信号が付近のユーザデバイスのマイクロホンによってキャプチャされたときに付近のユーザデバイス上でウェイクアッププロセスを起動するのを防ぐように構成された合成音声に対するオーディオ出力信号を発生する音声合成デバイスの波形発生器をさらに備える。いくつかの例において、波形発生器は、出力オーディオ信号を発生するためにユニット選択ロジックを使用する。これらの例では、波形発生器は、オーディオシーケンス上で知られているウォーターマークを放出するものとしてよく、知られているウォーターマークは、付近のユーザデバイス上のホットワード検出器に対して識別可能であり、したがって、付近のユーザデバイス上のホットワード検出器は、オーディオ出力信号がホットワードを発音するものであっても知られているウォーターマークを含むオーディオ出力信号を単に無視することになる。代替的に、ユニット選択ロジックは、付近のユーザデバイスのホットワード検出器によって使用されるホットワード検出モデルに対して敵対的であることが知られている合成音声(たとえば、オーディオ出力信号)を発生するために使用されるユニットの代替的バリエーション(またはユニットのサブセット)を選択し得る。ここで、ホットワード検出モデルは、ホットワード検出器が、推論時にこれらのユニットを含む発話を無視しそれによって発話がホットワードを含んでいるときでもウェイクアッププロセスの起動を防ぐことを、知るようにこれらの同じ敵対的ユニットに対して訓練されるものとしてよい。さらに、波形発生器は、ホットワード検出器が合成音声を検出することを無視するか、または検出に失敗するように、付近のユーザデバイスのホットワード検出器に対抗して訓練されたフィルタを使用して合成音声を歪ませることも可能である。
【００２４】
他の例では、波形発生器は、ニューラルネットワーク(たとえば、WaveNetに基づく)を使用してテキスト入力データを表す合成音素のオーディオシーケンスを出力することによって出力オーディオ信号を発生し得る。これらの例において、合成音素の一部がホットワードを形成するときに、波形発生器は、ホットワードが発音されたとしても付近のユーザデバイスがオーディオ出力信号を単に無視するように付近のユーザデバイス上のホットワード検出器には識別可能である、知られているウォーターマークをオーディオシーケンス上で放出することをニューラルネットワークに行わせる追加の条件付け情報を提供し得る。言い換えると、ウォーターマークの存在は、発音されたホットワードを無視することを付近のユーザデバイスに命令するために使用される。代替的に、ホットワードを構成する(またはホットワードの音の似たフレーズを構成する)、ニューラルネットワークからの合成音声出力のセグメントは、付近のユーザデバイスのホットワード検出器による検出に対して敵対的である方式で出力オーディオ信号を発生するように修正され(たとえば、歪まされ)得る。
【００２５】
それに加えて、または代替的に、実装形態は、合成音声発話をホットワード検出器の訓練パイプライン内に投入しホットワード検出器モデルを生成することをさらに含み得る。ホットワード検出器モデルは、ホットワード検出器によって受信されたオーディオ入力データ内の合成音声の存在を検出するように構成される。たとえば、ホットワード検出器訓練器は、ホットワード検出器を、発話内のホットワードを検出し、発話が合成音声、たとえば、音声合成デバイス(たとえば、TTSシステム)から出力されたオーディオデータを含むか否かをさらに決定するように訓練し得る。したがって、ユーザデバイス上のマイクロホンがユーザデバイスに割り当てられているホットワードを含む発話をキャプチャしたときに、ホットワード検出器は、発話が合成音声を含むとホットワード検出器が検出した場合にキャプチャされた発話内のホットワードの存在を単に無視し、それによってユーザデバイス上のウェイクアッププロセスの起動を防ぐ。いくつかの例では、ホットワード検出器モデルは、ユーザデバイスに割り当てられているホットワードを一人または複数のユーザが発語することに対応する人間により生成されたオーディオデータを含むポジティブ訓練例、および1つまたは複数の音声合成器デバイスから出力された合成音声発話を含むネガティブ訓練サンプルに対して訓練される。オーディオ入力データ内の合成音声の存在を検出するようにホットワード検出器モデルを訓練することによって、ホットワード検出器は、有利には、ホットワード検出器モデルを使用し、オーディオ入力データを文字起こしするまたは意味解釈することなく受信されたオーディオ入力データの音響特徴の分析を通じて合成音声の存在を検出し得る。
【００２６】
図1を参照すると、いくつかの実装形態において、音声認識対応システム100は、1つまたは複数のユーザデバイス110、110a〜bを含む。たとえば、音声認識対応システム100は、互いの近くに配置され、リモートサーバ140(たとえば、クラウドコンピューティング環境)に、ネットワーク130を介して接続されている2つのユーザデバイス110a、110bを含む。ユーザデバイス110a、110bは、互いに通信する場合もしない場合もある。各ユーザデバイス110は、ユーザ10からの発話150に対応する音をキャプチャするように構成される。ユーザ10は、発話150をクエリまたはコマンドとして声に出して発語するものとしてよい。音声認識対応システム100は、クエリに回答すること、および/またはコマンドを実行させることによってクエリまたはコマンドを捌くものとしてよい。各ユーザデバイス110は、データ処理ハードウェア112と、データ処理ハードウェア112と通信し、データ処理ハードウェア112によって実行されたときに、データ処理ハードウェア112に1つまたは複数の動作を実行させる命令を記憶するメモリハードウェア114とを備える。各ユーザデバイス110は、音声認識対応システム100内の発語された発話150をキャプチャし、電気信号に変換するためのオーディオキャプチャデバイス(たとえば、マイクロホン)116と、可聴オーディオ信号(たとえば、ユーザデバイス110からの出力オーディオデータとして)を伝えるための音声出力デバイス(たとえば、スピーカー)118とをさらに備える。
【００２７】
各ユーザデバイス110は、ユーザ10に関連付けられ、発話150がホットワード130で始まるときに関連付けられているユーザ10からの発話150を処理することができるものとしてよい。ホットワード130は、ユーザデバイス110のいずれかに、システムに対する音声入力としてその後発語されるフレーズを取り扱うことを行わせる発語フレーズであってよい。言い換えると、ホットワード130は、発語された入力が音声コマンドとして取り扱われるべきであることを明示的に指示する発語フレーズであってよい。すなわち、ホットワード130は、ホットワード130またはホットワード130の後に続く1つもしくは複数の語上でエンドポインティング、自動音声認識、または意味解釈をトリガーする発語フレーズであってよい。言い換えると、「ホットワード」と言った場合、これは、指定されたホットワードであるか、または指定されたホットワードの少なくとも一部に類似しているように聞こえる(たとえば、他の言語におけるホットワードに似ているように聞こえる)単語またはフレーズを指す。
【００２８】
発話150内にホットワード130が存在することを検出するために、各ユーザデバイス110はホットワード検出器200を備える。ホットワード検出器200は、発話150に対応する音を受け取り、発話150がホットワード130として指定されるか、または割り当てられている語を含むかどうかを決定する。いくつかの例において、ホットワード検出器200は、キャプチャされた音の音響特徴を発話150から検出する。ここで、音響特徴がホットワード130に特徴的なものであるときに、ホットワード検出器200はホットワード103を識別する。ホットワード130が検出されると、ホットワード検出器200は、ユーザデバイス110に対してウェイクアッププロセスおよびさらなるプロセスを起動し得る。他の構成において、ホットワード検出器200は、ホットワード130の検出をユーザデバイス110の他のコンポーネントに伝達する。いくつかの実装形態において、ホットワード130を効率的に、また効果的に検出するために、ホットワード検出器200は、発話150がホットワード130を含むかどうかをどのように識別するかを学習するように、データまたは発語の例を用いてホットワード検出器モデル220によって訓練される。たとえば、ホットワード検出器200は、機械学習モデルによって、ホットワード130を識別するように教えられる。
【００２９】
いくつかの例において、ユーザ10またはユーザデバイス110は、ユーザ10および/またはユーザデバイス110にとって関心のあるホットワード130を識別するためのホットワードクエリ132を生成する。いくつかの実装形態において、ユーザデバイス110は、ネットワーク120を介してリモートサーバ140と通信して、リモートサーバ140と通信しているホットワードリポジトリ142からホットワード130を識別し、および/または受信する。いくつかの例において、ホットワードクエリ132は、ユーザ識別子に関連付けられているユーザ10によって所有されるユーザデバイス110に割り当てられているすべてのホットワード130にマッピングされるユーザ識別子を含み得る。それに加えて、または代替的に、ユーザデバイス110は、各付近のユーザデバイス110に関連付けられている識別子(たとえば、媒体アクセス制御(MAC)識別子)を取得し、クエリ132内の識別子を提供してリポジトリ142から各識別子に関連付けられているすべてのホットワード130を取得するものとしてよい。ホットワードリポジトリ142は、付近のデバイス110に割り当てられているホットワード130の任意の組合せ、特定のユーザ10によって所有および/または制御される1つもしくは複数のデバイス110に関連付けられているホットワード130のリスト、および/またはウェイクアッププロセスを起動するために任意の所与のデバイス110に割り当てられ得るすべての潜在的なホットワード130(たとえば、特定の種類のデバイス110に関連付けられている大域的ホットワード)のリストを含み得る。ホットワードを生成することによって、ホットワード130を受信してホットワード検出器200に対するロバストなホットワード訓練プロセスを形成するものとしてよい。図1を参照すると、各ユーザデバイス110は、ホットワードクエリ132を1つまたは複数の他のユーザデバイス110に送信し、および/または受信して、他のユーザデバイス110に割り当てられているホットワード130を理解し、および/またはコンパイルするように構成される。
【００３０】
各ユーザデバイス110は、音声合成デバイスとしてさらに構成され得る。音声合成デバイスとして、ユーザデバイス110は、合成音声160を生成する、テキスト読み上げ(TTS)システムなどの音声合成器300をさらに備え得る。たとえば、合成音声160は、ユーザ10から受けたクエリに対する回答を聞こえるように伝達し得る。いくつかの例において、音声合成器300のすべての機能は、ユーザデバイス110上に置いてもよい。他の例では、音声合成器300の一部がユーザデバイス110上に置かれ、音声合成器300の残り部分は分散環境、たとえば、クラウドコンピューティング環境140上に置かれる。
【００３１】
いくつかの例において、一方のデバイス110(たとえば、第1のユーザデバイス110、110a)上の音声合成器300は、他方のユーザデバイス110(たとえば、第2のユーザデバイス110b)に割り当てられているホットワード130のテキスト読み上げシーケンスまたはオーディオ表現に対して訓練される。たとえば、一方のデバイス110に関連付けられている音声合成器300(たとえば、TTSシステム)の訓練パイプライン(たとえば、ホットワード認識訓練器310)は、ホットワード130の存在を検出する際に使用するホットワード認識モデル320を生成し得る。ホットワード認識モデル320は、付近のデバイス110に割り当てられているホットワード130の任意の組合せ、特定のユーザ10によって所有および/または制御される1つもしくは複数のデバイス110に関連付けられているホットワード130のリスト、および/またはウェイクアッププロセスを起動するために任意の所与のデバイス110に割り当てられ得るすべての潜在的なホットワード130(たとえば、特定の種類のデバイス110に関連付けられている大域的ホットワード)のリストに対して訓練され得る。それに加えて、または代替的に、ホットワードクエリ132は、ホットワード認識モデル320に対するホットワード130を取得するために使用され得る。各ユーザデバイス110の音声合成器300は、合成音声160を生成するための波形発生器312をさらに含み得る。波形発生器312は、出力オーディオデータの形態の合成音声160を生成するためにユニット選択ロジックを使用し得る。いくつかの例において、波形発生器312は、ニューラルネットワークを使用して出力オーディオデータを生成する。例は、合成音声内のホットワード130の存在を検出するためにホットワード認識モデル320を使用することを主眼としているが、ホットワード認識モデル320は、限定することなく、放送音声などの、他の種類の指定されたオーディオ内のホットワード320を検出するように同様に訓練され得る。
【００３２】
図示されている例において、音声認識対応システム100は、第1のユーザデバイス110aと、第2のユーザデバイス110bとを備える。第2のユーザデバイス110bは、第1のユーザデバイス110aの付近のデバイスである、またはその逆であると考えられ得る。ここで、ユーザデバイス110a、110bは、一方のデバイス102上の対応するオーディオキャプチャデバイス116が他のデバイス102に向けられた発話150をキャプチャすることができるときに互いの「付近」にあると考えられる。異なる言い方をすると、「付近」のユーザデバイス110a、110bは、一方のユーザデバイス110、110aの音声出力デバイス118が付近のユーザデバイス110、110bのオーディオキャプチャデバイス116の検出可能範囲内にあるように重なり合うオーディオ受信近傍内にある。音声認識対応システム100は、2つのユーザデバイス110a、110bを含むように図示されているが、他の例では、音声認識対応システム100は、本開示の範囲から逸脱することなく追加のユーザデバイス110を含む。ユーザデバイス110のいくつかの例は、ポータブルコンピュータ、スマートフォン、タブレットコンピューティングデバイス、スマートスピーカー、スマートディスプレイ、またはウェアラブルコンピューティングデバイスである。
【００３３】
いくつかの例において、ユーザデバイス110、110a〜bは各々、1つまたは複数のネットワーク120上で単語または部分単語を発語するユーザ10に対応する。たとえば、ユーザ10は、「Ok Google: Remind me first thing tomorrow morning to Restart Computer at Work」を含む第1のユーザデバイス110aによって検出可能な第1の発話150aを言う。ここで、「Ok Google」というフレーズはユーザデバイス110aに割り当てられているホットワード130であり、これにより、ホットワード検出器200に、オーディオ入力データ内のホットワード130および/またはホットワード130の後に続く1つもしくは複数の他の語(たとえば、第1の発話150aの残り、「Remind me first thing tomorrow to Restart Computer at Work」)を処理するためのウェイクアッププロセスのユーザデバイス110aによる起動をトリガーすることを行わせる。この例では、第1のユーザデバイス110aは、「Ok, Jim. Reminder is set for tomorrow morning.」と言う合成音声160で第1の発話150aに応答する。
【００３４】
同様に、第2のユーザデバイス110、110bは、「Start Computer」というホットワード130を割り当てられ得る。この構成では、ユーザ10は、ユーザ10が「Start Computer」というホットワード130を使用したときに第2のユーザデバイス110、110bがウェイクアッププロセスを起動することを望んでいる。したがって、ユーザ10が「Start Computer: Play music from 70's music playlist」を含む第2のユーザデバイス110bによって検出可能な第2の発話150bを言ったときに、「Start computer」というフレーズは、ホットワード検出器200に、オーディオ入力データ内のホットワード130および/またはホットワード130の後に続く1つもしくは複数の他の語、「Play music from 70's music playlist」を処理するためのウェイクアッププロセスの第2のユーザデバイス110bによる起動をトリガーすることを行わせる。
【００３５】
2つのユーザデバイス110が付近にあるときに、第1のユーザデバイス110aからの出力データとしてホットワード130を含む合成音声160は、第2のユーザデバイス110bのオーディオキャプチャデバイス116、116bによって偶発的に受け取られることがあり得る。ホットワード130を含む偶発的に受け取った合成音声160に応答して、ユーザ10は、偶発的に受け取った合成音声160に基づき第2のデバイス110、110bのホットワード検出器200、200bが目覚め、および/またはさらなる処理を起動してしまうことを意図しない。ホットワード検出器200が第2のユーザデバイス110、110bを活性化することを防ぐために、ホットワード検出器200は、合成音声160を識別し、ホットワード130を含む合成音声160を無視するように構成され得る。
【００３６】
図2は、音声認識対応システム100のユーザデバイス110内のホットワード検出器200の一例である。ホットワード検出器200は、発話150などのオーディオ入力データがホットワード130を含むかどうかを決定するように構成される(たとえば、ホットワード130に対応する音の音響特徴の一部または全部がホットワード130に特徴的である音響特徴に類似することを検出したことに基づき)。たとえば、ホットワード検出器200は、発話150がホットワード130から始まると決定し、その後、ホットワード検出器200のユーザデバイス110に対するウェイクアッププロセスを起動する。
【００３７】
いくつかの例において、ホットワード検出器200は、ホットワード検出器訓練器210と、ホットワード検出器モデル220とを備える。ホットワードのオーディオ表現を含むポジティブ訓練サンプル212、212bに対して訓練されることに加えて、ホットワード検出器訓練器210は合成音声160のネガティブ訓練例212、212aに対して訓練され、ホットワード検出器モデル220を生成し、それによって、ホットワード検出器200に、人間により生成された発話150(たとえば、非合成音声)と合成発話160(音声合成器300によって生成される)とを区別することを教授する。ホットワード検出器モデル220は、訓練例212、212a〜bに基づきホットワード検出器訓練器210によって生成される合成音声認識モデル220である。
【００３８】
いくつかの実装形態において、ホットワード検出器訓練器210は、ネガティブ訓練例212aおよびポジティブ訓練例212bによってホットワード検出器モデル220を訓練する。ネガティブ訓練例212aは、ホットワード検出器訓練器210がホットワード検出器モデル220に無視することを教授するオーディオのサンプルである。ここで、合成音声160に基づきユーザデバイス110に対して偶発的にウェイクアップ起動を行うのを防ぐために、ネガティブ訓練例212aは合成音声160に対応するオーディオのサンプルとなっている。1つまたは複数のネガティブ訓練例212aの合成音声160は、ホットワード130を含む合成音声160(すなわち、ホットワード130を発音する)、またはホットワード130を含まない合成音声であり得る。いずれかのシナリオにおいて、ホットワード検出器200は、発話150に基づくウェイクアッププロセスがホットワードまたはホットワード130のように聞こえる1つもしくは複数の単語/部分単語を含む合成音声160によって偶発的に起動されないように合成音声160を無視することを教授される。合成音声160を無視することによって、ホットワード検出器200は、ホットワード130および/またはオーディオ入力データ内のホットワード130の後に続く1つもしくは複数の他の語を処理するためのユーザデバイス110上のウェイクアッププロセスの起動を防ぐ。
【００３９】
任意選択で、ホットワード検出器訓練器210は、それに加えて、または代替的に、他の種類のオーディオ(たとえば、放送音声)のサンプルを含むネガティブ訓練例212aによってホットワード検出器モデル220を訓練するものとしてよい。したがって、ホットワード検出器200は、発話150に基づくウェイクアッププロセスがホットワードまたはホットワード130のように聞こえる1つもしくは複数の単語/部分単語を含むこれらの他の種類のオーディオによって偶発的に起動されないようにこれらの他の種類のオーディオを無視することを同様に教授され得る。
【００４０】
対照的に、ポジティブ訓練例212bは、ホットワード130を含む人間の音声の発話150のオーディオサンプルである。ホットワード検出器訓練器210は、ホットワード検出器モデル220にポジティブ訓練例212bを供給して、ホットワード検出器200がウェイクアッププロセスを起動するべきであるホットワード検出器200の例を教授する。それに加えて、または代替的に、ホットワード検出器訓練器210は、ホットワード検出器200をホットワード検出器200の動作中に生じ得るさらなるシナリオに曝すためにホットワード130なしで人間の音声の発話150のオーディオサンプルである訓練例212によりホットワード検出器モデル220を訓練するものとしてよい。いくつかの実装形態において、ホットワード検出器訓練器210によってホットワード検出器モデル220に教授される訓練例212が多ければ多いほど、ホットワード検出器モデル220を実装するときにホットワード検出器200はロバストになり、および/または計算効率が高くなる。さらに、ホットワード検出器訓練器210からの訓練例212によって教授されるホットワード検出器モデル220によりホットワード検出器200を訓練することによって、ホットワード検出器モデル220は、発話150を文字起こしするまたは意味解釈することなく、発話150の音響特徴の分析を通じて発話150(たとえば、オーディオ入力データ)内の合成音声の存在の検出を可能にする。
【００４１】
図2を引き続き参照すると、ユーザデバイス110のホットワード検出器200は、「reminder to restart computer when you arrive at work this morning」という受信されたオーディオ入力データがホットワード130を含むかどうかを決定するために、ホットワード検出器モデル220を実装する。たとえば、第1のユーザデバイス110、110aは、このオーディオ入力データを合成音声160として生成する。第2のユーザデバイス110、110bは、第1のユーザデバイス110、110aへの付近のユーザデバイスとして、たとえば、第2のユーザデバイス110、110bのオーディオキャプチャデバイス116、116bのところで、この合成音声160を立ち聞きすることになり得る。ここで、ホットワード検出器200、200bが合成音声160の音響特徴としてのホットワード130、「start computer」によりウェイクアッププロセスを起動する代わりに、ホットワード検出器200、200bは、オーディオ入力データを合成音声160として識別するホットワード検出器モデル220を実装し、それによって、「reminder to restart computer when you arrive at work this morning」というフレーズ内に含まれている「start computer」という割り当てられているホットワード130の存在を無視する。
【００４２】
いくつかの構成において、ホットワード検出器訓練器210は、訓練例212を訓練セットおよび評価セット(たとえば、90%の訓練および10%の評価)に分離するように構成される。これらのセットにより、ホットワード検出器訓練器210は、ホットワード検出器モデル220をオーディオサンプルで訓練することを、評価セット上のホットワード検出器モデル220の実行が減少を停止するまで続ける。実行が評価セット上の減少を停止させた後、ホットワード検出器モデル220はモデリングを行う準備ができており、ホットワード検出器モデル220は、ホットワード検出器200が合成音声160に対応していないユーザデバイス110で受け取ったホットワード130を正確に検出することを可能にする。
【００４３】
それに加えて、または代替的に、ホットワード検出器モデル220はニューラルネットワークである。ホットワード検出器モデル220は、畳み込みニューラルネットワーク(CNN)またはディープニューラルネットワーク(DNN)であってよい。いくつかの例において、ホットワード検出器モデル220は、畳み込みニューラルネットワークとディープニューラルネットワークとの組合せであり、畳み込みニューラルネットワークがディープニューラルネットワークに送るべき情報のフィルタ処理、プーリング、次いで、フラット化を行う。ホットワード検出器モデル220が機械学習モデルであるときと全く同様に、正確なホットワード検出を行うために使用され得る意味のある出力を生成するようにニューラルネットワークも訓練される(たとえば、ホットワード検出器訓練器210によって)。いくつかの例において、平均平方誤差損失関数は、ホットワード検出器モデル220がニューラルネットワークであるときにホットワード検出器モデル220を訓練する。
【００４４】
図3Aおよび図3Bは、ユーザデバイス110の音声合成器300の例である。一例として、音声合成器300はTTSシステムであり、音声合成器への入力はテキスト入力データ302である。音声合成器300は、テキスト入力データ302を合成音声160に変換することによってテキスト入力データ302から合成音声160を生成するように構成され得る。図3Aおよび図3Bに例示されているように、音声合成器300は、ユニット選択プロセス(図3A)またはニューラルネットワークプロセス(図3B)などの、異なるプロセスによって合成音声160を生成することができる。いずれかのプロセスにおいて、音声合成器300は、付近のユーザデバイス110上のウェイクアッププロセスの起動を防ぐために付近のユーザデバイス110によって識別可能なオーディオ出力信号304を提供するためにホットワード認識モデル320とともにホットワード認識訓練器310を含む。言い換えると、オーディオ出力信号304は付近のユーザデバイス110に対するウェイクアッププロセスを起動するべきであるホットワード130を含み得るが、音声合成器300はオーディオ出力信号304を合成音声160と識別して、他の付近のユーザデバイス110に関連付けられているウェイクアッププロセスを起動することを回避する/逃れる。これらの例において、音声合成器300は、ホットワード認識モデル320を使用して、ユーザデバイス110に割り当てられているホットワード130の存在を検出し、テキスト入力データ302の発音(たとえば、合成音声160のオーディオ出力信号304)がホットワード130を含むかどうかを決定する。発音がホットワード130を含んでいるときに、音声合成器300は、発音が異なるユーザデバイス110からのホットワード検出器200をトリガーすることに失敗するようにオーディオ出力信号304を生成する。
【００４５】
いくつかの例において、ホットワード認識訓練器310は、ホットワードクエリ132を利用して、ホットワード130またはホットワード130のリストを(たとえば、ホットワードリポジトリ142から、または付近のユーザデバイス110から直接)取得する。前に述べたように、ホットワードクエリ132は、付近のデバイス110に割り当てられているホットワード130の任意の組合せ、特定のユーザ10によって所有制御される1つもしくは複数のデバイス110、110a〜nに関連付けられているホットワード130のリスト、および/またはウェイクアッププロセスを起動するために任意の所与のデバイス110に割り当てられ得るすべての潜在的なホットワード130のリストを取得し得る。他の例では、ユーザ10または音声認識対応システム100のユーザデバイス110の管理者は、ホットワード認識訓練器310をホットワード130で事前プログラムし、および/または更新する。ホットワード認識訓練器310は、受信されおよび/または取得されたホットワード130に基づきホットワード認識モデル320を訓練する。いくつかの例において、ホットワード認識訓練器310は、少なくとも1つのホットワード130のTTSシーケンスまたはオーディオ表現に基づきホットワード認識モデル320を訓練する。
【００４６】
音声合成器300は、音声合成プロセスにおける任意の時点においてホットワード認識モデル320を使用し得る。いくつかの例において、音声合成器300は、最初に、テキスト読み上げ出力を生成し、次いで、ホットワード認識モデル320を使用してホットワード130または音が似たフレーズに対する合成音声160を分析する。他の例では、音声合成器300は、ホットワード認識モデル320を使用して合成音声160の生成時にホットワード130に対するテキスト読み上げ出力を分析する。
【００４７】
ホットワード認識モデル320が音声合成プロセスにおける、または合成音声160内のホットワード130を識別するときに、音声合成器300は、合成音声160がホットワード130(たとえば、オーディオ出力信号304内の)を含むという指示を提供する。いくつかの例において、音声合成器300は、ホットワード検出器200に識別可能である合成音声160のオーディオシーケンス上に知られているウォーターマーク352を放出する。音声合成器300は、ホットワード検出器200に識別可能である任意の方式でウォーターマーク352を合成音声160内に、または合成音声160の上に挿入し得る。たとえば、音声合成器300は、ウォーターマークを末尾に付け加える/先頭に付け加える/重ね合わせるか、またはウォーターマークを合成音声160内に符号化することによって、ウォーターマークを挿入し得る。音声合成器300は、知られているウォーターマーク352などの固有の特徴を合成音声160内において離散間隔でオーディオシーケンスの上に挿入し得る。これらの離散的間隔は、数ミリ秒の間隔から数秒にわたるより大きい間隔までの範囲内にあるものとしてよい。たとえば、ミリ秒間隔などの小さい間隔は、付近のユーザデバイス110で受信された合成音声160の一部分であっても、望ましくないウェイクアップの起動を防ぐために識別可能であることを可能にする。間隔を置いてウォーターマーク352を挿入することで、ユーザデバイスがアクティブであり、すでに目覚めている場合に望ましくない音声認識をさらに防ぎ得る。いくつかの実装形態において、音声合成器300は、所与のホットワード検出器200に対して訓練されたフィルタ354を使用して合成音声160を歪ませる。言い換えると、付近のデバイス110上のホットワード検出器200は、フィルタ処理された合成音声160を無視するようにフィルタ354で訓練される。いくつかの例において、フィルタ354は、ホットワード検出器200に対して、合成音声160内のホットワード130を見えなくする。同様に、音声合成器300は、ホットワード検出器200によるホットワード検出を逃れるためにホットワード130に関連付けられている任意の音を取り除くか、または改変することによって合成音声160に関連付けられているオーディオ出力信号304に対応する音声
波形を改変するものとしてよい。
【００４８】
図3Aを参照すると、音声合成器300、300aは、ユニット選択ロジックを使用して合成音声160を生成する。ここで、音声合成器300はTTSシステムであり、ユニット拡張器(unit expander)330がテキスト入力データ302を受け取り、テキスト入力データ302を構文解析してユニットデータベース340の音声ユニットと互換性のあるコンポーネントに分ける。ユニット選択器350は、ユニット拡張器330からの構文解析済みテキスト入力データを解釈し、ユニット選択器350と通信するユニットデータベース340からの構文解析済みテキスト入力データに対応する音声ユニットを選択するように構成される。ユニットデータベース340は、構文解析済みテキストのユニットの集合体をこれらのユニットの対応するオーディオ信号形式(すなわち、音声ユニット)とともに一般的に含むデータベースである。ユニット選択器350は、テキスト入力データ302に対する合成音声160を形成するように構文解析済みテキスト入力データに関係する音声ユニットからユニット360のシーケンスを構築する。いくつかの構成において、合成音声160がホットワード130を含むときに、音声合成器300、300aは、ホットワード検出器200がホットワード130を検出することに失敗するように合成音声160を形成する音声ユニットの代替的バリエーションを選択するように構成される。
【００４９】
図3Bは、音声合成器300、300bがテキスト入力データ302を受け取り、波形ニューラルネットワークモデル380内に入力されるべき入力テキストシーケンス370を生成することを除き、図3Aの音声合成器に類似する音声合成器300、300bの一例である。波形ニューラルネットワークモデル380は、ユニット選択プロセスと異なり、ユニットデータベース340を必要としない。ユニットデータベース340がなければ、波形ニューラルネットワークモデル380は、音声合成器300、300aと比べたときに、より高い計算効率を達成し、計算負荷の一部を低減し得る。
【００５０】
ホットワード検出器モデル220と同様に、ホットワード認識モデル320および/または波形ニューラルネットワークモデル380は、最初にモデル訓練を受け(たとえば、ホットワード認識訓練器310を介したホットワード認識モデル320の場合)、いったん訓練されると、音声合成器300による実装に進み得る機械学習モデルであってよい。モデル訓練時に、モデル320、380は、データセットおよび結果セットを受け取り、データセットに類似する入力データに基づき自出力を予測する。ホットワード認識モデル320の場合、データセットおよび結果セットは、フレーズ、単語、部分単語、テキスト読み上げシーケンス、言語変異、言語翻訳などの、ホットワード130に関連付けられているオーディオサンプルまたはテキストサンプルであってよい。波形ニューラルネットワークモデル380の場合、データセットおよび結果セットは、入力テキストシーケンス370から合成音声160を生成する波形ニューラルネットワークモデル380を訓練するように構成されたテキストサンプルであってよい。いくつかの例において、訓練を目的として、データは訓練セットおよび評価セット(たとえば、90%の訓練および10%の評価)に分離される。これらのセットにより、モデル320、380は、評価セット上の実行が減少を停止させるまで訓練を続ける。実行が評価セット上の減少を停止させた後、各それぞれのモデル320、380はモデル化の準備ができている(たとえば、ホットワード認識モデル320に対してホットワード130を識別する、または波形ニューラルネットワークモデル380に対して合成音声160を生成する)。
【００５１】
それに加えて、または代替的に、各それぞれのモデル320、380はニューラルネットワークである。モデル320、380は、畳み込みニューラルネットワーク(CNN)(たとえば、修正WaveNet)またはディープニューラルネットワーク(DNN)であってよい。いくつかの例において、モデル320、380は、畳み込みニューラルネットワークとディープニューラルネットワークとの組合せであり、畳み込みニューラルネットワークがディープニューラルネットワークに送るべき情報のフィルタ処理、プーリング、次いで、フラット化を行う。モデル320、380が機械学習モデルであるときと全く同様に、ニューラルネットワークは、意味のあるオーディオ出力信号304を生成するように訓練される。いくつかの例において、平均平方誤差損失関数は、モデル320、380がニューラルネットワークであるときにモデル320、380を訓練する。
【００５２】
図4は、テキスト入力データ302の発音が付近のデバイス110に割り当てられているホットワード130を含むことを決定する方法400に対する動作の例示的な割り振りのフローチャートである。データ処理ハードウェア112は、メモリハードウェア114上に記憶されている命令を実行することによって方法400に対する動作を実行し得る。動作402において、方法400は、音声合成デバイス300のデータ処理ハードウェア112において、合成音声160に変換するためのテキスト入力データ302を受信することを含む。動作404において、方法400は、データ処理ハードウェア112によって、またユーザデバイス110に割り当てられているホットワード130の存在を検出するように訓練されているホットワード認識モデル320を使用して、テキスト入力データ302の発音がホットワード130を含んでいるかどうかを決定することであって、ホットワード130はユーザデバイス110によって受信されたオーディオ入力データに含まれるときにホットワード130および/またはオーディオ入力データ内のホットワード130の後に続く1つもしくは複数の他の語を処理するためにユーザデバイス110上でウェイクアッププロセスを起動するように構成される、決定することを含む。
【００５３】
動作406において、テキスト入力データ302の発音がホットワード130を含むときに、方法400は、入力テキストデータ302からオーディオ出力信号304を生成することを含む。動作408において、テキスト入力データ302の発音がホットワード130を含むときに、方法400は、データ処理ハードウェア112によって、オーディオ出力信号304を出力するためにオーディオ出力信号304をオーディオ出力デバイス118に提供することであって、オーディオ出力信号304はユーザデバイス110のオーディオキャプチャデバイス116によってキャプチャされたときにユーザデバイス110上のウェイクアッププロセスの起動を防ぐように構成される、提供することを含む。
【００５４】
図5は、オーディオ入力データが合成音声160を含むときにユーザデバイス110上でウェイクアッププロセスが起動するのを防ぎ、オーディオ入力データが合成音声160を含むときにオーディオ入力データを処理する方法に対する動作の例示的な割り振りのフローチャートである。データ処理ハードウェア112は、メモリハードウェア114上に記憶されている命令を実行することによって方法500に対する動作を実行し得る。動作502において、方法500は、ユーザデバイス110のホットワード検出器200で、ホットワード130を含むオーディオ入力データを受信することを含む。ホットワード130は、ホットワード130および/またはオーディオ入力データ内のホットワード130の後に続く1つもしくは複数の他の語を処理するためにユーザデバイス110上のウェイクアッププロセスを起動するように構成される。動作504において、方法500は、ホットワード検出器504によって、オーディオ入力データが合成音声160を含むかどうかを、オーディオ入力データ内のホットワード130および合成音声160の存在を検出するように構成されたホットワード検出器モデル220を使用して決定することを含む。動作506において、オーディオ入力データが合成音声160を含んでいるときに、方法500は、ホットワード検出器200によって、ホットワード130および/またはオーディオ入力データ内のホットワード130の後に続く1つもしくは複数の他の語を処理するためのユーザデバイス110上のウェイクアッププロセスの起動を防ぐことを含む。
【００５５】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)は、コンピューティングデバイスにタスクを実行させるコンピュータソフトウェアを指すものとしてよい。いくつかの例において、ソフトウェアアプリケーションは、「アプリケーション」、「アプリ」、または「プログラム」と称され得る。例示的なアプリケーションは、限定はしないが、システム診断アプリケーション、システム管理アプリケーション、システム保守アプリケーション、文書処理アプリケーション、表計算アプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲーミングアプリケーションを含む。
【００５６】
非一時的メモリは、コンピューティングデバイスによる使用のためにプログラム(たとえば、命令シーケンス)またはデータ(たとえば、プログラム状態情報)を一時的にまたは永久的に記憶するために使用される物理的デバイスであってよい。非一時的メモリは、揮発性および/または不揮発性アドレッシング可能半導体メモリであってよい。不揮発性メモリの例は、限定はしないが、フラッシュメモリおよびリードオンリーメモリ(ROM)/プログラム可能リードオンリーメモリ(PROM)/消去可能プログラム可能リードオンリーメモリ(EPROM)/電気的消去可能プログラム可能リードオンリーメモリ(EEPROM)(たとえば、典型的には起動プログラムなどのファームウェアに使用される)を含む。揮発性メモリの例は、限定はしないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、さらにはディスクまたはテープを含む。
【００５７】
図6は、本明細書において説明されているシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイス600の概略図である。コンピューティングデバイス600は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことが意図されている。ここに示されているコンポーネント、それらの接続および関係、ならびにそれらの機能は、例示的であることのみを意図されており、本明細書において説明され、および/または請求されている発明の実装を制限することを意図されていない。
【００５８】
コンピューティングデバイス600は、プロセッサ610、メモリ620、記憶装置デバイス630、メモリ620および高速拡張ポート650に接続する高速インターフェース/コントローラ640、ならびに低速バス670および記憶装置デバイス630に接続する低速インターフェース/コントローラ660を備える。コンポーネント610、620、630、640、650、および660の各々は、様々なバスを使用して相互接続され、共通マザーボード上に取り付けられるか、または適宜他の仕方で取り付けられ得る。プロセッサ610は、高速インターフェース640に結合されているディスプレイ680などの、外部入力/出力デバイス上にグラフィカルユーザインターフェース(GUI)に対するグラフィック情報を表示するためメモリ620内に、または記憶装置デバイス630上に、記憶されている命令を含む、コンピューティングデバイス600内で実行する命令を処理することができる。他の実装形態では、複数のプロセッサおよび/または複数のバスが、適宜、複数のメモリおよびメモリの種類とともに使用され得る。また、複数のコンピューティングデバイス600が、必要な操作の一部を提供する各デバイスと接続され得る(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【００５９】
メモリ620は、コンピューティングデバイス600内の情報を非一時的に記憶する。メモリ620は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであってよい。非一時的メモリ620は、コンピューティングデバイス600による使用のためにプログラム(たとえば、命令シーケンス)またはデータ(たとえば、プログラム状態情報)を一時的にまたは永久的に記憶するために使用される物理的デバイスであってよい。不揮発性メモリの例は、限定はしないが、フラッシュメモリおよびリードオンリーメモリ(ROM)/プログラム可能リードオンリーメモリ(PROM)/消去可能プログラム可能リードオンリーメモリ(EPROM)/電気的消去可能プログラム可能リードオンリーメモリ(EEPROM)(たとえば、典型的には起動プログラムなどのファームウェアに使用される)を含む。揮発性メモリの例は、限定はしないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、さらにはディスクまたはテープを含む。
【００６０】
記憶装置デバイス630は、コンピューティングデバイス600用の大容量記憶装置を構成することができる。いくつかの実装形態において、記憶装置デバイス630は、コンピュータ可読媒体である。様々な異なる実装形態において、記憶装置デバイス630は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の類似のソリッドステートメモリデバイス、またはストレージエリアネットワークまたは他の構成におけるデバイスを含む、デバイスのアレイであってよい。追加の実装形態において、コンピュータプログラム製品は、情報キャリアで明確に具現化される。コンピュータプログラム製品は、実行されたときに、上で説明されているような1つまたは複数の方法を実行する命令を収容している。情報キャリアは、メモリ620、記憶装置デバイス630、またはプロセッサ610上のメモリなどのコンピュータもしくは機械可読媒体である。
【００６１】
高速コントローラ640は、コンピューティングデバイス600に対して大きな帯域幅を使用する操作を管理するが、低速コントローラ660は、少ない帯域幅を使用する操作を管理する。デューティのそのような割り振りは、例示的なものにすぎない。いくつかの実装形態において、高速コントローラ640は、メモリ620、ディスプレイ680(たとえば、グラフィックスプロセッサまたはアクセラレータを通じて)、および様々な拡張カード(図示せず)を受け入れ得る、高速拡張ポート650に結合される。いくつかの実装形態において、低速コントローラ660は、記憶装置デバイス630および低速拡張ポート690に結合される。様々な通信ポート(たとえば、USB、Bluetooth(登録商標)、Ethernet、ワイヤレスEthernet)を含み得る、低速拡張ポート690は、キーボード、ポインティングデバイス、スキャナ、またはたとえば、ネットワークアダプタを通じて、スイッチまたはルータなどネットワーキングデバイスなどの1つまたは複数の入力/出力デバイスに結合され得る。
【００６２】
コンピューティングデバイス600は、図に示されているように、数多くの異なる形態で実装され得る。たとえば、これは標準的なサーバ600aとして、またはそのようなサーバ600aのグループの中で複数回にわたり、ラップトップコンピュータ600bとして、またはラックサーバシステム600cの一部として、実装され得る。
【００６３】
本明細書で説明されているシステムおよび技術の様々な実装形態は、デジタル電子および/または光回路、集積回路、専用設計ASIC(特定用途向け集積回路)、コンピュータのハードウェア、ファームウェア、ソフトウェア、および/またはこれらの組合せで実現できる。これらの様々な実装形態は、記憶装置システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、記憶装置システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスにデータおよび命令を送信するように結合された、専用または汎用のものとしてよい、少なくとも1つのプログラム可能なプロセッサを備えるプログラム可能なシステム上で実行可能であり、および/または解釈可能である1つもしくは複数のコンピュータプログラムによる実装を含むことができる。
【００６４】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとも呼ばれる)は、プログラム可能なプロセッサ用の機械語命令を含み、高水準手続き型および/またはオブジェクト指向プログラミング言語で、および/またはアセンブリ/機械語で実装され得る。本明細書で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械可読信号として機械語命令を受信する機械可読媒体を含む、機械語命令および/またはデータをプログラム可能なプロセッサに供給するために使用される任意のコンピュータプログラム製品、非一時的コンピュータ可読媒体、装置、および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラム可能論理デバイス(PLD))を指す。「機械可読信号」という用語は、機械語命令および/またはデータをプログラム可能なプロセッサに供給するために使用される信号を指す。
【００６５】
本明細書で説明されているプロセスおよび論理の流れは、入力データを操作し、出力を生成することによって機能を実行するように1つまたは複数のコンピュータプログラムを実行する、データ処理ハードウェアとも称される1つまたは複数のプログラム可能なプロセッサによって実行され得る。これらのプロセスまたは論理の流れは、また、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)によって実装され得る。コンピュータプログラムの実行に適しているプロセッサは、たとえば、汎用マイクロプロセッサ、専用マイクロプロセッサ、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの不可欠な要素は、命令を実行するためのプロセッサならびに命令およびデータを格納するための1つまたは複数のメモリデバイスである。一般的に、コンピュータは、データを記憶するための1つまたは複数の大容量記憶装置デバイス、たとえば、磁気ディスク、磁気光ディスク、または光ディスクも備え、これらからデータを受け取るか、またはこれらにデータを転送するか、またはその両方を行うように動作可能なように結合される。しかしながら、コンピュータは、そのようなデバイスを有している必要はない。コンピュータプログラムの命令およびデータを格納するのに適したコンピュータ可読媒体は、たとえば、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補助されるか、または専用論理回路に組み込まれ得る。
【００６６】
ユーザとインタラクティブにやり取りするために、本開示の1つまたは複数の態様は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)、LCD(液晶ディスプレイ)モニタ、またはタッチスクリーン、および任意選択で、キーボードおよびユーザがコンピュータに入力を送るために使用できるポインティングデバイス、たとえば、マウスもしくはトラックボールを有するコンピュータ上で実装され得る。他の種類のデバイスも、ユーザとインタラクティブにやり取りするために使用されてよく、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってよく、ユーザからの入力は、限定はしないが、音響、音声、または触覚入力を含む、任意の形態で受信され得る。それに加えて、コンピュータは、ドキュメントをユーザによって使用されるデバイスに送り、そのデバイスからドキュメントを受け取ることによって、たとえば、ウェブブラウザから受け取った要求に応答して、ウェブページをユーザのクライアントデバイス上のウェブブラウザに送信することによって、ユーザとインタラクティブにやり取りすることができる。
【００６７】
これまで多数の実装形態が説明された。しかしながら、本開示の精神および範囲から逸脱することなく様々な修正が加えられ得ることは理解されるであろう。したがって、他の実装形態が請求項の範囲内にある。
【符号の説明】
【００６８】
10  ユーザ
100  音声認識対応システム
110、110a〜b  ユーザデバイス
112  データ処理ハードウェア
114  メモリハードウェア
116  オーディオキャプチャデバイス(たとえば、マイクロホン)
116b  オーディオキャプチャデバイス
118  音声出力デバイス(たとえば、スピーカー)
130  ネットワーク
130  ホットワード
132  ホットワードクエリ
140  リモートサーバ
142  ホットワードリポジトリ
150  発話
150a  第1の発話
160  合成音声
200、200b  ホットワード検出器
210  ホットワード検出器訓練器
212、212b  ポジティブ訓練サンプル
212、212a  ネガティブ訓練例
220  ホットワード検出器モデル
220  ホットワード検出器モデル
300、300a  音声合成器
302  テキスト入力データ
304  オーディオ出力信号
310  ホットワード認識訓練器
312  波形発生器
320  ホットワード認識モデル
330  ユニット拡張器
340  ユニットデータベース
350  ユニット選択器
352  ウォーターマーク
354  フィルタ
360  ユニット
370  入力テキストシーケンス
380  波形ニューラルネットワークモデル
400  方法
500  方法
504  ホットワード検出器
600  コンピューティングデバイス
600a  標準的なサーバ
600b  ラップトップコンピュータ
600c  ラックサーバシステム
610  プロセッサ
620  メモリ
630  記憶装置デバイス
640  高速インターフェース/コントローラ
650  高速拡張ポート
660  低速インターフェース/コントローラ
670  低速バス
680  ディスプレイ
690  低速拡張ポート
【図１】
0006926241.tif 000002
【図２】
0006926241.tif 000003
【図３Ａ】
0006926241.tif 000004
【図３Ｂ】
0006926241.tif 000005
【図４】
0006926241.tif 000006
【図５】
0006926241.tif 000007
【図６】
0006926241.tif 000008