(57)【要約】  楽音検出装置（１００）は、音信号を周波数分析して、トーン成分が継続して出現する周波数を特定する。楽音検出装置（１００）は、長期時間窓に含まれるトーン成分の発生頻度と、短期時間窓に含まれるトーン成分の発生頻度との相関に基づいて、メロディを検出する。
2017168660.tif 000002
【特許請求の範囲】
【請求項１】
音データにおいて、所定の時間長を有するトーン成分が存在する周波数を判定する判定部と、
前記判定部の判定結果を基にして、第１時間帯において前記周波数で発生するトーン成分の発生頻度と、前記第１時間帯と異なる第２時間帯において前記周波数で発生するトーン成分の発生頻度とを算出する頻度算出部と、
前記第１時間帯のトーン成分の発生頻度と、前記第２時間帯のトーン成分の発生頻度との相関に基づいて、前記音データから楽音を検出する楽音検出部と、
を有することを特徴とする楽音検出装置。
【請求項２】
前記判定部は、前記音データを周波数領域の複素スペクトルに変換し、過去フレームから現在の複素スペクトルを線形予測した予測スペクトルと、現フレームの複素スペクトルとの誤差を周波数毎に算出し、複数フレームの平均誤差が閾値以上となる周波数を、所定の時間長を有するトーン成分の存在する周波数として判定することを特徴とする請求項１に記載の楽音検出装置。
【請求項３】
前記音データのパワーと前記音データに含まれるノイズパワーとを基にしてＳＮ比を算出し、前記ＳＮ比の大きさに応じて、前記第１時間帯および前記第２時間帯の長さを調整する調整部を更に有することを特徴とする請求項１または２に記載の楽音検出装置。
【請求項４】
前記平均誤差の大きさに応じて、前記第１時間帯および前記第２時間帯の長さを調整する調整部を更に有することを特徴とする請求項２に記載の楽音検出装置。
【請求項５】
コンピュータに、
音データにおいて、所定の時間長を有するトーン成分が存在する周波数を判定し、
判定結果を基にして、第１時間帯において前記周波数で発生するトーン成分の発生頻度と、前記第１時間帯と異なる第２時間帯において前記周波数で発生するトーン成分の発生頻度とを算出し、
前記第１時間帯のトーン成分の発生頻度と、前記第２時間帯のトーン成分の発生頻度との相関に基づいて、前記音データから楽音を検出する
処理を実行させるための楽音検出プログラム。
【請求項６】
前記判定する処理は、前記音データを周波数領域の複素スペクトルに変換し、過去フレームから現在の複素スペクトルを線形予測した予測スペクトルと、現フレームの複素スペクトルとの誤差を周波数毎に算出し、複数フレームの平均誤差が閾値以上となる周波数を、所定の時間長を有するトーン成分の存在する周波数として判定することを特徴とする請求項５に記載の楽音検出プログラム。
【請求項７】
前記音データのパワーと前記音データに含まれるノイズパワーとを基にしてＳＮ比を算出し、前記ＳＮ比の大きさに応じて、前記第１時間帯および前記第２時間帯の長さを調整する処理を更にコンピュータに実行させるための請求項５または６に記載の楽音検出プログラム。
【請求項８】
前記平均誤差の大きさに応じて、前記第１時間帯および前記第２時間帯の長さを調整する処理を更にコンピュータに実行させるための請求項６に記載の楽音検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽音検出装置等に関する。
【背景技術】
【０００２】
近年、高齢者等と離れて暮らす家族等が、高齢者の生活に異変が無いか否かを知るために、宅内見守りシステムを利用する場合がある。例えば、宅内見守りシステムは、テレビのオン／オフの状態をセンシングすることで、対象者が活動しているか否かを判定する。ここで、テレビがオン状態であるか否かを判定する場合には、テレビのＣＭ（Commercial  Message）や番組で用いられるメロディに着目し、メロディを検出した場合には、テレビがオン状態であると判定する。メロディを検出する従来技術の一例として、従来技術１〜３について説明する。【０００３】
従来技術１は、入力音をＦＦＴ（Fast  Fourier  transform）等により周波数分析することで、帯域毎にパワーを求める。従来技術１は、パワーが閾値を超過する帯域が存在する場合に、入力音にメロディが含まれると判定する。図２０は、従来技術１を説明するための図である。図２０のグラフにおいて、横軸は帯域を示し、縦軸はパワーを示す。図Ａに示す例では、パワーが閾値を超えるため、入力音にメロディが含まれると判定する。【０００４】
従来技術２は、入力音の時間波形の自己相関値を算出し、自己相関値がある閾値を変えたピークを持つ場合に、入力音にメロディが含まれると判定する。図２１は、従来技術２を説明するための図である。図２１のグラフにおいて、横軸は時間のずれを示し、縦軸は自己相関値を示す。図２１に示す例では、自己相関値が閾値を超えているため、入力音にメロディが含まれると判定する。【０００５】
従来技術３は、長さの異なる二つの時間窓を用意し、入力音に対して、短区間の周波数分析と、長区間の周波数分析とを実行する。従来技術３は、短区間および長区間の周波数分析の結果が共に滑らかに変化しない場合に、入力音はメロディであると判定する。一方、従来技術３は、短区間の周波数分析結果が滑らかに変化せず、長区間の周波数分析の結果が滑らかに変化する場合には、入力音は音声であると判定する。図２２は、従来技術３を説明するための図である。図２２では、長区間の周波数分析の結果から得られる滑らかな信号と滑らかでない信号の一例を示す。信号１０ａは、滑らかでない信号であり、音楽に対応する。信号１０ｂは、滑らかな信号であり、音声に対応する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２１０７５８号公報
【特許文献２】特開２００７−２９８６０７号公報
【特許文献３】特開２００４−２４０２１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、雑音が存在する場合に正しく楽音を検出することができないという問題がある。【０００８】
従来技術１では、クリーン環境を前提とした技術であり、パワーの大小のみを見るため、一定以上のレベルを持つ騒音信号をメロディとして誤検出する場合がある。【０００９】
従来技術２で用いる自己相関の極大値は、基本周波数の周期で出現するため、基本周波数周辺のＳＮＲ（Signal-Noise  Ratio）が低い場合に、相関が低くなり、検出漏れが発生する場合がある。また、音声もピッチを持つため相関値が高くなる傾向があり、従来技術２では、音声をメロディとして誤検出する場合がある。更に、宅内のファン音や家電から発生する、定常的なトーンを持つ信号も相関値が高くなるため、従来技術２では、このトーン性のノイズを、メロディとして誤検出する場合がある。【００１０】
従来技術３では、入力音にバンドノイズが含まれると、メロディ検出することができない。例えば、入力音にバンドノイズが含まれると、周波数分析の結果の信号が滑らかになり、入力音がメロディでないと誤判定する場合がある。【００１１】
１つの側面では、本発明は、雑音が存在する場合でも正しく楽音を検出することができる楽音検出装置および楽音検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
第１の案では、楽音検出装置は、判定部と、頻度算出部と、楽音検出部とを有する。判定部は、音データにおいて、所定の時間長を有するトーン成分が存在する周波数を判定する。頻度算出部は、判定部の判定結果を基にして、第１時間帯において周波数で発生するトーン成分の発生頻度と、第１時間帯と異なる第２時間帯において周波数で発生するトーン成分の発生頻度とを算出する。楽音検出部は、第１時間帯のトーン成分の発生頻度と、第２時間帯のトーン成分の発生頻度との相関に基づいて、音データから楽音を検出する。
【発明の効果】
【００１３】
雑音が存在する場合でも正しく楽音を検出することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本実施例１に係るシステムの構成について説明する図である。
【図２】図２は、本実施例１に係る楽音検出装置の構成を示す機能ブロック図である。
【図３】図３は、トーン成分を説明するための図である。
【図４】図４は、本実施例１に係るトーン構造データのデータ構造の一例を示す図である。
【図５】図５は、本実施例１に係る頻度算出部の処理を説明するための図である。
【図６】図６は、端末装置に表示される画面の一例を示す図である。
【図７】図７は、本実施例１に係る楽音検出装置の処理手順を示すフローチャートである。
【図８】図８は、メロディを含む音の時間と周波数とスペクトルとの関係を示す図である。
【図９】図９は、メロディを含む音の相関を示す図である。
【図１０】図１０は、トーン性の雑音を含む音の時間と周波数とスペクトルとの関係を示す図である。
【図１１】図１１は、トーン性の雑音を含む音の相関を示す図である。
【図１２】図１２は、本実施例２に係る楽音検出装置の構成を示す機能ブロック図である。
【図１３】図１３は、f（SNR_ave）で定義するSNR_aveとlength_rateとの関係を示す図である。
【図１４】図１４は、本実施例２に係るトーン構造データのデータ構造の一例を示す図である。
【図１５】図１５は、本実施例２に係る楽音検出装置の処理手順を示すフローチャートである。
【図１６】図１６は、本実施例３に係る楽音検出装置の構成を示す機能ブロック図である。
【図１７】図１７は、f（Error_ave_frame）で定義するError_ave_frameとlength_rateとの関係を示す図である。
【図１８】図１８は、本実施例３に係る楽音検出装置の処理手順を示すフローチャートである。
【図１９】図１９は、楽音検出装置のハードウェア構成の一例を示す図である。
【図２０】図２０は、従来技術１を説明するための図である。
【図２１】図２１は、従来技術２を説明するための図である。
【図２２】図２２は、従来技術３を説明するための図である。
【発明を実施するための形態】
【００１５】
以下に、本発明にかかる楽音検出装置および楽音検出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１６】
図１は、本実施例１に係るシステムの構成について説明する図である。図１に示すように、このシステムは、端末装置１０と、サーバ２０と、楽音検出装置１００とを有する。端末装置１０と、サーバ２０と、楽音検出装置１００とは、ネットワーク５０を介して相互に接続される。【００１７】
端末装置１０は、例えば、高齢者の家族等が所有する端末装置である。以下の説明では適宜、高齢者の家族等を、利用者と表記し、モニタの対象となる高齢者を対象者と表記する。なお、ここでは一例として、端末装置１０を所持する高齢者の家族等を利用者とし、高齢者を対象者とするが、これに限定されるものではない。【００１８】
端末装置１０は、携帯電話、スマートフォン、タブレット端末等に対応する。後述するように、楽音検出装置１００が対象者の宅内でメロディを検出すると、メロディを検出した旨の情報を、端末装置１０に通知し、端末装置は、メロディを検出した旨の情報を表示させる。対象者が通常の生活を送っている場合には、断続的にメロディが検出されるため、利用者は、端末装置１０に表示される通知によって、対象者の安否を確認することができる。【００１９】
サーバ２０は、メロディの検出時間などを管理するサーバである。例えば、サーバ２０は、楽音検出装置１００からメロディを検出した旨の情報を受信する度に、メロディの検出時間をデータベースに登録する。例えば、利用者は、端末装置１０を操作して、サーバ２０にアクセスし、メロディの検出時間の履歴を参照することができる。【００２０】
楽音検出装置１００は、例えば、対象となる高齢者の宅内に設置される。楽音検出装置１００は、マイク等から取得する音データを分析することで、音データからメロディを検出する装置である。楽音検出装置１００は、メロディを検出した場合には、メロディを検出した旨の情報を、端末装置１０およびサーバ２０に送信する。【００２１】
図２は、本実施例１に係る楽音検出装置の構成を示す機能ブロック図である。図２に示すように、この楽音検出装置１００は、マイク１０１に接続される。楽音検出装置１００は、周波数分析部１１０と、トーン成分算出部１２０と、判定部１３０と、記憶部１４０と、頻度算出部１５０と、楽音検出部１６０と、通知部１７０とを有する。例えば、各処理部１１０，１２０，１３０，１５０，１６０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、各処理部１１０，１２０，１３０，１５０，１６０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。【００２２】
マイク１０１は、テレビ等が設置された対象者の生活空間の音を集音し、集音した音を音の時間信号に変換して、周波数分析部１１０に出力するマイクである。音の時間信号は、音の強さと時間との関係を示す信号である。【００２３】
周波数分析部１１０は、音の時間信号を、周波数領域の複素スペクトル情報に変換する処理部である。例えば、周波数分析部１１０は、式（１）に基づいて、複素スペクトル情報を算出する。周波数分析部１１０は、複素スペクトル情報を、トーン成分算出部１２０に出力する。【００２４】
【数１】
2017168660.tif 000003
【００２５】
式（１）に含まれる文字の意味は下記に示すものとなる。
in_data(t,n)：n=0,・・・,N-1は、フレームｔのＮサンプル毎の音の時間信号を示す。
fft_spec(t,f)：f=0,・・・FBAND-1は、フレームｔの複素スペクトル情報を示す。
fは、周波数帯域、FBANDは周波数帯域数を示す。FFT[]は、ＦＦＴ変換係数を示す。【００２６】
トーン成分算出部１２０は、複素スペクトル情報の定常性分析により、スペクトルの定常的なピーク成分であるトーン成分を算出する処理部である。図３は、トーン成分を説明するための図である。図３の縦軸は虚軸に対応し、横軸は実軸に対応する。トーン成分算出部１２０は、過去のフレームｔ−２，ｔ-１の複素スペクトル情報fft_spec(t-2,f)，fft_spec(t-1,f)を基にして、現フレームｔの複素スペクトル情報を線形予測した予測値fft_spec'(t,f)を算出する。トーン成分算出部１２０は、現フレームｔの複素スペクトル情報fft_spec(t,f)と、予測値fft_spec'(t,f)との正規化誤差error(t,f)をトーン成分として求める。具体的に、トーン成分算出部１２０は、式（２）に基づいて、正規化誤差error(t,f)を算出する。正規化誤差error(t,f)が小さいほど、定常性が高く、トーン成分が強いことを示す。【００２７】
【数２】
2017168660.tif 000004
【００２８】
トーン成分算出部１２０は、式（２）に含まれる現フレームｔの予測値fft_spec'(t,f)を、過去のフレームのfft_spec(t-2,f)とfft_spec(t-1,f)との差分ΔＰから、式（３）の線形予測式を用いて算出する。【００２９】
【数３】
2017168660.tif 000005
【００３０】
トーン成分算出部１２０は、各フレームの正規化誤差error(t,f)を、判定部１３０に出力する。【００３１】
判定部１３０は、周波数毎にトーン成分の継続性を判定し、周波数毎に継続しているトーン成分を判定する処理部である。判定部１３０は、トーン成分の過去Ｍフレームの正規化誤差の平均値が閾値以下の場合に、トーン成分に継続性があると判定する。【００３２】
判定部１３０は、式（４）に基づいて、トーン成分に継続性があると判定する。式（４）に含まれるerror_ave(f)は、過去Ｍフレームの正規化誤差の平均値を示すものであり、式（５）によって示される。式（４）に含まれるTH_toneは、閾値を示す。【００３３】
【数４】
2017168660.tif 000006
【００３４】
【数５】
2017168660.tif 000007
【００３５】
判定部１３０は、式（４）の条件を満たす場合に、周波数ｆのトーン成分に継続性があると判定し、判定結果tone_flag(f)の値を「１」に設定する。判定部１３０は、式（４）の条件を満たさない場合に、周波数ｆのトーン成分に継続性が無いと判定し、判定結果tone_flag(f)の値を「０」に設定する。【００３６】
判定部１３０は、各フレームの各周波数において、上記処理を繰り返し実行し、各フレームの各周波数において、トーン成分に継続性があるか否かを判定し、判定結果を、トーン構造データ１４０ａに登録する。トーン構造データ１４０ａは、記憶部１４０に格納される。記憶部１４０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。【００３７】
図４は、本実施例１に係るトーン構造データのデータ構造の一例を示す図である。図４に示すトーン構造データ１４０ａの横軸はフレームｔに対応し、縦軸は周波数ｆに対応する。図４において、最新のフレームの各周波数に関する継続性の有無の情報は、左端の列の各ブロックに登録される。最古のフレームの各周波数に関する継続性の有無の情報は、右端の列の各ブロックに登録される。【００３８】
判定部１３０は、トーン成分の継続性の判定結果tone_flag(f)を、トーン構造データ１４０ａの格納位置tone_loc_mem(k,f)に格納する。ここで、kは、トーン構造データ１４０ａの横軸に対応する変数であり、ｋは0,・・・,LongW-1となる。図４に示すように、トーン構造データ１４０ａは、現フレームｔを含む過去Long_Wフレーム分の判定結果tone_flag(f)を格納する。判定部１３０は、フレーム毎に最新情報で、トーン構造データ１４０ａを更新する。判定部１３０は、最古のフレームの情報を削除して、最新のフレームの情報を追加する。例えば、トーン構造データ１４０ａの格納位置tone_loc_mem(k,f)と、トーン成分の継続性の判定結果tone_flag(f)との関係は、式（６）で定義される。【００３９】
【数６】
2017168660.tif 000008
【００４０】
頻度算出部１５０は、トーン構造データ１４０ａから二つの時間窓におけるトーン成分の発生頻度を算出する処理部である。頻度算出部１５０は、算出結果を楽音検出部１６０に出力する。【００４１】
頻度算出部１５０は、長期時間窓と、短期時間窓とをトーン構造データ１４０ａ上に設ける。図５は、本実施例１に係る頻度算出部の処理を説明するための図である。例えば、長期時間窓の長さをLongWとし、短期時間窓の長さをShortWとする。例えば、LongWの長さを５００フレームとし、ShortWの長さを５０フレームとする。【００４２】
頻度算出部１５０は、長期時間窓のトーン成分の発生頻度を式（７）に基づき算出する。式（７）において、LongWは、長期時間窓長を示す。COUNT(x,y)は、yの範囲でx=1となる数をカウントする関数である。【００４３】
【数７】
2017168660.tif 000009
【００４４】
頻度算出部１５０は、短期時間窓のトーン成分の発生頻度を式（８）に基づき算出する。式（８）において、nは、短期時間窓の開始フレーム番号を示す。ShortWは、短期時間窓長を示す。COUNT(x,y)は、yの範囲でx=1となる数をカウントする関数である。【００４５】
【数８】
2017168660.tif 000010
【００４６】
楽音検出部１６０は、長期時間窓のトーン成分の発生頻度と、短期時間窓のトーン成分の発生頻度との相関に基づいて、音にメロディ（楽音）を検出する処理部である。楽音検出部１６０は、検出結果を通知部１７０に出力する。【００４７】
具体的に、楽音検出部１５０は、式（９）に基づいて、相関corrを算出する。式（９）に含まれるhist_long[f]は、長期時間窓のトーン成分の発生頻度を示す。hist_short[f]は、短期時間窓のトーン成分の発生頻度を示す。また、hist_longaveは、式（１０）によって定義される値である。hist_shortaveは、式（１１）によって定義される値である。【００４８】
【数９】
2017168660.tif 000011
【００４９】
【数１０】
2017168660.tif 000012
【００５０】
【数１１】
2017168660.tif 000013
【００５１】
楽音検出部１６０は、相関corrを算出した後に、相関corrが式（１２）の条件を満たすか否かを判定する。式（１２）において、TH_tone_valは、閾値を示す。楽音検出部１６０は、式（１２）の条件を満たす場合に、音にメロディが含まれると判定する。楽音検出部１６０は、式（１２）の条件を満たさない場合に、音にメロディが含まれないと判定する。【００５２】
【数１２】
2017168660.tif 000014
【００５３】
通知部１７０は、楽音検出部１６０の検出結果を基にして、メロディが検出された場合に、メロディを検出した旨の情報を、端末装置１０およびサーバ２０に通知する処理部である。例えば、通知部１７０は、メロディが検出された場合には、メロディを検出した旨の画面情報を生成し、端末装置１０に表示させる。図６は、端末装置に表示される画面の一例を示す図である。図６に示すように、通知部は、メロディを検出した旨の情報に加えて、メロディを検出した時刻や、その他の補足情報を、画面情報に追加しても良い。【００５４】
次に、本実施例１に係る楽音検出装置１００の処理手順について説明する。図７は、本実施例１に係る楽音検出装置の処理手順を示すフローチャートである。図７に示すように、楽音検出装置１００の周波数分析部１１０は、周波数分析を実行する（ステップＳ１０１）。楽音検出装置１００のトーン成分算出部１２０は、トーン成分を算出する（ステップＳ１０２）。【００５５】
楽音検出装置１００の判定部１３０は、トーン成分の継続性を判定し（ステップＳ１０３）、トーン成分の継続性の判定結果を、トーン構造データ１４０ａに格納する（ステップＳ１０４）。楽音検出装置１００の頻度算出部１５０は、長期時間窓に含まれるトーン成分の発生頻度と、短期時間窓に含まれるトーン成分の発生頻度を算出する（ステップＳ１０５）。【００５６】
楽音検出装置１００の楽音検出部１６０は、長期時間窓に含まれるトーン成分の発生頻度と、短期時間窓に含まれるトーン成分の発生頻度との相関を基にして、メロディが含まれているか否かを判定する（ステップＳ１０６）。【００５７】
楽音検出装置１００の通知部１７０は、メロディが含まれている場合に、メッセージを端末装置１０、サーバ２０に送信する（ステップＳ１０７）。楽音検出装置１００は、検出処理を終了するか否かを判定する（ステップＳ１０８）。楽音検出装置１００は、検出処理を終了しない場合には（ステップＳ１０８，Ｎｏ）、ステップＳ１０１に移行する。楽音検出装置１００は、検出処理を終了する場合には（ステップＳ１０８，Ｙｅｓ）、処理を終了する。【００５８】
次に、本実施例１に係る楽音検出装置１００の効果について説明する。楽音検出装置１００は、音信号を周波数分析して、トーン成分が継続して出現する周波数を特定し、長期時間窓に含まれるトーン成分の発生頻度と、短期時間窓に含まれるトーン成分の発生頻度との相関に基づいて、メロディを検出する。このため、トーン性の雑音が存在していたとしても、正しくメロディを検出することが可能となる。【００５９】
図８は、メロディを含む音の時間と周波数とスペクトルとの関係を示す図である。図８において、横軸が時間に対応し、縦軸が周波数に対応する。時間と周波数とに対応する領域が明るいほど、該当する時間と周波数とに対応するスペクトルが大きいことを示す。図８に示すように、メロディは、トーン成分の発生する帯域が時々刻々と変化していることがわかる。楽音検出部１００は、図８の特徴を有する音を分析し、長期時間窓のトーン成分の発生頻度hist_long(f)と、短期時間窓のトーン成分の発生頻度hist_short(f)とを算出する。【００６０】
図９は、メロディを含む音の相関を示す図である。図９の横軸は周波数に対応し、縦軸は度数に対応する。度数は、長期時間窓の発生頻度と、短期時間窓の発生頻度とを正規化したものに対応する。図９の線分２０ａは、長期時間窓の発生頻度hist_long(f)に対応する線分であり、線分２０ｂは、短期時間窓の発生頻度hist_short(f)に対応する線分である。図９に示すように、メロディを含む音では、長期時間窓の発生頻度hist_long(f)と、短期時間窓の発生頻度hist_short(f)との相関が低いことがわかる。メロディを含む音では、トーン成分が発生する周波数帯が一定ではなく、時間経過と共に切り替わる特徴があるため、長期時間窓の発生頻度と短期時間窓との発生頻度の傾向に違い生じ、相関が低くなる。【００６１】
図１０は、トーン性の雑音を含む音の時間と周波数とスペクトルとの関係を示す図である。図１０において、横軸が時間に対応し、縦軸が周波数に対応する。時間と周波数とに対応する領域が明るいほど、該当する時間と周波数とに対応するスペクトルが大きいことを示す。図１０に示すように、トーン性の雑音を含む音は、トーン成分の発生する帯域が一定となることがわかる。楽音検出部１００は、図１０の特徴を有する音を分析し、長期時間窓の発生頻度hist_long(f)と、短期時間窓の発生頻度hist_short(f)とを算出する。【００６２】
図１１は、トーン性の雑音を含む音の相関を示す図である。図１０の横軸は周波数に対応し、縦軸は度数に対応する。度数は、長期時間窓の発生頻度と、短期時間窓の発生頻度とを正規化したものに対応する。図１０の線分３０ａは、長期時間窓の発生頻度hist_long(f)に対応する線分であり、線分３０ｂは、短期時間窓の発生頻度hist_short(f)に対応する線分である。図１１に示すように、トーン性の雑音を含む音では、長期時間窓の発生頻度hist_long(f)と、短期時間窓の発生頻度hist_short(f)との相関が高いことがわかる。トーン性の雑音を含む音は、トーン成分が発生する周波数帯が変化しない特徴があるため、長期時間窓の発生頻度と短期時間窓との発生頻度の傾向が同じとなり、相関が高くなる。【００６３】
図８〜図１１で説明したように、長期時間窓の発生頻度と、短期時間窓の発生頻度とを用いることで、トーン性の雑音が含まれる場合でも、メロディを正確に検出することが可能となる。例えば、本実施例１に係る楽音検出装置１００は、長期時間窓の発生頻度と、短期時間窓の発生頻度との相関を取ることで、トーン成分の発生確率に変化があるか否かを判定し、トーン成分の発生確率に変化がある場合に、メロディであると判定しているとも言える。
【実施例２】
【００６４】
図１２は、本実施例２に係る楽音検出装置の構成を示す機能ブロック図である。図１２に示すように、この楽音検出装置２００は、マイク１０１に接続される。また、図示を省略するが、楽音検出装置２００は、楽音検出装置１００と同様にして、ネットワーク５０を介して、端末装置１０、サーバ２０に接続される。【００６５】
楽音検出装置２００は、周波数分析部１１０と、トーン成分算出部１２０と、楽音検出部１６０と、通知部１７０とを有する。楽音検出装置２００は、ノイズ推定部２１０と、ＳＮＲ算出部２２０と、調整部２３０と、判定部２４０と、記憶部２５０と、頻度算出部２６０とを有する。【００６６】
このうち、周波数分析部１１０、トーン成分算出部１２０、楽音検出部１６０、通知部１７０に関する説明は、図２で説明した周波数分析部１１０、トーン成分算出部１２０、楽音検出部１６０、通知部１７０に関する説明と同様であるため、説明を省略する。【００６７】
ノイズ推定部２１０は、周波数分析部１１０から得られる複素スペクトル情報を基にして、ノイズパワーを推定する処理部である。以下において、ノイズ推定部２１０の処理について説明する。ノイズ推定部２１０は、複素スペクトル情報を取得し、現フレームが、ノイズを含むノイズ区間であるのか、ノイズを含まない信号区間であるのかを判定する。例えば、ノイズ推定部２１０は、式（１３）を基にして、現フレームのトータルパワーa11_powを算出する。【００６８】
【数１３】
2017168660.tif 000015
【００６９】
ノイズ推定部２１０は、トータルパワーa11_powと、閾値（Th_pow）とを比較する。ノイズ推定部２１０は、トータルパワーa11_powが閾値（Th_pow）以上である場合には、現フレームを信号区間とする。一方、ノイズ推定部２１０は、トータルパワーa11_powが閾値（Th_pow）未満である場合には、現フレームをノイズ区間と判定する。【００７０】
ノイズ推定部２１０は、現フレームをノイズ区間と判定した場合には、式（１４）に基づいて、ノイズパワーの推定値estimate_npowを更新する。式（１４）に含まれるα１およびβ１は所定の定数であり、例えば、α１＝０．８、β１＝０．２とする。なお、ノイズパワーの推定値estimate_npowの初期値は、予め設定されているものとする。【００７１】
【数１４】
2017168660.tif 000016
【００７２】
ノイズ推定部２１０は、現フレームをノイズ区間と判定する度に、上記処理を繰り返し実行する。ノイズ推定部２１０は、ノイズパワーの推定値estimate_npowと、トータルパワーa11_powとの情報を、ＳＮＲ算出部２２０に出力する。【００７３】
ＳＮＲ算出部２２０は、現フレームのノイズパワーの推定値estimate_npowと、トータルパワーa11_powとを基にして、ＳＮＲ（Signal-Noise  Ratio）を算出する処理部である。例えば、ＳＮＲ算出部２２０は、式（１５）に基づいて、ＳＮＲ［ｄＢ］を算出する。ＳＮＲ算出部２２０は、算出したＳＮＲの情報を、調整部２３０に出力する。【００７４】
【数１５】
2017168660.tif 000017
【００７５】
調整部２３０は、ＳＮＲを基にして分析長の比率を算出し、比率を基にして、長期時間窓の長さと短期時間窓の長さとを調整する処理部である。調整部２３０は、調整後の長期間時間窓および短期時間窓の情報を、判定部２４０と、頻度算出部２６０に出力する。【００７６】
以下において、調整部２３０の処理ついて説明する。調整部２３０は、式（１６）に基づいて、毎フレームのＳＮＲの平均値SNR_aveを算出する。式（１６）に含まれるα２およびβ２は所定の定数であり、例えば、α２＝０．９、β２＝０．１とする。なお、SNR_aveの初期値は、予め設定されているものとする。【００７７】
【数１６】
2017168660.tif 000018
【００７８】
調整部２３０は、式（１６）を基に算出したSNR_aveを、式（１７）に代入することで、分析長の比率length_rateを算出する。式（１７）において、f（SNR_ave）は、図１３に示すように、SNR_aveが決まると比率length_rateが決まる関数である。【００７９】
【数１７】
2017168660.tif 000019
【００８０】
図１３は、f（SNR_ave）で定義するSNR_aveとlength_rateとの関係を示す図である。図１３において、横軸はSNR_aveに対応する軸であり、縦軸はlength_rateに対応する軸である。例えば、length_rateは、length_rate_minからlength_rate_maxまで変化する。例えば、length_rate_min=0.7、length_rate_max=1.3とする。【００８１】
調整部２３０は、比率length_rateと、長期時間窓の長さLongWとを乗算した長さを、調整後の長期時間窓の長さとする。調整部２３０は、比率length_rateと、短期時間窓の長さShortWとを乗算した長さを、調整後の短期時間窓の長さとする。【００８２】
図１２の説明に戻る。判定部２４０は、周波数毎にトーン成分の継続性を判定し、周波数毎に継続しているトーン成分を判定する処理部である。判定部２４０が、継続しているトーン成分を判定する処理は、実施例１で説明した判定部１３０と同様である。【００８３】
判定部２４０は、判定結果を、トーン構造データ２５０ａに登録する。トーン構造データ２５０ａは、記憶部２５０に格納される。記憶部２５０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子や、ＨＤＤなどの記憶装置に対応する。【００８４】
図１４は、本実施例２に係るトーン構造データのデータ構造の一例を示す図である。図１４に示すトーン構造データ２５０ａの横軸はフレームｔに対応し、縦軸は周波数ｆに対応する。図１４において、最新のフレームの各周波数に関する継続性の有無の情報は、左端の列の各ブロックに登録される。最古のフレームの各周波数に関する継続性の有無の情報は、右端の列の各ブロックに登録される。【００８５】
判定部２４０は、トーン成分の継続性の判定結果tone_flag(f)を、トーン構造データ２５０ａの格納位置tone_loc_mem(k,f)に格納する。ここで、kは、トーン構造データ２５０ａの横軸に対応する変数であり、ｋは0,・・・,LongW*length_rate-1となる。図１４に示すように、トーン構造データ２５０ａは、現フレームｔを含む過去Long_W*length_rateフレーム分の判定結果tone_flag(f)を格納する。判定部２４０は、フレーム毎に最新情報で、トーン構造データ２５０ａを更新する。判定部２４０は、最古のフレームの情報を削除して、最新のフレームの情報を追加する。例えば、トーン構造データ２５０ａの格納位置tone_loc_mem(k,f)と、トーン成分の継続性の判定結果tone_flag(f)との関係は、式（１８）で定義される。【００８６】
【数１８】
2017168660.tif 000020
【００８７】
頻度算出部２６０は、トーン構造データ２５０ａから二つの時間窓におけるトーン成分の発生頻度を算出する処理部である。頻度算出部２６０は、算出結果を楽音検出部１６０に出力する。【００８８】
頻度算出部２６０は、長期時間窓と、短期時間窓とをトーン構造データ２５０ａ上に設ける。例えば、長期時間窓の長さをLongW*length_rateとし、短期時間窓の長さをShorW*length_rateとする。【００８９】
頻度算出部２６０は、長期時間窓のトーン成分の発生頻度を式（１９）に基づき算出する。式（１９）において、LongW*length_rateは、長期時間窓長を示す。COUNT(x,y)は、yの範囲でx=1となる数をカウントする関数である。【００９０】
【数１９】
2017168660.tif 000021
【００９１】
頻度算出部２６０は、短期時間窓のトーン成分の発生頻度を式（２０）に基づき算出する。式（２０）において、nは、短期時間窓の開始フレーム番号を示す。ShortW*length_rateは、短期時間窓長を示す。COUNT(x,y)は、yの範囲でx=1となる数をカウントする関数である。【００９２】
【数２０】
2017168660.tif 000022
【００９３】
次に、本実施例２に係る楽音検出装置２００の処理手順について説明する。図１５は、本実施例２に係る楽音検出装置の処理手順を示すフローチャートである。図１５に示すように、楽音検出装置２００の周波数分析部１１０は、周波数分析を実行する（ステップＳ２０１）。楽音検出装置２００のトーン成分算出部１２０は、トーン成分を算出する（ステップＳ２０２）。【００９４】
楽音検出装置２００の判定部２４０は、トーン成分の継続性を判定し（ステップＳ２０３）、トーン成分の継続性の判定結果を、トーン構造データ２５０ａに格納する（ステップＳ２０４）。楽音検出装置２００のノイズ推定部２１０は、ノイズを推定する（ステップＳ２０５）。楽音検出装置２００のＳＮＲ算出部２２０は、ＳＮＲを算出する（ステップＳ２０６）。【００９５】
楽音検出装置２００の調整部２３０は、ＳＮＲに基づいて分析長の比率を算出し、長期時間窓と短期時間窓の長さを調整する（ステップＳ２０７）。楽音検出装置２００の頻度算出部２６０は、長期時間窓に含まれるトーン成分の発生頻度と、短期時間窓に含まれるトーン成分の発生頻度を算出する（ステップＳ２０８）。【００９６】
楽音検出装置２００の楽音検出部１６０は、長期時間窓に含まれるトーン成分の発生頻度と、短期時間窓に含まれるトーン成分の発生頻度との相関を基にして、メロディが含まれているか否かを判定する（ステップＳ２０９）。【００９７】
楽音検出装置２００の通知部１７０は、メロディが含まれている場合に、メッセージを端末装置１０、サーバ２０に送信する（ステップＳ２１０）。楽音検出装置２００は、検出処理を終了するか否かを判定する（ステップＳ２１１）。楽音検出装置２００は、検出処理を終了しない場合には（ステップＳ２１１，Ｎｏ）、ステップＳ２０１に移行する。楽音検出装置２００は、検出処理を終了する場合には（ステップＳ２１１，Ｙｅｓ）、処理を終了する。【００９８】
次に、本実施例２に係る楽音検出装置２００の効果について説明する。楽音検出装置２００は、ＳＮＲに基づいて、長期時間窓および短期時間窓の長さを調整し、調整後の長期時間窓に含まれるトーン成分の発生頻度と、調整後の短期時間窓に含まれるトーン成分の発生頻度との相関に基づき、メロディを検出する。これにより、騒音環境下でも一定の検出精度を保証した出力を期待できる。また、静かな環境やメロディ音が大きい場合には、時間窓の長さが短くなるため、より速く、メロディ検出を実行することができる。
【実施例３】
【００９９】
図１６は、本実施例３に係る楽音検出装置の構成を示す機能ブロック図である。図１６に示すように、この楽音検出装置３００は、マイク１０１に接続される。また、図示を省略するが、楽音検出装置３００は、楽音検出装置１００と同様にして、ネットワーク５０を介して、端末装置１０、サーバ２０に接続される。【０１００】
楽音検出装置３００は、周波数分析部１１０と、トーン成分算出部１２０と、楽音検出部１６０と、通知部１７０と、判定部２４０と、記憶部２５０と、頻度算出部２６０と、調整部３１０とを有する。【０１０１】
このうち、周波数分析部１１０、トーン成分算出部１２０、楽音検出部１６０、通知部１７０に関する説明は、図２で説明した周波数分析部１１０、トーン成分算出部１２０、楽音検出部１６０、通知部１７０に関する説明と同様であるため、説明を省略する。また、判定部２４０、記憶部２５０、頻度算出部２６０に関する説明は、図１２で説明した、判定部２４０、記憶部２５０、頻度算出部２６０に関する説明と同様であるため、説明を省略する。【０１０２】
調整部３１０は、判定部１３０から予測誤差error_ave(f)の情報を取得し、予測誤差error_ave(f)に応じて、分析長の比率を算出する。調整部３１０は、算出した比率を基にして、長期時間窓の長さと短期時間窓の長さとを調整する。調整部３１０は、調整後の長期間時間窓および短期時間窓の情報を、判定部２４０と、頻度算出部２６０に出力する。【０１０３】
以下において、調整部３１０の処理について説明する。調整部３１０は、式（２１）、式（２２）に基づいて、トーン成分が存在すると判定された帯域の予測誤差を正規化、平均化したError_ave_frameを算出する。式（２１）に含まれるnumは、フレームでトーンが存在すると判定された帯域の数である。式（２２）に含まれるα３およびβ３は所定の定数であり、α３＝０．９、β３＝０．１とする。【０１０４】
【数２１】
2017168660.tif 000023
【０１０５】
【数２２】
2017168660.tif 000024
【０１０６】
調整部３１０は、式（２１）、（２２）を基に算出したError_ave_frameを、式（２３）に代入することで、分析長の比率length_rateを算出する。式（２３）において、f（Error_ave_frame）は、図１７に示すように、Error_ave_frameが決まると比率length_rateが決まる関数である。【０１０７】
【数２３】
2017168660.tif 000025
【０１０８】
図１７は、f（Error_ave_frame）で定義するError_ave_frameとlength_rateとの関係を示す図である。図１７において、横軸はError_ave_frameに対応する軸であり、縦軸はlength_rateに対応する軸である。例えば、length_rateは、length_rate_minからlength_rate_maxまで変化する。例えば、length_rate_min=0.7、length_rate_max=1.3とする。【０１０９】
調整部２３０は、比率length_rateと、長期時間窓の長さLongWとを乗算した長さを、調整後の長期時間窓の長さとする。調整部２３０は、比率length_rateと、短期時間窓の長さShortWとを乗算した長さを、調整後の短期時間窓の長さとする。【０１１０】
次に、本実施例３に係る楽音検出装置３００の処理手順について説明する。図１８は、本実施例３に係る楽音検出装置の処理手順を示すフローチャートである。図１８に示すように、楽音検出装置３００の周波数分析部１１０は、周波数分析を実行する（ステップＳ３０１）。楽音検出装置３００のトーン成分算出部１２０は、トーン成分を算出する（ステップＳ３０２）。【０１１１】
楽音検出装置３００の判定部２４０は、トーン成分の継続性を判定し（ステップＳ３０３）、トーン成分の継続性の判定結果を、トーン構造データ２５０ａに格納する（ステップＳ３０４）。楽音検出部３００の調整部３１０は、予測誤差に基づいて分析長の比率を算出し、長期時間窓と短期時間窓の長さを調整する（ステップＳ３０５）。【０１１２】
楽音検出装置３００の頻度算出部２６０は、長期時間窓に含まれるトーン成分の発生頻度と、短期時間窓に含まれるトーン成分の発生頻度を算出する（ステップＳ３０６）。楽音検出装置３００の楽音検出部１６０は、長期時間窓に含まれるトーン成分の発生頻度と、短期時間窓に含まれるトーン成分の発生頻度との相関を基にして、メロディが含まれているか否かを判定する（ステップＳ３０７）。【０１１３】
楽音検出装置３００の通知部１７０は、メロディが含まれている場合に、メッセージを端末装置１０、サーバ２０に送信する（ステップＳ３０８）。楽音検出装置３００は、検出処理を終了するか否かを判定する（ステップＳ３０９）。楽音検出装置３００は、検出処理を終了しない場合には（ステップＳ３０９，Ｎｏ）、ステップＳ３０１に移行する。楽音検出装置３００は、検出処理を終了する場合には（ステップＳ３０９，Ｙｅｓ）、処理を終了する。【０１１４】
本実施例３に係る楽音検出装置３００の効果について説明する。楽音検出装置３００は、予測誤差に基づいて、長期時間窓および短期時間窓の長さを調整し、調整後の長期時間窓に含まれるトーン成分の発生頻度と、調整後の短期時間窓に含まれるトーン成分の発生頻度との相関に基づき、メロディを検出する。これにより、騒音環境下でも一定の検出精度を保証した出力を期待できる。また、静かな環境やメロディ音が大きい場合には、時間窓の長さが短くなるため、より速く、メロディ検出を実行することができる。また、ＳＮＲを算出する代わりに、予測誤差を用いると、ＳＮＲを判断するためのブロックが不要となり、処理量を削減することもできる。【０１１５】
次に、上記実施例に示した楽音検出装置１００，２００，３００と同様の機能を実現するコンピュータのハードウェア構成について説明する。図１９は、楽音検出装置のハードウェア構成の一例を示す図である。【０１１６】
図１９に示すように、コンピュータ４００は、各種演算処理を実行するＣＰＵ４０１と、利用者からのデータの入力を受け付ける入力装置４０２と、ディスプレイ４０３を有する。また、コンピュータ４００は、記憶媒体からプログラム等を読取る読み取り装置４０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置４０５とを有する。また、コンピュータ４００は、各種情報を一時記憶するＲＡＭ４０６と、ハードディスク装置４０７を有する。そして、各装置４０１〜４０７は、バス４０８に接続される。【０１１７】
ハードディスク装置４０７は、判定プログラム４０７ａ、頻度算出プログラム４０７ｂ、楽音検出プログラム４０７ｃ、調整プログラム４０７ｄを有する。ＣＰＵ４０１は、各プログラム４０７ａ〜４０７ｃを読み出してＲＡＭ４０６に展開する。判定プログラム４０７ａは、判定プロセス４０６ａとして機能する。頻度算出プログラム４０７ｂは、頻度算出プロセス４０６ｂとして機能する。楽音検出プログラム４０７ｃは、楽音検出プロセス４０６ｃとして機能する。調整プログラム４０７ｄは、調整プロセス４０６ｄとして機能する。【０１１８】
例えば、判定プロセスの処理は、周波数分析部１１０、トーン成分算出部１２０、判定部１３０，２４０の処理に対応する。頻度算出プロセス４０６ａの処理は、頻度算出部１５０，２６０の処理に対応する。楽音検出プロセス４０６ｃの処理は、楽音検出部１６０の処理に対応する。調整プロセス４０６ｄの処理は、調整部２３０，３１０の処理に対応する。【０１１９】
なお、各プログラム４０７ａ〜４０７ｄについては、必ずしも最初からハードディスク装置４０７に記憶させておかなくても良い。例えば、コンピュータ４００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ４００がこれらから各プログラム４０７ａ〜４０７ｄを読み出して実行するようにしてもよい。
【符号の説明】
【０１２０】
１０    端末装置
２０    サーバ
１００，２００，３００    楽音検出装置
１０１    マイク
１１０    周波数分析部
１２０    トーン成分算出部
１３０，２４０    判定部
１４０，２５０    記憶部
１５０，２６０    頻度算出部
１６０    楽音検出部
１７０    通知部
２１０    ノイズ推定部
２２０  ＳＮＲ算出部
２３０，３１０    調整部
【図１】
2017168660.tif 000026
【図２】
2017168660.tif 000027
【図３】
2017168660.tif 000028
【図４】
2017168660.tif 000029
【図５】
2017168660.tif 000030
【図６】
2017168660.tif 000031
【図７】
2017168660.tif 000032
【図８】
2017168660.tif 000033
【図９】
2017168660.tif 000034
【図１０】
2017168660.tif 000035
【図１１】
2017168660.tif 000036
【図１２】
2017168660.tif 000037
【図１３】
2017168660.tif 000038
【図１４】
2017168660.tif 000039
【図１５】
2017168660.tif 000040
【図１６】
2017168660.tif 000041
【図１７】
2017168660.tif 000042
【図１８】
2017168660.tif 000043
【図１９】
2017168660.tif 000044
【図２０】
2017168660.tif 000045
【図２１】
2017168660.tif 000046
【図２２】
2017168660.tif 000047
【手続補正書】
【提出日】平成30年6月6日(2018.6.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
音データにおいて、所定の時間長を有するトーン成分が存在する周波数を判定する判定部と、
前記判定部の判定結果を基にして、第１時間帯において前記周波数で発生するトーン成分の発生頻度と、前記第１時間帯と異なる第２時間帯において前記周波数で発生するトーン成分の発生頻度とを算出する頻度算出部と、
前記第１時間帯のトーン成分の発生頻度と、前記第２時間帯のトーン成分の発生頻度との相関に基づいて、前記音データから楽音を検出する楽音検出部と、
を有することを特徴とする楽音検出装置。
【請求項２】
前記判定部は、前記音データを周波数領域の複素スペクトルに変換し、過去フレームから現在の複素スペクトルを線形予測した予測スペクトルと、現フレームの複素スペクトルとの誤差を周波数毎に算出し、複数フレームの平均誤差が閾値以上となる周波数を、所定の時間長を有するトーン成分の存在する周波数として判定することを特徴とする請求項１に記載の楽音検出装置。
【請求項３】
前記音データのパワーと前記音データに含まれるノイズパワーとを基にしてＳＮ比を算出し、前記ＳＮ比の大きさに応じて、前記第１時間帯および前記第２時間帯の長さを調整する調整部を更に有することを特徴とする請求項１または２に記載の楽音検出装置。
【請求項４】
前記平均誤差の大きさに応じて、前記第１時間帯および前記第２時間帯の長さを調整する調整部を更に有することを特徴とする請求項２に記載の楽音検出装置。
【請求項５】
コンピュータに、
音データにおいて、所定の時間長を有するトーン成分が存在する周波数を判定し、
判定結果を基にして、第１時間帯において前記周波数で発生するトーン成分の発生頻度と、前記第１時間帯と異なる第２時間帯において前記周波数で発生するトーン成分の発生頻度とを算出し、
前記第１時間帯のトーン成分の発生頻度と、前記第２時間帯のトーン成分の発生頻度との相関に基づいて、前記音データから楽音を検出する
処理を実行させるための楽音検出プログラム。
【国際調査報告】
2017168660.tif 000048
2017168660.tif 000049