(57)【特許請求の範囲】
【請求項１】
電子デバイス上の音声をバッファリングする方法であって、
差し迫ったデバイスのアクティビティの第１の指示を検出することを含み、前記第１の指示は、
音声を処理するアプリケーションの１つまたは複数の起動と、
入射光強度の変化と、
動きの視覚的認識と、
顔の視覚的認識と、
電子デバイスの動きと、
周囲音と、
発話と、
特定の話者の認識と、
の少なくともいずれかを含み、  前記方法は、
音声の利用に関連するユーザ・アクティビティの過去のパターンと、前記第１の指示とを比較し、
前記第１の指示を検出することに応答し、かつ前記比較に少なくとも部分的に基づいて、循環バッファをアクティブ化し、
受信した音声に対応した音声データを前記循環バッファ内に格納し、
音声を処理するための第２の指示を受信し、
前記第２の指示の受信に応答して、
前記第２の指示前に前記循環バッファに格納された前記音声データの少なくとも一部と前記第２の指示を受信した後に受信した更なる音声に対応した更なる音声データとを組み合わせして、組み合わされた音声データにし、そして、
前記組み合わされた音声データを処理する、
ことを含む前記方法。
【請求項２】
物理的なボタンの押下、グラフィカル・ユーザ・インターフェースを介して提供される仮想ボタンの押下、またはコマンドジェスチャを検出することに応じて前記第２の指示を生成する、ことを更に含む、請求項１に記載の方法。
【請求項３】
更に、前記第１の指示を検出することに応答して、かつ前記第２の指示を受信する前に、前記受信した音声に対応した音声データに適用されるべきオーディオ補正を算出し、そして、
前記オーディオ補正を前記第２の指示後に受信した音声に対応した更なる音声データに適用する、請求項１に記載の方法。
【請求項４】
前記オーディオ補正は、チャンネル標準化及びノイズ除去の少なくとも１つを含む、請求項３に記載の方法。
【請求項５】
コンピューティングデバイスであって、
少なくとも１つのプロセッサと、
一連の動作を実行するために前記少なくとも１つのプロセッサによって実行されるように動作可能な命令を含むメモリ装置を備え、前記命令は、前記少なくとも１つのプロセッサを、
差し迫ったデバイスのアクティビティの指示を検出し、
ここで、前記指示は、
音声を処理するアプリケーションの１つまたは複数の起動と、
入射光強度の変化と、
動きの視覚的認識と、
顔の視覚的認識と、
コンピューティングデバイスの動きと、
周囲音と、
発話と、
特定の話者の認識と、
の少なくともいずれかを含み、さらに
音声の利用に関連するユーザ・アクティビティの過去のパターンと、前記指示とを比較し、
前記指示を検出することに少なくとも部分的にかつ前記指示と前記パターンに対応するデータとを比較することに少なくとも部分的に基づいて、第１の循環バッファを活性化させ、
受信した音声に対応する音声データを前記第１の循環バッファ内に格納し、
音声を処理するための信号を受信し、
前記信号を受信する前に前記第１の循環バッファに格納された前記音声データの少なくとも一部と、前記信号の受信後に受信した更なる音声に対応した更なる音声データとを組み合わせして、組み合わせられた音声データにし、そして、
前記組み合わされた音声データを処理する、
ように設定することを含む前記コンピューティングデバイス。
【請求項６】
前記命令は、前記少なくとも１つのプロセッサが差し迫ったデバイスのアクティビティの前記指示を検出し、かつ前記少なくとも１つのプロセッサに結合したセンサからの出力に少なくとも部分的に基づいて前記指示を検出する、ように設定する、請求項５に記載のコンピューティングデバイス。
【請求項７】
更に、前記命令は、前記少なくとも１つのプロセッサを、
前記信号を受信する前にオーディオ補正を算出し、そして、
前記オーディオ補正を前記更なる音声データに適用するように設定することを含む、請求項５に記載のコンピューティングデバイス。
【請求項８】
更に、前記命令は、前記少なくとも１つのプロセッサを、
第２の循環バッファに格納された音声データに少なくとも部分的に基づいて前記オーディオ補正を算出し、
前記オーディオ補正を前記第１の循環バッファに格納された音声データに適用するように設定することを含む、請求項７に記載のコンピューティングデバイス。
【請求項９】
前記オーディオ補正は、チャンネル標準化及びノイズ除去の少なくとも１つを含む、請求項７に記載のコンピューティングデバイス。
【請求項１０】
コンピューティングデバイスを制御するためのシステムであって、
コンピュータ実行可能命令を格納するように設定された電子データ記憶装置と、そして、
前記電子データ記憶装置と通信する１つまたは複数のプロセッサを備え、
前記１つまたは複数のプロセッサは少なくとも、
差し迫ったデバイスのアクティビティの指示を検出し、
ここで、前記指示は、
音声を処理するアプリケーションの１つまたは複数の起動と、
入射光強度の変化と、
動きの視覚的認識と、
顔の視覚的認識と、
コンピューティングデバイスの動きと、
周囲音と、
発話と、
特定の話者の認識と、
の少なくともいずれかを含み、さらに
音声の利用に関連するユーザ・アクティビティの過去のパターンと、前記指示とを比較し、
前記指示を検出することに少なくとも部分的にかつ前記指示と前記パターンに対応するデータとを比較することに少なくとも部分的に基づいて、第１の循環バッファを活性化し、
前記第１の循環バッファに受信した音声に対応する音声データを格納し、
音声を処理するための信号を受信し、
前記信号を受信する前に前記第１の循環バッファに格納された音声データの少なくとも一部を、前記信号の後に受信した更なる音声に対応する更なる音声データとを組み合わせして、組み合わされた音声データにし、そして、
前記組み合わされた音声データを処理する、
ように設定させられることを特徴とするシステム。
【請求項１１】
更に、前記１つまたは複数のプロセッサは、物理的なボタンの押下、前記コンピューティングデバイスのグラフィカル・ユーザ・インターフェースを介して提供される仮想ボタンの押下、またはジェスチャを検出することに応じて前記信号を生成する、ように構成される、請求項１０に記載のシステム。
【請求項１２】
更に、前記１つまたは複数のプロセッサは、
前記信号を受信する前にオーディオ補正を算出し、そして、
前記オーディオ補正を前記更なる音声データに適用するように構成される、請求項１０に記載のシステム。
【請求項１３】
更に、前記１つまたは複数のプロセッサは、
第２の循環バッファに格納された第２の音声データに少なくとも部分的に基づいて前記オーディオ補正を算出し、
前記オーディオ補正を前記第１の循環バッファに格納された音声データに適用するように設定される、請求項１２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
多くの電子デバイスは、音声を格納し処理することができる。いくつかのデバイスでは、デバイスが音声を格納または処理すべきときを指示するために使用することができるボタンと、タッチ感応表示画面が備えられている。ハードウェアとソフトウェアの支援は、多くの場合、音声認識とデジタル信号処理のために提供される。
【背景技術】
【０００２】
電子デバイスでの音声処理と記録には、消費電力の度合いを変化させることが必要である。バッテリ駆動デバイスの消費を最小限に抑えるために、処理や記録を最小化することができるが、このようにするためのユーザ・コマンドは欠いている。残念なことに、特に音声が発話である場合は、ユーザが発話を開始するときと、ユーザ・コマンドに従っての処理や記録の開始時間にずれがあるかもしれない。この時間的なずれは、結果的に音声の開始にクリッピングを引き起こすことになる。クリッピングをもたらすこの時間的なずれは、ユーザが処理や記録を開始させる信号を実際に送るときだけでなく、ハードウェアの遅延にも起因している。また、録音を開始するボタンを完全に押す前に人々が話し始めるときのように、多くの場合、コマンドを実際に完了する前に少しだけ話し始める傾向がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従来、記憶やストリーミングのために音声をデジタル化する際、再生することができる最高周波数は少なくとも２倍の速度で「サンプリング」される（ナイキスト／シャノンの定理に従って）。例えば、毎秒２０，０００サイクル（正常な人間の聴覚の限界）までの周波数の音を再生したいのであれば、音声信号の振幅デジタル「サンプル」は、少なくとも毎秒４０，０００回採取することができる。各「サンプル」は、サンプルが採取された瞬間における音声波形の振幅の大きさのデジタル表現である。そして、デジタルサンプルは、元の音声波形の表現を再構築するために使用することができる。参考までに、コンパクトディスクの音声は、一般的に音声の各秒につき４４，１００サンプルでサンプリングされる。ＭＰ３（ムービング・ピクチャー・エキスパート・グループＭＰＥＧ−１オーディオ・レイヤＩＩＩ）のようなフォーマットを使用して記憶された音声やストリームは、同様のサンプリングレート（データの総量を削減する「不可逆」圧縮技術を追加する手法）を使用することができる。通常、毎秒３，４００サイクルのような上限がある人間の音声をキャプチャすることに重きを置いているため、電話システムは毎秒８，０００サンプルのような低サンプリングレートを使用することができる。前のサンプルに比較して振幅が大きくなったか或いは減少したかどうかを表すために（むしろサンプルが採取された時点での瞬時振幅をデジタル表現するために）、各サンプルが単一の「０」または「１」として記憶されるデルタ変調などの符号化技術は、非常に高いサンプリングレート（例えば、毎秒３千２百万サンプル）を必要とする。しかしながら、サンプリングレートを低下させる原理は、忠実に再生することができる最大周波数を低下させることにもなる。
【課題を解決するための手段】
【０００４】
デバイスに高性能オーディオバッファを追加することで、ユーザ・コマンドを予想して音声を選択的にキャプチャすることにより、このクリッピングを除去することができる。センサとプロセッサの動作は監視され、ユーザ・コマンドが今後あり得ることを示唆するインディシアを探しだすことができる。このようなインディシアを検出すると、循環バッファが起動する。循環バッファに格納された音声は、消費電力を低減するために、間引き等によってダウンサンプリングすることもできる。デバイスに音声を処理または記録させるユーザ・コマンドを受信した後、コマンドが発せられる前にバッファに格納されていた音声の少なくとも一部は、コマンドの後に受信された音声と組み合わされる。次いで、組み合わされた音声は、ユーザが記録したいと所望する音声の開始をクリッピングすることなく処理または格納することができる。
【０００５】
更に、音声認識をストリーミングするために音声が使用される場合、チャネル及び／または環境補償を可能にするために、ユーザ・コマンドの前に短い音声時間を含ませることによって精度を改善することができる。発話が始まる前の無音の短い時間は、オーディオチャネルを標準化することを可能にし、背景と周囲の騒音から話される言葉を区別するための音声認識システムの能力を向上させる。処理前に音声を標準化するべくバッチ処理がバッチのすべて（または大部分）をサンプリングできるので、ストリーム全体を受信した後のバッチ処理と比較して、音声が受信されるとストリーミング音声上で音声認識を実行するとき、これは特に有利であるが、一方でライブストリームを処理するに際して、標準化すべきところから既存のサンプルが存在しない可能性がある。ユーザが発話する前の音声は、ゲイン調整のようにユーザの発話に適用することができる他のチャネル／環境適応を実行するためにも使用することができる。
【発明の効果】
【０００６】
ユーザ・コマンド信号を受信したとき、前の音声サンプルがユーザ・コマンドの受信後に受信した音声にプリペンドすることができるように（音声と連結することができるように）、循環型音声バッファを音声キャプチャシステムに追加することによって、ユーザ・コマンドを受信する前に発生した発話と他の音を記録することができる。音声処理を開始する（及びバッファ音声をプリペンドする）信号は、ボタンを押すことを含むか、或いはデバイスと物理的に対話する（例えば、デバイスを振ることによって）、デバイスに対してジェスチャをする、デバイスに音声コマンドを発する、またはいくつかの他のコマンドを介して音声記録／処理を開始させることを含むことができる。また、デバイスに記録／処理を開始させる指示を明示的にせずユーザが会話を始める場合のように、信号はより微細な明示的指示を含むことも可能である。
【０００７】
バッファは常に稼働させることもできるが、ユーザ・コマンドを受信するかもしれない比較的高い可能性がある場合にのみバッファを活性化することには消費電力の利点が存在し得る。例えば、音声のキャプチャや記録または処理に関連するアプリケーションが最初に開かれたとき、或いはデバイスを取り上げたとき、またはデバイス前面の光強度に変化があった場合（デバイスの動き或いはデバイス近くの動きを示し、デバイスを潜在的なユーザの近くに配置する）、ユーザ・コマンドが間近に迫っている可能性がある。
【０００８】
バッテリ電力を節約するために、ボタン押しの前にバッファに記録された音声は、後続の音声よりも低いレートでサンプリングすることができ、或いはデシメーションなどの技術を用いてダウンサンプリングすることも可能である。デシメーションは、オリジナルの音声ストリームの各ｎ番目のサンプルのみを記憶する（例えば、各１０サンプル中の１が格納される）。
【０００９】
ユーザ・コマンドの後、バッファリングした音声がどのくらいを受信された音声に連結させるかを決定するために、いくつかのアプローチを使用することができる。例えば、バッファ音声の２分の１秒など一定の時間を使用することができる。別の例として、バッファ音声の最新の秒内における単語の先頭を探すように、長い時間（例えば、１秒）内に発生する「沈黙」の時間を決定することに基づいて、時間は適応的に選択することができる。発話の開始に先立つ周囲の背景雑音の開放時間も、音声処理を容易にするためにプリペンドされた音声に含ませることができる。
【図面の簡単な説明】
【００１０】
本発明のより完全な理解のために、ここでは添付の図面と併せてなされる以下の説明を参照する。
【図１】高性能バッファを備えるデバイスの動作を示す。
【図２】高性能バッファを備えるデバイスを概念的に示すブロック図である。
【図３】高性能バッファを備えるデバイスの動作のためのアルゴリズムの一例を示す。
【図４】高性能バッファがアクティブ化されるべきかどうかを決定するために使用することができるプロセスを示す。
【図５】バッファに格納されている音声と、音声を格納または処理せよとのユーザ・コマンドの後に受信された音声の双方を含む音声波形を示す。
【図６】高性能バッファを備えるデバイスを概念的に示す別のブロック図である。
【図７】高性能バッファを備えるデバイスの動作のための別のアルゴリズムを示す。
【図８】高性能バッファで使用するためのコンピュータネットワークの一例を示す。
【発明を実施するための形態】
【００１１】
図１は、音声をキャプチャするようデバイス１００に指示するユーザを予想して、音声を理知的にバッファリングするためのシステムを示している。デバイス１００は、差し迫った音声のキャプチャ動作を示唆するインディシアのためにセンサとプロセッサ動作を監視する（１２２）。監視することができるインディシアの種類の例としては、音声を記録または処理するアプリケーションの起動、デバイス上の入射光強度の変化、動きの視覚的検出、デバイスに近接したユーザの視覚的検出、顔の視覚認識、タッチ感応表示画面への指の近位検出、デバイスの向きの変化（例えば、特定の方向に装置の向きを変える）、デバイスの動き、周囲音の検出、会話の検出、及び特定の話者の検出が含まれる。このようなインディシアに加えて、デバイスはまた、ユーザの記憶された履歴が一日の特定の時間に、または特定の物理的位置で（例えば、位置を決定するためにデバイスで利用可能な全地球測位及びナビゲーションサービスに基づき）音声テキスト口述を用いたパターンを示すかどうかなど、キャプチャされた音声の利用に関連する過去の使用パターンを考察することができる。
【００１２】
音声をキャプチャせよとのコマンドが間近に迫っているとの決定がなされた場合、循環バッファは活性化される（１２４）。循環バッファは、絶えず自体の内容を上書きする先入れ先出し方式（ＦＩＦＯ）バッファである。バッファは、例えば２秒または３秒のような任意のサイズであってもよい。
【００１３】
音声を処理し記憶するためのユーザ・コマンドを伝える信号（１２６）を受信すると、ユーザ・コマンドに先立ってバッファに格納されている最新の音声の一部は、ユーザ・コマンドの後に受信された音声にプリペンドされる。次に、組み合わされた音声は、どのタイプのアプリケーションがキャプチャされた音声を利用しているかに応じて、処理または記録される（１２８）。
【００１４】
高性能バッファの制御及び操作は、音声をキャプチャするソフトウェアアプリケーションに統合されてもよい、或いはオペレーティング・システム・レベル・ライブラリ・コールのようなアプリケーション・プログラミング・インターフェース（ＡＰＩ）を介してアプリケーションにアクセスすることができる。しかし、理知的なバッファリングは、アプリケーションよりもむしろデバイスの機能として実装することもでき、その場合はオーディオコーダ・デコーダ（コーデック）またはオーディオドライバがバッファとシームレスに対話することになり、キャプチャされた音声ストリームを利用するアプリケーションは、バッファリングされた音声が受信したストリームにプリペンドされたことを通知されないかも知れない。
【００１５】
図２は、デバイス１００の動作に関連する特定の構成要素を概念的に示すブロック図である。図示のように、デバイス１００は、様々なコンポーネントと通信接続するデータバス２２４を備えている。コンポーネントは、データバス２２４を介して接続されることに加えて（または接続される代わりに）、直接接続してもよい。更に後述するように、デバイス１００内のモジュールは、ハードウェア、ソフトウェア、またはそれらの組み合わせとして実装することも可能である。
【００１６】
デバイス１００は、データ及びコンピュータ可読命令を処理するために１つまたは複数の中央処理装置（ＣＰＵ）を備えるコントローラ／プロセッサ２０４と、データ及び命令を格納するためのメモリ２０６を含み得る。メモリ２０６は、揮発性ランダムアクセスメモリ（ＲＡＭ）、不揮発性読み出し専用メモリ（ＲＯＭ）、及び／または他のタイプのメモリを含むことができる。デバイス１００は、データ及び命令を格納するための不揮発性記憶装置２０８も含むことができる。データ・記憶装置２０８は、磁気記憶装置、光学記憶装置、ソリッドステート記憶装置などの１つまたは複数の蓄積型を含む。デバイス１００は、入力／出力装置インターフェース２０２を介して取り外し可能な或いは外部のメモリ及び／または記憶装置（取り外し可能なメモリカード、メモリキードライブ、ネットワークストレージなど）に接続することもできる。デバイス１００及びその様々なコンポーネントを動作させるためのコンピュータ命令は、コントローラ／プロセッサ２０４によって実行され、メモリ２０６、記憶装置２０８、外部デバイス、或いは以下に説明するアクティビティ監視モジュール２４０に含まれる記憶装置２４８に格納することができる。代替的に、実行可能命令のいくつかまたは全ては、ソフトウェアに加えて（または代わりに）、 アプリケーション固有のハードウェアに低減或いはファームウェアに埋め込まれてもよい。従って、本明細書に開示されたシステム、プロセス、及びアルゴリズムは、ソフトウェア、ファームウェア、及び／またはハードウェアの様々な組合せで実装することができる。
【００１７】
デバイス１００は、入力／出力装置インターフェース２０２を備えている。様々な内部及び外部入力／出力インターフェースがデバイス１００に含まれ得る。実施例の入力装置には、カメラ２１２、プッシュボタン２１４、タッチインターフェース２１６、マイクロフォン２１８、無線ヘッドセット８０６、及び全地球測位受信機（例えば、ＧＰＳ、ＧＬＯＮＡＳＳ）が含まれる。ローカル入力デバイスに加えて、データネットワーク８０２を介して他の入力デバイスを接続することもできる。出力デバイスは、ディスプレイ２１０及びスピーカ（図示せず）、並びにデータネットワーク８０２を介して接続されたデバイスを備えている。
【００１８】
また、入力／出力装置インターフェース２０２は、ユニバーサルシリアルバス（ＵＳＢ）、ファイヤーワイヤー、サンダーボルト、イーサネット（登録商標）などの外部周辺機器及びネットワークインターフェース、並びに無線周波数（ＲＦ）及び赤外線トランシーバ、ブルートゥースのような無線インターフェース、ＷｉＦｉなどの無線ローカルエリア・ネットワーク（ＷＬＡＮ）、ロングタームエボリューション（ＬＴＥ）、ＷｉＭＡＸ、ＧＳＭ（登録商標）、ＣＤＭＡなどのプロトコルを支援する携帯通信トランシーバを備えることができる。ネットワーク８０２は、インターネット及び／またはプライベートネットワークであってもよく、分散コンピューティング環境（図８と共に以下で詳しく説明する）を含んでいてもよい。
【００１９】
慣性センサ２６６における加速度計は、軸に沿ってデバイス１００の加速度を測定することが可能である。３軸加速度センサ（現在、一般的に多くの民生用電子機器で使用されている）は、デバイス１００に対してｘ、ｙ、ｚ軸に沿った加速度を提供する。デバイスのｘ、ｙ、ｚ軸に沿った加速度は、デバイスの向きに依存している。換言すれば、もしデバイスが画面を上向きにしてテーブルの上に平らに置かれている場合、左側から右に移動するようにデバイスを押すと、ｘ軸に沿った加速度が生成される。しかし、デバイスが９０度反時計方向に回された場合には、左から右へデバイスを押すことによってｙ軸に沿った負の加速度が生成される。また、慣性センサ２６６にはジャイロスコープも備えることが可能であり、デバイスのｘ、ｙ、ｚ軸の周りにおける回転経時変化を測定することができる。上下判断する特殊な重力センサ、及び地球の磁場（例えば、コンパス方位）に対して相対的な向きを決定するための磁力計のような他のセンサを利用することも可能である。これらのセンサは、デバイスの動きを検出するために使用することができ、以下に説明するように差し迫ったデバイスアクティビティのインディシアとして用いることが可能である。
【００２０】
デバイス１００は、オーディオデータを格納する循環バッファ２３２を更に備えることができる。図１について上述したように、バッファは２秒または３秒のような任意のサイズであってもよい。循環バッファは、絶えず自分自身の内容を上書きする先入れ先出し方式（ＦＩＦＯ）バッファである。実際には、循環バッファはメモリ２０６、記憶装置２０８、記憶装置２４８、または他のメモリの一部であってもよい。バッファは、短期記憶のために使用されるためＲＡＭなどの揮発性メモリを使用することができる。また、いくつかのシステムでは、バッファリング中に行われる頻繁な「書き込み」を鑑みると、不揮発性メモリに比べて揮発性メモリは低消費電力の利点を享受することができる（例えば、ダイナミックＲＡＭへの書き込みは、フラッシュストレージへの書き込みよりも少ないエネルギーしか使用しない）。プロセッサ２０４によって実行されるソフトウェアまたはファームウェア、或いは専用のハードウェアは、バッファに割り当てられたメモリ位置を通過してループし、循環ループ内のバッファへ書き込みを順次に行うことができる。
【００２１】
デバイス１００はまた、アクティビティモニタモジュール２４０を備えていてもよい。モジュール２４０にはアクティビティモニタ２４２が備えられている。図１に戻って説明するが、アクティビティモニタ２４２は、差し迫ったデバイスのアクティビティ（１２２）のインディシアのためにセンサとプロセッサ２０４を監視し、循環バッファ（１２４）を活性化する。直接または介在エンジンを介して監視されているセンサは、カメラ２１２、ボタン２１４、タッチインターフェース２１６、マイク２１８のようなコンポーネント、ワイヤレスヘッドセット８０６（これにはまた、独自の「ボタン」が具備されていてもよい）、ネットワーク８０２を介して接続されたリモートデバイス、そして慣性センサ２６６などの外部コンポーネントを含んでいる。アクティビティモニタは、例えば、プロセッサ（例えば、プロセッサ２０４）に実装されるソフトウェアまたはファームウェアとして、或いは順序論理回路に実装される有限状態マシンのようなハードウェアとして実装することができる。アクティビティモニタ２４２の操作については、更に後述する。
【００２２】
アクティビティモニタ２４２を支援する介在エンジンは、センサからの複雑なデータを単純な形に変換する。これらの介在エンジンの例としては、音声認識エンジン２４４、話者認識エンジン２４６、及び画像処理エンジン２５０を含むことができる。これらのエンジンは、プロセッサ２０４によって実行されるコードによって実装することができ、或いは分散コンピューティング環境内のネットワーク８０２を介して遠隔プロセッサ上に実装してもよい。
【００２３】
音声認識エンジン２４４は音声をテキストに変換することができ、「コマンド」語のような特定の単語が認識されたときインディシアを提供し、及び／または受信された音声が音声成分を含んでいることを示すことができる。話者認識エンジン２４６は、特定のユーザが話している時に識別するため、受信した音声信号を保存された音響指紋と比較する。
【００２４】
音声認識エンジン２４４と話者認識エンジン２４６は、例えば、音声認識と音響指紋処理の両方を実行するように設定された分級機システムの一部として実装することができる。このような分級機システムは、例えば、サポートベクターマシン（ＳＶＭ）であるが、代わりに、またはＳＶＭを増強するために他の機械学習技術も使用され得る。分級機システムは、隠れマルコフモデル（ＨＭＭ）、ガウス混合モデル（ＧＭＭ）、メル周波数ケプストラム係数（ＭＦＣＣ）などを利用することができる。音声認識エンジン２４４で使用される音声認識技術と話者認識エンジン２４６で使用される音響指紋やモデルは、同一または類似のパターン認識システムを利用することができるが、異なるモデル（例えば、音声認識は音素モデルを使用することができるのに対して、話者認識は声紋モデルを使用することができる）を伴ってもよいし、或いは完全に異なる技術を使用することも可能である。
【００２５】
音声認識エンジン２４４は特定の「コマンド」語を聞き取るように設定されており、話者認識エンジン２４６が特定の声を聞き取るように設定されている場合、一致が認められると分級機システムは、アクティビティモニタ２４２に信号を送ることできる。例えば、この信号は状態マシンへの信号であるが、デバイス１００のオペレーティングシステムまたはコントローラ／プロセッサ２０４上で実行されるアプリケーションのアプリケーション・プログラミング・インターフェース（ＡＰＩ）のいずれかを介して送信されるＡＰＩへの高レベルコマンドであってよく、または入力／出力装置インターフェース２０２によって提供されるネットワーク接続を介して送信されたメッセージであってもよい。信号は、コントローラ／プロセッサ２０４の予め規定された割込みをトリガすることが可能である。同様に、コントローラ／プロセッサ２０４上で実行されるコードは、一致が見出されたか否かを決定するために分級機システムを周期的にポーリングすることができる。
【００２６】
画像処理エンジン２５０は、カメラ２１２にアクセスし、運動解析や顔検出（または顔認識）を実行する分級機システムとして実装することもできる。
【００２７】
これらのエンジンで使用されるモデルは、記憶装置２４８に格納することができるが、この記憶装置は記憶装置２０８などの専用記憶装置または他の記憶装置の一部であってもよい。例えば、音声認識エンジン２４４は、受信された音声を、記憶装置２４８に記憶された音響、言語、及びその他のデータモデル並びに情報と比較することができる。音声認識のために記憶されたモデルは、更に、特定の単語に音素の発音で一致するデータ、及び単語または語彙の辞書、並びに特定のコンテキストで一緒に使用される可能性が高い単語を記述するデータを含むことができる。
【００２８】
話者認識エンジン２４６は、話者が既知の音声を述べているかどうかを判断するために、音声データを記憶装置２４８に格納された１つまたは複数のテキスト独立型声紋署名やモデルと比較することができる。記憶装置２４８に格納されている認識された音声署名は、トレーニングセッションを用いて生成することができるか、或いはユーザが音声関連のタスクのためにデバイスを使用する際にアセンブルすることができる。
【００２９】
画像処理エンジン２５０によって実行される顔検出は、ユーザ設定または非ユーザ設定であってもよい。このような顔検出はカメラ機能を提供する装置で急速に普及しており、この機能性はデバイス１００上の他の常駐プログラムと共有することができる（また、他のエンジンに関しても同様である）。特定の顔を認識するために顔認識が使用される場合、顔モデルは、デバイスのトレーニングセッションの一部として生成することができるか、またはユーザが自分自身の写真を撮る時にアセンブルすることができる。
【００３０】
また、アクティビティ監視モジュール２４０にはパターン認識エンジン２５２を含めることが可能であり、このエンジンは、一連の動的モデル（例えば、ベイジアン）を適用してオーディオと音声の記録及び処理に関連したデバイスの使用におけるパターンを識別するために、フィルタ処理することができる。例えば、オーディオと音声を記録及び処理するために、ユーザがアプリケーションを利用する時刻及び／またはデバイスの位置に関連するパターンである。センサデータ及び／または他のエンジンによって提供されるインディシアが差し迫ったアクティビティを示唆している場合、記憶装置２４８に格納された過去の使用パターン基づいて、パターン認識エンジンは、インディシアがオーディオを記録及び処理するデバイスを用いているユーザに予示する確率を提供することができる。もし、確率が閾値（異なるインディシアについて異なり得る閾値）を超えた場合には十分な共通性を提供し、活動モニタ２４２が循環バッファ２３２を活性化することができる。ただし確率が閾値未満である場合、活動モニタ２４２は活性化を見送ることができる。確率は閾値を下回るがユーザが音声の記録または処理をアクティブにして開始する場合には、パターン認識エンジンは、対応する記憶パターンを変更する、及び／または将来のインディシアに基づいてバッファの活性化のために閾値を調整することができる。
【００３１】
図３は、デバイス１００の動作のためのアルゴリズムの一例を示す。プロセスは３００で開始され、３２０で音声活動が監視される。監視中に、音声データのストリーム３１０が受信される。音声ストリームは、特にマイクロフォン２１８、ヘッドセット８０６、またはネットワーク８０２を介して接続されたオーディオキャプチャデバイスなどからキャプチャされる音声とすることができる。
【００３２】
活動モニタ２４２は、音声を記録または処理せよとのユーザ・コマンドが間近に迫っている可能性があることのインディシアのためにアクティビティ３２０を監視している。この監視は、インディシアが検出される（３２２「はい」）まで継続的なループ（３２２「いいえ」）で行ってもよい。
【００３３】
図４は、アクティビティを監視する３２０のためのより詳細な実施例である。監視は、インディシアの存在によってバッファを活性化することができる様々なインディシアを確認する。図４は一連の連続したステップとしてアクティビティの監視３２０を示しているが、ステップは任意の方法にアレンジすることができ、また、インディシアのいずれか（または他のインディシア）は、それ自体でまたは他のインディシアとの組み合わせで、バッファの活性化をもたらすことが可能である。一つのインディシアは、オーディオキャプチャまたは処理アプリケーションがプロセッサ２０４で開始するか（４９０）を示している。アプリケーション自体は高性能バッファで動作するように設定されているか或いは設定されていないため、これは特定アプリケーションの起動を監視する、及び／またはＩ／Ｏデバイス・インターフェース２０２を介して接続された音声入力装置にバス２２４を経由して通信チャネルを開始するアプリケーションを監視するプロセッサ２０４上で実行中のバックグラウンド・プロセスを有するものを含むことができる。
【００３４】
別のインディシアは、光強度の変化を監視することである（４９１）。この機能性は、光の強度を調整するために、バックライトを使用する液晶表示装置またはフロントライトを使用する電子ペーパーディスプレイを有する電子機器に一般に組み込まれている。環境光の強度をどのようにして測定するかの例としては、ディスプレイ２１０に組み込まれた一つまたは複数の光電セルを使用すること、カメラ２１２を使用することが挙げられる。光強度の変化は、それ自体で、または他のインディシアとの組み合わせで差し迫ったアクティビティのインディシアとして用いることができる。光強度の変化は、ユーザ（４９２）の動きや存在または顔認識（４９３）を監視するように、消費電力が高いレベルの他のプロセスをアクティブ化するために使用することもできる。急激な光強度の変化は、それ自体がインディシアとして有用であり得る。何故なら、ユーザの手が強度変化を引き起こすことでユーザがデバイスに手を伸ばしかけていると指し示すことができるからである。
【００３５】
別のインディシアは、カメラ２１２のようなカメラを用いてユーザ（４９２）の動きや存在を監視することである。画像処理エンジン２５０は、動きがカメラの視野内で行われたかどうかを決定するために、カメラを介して取得された一連の画像を比較する。これは独立したプロセスとして実行してもよいし、電力消費を最小限に抑えるために光強度（４９１）の変化に応答して実施してもよい。
【００３６】
もう一つのインディシアは、顔や頭部（４９３）のために取得した画像を検索することである。顔認識は写真撮影のために使用することができるモバイルデバイスに広く含まれており、画像処理エンジン２５０と顔認識処理（４９３）は撮影ソフトウェアコンポーネントによって使用される共有プロセスであってもよい。顔認識処理は独立したプロセスであってもよいし、電力消費を最小限に抑えるために、光強度（４９１）の変化及び／または動き検出（４９２）に応答して実施することも可能である。会話するためにユーザが頭部の近くにデバイスを置いている（例えば、頭部の横や口に近い位置に）ことを判断するために、とりわけ顔と頭部検出を使用することができる。
【００３７】
別のインディシアは、表示画面２１０のインターフェース２１６上で指が検出された時（４９４）である。静電容量式タッチパネルとジェスチャベースのディスプレイインターフェースとによって、画面に指が接近すると接触する前に検出することができる。
【００３８】
もう一つのインディシアは、周囲の音（４９５）を監視することである。周囲の音は、例えばマイクロフォン２１８、ヘッドセット８０６、またはＩ／Ｏデバイス・インターフェース２０２を介して接続された他のオーディオ入力デバイスから受信される背景雑音に勝るオーディオ閾値量を超えた音声であってもよい。周囲の音（４９５）の検出は、インディシア自体として、他のインディシアとの組み合わせで用いることができ、及び／または会話を検出するために音声を処理する（４９６）及び／または特定の話者を検出する（４９７）ために音声を処理する場合のように、大きな電力を消費する他のオーディオ分析プロセスを活性化することができる。
【００３９】
別のインディシアは、会話を検出する（４９６）ことである。このプロセスは音声認識エンジン２４４によって実行することができ、プロセスとエンジンの双方は、音声テキスト処理のようにデバイスによって提供される他のプロセスと共有することができる。消費電力を減らすためにアクティビティ監視モジュール２４０によって実行されるので、会話の検出（４９６）には、音素を単語や文章に完全に変換するのではなく、一連の音素が検出されたことを検出するように、音声認識ツールのサブセットを使用することができる。このプロセス（４９６）は独立して行われてもよいし、消費電力を最小化するために周囲の音（４９５）の検出に応答して実施されることも可能である。
【００４０】
もう一つのインディシアは、特定の話者が認識されたかどうかである（４９７）。音声認識エンジン２４６は、受信した音声をデバイスの所有者のものとして記憶された音声署名と比較することができる。このプロセス（４９７）は独立して行われてもよいし、消費電力を最小化するために周囲の音（４９５）の検出及び／または音声検出（４９６）に応答して実施されることも可能である。
【００４１】
別のインディシアは、慣性センサ２６６を使用して検出されたデバイスの動きである（４９８）。インディシアはデバイスの動きの変化に基づいてもよいし（例えば、ユーザがデバイスを取り上げた場合のように）、直立状態に維持されているなどデバイスが特定の向きに置かれていることに基づいてもよい。
【００４２】
インディシアが検出されると、パターン認識エンジン２５２は、一つまたは複数のインディシアの発生と現在の条件（例えば、時間、場所など）、並びにインディシアの発生に先行するアクティビティを音声の記録及び／または処理に先行するユーザ・アクティビティの過去のパターンと比較することができる。もし、パターンが類似しており（４２４「はい」）共通性の閾値を超える場合、プロセスは続行する。
【００４３】
図３に戻って説明するが、もしインディシアが検出された場合、循環バッファ２３２がアクティブ化される（３４０）。バッファの起動に続いて、オーディオを記録または処理せよとの指令信号をユーザから受信したか否かを確認するためのチェックを行うことができる（３３０）。アクティビティを監視するプロセス（３２０）は直列に示されているが、アクティビティの監視（３２０）とユーザ・コマンド信号があったか否かの監視は、並列に或いは異なる配列で動作させることもできる（３３０）。
【００４４】
音声を処理または記録せよとデバイスに指示するユーザ・コマンド信号を監視する（３３０）例としては、物理的なボタンを押す行為（例えば、ボタン２１４）、デバイスのグラフィカル・ユーザ・インターフェースを介して提供される仮想ボタンの押下、発話されたコマンドワード、またはコマンドジェスチャが含まれる。
【００４５】
信号がまだ受信されていない場合（３３０「いいえ」）、ユーザ信号が受信されるまで（３３０「はい」）バッファリングが継続する。次に、バッファリングされた音声の少なくとも一部はバッファから取得され（３５０）、ユーザ・コマンドの後に受信した音声にプリペンドされる（３６０）。そして、組み合わされた音声ストリームは、音声をテキストに処理するように記録及び／または処理される（３７０）。音声ストリームが終了すると（例えば、人が話すことを停止すると）、或いは終了した（例えば、ボタン２１４を解除した）との信号を送ると、プロセスは再起動する（３８０「いいえ」）。
【００４６】
図５は、時間領域オーディオ信号５０２を示している。ライン５０４は、記録または処理する信号を受信した時点（すなわち、３３０）を表しており、この時点ではライン５０４の右側のオーディオサンプル５１６はコマンド後に受信された音声であり、ライン５０４の左側の音声はバッファリングされた音声である。直近にバッファリングされた音声の固定部分はプリペンドすることができ（３６０）（例えば、直前の０．５秒）、或いは使用した部分５１４は、どこで会話または直近の単語が始まったかを検出することによって決定することができる。「沈黙」は、背景周囲ノイズエンベロープ５１０に対して決定される。バッファリングされた沈黙５１２の一部は、処理（３７０）を容易にするためにサンプル５１４に含ませることができ、音声認識のようにプロセスの精度に恩恵をもたらすことが可能である。インディシアとしての音の検出（図４の４９５）は、この周囲エンベロープ５１０を基準にしてもよい。
【００４７】
図６は、デバイス１００に含めることができる追加のコンポーネントを示すブロック図である。循環バッファ２３２はバッファモジュール６３０に組み込まれている。更に、バッファモジュール６３０は、標準化及び／または雑音補償モジュール６３４、アップ／ダウンオーディオサンプラ６３６、及びアンチエイリアシングフィルタ６３８を備えている。図７は、図３を補足するフローチャートであり、図６の追加コンポーネントの使用を示している。
【００４８】
図７に示した第１の追加機能は、もし受信した音声を記録または処理せよとの指示をユーザから受けずに一定の時間が経過した場合に（３３０）、循環バッファ２３２を遮断するために使用されるタイマーである。プロセスが開始されるとバッファは初期化され（７０４）、今後あり得るユーザ・コマンドが受信されることをインディシアが示唆した後にカウント７２８を開始する。所定の時間に到達するまでは（７４４「いいえ」）、音声のバッファリングが続行される。所定の時間が経過すると（７４４「はい」）、プロセスが再起動する。加えて、デバイス１００上の電力レベルが低い場合には、インディシア３２０の監視プロセス及び循環バッファの使用は、電力を節約するために一時停止することができる。
【００４９】
別の更なる機能は、標準化及び／または受信した音声にノイズ補償を（６３４によって）適用することである。プロセスが開始されると、レベルが初期化される（７０４）。補正はバッファリングされた音声に適用され（７３２）、ポスト・ユーザ・コマンドストリーム上にプリペンドされた以上にバッファリングした音声の大部分（例えば、バッファ全体）を使用しながら補正が継続的に時間をかけて算出され（７４２）、更に補正を調整することができる。チャネルの標準化及びノイズ低減に加えて、受信した音声に印加されるゲインは調整することができる（例えば、音声「クリッピング」防止するために）。チャネルの標準化にはケプストラムを算出すること、すなわちオーディオフレームのための音声認識機能であるが、そして、ある期間にわたってケプストラムベクトルを平均化し、時間をかけてケプストラム分散を決定することが含まれ得る。ケプストラム分散と平均値は、オーディオチャネルを標準化するために、背景雑音の影響を低減するために使用することができる。他の雑音補償技術を適用することも可能である。
【００５０】
一態様では、デバイスまたは音声処理システムに複数の循環バッファを組み込むことができる。バッファは異なる長さであってもよいし、異なる目的のために使用されてもよい。例えば、長いバッファは、デバイスによって経験される音声状態のより大きな拡張サンプルを採取するために使用することができ、これによって長い状態サンプルに基づくオーディオ補正をもたらすことが可能となる（例えば、チャネル標準化など）。より短いバッファは、音声認識処理のためにユーザの会話にプリペンドされることになる音声を実際に格納するために使用することができる。一態様では、より長いレンジのバッファは、より長いレンジのバッファに対応する時間枠にわたってオーディオ性能に関連する統計を格納することができる。更に、より長いレンジのバッファは、枠／時間ベースの間引き（ここではマイクが一定の間隔の間オフ／オンされるが、正常速度で音声はサンプリングされる）及び／またはサンプルレートの間引きを行うことができる。
【００５１】
上述したこの調整と従来の音声レベル調整の違いは、音声を記録または処理せよとのユーザ・コマンドの前に計算された補正が、コマンドの後に受信した音声に適用され得ることであり、バッファリングされた音声とライブオーディオとの間の音声品質に継続性を提供し、ストリームの最初から補正された正しいレベルを提供することができるということである。
【００５２】
別のさらなる機能は、音声をバッファリングする時に、デシメーションを使用することである。これは、オーディオサンプルの一部だけを循環バッファ２３２内に格納するため、デシメーションユニット６３６を使用することによって達成することができる。例えば、デシメーションユニット６３６は、バッファ内に各Ｎ個（例えば、１０の１）ユーザ・インターフェースだけのオーディオサンプルを記憶するのみとすることができる。
【００５３】
上述した高性能なバッファシステムのコンポーネントの大多数はデバイス１００内に常駐しているが、コンポーネントを分散コンピューティング環境内に配置することもできる。例えば、バッファモジュール６３０及び／またはアクティビティ監視モジュール２４０を、ネットワーク８０２を介して接続された他のデバイスに常駐させることができる。更に、処理（３６０）の一部または全部を、ネットワーク８０２を介してデバイス１００に接続されたプロセッサ上で実行することもできる。例えば、図８に示すように、無線デバイス８０４、無線ヘッドセット８０６、ラップトップ８０８、タブレットコンピュータ８１０、端末８１２、有線ヘッドセット８１４、及び／またはコンピュータ８１６がオーディオストリームを取得し、ユーザ・インターフェースを含み、そして慣性センサ２６６を備えていてもよく、一方でネットワーク８０２を介して接続されたサーバ８１８は、バッファモジュール６３０、アクティビティ監視モジュール２４０、及び／またはデータ記録と処理（３６０）の演算性を実行することができる。このような分散環境は、ネットワークに接続されて限られた演算能力と記憶容量しか持たないデバイスに、高性能バッファのメリットを享受させることを可能にする。
【００５４】
図２及び図６のシステムは、図１、３、４、及び７に示す処理を実行するためのコンピュータ読み取り可能な、及びコンピュータ実行可能な命令を含むことができる。このような命令は、不揮発性のコンピュータ読み取り可能な記憶装置２０８及び／または２４８に格納することができる。
【００５５】
図２及び６のコンポーネントはシステム１００に含まれていてもよいが、図示しない他のコンポーネントを含めることもできる。また、図示したコンポーネントのいくつかは、高性能バッファシステムの一般的な概念を用いることが可能な全てのデバイスには存在しないかもしれない。更に、単一のコンポーネントとしてデバイス１００内に示されているいくつかのコンポーネントは、単一のデバイス内で複数回にわたって現れることがある。例えば、デバイス１００は、複数の入力／出力装置インターフェース２０２または複数のコントローラ／プロセッサ２０４を備えることがある。
【００５６】
複数の循環バッファ２３２、アクティブ監視モジュール２４０、及びバッファモジュール６３０は、図１、３、４、及び７に示す処理を実行するシステムで使用することができる。このようなマルチデバイスシステムにおいて、デバイス１００は、これらのプロセスの様々な側面を実行するための種々のコンポーネントを備えることができる。複数のデバイスが重複するコンポーネントを備えていてもよい。図１、２、及び６に示されているデバイス１００は例示的なものであり、デバイスはスタンドアローンのデバイスであってもよいし、全体的または部分的により大きなデバイスまたはシステムのコンポーネントとして備えられてもよい。
【００５７】
本明細書に開示した概念は、例えば、デジタルカメラ、携帯電話、携帯情報端末（ＰＤＡ）、タブレットコンピュータ、ヘッドマウントカメラとディスプレイを備えたウェアラブルコンピュータ、その他のモバイルデバイスなどを含む多くの様々なデバイスやコンピュータシステムに適用することができる。デバイス１００のコンポーネントは、汎用コンピューティング・システム、サーバ・クライアント・コンピューティング・システム、メインフレーム・コンピューティング・システム、電話コンピューティング・システム、ラップトップコンピューターなどを含む高性能バッファ機能を提供することができる他のデバイスまたはシステムのコンポーネントであってもよい。    
【００５８】
様々なコンポーネントは、デバイス１００と共に全体的に或いは部分的に使用することができる。例えば、カメラ２１２は、画像をキャプチャするために電荷結合素子（ＣＣＤ）イメージセンサやアクティブピクセルセンサ（ＡＰＳ）を備えることができる。液晶表示ディスプレイのようなディスプレイ２１０、有機発光ダイオードディスプレイ、電子ペーパー、エレクトロクロミックディスプレイ、陰極線管ディスプレイ、フィールドエミッションディスプレイ、ピコプロジェクタや画像／またはビデオを表示するための他の適切なコンポーネント、並びに任意の適切な技術。デバイス２１８〜２１０は、それぞれがデバイス１００内に一体化され得るか、または分離していてもよい。
【００５９】
本開示の上述した態様は、例示的なものであることを意図している。これらは、本発明の原理及び適用を説明するために選択されたものであり、網羅的とする或いは発明を限定する意図はない。開示された態様の多くの変更及び変形は、当業者には明らかであろう。コンピュータ、デジタルイメージング及び／またはコンテンツ変換の分野における通常の知識を有する者は、本明細書に記載の構成要素及びプロセス・ステップは、他の構成要素またはステップ、或いは構成要素またはステップの組み合わせと交換可能であり得ることを認識し、依然として本開示の利益及び利点を達成するであろう。また、本発明は、ここに開示された特定の詳細及びステップの一部または全てがなくても実施できることは、当業者には明らかなはずである。
【００６０】
本開示の態様は、コンピュータ方法、システム、或いはメモリデバイスまたは非一時的なコンピュータ可読記憶媒体などの製品として実装することができる。コンピュータ可読記憶媒体はコンピュータによって読み取り可能であり、本開示に記載のプロセスを実行するためにコンピュータまたは他のデバイスを指示する命令を含み得る。コンピュータ可読記憶媒体は、揮発性コンピュータメモリ、不揮発性コンピュータメモリ、ハードドライブ、ソリッドステートメモリ、フラッシュドライブ、リムーバブルディスク、及び／またはその他の媒体によって実行することができる。
【００６１】
本明細書で使用されるように、特に指定しない限り、用語「ａ」または「ｏｎｅ」は、１つまたは複数の項目を含み得る。更に、「に基づいて」という語句は、特に記述しない限り、「に少なくとも部分的に基づいて」を意味することが意図させている。  
（条項）
【００６２】
１．電子デバイス上の音声バッファリングする方法であって、
差し迫ったデバイスのアクティビティのインディシアを検出することを含み、前記インディシアは、音声を記録または処理するアプリケーションの１つまたは複数の起動と、入射光強度の変化と、動きの視覚的検出と、デバイスに近接するユーザの視覚的検出と、顔の視覚的認識と、タッチ感応表示画面への指の近位の検出と、デバイスの動きと、周囲音の検出と、発話の検出と、または特定の話者の検出とを含み、
前記方法は、前記インディシアを検出することに応答して、循環バッファをアクティブ化し、
受信した音声を前記循環バッファ内に格納し、
音声を処理または記録する指示を受信し、
前記指示に応答して、前記指示前に前記バッファに格納された前記音声の少なくとも一部を、前記指示後に受信した音声と組み合わせ、そして、
組み合わされた音声を送信または処理する、
こと含む前記方法。
【００６３】
２．前記受信された指示は、物理的なボタンの押下、グラフィカル・ユーザ・インターフェースを介して提供される仮想ボタンの押下、またはコマンドジェスチャである、条項１に記載の方法。
【００６４】
３．更に、前記インディシアを検出することに応答して、かつ前記指示を受信する前に、前記受信した音声に適用されるべきオーディオ補正を算出し、そして、
前記オーディオ補正を前記指示後に受信した音声に適用する、条項１に記載の方法。
【００６５】
４．前記オーディオ補正は、１つまたは複数のチャンネル標準化またはノイズ除去を含む、条項３に記載の方法。
【００６６】
５．コンピューティングデバイスであって、
少なくとも１つのプロセッサと、
一連の動作を実行するために前記少なくとも１つのプロセッサによって実行されるように動作可能な命令を含むメモリ装置を備え、前記少なくとも１つのプロセッサを、
差し迫ったデバイスのアクティビティのインディシアを検出し、
差し迫ったデバイスのアクティビティの前記インディシアを検出することに少なくとも部分的に基づいて循環バッファを活性化させ、
受信した音声を前記循環バッファ内に格納し、
音声を処理または記録するための信号を受信し、
前記信号を受信する前に前記循環バッファに格納された前記音声の少なくとも一部を、前記信号の後に受信した音声と組み合わせ、そして、
前記組み合わされた音声を送信または処理する、
ように設定することを含む前記コンピューティングデバイス。
【００６７】
６．差し迫ったデバイスのアクティビティの前記インディシアを前記検出することは、前記少なくとも１つのプロセッサに結合した監視センサに少なくとも部分的に基づいている、条項５に記載のコンピューティングデバイス。
【００６８】
７．前記インディシアは、音声を記録または処理するアプリケーションの１つまたは複数の起動と、入射光強度の変化と、動きの視覚的検出と、前記デバイスに近接するユーザの視覚的検出と、顔の視覚的認識と、タッチ感応表示画面への指の近位の検出と、デバイスの動きと、周囲音の検出と、発話の検出と、または特定の話者の検出とを含む、条項６に記載のコンピューティングデバイス。
【００６９】
８．音声を記録または処理する前記信号は、物理的なボタンの押下、前記デバイスのグラフィカル・ユーザ・インターフェースを介して提供される仮想ボタンの押下、またはジェスチャに応答して生成される、条項５に記載のコンピューティングデバイス。
【００７０】
９．更に、前記少なくとも１つのプロセッサを、
音声を記録または処理する前記信号を受信する前にオーディオ補正を算出し、そして、
前記オーディオ補正を前記信号の後に受信した前記音声に適用するように設定する命令を含む、条項５に記載のコンピューティングデバイス。
【００７１】
１０．前記少なくとも１つのプロセッサは、
第一の循環バッファに格納された音声に少なくとも部分的に基づいてオーディオ補正を算出し、
前記オーディオ補正を第二の循環バッファに格納された音声に適用し、そして、
前記第二の循環バッファに格納された前記信号の一部を、前記信号の後に受信した音声と組み合わせるように設定される、条項９に記載のコンピューティングデバイス。
【００７２】
１１．前記オーディオ補正は、１つまたは複数のチャンネル標準化またはノイズ除去を含む、条項９に記載のコンピューティングデバイス。
【００７３】
１２．更に、前記少なくとも１つのプロセッサを、
ユーザ履歴に少なくとも部分的に基づいてキャプチャされた音声の利用に関連するデバイスのアクティビティのパターンを認識し、そして、
少なくとも差し迫ったデバイスのアクティビティの前記検出されたインディシア及び前記インディシアの発生に関連する他のデータを認識パターンと比較するように設定する命令を含み、
前記循環バッファを活性化させることは、更に、前記比較に少なくとも部分的に基づいている、条項５に記載のコンピューティングデバイス。
【００７４】
１３．コンピューティングデバイスを制御するためのプロセッサ実行可能命令を格納する非一時的なコンピュータ可読記憶媒体であって、
差し迫ったデバイスのアクティビティのインディシアを検出するプログラムコードと、
差し迫ったデバイスのアクティビティの前記インディシア検出することに少なくとも部分的に基づいて循環バッファを活性化させるプログラムコードと、  
受信した音声を前記循環バッファに格納するプログラムコードと、
音声を処理または記録する信号を受信するプログラムコードと、
前記信号を受信する前に前記循環バッファに格納された前記音声の少なくとも一部を、前記信号の後に受信した音声と組み合わせるプログラムコードと、そして、
前記組み合わされた音声を送信または処理するプログラムコードと、
を含む非一時的なコンピュータ可読記憶媒体。
【００７５】
１４．差し迫ったデバイスのアクティビティの前記インディシアを検出する前記プログラムコードは、前記コンピューティングデバイスのセンサを監視することに少なくとも部分的に基づいている、条項１３に記載の非一時的なコンピュータ可読記憶媒体。
【００７６】
１５．前記インディシアは、音声を記録または処理するアプリケーションの１つまたは複数の起動と、入射光強度の変化と、動きの視覚的検出と、前記デバイスに近接するユーザの視覚的検出と、顔の視覚的認識と、タッチ感応表示画面への指の近位の検出と、前記デバイスの動きと、周囲音の検出と、発話の検出と、または特定の話者の検出とを含む、条項１４に記載の非一時的なコンピュータ可読記憶媒体。
【００７７】
１６．音声を記録または処理する前記信号は、物理的なボタンの押下、前記コンピューティングデバイスのグラフィカル・ユーザ・インターフェースを介して提供される仮想ボタンの押下、またはジェスチャに応答して生成される、条項１３に記載の非一時的なコンピュータ可読記憶媒体。
【００７８】
１７．更に、音声を記録または処理する前記信号を受信する前にオーディオ補正を算出するプログラムコードと、そして、
前記オーディオ補正を前記信号の後に受信した音声に適用するプログラムコードを含む、条項１３に記載の非一時的なコンピュータ可読記憶媒体。
【００７９】
１８．前記オーディオ補正を算出する前記プログラムコードは第一の循環バッファに格納された音声に少なくとも部分的に基づいており、
前記オーディオ補正を適用する前記プログラムコードは前記オーディオ補正を、第二の循環バッファに格納された音声に適用するプログラムコードを含み、そして、
前記第二の循環バッファに格納された前記音声の一部を、前記信号の後に受信した音声と組み合わせるプログラムコードを含む、条項１７に記載の非一時的なコンピュータ可読記憶媒体。
【００８０】
１９．前記オーディオ補正は、１つまたは複数のチャンネル標準化またはノイズ除去を含む、条項１７に記載の非一時的なコンピュータ可読記憶媒体。
【００８１】
２０．更に、ユーザ履歴に少なくとも部分的に基づいてキャプチャされた音声の利用に関連するデバイスのアクティビティのパターンを認識するプログラムコードと、そして、
少なくとも差し迫ったデバイスのアクティビティの前記検出されたインディシア及び前記インディシアの発生に関連する他のデータを認識パターンと比較するプログラムコードを含み、
前記循環バッファを活性化させる前記プログラムコードは、前記比較に少なくとも部分的に更に基づいている、条項１３に記載の非一時的なコンピュータ可読記憶媒体。
【図１】
0006594879.tif 000002
【図２】
0006594879.tif 000003
【図３】
0006594879.tif 000004
【図４】
0006594879.tif 000005
【図５】
0006594879.tif 000006
【図６】
0006594879.tif 000007
【図７】
0006594879.tif 000008
【図８】
0006594879.tif 000009