(57)【特許請求の範囲】
【請求項１】
コンピュータにより実装される方法であって、
コンピューティングデバイスによって、発話に対応するオーディオデータを受信するステップと、
前記オーディオデータが第1の話者によって話された所定のホットワードの発話を含むと判定するステップと、
前記第1の話者からの音声を含む前記オーディオデータの第1の部分を識別するステップと、
第2の異なる話者からの音声を含む前記オーディオデータの第2の部分を識別するステップと、
前記オーディオデータが前記第1の話者によって話された前記所定のホットワードの発話を含むとの判定に基づいて、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分を、対応する期間の無音に置き換えるステップと、
前記オーディオデータが前記第1の話者によって話された前記所定のホットワードの発話を含むとの判定に基づいて、前記第1の話者からの音声を含む前記オーディオデータの前記第1の部分と、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分に代替する前記対応する期間の無音とを送信するステップと
を含む、方法。
【請求項２】
前記コンピューティングデバイスのフォアグラウンドで実行されているアプリケーションを識別するステップを含み、
前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分は、前記コンピューティングデバイスの前記フォアグラウンドで実行されている前記アプリケーションに基づいて、前記対応する期間の無音に置き換えられる、
請求項1に記載の方法。
【請求項３】
前記第1の話者からの音声を含む前記オーディオデータの第3の部分を識別するステップを含み、
前記第1の話者からの音声を含む前記オーディオデータの前記第1の部分と、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分に代替する前記対応する期間の無音とを送信するステップは、
前記第1の話者からの音声を含む前記オーディオデータの前記第1の部分と、前記第1の話者からの音声を含む前記オーディオデータの前記第3の部分と、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分に代替する前記対応する期間の無音とを送信するステップを含む、
請求項1に記載の方法。
【請求項４】
前記第1の話者からの音声を含む前記オーディオデータの前記第1の部分は、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分に先行し、
前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分は、前記第1の話者からの音声を含む前記オーディオデータの前記第3の部分に先行する、
請求項3に記載の方法。
【請求項５】
前記第1の話者からの音声を含む前記オーディオデータの前記第1の部分は、前記所定のホットワードの前記発話を含まない、請求項1に記載の方法。
【請求項６】
1つまたは複数のコンピュータと、
1つまたは複数のストレージデバイスと、
を含むシステムであって、前記1つまたは複数のストレージデバイスは、前記1つまたは複数のコンピュータによって実行されると、複数の動作を前記1つまたは複数のコンピュータに実行させるように動作可能である命令を格納し、前記複数の動作は、
コンピューティングデバイスによって、発話に対応するオーディオデータを受信する動作と、
前記オーディオデータが第1の話者によって話された所定のホットワードの発話を含むと判定する動作と、
前記第1の話者からの音声を含む前記オーディオデータの第1の部分を識別する動作と、
第2の異なる話者からの音声を含む前記オーディオデータの第2の部分を識別する動作と、
前記オーディオデータが前記第1の話者によって話された前記所定のホットワードの発話を含むとの判定に基づいて、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分を、対応する期間の無音に置き換える動作と、
前記オーディオデータが前記第1の話者によって話された前記所定のホットワードの発話を含むとの判定に基づいて、前記第1の話者からの音声を含む前記オーディオデータの前記第1の部分と、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分に代替する前記対応する期間の無音とを送信する動作と
を含む、システム。
【請求項７】
前記複数の動作は、
前記コンピューティングデバイスのフォアグラウンドで実行されているアプリケーションを識別する動作
をさらに含み、
前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分は、前記コンピューティングデバイスの前記フォアグラウンドで実行されている前記アプリケーションに基づいて、前記対応する期間の無音に置き換えられる、
請求項6に記載のシステム。
【請求項８】
前記複数の動作は、
前記第1の話者からの音声を含む前記オーディオデータの第3の部分を識別する動作
をさらに含み、
前記第1の話者からの音声を含む前記オーディオデータの前記第1の部分と、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分に代替する前記対応する期間の無音とを送信する動作は、
前記第1の話者からの音声を含む前記オーディオデータの前記第1の部分と、前記第1の話者からの音声を含む前記オーディオデータの前記第3の部分と、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分に代替する前記対応する期間の無音とを送信する動作を含む、
請求項6に記載のシステム。
【請求項９】
前記第1の話者からの音声を含む前記オーディオデータの前記第1の部分は、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分に先行し、
前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分は、前記第1の話者からの音声を含む前記オーディオデータの前記第3の部分に先行する、
請求項8に記載のシステム。
【請求項１０】
前記第1の話者からの音声を含む前記オーディオデータの前記第1の部分は、前記所定のホットワードの前記発話を含まない、請求項6に記載のシステム。
【請求項１１】
1つまたは複数のコンピュータによって実行可能な命令を含むソフトウェアを格納するコンピュータ可読記憶媒体であって、前記命令は、実行された時に、複数の動作を前記1つまたは複数のコンピュータに実行させ、前記複数の動作が、
コンピューティングデバイスによって、発話に対応するオーディオデータを受信する動作と、
前記オーディオデータが第1の話者によって話された所定のホットワードの発話を含むと判定する動作と、
前記第1の話者からの音声を含む前記オーディオデータの第1の部分を識別する動作と、
第2の異なる話者からの音声を含む前記オーディオデータの第2の部分を識別する動作と、
前記オーディオデータが前記第1の話者によって話された前記所定のホットワードの発話を含むとの判定に基づいて、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分を、対応する期間の無音に置き換える動作と、
前記オーディオデータが前記第1の話者によって話された前記所定のホットワードの発話を含むとの判定に基づいて、前記第1の話者からの音声を含む前記オーディオデータの前記第1の部分と、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分に代替する前記対応する期間の無音とを送信する動作と
を含む、コンピュータ可読記憶媒体。
【請求項１２】
前記複数の動作は、
前記第1の話者からの音声を含む前記オーディオデータの第3の部分を識別する動作
をさらに含み、
前記第1の話者からの音声を含む前記オーディオデータの前記第1の部分と、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分に代替する前記対応する期間の無音とを送信する動作は、
前記第1の話者からの音声を含む前記オーディオデータの前記第1の部分と、前記第1の話者からの音声を含む前記オーディオデータの前記第3の部分と、前記第2の異なる話者からの音声を含む前記オーディオデータの前記第2の部分に代替する前記対応する期間の無音とを送信する動作を含む、
請求項11に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は概して自動音声認識に関する。
【背景技術】
【０００２】
音声対応の家庭または他の環境の現実-すなわち、ユーザがクエリまたはコマンドを声に出して話すだけで、コンピュータベースのシステムがクエリに対処して応答する、および/またはコマンドを実行させることになる環境-がやってくる。音声対応環境(たとえば、自宅、職場、学校など)は、その環境の様々な部屋または領域全体に分散された接続されたマイクロフォンデバイスのネットワークを用いて実装することができる。このようなマイクロフォンのネットワークを介して、ユーザは、コンピュータまたは他のデバイスを自分の前または近くにさえ有することなく、その環境において本質的にどこからでもシステムに口頭で質問する力を有する。たとえば、キッチンで調理しているとき、ユーザはシステムに「how many milliliters in three cups?(3カップで何ミリリットル?)」と尋ね、これに応じて、たとえば、合成音声出力の形態でシステムから回答を受信するかもしれない。あるいは、ユーザは「when does my nearest gas station close(最寄りのガソリンスタンドはいつ閉まる?)」、または、家を出る準備ができたら「should I wear a coat today?(今日はコートを着るべき?)」などの質問をシステムにするかもしれない。
【０００３】
さらに、ユーザは、ユーザの個人情報に関する、システムのクエリを行い、および/またはコマンドを発行することができる。たとえば、ユーザは「when is my meeting with John?(ジョンと会うのはいつ?)」とシステムに尋ね、または「remind me to call John when I get back home(家に帰ったらジョンに電話することを思い出させて)」とシステムに命令するかもしれない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
音声対応システムについて、ユーザがシステムと対話する方法は、音声入力だけではないにしても、主に音声入力によるように設計されている。その結果、システムは、システムに向けられていないものを含めて周囲の環境で行われたすべての発話を拾う可能性があるが、たとえば、その環境に存在する個人に向けられたときに対して、特定の発話がシステムに向けられたときを区別する何らかの方法を有さなければならない。これを達成する1つの方法はホットワードを用いることであるが、これは、その環境におけるユーザ間の合意によって、システムの注意を喚起するために話される所定の単語として予約されるものである。一例の環境において、システムの注意を喚起するために用いられるホットワードは「OK computer(オッケー、コンピュータ)」という言葉である。その結果、「OK computer(オッケー、コンピュータ)」という言葉が話されるたび、これがマイクロフォンによって拾われ、システムに伝えられ、システムは、音声認識技術を実行し、またはオーディオ特徴およびニューラルネットワークを用いて、ホットワードが話されたかどうかを判断し、もしそうであれば、次のコマンドまたはクエリを待つ。したがって、システムに向けられた発話は一般的な形態[HOTWORD(ホットワード)][QUERY(クエリ)]を取り、この例における「HOTWORD(ホットワード)」は「OK computer(オッケー、コンピュータ)」であり、「QUERY(クエリ)」は、システムによって、単独で、またはネットワークを介してサーバと連携して、音声認識、解析および実行され得る任意の質問、コマンド、宣言、または他の要求であり得る。
【課題を解決するための手段】
【０００５】
音声対応システムは、システムと対話するというユーザの意図の表明として、ホットワードの発話を用いることができる。音声対応システムが様々なユーザからの音声を検出する場合、システムは、最初にホットワードを話すユーザからの音声を含むオーディオデータを処理および送信するとともに、ホットワードを話さなかった他のユーザからの音声を含むオーディオデータの処理を限定して送信を抑制することになる。システムは、ホットワーダを用いて、ホットワードを含むオーディオデータの部分を識別することができる。話者ダイアライゼーションモジュールが、ホットワードを含むオーディオデータの部分を分析して、ユーザの音声の特徴を識別し、同じユーザからの音声を含むその後に受信されたオーディオデータを識別することができる。話者ダイアライゼーションモジュールは、その後に受信された他の音声オーディオを分析し、話者がホットワード話者と同じ話者ではないオーディオ部分を識別することができる。他のユーザがホットワードを話すことによってシステムと対話する意図を表明しなかったため、システムは、その他のユーザによって話された部分を削除することができる。他のユーザによって話された部分を削除することによって、システムは、意図せずに音声対応システムと対話している可能性のある他のユーザのプライバシーを保持する。
【０００６】
本願に記載の主題の革新的な一態様によれば、話者ダイアライゼーションのための方法は、コンピューティングデバイスによって、発話に対応するオーディオデータを受信するアクションと、オーディオデータが第1の話者によって話された所定のホットワードの発話を含むと判定するアクションと、第1の話者からの音声を含むオーディオデータの第1の部分を識別するアクションと、第2の異なる話者からの音声を含むオーディオデータの第2の部分を識別するアクションと、オーディオデータが第1の話者によって話された所定のホットワードの発話を含むとの判定に基づいて、第1の話者からの音声を含むオーディオデータの第1の部分を送信するとともに、第2の異なる話者からの音声を含むオーディオデータの第2の部分の送信を抑制するアクションと、を含む。
【０００７】
これらおよび他の実装形態はそれぞれ、以下の特徴の1つまたは複数を任意選択で含むことができる。これらのアクションは、オーディオデータが第1の話者によって話された所定のホットワードの発話を含むとの判定に基づいて、第2の異なる話者からの音声を含むオーディオデータの第2の部分を、対応する期間の無音に置き換えるアクションをさらに含む。第1の話者からの音声を含むオーディオデータの第1の部分を送信するとともに、第2の異なる話者からの音声を含むオーディオデータの第2の部分の送信を抑制するアクションは、第1の話者からの音声を含むオーディオデータの第1の部分と、第2の異なる話者からの音声を含むオーディオデータの第2の部分に代替する、対応する期間の無音と、を送信するアクションを含む。これらのアクションは、コンピューティングデバイスのフォアグラウンドで実行されているアプリケーションを識別するアクションをさらに含む。
【０００８】
第2の異なる話者からの音声を含むオーディオデータの第2の部分は、コンピューティングデバイスのフォアグラウンドで実行されているアプリケーションに基づいて、対応する期間の無音に置き換えられる。これらのアクションは、オーディオデータが第1の話者によって話された所定のホットワードの発話を含むとの判定に基づいて、第2の異なる話者からの音声を含むオーディオデータの第2の部分を削除するアクションをさらに含む。第1の話者からの音声を含むオーディオデータの第1の部分を送信するとともに、第2の異なる話者からの音声を含むオーディオデータの第2の部分の送信を抑制するアクションは、第1の話者からの音声を含むオーディオデータの第1の部分を、第2の異なる話者からの音声を含むオーディオデータの第2の部分に代替する、対応する期間の無音を伴わずに送信するアクションを含む。これらのアクションは、コンピューティングデバイスのフォアグラウンドで実行されているアプリケーションを識別するアクションをさらに含む。第2の異なる話者からの音声を含むオーディオデータの第2の部分は、コンピューティングデバイスのフォアグラウンドで実行されているアプリケーションに基づいて、対応する期間の無音に置き換えられることなく削除される。
【０００９】
これらのアクションは、第1の話者からの音声を含むオーディオデータの第3の部分を識別するアクションをさらに含む。第1の話者からの音声を含むオーディオデータの第1の部分を送信するとともに、第2の異なる話者からの音声を含むオーディオデータの第2の部分の送信を抑制するアクションは、第1の話者からの音声を含むオーディオデータの第1の部分と、第1の話者からの音声を含むオーディオデータの第3の部分と、を送信するとともに、第2の異なる話者からの音声を含むオーディオデータの第2の部分の送信を抑制するアクションを含む。第1の話者からの音声を含むオーディオデータの第1の部分は、第2の異なる話者からの音声を含むオーディオデータの第2の部分に先行する。第2の異なる話者からの音声を含むオーディオデータの第2の部分は、第1の話者からの音声を含むオーディオデータの第3の部分に先行する。第1の話者からの音声を含むオーディオデータの第1の部分は、所定のホットワードの発話を含まない。
【００１０】
この態様の他の実施形態は、対応するシステム、装置、およびコンピュータストレージデバイス上に記録されたコンピュータプログラムを含み、それぞれ、これらの方法の動作を実行するように構成されている。
【発明の効果】
【００１１】
本明細書に記載の主題の特定の実施形態は、以下の利点の1つまたは複数を実現するように実装することができる。ホットワードを話すことによってシステムとの対話を開始しなかったユーザからの音声により、対話を実際に開始したユーザの音声が不明瞭になることがある。したがって、対話を開始しなかったユーザの音声の送信を抑制することは、送信されたオーディオデータによって表される音声が不明瞭または難解になり、その結果、システムによって誤解されることが起こるのを減らすのに役立ち得る。したがって、送信されたオーディオデータがコマンドまたはクエリ(たとえばデジタルアシスタントに対する)を表す実装形態において、対話を開始しなかったユーザの音声の送信を抑制することにより、不適切な応答が提供される、または不適切なアクションが実行される事例を減らすことができる。加えて、ユーザの音声がシステムのマイクロフォンによって検出されるが、ユーザがシステムとの対話を開始するホットワードを話さなかったとき、ユーザのプライバシーを保護することができる。システムは、ホットワードを話すことによってシステムとの対話を開始しないユーザからの音声を削除することができる。換言すれば、居合わせた人の音声がマイクロフォンによって検出されるが、その人がシステムと明示的に対話するホットワードを話さなかったとき、その居合わせた人のプライバシーを保護する機会がある。システムは、ホットワードを話すことによってシステムとの対話を開始しない、居合わせた人たちからの音声を削除することができる。
【００１２】
本明細書に記載の主題の1つまたは複数の実施形態の詳細を、添付の図面および以下の説明に記載する。本主題の他の特徴、態様、および利点は、本説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】通話中に話者ダイアライゼーションを用いてオーディオを編集する一例のシステムを示す。
【図２】話者ダイアライゼーションを実装するための一例のシステムを示す。
【図３】話者ダイアライゼーションのための一例のプロセスのフローチャートである。
【図４】コンピューティングデバイスおよびモバイルコンピューティングデバイスの一例である。
【発明を実施するための形態】
【００１４】
様々な図面における同様の参照番号および名称は同様の要素を示す。
【００１５】
図1は、通話中に話者ダイアライゼーションを用いてオーディオを編集する一例のシステム100を示している。簡潔に言うと、以下により詳細に説明するように、息子105および母110が、コンピューティングデバイス115およびコンピューティングデバイス120を用いてネットワーク165を介して通話している。息子105は、ホットワード「ok computer(オッケー、コンピュータ)」およびコマンド「call mom(お母さんに電話して)」を含む発話130を話すことによって通話を開始した。通話中、コンピューティングデバイス115のマイクロフォンは、息子105と娘125との両方からの音声を検出する。息子105がホットワードを話したため、コンピューティングデバイス115は、息子105からの音声を含むオーディオデータを送信するが、娘125などの他のユーザからのものは送信しない。
【００１６】
図1に示す例において、息子105は発話130「Ok computer, call mom(オッケー、コンピュータ、お母さんに電話して)」を話すことによって通話を開始する。コンピューティングデバイス115は、発話130を検出し、対応するオーディオデータを処理する。コンピューティングデバイス115は、電話、スマートフォン、ラップトップコンピュータ、デスクトップコンピュータ、スマートスピーカ、テレビ、スマートウォッチ、または任意の他の同様のデバイスなど、電話をかけるように構成された任意のタイプのデバイスであり得る。
【００１７】
コンピューティングデバイス115は、オーディオデータ170を処理し、ホットワード172「ok computer(オッケー、コンピュータ)」を識別する。コンピューティングデバイス115は、続けてオーディオデータ175を処理し、コマンド「call mom(お母さんに電話して)」を識別する。コンピューティングデバイス115は、コンピューティングデバイス115の連絡先における「mom(お母さん)」の電話番号に対応するコンピューティングデバイス120とネットワーク165を介して通話を開始する。
【００１８】
この通話は、ネットワーク165を介してコンピューティングデバイス115とコンピューティングデバイス120との間を接続する。通話中、息子105は「Hi Mom, I'm about to leave(もしもし、お母さん、もうすぐ出るよ)」と言う発話135を話す。コンピューティングデバイス115のマイクロフォンは発話135を検出し、コンピューティングデバイス115は、対応するオーディオデータ180を処理する。コンピューティングデバイス115は、同じ人が発話130におけるホットワードおよび発話135を話したと判定する。コンピューティングデバイス115は、発話135のオーディオデータ180を、ネットワーク165を介してコンピューティングデバイス120に送信する。コンピューティングデバイス120のオーディオスピーカは、発話135に対応するオーディオ145を出力する。母110は「Hi Mom, I'm about to leave(もしもし、お母さん、もうすぐ出るよ)」と聞く。
【００１９】
通話は続く。息子105がスピーカモードで、または周囲の領域におけるあらゆる音を拾うスマートスピーカを用いて電話をしている部屋に娘125が入ることができる。娘125は、息子105が母110に話しかけて発話135を言うのに気付くことができる。コンピューティングデバイス115のマイクロフォンは、娘125が「Hi Mom(もしもし、お母さん)」と言う発話140を話すのを検出する。コンピューティングデバイス115は、発話140に対応するオーディオデータ182を処理する。コンピューティングデバイス115は、異なる人が発話140および発話130におけるホットワード172を話したと判定する。発話130においてホットワード172を話した人以外の人が発話140を話したため、コンピューティングデバイス115は、発話140に対応するオーディオデータ182の送信を抑制する。この場合、娘125が発話140を話した。娘125は、偶然のユーザまたは意図しないユーザまたは両方であり得る。
【００２０】
コンピューティングデバイス115が、スマートフォンまたはスマートスピーカなどの、電話アプリケーションを実行するコンピューティングデバイスである場合、コンピューティングデバイス115は、発話140のオーディオデータ182を送信する代わりに、対応する期間の無音150を送信することができる。たとえば、娘125が1秒間発話140を話せば、コンピューティングデバイス115は、対応するオーディオデータ182のコンピューティングデバイス120への送信を抑制し、代わりに1秒間の無音150に対応するオーディオデータを送信する。発話135および発話140のタイミングを保持することによって、母110には会話が変更されたようには聞こえない。代わりに、母110は、会話中に息子105が止まったと信じることができる。
【００２１】
息子105は続けて「I'll be there in 30 minutes(30分で着くよ)」と言う発話155を話す。コンピューティングデバイス115のマイクロフォンは発話155を検出する。コンピューティングデバイス115は、発話155に対応するオーディオデータ185を処理する。コンピューティングデバイス115は、同じ人が発話130におけるホットワード172および発話155を話したと判定する。
【００２２】
コンピューティングデバイス115は、発話155のオーディオデータ185を、ネットワーク165を介してコンピューティングデバイス120に送信する。コンピューティングデバイス120のオーディオスピーカは、発話155に対応するオーディオ160を出力する。母110は「I'll be there in 30 minutes(30分で着くよ)」と聞く。通話は、息子105または母110が通話を終了するまで続く。
【００２３】
図2は、話者ダイアライゼーションを実装するための一例のシステム200を示している。システム200は、音声オーディオを受信、処理、および送信するように構成された任意のタイプのコンピューティングデバイスであり得る。たとえば、システム200は、図1のコンピューティングデバイス115またはコンピューティングデバイス120と同様であり得る。システム200のコンポーネントは、単一のコンピューティングデバイスに実装されても、複数のコンピューティングデバイスに分散されてもよい。
【００２４】
システム200はオーディオサブシステム202を含む。オーディオサブシステム202は、マイクロフォン204、アナログデジタル変換器206、バッファ208、および様々な他のオーディオフィルタを含むことができる。マイクロフォン204は、音声などの周囲の領域における音を検出するように構成することができる。アナログデジタル変換器206は、マイクロフォン204によって検出されたオーディオデータをサンプリングするように構成することができる。バッファ208は、システム200による処理のために、サンプリングされたオーディオデータを格納することができる。いくつかの実装形態において、オーディオサブシステム202は継続的にアクティブであり得る。この場合、マイクロフォン204は絶えず音を検出していることができる。アナログデジタル変換器206は、検出されたオーディオデータを絶えずサンプリングしていることができる。バッファ208は、最後の10秒間の音などの最新のサンプリングされたオーディオデータを格納することができる。システム200の他のコンポーネントがバッファ208におけるオーディオデータを処理しなければ、バッファ208は前のオーディオデータを上書きすることができる。
【００２５】
図2に示す例において、マイクロフォン204は「Hi Mom, I'm about to leave. Hi Mom. I'll be there in 30 minutes.(もしもし、お母さん、もうすぐ出るよ。もしもし、お母さん。30分で着くよ。)」に対応する発話を検出することができる。アナログデジタル変換器206は、受信されたオーディオデータをサンプリングすることができ、バッファ208は、サンプリングされたオーディオデータ212を格納することができる。
【００２６】
オーディオサブシステム202は、オーディオデータ212をホットワーダ210に提供する。ホットワーダ210は、マイクロフォン204を介して受信され、および/またはバッファ208に格納されたオーディオにおけるホットワードを識別するように構成されている。ホットワーダ210は、ホットワード検出器、キーワードスポッタ、またはキーワード検出器と呼ぶことができる。いくつかの実装形態において、ホットワーダ210は、システム200の電源がオンになっているときはいつでもアクティブになり得る。ホットワーダ210は、バッファ208に格納されたオーディオデータを継続的に分析する。ホットワーダ210は、バッファ208における現在のオーディオデータがホットワードを含む可能性を反映するホットワード信頼性スコアを計算する。ホットワード信頼性スコアを計算するため、ホットワーダ210はホットワードモデル214を用いることができる。ホットワーダ210は、フィルタバンクエネルギーまたはメル周波数ケプストラム係数などのオーディオ特徴をオーディオデータ212から抽出することができる。ホットワーダ210は、サポートベクターマシンまたはニューラルネットワークを用いることによってなど、分類ウィンドウを用いてこれらのオーディオ特徴を処理することができる。いくつかの実装形態において、ホットワーダ210は、ホットワード信頼性スコアを決定するために音声認識を実行しない。ホットワード信頼性スコアがホットワード信頼性スコア閾値を満たせば、ホットワーダ210は、オーディオデータがホットワードを含むと判定する。たとえば、ホットワード信頼性スコアが0.8であり、ホットワード信頼性スコア閾値が0.7であれば、ホットワーダ210は、オーディオデータ212がホットワードを含むと判定する。
【００２７】
図2に示す例において、ホットワーダ210は、オーディオデータ212における最初の話者がホットワード「ok computer(オッケー、コンピュータ)」を話したと判定する。ホットワーダ210は、ホットワードを含むオーディオデータ212の部分を識別することができる。たとえば、ホットワーダ210は、0.0秒と0.5秒との間のオーディオデータがホットワード220を含むことをコマンド識別器216およびダイアライゼーションモジュール218に提供することができる。ホットワーダ210は、話者がホットワードを発したことを示すデータをコマンド識別器216に提供することができるとともに、0.0秒と0.5秒との間のオーディオデータがホットワードを含むことをダイアライゼーションモジュール218に提供することができる。
【００２８】
いくつかの実装形態において、ホットワーダ210は話者識別能力を含むことができる。この場合、ホットワーダ210は、ホットワードを話した特定の人を識別することができる。たとえば、ホットワーダ210は、アリスがホットワードを話した可能性が高いと判定することができる。ホットワーダ210は、アリスがホットワードを話した可能性が高いことを示すデータをダイアライゼーションモジュール218に提供することができる。話者識別を実行するため、ホットワーダ210は、ユーザが様々なフレーズを繰り返すように要求することによって、そのユーザについての音声データを前もって収集しておくことができる。ホットワーダ210は、収集された音声サンプルを用いて、話者識別モデルをトレーニングしておくことができる。
【００２９】
コマンド識別器216は、オーディオサブシステム202から、またはホットワーダ210からオーディオデータ212を受信する。いくつかの実装形態において、ホットワーダ210が話されたホットワードを識別するか、またはユーザが、たとえば、コマンドボタンを選択することによってコマンドを話していることを示さない限り、コマンド識別器216はオーディオデータ212でコマンドを検索しないことがある。コマンド識別器216は、オーディオデータ212に対して音声認識を実行する音声認識器222を含むことができる。音声認識器222は、コマンド識別器216がコマンドについて分析するトランスクリプションを生成することができる。コマンド識別器216は、このトランスクリプションをコマンド224と比較して、トランスクリプションにおける用語のいずれかがコマンド224における用語と一致するかどうかを判断することができる。コマンド識別器216は、目的語を必要とするコマンドのためのコマンドの目的語を識別することもできる。たとえば、コマンド「call(電話する)」は目的語を必要とすることがある。コマンド識別器216は「call(電話する)」に続く言葉が、目的語、たとえば、「mom(お母さん)」であり得ると判定することができる。したがって、コマンドは「call mom(お母さんに電話して)」である。
【００３０】
いくつかの実装形態において、コマンド識別器216は、ダイアライゼーションモジュール218にタイミングデータ226を提供することができる。たとえば、コマンド識別器216は、コマンド「call mom(お母さんに電話して)」が0.7秒と1.3秒との間に発生していることを示すことができる。図2における例に従うと、オーディオデータ212は、0.0秒と0.5秒との間にホットワードを、そして0.7秒と1.3秒との間にコマンドを含む。いくつかの実装形態において、コマンド識別器216がコマンドを識別するまで、コマンド識別器216は音声認識器222を用いてオーディオデータ212を処理する。コマンド識別器216は、コマンド、たとえば、「call mom(お母さんに電話して)」を識別した後、音声認識の実行を停止するように音声認識器222に命令することができる。
【００３１】
ダイアライゼーションモジュール218は、オーディオデータ212を分析し、異なるユーザによって話されたオーディオデータの部分を識別する。ダイアライゼーションモジュール218は、オーディオデータ212、オーディオデータ212が0.0秒と0.5秒との間にホットワードを含むことを示すデータ、およびオーディオデータ212が0.7秒と1.3秒との間にコマンドを含むことを示すデータを受信する。ダイアライゼーションモジュール218は、ダイアライゼーションモデル234を適用することによって、ホットワード話者によって話された、またはホットワード話者によって話されていないとしてオーディオデータ212の部分を分類する。いくつかの実装形態において、ダイアライゼーションモジュール218は、それらの話者に従ってオーディオデータ212の部分を分類する。ダイアライゼーションモデル234は、特定の人からの音声を識別するようにトレーニングされていないことがある。ダイアライゼーションモジュール218は、ダイアライゼーションモデル234をオーディオデータ212に適用して、共通の話者によって話された部分を、ダイアライゼーションモデル234がその同じ話者についてのデータを含まなくても、識別する。ダイアライゼーションモジュール218は、同じ人によって話された部分におけるパターンを識別することができる。たとえば、ダイアライゼーションモジュール218は、共通のピッチの部分を識別することができる。
【００３２】
図2に示す例において、ダイアライゼーションモジュール218はオーディオデータ212を分析する。ダイアライゼーションモジュール218は、0.0秒と0.5秒との間にホットワードを含むオーディオデータ212の話者を話者1として分類する。いくつかの実装形態において、ダイアライゼーションモジュール218は、コマンドを含むオーディオデータ212の部分を処理しないことがある。この場合、ダイアライゼーションモジュール218は、0.7秒と1.3秒との間のオーディオデータの部分に話者ラベルを適用しないことがある。ダイアライゼーションモジュール218は「Hi Mom, I'm about to leave(もしもし、お母さん、もうすぐ出るよ)」に対応するオーディオデータの部分228が話者1によって話されていると判定する。ダイアライゼーションモジュール218は「Hi Mom(もしもし、お母さん)」に対応するオーディオデータの部分230が、話者1とは異なる話者2によって話されていると判定する。ダイアライゼーションモジュール218は「I'll be there in 30 minutes(30分で着くよ)」に対応するオーディオデータの部分232が話者1によって話されていると判定する。ダイアライゼーションモジュール218は、タイミングデータを生成して、オーディオデータの部分228、230、および232を互いに指定することができる。タイミングデータは、各部分の開始および終了を識別することができる。
【００３３】
いくつかの実装形態において、ダイアライゼーションモジュール218は、システム200が、サーバまたは携帯電話など、他のコンピューティングデバイスに送信しようとしているオーディオデータを処理することができる。たとえば、ダイアライゼーションモジュール218は、コマンド「call mom(お母さんに電話して)」の後に始まるオーディオデータの話者を処理および識別することができるが、これは、他のユーザのコンピューティングデバイスに電話で送信されるオーディオデータであるからである。
【００３４】
ダイアライゼーションモジュール218はオーディオデータ236をオーディオエディタ238に提供する。オーディオエディタ238は、アプリケーション設定240およびユーザ設定242に従ってオーディオデータ236を更新し、ホットワード話者以外の話者によって話されたオーディオデータの部分を削除する。図2の例において、オーディオエディタ238は、ホットワードを話さなかった話者である話者2によって話されたオーディオ部分248を削除するとともに、ホットワード話者である話者1によって話されたオーディオ部分246および250を保持することによってオーディオデータ244を生成する。いくつかの実装形態において、オーディオエディタ238は、オーディオ部分248を対応する期間の無音に置き換える。いくつかの実装形態において、オーディオエディタ238は、オーディオ部分248の対応する無音の期間なしで、オーディオ部分246をオーディオ部分250とつなぎ合わせる。
【００３５】
オーディオエディタ238は、アプリケーション設定240およびユーザ設定242にアクセスして、非ホットワード話者のオーディオを対応する期間の無音に置き換えるか、またはホットワード話者のオーディオをつなぎ合わせるかどうかを判断する。たとえば、アプリケーションは電話アプリケーションであり得る。電話アプリケーションのためのアプリケーション設定240は、オーディオデータ236のタイミングを保存することを示すことができる。この場合、オーディオエディタ238は、オーディオ部分248を対応する無音の部分に置き換えることによってオーディオデータ244を生成する。他の一例として、アプリケーションは検索アプリケーションであり得る。ボイスノートアプリケーションのためのアプリケーション設定240は、電話アプリケーションのようにタイミングに依存しないことがある。この場合、オーディオエディタ238は、オーディオ部分246とオーディオ部分250とをつなぎ合わせることによってオーディオデータ244を生成する。
【００３６】
いくつかの実装形態において、オーディオエディタ238は、他のコンピューティングデバイスにトランスクリプションを送信する前に、オーディオデータ236のトランスクリプションを編集することができる。オーディオエディタ238は、オーディオ部分248のトランスクリプションを含まないオーディオデータ244のトランスクリプションを送信することができる。たとえば、オーディオエディタ238は「Hi Mom, I'm about to leave. I'll be there in 30 minutes.(もしもし、お母さん、もうすぐ出るよ。30分で着くよ。)」を送信することができる。システム200は、メッセージングアプリケーションなどのアプリケーションについてトランスクリプションを送信することができる。
【００３７】
オーディオエディタ238は、ユーザ設定242にアクセスして、オーディオデータ236をどのように編集するかを決定することができる。ユーザ設定242は、ホットワード話者と非ホットワード話者との両方の音声を含むオーディオデータをどのように編集するかに関する設定を含むことができる。いくつかの実装形態において、ユーザ設定242は、ホットワード話者と非ホットワード話者との両方の音声を含むオーディオデータを保持することを示すことができる。いくつかの実装形態において、ユーザ設定242は、ホットワード話者と非ホットワード話者との両方の音声を含むオーディオデータを削除することを示すことができる。いくつかの実装形態において、アプリケーション設定240は、ホットワード話者と非ホットワード話者との両方の音声を含むオーディオデータのための編集規則を含むことができる。
【００３８】
システムは、ユーザインターフェイスジェネレータ252を含む。ユーザインターフェイスジェネレータ252は、オーディオデータ236を編集するための選択肢をユーザに提示するユーザインターフェイスを生成することができる。たとえば、ユーザインターフェイスは、オーディオデータ244を生成するための選択肢を含むことができる。ユーザは、オーディオデータを送信する前にオーディオ部分248を削除する選択肢を選択することができる。ユーザは、オーディオ部分248の削除を無効にし、オーディオデータを他のコンピューティングデバイスに送信するときにオーディオ部分248をオーディオ部分246および250とともに含めることを選択することができる。
【００３９】
いくつかの実装形態において、ユーザインターフェイスジェネレータ252は、オーディオエディタ238によるオーディオデータ236の編集を示すことができる。たとえば、ユーザインターフェイスジェネレータ252は、オーディオエディタ238が送信していたオーディオデータのトランスクリプションおよびオーディオエディタ238が削除していたオーディオデータのトランスクリプションを示すインターフェイスを生成することができる。ユーザインターフェイスはまた、各オーディオ部分について識別された話者に関するデータを含むことができる。
【００４０】
いくつかの実装形態において、ダイアライゼーションモジュール218は、ホットワーダ210の後、コマンド識別器216の前にオーディオデータ212を処理することができる。この場合、ホットワーダ210は、ホットワードを含むオーディオデータ212の部分を識別する。ダイアライゼーションモジュール218は、ホットワード話者からの音声を含むオーディオデータを送信するとともに、ホットワード話者以外の話者からの音声を含むオーディオデータの送信を抑制する。ダイアライゼーションモジュール218は、オーディオデータをコマンド識別器216に送信することができ、コマンド識別器216はオーディオエディタ238にデータを送信する。ダイアライゼーションモジュール218は、オーディオサブシステム202が検出されたオーディオを処理する際、リアルタイムまたはほぼリアルタイムで、オーディオデータ212の話者の変化を識別することができる。
【００４１】
システム200のコンポーネントは、クライアントデバイス、たとえば、コンピューティングデバイス115上に、または、クラウドとも呼ばれるサーバ上に実装することができる。たとえば、コマンド識別器216はサーバ上に実装することができる一方、システム200の他のコンポーネントはクライアントデバイス上に実装される。クライアントデバイスは、ホットワードを話さなかったユーザからの音声データを含むオーディオを、サーバにこのオーディオを送信する前に削除するように構成することができる。非ホットワード話者の音声データを削除することによって、クライアントデバイスは非ホットワード話者のプライバシーを保護する。非ホットワード話者は、居合わせた人または意図しないユーザであることがあり、システムと対話するつもりがなかった可能性が高い。
【００４２】
図3は、話者ダイアライゼーションのための一例のプロセス300を示している。一般に、プロセス300は、ホットワードおよびウォーターマークを含むオーディオに基づいて、メディアコンテンツに対応するオーディオに対する音声認識を実行する。プロセス300は、1つまたは複数のコンピュータ、たとえば、図1のコンピューティングデバイス115または図2のシステム200を含むコンピュータシステムによって実行されるものとして説明する。
【００４３】
システムは、発話に対応するオーディオデータを受信する(310)。発話は、複数の話者からの音声を含むことがある。たとえば、発話は「Ok computer, call Mom. Hi Mom, I'm about to leave. Hi Mom. I'll be there in 30 minutes.(オッケー、コンピュータ、お母さんに電話して。もしもし、お母さん、もうすぐ出るよ。もしもし、お母さん。30分で着くよ。)」であり得る。システムは、オーディオデータが第1の話者によって話された所定のホットワードの発話を含むと判定する(320)。システムは、ホットワーダを用いて、オーディオデータにおけるホットワードを識別することができる。たとえば、システムは、オーディオデータがホットワード「ok computer(オッケー、コンピュータ)」を含む可能性が高いと判定することができる。
【００４４】
システムは、第1の話者からの音声を含むオーディオデータの第1の部分を識別する(330)。いくつかの実装形態において、システムは、ホットワードおよびホットワードに続くいずれのコマンドをも含まないオーディオデータを分析する。たとえば、システムは「ok computer、call Mom(オッケー、コンピュータ、お母さんに電話して)」に対応するオーディオデータの部分を分析しないことがある。システムは、コマンドに続くオーディオデータを分析することができる。システムは、ホットワードを話した第1の話者からの音声を含むオーディオデータの部分を識別する。たとえば、システムは「Hi Mom, I'm about to leave(もしもし、お母さん、もうすぐ出るよ)」に対応する音声データが、ホットワードも話した第1の話者によって話されていると判定することができる。
【００４５】
システムは、第2の異なる話者からの音声を含むオーディオデータの第2の部分を識別する(340)。システムは、オーディオデータを分析して、ホットワード話者以外の話者からの音声を含むオーディオデータの部分を識別する。たとえば、システムは「Hi Mom(もしもし、お母さん)」がホットワード話者以外の話者によって話されていると判定することができる。
【００４６】
いくつかの実装形態において、システムは、オーディオデータの第3の部分の話者を識別することができる。たとえば、システムは「I'll be there in 30 minutes(30分で着くよ)」に対応するオーディオデータがホットワード話者によって話されていると判定することができる。
【００４７】
システムは、オーディオデータが第1の話者によって話された所定のホットワードの発話を含むとの判定に基づいて、第1の話者からの音声を含むオーディオデータの第1の部分を送信するとともに、第2の異なる話者からの音声を含むオーディオデータの第2の部分の送信を抑制する(350)。いくつかの実装形態において、システムは、音声のタイミングを保持すべきである場合、たとえば、電話においてはオーディオデータの第2の部分を対応する期間の無音に置き換えることができる。いくつかの実装形態において、システムは、ホットワード話者からの音声を含むオーディオデータの部分をつなぎ合わせるとともに、ホットワード話者以外の話者からの音声を含むオーディオデータを削除することができる。システムがタイミングを保持するかどうかは、アプリケーション設定またはユーザ設定に基づくことができる。
【００４８】
ホットワード話者以外の話者からの音声を含むオーディオデータを送信しないことによって、システムは、システムのマイクロフォンが検出することができる他の話者のプライバシーを保持する。システムは、ホットワードの発話を用いて、ホットワード話者がシステムと対話するつもりであることを示す。システムは、ホットワード話者以外の話者によって話されたオーディオデータまたはオーディオデータのトランスクリプトを保存しないことがある。システムがオーディオデータのトランスクリプトを生成する場合、システムは、ホットワード話者以外の話者によって話されたトランスクリプトの部分を削除することができる。
【００４９】
図4は、ここで説明した技術を実装するために用いることができるコンピューティングデバイス400およびモバイルコンピューティングデバイス450の一例を示している。コンピューティングデバイス400は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すことを意図している。モバイルコンピューティングデバイス450は、携帯情報端末、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスなど、様々な形態のモバイルデバイスを表すことを意図している。ここに示すコンポーネント、それらの接続および関係、ならびにそれらの機能は、単に例の意味であり、限定していることを意味するものではない。
【００５０】
コンピューティングデバイス400は、プロセッサ402、メモリ404、ストレージデバイス406、メモリ404および複数の高速拡張ポート410に接続している高速インターフェイス408、および低速拡張ポート414およびストレージデバイス406に接続している低速インターフェイス412を含む。プロセッサ402、メモリ404、ストレージデバイス406、高速インターフェイス408、高速拡張ポート410、および低速インターフェイス412のそれぞれは、様々なバスを用いて相互接続されており、共通のマザーボード上に、または適宜他の方法で取り付けることができる。プロセッサ402は、メモリ404内またはストレージデバイス406上に格納された命令を含む、コンピューティングデバイス400内での実行のための命令を処理して、高速インターフェイス408に結合されたディスプレイ416などの外部入力/出力デバイス上にGUI用のグラフィック情報を表示することができる。他の実装形態において、複数のプロセッサおよび/または複数のバスを、適宜、複数のメモリおよびメモリのタイプとともに用いることができる。また、複数のコンピューティングデバイスを接続し、各デバイスが必要な動作の一部を提供することができる(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【００５１】
メモリ404はコンピューティングデバイス400内の情報を格納する。いくつかの実装形態において、メモリ404は、1つまたは複数の揮発性メモリユニットである。いくつかの実装形態において、メモリ404は、1つまたは複数の不揮発性メモリユニットである。メモリ404は、磁気または光ディスクなど、他の形態のコンピュータ可読媒体であってもよい。
【００５２】
ストレージデバイス406は、コンピューティングデバイス400に大容量ストレージを提供することができる。いくつかの実装形態において、ストレージデバイス406は、ストレージエリアネットワークまたは他の構成におけるデバイスを含む、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリまたは他の同様のソリッドステートメモリデバイス、またはデバイスのアレイなどのコンピュータ可読媒体であっても、これを含んでもよい。命令を情報担体に格納することができる。命令は、1つまたは複数の処理デバイス(たとえば、プロセッサ402)によって実行されると、上述したもののような1つまたは複数の方法を実行する。命令はまた、コンピュータまたは機械可読媒体(たとえば、メモリ404、ストレージデバイス406、またはプロセッサ402上のメモリ)などの1つまたは複数のストレージデバイスによって格納することができる。
【００５３】
高速インターフェイス408は、コンピューティングデバイス400についての帯域幅集中型動作を管理する一方、低速インターフェイス412は、低帯域幅集中型動作を管理する。このような機能の割り当ては単に一例である。いくつかの実装形態において、高速インターフェイス408は、メモリ404、ディスプレイ416に(たとえば、グラフィックプロセッサまたはアクセラレータを介して)、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート410に結合されている。この実装形態において、低速インターフェイス412は、ストレージデバイス406および低速拡張ポート414に結合されている。低速拡張ポート414は、様々な通信ポート(たとえば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、ワイヤレス・イーサネット(登録商標))を含むことができ、たとえば、ネットワークアダプタを介して、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータなどのネットワークデバイスなどの1つまたは複数の入力/出力デバイスに結合することができる。
【００５４】
コンピューティングデバイス400は、図に示すように、いくつかの異なる形態で実装することができる。たとえば、標準的なサーバ420として、またはこのようなサーバのグループにおいて複数回実装することができる。加えて、ラップトップコンピュータ422などのパーソナルコンピュータにおいて実装することもできる。また、ラックサーバシステム424の一部として実装することもできる。あるいは、コンピューティングデバイス400からのコンポーネントは、モバイルコンピューティングデバイス450などのモバイルデバイス(図示せず)における他のコンポーネントと組み合わせることができる。このようなデバイスのそれぞれは、コンピューティングデバイス400およびモバイルコンピューティングデバイス450の1つまたは複数を含むことができ、システム全体は、互いに通信する複数のコンピューティングデバイスから構成することができる。
【００５５】
モバイルコンピューティングデバイス450は、他のコンポーネントの中でも、プロセッサ452、メモリ464、ディスプレイ454などの入力/出力デバイス、通信インターフェイス466、およびトランシーバ468を含む。モバイルコンピューティングデバイス450は、マイクロドライブまたは他のデバイスなどのストレージデバイスを備え、追加のストレージを提供することもできる。プロセッサ452、メモリ464、ディスプレイ454、通信インターフェイス466、およびトランシーバ468のそれぞれは、様々なバスを用いて相互接続されており、これらのコンポーネントのいくつかは、共通のマザーボード上に、または適宜他の方法で取り付けることができる。
【００５６】
プロセッサ452は、メモリ464に格納された命令を含む、モバイルコンピューティングデバイス450内の命令を実行することができる。プロセッサ452は、別個の複数のアナログプロセッサおよびデジタルプロセッサを含むチップのチップセットとして実装することができる。プロセッサ452は、たとえば、ユーザインターフェイスの制御、モバイルコンピューティングデバイス450によって実行されるアプリケーション、およびモバイルコンピューティングデバイス450による無線通信など、モバイルコンピューティングデバイス450の他のコンポーネントの協調を提供することができる。
【００５７】
プロセッサ452は、ディスプレイ454に結合された制御インターフェイス458およびディスプレイインターフェイス456を介してユーザと通信することができる。ディスプレイ454は、たとえば、TFT(Thin-Film-Transistor Liquid Crystal Display:薄膜トランジスタ液晶ディスプレイ)ディスプレイまたはOLED(Organic Light Emitting Diode:有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェイス456は、ディスプレイ454を駆動してグラフィックおよび他の情報をユーザに提示するための適切な回路を含むことができる。制御インターフェイス458は、ユーザからコマンドを受信し、それらをプロセッサ452への提出用に変換することができる。加えて、モバイルコンピューティングデバイス450の他のデバイスとの近距離通信を可能にするよう、外部インターフェイス462がプロセッサ452との通信を提供することができる。外部インターフェイス462は、たとえば、いくつかの実装形態においては有線通信、または他の実装形態においては無線通信を提供することができ、複数のインターフェイスを用いることもできる。
【００５８】
メモリ464はモバイルコンピューティングデバイス450内の情報を格納する。メモリ464は、1つまたは複数のコンピュータ可読媒体、1つまたは複数の揮発性メモリユニット、または1つまたは複数の不揮発性メモリユニットとして実装することができる。拡張メモリ474も設けられ、たとえば、SIMM(Single In Line Memory Module:シングルインラインメモリモジュール)カードインターフェイスを含むことができる拡張インターフェイス472を介してモバイルコンピューティングデバイス450に接続することができる。拡張メモリ474は、モバイルコンピューティングデバイス450のための追加のストレージスペースを提供することができ、またはモバイルコンピューティングデバイス450のためのアプリケーションまたは他の情報を格納することもできる。具体的には、拡張メモリ474は、上述のプロセスを実行または補足する命令を含むことができ、安全な情報も含むことができる。したがって、たとえば、拡張メモリ474は、モバイルコンピューティングデバイス450についてのセキュリティモジュールとして提供されてもよく、モバイルコンピューティングデバイス450の安全な使用を可能にする命令でプログラムされてもよい。加えて、SIMMカードを介して、ハッキング不可能な方法でSIMMカード上に識別情報を配置するなど、追加情報とともに、安全なアプリケーションを提供することができる。
【００５９】
メモリは、後述するように、たとえば、フラッシュメモリおよび/またはNVRAMメモリ(non-volatile random access memory:不揮発性ランダムアクセスメモリ)を含むことができる。いくつかの実装形態において、命令が情報担体に格納される。命令は、1つまたは複数の処理デバイス(たとえば、プロセッサ452)によって実行されると、上述したもののような1つまたは複数の方法を実行する。命令はまた、1つまたは複数のコンピュータまたは機械可読媒体(たとえば、メモリ464、拡張メモリ474、またはプロセッサ452上のメモリ)などの1つまたは複数のストレージデバイスによって格納することができる。いくつかの実装形態において、命令は、たとえば、トランシーバ468または外部インターフェイス462を介して、伝播信号において受信することができる。
【００６０】
モバイルコンピューティングデバイス450は通信インターフェイス466を介して無線で通信することができ、これは必要な場合はデジタル信号処理回路を含むことができる。通信インターフェイス466は、とりわけ、GSM(登録商標)ボイスコール(Global System for Mobile communications:モバイル通信用グローバルシステム)、SMS(Short Message Service:ショートメッセージサービス)、EMS(Enhanced Messaging Service:拡張メッセージングサービス)、またはMMSメッセージング(Multimedia Messaging Service:マルチメディアメッセージングサービス)、CDMA(code division multiple access:符号分割多重アクセス)、TDMA(time division multiple access:時分割多重アクセス)、PDC(Personal Digital Cellular:パーソナルデジタルセルラー)、WCDMA(登録商標)(Wideband Code Division Multiple Access:広帯域符号分割多重アクセス)、CDMA2000、またはGPRS(General Packet Radio Service:汎用パケット無線サービス)などの様々なモードまたはプロトコルの下での通信を提供することができる。このような通信は、たとえば、無線周波数を用いるトランシーバ468を介して行うことができる。加えて、ブルートゥース(登録商標)、ワイファイ、または他のこのようなトランシーバ(図示せず)を用いるなど、短距離通信を行うことができる。加えて、GPS(Global Positioning System:全地球測位システム)受信機モジュール470がモバイルコンピューティングデバイス450に追加のナビゲーションおよび位置関連の無線データを提供することができ、これは、モバイルコンピューティングデバイス450上で実行されるアプリケーションによって適宜用いることができる。
【００６１】
モバイルコンピューティングデバイス450は、オーディオコーデック460を用いて可聴通信することもでき、これは、ユーザから話された情報を受信し、それを使用可能なデジタル情報に変換することができる。オーディオコーデック460は同様に、たとえば、モバイルコンピューティングデバイス450のハンドセットにおけるスピーカを介してなど、ユーザのために可聴音を生成することができる。このような音は、音声通話からの音を含むことができ、録音された音(たとえば、ボイスメッセージ、音楽ファイルなど)を含むことができ、そしてモバイルコンピューティングデバイス450上で動作するアプリケーションによって生成される音も含むことができる。
【００６２】
モバイルコンピューティングデバイス450は、図に示すように、いくつかの異なる形態で実装することができる。たとえば、携帯電話480として実装することができる。また、スマートフォン482、携帯情報端末、または他の同様のモバイルデバイスの一部として実装することもできる。
【００６３】
ここで説明したシステムおよび技術の様々な実装形態は、デジタル電子回路、集積回路、特別に設計されたASIC(application specific integrated circuits:特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはこれらの組み合わせにおいて実現することができる。これらの様々な実装形態は、少なくとも1つのプログラム可能プロセッサを含むプログラム可能システム上で実行可能および/または解釈可能である1つまたは複数のコンピュータプログラムにおける実装形態を含むことができ、プロセッサは、専用または汎用で、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、これらにデータおよび命令を送信するように結合することができる。
【００６４】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)は、プログラム可能プロセッサ用の機械命令を含み、高レベルの手続き型および/またはオブジェクト指向プログラミング言語で、および/またはアセンブリ/機械言語で実装することができる。本明細書で用いるように、機械可読媒体およびコンピュータ可読媒体という用語は、機械命令を機械可読信号として受信する機械可読媒体を含む、プログラム可能プロセッサに機械命令および/またはデータを提供するために用いられる任意のコンピュータプログラム製品、装置および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。機械可読信号という用語は、機械命令および/またはデータをプログラム可能プロセッサに提供するために用いられる任意の信号を指す。
【００６５】
ユーザとの対話を提供するため、ここで説明したシステムおよび技術は、ユーザに情報を表示するためのディスプレイデバイス(たとえば、CRT(cathode ray tube:陰極線管)またはLCD(liquid crystal display:液晶ディスプレイ)モニタ)およびユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)を有するコンピュータ上で実装することができる。他の種類のデバイスを用いてユーザとの対話を提供することもできる。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であってもよく、ユーザからの入力は、音響、音声、または触覚の入力を含む任意の形態で受信することができる。
【００６６】
ここで説明したシステムおよび技術は、バックエンドコンポーネントを(たとえば、データサーバとして)含む、またはミドルウェアコンポーネント(たとえば、アプリケーションサーバ)を含む、またはフロントエンドコンポーネント(たとえば、ここで説明したシステムおよび技術の実装形態とユーザとの対話を可能にするグラフィックユーザインターフェイスまたはウェブブラウザを有するクライアントコンピュータ)を含むコンピューティングシステム、またはこのようなバックエンドコンポーネント、ミドルウェアコンポーネント、またはフロントエンドコンポーネントの任意の組み合わせにおいて実装することができる。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信(たとえば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、およびインターネットを含む。
【００６７】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いに遠隔であり、通常は通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて互いにクライアントとサーバとの関係を有するコンピュータプログラムによって生じる。
【００６８】
いくつかの実装形態について上で詳細に説明してきたが、他の変更も可能である。たとえば、クライアントアプリケーションはデリゲートにアクセスするものとして説明されているが、他の実装形態において、1つまたは複数のサーバ上で実行されるアプリケーションなど、1つまたは複数のプロセッサによって実装される他のアプリケーションによってデリゲートを使用することができる。加えて、図に示す論理フローは、望ましい結果を達成するため、示した特定の順序、または連続した順序を必要としない。加えて、説明したフローから、他のアクションを提供することができ、またはアクションを削除することができ、他のコンポーネントを説明したシステムに追加、またはシステムから削除することができる。したがって、他の実装形態が以下の特許請求の範囲内にある。
【符号の説明】
【００６９】
100  システム
105  息子
110  母
115  コンピューティングデバイス
120  コンピューティングデバイス
125  娘
130  発話
135  発話
140  発話
145  オーディオ
150  無音
155  発話
160  オーディオ
165  ネットワーク
170  オーディオデータ
172  ホットワード
175  オーディオデータ
180  オーディオデータ
182  オーディオデータ
185  オーディオデータ
200  システム
202  オーディオサブシステム
204  マイクロフォン
206  アナログデジタル変換器
208  バッファ
210  ホットワーダ
212  オーディオデータ
214  ホットワードモデル
216  コマンド識別器
218  ダイアライゼーションモジュール
220  ホットワード
222  音声認識器
224  コマンド
226  タイミングデータ
228  オーディオデータの部分
230  オーディオデータの部分
232  オーディオデータの部分
234  ダイアライゼーションモデル
236  オーディオデータ
238  オーディオエディタ
240  アプリケーション設定
242  ユーザ設定
244  オーディオデータ
246  オーディオ部分
248  オーディオ部分
250  オーディオ部分
252  ユーザインターフェイスジェネレータ
400  コンピューティングデバイス
402  プロセッサ
404  メモリ
406  ストレージデバイス
408  高速インターフェイス
410  高速拡張ポート
412  低速インターフェイス
414  低速拡張ポート
416  ディスプレイ
420  サーバ
422  ラップトップコンピュータ
424  ラックサーバシステム
450  モバイルコンピューティングデバイス
452  プロセッサ
454  ディスプレイ
456  ディスプレイインターフェイス
458  制御インターフェイス
460  オーディオコーデック
462  外部インターフェイス
464  メモリ
466  通信インターフェイス
468  トランシーバ
470  GPS受信機モジュール
472  拡張インターフェイス
474  拡張メモリ
480  携帯電話
482  スマートフォン
【図１】
0006798046.tif 000002
【図２】
0006798046.tif 000003
【図３】
0006798046.tif 000004
【図４】
0006798046.tif 000005