(57)【要約】【課題】音声データからキーとなるワードを正確にかつ素早く検出する。【解決手段】一実施形態に係るワード検出システムは、複数のフレームを含む音声データを取得して音声特徴量を生成し、ターゲットとなるワードに対応付けられた音声特徴量に基づく参照モデルを音声データの複数のフレームそれぞれとマッチングしてフレームスコアを算出し、そのフレームスコアからワードの第１スコアを算出し、ワードのフレームスコアを保持し、第１スコアに基づいて音声データからワードを検出し、検出したワードの始端、終端の時間情報を出力し、検出したワードの始端、終端の時間情報と保持されているフレームスコアに基づいて、ワードに対する第２スコアを算出し、第２スコアの値を用いて複数のワードに対する第２スコアまたは予め決められた閾値スコアまたはその両方と比較し、その比較結果に基づいて出力対象とするワードを決定する。【選択図】  図３
2019144524.tif 000002
【特許請求の範囲】
【請求項１】
複数のフレームを含む音声データを取得して音声特徴量を生成する音声取得部と、
ターゲットとなるワードに対応付けられた前記音声特徴量に基づく参照モデルを前記音声データの複数のフレームそれぞれとマッチングすることによってフレームスコアを算出し、そのフレームスコアから前記ワードの第１スコアを算出する第１算出部と、
前記ワードのフレームスコアを保持する保持部と、
前記第１スコアに基づいて前記音声データから前記ワードを検出し、検出したワードの始端、終端の時間情報を出力する検出部と、
前記検出したワードの始端、終端の時間情報と前記保持部に保持されているフレームスコアに基づいて、前記ワードに対する第２スコアを算出する第２算出部と、
前記第２スコアの値を用いて複数のワードに対する第２スコアまたは予め決められた閾値スコアまたはその両方と比較し、その比較結果に基づいて出力対象とするワードを決定する出力部と
を具備するワード検出システム。
【請求項２】
前記参照モデルは、前記音声特徴量として生成される音素、または音韻、または発音表記、または表記文字のいずれかに基づく請求項１記載のワード検出システム。
【請求項３】
前記出力部は、さらに、前記第２スコアの算出結果から、複数のワードについてそれぞれの第２スコアを比較して、その比較結果に基づいて出力ワードを決定する請求項１記載のワード検出システム。
【請求項４】
前記出力部は、一つのワードが検出された後に、予め定められた時間閾値内に別のワードが検出された場合に、前記第２スコアを比較し、その比較結果に基づいて出力するワードを決定する請求項３記載のワード検出システム。
【請求項５】
前記出力部は、一つのワードが検出された後に、そのワードの始端、終端の時間情報を用いて検出されたワードとは別の検出ワード候補の第２スコアと比較し、その比較結果に基づいて出力するワードを決定する請求項３記載のワード検出システム。
【請求項６】
さらに、前記時間閾値の調整をユーザの画面操作に従って実行する調整手段を備える請求項４記載のワード検出システム。
【請求項７】
さらに、前記検出ワード候補に対する第２のスコアを算出するかどうかをユーザの画面操作に従って実行する選択手段を備える請求項５記載のワード検出システム。
【請求項８】
前記出力部は、前記検出ワード候補に対して第２のスコアを算出するかどうかをワード間の距離に基づいて決定する請求項５記載のワード検出システム。
【請求項９】
複数のフレームを含む音声データを取得して音声特徴量を生成し、
ターゲットとなるワードに対応付けられた前記音声特徴量に基づく参照モデルを前記音声データの複数のフレームそれぞれとマッチングすることによってフレームスコアを算出し、そのフレームスコアから前記ワードの第１スコアを算出し、
前記ワードのフレームスコアを保持し、
前記第１スコアに基づいて前記音声データから前記ワードを検出し、検出したワードの始端、終端の時間情報を出力し、
前記検出したワードの始端、終端の時間情報と前記保持されているフレームスコアに基づいて、前記ワードに対する第２スコアを算出し、
前記第２スコアの値を用いて複数のワードに対する第２スコアまたは予め決められた閾値スコアまたはその両方と比較し、その比較結果に基づいて出力対象とするワードを決定する
ワード検出方法。
【請求項１０】
ユーザが発話する音声からワードを検出する処理をコンピュータに実行させるためのワード検出プログラムであって、
複数のフレームを含む音声データを取得して音声特徴量を生成する音声取得ステップと、
ターゲットとなるワードに対応付けられた前記音声特徴量に基づく参照モデルを前記音声データの複数のフレームそれぞれとマッチングすることによってフレームスコアを算出し、そのフレームスコアから前記ワードの第１スコアを算出する第１算出ステップと、
前記ワードのフレームスコアを保持する保持ステップと、
前記第１スコアに基づいて前記音声データから前記ワードを検出し、検出したワードの始端、終端の時間情報を出力する検出ステップと、
前記検出したワードの始端、終端の時間情報と前記保持されているフレームスコアに基づいて、前記ワードに対する第２スコアを算出する第２算出ステップと、
前記第２スコアの値を用いて複数のワードに対する第２スコアまたは予め決められた閾値スコアまたはその両方と比較し、その比較結果に基づいて出力対象とするワードを決定する出力ステップと
を具備するワード検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ワード検出システム、ワード検出方法及びワード検出プログラムに関する。
【背景技術】
【０００２】
近年、ユーザの音声から特定のキーワードを検出し、検出されたキーワードに対応する特定の動作を開始する機能を有する様々な機器が増加している。これにより、ユーザは、動作させたいキーワードを発声するだけで、複雑な操作を行うことなく、機器に所望の動作を行わせることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１７７４７４号公報
【非特許文献】
【０００４】
【非特許文献１】J. Junkawitsch, L, Neubauer, H. Hoge, G. Ruske, “A new keyword spotting algorithm with pre-calculated optimal thresholds,” in Proc. ICSLP, pp. 2067-2070, 1996.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以上のように、従来のワード検出システムでは、所望の動作に対応するキーワードを発声するだけで、複雑な操作を行うことなく、電子機器に所望の動作を行わせることができる。しかしながら、キーワードの誤検出によって他の動作を行わせてしまったり、キーワードの検出に時間がかかって、そのタイムラグによる動作の遅れが問題になることがあった。
【０００６】
本実施形態は上記課題に鑑みなされたもので、音声データからキーとなるワードを正確にかつ素早く検出することのできるワード検出システム、ワード検出方法及びワード検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
一実施形態に係るワード検出システムは、音声取得部と、第１算出部と、保持部と、検出部と、第２算出部と、出力部とを具備する。音声取得部は、複数のフレームを含む音声データを取得して音声特徴量を生成する。第１算出部は、ターゲットとなるワードに対応付けられた前記音声特徴量に基づく参照モデルを前記音声データの複数のフレームそれぞれとマッチングすることによってフレームスコアを算出し、そのフレームスコアから前記ワードの第１スコアを算出する。保持部は、前記ワードのフレームスコアを保持する。検出部は、前記第１スコアに基づいて前記音声データから前記ワードを検出し、検出したワードの始端、終端の時間情報を出力する。第２算出部は、前記検出したワードの始端、終端の時間情報と前記保持部に保持されているフレームスコアに基づいて、前記ワードに対する第２スコアを算出する。出力部は、前記第２スコアの値を用いて複数のワードに対する第２スコアまたは予め決められた閾値スコアまたはその両方と比較し、その比較結果に基づいて出力対象とするワードを決定する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る音声キーワード検出システムを概略的に示すブロック図。
【図２】実施形態に係る音声キーワード検出装置の具体的な構成を示すブロック図。
【図３】実施形態の音声キーワード検出装置の処理機能を示す機能ブロック図。
【図４】実施形態の音声キーワード検出装置の処理の流れを示すフローチャート。
【図５】実施形態の音声キーワード検出装置において、キーワードモデル格納部に格納されるデータの例を示す図。
【図６】実施形態の音声キーワード検出装置において、第１の実施例として、キーワード第２スコア算出部の具体的な動作例を示す状態遷移図。
【図７】第１の実施例において、音声入力から第２スコアが算出され、単語が決定出力されるまでの処理の流れを示す概念図。
【図８】実施形態の音声キーワード検出装置において、第２の実施例として、音声入力から第２スコアが算出され、単語が決定出力されるまでの処理の流れを示す概念図。
【図９】第２の実施例において、第２スコアによる比較処理の第１の例を示す概念図。
【図１０】第２の実施例において、第２スコアによる比較処理の第２の例を示す概念図。
【図１１】第２の実施例において、第２スコアによる比較処理の第３の例を示す概念図。
【図１２】第３の実施例において、キーワード第２スコア算出部の具体的な動作例を示す状態遷移図。
【発明を実施するための形態】
【０００９】
以下、本発明に係る実施形態について、図面を参照して説明する。
図１は、実施形態に係る音声キーワード検出装置を備える音声キーワード検出システムの構成の例を示す。この音声キーワード検出システムは、クライアント装置（以下、クライアント）１とサーバ装置（以下、サーバ）２とを備える。サーバ２は、例えば、サーバコンピュータとして実現され得る。クライアント１は、タブレットコンピュータ、スマートフォン、携帯電話機、ＰＤＡといった携帯情報端末、パーソナルコンピュータ、または各種電子機器に内蔵される組み込みシステムとして実現され得る。クライアント１とサーバ２とは、ネットワーク３を介してデータをやり取りすることができる。また、クライアント１とサーバ２の少なくとも一方は、音声からキーワードを検出する音声キーワード検出機能を有している。
【００１０】
音声キーワード検出システムでは、クライアント１に設けられるマイクロホン等を用いて生成された音声データ（音声信号）からキーワードを検出することができる。より詳しくは、クライアント１は、当該クライアント１に設けられたマイクロホン等を用いて生成された音声データを、ネットワーク３を介してサーバ２に送信する。サーバ２は、音声キーワード検出機能を用いて、クライアント１から受信した音声データからキーワードを検出し、ネットワーク３を介してそのキーワードをクライアント１に送信する。これによりクライアント１は、例えば、検出されたキーワードに応じた特定の動作を開始することができる。なお、クライアント１は、音声データではなく、音声データを用いて生成された音声特徴量（例えば、音声特徴ベクトル列）をサーバ２に送信してもよい。サーバ２は、受信した音声特徴量からキーワードを検出し、そのキーワードをクライアント１に送信することもできる。
【００１１】
また、音声キーワード検出機能はクライアント１に設けられてもよい。その場合、クライアント１は、この音声キーワード検出機能を用いて、クライアント１に設けられたマイクロホン等を用いて生成された音声データからキーワードを検出することができる。
【００１２】
このように本実施形態では、クライアント１またはサーバ２の少なくとも一方が有する音声キーワード検出機能を用いて、音声データからキーワードを検出することができる。
以下では、説明を分かりやすくするために、音声キーワード検出機能を有するクライアント１を、本実施形態の音声キーワード検出装置１０として例示する。
【００１３】
図２は、音声キーワード検出装置１０のシステム構成を示すブロック図である。音声キーワード検出装置１０は、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、ＬＣＤ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、マイクロホン１０７、通信デバイス１０８、キーボード１０９、ポインティングデバイス１１０、エンベデッドコントローラ（ＥＣ）１１１等を備える。
【００１４】
ＣＰＵ１０１は、音声キーワード検出装置１０内の様々なコンポーネントの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる様々なプログラムを実行する。これらプログラムには、オペレーティングシステム（ＯＳ）２０１、および様々なアプリケーションプログラムが含まれている。アプリケーションプログラムには、音声キーワード検出プログラム２０２が含まれている。この音声キーワード検出プログラム２０２は、音声データからキーワードを検出するための命令群を含んでいる。
【００１５】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラが内蔵されている。また、システムコントローラ１０２には、音声キーワード検出装置１０のディスプレイモニタとして使用されるＬＣＤ１０４を制御する表示コントローラも内蔵されている。この表示コントローラによって生成される表示信号はＬＣＤ１０４に送られる。ＬＣＤ１０４は、表示信号に基づいて画面イメージを表示する。
【００１６】
また、システムコントローラ１０２はオーディオコーデックを内蔵する。オーディオコーデックは、マイクロホン１０７を制御するように構成されている。オーディオコーデックは、マイクロホン１０７によって集音された音声に基づく音声信号（デジタル処理された音声波形を表すデータ列。以下、音声波形と称する。）を生成する。
【００１７】
通信デバイス１０８は、有線通信または無線通信を実行するように構成されたデバイスである。通信デバイス１０８は、信号を送信する送信部と、信号を受信する受信部とを含む。
キーボード１０９およびポインティングデバイス１１０は、ユーザによる入力のためのデバイスである。ポインティングデバイス１１０は、マウス、タッチパッド、タッチパネルのような、ＬＣＤ１０４の画面上の点および点の動きを検出するためのデバイスである。
【００１８】
ＥＣ１１１は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１１１は、ユーザによるパワーボタンの操作に応じて音声キーワード検出装置１０を電源オンまたは電源オフする機能を有している。
上記構成による音声キーワード検出装置１０は、音声波形からターゲットとなるキーワードの音声部分を検索し、検索された音声部分からターゲットのキーワードを検出する。この音声キーワード検出装置１０を搭載する機器は、検出されたキーワードに応じて動作を行うアプリケーションを搭載している。このように、キーワードを受け付けて動作する機器に搭載される音声キーワード検出装置１０には、常時音声を受け付け、そのキーワードの正確な検出が要求され、低電力・低計算量で動作するものが望まれる。また、ユーザがストレスを感じることなく快適に機器を動作させるためには、キーワードを受け付けてから即座に機器の動作を開始させる必要があり、低遅延の音声キーワード検出が望まれる。
【００１９】
ある機器で受理すべきキーワードが複数ある場合、音声波形に対して、ある時間の範囲内で発声したキーワード候補のスコアを比較し、その比較結果からキーワード（単語）の識別を行う方法がある。これに対して、特許文献１にあるように、検出に特化したスコアを用いて、ある音声波形の時間範囲内にそれぞれのキーワードの発声が所定の閾値スコアを超えて存在するかどうかの二値判別する方法がある。この方法によれば、低計算量で遅延時間の少ないアルゴリズムを適用することができる。しかし、後者の二値判定の方法の場合は、スコアが検出に特化したものになっているため、同じ発音列が多い二つのキーワードを区別することが困難になる。例えば、「コミュニケーション」と「コミュニケーター」というキーワードが設定されている場合では、「ター」と「ション」しか発音列に差がないため、「コミュニケー」までのスコアが高い場合、「コミュニケーション」と「コミュニケーター」どちらの発声に対しても、両方のキーワードが検出されてしまう。
【００２０】
このように、検出に特化したスコアを用いて、それぞれの音声キーワードに対して検出する／しないの二値判別を行う音声キーワード検出手法では、二つ以上のキーワード間で同じ発音列が多く含まれる場合、その同じ発音列を含むキーワードが全て検出されてしまうという課題があった。
【００２１】
そのため本実施形態では、検出に特化した第１検出スコアでキーワードを検出した後、検出された始端時間、終端時間と第１検出スコアの計算に用いたフレームスコアに基づいて、識別に用いるための第２検出スコアを算出し、キーワードを受理するかどうかを決定する。これにより、音声から素早く正確にキーワードを検出することができる。
【００２２】
図３は、音声キーワード検出装置１０によって実行される音声キーワード検出プログラム２０２の機能構成を示すブロック図である。音声キーワード検出プログラム２０２は、音声取得部３１、キーワード第１スコア算出部３２、キーワード第１検出部３３、キーワード第２スコア算出部３４、キーワード第２検出部３５、キーワードモデル格納部３６、スコアバッファ３７を備える。音声キーワード検出プログラム２０２の各部は、キーワードモデル格納部３６に格納された様々なデータを読み出すことができ、またキーワードモデル格納部３６にデータを書き込むことができる。キーワードモデル格納部３６には、例えば、不揮発性メモリ１０６の一部の領域が割り当てられている。
【００２３】
キーワードモデル格納部３６は、複数のキーワードに対応する複数のキーワードモデルを格納する。キーワードモデルは、対応するキーワードの音素、音韻、モーラ、発音表記、または表記文字に基づいて決定される。
音声取得部３１は、複数のフレームを含む音声データを取得する。音声取得部３１は、例えば、音声波形を受け付け、デジタル化し、フレーム毎の音声特徴量を音声データとして出力する。
【００２４】
キーワード第１スコア算出部３２は、キーワードモデル格納部３６にあるキーワードモデルを用いて音声特徴量に対するフレームスコアを算出し、そのスコアからキーワード第１スコア（逐次検出スコア）を算出する。また、フレームスコアをスコアバッファ３７に保存する。
【００２５】
キーワード第１検出部３３は、キーワード第１スコアと予め定められた閾値スコアとの比較結果に基づく判定によってキーワードの１次検出を行い、キーワードを検出した場合、そのキーワードの始端、終端情報を出力する。
キーワード第２スコア検出部３４は、キーワード第１検出部３３で検出されたキーワードの始端、終端情報および、スコアバッファ３７に保存してあるフレームスコアを用いて、キーワード第２スコアを算出する。
【００２６】
キーワード第２検出部３５は、他のキーワードの第２スコアまたは、予め定められた閾値、またはその両方と比較し、スコアが高いキーワードを検出結果として出力する。
上記音声キーワード検出プログラム２０２の処理の流れを説明する。
音声取得部３１によって複数のフレームを含む音声データが取得されたとき、キーワード第１スコア算出部３２は、例えば、キーワードに関連付けられた音素、音韻、発音表記、モーラ、または表記文字と、音声データの各フレームとをマッチングしてフレームスコアを算出した後、それを用いてキーワードに対する第１スコアを算出し、フレームスコアをスコアバッファ３７に保存する。
【００２７】
次に、キーワード第１検出部３３は、第１スコアに基づいて音声データからキーワードを検出する。より具体的には、キーワード第１検出部３３は、キーワードに対する第１スコアが第１閾値スコアよりも大きい場合、キーワードを１次検出し、そのキーワードの始端終端情報を出力する。
【００２８】
キーワード第２スコア算出部３４は、例えば、音声データに含まれる複数のフレームの内の一つ以上の第１フレームからキーワードが検出されたとき、その始端終端情報とスコアバッファ３７に保存してあるフレームスコアを用いて第２スコアを算出する。
そして、キーワード第２検出部３５は、他のキーワードの第２スコア、またはキーワードに対する第２閾値スコアと比較し、高いスコアのキーワードを検出結果として出力する。
【００２９】
次いで、図４のフローチャートを参照して、音声キーワード検出装置１０によって実行される音声キーワード検出処理の手順の例を説明する。この音声キーワード検出処理は、例えば、ＣＰＵ１０１によって音声キーワード検出プログラム２０２に含まれる命令群が実行されることによって実現される。
【００３０】
音声取得部３１は、音声波形を受け付け、デジタル化し、音声特徴量を生成する（ステップＳ１１）。音声波形は、マイクロホン１０７等を用いて収録されたものである。音声取得部３１は、音声波形をアナログからデジタルに変換し、これにより得られたデジタルの音声データを用いて特徴ベクトルを特徴量として生成し出力する。音声波形のアナログからデジタルへの変換には、一般的なＡＤ変換を用いて、アナログ波からデジタル波への変換を行う。音声取得部３１は、この変換において、例えば、アナログ波を１６ｋＨｚでサンプリングし、デジタル波の１サンプルの振幅値を１６ビットで表す。音声取得部３１は、このデジタル波を一定の時間毎に切り出す。ここでは、音声取得部３１が、デジタル波を２５６点サンプルずつ、１２８点サンプルずらしながら切り出しを行う場合について例示する。この２５６点サンプルを１フレームとする。これにより、音声取得部３１は、複数のフレームを含む音声データを取得する。
【００３１】
音声取得部３１は、この２５６点サンプルからMel Frequency Cepstrum Coefficient（ＭＦＣＣ：メル周波数ケプストラム係数）特徴量−１２次元を算出する。そして、音声取得部３１は、このＭＦＣＣ特徴量を３フレーム分だけバッファリングし、３フレーム分のＭＦＣＣ特徴量を連結した３６次元を、これら３フレームの内の中央フレームの時刻の特徴量として出力する。なお、抽出される特徴量はＭＦＣＣに限定されるものではなく、例えば、メルフィルタバンク特徴量やPerceptual Linear Prediction（ＰＬＰ）、ＲＳＴＡ−ＰＬＰ特徴量、またはピッチ特徴量、あるいはそれらのΔ成分、またはΔΔ成分を用いても良い。または、これら特徴量の組み合わせを用いても良い。また、連結フレーム数は３に限定されるものではなく、１フレーム以上であれば、何フレーム連結させても良い。さらに、切り出しサンプルサイズやフレーム周期は上記した値に限定されるものではない。
【００３２】
キーワード第１スコア算出部３２は、音声取得部３１によって生成された音声特徴量を受け取り、この音声特徴量とキーワードモデル格納部３６にあるキーワードモデルを用いてフレームスコア、キーワード第１スコアを算出する（ステップＳ１２）。
以下では、検出対象のキーワードが“コミュニケーション”、“コミュニケーター”、“ハロー”の三つである場合の具体的な例について説明する。これらキーワードに対して、キーワードモデルを用いて、フレーム毎に切り出された音声特徴量を示すベクトル列に対して累積スコアを算出する方法は多く存在するが、ここではleft-to-right型の隠れマルコフモデル（Hidden Markov Model：ＨＭＭ）と特許文献１記載の方法で例示する。
【００３３】
まず、“コミュニケーション”、“コミュニケーター”、“ハロー”のキーワードをそれぞれ、ｗ１，ｗ２，ｗ３とする。これに対して、キーワードモデルとして、ｗｎ（ｎ＝１，２，３）の３モデルがそれぞれ用意される。キーワードはleft-to-right型の音素ＨＭＭで表される。音素ＨＭＭは、キーワードｗ１，ｗ２，ｗ３をそれぞれ表す音素文字（列）“k a my u n i k e i sy o n”、“k a my u n i k e i t a a”、“h e l o u”を１状態とする。また、音素ＨＭＭのパラメータとして、音素間の遷移確率はどの遷移間の確率も同確率とする。出力確率はフレーム毎の音素の出現確率（音響スコア）で表す。
【００３４】
本実施形態では、フレーム毎の音響スコア（フレームスコア）を計算するモデルは、複数のキーワードに対して共通のフィードフォワード型のニューラルネットワークとし、第１スコアは特許文献１記載の方法を用いて計算する方法を用いる。
音響スコアを算出するためのニューラルネットワークの出力層は、キーワードｗ１，ｗ２，ｗ３をそれぞれ表す音素“k a my u n i k e i sy o n”、“k a my u n i k e i t a a”、“h e l o u”から重複するものを除き、無音区間に対する音素“sil”を加え、１３個の出力ユニットから構成される。入力層は、算出した音声特徴量に相当する３６個の入力ユニットから構成される。中間層は、２５６ユニットを持つ層を３つ重ねたものとする。ニューラルネットワークは、無音声区間を含む“コミュニケーション”、“コミュニケーター”、“ハロー”の３単語の読み上げ音声を使って、バックプロパゲーションを用いて学習する。
【００３５】
このように、キーワードに対する音素ＨＭＭを用意し、キーワードモデルｗｎに対する音素ＨＭＭが音声取り込み開始からのフレーム数ｔｅにおいて終端に達するパスのキーワード第１スコアＳは特許文献１記載の方法により計算する。このときキーワードモデルｗｎに対するフレーム数ｔｅの最大累積スコアＳｎを持つパスの音素ＨＭＭの始端フレームをｔｎｓとする。
【００３６】
各フレームで計算されるフレームスコアはスコアバッファ３７に保存される。ここでは過去8秒分のフレームスコアを格納することができるスコアバッファをキーワード毎に用意し、各フレームの各キーワードに対するフレームスコアをフレーム数tに対応づけて記録して持っておく。ここではキーワード毎にスコアバッファを用意しているが、キーワード間で共通の音素のスコアを共有してキーワード間で一つのスコアバッファを用いても良い。
【００３７】
キーワード第１スコア算出部３２は、フレーム数ｔｅを時間方向にインクリメントしながらスコア計算を行う。このとき何フレームずつかスコア計算をスキップし計算量を削減することもできる。キーワード第１スコア算出部３２は、累積スコアＳｎを、当該キーワードの第１スコアとして用いる。
【００３８】
なお、キーワードモデルは、音素単位でのモデル化に限定されるものではなく、音韻、モーラ、発音表記、または表記文字の単位でモデル化することもできる。また、累積スコアの算出方法は、特許文献１を用いたものに限定されるものではなく、例えば、非特許文献１の方法なども適用できる。また、フレーム単位の音響スコア計算に対しては、フィードフォワード型のニューラルネットワークに限定されることはなく、リカレント構造のニューラルネットワーク、例えばＬＳＴＭなども適用できる。さらに、Gaussian Mixture Model（ガウス混合モデル）でも同様にフレーム単位の音響スコアを求めることもできる。
【００３９】
キーワード第１検出部３３は、キーワード第１スコア（以下、第１スコア）と設定された第１閾値スコアとを比較することによって、第１閾値スコアを超えたスコアを有するキーワードがあるか否かを判定する（ステップＳ１３）。すなわち、キーワード第１検出部３３は、キーワードモデルｗｎに対して予め用意された累積スコアＳｎとこの累積スコアＳｎに対する第１閾値スコアｔｈｎとを比較する。（ｎ＝１，２，３）に対して、  
ｔｈｎ＜Ｓｎ 
を満たすｎが一つ見つかった場合、そのｎの値をｍに代入する。ｎ＝１のとき、すなわち“コミュニケーション”がここでは検出されたとする。そのキーワードの始端時間をｔｍｓとすると、始終端区間（ｔｍｓ，ｔｅ）のキーワードｗｍが検出されることとなる。第１閾値スコアｔｈｎは、キーワードが含まれる開発音声データセットを使って、適合率および再現率の調和平均であるＦ値が最大となる値を全キーワードに対して一つ設定する。この場合、第１閾値スコアｔｈｎの値を高くすれば、キーワードは検出されにくくなり、第１閾値スコアｔｈｎの値を低くすれば、キーワードは検出されやすくなる。
【００４０】
第１閾値スコアを超えたキーワードがない場合、ステップＳ１１の手順に戻り、後続する音声データからキーワードを検出するための処理が続行される。
一方、第１閾値スコアを超えたキーワードがあった場合、すなわち、キーワードが１次検出された場合、キーワード第２スコア算出部３４では該当キーワードの検出始終端区間（ｔｍｓ，ｔｅ）とスコアバッファ３７のフレームスコアを用いて、検出されたキーワードｗｍに対するキーワード第２スコア（以下、第２スコア）Ｄｍを算出する（ステップＳ１４）。第２スコアＤｍは検出始終端区間（ｔｍｓ，ｔｅ）をキーワードｗｍの端点とし、キーワードｗｍの音素ＨＭＭとスコアバッファ３７の対応する区間のフレームスコアを使うことによって、ビタビアルゴリズムで最大累積スコアを算出した後、その最大累積スコアを検出区間の長さ（ｔｅ−ｔｍｓ）で割ることにより正規化する。また、このときに、キーワードｗｍの検出始終端区間（ｔｍｓ，ｔｅ）に対して、キーワードｗ２、ｗ３の音素ＨＭＭとスコアバッファ３７のフレームスコアを用いて第２スコアＤ２、Ｄ３を算出する。第２スコアに対しては第２閾値スコアｔｈ２ｎ（ｎ＝１，２，３）が予め定められる。検出区間（ｔｅ−ｔｍｓ）がそれぞれのキーワードの音素数より少ないときにはビタビアルゴリズムは適応できないため、キーワードｗｍに対して予め定められた第２スコアの第２閾値スコアｔｈ２ｍより小さい値を代入する。第２閾値スコアｔｈ２ｍも第１閾値スコアｔｈｍと同じように調整することができる。ビタビアルゴリズムは端点が決まっている場合に高速に計算することができるため、計算量、遅延時間をほぼ増加させずに検出区間（ｔｍｓ，ｔｅ）に対するキーワードの識別スコア（第２スコア）を計算することができる。
【００４１】
ここでは第２スコアを計算する区間を検出始終端区間（ｔｍｓ，ｔｅ）としたが、始端終端にマージンｄフレームを加えた上で区間を広げて（ｔｍｓ−ｄ，ｔｅ＋ｄ）、（ｔｍｓ＞ｄ）の中で第２スコアを求めて良い。終端時間にマージンｄを設ける場合にはマージンｄフレーム分処理を待つ必要がある。また、時間に対して前向きにビタビアルゴリズムを適用するとき、始端が固定され、終端が異なる区間に対しては、アルゴリズムの特性により、追加フレーム毎に逐次最大累積スコアが算出可能である。このため、マージンｄフレーム内で最も第２スコアが高くなるものをそのキーワードの第２スコアとしても良い。始端の変化に関しても、終端を固定して時間方向に対して後ろ向きにビタビアルゴリズムを行えば、同様のことは可能である。また、始端終端の変化の組み合わせで最大のスコアを第２スコアとして用いても良い。
【００４２】
次に、キーワード第２検出部３５では、キーワードｗｍの１次検出始終端区間（ｔｍｓ，ｔｅ）に対してキーワード毎に算出された第２スコアを用いて、単語の検出を行う。すなわち、キーワード第２検出部３５では、キーワード第２スコア算出部３４で算出されたそれぞれのキーワードに対する第２スコアＤｍ、Ｄ２、Ｄ３を用いて、最も高い第２スコアを持ち、かつ、その第２スコアが該当するキーワードの第２閾値スコアｔｈ２ｎ（ｎ＝１，２，３）よりも高いか判定し（ステップＳ１５）、第２閾値スコアｔｈ２ｎを超えていた場合に、最も高い第２スコアを持つキーワードを検出する（ステップＳ１６）。ここではキーワードｗ２に対する第２スコアＤ２が最も高かったとする。このとき、  
ｔｈ２２＜Ｄ２
であれば、キーワードｗ２が検出される。
【００４３】
第２閾値スコアを超えた第２スコアを持つキーワードがない場合、ステップＳ１１の手順に戻り、後続する音声データからキーワードを検出するための処理が続行される。
次いで、図５を参照して、キーワードモデル格納部３６に格納されるデータの例について説明する。このデータは、音声キーワード検出プログラム２０２内の各部によって読み出され、また更新され得るものである。
【００４４】
図５は、キーワードデータの一構成例を示す。各レコードは、例えば、ＩＤ、音素、および閾値スコアを含む。各レコードは、音素の代わりに、あるいは音素に加えて、音韻、モーラ、発音表記、および表記文字の少なくともいずれかを含んでいてもよい。
あるキーワードに対応するレコードにおいて、「ＩＤ」は、そのキーワードに付与された識別情報を示す。「音素」は、そのキーワードに対応する音素を示す。「閾値スコア」は、そのキーワードとして検出されるためのスコアの閾値を示す。
【００４５】
このキーワードデータは、例えば、キーワード第１スコア算出部３２によるキーワードスコアの算出と、キーワード第１検出部３３によるキーワードの検出と、キーワード第２スコア算出部３４によるキーワード第２スコアの算出と、キーワード第２検出部３５によるキーワードの検出に用いられる。
【００４６】
ところで、上記実施形態の説明では、クライアント１が音声キーワード検出機能を有するものとしたが、サーバ２が音声キーワード検出機能を有していてもよい。その場合、クライアント１は、マイクロホンを用いて集音された音声に基づく音声データを、通信デバイス等を介してネットワーク３上のサーバ２に送信する。サーバ２は、通信デバイスを介して、クライアント１から音声データを受信する。サーバ２は、上述した音声キーワード検出プログラム２０２を実行することによって、受信した音声データからキーワードを検出する。そして、サーバ２は、検出されたキーワードをクライアント１に送信する。したがって、クライアント１は、音声キーワード検出機能を有するサーバ２に音声データを送信することによって、クライアント１自体が音声キーワード検出機能を有する場合と同様に、キーワードを取得することができる。また、クライアント１が音声取得部３１を有し、その出力である音声特徴量のみをサーバ２に送信し、その後の処理をサーバ２で実施するような形態も可能である。
【００４７】
なお、上記のプログラムは、コンピュータ装置に予めインストールすることで実現してもよいし、ＣＤ−ＲＯＭなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、個々の構成要素は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスク若しくはＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒなどの記憶媒体などを適宜利用して実現することができる。
【００４８】
以下、上記音声キーワード検出装置について、実施例を挙げて具体的に説明する。
（第１の実施例）
キーワード第２スコア算出部３４の具体的な動作例として、入力音声から“beast”という単語（ワード）を検出する場合について、図６及び図７を参照して説明する。図６は、横軸（時間軸）にフレーム番号（frame）、縦軸に状態推移（state）を示している。図中点線は、全ての検出スコアのパスを示し、実線は逐次検出スコアＰがＰ＞０の検出スコアを持つパスを示し、一点鎖線は第２スコアの算出パスを示している。図７は、音声入力から第２スコアが算出され、単語が決定出力されるまでの処理の流れを示している。本実施形態では、音声入力があると（ステップＳ２１）、フレーム毎に音声特徴量を生成し（特徴変換）（ステップＳ２２）、逐次検出スコア算出処理によりフレーム毎にフレームスコアを算出して（ステップＳ２３）、図６に示す始端のフレームスコアをスコアバッファ３７に一次保存する（ステップＳ２４）。次に、始端、終端の単語検出判定を行い（ステップＳ２５）、始端、終端の時間情報とフレームスコアを基に第２スコアを算出し（ステップＳ２６）、その第２スコアの結果に基づいて検出した単語を出力する（ステップＳ２７）。このように始端、終端の定まっている系列スコアは高速に計算可能である。本実施形態において、第1スコアの算出パスと第2スコアの算出パスが同じであるが、逐次検出スコア算出時に、パスの長さや逐次検出スコアにしきい値を設けてパスの計算を打ち切るなどの近似計算を入れた場合では、第1スコアの算出パスと第2スコアの算出パスが異なってもよい。
【００４９】
（第２の実施例）
ところで、少計算量、メモリ、低遅延で動作する単語（ワード）の検出処理において、逐次検出スコア計算による単語検出は、計算量、メモリ量が少なく、低遅延で動作する。しかしながら、この検出方法では、近似スコア、または、検出に特化したスコアを用いるため、別の検出対象の単語とスコアを比較することが困難であり、類似した単語を全て検出してしまう（例えば構造、構想など）。このようなスコア比較行うための正確なスコア計算には計算量、メモリ量が増大する。そこで、本実施形態では、図７に示した第１の実施形態の処理に加え、図８に示すように、第２スコアの算出結果について、単語毎に第２スコアを比較するステップＳ２８を追加することで類似した単語の誤検出を低下させる。
【００５０】
図９は、上記比較処理の第１の例を示している。この例では、一つのワードが検出された後に、予め定められた時間閾値内に別のワードが検出された場合を想定する。具体的には、検出対象を“beast”と“boost”とし、逐次検出スコアによって得られた区間１に対するbeastの第２スコアと逐次検出スコアによって得られた区間２（区間１より閾値Ｔだけ長い）に対するboostの第２スコアとを比較する。ここでは、区間１の第２スコアの方が区間２の第２スコアより大きい。スコアが大きい方がその単語らしいと判断する。これにより、beastを正しい検出結果として出力することができる。この場合、時間閾値の調整をユーザの画面操作に従って実行する調整機能を備えることが望ましい。
【００５１】
図１０は、上記比較処理の第２の例を示している。この例では、一つのワードが検出された後に、検出されたワードに類似する別のワード候補を考慮する必要がある場合を想定する。具体的には、検出対象を“beast”とするとき、類似する単語候補として“boost”が登録されている場合、区間１に対してbeast、boostそれぞれの第２スコアを算出し、beastの第２スコアとboosの第２スコアとを比較する。ここでは、boostの第２スコアの方がbeastの第２スコアより大きい。スコアが大きい方がその単語らしいと判断する。これにより、boostを正しい検出結果として出力することができる。この場合、検出ワード候補に対する第２のスコアを算出するかどうかをユーザの画面操作に従って実行する選択機能を備えることが望ましい。
【００５２】
図１１は、上記比較処理の第３の例を示している。この実施例では、第１の実施例、第２の実施例それぞれの処理を組み合わせ、検出対象を“beast”と“boost”とし、区間１に対するbeast、boostそれぞれの第２スコアを算出し、区間２（区間１より閾値Ｔだけ長い）に対するbeast、boostそれぞれの第２スコアを算出し、算出した第２スコアの中で最も大きいスコアを持つ検出対象を正しい検出結果として出力する。これにより、極めて高い精度で正しい単語を検出することができる。
【００５３】
上記第２スコアの計算、比較を簡略化するため、ユーザが指定した単語のみ第２スコアを計算、比較するようにする、ユーザが指定した単語のペア（例えばTurn on／Turn off）のみそれぞれの検出区間に対してそれぞれの第２スコアを計算、比較する、指定する文字や音素の距離の近さから自動で判別する（例えばHello、Good-byは比較的距離が遠いので、第２スコアを計算する必要はなし）といった手法が考えられる。このように、第２スコアの計算及び比較を簡略化することで、処理時間を飛躍的に短縮することが可能となる。
【００５４】
（第３の実施例）
実施形態の説明では、第２スコアを計算する区間を検出始終端区間（ｔｍｓ，ｔｅ）としたが、始端または終端にマージンｄフレームを加えた上で区間を広げての中で第２スコアを求めても良い。終端時間にマージンｄを設ける場合にはマージンｄフレーム分処理を待つ必要がある。また、時間に対して前向きにビタビアルゴリズムを適用するとき、始端が固定され、終端が異なる区間に対しては、アルゴリズムの特性により、追加フレーム毎に逐次最大累積スコアが算出可能である。このため、マージンｄフレーム内で最も第２スコアが高くなるものをそのキーワードの第２スコアとしても良い。始端の変化に関しても、終端を固定して時間方向に対して後ろ向きにビタビアルゴリズムを行えば、同様のことは可能である。また、始端終端の変化の組み合わせで最大のスコアを第２スコアとして用いても良い。
【００５５】
より具体的にはキーワード第２スコア算出部３４の具体的な動作例として、入力音声から“beast”という単語（ワード）を検出する場合について、図１２を参照して説明する。第３実施例の差は、マージンフレーム（ｔｍｓ，ｔｅ＋ｄ）、を加えたところであり、処理の流れは図7と同様であるため省略する。図１２は、横軸（時間軸）にフレーム番号（frame）、縦軸に状態推移（state）を示している。図中の逐次検出スコアは前実施例で説明した第１スコア（平均局所スコア）に相当する。第１スコアに対する検出閾値は０として説明を行う。図中点線は、全ての検出スコアのパスを示し、実線は逐次検出スコアＰがマージン１の場合の最大検出スコアをもつパスを示し、一点鎖線は第２スコアの算出パスを示している。図１２は終端時間にマージン１を付け加えた場合の例であるが、検出スコアのパスと第２スコア算出パスが変わってもよい。
【００５６】
以上のように、本実施形態によれば、入力音声から素早く正確にキーワードを検出し出力することができ、音声キーワードを指示入力可能な機器の制御に効果的に利用することができる。
なお、上記の説明では、入力音声からキーワードを検出する場合について説明したが、キーワードでなくても、単にワード（単語）の検出にも利用可能である。
【００５７】
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００５８】
１…サーバ、２…クライアント、３…ネットワーク、  
１０…音声キーワード検出装置、１０１…ＣＰＵ、１０２…システムコントローラ、１０３…主メモリ、１０４…ＬＣＤ、１０５…ＢＩＯＳ−ＲＯＭ、１０６…不揮発性メモリ、１０７…マイクロホン、１０８…通信デバイス、１０９…キーボード、１１０…ポインティングデバイス、１１１…エンベデッドコントローラ（ＥＣ）、  
２０１…オペレーティングシステム（ＯＳ）、２０２…音声キーワード検出プログラム、
３１…音声取得部、３２…キーワード第１スコア算出部、３３…キーワード第１検出部、３４…キーワード第２スコア算出部、３５…キーワード第２検出部、３６…キーワードモデル格納部、３７…スコアバッファ。
【図１】
2019144524.tif 000003
【図２】
2019144524.tif 000004
【図３】
2019144524.tif 000005
【図４】
2019144524.tif 000006
【図５】
2019144524.tif 000007
【図６】
2019144524.tif 000008
【図７】
2019144524.tif 000009
【図８】
2019144524.tif 000010
【図９】
2019144524.tif 000011
【図１０】
2019144524.tif 000012
【図１１】
2019144524.tif 000013
【図１２】
2019144524.tif 000014