(57)【要約】【課題】  音声から素早く正確にキーワードを検出できる音声キーワード検出装置を実現する。【解決手段】  実施形態によれば、音声キーワード検出装置は、キーワードスコア算出手段と、キーワード検出手段と、受理決定手段とを具備する。キーワードスコア算出手段は、前記第１サブキーワードに対する第１スコアと前記第２サブキーワードに対する第２スコアとを算出する。キーワード検出手段は、前記第１および第２スコアに基づいて前記第１および第２サブキーワードを検出する。受理決定手段は、第１フレームから前記第１サブキーワードが検出されたとき、前記第１サブキーワードを受理することを決定し、第２フレームから前記第２サブキーワードが検出されたとき、前記第１フレームの始端時間と終端時間の少なくとも一方と、前記第２フレームの始端時間と終端時間の少なくとも一方とに基づいて、前記第２サブキーワードを受理するか否かを決定する。【選択図】図３
2018155957.tif 000002
【特許請求の範囲】
【請求項１】
複数のフレームを含む音声データを取得する音声取得手段と、
第１キーワードを構成する第１サブキーワードと前記第１サブキーワードに後続する第２サブキーワードとにそれぞれ関連付けられた音素、音韻、発音表記、モーラ、または表記と、前記音声データの各フレームとをマッチングすることによって、前記第１サブキーワードに対する第１スコアと前記第２サブキーワードに対する第２スコアとを算出するキーワードスコア算出手段と、
前記第１スコアに基づいて前記音声データから前記第１サブキーワードを検出し、前記第２スコアに基づいて前記音声データから前記第２サブキーワードを検出するキーワード検出手段と、
前記複数のフレームの内の一つ以上の第１フレームから前記第１サブキーワードが検出されたとき、前記第１サブキーワードを受理することを決定し、前記複数のフレームの内の一つ以上の第２フレームから前記第２サブキーワードが検出されたとき、前記一つ以上の第１フレームの始端時間と終端時間の少なくとも一方と、前記一つ以上の第２フレームの始端時間と終端時間の少なくとも一方とに基づいて、前記第２サブキーワードを受理するか否かを決定する受理決定手段と、
前記第２サブキーワードを受理することが決定された場合、前記第１キーワードを出力するキーワード出力手段とを具備する音声キーワード検出装置。
【請求項２】
前記キーワードスコア算出手段は、さらに、第２キーワードが前記第１サブキーワードと前記第１サブキーワードに後続する第３サブキーワードとで構成される場合に、前記第３サブキーワードに関連付けられた音素、音韻、発音表記、モーラ、または表記と、前記音声データの各フレームとをマッチングすることによって、前記第３サブキーワードに対する第３スコアを算出し、
前記キーワード検出手段は、さらに、前記第３スコアに基づいて前記第３サブキーワードを検出し、
前記受理決定手段は、さらに、前記複数のフレームの内の一つ以上の第３フレームから前記第１サブキーワードが検出されたとき、前記第１サブキーワードを受理することを決定し、前記複数のフレームの内の一つ以上の第４フレームから前記第３サブキーワードが検出されたとき、前記一つ以上の第３フレームの始端時間と終端時間の少なくとも一方と、前記一つ以上の第４フレームの始端時間と終端時間の少なくとも一方とに基づいて、前記第３サブキーワードを受理するか否かを決定し、
前記キーワード出力手段は、さらに、前記第３サブキーワードを受理することが決定された場合、前記第２キーワードを出力する請求項１記載の音声キーワード検出装置。
【請求項３】
前記キーワードスコア算出手段は、さらに、第３キーワードに関連付けられた音素、音韻、発音表記、モーラ、または表記と、前記音声データの各フレームとをマッチングすることによって、前記第３キーワードに対するスコアを算出し、
前記キーワード検出手段は、さらに、前記第３キーワードに対するスコアに基づいて前記第３キーワードを検出し、前記検出された第３キーワードを出力する請求項１記載の音声キーワード検出装置。
【請求項４】
前記キーワード検出手段は、前記第１サブキーワードに対する前記第１スコアが第１閾値スコアよりも大きい場合、前記第１サブキーワードを検出し、前記第２サブキーワードに対する前記第２スコアが第２閾値スコアよりも大きい場合、前記第２サブキーワードを検出する請求項１記載の音声キーワード検出装置。
【請求項５】
前記第１閾値スコアと前記第２閾値スコアの少なくとも一方を変更する第１変更手段をさらに具備する請求項４記載の音声キーワード検出装置。
【請求項６】
前記第１閾値スコアと前記第２閾値スコアの少なくとも一方を変更するためのユーザインターフェースを画面に表示する第１表示制御手段をさらに具備し、
前記第１変更手段は、前記表示されたユーザインターフェースを用いた操作に応じて、前記第１閾値スコアと前記第２閾値スコアの少なくとも一方を変更する請求項５記載の音声キーワード検出装置。
【請求項７】
前記受理決定手段は、前記一つ以上の第１フレームの終端時間と、前記一つ以上の第２フレームの始端時間との第１差分が第１時間差分閾値と第２時間差分閾値とで規定される範囲内である場合、前記第２サブキーワードを受理することを決定する請求項１記載の音声キーワード検出装置。
【請求項８】
前記第１時間差分閾値と前記第２時間差分閾値の少なくとも一方を変更する第２変更手段をさらに具備する請求項７記載の音声キーワード検出装置。
【請求項９】
前記第１時間差分閾値と前記第２時間差分閾値の少なくとも一方を変更するためのユーザインターフェースを画面に表示する第２表示制御手段をさらに具備し、
前記第２変更手段は、前記表示されたユーザインターフェースを用いた操作に応じて、前記第１時間差分閾値と前記第２時間差分閾値の少なくとも一方を変更する請求項８記載の音声キーワード検出装置。
【請求項１０】
複数のキーワードを取得するキーワード取得手段と、
各キーワードを表す音素、音韻、発音表記、モーラ、または表記が、前記複数のキーワード間で同じである部分に対応するサブキーワードと、異なる部分に対応するサブキーワードとを決定し、前記決定されたサブキーワードを用いて、前記複数のキーワードの内の二つ以上のキーワードをそれぞれ構成する複数のサブキーワードと、当該複数のサブキーワード間の発声順の前後関係とを規定する複合キーワードモデルを決定するキーワードモデル構築手段とをさらに具備し、
前記キーワードスコア算出手段は、前記複合キーワードモデルを用いて、前記第１スコアと前記第２スコアとを算出し、
前記受理決定手段は、前記複合キーワードモデルを用いて、前記第１サブキーワードと前記第２サブキーワードとを受理することを決定する請求項１記載の音声キーワード検出装置。
【請求項１１】
複数のフレームを含む音声データを取得し、
第１キーワードを構成する第１サブキーワードと前記第１サブキーワードに後続する第２サブキーワードとにそれぞれ関連付けられた音素、音韻、発音表記、モーラ、または表記と、前記音声データの各フレームとをマッチングすることによって、前記第１サブキーワードに対する第１スコアと前記第２サブキーワードに対する第２スコアとを算出し、
前記第１スコアに基づいて前記音声データから前記第１サブキーワードを検出し、前記第２スコアに基づいて前記音声データから前記第２サブキーワードを検出し、
前記複数のフレームの内の一つ以上の第１フレームから前記第１サブキーワードが検出されたとき、前記第１サブキーワードを受理することを決定し、前記複数のフレームの内の一つ以上の第２フレームから前記第２サブキーワードが検出されたとき、前記一つ以上の第１フレームの始端時間と終端時間の少なくとも一方と、前記一つ以上の第２フレームの始端時間と終端時間の少なくとも一方とに基づいて、前記第２サブキーワードを受理するか否かを決定し、
前記第２サブキーワードを受理することが決定された場合、前記第１キーワードを出力する、音声キーワード検出方法。
【請求項１２】
コンピュータにより実行されるプログラムであって、前記プログラムは、
複数のフレームを含む音声データを取得する手順と、
第１キーワードを構成する第１サブキーワードと前記第１サブキーワードに後続する第２サブキーワードとにそれぞれ関連付けられた音素、音韻、発音表記、モーラ、または表記と、前記音声データの各フレームとをマッチングすることによって、前記第１サブキーワードに対する第１スコアと前記第２サブキーワードに対する第２スコアとを算出する手順と、
前記第１スコアに基づいて前記音声データから前記第１サブキーワードを検出し、前記第２スコアに基づいて前記音声データから前記第２サブキーワードを検出する手順と、
前記複数のフレームの内の一つ以上の第１フレームから前記第１サブキーワードが検出されたとき、前記第１サブキーワードを受理することを決定し、前記複数のフレームの内の一つ以上の第２フレームから前記第２サブキーワードが検出されたとき、前記一つ以上の第１フレームの始端時間と終端時間の少なくとも一方と、前記一つ以上の第２フレームの始端時間と終端時間の少なくとも一方とに基づいて、前記第２サブキーワードを受理するか否かを決定する手順と、
前記第２サブキーワードを受理することが決定された場合、前記第１キーワードを出力する手順とを前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、音声からキーワードを検出する音声キーワード検出装置、および該装置に適用される音声キーワード検出方法に関する。
【背景技術】
【０００２】
近年、音声に含まれるキーワードの音声を検出し、そのキーワードに応じて特定の動作を開始する機能を有する様々な電子機器が増加している。ユーザは、キーワードを発声するだけで、複雑な操作を行うことなく、電子機器に所望の動作を行わせることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１４／０３３７０３１号明細書
【特許文献２】米国特許出願公開第２０１６／０２７５４０５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、音声から素早く正確にキーワードを検出できる音声キーワード検出装置、音声キーワード検出方法、およびプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態によれば、音声キーワード検出装置は、音声取得手段と、キーワードスコア算出手段と、キーワード検出手段と、受理決定手段と、キーワード出力手段とを具備する。音声取得手段は、複数のフレームを含む音声データを取得する。キーワードスコア算出手段は、第１キーワードを構成する第１サブキーワードと前記第１サブキーワードに後続する第２サブキーワードとにそれぞれ関連付けられた音素、音韻、発音表記、モーラ、または表記と、前記音声データの各フレームとをマッチングすることによって、前記第１サブキーワードに対する第１スコアと前記第２サブキーワードに対する第２スコアとを算出する。キーワード検出手段は、前記第１スコアに基づいて前記音声データから前記第１サブキーワードを検出し、前記第２スコアに基づいて前記音声データから前記第２サブキーワードを検出する。受理決定手段は、前記複数のフレームの内の一つ以上の第１フレームから前記第１サブキーワードが検出されたとき、前記第１サブキーワードを受理することを決定し、前記複数のフレームの内の一つ以上の第２フレームから前記第２サブキーワードが検出されたとき、前記一つ以上の第１フレームの始端時間と終端時間の少なくとも一方と、前記一つ以上の第２フレームの始端時間と終端時間の少なくとも一方とに基づいて、前記第２サブキーワードを受理するか否かを決定する。キーワード出力手段は、前記第２サブキーワードを受理することが決定された場合、前記第１キーワードを出力する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態に係る音声キーワード検出装置を備える音声キーワード検出システムの構成の例を示すブロック図。
【図２】同実施形態の音声キーワード検出装置のシステム構成を示すブロック図。
【図３】同実施形態の音声キーワード検出装置によって実行される音声キーワード検出プログラムの機能構成を示すブロック図。
【図４】同実施形態の音声キーワード検出装置によって実行される音声キーワード検出処理の手順の例を示すフローチャート。
【図５】同実施形態の音声キーワード検出装置によって用いられるキーワード／サブキーワードモデルを説明するための図。
【図６】同実施形態の音声キーワード検出装置が音声から一つのキーワードの音声を検出する動作の例を説明するための図。
【図７】同実施形態の音声キーワード検出装置によって用いられるキーワード／サブキーワードデータの一構成例を示す図。
【図８】同実施形態の音声キーワード検出装置によって用いられる複合キーワードデータの一構成例を示す図。
【図９】同実施形態の音声キーワード検出装置によって用いられる時間差分閾値データの一構成例を示す図。
【図１０】同実施形態の音声キーワード検出装置によって用いられるスコアデータの一構成例を示す図。
【図１１】第２の実施形態に係る音声キーワード検出装置によって実行される音声キーワード検出プログラムの機能構成を示すブロック図。
【図１２】同実施形態の音声キーワード検出装置によって表示される閾値調整画面の例を示す図。
【図１３】同実施形態の音声キーワード検出装置によって表示される時間差分閾値調整画面の例を示す図。
【図１４】同実施形態の音声キーワード検出装置によって実行される閾値調整処理の手順の例を示すフローチャート。
【図１５】第３の実施形態に係る音声キーワード検出装置によって実行される音声キーワード検出プログラムの機能構成を示すブロック図。
【図１６】同実施形態の音声キーワード検出装置によって実行されるキーワードモデル構築処理の手順の例を示すフローチャート。
【図１７】同実施形態のキーワード検出装置によって作成されるｒａｄｉｘ  ｔｒｅｅの例を説明するための図。
【発明を実施するための形態】
【０００７】
以下、実施の形態について図面を参照して説明する。
（第１の実施形態）
図１は、第１の実施形態に係る音声キーワード検出装置を備える音声キーワード検出システムの構成の例を示す。この音声キーワード検出システムは、クライアント１とサーバ２とを備える。サーバ２は、例えば、サーバコンピュータとして実現され得る。クライアント１は、タブレットコンピュータ、スマートフォン、携帯電話機、ＰＤＡといった携帯情報端末、パーソナルコンピュータ、または各種電子機器に内蔵される組み込みシステムとして実現され得る。クライアント１とサーバ２とは、ネットワーク３を介してデータをやり取りすることができる。また、クライアント１とサーバ２の少なくとも一方は、音声からキーワードを検出する音声キーワード検出機能を有している。
【０００８】
音声キーワード検出システムでは、クライアント１に設けられるマイクロホン等を用いて生成された音声データ（音声信号）からキーワードを検出することができる。より詳しくは、クライアント１は、当該クライアント１に設けられたマイクロホン等を用いて生成された音声データを、ネットワーク３を介してサーバ２に送信する。サーバ２は、音声キーワード検出機能を用いて、クライアント１から受信した音声データからキーワードを検出し、ネットワーク３を介してそのキーワードをクライアント１に送信する。これによりクライアント１は、例えば、検出されたキーワードに応じた特定の動作を開始することができる。なお、クライアント１は、音声データではなく、音声データを用いて生成された音声特徴量（例えば、音声特徴ベクトル列）をサーバ２に送信してもよい。サーバ２は、受信した音声特徴量からキーワードを検出し、そのキーワードをクライアント１に送信することもできる。
【０００９】
また、音声キーワード検出機能はクライアント１に設けられてもよい。その場合、クライアント１は、この音声キーワード検出機能を用いて、クライアント１に設けられたマイクロホン等を用いて生成された音声データからキーワードを検出することができる。
【００１０】
このように本実施形態では、クライアント１またはサーバ２の少なくとも一方が有する音声キーワード検出機能を用いて、音声データからキーワードを検出することができる。
【００１１】
以下では、説明を分かりやすくするために、音声キーワード検出機能を有するクライアント１を、本実施形態の音声キーワード検出装置１０として例示する。
【００１２】
図２は、音声キーワード検出装置１０のシステム構成を示すブロック図である。音声キーワード検出装置１０は、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、マイクロホン１０７、通信デバイス１０８、キーボード１０９、ポインティングデバイス１１０、エンベデッドコントローラ（ＥＣ）１１１等を備える。
【００１３】
ＣＰＵ１０１は、音声キーワード検出装置１０内の様々なコンポーネントの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる様々なプログラムを実行する。これらプログラムには、オペレーティングシステム（ＯＳ）２０１、および様々なアプリケーションプログラムが含まれている。アプリケーションプログラムには、音声キーワード検出プログラム２０２が含まれている。この音声キーワード検出プログラム２０２は、音声データからキーワードを検出するための命令群を含んでいる。
【００１４】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００１５】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラが内蔵されている。また、システムコントローラ１０２には、音声キーワード検出装置１０のディスプレイモニタとして使用されるＬＣＤ１０４を制御する表示コントローラも内蔵されている。この表示コントローラによって生成される表示信号はＬＣＤ１０４に送られる。ＬＣＤ１０４は、表示信号に基づいて画面イメージを表示する。
【００１６】
また、システムコントローラ１０２はオーディオコーデックを内蔵する。オーディオコーデックは、マイクロホン１０７を制御するように構成されている。オーディオコーデックは、マイクロホン１０７によって集音された音声に基づく音声信号（音声波形）を生成する。
【００１７】
通信デバイス１０８は、有線通信または無線通信を実行するように構成されたデバイスである。通信デバイス１０８は、信号を送信する送信部と、信号を受信する受信部とを含む。
【００１８】
キーボード１０９およびポインティングデバイス１１０は、ユーザによる入力のためのデバイスである。ポインティングデバイス１１０は、マウス、タッチパッド、タッチパネルのような、ＬＣＤ１０４の画面上の点および点の動きを検出するためのデバイスである。
【００１９】
ＥＣ１１１は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１１１は、ユーザによるパワーボタンの操作に応じて本音声キーワード検出装置１０を電源オンまたは電源オフする機能を有している。
【００２０】
近年、音声波形からターゲットのキーワード音声を検出し、そのキーワードに応じた機器の動作を行うアプリケーションが増加している。キーワードを受け付けて動作する機器は常時音声を受け付け、そのキーワードが発声されるかどうかを検出するため、低電力・低計算量で動作するものが望まれる。また、ユーザが快適に機器を動作させるためには、キーワード受け付け後に、なるべく早く機器の動作を開始させる必要があり、低遅延の音声キーワード検出が望まれる。
【００２１】
ある機器で受理すべきキーワードが複数ある場合、音声波形に対して、ある時間の範囲内でどのキーワード候補を発声したスコアが高かったかを比較し、単語の識別を行う方法よりも、ある音声波形の時間範囲内にそれぞれのキーワード発声が所定の閾値スコアを超えて存在するかどうかの二値判別にしたほうが低計算量で遅延時間の少ないアルゴリズムが適用できる。しかし、後者の場合は、同じ発音列が多い二つのキーワードを区別することが困難になる。例えば、「コミュニケーション」と「コミュニケーター」というキーワードが設定されている場合では、「ター」と「ション」しか発音列に差がないため、「コミュニケー」までのスコアが高い場合、「コミュニケーション」と「コミュニケーター」どちらの発声に対しても両方のキーワードが検出されてしまう。
【００２２】
このように、それぞれの音声キーワードに対して検出する／しないの二値判別を行う音声キーワード検出手法では、二つ以上のキーワード間で同じ発音列が多く含まれる場合、その同じ発音列を含むキーワードが全て検出されてしまうという課題があった。
【００２３】
そのため本実施形態では、キーワードを分割することによって得られた各サブキーワードを音声から検出した後、サブキーワードが検出された始端時間と終端時間の少なくとも一方に基づいて、複数のサブキーワードで構成されるキーワード（以下、複合キーワードとも称する）を受理するかどうかを決定する。これにより、音声から素早く正確にキーワードを検出することができる。
【００２４】
図３は、音声キーワード検出装置１０によって実行される音声キーワード検出プログラム２０２の機能構成を示すブロック図である。音声キーワード検出プログラム２０２は、音声取得部３１、キーワードスコア算出部３２、キーワード検出部３３、サブキーワード受理決定部３４、および複合キーワード検出部３５を備える。音声キーワード検出プログラム２０２の各部は、キーワードモデル格納部３６に格納された様々なデータを読み出すことができ、またキーワードモデル格納部３６にデータを書き込むことができる。キーワードモデル格納部３６には、例えば、不揮発性メモリ１０６の一部の領域が割り当てられている。
【００２５】
キーワードモデル格納部３６は、複数のキーワードに対応する複数のキーワードモデルを格納する。キーワードモデルは、対応するキーワードの音素、音韻、モーラ、発音表記、または表記に基づいて決定される。また、複数のキーワードモデルの内の一つ以上のキーワードモデルは、対応するキーワードの一部を表す二つ以上のサブキーワードに対応する二つ以上のサブキーワードモデルで構成される複合キーワードモデルである。サブキーワードモデルも、対応するサブキーワードの音素、音韻、モーラ、発音表記、または表記に基づいて決定され、キーワードモデル格納部３６に格納される。また、複合キーワードモデルは、キーワードを構成するサブキーワード間の発声順の前後関係を示す情報も含んでいる。
【００２６】
音声取得部３１は、複数のフレームを含む音声データを取得する。音声取得部３１は、例えば、音声波形を受け付け、デジタル化し、フレーム毎の音声特徴量を出力する。
【００２７】
キーワードスコア算出部３２は、キーワードモデル格納部３６にあるキーワードモデルおよびサブキーワードモデル（以下、キーワード／サブキーワードモデルとも称する）を用いて音声特徴量に対するキーワードスコアを算出する。
【００２８】
キーワード検出部３３は、キーワードスコアとあらかじめ定められた閾値スコアとに基づく判定によって、キーワードおよびサブキーワードの検出を行う。
【００２９】
サブキーワード受理決定部３４は、キーワード検出部３３によってサブキーワードが検出されたとき、サブキーワードの始端情報と終端情報の少なくとも一方に基づいて、そのサブキーワードを受理するかどうかを決定する。
【００３０】
複合キーワード検出部３５は、サブキーワード受理決定部３４で受理されたサブキーワードが複合キーワードを構成する最終のサブキーワードである場合、この複合キーワードを検出結果として出力する。
【００３１】
ここで、キーワードモデル格納部３６に、
（１）第１サブキーワードと、この第１サブキーワードに後続する第２サブキーワードとで構成される第１キーワードのキーワードモデル（複合キーワードモデル）と、
（２）第２サブキーワードと、この第１サブキーワードに後続する第３サブキーワードとで構成される第２キーワードのキーワードモデル（複合キーワードモデル）と、
（３）第３キーワードのキーワードモデルと、
が格納される場合について例示する。
【００３２】
音声取得部３１によって複数のフレームを含む音声データが取得されたとき、キーワードスコア算出部３２は、例えば、第１キーワードを構成する第１サブキーワードと、この第１サブキーワードに後続する第２サブキーワードとにそれぞれ関連付けられた音素、音韻、発音表記、モーラ、または表記と、音声データの各フレームとをマッチングすることによって、第１サブキーワードに対する第１スコアと第２サブキーワードに対する第２スコアとを算出する。
【００３３】
次に、キーワード検出部３３は、第１スコアに基づいて音声データから第１サブキーワードを検出し、第２スコアに基づいて音声データから第２サブキーワードを検出する。より具体的には、キーワード検出部３３は、第１サブキーワードに対する第１スコアが第１閾値スコアよりも大きい場合、第１サブキーワードを検出し、第２サブキーワードに対する第２スコアが第２閾値スコアよりも大きい場合、第２サブキーワードを検出する。
【００３４】
サブキーワード受理決定部３４は、例えば、音声データに含まれる複数のフレームの内の一つ以上の第１フレームから第１サブキーワードが検出されたとき、第１サブキーワードを受理することを決定する。そして、サブキーワード受理決定部３４は、複数のフレームの内の一つ以上の第２フレームから第２サブキーワードが検出されたとき、一つ以上の第１フレームの始端時間と終端時間の少なくとも一方と、一つ以上の第２フレームの始端時間と終端時間の少なくとも一方とに基づいて、第２サブキーワードを受理するか否かを決定する。サブキーワード受理決定部３４は、例えば、一つ以上の第１フレームの終端時間と、一つ以上の第２フレームの始端時間との第１差分が第１時間差分閾値と第２時間差分閾値とで規定される範囲内である場合、第２サブキーワードを受理することを決定する。サブキーワード受理決定部３４は、例えば、第１差分が第１時間差分閾値以上であり、且つ第２時間差分閾値未満である場合（但し、第１時間差分閾値＜第２時間差分閾値）、第２サブキーワードを受理することを決定する。
【００３５】
そして、複合キーワード検出部３５は、サブキーワード受理決定部３４によって第２サブキーワードを受理することが決定された場合、この第２サブキーワードが第１キーワードを構成する最終のサブキーワードであるので、第１キーワードを出力する。
【００３６】
なお、キーワードスコア算出部３２は、第２キーワードが第１サブキーワードと、この第１サブキーワードに後続する第３サブキーワードとで構成される場合、第３サブキーワードに関連付けられた音素、音韻、発音表記、モーラ、または表記と、音声データの各フレームとをマッチングすることによって、第３サブキーワードに対する第３スコアをさらに算出してもよい。
【００３７】
キーワード検出部３３は、第３スコアに基づいて第３サブキーワードをさらに検出する。キーワード検出部３３は、例えば、第１サブキーワードに対する第１スコアが第１閾値スコアよりも大きい場合、第１サブキーワードを検出し、第２サブキーワードに対する第２スコアが第２閾値スコア以下である場合、第２サブキーワードを検出せず、第３サブキーワードに対する第３スコアが第３閾値スコアよりも大きい場合、第３サブキーワードを検出する。
【００３８】
次いで、サブキーワード受理決定部３４は、複数のフレームの内の一つ以上の第３フレームから第１サブキーワードが検出されたとき、第１サブキーワードを受理することを決定する。そして、サブキーワード受理決定部３４は、複数のフレームの内の一つ以上の第４フレームから第３サブキーワードが検出されたとき、一つ以上の第３フレームの始端時間と終端時間の少なくとも一方と、一つ以上の第４フレームの始端時間と終端時間の少なくとも一方とに基づいて、第３サブキーワードを受理するか否かを決定する。サブキーワード受理決定部３４は、例えば、一つ以上の第３フレームの終端時間と、一つ以上の第４フレームの始端時間との第２差分が第３時間差分閾値と第４時間差分閾値とで規定される範囲内である場合、第３サブキーワードを受理することを決定する。サブキーワード受理決定部３４は、例えば、第２差分が第３時間差分閾値以上であり、且つ第４時間差分閾値未満である場合（但し、第３時間差分閾値＜第４時間差分閾値）、第３サブキーワードを受理することを決定する。
【００３９】
そして、複合キーワード検出部３５は、第３サブキーワードを受理することが決定された場合、第２キーワードを出力する。
【００４０】
また、キーワードスコア算出部３２は、第３キーワードに関連付けられた音素、音韻、発音表記、モーラ、または表記と、音声データの各フレームとをマッチングすることによって、第３キーワードに対するスコアを算出してもよい。
【００４１】
その場合、キーワード検出部３３は、第３キーワードに対するスコアに基づいて第３キーワードを検出し、検出された第３キーワードを出力する。キーワード検出部３３は、例えば、第３キーワードに対するスコアが閾値スコアよりも大きい場合に、第３キーワードを検出し、出力する。
【００４２】
次いで、図４のフローチャートを参照して、音声キーワード検出装置１０によって実行される音声キーワード検出処理の手順の例を説明する。この音声キーワード検出処理は、例えば、ＣＰＵ１０１によって音声キーワード検出プログラム２０２に含まれる命令群が実行されることによって実現される。
【００４３】
音声取得部３１は、音声波形を受け付け、デジタル化し、音声特徴量を生成する（ステップＳ１１）。音声波形は、マイクロホン１０７等を用いて収録されたものである。音声取得部３１は、音声波形をアナログからデジタルに変換し、これにより得られたデジタルの音声データを用いて特徴ベクトルを生成する。音声波形のアナログからデジタルへの変換には、一般的なＡＤ変換を用いて、アナログ波からデジタル波に変換を行う。音声取得部３１は、この変換において、例えば、アナログ波を１６ｋＨｚでサンプリングし、デジタル波の１サンプルの振幅値を１６ビットで表す。音声取得部３１は、このデジタル波を一定の時間毎に切り出す。
【００４４】
ここでは、音声取得部３１が、デジタル波を２５６点サンプルずつ、１２８点サンプルずらしながら切り出しを行う場合について例示する。この２５６点サンプルを１フレームとする。これにより、音声取得部３１は、複数のフレームを含む音声データを取得する。
【００４５】
音声取得部３１は、この２５６点サンプルからＭｅｌ  Ｆｒｅｑｕｅｎｃｙ  Ｃｅｐｓｔｒａｌ  Ｃｏｅｆｆｉｃｉｅｎｔ（ＭＦＣＣ）特徴量１２次元を算出する。そして、音声取得部３１は、このＭＦＣＣ特徴量を３フレーム分だけバッファリングし、３フレーム分のＭＦＣＣ特徴量を連結した３６次元を、これら３フレームの内の中央フレームの時刻の特徴量として出力する。抽出される特徴量はＭＦＣＣに限定されるものではなく、例えば、メルフィルタバンク特徴量やＰｅｒｃｅｐｔｕａｌ  Ｌｉｎｅａｒ  Ｐｒｅｄｉｃｔｉｏｎ（ＰＬＰ）、ＲＳＴＡ−ＰＬＰ特徴量、またはピッチ特徴量、あるいはそれらのΔ成分、またはΔΔ成分を用いても良い。または、これら特徴量の組み合わせを用いても良い。また、連結フレーム数は３に限定されるものではなく、１フレーム以上であれば、何フレーム連結させても良い。さらに、切り出しサンプルサイズやフレーム周期は上記した値に限定されるものではない。
【００４６】
キーワードスコア算出部３２は、キーワードモデル格納部３６にあるキーワードモデルおよびサブキーワードモデル（キーワード／サブキーワードモデル）を用いて音声特徴量に対するキーワード／サブキーワードスコア（以下、単にスコアとも称する）を算出する（ステップＳ１２）。キーワードスコア算出部３２は、音声取得部３１によって生成された音声特徴量を受け取り、キーワード／サブキーワードモデルを用いてキーワード／サブキーワードスコアを算出する。
【００４７】
以下では、検出対象のキーワードが“コミュニケーション”、“コミュニケーター”、“ハロー”の三つである場合の具体的な例について説明する。これらキーワードに対して、キーワードモデルを用いて、フレーム毎に切り出された音声特徴ベクトル列に対して累積スコアを算出する方法は多く存在するが、ここではｌｅｆｔ−ｔｏ−ｒｉｇｈｔ型の隠れマルコフモデル（Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ：ＨＭＭ）とビタビアルゴリズムとを用いる方法で例示する。
【００４８】
図５に示すように、“コミュニケー”、“ション”、“ター”、“ハロー”のキーワードまたはサブキーワードをそれぞれ、ｗ１，ｗ２，ｗ３，ｗ４とし、複合キーワード“コミュニケーション”、“コミュニケーター”をそれぞれサブキーワードの連結で表し、  
Ｗ１＝（ｗ１，ｗ２），  Ｗ２＝（ｗ１，ｗ３）  
とする。まず、キーワード／サブキーワードモデルとして、ｗｎ  （ｎ＝１，２，３，４）のモデルがそれぞれ用意される。キーワード／サブキーワードモデルはｌｅｆｔ−ｔｏ−ｒｉｇｈｔ型の音素ＨＭＭで表される。音素ＨＭＭはｗ１，ｗ２，ｗ３，ｗ４をそれぞれ表す音素列“ｋ  ａ  ｍｙ  ｕ  ｎ  ｉ  ｋ  ｅ  ｉ”、“ｓｙ  ｏ  ｎ”、“ｔ  ａ  ａ”、“ｈ  ｅ  ｌ  ｏ  ｕ”の音素を１状態とし、ＨＭＭのパラメータとして、音素間の遷移確率はどの遷移間の確率も同確率とし、出力確率はフレーム毎の音素の出現確率（音響スコア）で表す。本実施形態では、フレーム毎の音響スコアを計算するモデルは複数のキーワードに対して共通のフィードフォワード型のニューラルネットワークとし、累積スコアはビタビアルゴリズムを用いて計算する方法を用いる。
【００４９】
音響スコアを算出するためのニューラルネットワークの出力層はｗ１，ｗ２，ｗ３，ｗ４をそれぞれ表す音素“ｋ  ａ  ｍｙ  ｕ  ｎ  ｉ  ｋ  ｅ  ｉ”、“ｓｙ  ｏ  ｎ”、“ｔ  ａ  ａ”、“ｈ  ｅ  ｌ  ｏ  ｕ”から重複するものを除き、無音区間に対する音素“ｓｉｌ”を加え、１３個の出力ユニットから構成される。入力層は前記算出した音声特徴量に相当する３６個の入力ユニットから構成される。ここでは中間層は２５６ユニットを持つ層を３つ重ねたものとする。ニューラルネットワークは無音声区間を含む“コミュニケーション”、“コミュニケーター”、“ハロー”の３単語の読み上げ音声を使って、バックプロパゲーションを用いて学習する。
【００５０】
このように、キーワードに対する音素ＨＭＭを用意し、ｗｎに対する音素ＨＭＭが音声取り込み開始からのフレーム数ｔｅにおいて終端に達するパスの中での最大累積音響スコアＳｎとそのスコアを持つパスの特定はビタビアルゴリズムを用いて簡単に計算できる。このときのｗｎに対する最大累積音響スコアＳｎを持つパスの音素ＨＭＭの始端フレームをｔｎｓとする。このような方法には、例えば、上記特許文献２に記載された方法を適用することができる。
【００５１】
キーワードスコア算出部３２は、ｔｅを時間方向にインクリメントしながらスコア計算を行う。このとき何フレームずつかスコア計算をスキップし計算量を削減することもできる。最大累積音響スコアＳｎは、例えば、対数尤度の時系列の和であり、この和を特定の範囲（例えば、１から１００までの範囲、または０から１００までの範囲）に正規化した値として用いてもよい。キーワードスコア算出部３２は、例えば、あるキーワードまたはサブキーワードの最大累積音響スコアＳｎを、当該キーワードまたはサブキーワードのキーワード／サブキーワードスコアとして用いる。
【００５２】
なお、キーワード／サブキーワードモデルは、音素単位でのモデル化に限定されるものではなく、音韻、モーラ、発音表記、または表記文字の単位でモデル化することもできる。また、累積スコアの算出方法は、ＨＭＭとビタビアルゴリズムを用いたものに限定されるものではなく、リカレント構造をもったニューラルネットワーク、例えば、Ｌｏｎｇ  ｓｈｏｒｔ−ｔｅｒｍ  ｍｅｍｏｒｙ（ＬＳＴＭ）とＣｏｎｎｅｃｔｉｏｎｉｓｔ  Ｔｅｍｐｏｒａｌ  Ｃｌａｓｓｉｆｉｃａｔｉｏｎを組み合わせたもので算出する方法や、Ａｔｔｅｎｔｉｏｎ  Ｍｏｄｅｌを用いて算出する方法も適用できる。また、フレーム単位の音響スコア計算に対しては、フィードフォワード型のニューラルネットワークに限定されることはなく、リカレント構造のニューラルネットワーク、例えばＬＳＴＭなども適用できる。さらに、Ｇａｕｓｓｉａｎ  Ｍｉｘｔｕｒｅ  Ｍｏｄｅｌでも同様にフレーム単位の音響スコアを求めることもできる。
【００５３】
キーワード検出部３３は、キーワード／サブキーワードスコアと設定された閾値スコアとを比較することによって、閾値スコアを超えたスコアを有するキーワードまたはサブキーワードがあるか否かを判定する（ステップＳ１３）。キーワード検出部３３は、ｗｎに対してあらかじめ用意された累積音響スコアに対する閾値スコアｔｈｎと最大累積音響スコアＳｎとを比較する。（ｎ＝１，２，３，４）に対して、  
ｔｈｎ＜Ｓｎ 
を満たすｎが一つ見つかった場合、そのｎの値をｍに代入する。そのキーワードの始端時間をｔｍｓとすると、始終端区間（ｔｍｓ，ｔｅ）のキーワードｗｍが検出されることとなる。閾値スコアｔｈｎは、キーワードおよびサブキーワードが含まれる開発音声データセットを使って、適合率および再現率の調和平均であるＦ値が最大となる値を全キーワードに対して一つ設定する。この場合、閾値スコアｔｈｎの値を高くすれば、キーワードおよびサブキーワードは検出されにくくなり、閾値スコアｔｈｎの値を低くすれば、キーワードおよびサブキーワードは検出されやすくなる。また、例えば、最大累積音響スコアＳｎが特定の範囲に正規化された値である場合には、閾値スコアｔｈｎもこの特定の範囲のいずれかの値に設定されるようにしてもよい。
【００５４】
キーワード検出部３３は、ｗｍが検出された場合、その検出区間を音声取り込み開始から数えて何番目に検出された区間であるかをカウントする。図６に示すように、キーワード検出部３３は、現在の処理フレームｔｅで検出された区間カウントｉ（ｉ＝１，２，３，……）を用い、始端時間ｔｓ（ｉ）および終端時間ｔｅ（ｉ）（但し、ｔｓ（ｉ）＜ｔｅ（ｉ））を、ｉ番目にキーワードまたはサブキーワードを検出した区間の始端および終端のフレームカウント（フレーム番号）とする。そして、キーワード検出部３３は、始終端区間（ｔｓ（ｉ），ｔｅ（ｉ））と、検出されたキーワードまたはサブキーワードｗｍとをひもづけて、所定の記憶領域（例えば、主メモリ１０３または不揮発性メモリ１０６のワークエリア）に記憶しておく。なお、検出方法はここで述べられているものに限定されるものではなく、例えば、区間の長さによる累積スコアのばらつきを抑えるために、上記特許文献２のような方法で、平均局所スコアが閾値スコアを超えるかどうかのような検出を行っても良い。
【００５５】
閾値を超えたキーワードまたはサブキーワードがない場合（ステップＳ１３のＮＯ）、ステップＳ１１の手順に戻り、後続する音声データからキーワードまたはサブキーワードを検出するための処理が続行される。
【００５６】
一方、閾値を超えたキーワードまたはサブキーワードがあった場合、すなわち、キーワードまたはサブキーワードが検出された場合（ステップＳ１３のＹＥＳ）、キーワード検出部３３は、検出されたキーワードが、複合キーワードを構成する先頭のサブキーワードと、複合キーワードを構成する２番目以降のサブキーワードと、通常のキーワード（すなわち、複数のサブキーワードに分割されないキーワード）のいずれであるかを判定する（ステップＳ１４）。
【００５７】
検出されたキーワードが、複合キーワードを構成する先頭のサブキーワードである場合（ステップＳ１４の“先頭のサブキーワード”）、ステップＳ１１の手順に戻る。図６の例では、検出されたサブキーワード７４（“コミュニケー”）がこの先頭のサブキーワードに相当する。
【００５８】
検出されたキーワードがサブキーワードではない通常のキーワードである場合（ステップＳ１４の“通常のキーワード”）、キーワード検出部３３は、そのキーワードが検出されたことを出力する（ステップＳ１５）。
【００５９】
検出されたキーワードが、複合キーワードを構成する２番目以降のサブキーワードである場合（ステップＳ１４の“２番目以降のサブキーワード”）、ステップＳ１６の手順に進む。図６の例では、検出されたサブキーワード７１，７３，７５（“ション”）とサブキーワード７２（“ター”）がこの２番目以降のサブキーワードに相当する。
【００６０】
このように、本実施形態では、検出されたキーワード／サブキーワードがｗ１“コミュニケー”の場合に、複合キーワードの先頭のサブキーワードであると判定される。また、検出されたキーワード／サブキーワードが、ｗ２“ション”またはｗ３“ター”の場合に、複合キーワードの２番目以降のサブキーワードであると判定される。さらに、検出されたキーワード／サブキーワードがｗ４“ハロー”である場合に、通常のキーワードであると判定される。
【００６１】
検出されたキーワードが、複合キーワードを構成する２番目以降のサブキーワードである場合（ステップＳ１４の“２番目以降のサブキーワード”）、サブキーワード受理決定部３４は、検出されたサブキーワードの始端時間と終端時間の少なくとも一方に基づいて、サブキーワードを受理するかどうかを決定する（ステップＳ１６）。ここでは、複合キーワードを構成するサブキーワードｗ２“ション”またはｗ３“ター”がステップＳ１４で検出された場合について例示する。
【００６２】
サブキーワード受理決定部３４は、ｗ２“ション”またはｗ３“ター”が検出された際に、例えば、ｋ番目の区間（０≦ｋ＜ｉ）で複合キーワードを構成する前のサブキーワードｗ１“コミュニケー”が検出されている場合に、ｗ２“ション”またはｗ３“ター”に対して受理判定を行う。
【００６３】
サブキーワード受理決定部３４は、図６に示すように、（ｔｓ（ｋ），ｔｅ（ｋ））にひもづいた単語がｗ１“コミュニケー”であることを満たすｋで最大値のものをＫ（図６の例では、Ｋ＝ｉ−１）とし、Ｋ番目の区間の始端時間（ｔｓ（Ｋ），ｔｅ（Ｋ））と、ｉ番目の区間の終端時間（ｔｓ（ｉ），ｔｅ（ｉ））とを用いて比較を行う。複合キーワードＷｌ（ｌ＝１，２）に対しては、時間差分閾値である受理最小値Ｔｍｉｎ ｌおよび受理最大値Ｔｍａｘ ｌ（但し、Ｔｍｉｎ ｌ＜Ｔｍａｘ ｌ）があらかじめ設定されている。サブキーワード受理決定部３４は、以下の式を満たす場合に、ｉ番目に検出されたサブキーワードを受理する。  
Ｔｍｉｎ ｌ＜ｔｓ（ｉ）−ｔｅ（Ｋ）＜Ｔｍａｘ ｌ 
なお、受理最小値Ｔｍｉｎ ｌおよびＴｍａｘ ｌは負の値も取り得る。時間差分閾値である受理最小値Ｔｍｉｎ ｌおよび受理最大値Ｔｍａｘ ｌも、閾値スコアｔｈｎと同じように、キーワードおよびサブキーワードが含まれる開発音声データセットを使って、例えば、適合率および再現率の調和平均であるＦ値が最大となる値を全キーワードに対して一つ設定する。
【００６４】
検出されたサブキーワードが受理されなかった場合（ステップＳ１６のＮｏ）、ステップＳ１１の手順に戻る。図６の例には、検出されたサブキーワード７１，７２，７３が受理されなかったこと（Ｒｅｊｅｃｔ）が示されている。
【００６５】
検出されたサブキーワードが受理された場合（ステップＳ１６のＹｅｓ）、複合キーワード検出部３５は、受理されたサブキーワードが複合キーワードを構成する最終のサブキーワードであるかどうかを判定する（ステップＳ１７）。受理されたサブキーワードが複合キーワードを構成する最終のサブキーワードでない場合（ステップＳ１７のＮｏ）、ステップＳ１１の手順に戻る。
【００６６】
一方、受理されたサブキーワードが、複合キーワードを構成する最終のサブキーワードである場合（ステップＳ１７のＹｅｓ）、複合キーワード検出部３５は、その複合キーワードが検出されたことを出力する（ステップＳ１８）。図６に示した例のように、複合キーワード検出部３５は、例えば、キーワードＷ１“コミュニケーション”の先頭のサブキーワードであるｗ１“コミュニケー”が検出された後に、最終のサブキーワードであるｗ２“ション”がステップＳ１６で受理されている場合には、キーワードＷ１“コミュニケーション”を出力する。また、複合キーワード検出部３５は、例えば、キーワードＷ２“コミュニケーター”の先頭のサブキーワードであるｗ１“コミュニケー”が検出された後に、最終のサブキーワードであるｗ３“ター”がステップＳ１６で受理されている場合には、キーワードＷ２“コミュニケーター”を出力する。
【００６７】
以上により、複合キーワードを含むキーワードを検出することができる。
次いで、図７から図１０を参照して、キーワードモデル格納部３６に格納されるデータの例について説明する。このデータは、音声キーワード検出プログラム２０２内の各部によって読み出され、また更新され得るものである。
【００６８】
図７は、キーワード／サブキーワードデータの一構成例を示す。キーワード／サブキーワードデータは、複数のキーワードまたはサブキーワードに対応する複数のレコードを含む。各レコードは、例えば、ＩＤ、音素、および閾値スコアを含む。各レコードは、音素の代わりに、あるいは音素に加えて、音韻、モーラ、発音表記、および表記の少なくともいずれかを含んでいてもよい。
【００６９】
あるキーワードまたはサブキーワードに対応するレコードにおいて、「ＩＤ」は、そのキーワードまたはサブキーワードに付与された識別情報を示す。「音素」は、そのキーワードまたはサブキーワードに対応する音素を示す。「閾値スコア」は、そのキーワードまたはサブキーワードとして検出されるためのスコアの閾値を示す。
【００７０】
このキーワード／サブキーワードデータは、例えば、キーワードスコア算出部３２によるキーワード／サブキーワードスコアの算出と、キーワード検出部３３によるキーワードおよびサブキーワードの検出に用いられる。
【００７１】
図８は、複合キーワードデータの一構成例を示す。複合キーワードデータは、複数の複合キーワードに対応する複数のレコードを含む。各レコードは、例えば、ＩＤとサブキーワード列とを含む。
【００７２】
ある複合キーワードに対応するレコードにおいて、「ＩＤ」は、その複合キーワードに付与された識別情報を示す。「サブキーワード列」は、その複合キーワードを構成する複数のサブキーワードに付与された複数のＩＤの順列を示す。この「サブキーワード列」には、例えば、図７のキーワード／サブキーワードデータに含まれる複数のＩＤの順列が示されている。
【００７３】
この複合キーワードデータとキーワード／サブキーワードデータを用いることによって、キーワード検出部３３は、例えば、検出されたキーワード／サブキーワードが、複合キーワードの先頭のキーワードと、複合キーワードの二番目以降のサブキーワードと、通常のキーワードのいずれであるかを決定することができる。
【００７４】
図９は、時間差分閾値データの一構成例を示す。時間差分閾値データは、複数のサブキーワードの組に対応する複数のレコードを含む。各レコードは、例えば、サブキーワード列、受理最小値、および受理最大値を含む。
【００７５】
あるサブキーワードの組に対応するレコードにおいて、「サブキーワード列」は、そのサブキーワードの組を構成する二つのサブキーワードに付与された二つのＩＤの順列を示す。この「サブキーワード列」には、例えば、図７のサブキーワードデータに含まれる二つのＩＤの順列が示されている。
【００７６】
「受理最小値」は、音声データから検出された二つのサブキーワードを、そのサブキーワードの組として受理するためのサブキーワード間の最小の検出間隔を示す。「受理最大値」は、音声データから検出された二つのサブキーワードを、そのサブキーワードの組として受理するためのサブキーワード間の最大の検出間隔を示す。「受理最小値」および「受理最大値」で示される間隔は、例えば、フレーム数に基づく値であってもよいし、時間に基づく値であってもよい。
【００７７】
この時間差分閾値データを用いて、サブキーワード受理決定部３４は、検出されたサブキーワードの組を受理するか否かを決定することができる。
【００７８】
図１０は、スコアデータの一構成例を示す。スコアデータは、音声データからサブキーワードを検出するために、キーワードスコア算出部３２およびキーワード検出部３３によって生成される一時データである。スコアデータは、複数のサブキーワードに対応する複数のレコードを含む。各レコードは、例えば、ＩＤ、スコア、始端時間、および終端時間を含む。
【００７９】
あるサブキーワードに対応するレコードにおいて、「ＩＤ」は、そのサブキーワードに付与されたＩＤを示す。この「サブキーワード列」には、例えば、図７のサブキーワードデータに含まれるＩＤの一つが示されている。
【００８０】
「スコア」は、そのサブキーワードに関する尤度を示す。「始端時間」は、そのサブキーワードが検出された音声データ上の期間の始端の時間を示す。「終端時間」は、そのサブキーワードが検出された音声データ上の期間の終端の時間を示す。「始端時間」および「終端時間」で示される時間は、時刻であってもよいし、フレームカウントであってもよい。「スコア」で示される値は、音声データの内の、始端時間から終端時間までのデータが、そのサブキーワードに対応する尤もらしさを示す。
【００８１】
以上説明したように、本実施形態によれば、音声から素早く正確にキーワードを検出することができる。サブキーワード受理決定部３４は、音声データの複数のフレームの内の一つ以上の第１フレームから第１サブキーワードが検出されたとき、第１サブキーワードを受理することを決定する。そして、サブキーワード受理決定部３４は、複数のフレームの内の一つ以上の第２フレームから第２サブキーワードが検出されたとき、一つ以上の第１フレームの始端時間と終端時間の少なくとも一方と、一つ以上の第２フレームの始端時間と終端時間の少なくとも一方とに基づいて、第２サブキーワードを受理するか否かを決定する。複合キーワード検出部３５は、第２サブキーワードを受理することが決定された場合、第１キーワードを出力する。これにより、例えば、二つ以上のキーワード間で同じ発音列が多く含まれる場合にも、それら二つ以上のキーワードの内の一つのキーワードを素早く正確に検出することができる。
【００８２】
なお、図１を参照して上述したように、サーバ２が音声キーワード検出機能を有していてもよい。その場合、クライアント１は、マイクロホンを用いて集音された音声に基づく音声データを、通信デバイス等を介してネットワーク３上のサーバ２に送信する。
【００８３】
サーバ２は、通信デバイスを介して、クライアント１から音声データを受信する。サーバ２は、上述した音声キーワード検出プログラム２０２を実行することによって、受信した音声データからキーワードを検出する。そして、サーバ２は、検出されたキーワードをクライアント１に送信する。
【００８４】
したがって、クライアント１は、音声キーワード検出機能を有するサーバ２に音声データを送信することによって、クライアント１自体が音声キーワード検出機能を有する場合と同様に、キーワードを取得することができる。また、クライアント１に音声取得部３１を有し、その出力である音声特徴量のみをサーバ２に送信し、その後の処理をサーバ２で実施するような形態も可能である。
【００８５】
（第２の実施形態）  
図１１は、第２の実施形態に係る音声キーワード検出装置１０上で実行される音声キーワード検出プログラム２０２の機能構成を示す。この音声キーワード検出装置１０は、第１の実施形態において説明したシステム構成を有している。本実施形態の音声キーワード検出プログラム２０２は、音声取得部３１、キーワードスコア算出部３２、キーワード検出部３３、サブキーワード受理決定部３４、および複合キーワード検出部３５に加えて、閾値スコア表示部４１、閾値スコア調整部４２、時間差分閾値表示部４３、および時間差分閾値調整部４４を備える。音声キーワード検出プログラム２０２の各部は、キーワードモデル格納部３６に格納された様々なデータを読み出すことができ、またキーワードモデル格納部３６にデータを書き込むことができる。音声取得部３１、キーワードスコア算出部３２、キーワード検出部３３、サブキーワード受理決定部３４、複合キーワード検出部３５、およびキーワードモデル格納部３６は、第１の実施形態と同様の構成を有する。以下では第１の実施形態との差分部分のみに焦点を絞り説明を行う。
【００８６】
閾値スコア表示部４１は、キーワードモデル格納部３６に格納されているキーワードおよびサブキーワードの各々の現在の閾値スコアをＬＣＤ１０４の画面に表示する。また、閾値スコア表示部４１は、キーワードモデル格納部３６に格納されているキーワードおよびサブキーワードの現在の閾値スコアを変更するためのユーザインターフェースをＬＣＤ１０４の画面に表示してもよい。このユーザインターフェースは、例えば、閾値スコアを書き換え可能なテキストエリア、閾値スコアを増加又は減少させるためのボタン、複数の値から任意の値を選択するためのプルダウンメニュー等を含む。閾値スコア表示部４１は、キーボード１０９やポインティングデバイス１１０を用いたユーザによる操作に応じて、閾値スコアの変更を受け付ける。
【００８７】
閾値スコア調整部４２は、表示されたユーザインターフェースを用いた操作に応じて、閾値スコアを変更する。閾値スコア調整部４２は、例えば、閾値スコア表示部４１から受け取った閾値スコアを、キーワード検出部３３によって用いられる各キーワード／サブキーワードの閾値スコアに反映させる。閾値スコア調整部４２は、閾値スコア表示部４１から受け取ったあるキーワードまたはサブキーワードの閾値スコアで、キーワードモデル格納部３６に格納されている、そのキーワードまたはサブキーワードの閾値スコアを書き換えるようにしてもよい。
【００８８】
例えば、閾値スコア表示部４１は、第１サブキーワードを検出するために用いられる第１閾値スコアと、第２サブキーワードを検出するために用いられる第２閾値スコアの少なくとも一方を変更するためのユーザインターフェースを画面に表示する。閾値スコア調整部４２は、このユーザインターフェースを用いた操作に応じて、第１閾値スコアと第２閾値スコアの少なくとも一方を変更する。
【００８９】
時間差分閾値表示部４３は、キーワードモデル格納部３６に格納されている複合キーワードを構成するサブキーワード間の現在の時間差分閾値をＬＣＤ１０４の画面に表示する。また、時間差分閾値表示部４３は、キーワードモデル格納部３６に格納されている複合キーワードを構成するサブキーワード間の現在の時間差分閾値を変更するためのユーザインターフェースをＬＣＤ１０４の画面に表示してもよい。この時間差分閾値は、例えば、サブキーワード間の時間差分が受理される範囲を示す時間差分の最小値と最大値とを含む。また、ユーザインターフェースは、例えば、時間差分閾値を書き換え可能なテキストエリア、時間差分閾値を増加又は減少させるためのボタン、複数の値から任意の値を選択するためのプルダウンメニュー等を含む。時間差分閾値表示部４３は、キーボード１０９やポインティングデバイス１１０を用いたユーザによる操作に応じて、時間差分閾値（例えば、最小値および最大値）の変更を受け付ける。
【００９０】
時間差分閾値調整部４４は、表示されたユーザインターフェースを用いた操作に応じて、時間差分閾値を変更する。時間差分閾値調整部４４は、例えば、時間差分閾値表示部４３から受け取った時間差分閾値を、サブキーワード受理決定部３４によって用いられるサブキーワード間の時間差分閾値に反映させる。時間差分閾値調整部４４は、時間差分閾値表示部４３から受け取った、あるサブキーワード間の時間差分閾値で、キーワードモデル格納部３６に格納されている、そのサブキーワード間の時間差分閾値を書き換えるようにしてもよい。
【００９１】
例えば、時間差分閾値表示部４３は、第１サブキーワードの後に検出された第２サブキーワードを受理するか否かを判定するために用いられる第１時間差分閾値と第２時間差分閾値の少なくとも一方を変更するためのユーザインターフェースを画面に表示する。時間差分閾値調整部４４は、このユーザインターフェースを用いた操作に応じて、第１時間差分閾値と第２時間差分閾値の少なくとも一方を変更する。サブキーワード受理決定部３４は、上述したように、第１サブキーワードが検出された一つ以上の第１フレームの終端時間と、第１サブキーワードに後続する第２サブキーワードが検出された一つ以上の第２フレームの始端時間との第１差分が第１時間差分閾値と第２時間差分閾値とで規定される範囲内である場合、第２サブキーワードを受理することを決定することができる。
【００９２】
図１２は、閾値スコア表示部４１によってディスプレイ（ＬＣＤ１０４）に表示される閾値スコア調整画面８１の例を示す。この閾値スコア調整画面８１では、サブキーワードである“ｃｏｍｍｕｎｉｃａ”、“ｔｉｏｎ”、および“ｔｏｒ”のそれぞれの閾値スコアと、キーワードである“Ｈｅｌｌｏ”の閾値スコアとが表示されている。表示されている閾値スコアは、ユーザによる操作（例えば、ユーザによる数値の入力）に応じて変更可能である。閾値スコア調整部４２は、あるキーワードまたはサブキーワードの閾値スコアを変更するためのユーザ操作に応じて、そのキーワードまたはサブキーワードの閾値スコアを変更することができる。
【００９３】
また、図１３は、時間差分閾値表示部４３によってディスプレイに表示される時間差分閾値調整画面８２の例を示す。この時間差分閾値調整画面８２では、サブキーワードの組を受理するか否かを判定するための受理最小値および受理最大値が表示されている。より詳しくは、サブキーワード“ｃｏｍｍｕｎｉｃａ”に後続するサブキーワード“ｔｉｏｎ”を受理するか否かを判定するための受理最小値および受理最大値と、サブキーワード“ｃｏｍｍｕｎｉｃａ”に後続するサブキーワード“ｔｏｒ”を受理するか否かを判定するための受理最小値および受理最大値とが表示されている。表示されている受理最小値および受理最大値は、ユーザによる操作（例えば、ユーザによる数値の入力）に応じて変更可能である。時間差分閾値調整部４４は、あるサブキーワードの組の受理最小値または受理最大値を変更するためのユーザ操作に応じて、そのサブキーワードの組の受理最小値または受理最大値を変更することができる。
【００９４】
次いで、図１４のフローチャートを参照して、音声キーワード検出装置１０によって実行される閾値調整処理の手順の例を説明する。本実施形態でも、第１の実施形態と同じように、検出対象のキーワードが“コミュニケーション”、“コミュニケーター”、“ハロー”の三つであるとする。そして、“コミュニケー”、“ション”、“ター”、“ハロー”のキーワードまたはサブキーワードをそれぞれ、ｗ１，ｗ２，ｗ３，ｗ４とし、複合キーワード“コミュニケーション”、“コミュニケーター”をそれぞれサブキーワードの連結で表される  
Ｗ１＝（ｗ１，ｗ２），  Ｗ２＝（ｗ１，ｗ３）  
とする。また、キーワード／サブキーワードモデルとして、ｗｎ（但し、ｎ＝１，２，３，４）のモデルが第１の実施形態と同じ方法で、それぞれ用意してあるとする。
【００９５】
まず、閾値スコア表示部４１は、キーワードおよびサブキーワードの現在の閾値スコアをＬＣＤ１０４の画面に表示する（ステップＳ２１）。ここではキーワードモデル格納部３６に格納されているキーワードまたはサブキーワードの語（例えば、表記）と、それに関連付けられた、キーワード検出部３３で使用される閾値スコアとが、図１２で示した閾値スコア調整画面８１のように表示される。ここで表示されるのは現在の閾値スコアであり、初期値のままであれば、全てのキーワードおよびサブキーワードに対して同じ値である、例えば、  
ｔｈｎ＝２０  （ｎ＝１，２，３，４）  
が設定されている。
【００９６】
次に、閾値スコア表示部４１は、ユーザによる操作に応じて、閾値スコアの変更を受け付ける（ステップＳ２２）。ユーザは、例えば、キーワードまたはサブキーワードの出易さや出難さを調整するために、閾値スコアを変更する操作を行う。例えば、サブキーワードｗ２“ｔｉｏｎ”、およびサブキーワードｗ３“ｔｏｒ”が他のキーワード／サブキーワードに比べ検出され過ぎる場合、ユーザは、図１２に示した閾値スコア表示部４１によって表示される閾値スコア調整画面８１の表内において、グラフィカルユーザインターフェース（ＧＵＩ）を介した操作で、サブキーワードｗ２，ｗ３に対する閾値スコアを２０から４０に変更する。閾値スコア表示部４１は、ユーザ操作によるこの閾値スコアの変更を受け付ける。
【００９７】
閾値スコア調整部４２は、ステップＳ２２で変更された（受け付けた）閾値スコアを、キーワードおよびサブキーワードを検出する際の閾値スコアに反映させる（ステップＳ２３）。閾値スコア調整部４２は、例えば、ユーザ操作によって、閾値スコア調整画面８１上の表において２０から４０に変更されたサブキーワードｗ２，ｗ３に対する閾値スコアｔｈ２，ｔｈ３をそれぞれ４０に書き換える。これにより、ユーザはキーワードおよびサブキーワードの出易さ（検出されやすさ）を自由に調整することができる。
【００９８】
次いで、時間差分閾値表示部４３は、各複合キーワードの現在の時間差分閾値スコアをＬＣＤ１０４の画面に表示する（ステップＳ２４）。ここではキーワードモデル格納部３６に格納されている複合キーワードと、それに関連付けられた、サブキーワード受理決定部３４で使用される時間差分閾値とが、図１３で示した時間差分閾値調整画面８２のように表示される。ここで表示されるのは現在の時間差分閾値である受理最小値Ｔｍｉｎ ｌおよび受理最大値Ｔｍａｘ ｌであり、初期値のままであれば、全てのサブキーワードの組（複合キーワード）に対して同じ値である、例えば、  
Ｔｍｉｎ ｌ＝０  （ｌ＝１，２），  Ｔｍａｘ ｌ＝５０  （ｌ＝１，２）  
が設定されている。
【００９９】
次に、時間差分閾値表示部４３は、ユーザによる操作に応じて、時間差分閾値の変更を受け付ける（ステップＳ２５）。例えば、複合キーワードＷ２“ｃｏｍｍｕｎｉｃａ−ｔｏｒ”が、複合キーワードＷ１“ｃｏｍｍｕｎｉｃａ−ｔｉｏｎ”に比べ検出され過ぎる場合、ユーザは図１３に示した時間差分閾値表示部４３によって表示される時間差分閾値調整画面８２の表内において、ＧＵＩを介した操作で、複合キーワードＷ２に対する時間差分閾値を、“Ｔｍｉｎ ２＝５”および“Ｔｍａｘ ２＝４０”に変更する。時間差分閾値表示部４３は、ユーザ操作によるこの時間差分閾値の変更を受け付ける。
【０１００】
時間差分閾値調整部４４は、ステップＳ２５で変更された（受け付けた）時間差分閾値を、サブキーワードを受理するか否かを決定する際の時間差分閾値に反映させる（ステップＳ２６）。時間差分閾値調整部４４は、例えば、ユーザ操作によって、時間差分閾値調整画面８２上の表において変更された時間差分閾値を、サブキーワード受理決定部３４によって用いられるＴｍｉｎ ２，Ｔｍａｘ ２に代入（設定）する。すなわち、  
Ｔｍｉｎ ２＝０，  Ｔｍａｘ ２＝５０  
から  
Ｔｍｉｎ ２＝５，  Ｔｍａｘ ２＝４０  
に変更される。これにより、ユーザは複合キーワードの出易さ（検出されやすさ）を自由に調整することができる。
【０１０１】
なお、ここでは、複合キーワード毎に時間差分閾値が調整される例を示したが、複合キーワードの内の、２組、３組の単語の連結単位毎に時間差分閾値が調整されても良い。例えば、一つの複合キーワードが三つ以上のサブキーワードで構成され、したがって、複数のサブキーワードの組を含む場合、サブキーワードの組毎に（サブキーワードの連結単位毎に）、時間差分閾値が調整されても良い。
【０１０２】
なお、閾値スコアの更新のためのステップＳ２１からステップＳ２３までの手順と、時間差分閾値の更新のためのステップＳ２４からステップＳ２６までの手順とは、その順序を任意に入れ替えることができる。例えば、ステップＳ２４からステップＳ２６までの手順の後に、ステップＳ２１からステップＳ２３までの手順が実行されてもよく、また、ステップＳ２１からステップＳ２３までの手順と、ステップＳ２４からステップＳ２６までの手順とが並行して実行されてもよい。
【０１０３】
以上説明したように、本実施形態によれば、音声キーワード検出装置１０によるキーワードおよびサブキーワードの検出されやすさを容易に調整することができる。ユーザは、画面に表示された閾値スコアや時間差分閾値を、ユーザインターフェースを介して容易に変更できる。したがって、変更された閾値スコアに応じて、キーワードおよびサブキーワードの検出されやすさを、また変更された時間差分閾値に応じて、複合キーワード（サブキーワードの組）の検出されやすさを容易に調整することができる。
【０１０４】
なお、閾値スコアは、ユーザインターフェースを介して入力されるだけでなく、所定のフォーマットのデータとして入力されてもよい。閾値スコア調整部４２は、例えば、キーワードまたはサブキーワードと、そのキーワードまたはサブキーワードに対応する閾値スコアとが記述されたデータを用いて、キーワード検出部３３によって用いられる閾値スコアを更新することができる。
【０１０５】
同様に、時間差分閾値を示す受理最小値と受理最大値とは、ユーザインターフェースを介して入力されるだけでなく、所定のフォーマットのデータとして入力されてもよい。時間差分閾値調整部４４はは、例えば、サブキーワードの組と、そのサブキーワードの組に対応する受理最小値および受理最大値とが記述されたデータを用いて、サブキーワード受理決定部３４によって用いられる受理最小値および受理最大値を更新することができる。
【０１０６】
なお、図１を参照して上述したように、サーバ２が音声キーワード検出機能を有する場合、サーバ２はクライアント１に対して、サーバ２上で用いられる閾値スコアおよび時間差分閾値を変更するためのウェブベースのユーザインターフェースを提供してもよい。サーバ２は、例えば、ウェブブラウザや専用のアプリケーションを介して、図１２および図１３に示したような、閾値スコアおよび時間差分閾値を変更するためのユーザインターフェースをクライアント１の画面に表示させ、変更された値を受け付ける。
【０１０７】
（第３の実施形態）  
図１５は、第３の実施形態に係る音声キーワード検出装置１０上で実行される音声キーワード検出プログラム２０２の機能構成を示す。この音声キーワード検出装置１０は、第１の実施形態において説明したシステム構成を有している。本実施形態の音声キーワード検出プログラム２０２は、音声取得部３１、キーワードスコア算出部３２、キーワード検出部３３、サブキーワード受理決定部３４、および複合キーワード検出部３５に加えて、キーワードリスト取得部５１およびキーワードモデル構築部５２を備える。音声キーワード検出プログラム２０２の各部は、キーワードモデル格納部３６に格納された様々なデータを読み出すことができ、またキーワードモデル格納部３６にデータを書き込むことができる。音声取得部３１、キーワードスコア算出部３２、キーワード検出部３３、サブキーワード受理決定部３４、複合キーワード検出部３５、およびキーワードモデル格納部３６は、第１の実施形態と同様の構成を有する。以下では第１の実施形態との差分部分のみに焦点を絞り説明を行う。
【０１０８】
キーワードリスト取得部５１は、複数のキーワードを含むキーワードリストを取得する。キーワードリスト取得部５１は、例えば、ユーザがキーボード１０９等を用いてテキスト入力したキーワードのリストを取得してもよいし、所定のフォーマットで複数のキーワードが記述されたデータをキーワードのリストとして取得してもよい。
【０１０９】
キーワードモデル構築部５２は、取得されたキーワードのリストから、各キーワードを表す音素、音韻、モーラ、発音表記、または表記が、複数のキーワード間で共通である部分と、異なる部分とを抽出し、抽出された共通部分と異なる部分とに基づくキーワードモデルおよびサブキーワードモデル（キーワード／サブキーワードモデル）を構築する。キーワードモデル構築部５２は、例えば、各キーワードを表す音素、音韻、発音表記、モーラ、または表記が、複数のキーワード間で同じである部分に対応するサブキーワードと、異なる部分に対応するサブキーワードとを決定し、決定されたサブキーワードに基づくサブキーワードモデルを構築する。そして、キーワードモデル構築部５２は、決定されたサブキーワード（サブキーワードモデル）を用いて、複数のキーワードの内の二つ以上のキーワードをそれぞれ構成する複数のサブキーワードと、当該複数のサブキーワード間の発声順の前後関係とを規定する複合キーワードモデルを決定（構築）する。構築されたキーワードモデル（複合キーワードモデル）およびサブキーワードモデルは、キーワードモデル格納部３６に保存される。
【０１１０】
キーワードスコア算出部３２は、第１サブキーワードとこの第１サブキーワードに後続する第２キーワードとで構成される第１キーワードに対応する複合キーワードモデルを用いて、例えば、第１サブキーワードに対する第１スコアと、第２サブキーワードに対する第２スコアを算出する。そして、キーワード受理決定部３４は、この複合キーワードモデルを用いて、第１サブキーワードと第２サブキーワードとを受理することを決定する。
【０１１１】
図１６のフローチャートを参照して、音声キーワード検出装置１０によって実行されるキーワードモデル構築処理の手順の例を示す。この音声キーワード検出装置１０は、例えば、ＣＰＵ１０１によって音声キーワード検出プログラム２０２に含まれる命令群が実行されることによって実現される。
【０１１２】
まず、キーワードリスト取得部５１は、キーワードのリストを受け付ける（ステップＳ３１）。キーワードリスト取得部５１は、例えば、キーワードである“コミュニケーション”、“コミュニケーター”、および“ハロー”と、これらにそれぞれ関連付けられた音素列“ｋ  ａ  ｍｙ  ｕ  ｎ  ｉ  ｋ  ｅ  ｉ  ｓｙ  ｏ  ｎ”、“ｋ  ａ  ｍｙ  ｕ  ｎ  ｉ  ｋ  ｅ  ｉ  ｔ  ａ  ａ”、および“ｈ  ｅ  ｌ  ｏ  ｕ”を取得する。
【０１１３】
次に、キーワードモデル構築部５２では、取得したキーワードのリストから、キーワード間の共通部分と、異なる部分とを抽出する（ステップＳ３２）。共通部分と異なる部分との抽出には音素列とｒａｄｉｘ  ｔｒｅｅ（基数木）とが用いられる。複数のキーワードの音素列をｒａｄｉｘ  ｔｒｅｅ構造に置き換えると、ｒａｄｉｘ  ｔｒｅｅ構造の辺の部分が、共通部分と異なる部分のいずれかに相当し、またキーワードとサブキーワードのいずれかとなる。
【０１１４】
キーワードモデル構築部５２は、例えば、以下のようにしてｒａｄｉｘ  ｔｒｅｅを作成する。
【０１１５】
まず、キーワードモデル構築部５２は、キーワードのリストに含まれる一つ目のキーワードの音素列をｒａｄｉｘ  ｔｒｅｅに登録する。
【０１１６】
次に、二つ目のキーワードの音素列を登録するとき、キーワードモデル構築部５２は、ｒａｄｉｘ  ｔｒｅｅをルートから、その二つ目のキーワードの音素列が一致するところまで走査する。そして、二つ目のキーワードの一部に、現在のｒａｄｉｘ  ｔｒｅｅには存在しない、異なる部分が見つかった場合、キーワードモデル構築部５２は、その異なる部分を登録するために、ｒａｄｉｘ  ｔｒｅｅに新たな辺を追加する。キーワードモデル構築部５２は、その異なる部分を、すなわち、二つ目のキーワードの残りの音素列を、追加された辺のラベルとして登録する。なお、残りの音素列の先頭から途中の一部分までが共通である辺がｒａｄｉｘ  ｔｒｅｅに既に登録されている場合には、キーワードモデル構築部５２は、その残りの音素列と、既に登録されている辺との共通部分に対応する辺を、ｒａｄｉｘ  ｔｒｅｅに新たに登録し、そこから二つに分岐して、それぞれ異なる部分に対応する辺がさらに登録されるように設計する。全ての音素列がｒａｄｉｘ  ｔｒｅｅに登録されることにより、取得されたキーワードのリストに対するｒａｄｉｘ  ｔｒｅｅを作成することができる。
【０１１７】
次いで、キーワードモデル構築部５２は、ステップＳ３２で抽出された、キーワードの共通部分と異なる部分とに基づき、キーワード／サブキーワードモデルを構築する（ステップＳ３３）。キーワードモデル構築部５２は、例えば、第１の実施形態と同じように、各キーワード、サブキーワードに対して、音素ＨＭＭを構築する。この音素ＨＭＭを構築される際に用いられる複合キーワードの前後関係は、例えば、ステップＳ３２で作成されたｒａｄｉｘ  ｔｒｅｅをルートから辿ることによって得ることができる。これにより、キーワードのリストから自動的にキーワードの共通部分と異なる部分とを抽出し、それらに対するキーワード／サブキーワードモデルを構築することが可能となる。
【０１１８】
そして、キーワードモデル構築部５２は、構築されたキーワード／サブキーワードモデルをキーワードモデル格納部３６に保存する（ステップＳ３４）。
【０１１９】
図１７は、キーワードモデル構築部５２によって作成されるｒａｄｉｘ  ｔｒｅｅの具体的な例を示す。  
このｒａｄｉｘ  ｔｒｅｅを作成するために、キーワードモデル構築部５２は、まず、一つ目のキーワード“コミュニケーション”に対応する音素列“ｋ  ａ  ｍｙ  ｕ  ｎ  ｉ  ｋ  ｅ  ｉ  ｓｙ  ｏ  ｎ”を、ルート９１に接続する辺としてｒａｄｉｘ  ｔｒｅｅに登録する。
【０１２０】
次に、キーワードモデル構築部５２は、二つ目のキーワード“コミュニケーター”に対応する音素列“ｋ  ａ  ｍｙ  ｕ  ｎ  ｉ  ｋ  ｅ  ｉ  ｔ  ａ  ａ”を登録するとき、ｒａｄｉｘ  ｔｒｅｅをルート９１から、その二つ目のキーワードの音素列が一致するところまで走査する。作成中のｒａｄｉｘ  ｔｒｅｅには、音素列“ｋ  ａ  ｍｙ  ｕ  ｎ  ｉ  ｋ  ｅ  ｉ  ｔ  ａ  ａ”に完全に一致する辺がなく、この音素列の先頭から途中の一部分までが共通である辺“ｋ  ａ  ｍｙ  ｕ  ｎ  ｉ  ｋ  ｅ  ｉ  ｓｙ  ｏ  ｎ”が既に登録されている。そのため、キーワードモデル構築部５２は、音素列“ｋ  ａ  ｍｙ  ｕ  ｎ  ｉ  ｋ  ｅ  ｉ  ｔ  ａ  ａ”と、既に登録されている辺“ｋ  ａ  ｍｙ  ｕ  ｎ  ｉ  ｋ  ｅ  ｉ  ｓｙ  ｏ  ｎ”との共通部分に対応する辺“ｋ  ａ  ｍｙ  ｕ  ｎ  ｉ  ｋ  ｅ  ｉ”９２を、既に登録されている辺“ｋ  ａ  ｍｙ  ｕ  ｎ  ｉ  ｋ  ｅ  ｉ  ｓｙ  ｏ  ｎ”に替えて、ｒａｄｉｘ  ｔｒｅｅに新たに登録する。そして、キーワードモデル構築部５２は、そこから二つに分岐して、それぞれ異なる部分に対応する辺“ｔ  ａ  ａ”９４と辺“ｓｙ  ｏ  ｎ”９５がさらに登録されるように設計する。
【０１２１】
次いで、キーワードモデル構築部５２は、三つ目のキーワード“ハロー”に対応する音素列“ｈ  ｅ  ｌ  ｏ  ｕ”を登録するとき、ｒａｄｉｘ  ｔｒｅｅをルート９１から、その三つ目のキーワードの音素列が一致するところまで走査する。作成中のｒａｄｉｘ  ｔｒｅｅには、音素列“ｈ  ｅ  ｌ  ｏ  ｕ”に完全に一致する辺がなく、この音素列の先頭から途中の一部分までが共通である辺もない。そのため、キーワードモデル構築部５２は、音素列“ｈ  ｅ  ｌ  ｏ  ｕ”を、ルート９１に接続する辺９３としてｒａｄｉｘ  ｔｒｅｅに登録する。
【０１２２】
以上の構成により、取得されたキーワード“コミュニケーション”、“コミュニケーター”、および“ハロー”に対するｒａｄｉｘ  ｔｒｅｅを作成することができる。上述したように、キーワードモデル構築部５２は、このｒａｄｉｘ  ｔｒｅｅを用いて、キーワード間の共通部分と異なる部分とを得ることができるので、取得したキーワードのリストに対応するキーワード／サブキーワードモデルを容易に構築することができる。キーワードの共通部分の抽出は、ｒａｄｉｘ  ｔｒｅｅのみに限定されることはなく、Ｌｏｎｇｅｓｔ  Ｃｏｍｍｏｎ  ＳｕｂｓｅｑｕｅｎｃｅアルゴリズムやＤｙｎａｍｉｃ  Ｐｒｏｇｒａｍｍｉｎｇマッチングなどを使っても良い。
【０１２３】
なお、本発明のいくつかの実施形態に記載された音声キーワード検出装置１０は、上記の音声キーワード検出プログラム２０２を汎用のコンピュータ装置にあらかじめインストールすることで実現してもよいし、ＣＤ−ＲＯＭなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラム２０２を配布して、このプログラム２０２をコンピュータ装置に適宜インストールすることで実現してもよい。また、キーワードモデル格納部３６は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスクもしくはＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒなどの記憶媒体などを適宜利用して実現することができる。
【０１２４】
また、本発明のいくつかの実施形態に記載された様々な機能の各々は、回路（処理回路）によって実現されてもよい。処理回路の例には、中央処理装置（ＣＰＵ）のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム（命令群）を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。これら実施形態に記載されたＣＰＵ以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
【０１２５】
また、本発明のいくつかの実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、これら実施形態と同様の効果を容易に実現することができる。
【０１２６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２７】
１０…音声キーワード検出装置、１０１…ＣＰＵ、１０２…システムコントローラ、１０３…主メモリ、１０４…ＬＣＤ、１０５…ＢＩＯＳ−ＲＯＭ、１０６…不揮発性メモリ、１０７…マイクロホン、１０８…通信デバイス、１０９…キーボード、１１０…ポインティングデバイス、１１１…ＥＣ、２０１…ＯＳ、２０２…音声キーワード検出プログラム、３１…音声取得部、３２…キーワードスコア算出部、３３…キーワード検出部、３４…サブキーワード受理決定部、３５…複合キーワード検出部、３６…キーワードモデル格納部。
【図１】
2018155957.tif 000003
【図２】
2018155957.tif 000004
【図３】
2018155957.tif 000005
【図４】
2018155957.tif 000006
【図５】
2018155957.tif 000007
【図６】
2018155957.tif 000008
【図７】
2018155957.tif 000009
【図８】
2018155957.tif 000010
【図９】
2018155957.tif 000011
【図１０】
2018155957.tif 000012
【図１１】
2018155957.tif 000013
【図１２】
2018155957.tif 000014
【図１３】
2018155957.tif 000015
【図１４】
2018155957.tif 000016
【図１５】
2018155957.tif 000017
【図１６】
2018155957.tif 000018
【図１７】
2018155957.tif 000019