以下、歌声評定装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
図1は、本実施の形態における歌声評定装置のブロック図である。
歌声評定装置は、教師データ格納部101、基準情報格納部102、歌声受付部103、教師周波数情報取得部104、歌声周波数情報取得部105、音素情報抽出部106、評定部107、出力部108を具備する。
音素情報抽出部106は、最適状態決定手段1061、音素情報取得手段1062を具備する。
評定部107は、発音評定手段1071、タイミング評定手段1072、周波数評定手段1073を具備する。
発音評定手段1071は、最適状態決定手段10711、最適状態確率値取得手段10712、評定値算出手段10713を具備する。
周波数評定手段1073は、周波数差算出手段10731、周波数近似度評定手段10732、教師リズム変化時点情報取得手段10733、歌声リズム変化時点情報取得手段10734、リズム評定手段10735を具備する。
出力部108は、矯正出力判断手段1081、矯正情報出力手段1082を具備する。
教師データ格納部101は、1以上の教師データを格納している。教師データは、歌声に関するデータである。また、教師データは、受け付けた歌声を評定するために利用される歌声に関するデータである。教師データは、生の模範者の歌声でも良いし、かかる歌声から抽出できる教師周波数情報や音素情報や教師リズム時点情報などでも良い。また、教師データの一部は、例えば、1以上の音韻毎のデータであっても良い。また、教師データは、音韻毎の隠れマルコフモデル(HMM)に基づくデータを含んでも良い。教師データは、音韻毎の隠れマルコフモデル(HMM)を連結したHMMに基づくデータを含むことは好適である。また、教師データは、入力される歌声を構成する音素に対応するHMMを、入力順序に従って連結されているHMMに基づくデータを含むことは好適である。ただし、教師データは、必ずしも、音韻毎のHMMを連結したHMMに基づくデータを含む必要はない。教師データは、全音素のHMMの、単なる集合を含むものであっても良い。また、教師データは、必ずしもHMMに基づくデータを含まなくてもよい。教師データは、単一ガウス分布モデルや、確率モデル(GMM:ガウシャンミクスチャモデル)や、統計モデルなど、他のモデルに基づくデータを含むものでも良い。HMMに基づくデータは、例えば、フレーム毎に、状態識別子と遷移確率の情報を有する。また、HMMに基づくデータは、例えば、複数の学習対象言語を母国語として話す外国人が発声した2以上のデータから学習した(推定した)モデルでも良い。また、教師データは、模範者の歌声を示す音声データから抽出されたデータであり、周波数に関する情報や、リズムに関する情報や、音素に関する情報などでも良いし、歌声を評価するためのルールを示すデータでも良い。なお、教師データ格納部101には、楽譜の情報を示す楽譜情報を格納していても良い。当該楽譜は、学習者が歌う歌の楽譜である。教師データのデータ構造も問わない。教師データ格納部101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。不揮発性の記録媒体でも、揮発性の記録媒体でも良い。
基準情報格納部102は、評定の基準になる情報である基準情報を格納している。基準情報は、例えば、矯正のための注意を促す最低点の情報(例えば、50点)である。また、基準情報は、例えば、周波数のずれを歌唱者に知らせるかどうかの基準となる最低点の情報である。また、基準情報は、例えば、周波数の時間的なずれを歌唱者に知らせるかどうかの基準となる最低点の情報である。また、基準情報は、例えば、発声された音素の時間的なずれを歌唱者に知らせるかどうかの基準となる最低点の情報である。また、基準情報は、例えば、発声された音素の発音誤りを歌唱者に知らせるかどうかの基準となる情報である。基準情報のデータ構造は問わない。基準情報格納部102は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。不揮発性の記録媒体でも、揮発性の記録媒体でも良い。
歌声受付部103は、歌詞を伴う歌声を受け付ける。歌声とは、学習者が歌った音声のデータである。歌声の受け付けは、マイクからでも良いし、磁気テープやCD−ROMなどの記録媒体からの読み込みでも良いし、通信手段や放送受信手段を用いても良い。歌声の入力手段は、マイクや、受信手段等、何でも良い。歌声受付部103は、マイク等の入力手段のデバイスドライバー等で実現され得る。
教師周波数情報取得部104は、教師データ格納部101の教師データの周波数に関する情報である教師周波数情報を取得する。教師周波数情報は、歌の進行に応じた適正な周波数の情報の集合であり、例えば、適正な周波数情報列である。教師周波数情報のデータ構造は問わない。教師周波数情報取得部104は、公知技術により実現可能であるので、詳細な説明は省略する。なお、教師データ格納部101は、教師周波数情報取得部104が取得した教師周波数情報を保持していても良い。かかる場合、歌声評定装置は、教師周波数情報取得部104を具備する必要はない。教師周波数情報取得部104は、通常、MPUやメモリ等から実現され得る。教師周波数情報取得部104の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
歌声周波数情報取得部105は、歌声受付部103が受け付けた歌声から、周波数に関する情報である歌声周波数情報を取得する。歌声周波数情報は、歌の進行に応じた周波数の情報の集合であり、例えば、周波数情報列である。歌声周波数情報のデータ構造は問わない。歌声周波数情報取得部105は、公知技術により実現可能であるので、詳細な説明は省略する。歌声周波数情報取得部105は、通常、MPUやメモリ等から実現され得る。歌声周波数情報取得部105の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
音素情報抽出部106は、歌声受付部103が受け付けた歌声から音素に関する情報である音素情報を抽出する。音素情報とは、音素を特定する情報である。音素情報のデータ構造は問わない。音素情報抽出部106は、通常、MPUやメモリ等から実現され得る。音素情報抽出部106の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
最適状態決定手段1061は、1以上のフレーム音声データのうちの少なくとも一のフレーム音声データに対する最適状態を決定する。最適状態決定手段1061の処理は、以下で説明する最適状態決定手段10711と同様である。最適状態決定手段1061は、通常、MPUやメモリ等から実現され得る。最適状態決定手段1061の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
音素情報取得手段1062は、最適状態決定手段1061が決定した最適状態に対応する音素の情報を取得する。音素情報取得手段1062は、通常、MPUやメモリ等から実現され得る。音素情報取得手段1062の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
なお、音素情報抽出部106は、例えば、1以上のフレーム音声データのうちの少なくとも一のフレーム音声データに対する音素を決定するが、かかる処理は公知技術であるので詳細な説明は省略する。
評定部107は、少なくとも、音素情報抽出部106が抽出した音素情報と教師データに基づいて、歌声の評定をする。評定部107は、通常、発音評定手段1071による発音の良し悪しの評定と、タイミング評定手段1072によるリズムの良し悪しの評定と、周波数評定手段1073による音程の良し悪しの評定を行う。評定部107は、通常、MPUやメモリ等から実現され得る。評定部107の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
発音評定手段1071は、教師データと1以上のフレーム音声データに基づいて、歌声受付部103が受け付けた歌声の発音の良し悪しの評定を行う。発音評定手段1071における評定方法の具体例は、後述する。発音評定手段1071は、通常、MPUやメモリ等から実現され得る。発音評定手段1071の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
発音評定手段1071を構成している最適状態決定手段10711は、1以上のフレーム音声データのうちの少なくとも一のフレーム音声データに対する最適状態を決定する。最適状態決定手段10711は、例えば、全音韻HMMから、比較される対象(学習対象)の単語や文章などの音声を構成する1以上の音素に対応するHMMを取得し、当該取得した1以上のHMMを、音素の順序で連結したデータ(比較される対象の音声に関するデータであり、音韻毎の隠れマルコフモデルを連結したHMMに基づくデータ)を構成する。そして、構成した当該データ、および取得した特徴ベクトル系列を構成する各特徴ベクトルotに基づいて、所定のフレームの最適状態(特徴ベクトルotに対する最適状態)を決定する。なお、最適状態を決定するアルゴリズムは、例えば、Viterbiアルゴリズムである。また、教師データは、上述の比較される対象の音声に関するデータであり、音韻毎の隠れマルコフモデルを連結したHMMに基づくデータと考えても良いし、連結される前のデータであり、全音韻HMMのデータと考えても良い。
最適状態確率値取得手段10712は、最適状態決定手段10711が決定した最適状態における確率値を取得する。
評定値算出手段10713は、最適状態確率値取得手段10712が取得した確率値をパラメータとして音声の評定値を算出する。評定値算出手段10713は、上記確率値を如何に利用して、評定値を算出するかは問わない。評定値算出手段10713は、例えば、最適状態確率値取得手段10712が取得した確率値と、当該確率値に対応するフレームの全状態における確率値の総和をパラメータとして音声の評定値を算出する。評定値算出手段10713は、ここでは、通常、フレームごとに評定値を算出する。
最適状態決定手段10711、最適状態確率値取得手段10712、評定値算出手段10713は、通常、MPUやメモリ等から実現され得る。最適状態決定手段10711等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
タイミング評定手段1072は、受け付けた歌声の音素の出力タイミングの良し悪しを評定する。具体的には、例えば、タイミング評定手段1072は、音素情報抽出部106が抽出した音素情報に対応する音素が出力されたタイミングと、教師データを構成する音素の出力タイミングに基づいて、音素の出力タイミングを評定する。タイミング評定手段1072は、通常、MPUやメモリ等から実現され得る。タイミング評定手段1072の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
周波数評定手段1073は、教師周波数情報と歌声周波数情報に基づいて、歌声の評定をする。教師周波数情報は、通常、教師周波数情報取得部104により取得された情報であるが、予め、教師データ格納部101に格納されていても良い。周波数評定手段1073は、教師データの周波数に関する情報と評定対象の歌声の周波数に関する情報を比較して、いかなる評定を行っても良い。以下に述べる周波数差算出手段10731、周波数近似度評定手段10732、教師リズム変化時点情報取得手段10733、歌声リズム変化時点情報取得手段10734、およびリズム評定手段10735による周波数評定は、周波数の情報に基づく歌声の評定の一例である。周波数評定手段1073は、通常、MPUやメモリ等から実現され得る。周波数評定手段1073の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
周波数差算出手段10731は、所定の時点における周波数の差であって、教師周波数情報が示す周波数と歌声周波数情報が示す周波数の差を算出する。周波数差算出手段10731は、通常、所定区間ごとの教師周波数情報が示す周波数と歌声周波数情報が示す周波数の差を算出する。所定区間は、通常、一定区間であるが、一定区間でなくても良い。
周波数近似度評定手段10732は、周波数差算出手段10731が算出した1以上の周波数の差に基づいて、歌声の評定をする。周波数近似度評定手段10732は、例えば、周波数差算出手段10731が算出した周波数の差の累積に基づいて、教師データと歌声の基本周波数のずれのスコアを算出する。
教師リズム変化時点情報取得手段10733は、教師周波数情報が示す周波数の変化が所定以上の変化をする時点を示す情報である教師リズム時点情報を取得する。かかる時点を検出する際の周波数の変化の大きさは、問わない。
歌声リズム変化時点情報取得手段10734は、歌声周波数情報が示す周波数の変化が所定以上の変化をする時点を示す情報である歌声リズム時点情報を取得する。かかる時点を検出する際の周波数の変化の大きさは、問わない。
リズム評定手段10735は、教師リズム時点情報と歌声リズム時点情報に基づいて、歌声の評定をする。リズム評定手段10735は、歌声におけるリズムの良し悪しを評定する。リズム評定手段10735は、教師リズム時点情報と歌声リズム時点情報のずれの総合時間間隔をスコアに反映させる。スコアを算出する演算式は問わない。
周波数差算出手段10731、周波数近似度評定手段10732、教師リズム変化時点情報取得手段10733、歌声リズム変化時点情報取得手段10734、およびリズム評定手段10735は、通常、MPUやメモリ等から実現され得る。周波数差算出手段10731等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部108は、評定部107における評定結果を出力する。評定結果の出力態様は、種々考えられ、その出力態様は問わない。出力部108は、例えば、教師データのうちの所定の特徴量と、歌声受付部103が受け付けた歌声のうちの所定の特徴量と、評定部107における評定結果を出力する。特徴量とは、基本周波数や音素や音素の出力タイミングなどである。評定結果とは、教師データと歌声の基本周波数の差に基づく音程の良し悪しを示すスコアや、教師データと歌声の基本周波数の変化の時点のずれ、または/および音素の時間的なずれに基づくリズムの良し悪しを示すスコアや、音素の発音誤り等に基づく発音の良し悪しを示すスコアや、上記1以上のスコアから求められる歌声の総合点や、評定を行った結果に基づく矯正点を示す情報や、所定の点数より低いか高いかを示す情報など、種々考えられる。出力部108は、発音評定手段1071の評定結果、または/およびタイミング評定手段1072の評定結果、または/および周波数評定手段1073の評定結果を出力することが好適である。また、出力部108は、楽譜情報などの他の情報を出力しても良い。出力とは、ディスプレイへの表示、プリンタへの印字、音出力、外部の装置への送信等を含む概念である。出力部108は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部108は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
矯正出力判断手段1081は、評定部107の評定結果が、基準情報格納部102の基準情報に対して所定の関係にあるか否かを判断する。所定の関係にあることは、歌声の矯正のための情報を出力する必要があることである。ここで、「歌声の矯正のため」とは、単に注意を喚起するため、単に良くないことを示すため、といった意味も含む。矯正出力判断手段1081は、通常、MPUやメモリ等から実現され得る。矯正出力判断手段1081の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
矯正情報出力手段1082は、矯正出力判断手段1081が、評定結果と基準情報格納部102の基準情報が所定の関係にあると判断した場合に、当該判断の箇所に対応付けて、矯正を促す(注意を喚起するなども含む)情報である矯正情報を出力する。矯正情報は、矯正出力判断手段1081が、評定結果と基準情報が所定の関係にあると判断した場合に、当該判断の箇所に対応付けて、矯正を促す情報である。矯正情報は、例えば、発音誤りを示す情報と正しい発音を示す情報である正常発音情報、または/および音素の出力タイミングのずれを示す情報である音素ずれ情報、または/および周波数のずれを示す情報である周波数ずれ情報を有する。矯正情報の具体例は後述する。出力とは、ディスプレイへの表示、プリンタへの印字、音出力、外部の装置への送信等を含む概念である。矯正情報出力手段1082は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。矯正情報出力手段1082は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、歌声評定装置の動作について図2から図12のフローチャートを用いて説明する。
(ステップS201)歌声受付部103は、歌声を受け付けたか否かを判断する。歌声を受け付ければステップS202に行き、歌声を受け付けなければステップS210に飛ぶ。
(ステップS202)音素情報抽出部106は、ステップS201で受け付けた歌声に含まれる音素を抽出する。音素を抽出する処理については、図3のフローチャートを用いて説明する。
(ステップS203)歌声周波数情報取得部105は、ステップS201で受け付けた歌声から、周波数に関する情報である歌声周波数情報を取得する。
(ステップS204)教師周波数情報取得部104は、ステップS201で受け付けた歌声に対応する教師データの周波数に関する情報である教師周波数情報を取得する。なお、教師データは、教師データ格納部101に格納されている。
(ステップS205)周波数評定手段1073は、教師周波数情報と歌声周波数情報に基づいて、両者の周波数のずれを検出し、当該ずれに基づいて両者の周波数のずれを評定する。かかる周波数のずれ評定の処理について、図4のフローチャートを用いて説明する。
(ステップS206)周波数評定手段1073は、教師周波数情報と歌声周波数情報に基づいて、両者の周波数の時間的なずれを検出し、当該ずれに基づいて両者の周波数の時間ずれを評定する。かかる周波数の時間ずれ評定の処理について、図5のフローチャートを用いて説明する。
(ステップS207)タイミング評定手段1072は、受け付けた歌声の音素の出力タイミングの良し悪しを評定する。かかる音素の時間的ずれの評定の処理について、図6のフローチャートを用いて説明する。
(ステップS208)発音評定手段1071は、教師データと1以上のフレーム音声データに基づいて、ステップS201で受け付けた歌声の発音誤りの評定を行う。発音誤りの評定処理について、図7のフローチャートを用いて説明する。
(ステップS209)出力部108は、評定部107における評定結果を出力する。かかる出力処理について、図8のフローチャートを用いて説明する。ステップS201に戻る。
(ステップS210)評定部107は、評定する歌声が終了であるか否かを判断する。評定する歌声が終了であるか否かは、例えば、対象となる教師データの最後のフレーム(小節)まで使用し、評定を行ったか否かにより判断される。なお、評定する歌声が終了であるか否かの判断方法は、問わない。評定する歌声が終了であると判断した場合はステップS211に行き、評定する歌声が終了でないと判断した場合はステップS201に戻る。
(ステップS211)評定部107は、ステップS205からステップS208における評定結果に基づいて、総合スコアを算出する。総合スコアの算出方法は問わない。総合スコアの算出方法の具体例は後述する。
(ステップS212)出力部108は、ステップS211で算出した総合スコアを出力する。処理を終了する。
なお、図2のフローチャートにおいて、ステップS205からステップS208における評定処理のうちすべての評定処理を行わず、1以上の評定処理を組合すだけでも良い。
次に、歌声評定装置の音素情報抽出動作について図3のフローチャートを用いて説明する。
(ステップS301)音素情報抽出部106は、歌声受付部103が受け付けた歌声を、フレームに区分する。
(ステップS302)音素情報抽出部106は、カウンタiに1を代入する。
(ステップS303)音素情報抽出部106は、i番目のフレームが存在するか否かを判断する。i番目のフレームが存在すればステップS304に行き、i番目のフレームが存在しなければ上位関数にリターンする。
(ステップS304)音素情報抽出部106は、i番目のフレームの音声データであるフレーム音声データを得る。
(ステップS305)最適状態決定手段1061は、i番目のフレーム音声データの最適状態を決定し、音素情報取得手段1062は当該最適状態に対応する音素を取得する。
(ステップS306)音素情報取得手段1062は、ステップS305で取得した音素が、直前のフレーム音声データの音素と同じであるか否かを判断する。同じであればステップS307に行き、異なればステップS306に行く
(ステップS307)音素情報取得手段1062は、当該音素の情報を一時蓄積する。また、音素情報取得手段1062は、i番目のフレーム音声データの音素の開始時点(t)をも蓄積する。
(ステップS308)音素情報抽出部106は、カウンタiを1、インクリメントする。ステップS303に戻る。
なお、図3のフローチャートにおいて、フレーム区分等の処理が、既に完了している場合には、それに対応する処理は省略できることは言うまでもない。
次に、歌声評定装置の周波数ずれ評定の動作について図4のフローチャートを用いて説明する。
(ステップS401)教師周波数情報取得部104は、評定の対象の歌声に対応する教師データを決定する。
(ステップS402)教師周波数情報取得部104は、ステップS401で決定した教師データの周波数に関する情報である教師周波数情報を取得する。
(ステップS403)周波数差算出手段10731は、評価対象の区間の歌声の時間長を、当該歌声に対応する教師データの時間長に正規化する。
(ステップS404)周波数差算出手段10731は、カウンタiに1を代入する。
(ステップS405)周波数差算出手段10731は、評価対象の区間の歌声の中に、i番目のフレームが存在するか否かを判断する。i番目のフレームが存在すればステップS406に行き、i番目のフレームが存在しなければ上位関数にリターンする。
(ステップS406)周波数差算出手段10731は、教師周波数情報の中のi番目のフレームに対応する周波数と、歌声の中のi番目のフレームに対応する周波数を取得し、両周波数の差(距離)を算出する。
(ステップS407)周波数差算出手段10731は、ステップS406で算出した距離を一時蓄積する。
(ステップS408)周波数差算出手段10731は、カウンタiを1、インクリメントする。ステップS405に戻る。
次に、歌声評定装置の周波数の時間ずれ評定の動作について図5のフローチャートを用いて説明する。
(ステップS501)周波数評定手段1073は、カウンタiに1を代入する。
(ステップS502)周波数評定手段1073は、教師データの対象区間のi番目のフレームが存在するか否かを判断する。i番目のフレームが存在すればステップS503に行き、i番目のフレームが存在しなければステップS507に行く。
(ステップS503)周波数評定手段1073は、教師データの対象区間のi番目のフレームが有声の区間であるか否かを判断する。i番目のフレームが有声の区間であればステップS504に行き、i番目のフレームが有声の区間でなければステップS506に行く。
(ステップS504)周波数評定手段1073は、教師データのi番目のフレームの周波数の値の対数を算出する。対数とは、「log(周波数)」である。
(ステップS505)周波数評定手段1073は、ステップS504で算出した周波数の値の対数を一時蓄積する。
(ステップS506)周波数評定手段1073は、カウンタiを1、インクリメントする。ステップS502に戻る。
(ステップS507)周波数評定手段1073は、カウンタiに1を代入する。
(ステップS508)周波数評定手段1073は、歌声の対象区間のi番目のフレームが存在するか否かを判断する。i番目のフレームが存在すればステップS509に行き、i番目のフレームが存在しなければステップS513に行く。
(ステップS509)周波数評定手段1073は、歌声の対象区間のi番目のフレームが有声の区間であるか否かを判断する。i番目のフレームが有声の区間であればステップS510に行き、i番目のフレームが有声の区間でなければステップS512に行く。
(ステップS510)周波数評定手段1073は、歌声のi番目のフレームの周波数の値の対数を算出する。
(ステップS511)周波数評定手段1073は、ステップS510で算出した周波数の値の対数を一時蓄積する。
(ステップS512)周波数評定手段1073は、カウンタiを1、インクリメントする。ステップS508に戻る。
(ステップS513)周波数評定手段1073は、教師データの対象区間の平均対数F0値を算出する。教師データの平均対数F0値は、ステップS504で算出した値の平均値である。また、周波数評定手段1073は、歌声の対象区間の平均対数F0値を算出する。歌声の平均対数F0値は、ステップS510で算出した値の平均値である。
(ステップS514)周波数評定手段1073は、教師データの平均対数F0値と歌声の対象区間の平均対数F0値の差を算出する。
(ステップS515)周波数評定手段1073は、ステップS514で算出した差に基づいて、歌声の周波数を正規化する。ここでの周波数の正規化は、歌声の発声のタイミングのずれを評定するための処理であり、両者の音の高低を合わせるための処理である。
(ステップS516)周波数評定手段1073は、カウンタiに1を代入する。
(ステップS517)周波数評定手段1073は、対象の区間に、i番目のフレームが存在するか否かを判断する。i番目のフレームが存在すればステップS518に行き、i番目のフレームが存在しなければ上位関数にリターンする。
(ステップS518)周波数評定手段1073は、i番目のフレームの教師データは有声であるか否かを判断する。有声であればステップS519に行き、有声でなければステップS524に行く。
(ステップS519)周波数評定手段1073は、i番目のフレームの歌声は有声であるか否かを判断する。有声であればステップS520に行き、有声でなければステップS523に行く。
(ステップS520)周波数評定手段1073は、i番目のフレームの両者の周波数の差を算出する。
(ステップS521)周波数評定手段1073は、ステップS520で算出した周波数の差を一時蓄積する。
(ステップS522)周波数評定手段1073は、カウンタiを1、インクリメントする。ステップS517に戻る。
(ステップS523)周波数評定手段1073は、周波数の差として、「X1」を代入する。「X1」は、所定の値で、通常、かなり大きな値である。つまり、「X1」が大きい値であれば、教師データが有声で、歌声が無声である区間について、周波数の時間的ずれが多大であると評価することとなる。ステップS521に行く。
(ステップS524)周波数評定手段1073は、i番目のフレームの歌声は有声であるか否かを判断する。有声であればステップS525に行き、有声でなければステップS526に行く。
(ステップS525)周波数評定手段1073は、周波数の差として、「X2」を代入する。「X2」は、所定の値で、通常、かなり大きな値である。つまり、「X2」が大きい値であれば、教師データが無声で、歌声が有声である区間について、周波数の時間的ずれが多大であると評価することとなる。ステップS521に行く。
(ステップS526)周波数評定手段1073は、周波数の差を「0」とする。ステップS521に行く。
なお、図5のフローチャートにおいて、周波数の時間ずれ評定のアルゴリズムの一例を示した。他の周波数の時間ずれ評定のアルゴリズムとして、以下のアルゴリズムがある。つまり、教師リズム変化時点情報取得手段10733が、教師周波数情報が示す周波数の変化が所定以上の変化をする時点を示す情報である教師リズム時点情報を取得する。次に、歌声リズム変化時点情報取得手段10734は、歌声周波数情報が示す周波数の変化が所定以上の変化をする時点を示す情報である歌声リズム時点情報を取得する。そして、リズム評定手段10735が、教師リズム時点情報と歌声リズム時点情報に基づいて、歌声の評定をする。リズム評定手段10735は、例えば、教師リズム時点情報が示す時点と歌声リズム時点情報が示す時点の時間的ずれを算出し、その総和を周波数の時間ずれの評定値とする。
次に、歌声評定装置の音素の時間ずれ評定の動作について図6のフローチャートを用いて説明する。
(ステップS601)タイミング評定手段1072は、カウンタiに1を代入する。
(ステップS602)タイミング評定手段1072は、評定区間の中にi番目の音素が存在するか否かを判断する。i番目の音素が存在すればステップS603に行き、i番目の音素が存在しなければ上位関数にリターンする。
(ステップS603)タイミング評定手段1072は、評定区間の教師データのi番目の音素の開始時点を取得する。
(ステップS604)タイミング評定手段1072は、評定区間の歌声のi番目の音素の開始時点を取得する。
(ステップS605)タイミング評定手段1072は、ステップS603で算出した開始時点と、ステップS604で算出した開始時点の差を算出する。
(ステップS606)タイミング評定手段1072は、ステップS605で算出した差を一時蓄積する。
(ステップS607)タイミング評定手段1072は、カウンタiを1、インクリメントする。ステップS602に戻る。
次に、歌声評定装置の音素の発音誤り評定の動作について図7のフローチャートを用いて説明する。
(ステップS701)発音評定手段1071は、カウンタiに1を代入する。
(ステップS702)発音評定手段1071は、評定区間の中にi番目の音素が存在するか否かを判断する。i番目の音素が存在すればステップS703に行き、i番目の音素が存在しなければ上位関数にリターンする。
(ステップS703)最適状態決定手段10711は、i番目の音素を構成する1以上のフレーム音声データのうちの少なくとも一のフレーム音声データに対する最適状態を決定する。
(ステップS704)最適状態確率値取得手段10712は、全フレームの全状態の前向き尤度、および後向き尤度を算出する。最適状態確率値取得手段10712は、例えば、全てのHMMを用いて、フォワード・バックワードアルゴリズムにより、前向き尤度、および後向き尤度を算出する。
(ステップS705)最適状態確率値取得手段10712は、ステップS704で取得した前向き尤度、および後向き尤度を用いて、最適状態の確率値(最適状態確率値)を、すべて算出する。
(ステップS706)評定値算出手段10713は、ステップS705で算出した1以上の最適状態確率値から、1以上のフレームの音声の評定値を算出する。
(ステップS707)評定値算出手段10713は、ステップS706で算出した評定値を一時蓄積する。
(ステップS708)評定値算出手段10713は、カウンタiを1、インクリメントする。ステップS702に戻る。
なお、図7のフローチャートにおいて、最適状態の決定から評定値の算出・蓄積の処理を音素ごとに行った。しかし、音素の発音の評定を行うために、音素ごとに上記処理を行うことは必須ではない。例えば、受け付けたすべての音声に対して、最適状態の決定から評定値の算出・蓄積の処理を順に行っても良い。また、その他の処理手順でも良い。
次に、歌声評定装置の出力処理の動作について図8のフローチャートを用いて説明する。
(ステップS801)出力部108は、格納している楽譜情報の中の対象区間の楽譜情報を読み出す。
(ステップS802)出力部108は、ステップS801で読み出した楽譜情報を出力する。
(ステップS803)出力部108は、教師周波数情報取得部104が取得した、対象区間の教師周波数情報を出力する。
(ステップS804)出力部108は、歌声周波数情報取得部105が取得した、対象区間の歌声周波数情報を出力する。
(ステップS805)出力部108は、カウンタiに1を代入する。
(ステップS806)出力部108は、i番目の音素が存在するか否かを判断する。i番目の音素が存在すればステップS807に行き、i番目の音素が存在しなければステップS810に行く。
(ステップS807)出力部108は、教師データに対応するi番目の音素を出力する。
(ステップS808)出力部108は、歌声に対応するi番目の正解の音素を出力する。
(ステップS809)出力部108は、カウンタiを1、インクリメントする。ステップS806に戻る。
(ステップS810)出力部108は、周波数ずれの出力処理を行う。周波数ずれの出力処理について、図9のフローチャートを用いて説明する。
(ステップS811)出力部108は、周波数の時間ずれの出力処理を行う。周波数の時間ずれの出力処理について、図10のフローチャートを用いて説明する。
(ステップS812)出力部108は、音素の時間ずれの出力処理を行う。音素の時間ずれの出力処理について、図11のフローチャートを用いて説明する。
(ステップS813)出力部108は、音素の発音誤りの出力処理を行う。発音誤りの出力処理について、図12のフローチャートを用いて説明する。上位関数にリターンする。
次に、歌声評定装置の周波数ずれの出力処理の動作について図9のフローチャートを用いて説明する。
(ステップS901)矯正出力判断手段1081は、カウンタiに1を代入する。
(ステップS902)矯正出力判断手段1081は、i番目の距離のデータ(一時格納されている距離データ)が存在するか否かを判断する。i番目の距離のデータが存在すればステップS903に行き、i番目の距離のデータが存在しなければ上位関数にリターンする。
(ステップS903)矯正出力判断手段1081は、i番目の距離のデータが示す距離が、所定の距離(矯正を促すべき限界の距離)より大きいか否かを判断する。大きければステップS904に行き、大きくなければステップS907に行く。なお、i番目の距離のデータが示す距離が、所定の距離より大きい場合には、以下に示す処理により、周波数のずれの矯正を促す(または、注意を促す)ような表示を行う。
(ステップS904)矯正情報出力手段1082は、出力する図柄を構成する。なお、図柄とは、絵や文字や記号等で構成されており、表示されるものであれば、どのようなものでも良い。矯正情報出力手段1082は、ユーザに周波数ずれを示すような図柄を構成する。
(ステップS905)矯正情報出力手段1082は、ステップS904で構成した図柄の出力位置を決定する。出力位置は、周波数ずれが生じている箇所が分かるような位置である。つまり、i番目のデータに対応するフレームの箇所が分かる位置に、出力位置が決定される。
(ステップS906)矯正情報出力手段1082は、ステップS904で構成した図柄を、ステップS905で決定した出力位置に出力する。
(ステップS907)矯正情報出力手段1082は、カウンタiを1、インクリメントする。
次に、歌声評定装置の周波数時間ずれの出力処理動作について図10のフローチャートを用いて説明する。
(ステップS1001)矯正出力判断手段1081は、カウンタiに1を代入する。
(ステップS1002)矯正出力判断手段1081は、i番目の距離のデータ(一時格納されている距離データ)が存在するか否かを判断する。i番目の距離のデータが存在すればステップS1003に行き、i番目の距離のデータが存在しなければ上位関数にリターンする。
(ステップS1003)矯正出力判断手段1081は、i番目の距離のデータが示す距離が、所定の距離(矯正を促すべき限界の距離)より大きいか否かを判断する。大きければステップS1004に行き、大きくなければステップS1007に行く。なお、i番目の距離のデータが示す距離が、所定の距離より大きい場合には、以下に示す処理により、周波数の時間ずれの矯正を促す(または、注意を促す)ような表示を行う。
(ステップS1004)矯正情報出力手段1082は、出力する図柄を構成する。なお、図柄とは、絵や文字や記号等で構成されており、表示されるものであれば、どのようなものでも良い。矯正情報出力手段1082は、ユーザに周波数の時間ずれを示すような図柄を構成する。
(ステップS1005)矯正情報出力手段1082は、ステップS1004で構成した図柄の出力位置を決定する。出力位置は、周波数の時間ずれが生じている箇所が分かるような位置である。つまり、i番目のデータに対応するフレームの箇所が分かる位置に、出力位置が決定される。
(ステップS1006)矯正情報出力手段1082は、ステップS1004で構成した図柄を、ステップS1005で決定した出力位置に出力する。
(ステップS1007)矯正情報出力手段1082は、カウンタiを1、インクリメントする。ステップS1002に戻る。
次に、歌声評定装置の音素の時間ずれ出力動作について図11のフローチャートを用いて説明する。
(ステップS1101)矯正出力判断手段1081は、カウンタiに1を代入する。
(ステップS1102)矯正出力判断手段1081は、i番目の差のデータ(一時格納されている差のデータ)が存在するか否かを判断する。i番目の差のデータが存在すればステップS1103に行き、i番目の差のデータが存在しなければ上位関数にリターンする。
(ステップS1103)矯正出力判断手段1081は、i番目の差が、所定の差(矯正を促すべき限界の差)より大きいか否かを判断する。大きければステップS1104に行き、大きくなければステップS1107に行く。なお、i番目の差が、所定の差より大きい場合には、以下に示す処理により、音素の時間ずれの矯正を促す(または、注意を促す)ような表示を行う。
(ステップS1104)矯正情報出力手段1082は、出力する図柄を構成する。なお、図柄とは、絵や文字や記号等で構成されており、表示されるものであれば、どのようなものでも良い。矯正情報出力手段1082は、ユーザに音素の時間ずれを示すような図柄を構成する。
(ステップS1105)矯正情報出力手段1082は、ステップS1104で構成した図柄の出力位置を決定する。出力位置は、音素の時間ずれが生じている箇所が分かるような位置である。つまり、i番目の音素に対応するフレームの箇所が分かる位置に、出力位置が決定される。
(ステップS1106)矯正情報出力手段1082は、ステップS1104で構成した図柄を、ステップS1105で決定した出力位置に出力する。
(ステップS1107)矯正情報出力手段1082は、カウンタiを1、インクリメントする。ステップS1102に戻る。
次に、歌声評定装置の発音誤りの出力処理動作について図12のフローチャートを用いて説明する。
(ステップS1201)矯正出力判断手段1081は、カウンタiに1を代入する。
(ステップS1202)矯正出力判断手段1081は、発音の良し悪しの評定値の中に、i番目の評定値が存在するか否かを判断する。i番目の評定値が存在すればステップS1203に行き、i番目の評定値が存在しなければ上位関数にリターンする。
(ステップS1203)矯正出力判断手段1081は、i番目の評定値が、所定の値より小さいか否かを判断する。小さければステップS1204に行き、小さくなければステップS1208に行く。なお、i番目の評定値が、所定の値より小さくない場合には、以下に示す処理により、矯正を促す(または、注意を促す)ような表示を行う。
(ステップS1204)矯正情報出力手段1082は、学習者が発音した音素を取得する。
(ステップS1205)矯正情報出力手段1082は、ステップS1204で取得した音素の情報を用いて、出力する図柄を構成する。なお、図柄とは、絵や文字や記号等で構成されており、表示されるものであれば、どのようなものでも良い。矯正情報出力手段1082は、ユーザに発音誤りを示すような図柄を構成する。
(ステップS1206)矯正情報出力手段1082は、ステップS1205で構成した図柄の出力位置を決定する。出力位置は、発音誤りが生じている箇所が分かるような位置である。つまり、i番目のデータに対応する音素の箇所が分かる位置に、出力位置が決定される。
(ステップS1207)矯正情報出力手段1082は、ステップS1205で構成した図柄を、ステップS1206で決定した出力位置に出力する。
(ステップS1208)矯正情報出力手段1082は、カウンタiを1、インクリメントする。ステップS1202に戻る。
以下、本実施の形態における歌声評定装置の具体的な動作について説明する。まず、本歌声評定装置の具体的な動作の概念について説明する。本歌声評定装置は、学習者が発声した歌詞を伴う楽曲の歌声を、教師が発声した歌声と比較し、音程、リズム、歌詞の発音に着目して評定し、学習者が矯正すべき箇所をわかりやすく可視化して出力し、かつ、学習者の歌声のスコアを出力する装置である。
本歌声評定装置の処理の流れの例の概要を、図13に示す。なお、図13は、図2から図12を用いて説明した歌声評定装置の動作の概念を簡単に示す図である。まず、学習者の音声(1301)が入力される。そして、学習者の音声の周波数パターン(F0パターン)を検出する(1302)。次に、学習者の音声の音素を同定し、音素情報を取得する(1303)。そして、教師音声として、教師の周波数パターン(F0パターン)と音素情報が格納されている(1304)。そして、学習者のF0パターンと教師のF0パターンを照合する。また、学習者の音素情報と教師の音素情報を照合する。
そして、F0のずれを検出し、その結果を可視化する(1305)。また、F0の時間のずれを検出し、その結果を可視化する(1306)。また、音素の時間のずれを検出し、可視化する(1307)。さらに、音素の発音誤りを検出し、その結果を可視化する(1308)。次に、F0のずれから音程の正確さをスコアで算出する(1309)。また、F0の時間のずれまたは/および音素の時間のずれからリズムの正確さをスコアで算出する(1310)。さらに、音素の発音誤りから発音の正確さをスコアで算出する(1311)。次に、音程のスコア、リズムのスコア、発音のスコアから学習者の歌声に対するスコアを算出する(1312)。さらに、F0のずれ、F0の時間のずれ、音素の時間のずれ、音素の発音誤りから矯正すべきポイントを表示する(1313)。
次に、本歌声評定装置が周波数のずれを評定することにより、音程の正確さを評価する具体例について説明する。まず、歌声評定装置の教師周波数情報取得部104は、評定の対象の歌声に対応する教師データを決定する。ここで、教師周波数情報取得部104は、歌声受付部103が受け付けた学習者の歌声に対応する教師データの区間を決定する。そして、教師周波数情報取得部104は、当該区間の教師周波数情報を取得する。かかる取得した教師周波数情報をグラフで示した図が、図14(a)である。なお、図14(a)において、教師周波数情報取得部104は、無声部分の補間も行う、とする。次に、歌声周波数情報取得部105は、歌声受付部103が受け付けた歌声から、周波数に関する情報である歌声周波数情報を取得する。かかる歌声周波数情報をグラフで示した図が、図14(b)である。次に、図14(b)の歌声周波数情報を、教師周波数情報の時間長に正規化する。そして、正規化して時間長が合致した教師周波数情報と歌声周波数情報を重ねたグラフが図14(c)である。次に、周波数差算出手段10731は、フレームごとに、教師周波数情報の中の各フレームに対応する周波数と、歌声の中の各フレームに対応する周波数を取得し、両周波数の差(距離)を算出する。そして、周波数近似度評定手段10732は、周波数差算出手段10731が算出したフレーム毎の両周波数の差(距離)の平均値を算出する。次に、周波数近似度評定手段10732は、関数f1(平均値)により、0から100までのスコアの値に換算する。なお、関数f1は問わない。また、スコア算定のパラメータとして平均値を用いたが、他の演算式により音程の正確さを評定しても良い。つまり、音程の正確さを評定するために、両周波数に基づいていれば良い。出力部108は、対象区間の音程の正確さのスコアを出力する。例えば、出力部108は、図14(d)に示すような音程の正確さのスコアを出力する。
次に、本歌声評定装置が周波数の時間のずれを評定することにより、リズムの正確さを評価する具体例について説明する。
まず、周波数評定手段1073は、教師データの評定対象区間のうちの有声の区間の、フレーム毎の周波数の値の対数を算出する。そして、教師データの周波数の値の対数の平均値(平均対数F0という。)を算出する。次に、周波数評定手段1073は、歌声の評定対象区間の平均対数F0を算出する。そして、両方の平均対数F0が同じ値になるように、学習者の歌声の平均対数F0を正規化する。なお、教師データのF0パターンと、正規化後の歌声のF0パターンを重ねた図を図15に示す。次に、周波数評定手段1073は、フレームごとに、両周波数の差(距離)を算出する。なお、周波数評定手段1073は、教師データと歌声のどちらか一方が有声で、他方が無声であるフレームについては、差が大きくなるように差を算出する。つまり、図5のフローチャートにおいて、「X1」「X2」は、通常のずれよりも大きな値を設定しておくことが好適である。そして、周波数評定手段1073は、評定対象区間の差の平均値を取得する。次に、関数f2(平均値)により、0から100までのスコアの値に換算する。なお、関数f2は問わない。そして、例えば、周波数評定手段1073は、スコア「72点」を得る、とする。そして、出力部108は、当該スコア「72点」を出力する。
次に、本歌声評定装置が音素の時間のずれを評定することにより、リズムの正確さを評価する具体例について説明する。
まず、タイミング評定手段1072は、教師データの評定対象区間の全音素の開始時点を取得する。次に、タイミング評定手段1072は、評定対象区間の歌声の全音素の開始時点を取得する。そして、タイミング評定手段1072は、音素ごとの開始時点のずれを算出する。かかるデータを図16に表で示す。図16において、音素は「a」「i」「g」[a]「t」・・・である。そして、タイミング評定手段1072は、図16の「位置のずれ」の値の平均値を算出する。ここで、平均値は「約5.7」である。そして、タイミング評定手段1072は、関数f3(平均値)により、0から100までのスコアの値に換算する。なお、関数f3は問わない。そして、例えば、タイミング評定手段1072は、スコア「84点」を得る、とする。そして、出力部108は、当該スコア「84点」を出力する。
次に、周波数の時間のずれ、および音素の時間のずれの両方が、リズムの正確さに影響する。したがって、評定部107は、周波数の時間のずれ、および音素の時間のずれの両方の評定結果を用いて、リズムの正確さを評定することは好適である。具体的には、評定部107は、周波数の時間のずれに基づくリズムの正確さの評定結果「72点」と音素の時間のずれに基づくリズムの正確さの評定結果「84点」の平均値「78点」を求める。そして、出力部108は、当該スコア「78点」を出力する。
次に、発音評定手段1071が発音の正確さを評定する処理の具体例について説明する。
まず、教師データとして、教師の発声の音韻HMMを学習しておく、とする。ここで、音韻の種類数をLとし、l番目の音韻に対するHMMをλlとする。なお、かかる学習の処理については、公知技術であるので、詳細な説明は省略する。なお、HMMの仕様の例について、図17に示す。なお、HMMの仕様は、他の実施の形態における具体例の説明においても同様である。ただし、HMMの仕様が、他の仕様でも良いことは言うまでもない。
そして、学習したL種類の音韻HMMから、学習対象の単語や文章などの音声を構成する1以上の音素に対応するHMMを取得し、当該取得した1以上のHMMを、音素の順序で連結した教師データを構成する。そして、当該教師データを教師データ格納部101に保持しておく。ここでは、例えば、比較される対象の音声は、単語「right」の音声である。
次に、学習者は、学習対象の歌声「right」を発音する。そして、歌声受付部103は、学習者が発音した音声の入力を受け付ける。
次に、音素情報抽出部106は、歌声受付部103が受け付けた音声から音素を取得する。つまり、最適状態決定手段1061は、歌声受付部103が受け付けた音声の各フレームの最適状態を決定し、音素情報取得手段1062は、当該最適状態に対応する音素を取得する。
次に、評定部107は、歌声受付部103が受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得る。なお、フレームの間隔は、予め決められている、とする。
そして、最適状態決定手段10711は、区分した音声データを、スペクトル分析し、特徴ベクトル系列「O=o1,o2,・・・,oT」を算出する。なお、Tは、系列長である。ここで、特徴ベクトル系列は、各フレームの特徴ベクトルの集合である。また、特徴ベクトルは、例えば、三角型フィルタを用いたチャネル数24のフィルタバンク出力を離散コサイン変換したMFCCであり、その静的パラメータ、デルタパラメータおよびデルタデルタパラメータをそれぞれ12次元、さらに正規化されたパワーとデルタパワーおよびデルタデルタパワー(39次元)を有する。また、スペクトル分析において、ケプストラム平均除去を施すことは好適である。なお、音声分析条件を図18の表に示す。なお、音声分析条件は、他の実施の形態における具体例の説明においても同様である。ただし、音声分析条件が、他の条件でも良いことは言うまでもない。
次に、最適状態決定手段10711は、取得した特徴ベクトル系列を構成する各特徴ベクトルotに基づいて、所定のフレームの最適状態(特徴ベクトルotに対する最適状態)を決定する。最適状態決定手段10711が最適状態を決定するアルゴリズムは、例えば、Viterbiアルゴリズムによる。かかる場合、最適状態決定手段10711は、上記で連結したHMMを用いて最適状態を決定する。最適状態決定手段10711は、2以上のフレームの最適状態である最適状態系列を求めることとなる。
次に、最適状態確率値取得手段10712は、以下の数式1により、最適状態における最適状態確率値(γ
t(q
t *))を算出する。なお、γ
t(q
t *)は、状態jの事後確率関数γ
t(j)のjにq
t *を代入した値である。そして、状態jの事後確率関数γ
t(j)は、数式2を用いて算出される。この確率値(γ
t(j))は、t番目の特徴ベクトルo
tが状態jから生成された事後確率であり、動的計画法を用いて算出される。なお、jは、状態を識別する状態識別子である。
数式1において、q
tは、o
tに対する状態識別子を表す。この確率値(γ
t(j))は、HMMの最尤推定におけるBaum−Welchアルゴリズムの中で表れる占有度数に対応する。
数式2は、数式1を変形したものである。
数式2において、「αt(j)」「βt(j)」は、全部のHMMを用いて、forward−backwardアルゴリズムにより算出される。「αt(j)」は前向き尤度、「βt(j)」は後向き尤度である。Baum−Welchアルゴリズム、forward−backwardアルゴリズムは、公知のアルゴリズムであるので、詳細な説明は省略する。
また、数式2において、Nは、全HMMに渡る状態の総数を示す。
なお、発音評定手段1071は、まず最適状態を求め、次に、最適状態の確率値(なお、確率値は、0以上、1以下である。)を求めても良いし、発音評定手段1071は、まず、全状態の確率値を求め、その後、特徴ベクトル系列の各特徴ベクトルに対する最適状態を求め、当該最適状態に対応する確率値を求めても良い。
次に、評定値算出手段10713は、例えば、上記の取得した最適状態確率値と、当該最適状態確率値に対応するフレームの全状態における確率値の総和をパラメータとして音声の評定値を算出する。かかる場合、もし学習者のtフレーム目に対応する発声が、教師データが示す発音に近ければ、数式2の(2)式の分子の値が、他の全ての可能な音韻の全ての状態と比較して大きくなり、結果的に最適状態の確率値(評定値)が大きくなる。逆にその区間が、教師データが示す発音に近くなければ、評定値は小さくなる。なお、どの教師データの発音にも近くないような場合は、評定値はほぼ1/Nに等しくなる。Nは全ての音韻HMMにおける全ての状態の数であるから、通常、大きな値となり、この評定値は十分小さくなる。また、ここでは、評定値は最適状態における確率値と全ての可能な状態における確率値との比率で定義されている。したがって、話者性や収音環境の違いにより多少のスペクトルの変動があったとしても、学習者が正しい発音をしていれば、その変動が相殺され評定値が高いスコアを維持する。よって、評定値算出手段10713は、最適状態確率値取得手段10712が取得した確率値と、当該確率値に対応するフレームの全状態における確率値の総和をパラメータとして音声の評定値を算出することは、極めて好適である。
かかる評定値算出手段10713が算出した評定値(「DAPスコア」とも言う。)を、図19、図20に示す。図19、図20において、横軸は分析フレーム番号、縦軸はスコアを%で表わしたものである。太い破線は音素境界,細い点線は状態境界(いずれもViterbiアルゴリズムで求まったもの)を表わしており,図の上部に音素名を表記している。図19は、アメリカ人男性による英語の歌に含まれる「right」の発音のDAPスコアを示す。なお、評定値を示すグラフの横軸、縦軸は、後述するグラフにおいても同様である。
図20は、日本人男性による英語の歌に含まれる「right」の発音のDAPスコアを示す。アメリカ人の発音は、日本人の発音と比較して、基本的にスコアが高い。また、図19において、状態の境界において所々スコアが落ち込んでいることがわかる。
そして、出力部108は、評定部106の評定結果を出力する。具体的には、例えば、出力部108は、図21に示すような態様で、評定結果を出力する。つまり、出力部108は、各フレームにおける発音の良さを表すスコア(スコアグラフ)として、各フレームの評定値を表示する。その他、出力部108は、学習対象の単語の表示(単語表示)、音素要素の表示(音素表示)、教師データの波形の表示(教師波形)、学習者の入力した発音の波形の表示(ユーザ波形)を表示しても良い。なお、図21において、「録音」ボタンを押下すれば、動作開始指示が入力されることとなり、「停止」ボタンを押下すれば、終了指示が入力されることとなる。なお、本歌声評定装置は、学習対象の単語(図21の「word1」など)や、音素(図21の「p1」など)や、教師波形を出力されるためのデータを予め格納している、とする。
また、図21において、フレーム単位以外に、音素単位、単語単位、発声全体の評定結果を表示しても良い。上記の処理において、フレーム単位の評定値を算出するので、単語単位、発声全体の評定結果を得るためには、フレーム単位の1以上の評定値をパラメータとして、単語単位、発声全体の評定値を算出する必要がある。かかる算出式は問わないが、例えば、単語を構成するフレーム単位の1以上の評定値の平均値を単語単位の評定値とする、ことが考えられる。
また、出力部108の表示は、図22に示すような態様でも良い。図22において、音素ごとのスコア、単語のスコア、総合スコアが、数字で表示されている。
また、評定値算出手段10713が算出したDAPスコアの他の例を図23に示す。図23(a)は、音素「a」「i」「g」「a」「t」・・・のDAPスコアの出力結果の例である。そして、評定値算出手段10713は、図23(b)に示すように、音素ごとの発音の良し悪しをスコアで算出しても良い。また、評定値算出手段10713は、音素ごとのスコアの平均値をかかる区間のスコアとして算出しても良い(図23(c)参照)。
以上の処理により、歌声評定装置は、音程の正確さ、リズムの正確さ、発音の正確さを評定できた。なお、上記で所定の区間のみの歌声の評定であったが、曲全体の評定は、上記処理の繰り返しにより可能であるので、詳細な説明は省略する。また、曲全体の評定結果は、例えば、区間の評定結果の平均値として算出することができる。
また、音程の正確さ、リズムの正確さ、発音の正確さの各パラメータに対して、重み付けして、学習者の歌声に対するスコアを算出し、出力することは好適である。かかる演算の概念を図24に示す。つまり、歌声評定装置は、音程の正確さ、リズムの正確さ、発音の正確さの各スコア「65点」「78点」「58点」を算出し、かかる3つの点数に基づいて、総合点「67点」を算出する。なお、総合点「67点」は、3つの点数の平均値であるが、音程の正確さ、リズムの正確さ、発音の正確さの各スコアを重み付けして、総合点を算出しても良いことは言うまでもない。
次に、歌声評定装置の出力処理の例について説明する。図25は、歌声評定装置の出力例を示す図である。歌声評定装置の出力部108は、まず、予め格納している楽譜情報を読み出して、楽譜(2501)を出力する。つまり、学習者は、楽譜を見ながら、また、図示しない手段により出力されている楽曲を聴きながら、歌を歌うのである。
また、出力部108は、教師周波数情報取得部104が取得した教師周波数情報に基づいて教師データの基本周波数のF0パターン(2502)を出力する。また、出力部108は、歌声受付部103が受け付け、歌声周波数情報取得部105が取得した学習者の歌声の基本周波数のF0パターン(2503)を出力する。
そして、出力部108は、教師データの基本周波数のF0パターンと、学習者の歌声の基本周波数のF0パターンを重ね合わせて、出力する。かかる出力例が2504である。そして、重ね合わせたグラフの上に、基本周波数のずれが、所定のずれ以上生じている箇所を視覚的に明示する態様で出力する。つまり、矯正出力判断手段1081が、予め決められた値以上の周波数の差があると判断する箇所を検出する。次に、矯正情報出力手段1082が当該箇所に対応する学習者のF0パターンのグラフの上に、網掛けの長方形を重ねて出力する(図25の2505、2506等を参照)。なお、この網掛けの長方形は、上述した図柄であり、周波数の矯正を促すための図柄に該当する。
また、矯正出力判断手段1081は、両者の基本周波数の時間のずれが、予め決められ差以上の差が存在する箇所を検出する。そして、矯正情報出力手段1082が当該箇所に対応する学習者のF0パターンのグラフの上に、網掛けの長方形を重ねて出力する(図25の2507を参照)。なお、図25において、基本周波数のずれと、基本周波数の時間のずれを同じ表示態様で示したが、異なる表示態様でも良い。また、基本周波数のずれと、基本周波数の時間のずれの両方の値をパラメータとして、一の値を算出し、当該一の値が所定以上のずれを生じている値であると判断した場合に、図25の2506等に示すような表示を行っても良い。なお、この網掛けの長方形は、上述した図柄であり、周波数の時間ずれの矯正を促すための図柄に該当する
また、矯正出力判断手段1081は、音素の時間のずれが所定以上のずれの箇所を検出する。例えば、図16の表において、矯正出力判断手段1081は、教師データの音素の開始位置と、歌声から抽出される音素の開始位置のずれが、「10」フレーム以上である音素を検出する。そして、矯正出力判断手段1081は、音素「m」について、音素の時間のずれが所定以上であると検出する。そして、矯正情報出力手段108は、出力する図柄を構成する。つまり、矯正情報出力手段108は、ここでは、音素「m」を、予め決められた形状「丸」の中に入れ、丸を網掛けにした図柄を構成する。そして、矯正情報出力手段1082は、学習者が音素「m」を発声した開始位置あたりの位置の情報を取得する。次に、矯正情報出力手段1082は、かかる取得した位置の情報が示す位置に、構成した図柄を出力する。この出力された図柄は、図25の2508である。なお、所定の差(矯正を促すべき限界の差)は「10」フレームであったが、「10」フレーム以外でも良いことは言うまでもない。
さらに、矯正出力判断手段1081は、音素の発音誤りの度合いが所定以上である音素を検出する。例えば、ここでは、矯正出力判断手段1081は、音素のDAPスコアが「50」以下の音素を抽出する。ここでは、矯正出力判断手段1081は、図23(b)の表より、「a」「r」等を抽出する。次に、矯正情報出力手段1082は、出力する図柄を構成する。具体的には、例えば、矯正情報出力手段1082は、学習者が発声した音素に近い音素「o」を取得する(つまり、学習者は「aigat」の2つめの「a」は、「a」ではなく、「o」に近い発音をした)。なお、学習者が発声した音素を決定する処理は公知技術であるので、ここでの詳細な説明は省略する。次に、矯正情報出力手段1082は、予め決められた形状(正方形)の中に、音素「o」を入れた図柄を構成する。次に、矯正情報出力手段1082は、学習者が「o」を発音した位置の情報を取得する。次に、矯正情報出力手段1082は、構成した図柄を、取得した位置の情報が示す位置に出力する。かかる出力例が、2509、2510等である。2510において、学習者は音素「r」を、音素「l」と発音したことを示す。
なお、図25の2509、2510は、音素の置換が発生したことを示す。また、図25において2511は音素の挿入が発生したことを示す。かかる音素の置換、挿入、その他、音素の欠落などの発生の検知処理は、実施の形態5以降で説明している。
また、出力部108の歌声評定の出力態様は、図25に限られないことは言うまでもない。
以上、本実施の形態によれば、発音の良し悪しを考慮した歌声の評価ができる。したがって、特に、外国語の歌を練習する場合に、極めて有効である。
また、本実施の形態における歌声の評定における発音の評定に関して、連結されたHMMである連結HMMを用いて最適状態を求め、評定値を算出するので、高速に評定値を求めることができる。したがって、リアルタイムに、フレームごと、音素ごと、単語ごとの評定値を出力できる。また、本実施の形態によれば、発音の評定に関して、動的計画法に基づいた事後確率を確率値として算出するので、さらに高速に評定値を求めることができる。また、本実施の形態によれば、発音の評定に関して、フレームごとに確率値を算出するので、上述したように、フレーム単位だけではなく、または/および音素・単語単位、または/および発声全体の評定結果を出力でき、出力態様の自由度が高い。
なお、本実施の形態によれば、出力部108の出力態様において、基本周波数のずれ、基本周波数の時間のずれ、音素の時間のずれ、発音誤りの4種類の矯正箇所の出力の例を示したが、必ずしも4種類の矯正箇所を出力する必要はない。また、本実施の形態において、フレームごと、音素ごと、小節等の所定単位で、スコアを表示することは好適である。さらに、本実施の形態において、歌声の総合点を表示することは好適である。
また、本実施の形態の具体例において、各フレームの最適状態を二度、取得したが、重複する処理の行わないようなアルゴリズムで歌声を評定しても良いことは言うまでもない。かかることは、他の実施の形態においても同様である。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、歌詞を伴う歌声を受け付ける歌声受付ステップと、前記歌声受付ステップで受け付けた歌声から音素に関する情報である音素情報を抽出する音素情報抽出ステップと、前記音素情報抽出ステップで抽出した音素情報と教師データに基づいて、前記歌声の評定をする評定ステップと、前記評定ステップにおける評定結果を出力する出力ステップを実行させるためのプログラム、である。
また、上記プログラムにおいて、前記評定ステップにおいて、歌声受付ステップで受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得て、前記教師データと前記1以上のフレーム音声データに基づいて、前記歌声受付ステップで受け付けた歌声の評定を行う発音評定ステップを具備しても良い。
また、上記プログラムにおいて、前記発音評定ステップは、前記1以上のフレーム音声データのうちの少なくとも一のフレーム音声データに対する最適状態を決定する最適状態決定ステップと、前記最適状態決定ステップで決定した最適状態における確率値を取得する最適状態確率値取得ステップと、前記最適状態確率値取得ステップで取得した確率値をパラメータとして音声の評定値を算出する評定値算出ステップを具備しても良い。
また、上記プログラムにおいて、前記評定ステップは、前記音素情報抽出ステップで抽出した音素情報に対応する音素が出力されたタイミングと、前記教師データを構成する音素の出力タイミングに基づいて、音素の出力タイミングを評定するタイミング評定ステップを具備しても良い。
また、上記プログラムにおいて、コンピュータに、前記教師データの周波数に関する情報である教師周波数情報を取得する教師周波数情報取得ステップと、前記歌声受付ステップで受け付けた歌声から、周波数に関する情報である歌声周波数情報を取得する歌声周波数情報取得ステップをさらに実行させ、前記評定ステップは、前記教師周波数情報と前記歌声周波数情報に基づいて、前記歌声の評定をする周波数評定ステップを具備しても良い。
また、上記プログラムにおいて、前記周波数評定ステップは、所定の時点における周波数の差であって、前記教師周波数情報が示す周波数と前記歌声周波数情報が示す周波数の差を算出する周波数差算出ステップと、前記周波数差算出ステップで算出した1以上の周波数の差に基づいて、前記歌声の評定をする周波数近似度評定ステップを具備しても良い。
また、上記プログラムにおいて、前記周波数評定ステップは、前記教師周波数情報が示す周波数の変化が所定以上の変化をする時点を示す情報である教師リズム時点情報を取得する教師リズム変化時点情報取得ステップと、前記歌声周波数情報が示す周波数の変化が所定以上の変化をする時点を示す情報である歌声リズム時点情報を取得する歌声リズム変化時点情報取得ステップと、前記教師リズム時点情報と前記歌声リズム時点情報に基づいて、前記歌声の評定をするリズム評定ステップを具備しても良い。
また、上記プログラムにおいて、コンピュータに、前記教師データの周波数に関する情報である教師周波数情報を取得する教師周波数情報取得ステップと、前記歌声受付部が受け付けた歌声から、周波数に関する情報である歌声周波数情報を取得する歌声周波数情報取得ステップとをさらに実行させ、前記音素情報抽出ステップは、前記歌声受付部が受け付けた歌声を、フレームに区分するフレーム区分ステップと、前記区分されたフレーム毎の音声データであるフレーム音声データを1以上得るフレーム音声データ取得ステップを具備し、前記評定ステップは、前記教師データと前記1以上のフレーム音声データに基づいて、前記歌声受付部が受け付けた歌声の評定を行う発音評定ステップと、前記音素情報抽出部が抽出した音素情報に対応する音素が出力されたタイミングと、前記教師データを構成する音素の出力タイミングに基づいて、音素の出力タイミングを評定するタイミング評定ステップと、前記教師周波数情報と前記歌声周波数情報に基づいて、前記歌声の評定をする周波数評定ステップを具備しても良い。
また、上記プログラムにおいて、前記出力ステップにおいて、前記教師データのうちの所定の特徴量と、前記歌声受付ステップで受け付けた歌声のうちの所定の特徴量と、前記評定ステップにおける評定結果を出力しても良い。
また、上記プログラムにおいて、前記出力ステップにおいて、前記発音評定ステップの評定結果、または/および前記タイミング評定ステップの評定結果、または/および前記周波数評定ステップの評定結果を出力しても良い。
また、上記プログラムにおいて、前記出力ステップにおいて、前記評定ステップの評定結果が、基準情報に対して所定の関係にあるか否かを判断する矯正出力判断ステップと、前記矯正出力判断ステップにおいて、前記評定結果と前記基準情報が所定の関係にあると判断した場合に、当該判断の箇所に対応付けて、矯正を促す情報である矯正情報を出力する矯正情報出力ステップを具備しても良い。
(実施の形態2)
本実施の形態における歌声評定装置は、実施の形態1の歌声評定装置と比較して、評定部を構成する手段であって、発音の評定を行う発音評定手段における評定アルゴリズムが異なる。本実施の形態において、発音評定手段は、各フレームにおける、すべての音韻の中で最適な音韻の事後確率(確率値)を表すように算出される。本実施の形態における歌声評定装置が算出する事後確率を、実施の形態1におけるDAPに対してp−DAPと呼ぶ。
図26は、本実施の形態における歌声評定装置のブロック図である。本歌声評定装置は、教師データ格納部101、基準情報格納部102、歌声受付部103、教師周波数情報取得部104、歌声周波数情報取得部105、音素情報抽出部106、評定部2607、出力部108を具備する。
評定部2607は、発音評定手段26071、タイミング評定手段1072、周波数評定手段1073を具備する。
発音評定手段26071は、最適状態決定手段10711、音韻確率値取得手段260712、評定値算出手段260713を具備する。
音韻確率値取得手段260712は、最適状態決定手段10711が決定した最適状態を有する音韻全体の状態における1以上の確率値を取得する。ここで1以上の確率値とは、1つ以上の確率値の意味である。
評定値算出手段260713は、音韻確率値取得手段260712が取得した1以上の確率値をパラメータとして音声の評定値を算出する。評定値算出手段260713は、例えば、音韻確率値取得手段260712が取得した1以上の確率値の総和をパラメータとして音声の評定値を算出する。
音韻確率値取得手段260712、および評定値算出手段260713は、通常、MPUやメモリ等から実現され得る。音韻確率値取得手段260712等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、歌声評定装置の動作について説明する。なお、本歌声評定装置の動作は、実施の形態1における動作と比較して、音素の発音誤りの評定のアルゴリズムが異なるだけなので、かかる音素の発音誤りの評定処理のアルゴリズムについて、図27のフローチャートを用いて説明する。図27のフローチャートにおいて、図7のフローチャートと異なるステップについてのみ説明する。
(ステップS2701)音韻確率値取得手段260712は、全フレームの全状態の前向き尤度と後向き尤度を算出する。そして、全フレーム、全状態の確率値を得る。具体的には、音韻確率値取得手段260712は、例えば、各特徴ベクトルが対象の状態から生成された事後確率を算出する。この事後確率は、HMMの最尤推定におけるBaum−Welchアルゴリズムの中で現れる占有度数に対応する。Baum−Welchアルゴリズムは、公知のアルゴリズムであるので、説明は省略する。
(ステップS2702)音韻確率値取得手段260712は、全フレームの最適状態確率値を算出する。
(ステップS2703)音韻確率値取得手段260712は、カウンタjに1を代入する。
(ステップS2704)音韻確率値取得手段260712は、j番目の最適状態が存在するか否かを判断する。j番目の最適状態が存在すればステップS2705に行き、j番目の最適状態が存在しなければステップS2709に戻る。
(ステップS2705)音韻確率値取得手段260712は、j番目の最適状態を含む音韻全体の確率値をすべて取得する。
(ステップS2706)評定値算出手段260713は、ステップS2705で取得した1以上の確率値に基づいて、音声の評定値を算出する。評定値算出手段260713は、例えば、音韻確率値取得手段260712が取得した1以上の確率値の総和をパラメータとして音声の評定値を算出する。
(ステップS2707)評定値算出手段260713は、ステップS2706で算出した評定値を一時蓄積する。
(ステップS2708)音韻確率値取得手段260712は、カウンタjを1、インクリメントする。ステップS2704に戻る。
(ステップS2709)音韻確率値取得手段260712は、カウンタiを1、インクリメントする。ステップS702に戻る。
以下、本実施の形態における歌声評定装置の具体的な動作について説明する。本実施の形態において、発音の正確さを評定する評定値の算出アルゴリズムが実施の形態1とは異なるので、その動作を中心に説明する。
まず、学習者が、英語の歌を歌いだす。そして、例えば、歌の中に音声「right」があり、学習者は「right」を発音した、とする。そして、歌声受付部103は、学習者が発音した音声の入力を受け付ける。次に、音素情報抽出部106は、歌声受付部103が受け付けた音声から音素を取得する。つまり、最適状態決定手段1061は、歌声受付部103が受け付けた音声の各フレームの最適状態を決定し、音素情報取得手段1062は、当該最適状態に対応する音素を取得する。
次に、評定部107は、歌声受付部103が受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得る。そして、最適状態決定手段10711は、区分した音声データを、スペクトル分析し、特徴ベクトル系列「O=o1,o2,・・・,oT」を算出する。
次に、音韻確率値取得手段260712は、各フレームの各状態の事後確率(確率値)を算出する。確率値の算出は、上述した数式1、数式2により算出できる。
次に、最適状態決定手段10711は、取得した特徴ベクトル系列を構成する各特徴ベクトルotに基づいて、各フレームの最適状態(特徴ベクトルotに対する最適状態)を決定する。つまり、最適状態決定手段10711は、最適状態系列を得る。
次に、音韻確率値取得手段260712は、フレーム毎に、当該フレームに対応する最適状態を含む音韻全体の確率値をすべて取得する。そして、評定値算出手段260713は、上記取得した1以上の確率値に基づいて、音声の評定値を算出する。具体的には、評定値算出手段260713は、数式3により評定値を算出する。
なお、数式3において、P(i)は、i番目の状態を有しているHMMの持つ全状態の集合を示す。
かかる評定値算出手段260713が算出した評定値(「p−DAPスコア」とも言う。)を、図28、図29に示す。図28は、アメリカ人男性による英語「right」の発音のp−DAPスコアを示す。図29は、日本人男性による英語「right」の発音のp−DAPスコアを示す。アメリカ人の発音は、日本人の発音と比較して、基本的にスコアが高い。また、図28において、音素境界でスコアの落ち込みがあるものの、p−DAPは本来発音の良好なアメリカ人発音に対して,高いスコアをDAPより安定して出力していることがわかる。かかる判断は、図19のグラフと図28のグラフを比較して判断できる。また、図28において、音素/r/のスコアが低いが,この発音を聴いてみたところ/r/の発声が若干不明瞭であった。
そして、出力部108は、算出したフレームごとの発音の良し悪しを示す評定値を、順次出力しても良い。かかる出力例は、図21または図22である。なお、出力部108は、図28、図29のようなグラフを出力しても良いことは言うまでもない。
また、評定値算出手段260713が算出したp−DAPスコアの他の例を図30に示す。図30(a)は、音素「a」「i」「g」[a]「t」・・・のp−DAPスコアの出力結果の例である。そして、評定値算出手段260713は、図30(b)に示すように、音素ごとの発音の良し悪しをスコアで算出しても良い。また、評定値算出手段260713は、音素ごとのスコアの平均値をかかる区間のスコアとして算出しても良い(図30(c)参照)。
以上、本実施の形態によれば、発音の良し悪しを考慮した歌声の評価ができる。したがって、特に、外国語の歌を練習する場合に、極めて有効である。
また、本実施の形態における歌声の評定における発音評定に関して、連結されたHMMである連結HMMを用いて最適状態を求め、評定値を算出するので、高速に評定値を求めることができる。したがって、リアルタイムに、フレームごと、音素ごと、単語ごとの評定値を出力できる。また、本実施の形態によれば、発音の評定に関して、動的計画法に基づいた事後確率を確率値として算出するので、さらに高速に評定値を求めることができる。また、本実施の形態によれば、発音の評定に関して、フレームごとに確率値を算出するので、上述したように、フレーム単位だけではなく、または/および音素・単語単位、または/および発声全体の評定結果を出力でき、出力態様の自由度が高い。
また、本実施の形態によれば、歌声の評定における発音評定の評定値を、各フレームにおいて、すべての音韻の中で最適な音韻の事後確率(確率値)を表しており、実施の形態1におけるような状態単位のDAPと比較して、本来、測定したい類似度を精度良く、安定して求めることができる。つまり、実施の形態1において、DAPは、全ての可能な状態に対する最適状態の事後確率を計算する。そして、総状態数Nは、通常、非常に大きくなり、入力音声によっては、評定値(DAPのスコア)が大きく低下する。つまり、例えば、あるフレームが存在する音韻内の2つの状態の過渡部にそのフレームが対応してしまえば、評定値が小さくなる。一方、音素に対する類似性を求める本実施の形態によれば、教師データの音韻との類似度(状態との類似度ではない)を測ることができ、好適である。
さらに、本実施の形態における歌声評定装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、歌詞を伴う歌声を受け付ける歌声受付ステップと、前記歌声受付ステップで受け付けた歌声から音素に関する情報である音素情報を抽出する音素情報抽出ステップと、前記音素情報抽出ステップで抽出した音素情報と教師データに基づいて、前記歌声の評定をする評定ステップと、前記評定ステップにおける評定結果を出力する出力ステップを実行させるためのプログラム、である。
また、上記プログラムにおいて、前記評定ステップにおいて、歌声受付ステップで受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得て、前記教師データと前記1以上のフレーム音声データに基づいて、前記歌声受付ステップで受け付けた歌声の評定を行う発音評定ステップを具備しても良い。
また、上記プログラムにおいて、前記発音評定ステップは、前記1以上のフレーム音声データのうちの少なくとも一の最適状態を決定する最適状態決定ステップと、前記最適状態決定ステップで決定した最適状態を有する音韻全体の状態における1以上の確率値を取得する音韻確率値取得ステップと、前記音韻確率値取得ステップで取得した1以上の確率値をパラメータとして音声の評定値を算出する評定値算出ステップを具備しても良い。
(実施の形態3)
本実施の形態における歌声評定装置は、実施の形態1、2の歌声評定装置と比較して、評定部を構成する手段であって、発音の評定を行う発音評定手段における評定アルゴリズムが異なる。本実施の形態において、評定値は、発音区間ごとに算出される。本実施の形態における歌声評定装置が算出する事後確率を、実施の形態1におけるDAPに対してt−DAPと呼ぶ。
図31は、本実施の形態における歌声評定装置のブロック図である。本歌声評定装置は、教師データ格納部101、基準情報格納部102、歌声受付部103、教師周波数情報取得部104、歌声周波数情報取得部105、音素情報抽出部106、評定部3107、出力部108を具備する。
評定部3107は、発音評定手段31071、タイミング評定手段1072、周波数評定手段1073を具備する。
発音評定手段31071は、最適状態決定手段10711、発音区間確率値取得手段310712、評定値算出手段310713を具備する。
発音区間確率値取得手段310712は、最適状態決定手段10711が決定した最適状態の確率値を、発音区間毎に取得する。ここで、発音区間とは、音韻、音節、単語など、発音の一まとまりを構成する区間である。
評定値算出手段310713は、発音区間確率値取得手段310712が取得した1以上の発音区間毎の1以上の確率値をパラメータとして音声の評定値を算出する。評定値算出手段310713は、例えば、発音区間確率値取得手段310712が取得した各発音区間の1以上の確率値の時間平均値を、発音区間毎に算出し、1以上の時間平均値を得て、当該1以上の時間平均値をパラメータとして音声の評定値を算出する。
発音区間確率値取得手段310712、および評定値算出手段310713は、通常、MPUやメモリ等から実現され得る。発音区間確率値取得手段310712等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、歌声評定装置の動作について説明する。なお、本歌声評定装置の動作は、実施の形態1、2における動作と比較して、音素の発音誤りの評定のアルゴリズムが異なるだけである。かかる音素の発音誤りの評定処理のアルゴリズムについて、図32のフローチャートを用いて説明する。図32のフローチャートにおいて、図27のフローチャートと異なるステップについてのみ説明する。
(ステップS3201)発音区間確率値取得手段310712は、jに1を代入する。
(ステップS3202)発音区間確率値取得手段310712は、次の評定対象の発音区間である、j番目の発音区間が存在するか否かを判断する。j番目の発音区間が存在すればステップS3203に行き、j番目の発音区間が存在しなければステップS202に行く。
(ステップS3203)発音区間確率値取得手段310712は、j番目の発音区間に対応する1以上の最適状態の確率値をすべて取得する。
(ステップS3204)評定値算出手段310713は、ステップS3203で取得した1以上の発音区間毎の1以上の確率値をパラメータとして音声の評定値を算出する。例えば、ステップS3203で取得した1以上の確率値の平均値(時間平均値)を算出する。
(ステップS3205)評定値算出手段310713は、ステップS3204で算出した確率値の平均値(評定値)を一時蓄積する。
(ステップS3206)発音区間確率値取得手段310712は、カウンタjを1、インクリメントする。ステップS3202に戻る。
以下、本実施の形態における歌声評定装置の具体的な動作について説明する。本実施の形態において、発音の正確さを評定する評定値の算出アルゴリズムが実施の形態2とは異なるので、その動作を中心に説明する。
まず、学習者が、英語の歌を歌いだす。そして、例えば、歌の中に音声「right」があり、学習者は「right」を発音した、とする。そして、歌声受付部103は、学習者が発音した音声の入力を受け付ける。次に、音素情報抽出部106は、歌声受付部103が受け付けた音声から音素を取得する。つまり、最適状態決定手段1061は、歌声受付部103が受け付けた音声の各フレームの最適状態を決定し、音素情報取得手段1062は、当該最適状態に対応する音素を取得する。
次に、評定部107は、歌声受付部103が受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得る。そして、最適状態決定手段10711は、区分した音声データを、スペクトル分析し、特徴ベクトル系列「O=o1,o2,・・・,oT」を算出する。
次に、最適状態決定手段10711は、取得した特徴ベクトル系列を構成する各特徴ベクトルotに基づいて、各フレームの最適状態(特徴ベクトルotに対する最適状態)を決定する。つまり、最適状態決定手段10711は、最適状態系列を得る。
次に、発音区間確率値取得手段310712は、各フレームの各状態の事後確率(確率値)を算出する。なお、確率値の算出は、上述した数式1、数式2により算出できる。
そして、発音区間確率値取得手段310712は、発音区間に対応する1以上の最適状態の確率値をすべて取得する。そして、評定値算出手段310713は、取得した1以上の確率値の平均値(時間平均値)を算出する。具体的には、評定値算出手段310713は、数式4により評定値を算出する。
かかる評定値算出手段310713が算出した評定値(「t−DAPスコア」とも言う。)を、図33の表に示す。図33において、アメリカ人男性と日本人男性の評定結果を示す。PhonemeおよびWordは,t−DAPにおける時間平均の範囲を示す。図33において、アメリカ人男性の発音の評定値が日本人男性の発音の評定値より高く、良好な評定結果が得られている。
そして、出力部108は、算出した発音区間ごと(例えば、音素毎)の評定値を、順次出力する。かかる出力例は、図34である。
以上、本実施の形態によれば、発音の良し悪しを考慮した歌声の評価ができる。したがって、特に、外国語の歌を練習する場合に、極めて有効である。
また、本実施の形態における歌声の評定における発音評定に関して、連結されたHMMである連結HMMを用いて最適状態を求め、評定値を算出するので、高速に評定値を求めることができる。したがって、リアルタイムに、フレームごと、音素ごと、単語ごとの評定値を出力できる。また、本実施の形態によれば、発音の評定に関して、動的計画法に基づいた事後確率を確率値として算出するので、さらに高速に評定値を求めることができる。また、本実施の形態によれば、発音の評定に関して、フレームごとに確率値を算出するので、上述したように、フレーム単位だけではなく、または/および音素・単語単位、または/および発声全体の評定結果を出力でき、出力態様の自由度が高い。
また、本実施の形態によれば、評定値を、発音区間の単位で算出でき、実施の形態1におけるような状態単位のDAPと比較して、本来、測定したい類似度を精度良く、安定して求めることができる。
さらに、本実施の形態における歌声評定装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、歌詞を伴う歌声を受け付ける歌声受付ステップと、前記歌声受付ステップで受け付けた歌声から音素に関する情報である音素情報を抽出する音素情報抽出ステップと、前記音素情報抽出ステップで抽出した音素情報と教師データに基づいて、前記歌声の評定をする評定ステップと、前記評定ステップにおける評定結果を出力する出力ステップを実行させるためのプログラム、である。
また、上記プログラムの前記評定ステップにおいて、歌声受付ステップで受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得て、前記教師データと前記1以上のフレーム音声データに基づいて、前記歌声受付ステップで受け付けた歌声の評定を行う発音評定ステップを具備しても良い。
また、上記プログラムにおいて、前記発音評定ステップは、前記1以上のフレーム音声データの最適状態を決定する最適状態決定ステップと、前記最適状態決定ステップで決定した最適状態の確率値を、発音区間毎に取得する発音区間確率値取得ステップと、前記発音区間確率値取得ステップで取得した1以上の発音区間毎の1以上の確率値をパラメータとして音声の評定値を算出する評定値算出ステップを具備しても良い。
(実施の形態4)
本実施の形態における歌声評定装置は、実施の形態1、2、3の歌声評定装置と比較して、評定部を構成する手段であって、発音の評定を行う発音評定手段における評定アルゴリズムが異なる。本実施の形態において、評定値は、最適状態を含む音韻の中の全状態の確率値を発音区間で評価して、算出される。本実施の形態における歌声評定装置が算出する事後確率を、実施の形態1におけるDAPに対してt-p−DAPと呼ぶ。
図35は、本実施の形態における歌声評定装置のブロック図である。本歌声評定装置は、教師データ格納部101、基準情報格納部102、歌声受付部103、教師周波数情報取得部104、歌声周波数情報取得部105、音素情報抽出部106、評定部3507、出力部108を具備する。
評定部3507は、発音評定手段35071、タイミング評定手段1072、周波数評定手段1073を具備する。
発音評定手段35071は、最適状態決定手段10711、発音区間フレーム音韻確率値取得手段350712、評定値算出手段350713を具備する。
発音区間フレーム音韻確率値取得手段350712は、最適状態決定手段10711が決定した各フレームの最適状態を有する音韻全体の状態における1以上の確率値を、発音区間毎に取得する。
評定値算出手段350713は、発音区間フレーム音韻確率値取得手段350712が取得した1以上の発音区間毎の1以上の確率値をパラメータとして音声の評定値を算出する。評定値算出手段350713は、例えば、最適状態決定手段10711が決定した各フレームの最適状態を有する音韻全体の状態における1以上の確率値の総和を、フレーム毎に得て、当該フレーム毎の確率値の総和に基づいて、発音区間毎の確率値の総和の時間平均値を1以上得て、当該1以上の時間平均値をパラメータとして音声の評定値を算出する。
発音区間フレーム音韻確率値取得手段350712、および評定値算出手段350713は、通常、MPUやメモリ等から実現され得る。発音区間フレーム音韻確率値取得手段350712等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、歌声評定装置の動作について説明する。なお、本歌声評定装置の動作は、実施の形態1〜3における動作と比較して、音素の発音誤りの評定のアルゴリズムが異なるだけである。かかる音素の発音誤りの評定処理のアルゴリズムについて、図36のフローチャートを用いて説明する。図36のフローチャートにおいて、図27、図32等のフローチャートと異なるステップについてのみ説明する。
(ステップS3601)発音区間フレーム音韻確率値取得手段350712は、カウンタkに1を代入する。
(ステップS3602)発音区間フレーム音韻確率値取得手段350712は、k番目のフレームが、j番目の発音区間に存在するか否かを判断する。k番目のフレームが存在すればステップS3603に行き、k番目のフレームが存在しなければステップS3601106に飛ぶ。
(ステップS3603)発音区間フレーム音韻確率値取得手段350712は、k番目のフレームの最適状態を含む音韻の全ての確率値を取得する。
(ステップS3604)評定値算出手段350713は、ステップS3603で取得した1以上の確率値をパラメータとして、1フレームの音声の評定値を算出する。
(ステップS3605)発音区間フレーム音韻確率値取得手段350712は、kを1、インクメントする。ステップS3602に戻る。
(ステップS3606)評定値算出手段350713は、j番目の発音区間の評定値を算出する。評定値算出手段350713は、例えば、最適状態決定手段10711が決定した各フレームの最適状態を有する音韻全体の状態における1以上の確率値の総和を、フレーム毎に得て、当該フレーム毎の確率値の総和に基づいて、発音区間の確率値の総和の時間平均値を、当該発音区間の音声の評定値として算出する。
(ステップS3607)評定値算出手段350713は、ステップS3606で算出した評定値を一時蓄積する。
(ステップS3608)発音区間フレーム音韻確率値取得手段350712は、jを1、インクメントする。ステップS3202に戻る。
以下、本実施の形態における歌声評定装置の具体的な動作について説明する。本実施の形態において、発音の正確さを評定する評定値の算出アルゴリズムが実施の形態3とは異なるので、その動作を中心に説明する。
まず、学習者が、英語の歌を歌いだす。そして、例えば、歌の中に音声「right」があり、学習者は「right」を発音した、とする。そして、歌声受付部103は、学習者が発音した音声の入力を受け付ける。次に、音素情報抽出部106は、歌声受付部103が受け付けた音声から音素を取得する。つまり、最適状態決定手段1061は、歌声受付部103が受け付けた音声の各フレームの最適状態を決定し、音素情報取得手段1062は、当該最適状態に対応する音素を取得する。
次に、評定部107は、歌声受付部103が受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得る。そして、最適状態決定手段10711は、区分した音声データを、スペクトル分析し、特徴ベクトル系列「O=o1,o2,・・・,oT」を算出する。
次に、発音区間フレーム音韻確率値取得手段350712は、各フレームの各状態の事後確率(確率値)を算出する。確率値の算出は、上述した数式1、数式2により算出できる。
次に、最適状態決定手段10711は、取得した特徴ベクトル系列を構成する各特徴ベクトルotに基づいて、各フレームの最適状態(特徴ベクトルotに対する最適状態)を決定する。つまり、最適状態決定手段10711は、最適状態系列を得る。なお、各フレームの各状態の事後確率(確率値)を算出と、最適状態の決定の順序は問わない。
次に、発音区間フレーム音韻確率値取得手段350712は、発音区間ごとに、当該発音区間に含まれる各フレームの最適状態を含む音韻の全ての確率値を取得する。そして、評定値算出手段350713は、各フレームの最適状態を含む音韻の全ての確率値の総和を、フレーム毎に算出する。そして、評定値算出手段350713は、フレーム毎に算出された確率値の総和を、発音区間毎に時間平均し、発音区間毎の評定値を算出する。具体的には、評定値算出手段350713は、数式5により評定値を算出する。
かかる評定値算出手段350713が算出した評定値(「t−p−DAPスコア」とも言う。)を、図37の表に示す。図37において、アメリカ人男性と日本人男性の評定結果を示す。PhonemeおよびWordは,t−p−DAPにおける時間平均の範囲を示す。ここでは、DAPの代わりにp−DAPの時間平均を採用したものである。図37において、アメリカ人男性の発音の評定値が日本人男性の発音の評定値より高く、良好な評定結果が得られている。
そして、出力部108は、算出した発音区間ごと(ここでは、音素毎)の評定値を、順次出力しても良い。かかる出力例は、図34である。
以上、本実施の形態によれば、発音の良し悪しを考慮した歌声の評価ができる。したがって、特に、外国語の歌を練習する場合に、極めて有効である。
また、本実施の形態における歌声の評定における発音評定に関して、連結されたHMMである連結HMMを用いて最適状態を求め、評定値を算出するので、高速に評定値を求めることができる。したがって、リアルタイムに、フレームごと、音素ごと、単語ごとの評定値を出力できる。また、本実施の形態によれば、発音の評定に関して、動的計画法に基づいた事後確率を確率値として算出するので、さらに高速に評定値を求めることができる。また、本実施の形態によれば、発音の評定に関して、フレームごとに確率値を算出するので、上述したように、フレーム単位だけではなく、または/および音素・単語単位、または/および発声全体の評定結果を出力でき、出力態様の自由度が高い。
また、本実施の形態によれば、評定値を、発音区間の単位で算出でき、実施の形態1におけるような状態単位のDAPと比較して、本来、測定したい類似度(発音区間の類似度)を精度良く、安定して求めることができる。
また、以上の4つの実施の形態で算出した発音の良し悪しを評定した結果である評定値は、図38において、それぞれ(1)〜(4)の類似度である。つまり、図38において、縦軸は、音韻毎の隠れマルコフモデル(HMM)を、比較対象の音素の順に連結したHMMである。図38の横軸は、入力音声の特徴ベクトル系列を示す。また、図38の実線は、最適状態系列である。そして、黒丸の(1)はDAP、斜線部の(2)はp−DAP、網掛け部の(3)はt−DAPを示す。t−p−DAPは、発音区間において、最適状態を含む全音韻の状態の確率値に基づいて算出される。
さらに、本実施の形態における歌声評定装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、歌詞を伴う歌声を受け付ける歌声受付ステップと、前記歌声受付ステップで受け付けた歌声から音素に関する情報である音素情報を抽出する音素情報抽出ステップと、前記音素情報抽出ステップで抽出した音素情報と教師データに基づいて、前記歌声の評定をする評定ステップと、前記評定ステップにおける評定結果を出力する出力ステップを実行させるためのプログラム、である。
また、上記プログラムの前記評定ステップにおいて、歌声受付ステップで受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得て、前記教師データと前記1以上のフレーム音声データに基づいて、前記歌声受付ステップで受け付けた歌声の評定を行う発音評定ステップを具備しても良い。
また、上記プログラムにおいて、前記発音評定ステップは、前記1以上のフレーム音声データの最適状態を決定する最適状態決定ステップと、前記最適状態決定ステップで決定した各フレームの最適状態を有する音韻全体の状態における1以上の確率値を、発音区間毎に取得する発音区間フレーム音韻確率値取得ステップと、前記発音区間フレーム音韻確率値取得ステップで取得した1以上の発音区間毎の1以上の確率値をパラメータとして歌声の評定値を算出する評定値算出ステップを具備しても良い。
(実施の形態5)
本実施の形態における歌声評定装置は、実施の形態1〜4の歌声評定装置と比較して、評定部を構成する手段であって、発音の評定を行う発音評定手段における評定アルゴリズムが異なる。つまり、本実施の形態において、無音区間を検知し、無音区間を考慮した発音の類似度評定が可能な歌声評定装置である。
図39は、本実施の形態における歌声評定装置のブロック図である。本歌声評定装置は、教師データ格納部101、基準情報格納部102、歌声受付部103、教師周波数情報取得部104、歌声周波数情報取得部105、音素情報抽出部106、評定部3907、出力部108を具備する。
評定部3907は、発音評定手段39071、タイミング評定手段1072、周波数評定手段1073を具備する。
発音評定手段39071は、特殊音声検知手段390711、評定値算出手段390712、最適状態決定手段10711、最適状態確率値取得手段10712を具備する。
特殊音声検知手段390711は、無音データ格納手段3907111、無音区間検出手段3907112を具備する。
特殊音声検知手段390711は、フレーム毎の入力音声データに基づいて、特殊な音声が入力されたことを検知する。なお、ここで特殊な音声は、無音も含む。また、特殊音声検知手段390711は、例えば、フレームの最適状態の確率値を、ある音素区間において取得し、ある音素区間の1以上の確率値の総和が所定の値より低い場合(想定されている音素ではない、と判断できる場合)、当該音素区間において特殊な音声が入力されたと、検知する。かかる検知の具体的なアルゴリズムの例は後述する。特殊音声検知手段390711は、通常、MPUやメモリ等から実現され得る。特殊音声検知手段390711の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
無音データ格納手段3907111は、無音を示すHMMに基づくデータである無音データを格納している。無音データ格納手段3907111は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
無音区間検出手段3907112は、歌声受付部103が受け付けた歌声および無音データ格納手段3907111の無音データに基づいて、無音の区間を検出する。無音区間検出手段3907112は、フレーム音声データ取得手段1062が取得したフレーム音声データ、および無音データ格納手段3907111の無音データに基づいて、無音の区間を検出する。無音区間検出手段3907112は、フレーム音声データ取得手段1062が取得したフレーム音声データと無音データの類似度が所定の値以上である場合に、当該フレーム音声データは無音区間のデータであると判断しても良い。また、無音区間検出手段3907112は、下記で述べる最適状態確率値取得手段10712が取得した確率値が所定の値以下であり、かつ、フレーム音声データ取得手段1062が取得したフレーム音声データと無音データの類似度が所定の値以上である場合に、当該フレーム音声データは無音区間のデータであると判断しても良い。
評定値算出手段390712は、教師データと特殊音声検知手段390711における検知結果に基づいて、歌声受付部103が受け付けた歌声の評定を行う。評定値算出手段390712は、例えば、無音区間検出手段3907112が検出した無音区間を除いて、かつ最適状態確率値取得手段10712が取得した確率値をパラメータとして音声の評定値を算出する。なお、評定値算出手段390712は、上記確率値を如何に利用して、評定値を算出するかは問わない。評定値算出手段390712は、例えば、最適状態確率値取得手段10712が取得した確率値と、当該確率値に対応するフレームの全状態における確率値の総和をパラメータとして音声の評定値を算出する。評定値算出手段390712は、ここでは、通常、無音区間検出手段3907112が検出した無音区間を除いて、フレームごとに評定値を算出する。なお、評定値算出手段390712は、かならずしも無音区間を除いて、評定値を算出する必要はない。評定値算出手段390712は、無音区間の影響を少なくするように評定値を算出しても良い。また、評定値算出手段390712は、例えば、無音区間検出手段3907112が検出した音声が無音であり、かつ教師データが有声である部分は、通常の評定値よりも、さらに低い評定値となるように、評定値を算出しても良い。
無音区間検出手段3907112、評定値算出手段390712は、通常、MPUやメモリ等から実現され得る。無音区間検出手段3907112等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、歌声評定装置の動作について説明する。なお、本歌声評定装置の動作は、上記の実施の形態における動作と比較して、音素の発音誤りの評定のアルゴリズムが異なるだけである。かかる音素の発音誤りの評定処理のアルゴリズムについて、図40のフローチャートを用いて説明する。
(ステップS4001)評定値算出手段390712は、カウンタiに1を代入する。
(ステップS4002)評定値算出手段390712は、i番目のフレームが存在するか否かを判断する。i番目のフレームが存在すればステップS4003に行き、i番目のフレームが存在しなければ上位関数にリターンする。
(ステップS4003)評定値算出手段390712は、歌声の評定対象のフレームのフレーム音声データを取得する。
(ステップS4004)評定値算出手段390712は、ステップS4003で取得したi番目のフレーム音声データに対応する評定値(例えば、p−DAPスコア)を算出する。なお、p−DAPスコアの算出方法は、実施の形態2で述べたので、ここでの説明は省略する。
(ステップS4005)特殊音声検知手段390711は、ステップS4004で算出した値が、所定の値より低いか否かを判断する。所定の値より低ければステップS4006に行き、所定の値より低くなければステップS4009に飛ぶ。
(ステップS4006)無音区間検出手段3907112は、無音データと全教師データの確率値を取得する。
(ステップS4007)無音区間検出手段3907112は、ステップS4006で取得した確率値の中で、無音データの確率値が最も高いか否かを判断する。無音データの確率値が最も高ければ(かかる場合、無音の区間であると判断する)ステップS4008に行き、無音データの確率値が最も高くなければステップS4009に行く。
(ステップS4008)無音区間検出手段3907112は、カウンタiを1、インクリメントする。ステップS4002に戻る。
(ステップS4009)評定値算出手段390712は、ステップS4004で算出した評定値を一時蓄積する。ステップS4008に行く。
なお、図40のフローチャートにおいて、評定値算出手段390712は、無音区間と判定した区間の評定値は一時蓄積しなかった(無音区間を無視した)が、特殊音声が検知された区間が無音区間である旨を明示したり、無音区間が存在する旨を明示したりする態様で出力しても良い。また、評定値算出手段390712は、発音区間や、それ以上の単位のスコアを算出する場合に、無音区間の評定値を無視して、スコアを算出しても良いし、無音区間の評定値の影響を、例えば、1/10にして、発音区間や発音全体のスコアを算出するなどしても良い。発音評定手段39071は、教師データと特殊音声検知手段390711における検知結果に基づいて、歌声受付部103が受け付けた歌声の発音評定を行えばよい。
また、図40のフローチャートにおいて、特殊音声検知手段390711は、i番目のフレーム音声データのp−DAPスコアに基づいて特殊音声を検知したが、例えば、DAPスコアに基づいて特殊音声を検知しても良い。
以下、本実施の形態における歌声評定装置の具体的な動作について説明する。本実施の形態において、発音の正確さを評定する評定値の算出アルゴリズムが上記の実施の形態とは異なるので、その動作を中心に説明する。具体的には、本歌声評定装置は、無音区間を考慮して評定値を算出するので、その処理を中心に説明する。
まず、学習者が、英語の歌を歌いだす。そして、例えば、歌の中に音声「right」があり、学習者は「right」を発音した、とする。そして、歌声受付部103は、学習者が発音した音声の入力を受け付ける。次に、音素情報抽出部106は、歌声受付部103が受け付けた音声から音素を取得する。つまり、最適状態決定手段1061は、歌声受付部103が受け付けた音声の各フレームの最適状態を決定し、音素情報取得手段1062は、当該最適状態に対応する音素を取得する。
次に、評定部107は、歌声受付部103が受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得る。そして、最適状態決定手段10711は、区分した音声データを、スペクトル分析し、特徴ベクトル系列「O=o1,o2,・・・,oT」を算出する。
次に、最適状態決定手段10711は、取得した特徴ベクトル系列を構成する各特徴ベクトルotに基づいて、所定のフレームの最適状態(特徴ベクトルotに対する最適状態)を決定する。
次に、最適状態確率値取得手段10712は、上述した数式1、2により、最適状態における確率値を算出する。
次に、評定値算出手段390712は、例えば、最適状態決定手段10711が決定した最適状態を有する音韻全体の状態における1以上の確率値を取得し、当該1以上の確率値の総和をパラメータとして音声の評定値を算出する。つまり、評定値算出手段390712は、例えば、p−DAPスコアをフレーム毎に算出する。
そして、特殊音声検知手段390711は、算出されたフレームに対応する評定値(p−DAPスコア)を用いて、特殊な音声が入力されたか否かを判断する。具体的には、特殊音声検知手段390711は、例えば、評価対象のフレームに対して算出された評定値が、所定の数値より低ければ、特殊な音声が入力された、と判断する。なお、特殊音声検知手段390711は、一のフレームに対応する評定値が小さいからといって、直ちに特殊な音声が入力された、と判断する必要はない。つまり、特殊音声検知手段390711は、フレームに対応する評定値が小さいフレームが所定の数以上、連続する場合に、当該連続するフレーム群に対応する区間が特殊な音声が入力された区間と判断しても良い。
特殊音声検知手段390711が、特殊音声を検知する場合について説明する図を図41に示す。図41(a)の縦軸は、p−DAPスコアであり、横軸はフレームを示す。図41(a)において、(V)は、Viterbiアライメントを示す。図41(a)において、網掛けのフレーム群のおけるp−DAPスコアは、所定の値より低く、特殊音声の区間である、と判断される。
次に、特殊な音声が入力された、と判断した場合、無音区間検出手段3907112は、無音データ格納手段3907111から無音データを取得し、当該フレーム群の各フレームのHMMと無音データとの類似度を算定し、類似度が所定値以上であれば当該フレーム群に対応する音声データが、無音データであると判断する。図41(b)は、無音データとの比較の結果、当該無音データとの類似度を示す事後確率の値(「APスコア」とも言う。)が高いことを示す。その結果、無音区間検出手段3907112は、当該特殊音声の区間は、無音区間である、と判断する。なお、図41(a)において、網掛けのフレーム群のおけるp−DAPスコアは、所定の値より低く、特殊音声の区間である、と判断され、かつ、無音データとの比較の結果、APスコアが低い場合には、無音区間ではない、と判断される。そして、かかる区間において、例えば、単に、発音が上手くなく、低い評定値が出力される。なお、図41(a)に示しているように、通常、無音区間は、第一のワード(「word1」)の最終音素の後半部、および第一のワードに続く第二のワード(「word2」)の第一音素の前半部のスコアが低い。
そして、発音評定手段39071は、例えば、出力する評定値から、無音データの区間の評定値を考慮しないように、無視する。
以上、本実施の形態によれば、発音の良し悪しを考慮した歌声の評価ができる。したがって、特に、外国語の歌を練習する場合に、極めて有効である。
また、本実施の形態における歌声の評定における発音評定に関して、連結されたHMMである連結HMMを用いて最適状態を求め、評定値を算出するので、高速に評定値を求めることができる。したがって、リアルタイムに、フレームごと、音素ごと、単語ごとの評定値を出力できる。また、本実施の形態によれば、発音の評定に関して、動的計画法に基づいた事後確率を確率値として算出するので、さらに高速に評定値を求めることができる。また、本実施の形態によれば、発音の評定に関して、フレームごとに確率値を算出するので、上述したように、フレーム単位だけではなく、または/および音素・単語単位、または/および発声全体の評定結果を出力でき、出力態様の自由度が高い。
さらに、本実施の形態において、無音区間を考慮して発音の良し悪しを評定するので、極めて正確な歌声の評定結果が得られる。
なお、本実施の形態において、無音区間のデータは、無視して評定結果を算出したが、例えば、無音区間の評価の影響を他の区間と比較して少なくするなど、無視する以外の方法で、無音区間のデータを考慮して、評定値を出力しても良い。
また、本実施の形態の具体例によれば、p−DAPスコアを用いて、発音の良し悪しに関する評定値を算出したが、無音の区間を考慮して評定値を算出すれば良く、上述した他のアルゴリズム(DAP、t−DAP、t−p−DAP)、または、本明細書では述べていない他のアルゴリズムにより評定値を算出しても良い。つまり、本実施の形態によれば、教師データと特殊音声検知手段における検知結果に基づいて、歌声受付部が受け付けた歌声の評定を行い、特に、無音データを考慮して、評定値を算出すれば良い。
また、本実施の形態によれば、まず、DAPスコアが低い区間を検出してから、無音区間の検出をした。しかし、DAPスコアが低い区間を検出せずに、無音データとの比較により、無音区間を検出しても良い。
また、本実施の形態において、無音区間が存在した旨を示す情報を出力することは好適である。
さらに、本実施の形態における歌声評定装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、歌詞を伴う歌声を受け付ける歌声受付ステップと、前記歌声受付ステップで受け付けた歌声から音素に関する情報である音素情報を抽出する音素情報抽出ステップと、前記音素情報抽出ステップで抽出した音素情報と教師データに基づいて、前記歌声の評定をする評定ステップと、前記評定ステップにおける評定結果を出力する出力ステップを実行させるためのプログラム、である。
また、上記プログラムの前記評定ステップにおいて、歌声受付ステップで受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得て、前記教師データと前記1以上のフレーム音声データに基づいて、前記歌声受付ステップで受け付けた歌声の評定を行う発音評定ステップを具備しても良い。
また、上記プログラムにおいて、前記発音評定ステップは、前記フレーム毎の入力音声データに基づいて、特殊な音声が入力されたことを検知する特殊音声検知ステップと、前記教師データと前記特殊音声検知ステップにおける検知結果に基づいて、前記歌声受付ステップで受け付けた歌声の評定を行う評定値算出ステップを具備しても良い。
さらに、上記プログラムにおいて、前記特殊音声検知ステップは、無音を示すHMMに基づくデータである無音データと前記歌声に基づいて、無音の区間を検出する無音区間検出ステップを具備しても良い。
(実施の形態6)
本実施の形態における歌声評定装置は、上記の各実施の形態の歌声評定装置と比較して、評定部を構成する手段であって、発音の評定を行う発音評定手段における評定アルゴリズムが異なる。つまり、本実施の形態において、特殊音声を検知し、比較対象の音声と入力音声の類似度を精度高く評定できる歌声評定装置について説明する。特に、本歌声評定装置は、音韻の挿入を検知し、発音の評定に反映できる歌声評定装置である。
図42は、本実施の形態における歌声評定装置のブロック図である。本歌声評定装置は、教師データ格納部101、基準情報格納部102、歌声受付部103、教師周波数情報取得部104、歌声周波数情報取得部105、音素情報抽出部106、評定部4207、出力部108を具備する。
評定部4207は、発音評定手段42071、タイミング評定手段1072、周波数評定手段1073を具備する。
発音評定手段42071は、特殊音声検知手段420711、評定値算出手段420712、最適状態決定手段10711、最適状態確率値取得手段10712を具備する。
特殊音声検知手段420711は、一の音素の後半部および当該音素の次の音素の前半部の評定値が所定の条件を満たすことを検知する。後半部、および前半部の長さは問わない。特殊音声検知手段420711は、通常、MPUやメモリ等から実現され得る。特殊音声検知部2401の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
評定値算出手段420712は、特殊音声検知手段420711が所定の条件を満たすことを検知した場合に、少なくとも音素の挿入があった旨を示す評定結果を構成する。なお、評定値算出手段420712は、実施の形態5で述べたアルゴリズムにより、特殊音声検知手段420711が所定の条件を満たすことを検知した区間に無音が挿入されたか否かを判断し、無音が挿入されていない場合に、他の音素が挿入されたと検知しても良い。また、評定値算出手段420712は、無音が挿入されていない場合に、他の音韻HMMに対する確率値を算出し、所定の値より高い確率値を得た音韻が挿入された、との評定結果を得ても良い。なお、実施の形態5で述べた無音区間の検知は、無音音素の挿入の検知である、とも言える。評定値算出手段420712は、通常、MPUやメモリ等から実現され得る。評定値算出手段420712の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、歌声評定装置の動作について説明する。なお、本歌声評定装置の動作は、上記の実施の形態における動作と比較して、音素の発音誤りの評定のアルゴリズムが異なるだけである。かかる音素の発音誤りの評定処理のアルゴリズムについて、図43のフローチャートを用いて説明する。
(ステップS4301)特殊音声検知手段420711は、バッファに、所定の値より低い評定値と評価されたフレーム音声データ、または当該フレーム音声データから取得できるデータを一時蓄積する。
(ステップS4302)特殊音声検知手段420711は、カウンタiを1、インクリメントする。ステップS4002に戻る。
(ステップS4303)特殊音声検知手段420711は、フレームに対応するデータを一時的に蓄積するバッファにデータが格納されているか否かを判断する。なお、格納されているデータは、ステップS4005で、所定の値より低い評定値と評価されたフレーム音声データ、または当該フレーム音声データから取得できるデータである。データが格納されていればステップS4306に行き、データが格納されていなければステップS4304に行く。
(ステップS4304)評定値算出手段420712は、ステップS4004で算出した評定値を一時蓄積する。
(ステップS4305)評定値算出手段420712は、カウンタiを1、インクリメントする。ステップS4002に戻る。
(ステップS4306)特殊音声検知手段420711は、カウンタjに1を代入する。
(ステップS4307)特殊音声検知手段420711は、j番目のデータが、バッファに存在するか否かを判断する。j番目のデータが存在すればステップS4308に行き、j番目のデータが存在しなければステップS4314に飛ぶ。
(ステップS4308)特殊音声検知手段420711は、j番目のデータに対応する最適状態の音素を取得する。
(ステップS4309)特殊音声検知手段420711は、j番目のデータに対する全教師データの確率値を算出し、最大の確率値を持つ音素を取得する。
(ステップS4310)特殊音声検知手段420711は、ステップS4308で取得した音素とステップS4309で取得した音素が異なる音素であるか否かを判断する。異なる音素であればステップS4311に行き、異なる音素でなければステップS4313に飛ぶ。
(ステップS4311)評定値算出手段420712は、音素の挿入があった旨を示す評定結果を構成する。なお、評定値算出手段420712は、音素の挿入があったことに基づいて、所定の値よりさらに低い評定値を算出しても良い。
(ステップS4312)特殊音声検知手段420711は、カウンタjを1、インクリメントする。ステップS4307に戻る。
(ステップS4313)評定値算出手段420712は、バッファ中の全データに対応する全評定値を一時蓄積する。ここで、全評定値とは、例えば、フレーム毎のp−DAPスコアである。ステップS4312に行く。
(ステップS4314)評定値算出手段420712は、評定結果が、音素の挿入があった旨の評定結果であるか否かを判断する。音素の挿入があった旨の評定結果であればステップS4315に行き、音素の挿入があった旨の評定結果でなければステップS4316に行く。
(ステップS4315)評定値算出手段420712は、評定結果を出力する。
(ステップS4316)評定値算出手段420712は、バッファをクリアする。ステップS4305に行く。
なお、図43のフローチャートにおいて、音素の挿入があったと判断した場合、通常のアルゴリズムにおける発音の評定値より、さらに低い評定値として、評定値を算出しても良い。
なお、図43のフローチャートにおいて、評定値の低いフレームが2つの音素に渡って存在すれば、直ちに音素の挿入があったと判断した。つまり、一の音素の後半部(少なくとも最終フレーム)および当該音素の次の音素の第一フレームの評定値が所定値より低い場合に、音素の挿入があったと判断した。しかし、図43のフローチャートにおいて、一の音素の所定区間以上の後半部、および当該音素の次の音素の所定区間以上の前半部の評定値が所定値よりすべて低い場合に、音素の挿入があったと判断するようにしても良い。
以下、本実施の形態における歌声評定装置の具体的な動作について説明する。本実施の形態において、発音の正確さを評定する評定値の算出アルゴリズムが上記の実施の形態とは異なるので、その動作を中心に説明する。具体的には、本歌声評定装置は、音素の挿入の検知を行い、かかる音素の挿入を考慮して評定値を算出するので、その処理を中心に説明する。
まず、学習者が、英語の歌を歌いだす。そして、例えば、歌の中に音声「right」があり、学習者は「right」を発音した、とする。そして、歌声受付部103は、学習者が発音した音声の入力を受け付ける。次に、音素情報抽出部106は、歌声受付部103が受け付けた音声から音素を取得する。つまり、最適状態決定手段1061は、歌声受付部103が受け付けた音声の各フレームの最適状態を決定し、音素情報取得手段1062は、当該最適状態に対応する音素を取得する。
次に、評定部107は、歌声受付部103が受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得る。
そして、最適状態決定手段10711は、区分した音声データを、スペクトル分析し、特徴ベクトル系列「O=o1,o2,・・・,oT」を算出する。
次に、最適状態決定手段10711は、取得した特徴ベクトル系列を構成する各特徴ベクトルotに基づいて、所定のフレームの最適状態(特徴ベクトルotに対する最適状態)を決定する。
次に、最適状態確率値取得手段10712は、上述した数式1、2により、最適状態における確率値を算出する。
次に、評定値算出手段420712は、例えば、最適状態決定手段10711が決定した最適状態を有する音韻全体の状態における1以上の確率値を取得し、当該1以上の確率値の総和をパラメータとして音声の評定値を算出する。つまり、評定値算出手段420712は、例えば、p−DAPスコアをフレーム毎に算出する。ここで、算出するスコアは、上述したDAPスコア等でも良い。
そして、特殊音声検知手段420711は、算出されたフレームに対応する評定値を用いて、特殊な音声が入力されたか否かを判断する。つまり、評定値(例えば、p−DAPスコア)が、所定の値より低い区間が存在するか否かを判断する。
次に、特殊音声検知手段420711は、図44に示すように、評定値(例えば、p−DAPスコア)が、所定の値より低い区間が、2つの音素に跨っているか否かを判断し、2つの音素に跨がっていれば、当該区間に音素が挿入された、と判断する。なお、かかる場合の詳細なアルゴリズムの例は、図43で説明した。また、図44において、斜線部が、予期しない音素が挿入された区間である。
次に、評定値算出手段420712は、音素の挿入があった旨を示す評定結果(例えば、「予期しない音素が挿入されました。」)を構成する。そして、出力部108は、構成した評定結果を出力する。図45は、評定結果の出力例である。なお、出力部108は、通常の歌声に対しては、上述したように評定値を出力することが好適である。
以上、本実施の形態によれば、発音の良し悪しを考慮した歌声の評価ができる。したがって、特に、外国語の歌を練習する場合に、極めて有効である。
また、本実施の形態における歌声の評定における発音評定に関して、連結されたHMMである連結HMMを用いて最適状態を求め、評定値を算出するので、高速に評定値を求めることができる。したがって、リアルタイムに、フレームごと、音素ごと、単語ごとの評定値を出力できる。また、本実施の形態によれば、発音の評定に関して、動的計画法に基づいた事後確率を確率値として算出するので、さらに高速に評定値を求めることができる。また、本実施の形態によれば、発音の評定に関して、フレームごとに確率値を算出するので、上述したように、フレーム単位だけではなく、または/および音素・単語単位、または/および発声全体の評定結果を出力でき、出力態様の自由度が高い。
さらに、本実施の形態において、特に、予期せぬ音素の挿入を検知できるので、極めて精度の高い発音の良し悪しの評定結果が得られる。
なお、本実施の形態において、音素の挿入を検知できれば良く、発音の良し悪しの評定値の算出アルゴリズムは問わない。発音の良し悪しの評定値の算出アルゴリズムは、上述したアルゴリズム(DAP、p−DAP、t−DAP、t−p−DAP)でも良く、または、本明細書では述べていない他のアルゴリズムでも良い。
さらに、本実施の形態における歌声評定装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、歌詞を伴う歌声を受け付ける歌声受付ステップと、前記歌声受付ステップで受け付けた歌声から音素に関する情報である音素情報を抽出する音素情報抽出ステップと、前記音素情報抽出ステップで抽出した音素情報と教師データに基づいて、前記歌声の評定をする評定ステップと、前記評定ステップにおける評定結果を出力する出力ステップを実行させるためのプログラム、である。
また、上記プログラムの前記評定ステップにおいて、歌声受付ステップで受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得て、前記教師データと前記1以上のフレーム音声データに基づいて、前記歌声受付ステップで受け付けた歌声の評定を行う発音評定ステップを具備しても良い。
また、上記プログラムの前記発音評定ステップにおいて、前記フレーム毎の入力音声データに基づいて、特殊な音声が入力されたことを検知する特殊音声検知ステップと、前記教師データと前記特殊音声検知ステップにおける検知結果に基づいて、前記歌声受付ステップで受け付けた歌声の評定を行う評定値算出ステップを具備しても良い。
また、上記プログラムの前記特殊音声検知ステップにおいて、一の音素の後半部および当該音素の次の音素の前半部の評定値が所定の条件を満たすことを検知し、前記評定値算出ステップにおいて、前記特殊音声検知ステップで前記所定の条件を満たすことを検知した場合に、少なくとも音素の挿入があった旨を示す評定結果を構成しても良い。
(実施の形態7)
本実施の形態における歌声評定装置は、上記の各実施の形態の歌声評定装置と比較して、評定部を構成する手段であって、発音の評定を行う発音評定手段における評定アルゴリズムが異なる。つまり、本実施の形態において、特殊音声を検知し、比較対象の音声と入力音声の類似度を精度高く評定できる歌声評定装置について説明する。特に、本歌声評定装置は、音韻の置換を検知し、発音の評定に反映できる歌声評定装置である。
図46は、本実施の形態における歌声評定装置のブロック図である。本歌声評定装置は、教師データ格納部101、基準情報格納部102、歌声受付部103、教師周波数情報取得部104、歌声周波数情報取得部105、音素情報抽出部106、評定部4607、出力部108を具備する。
評定部4607は、発音評定手段46071、タイミング評定手段1072、周波数評定手段1073を具備する。
発音評定手段46071は、特殊音声検知手段460711、評定値算出手段460712、最適状態決定手段10711、最適状態確率値取得手段10712を具備する。
特殊音声検知手段460711は、一の音素の評定値が所定の値より低いことを検知する。また、特殊音声検知手段460711は、一の音素の評定値が所定の値より低く、かつ当該音素の直前の音素および当該音素の直後の音素の評定値が所定の値より高いことをも検知しても良い。また、特殊音声検知手段460711は、一の音素の評定値が所定の値より低く、かつ、想定していない音素のHMMに基づいて算出された評定値が所定の値より高いことを検知しても良い。つまり、特殊音声検知手段460711は、所定のアルゴリズムで、音韻の置換を検知できれば良い。そのアルゴリズムは種々考えられる。特殊音声検知手段460711は、通常、MPUやメモリ等から実現され得る。特殊音声検知手段460711の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
評定値算出手段460712は、特殊音声検知手段460711が所定の条件を満たすことを検知した場合に、少なくとも音素の置換があった旨を示す評定結果を構成する。評定値算出手段460712は、通常、MPUやメモリ等から実現され得る。評定値算出手段460712の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、歌声評定装置の動作について説明する。なお、本歌声評定装置の動作は、上記の実施の形態における動作と比較して、音素の発音誤りの評定のアルゴリズムが異なるだけである。かかる音素の発音誤りの評定処理のアルゴリズムについて、図47のフローチャートを用いて説明する。
(ステップS4701)特殊音声検知手段460711は、バッファに蓄積されているデータに対応するフレーム音声データ群が一の音素に対応するか否かを判断する。一の音素であればステップS4702に行き、一の音素でなければステップS4710に行く。
(ステップS4702)評定値算出手段460712は、バッファに蓄積されているデータに対応するフレーム音声データ群の音素の直前の音素の評定値を算出する。かかる評定値は、例えば、上述したt−DAPスコアである。なお、直前の音素とは、現在評定中の音素に対して直前の音素である。音素の区切りは、Viterbiアルゴリズムにより算出できる。
(ステップS4703)特殊音声検知手段460711は、ステップS4702で算出した評定値が所定の値以上であるか否かを判断する。所定の値以上であればステップS4704に行き、所定の値より小さければステップS4710に行く。
(ステップS4704)評定値算出手段460712は、直後の音素の評定値を算出する。かかる評定値は、例えば、上述したt−DAPスコアである。直後の音素とは、現在評定中の音素に対して直後の音素である。
(ステップS4705)特殊音声検知手段460711は、ステップS4704で算出した評定値が所定の値以上であるか否かを判断する。所定の値以上であればステップS4706に行き、所定の値より小さければステップS4710に行く。
(ステップS4706)特殊音声検知手段460711は、予め格納されている音韻HMM(予期する音韻のHMMは除く)の中で、所定の値以上の評定値が得られる音韻HMMが一つ存在するか否かを判断する。所定の値以上の評定値が得られる音韻HMMが存在すればステップS4707に行き、所定の値以上の評定値が得られる音韻HMMが存在しなければステップS4710に行く。なお、予め格納されている音韻HMMは、通常、すべての音韻に対する多数の音韻HMMである。なお、本ステップにおいて、予め格納されている音韻HMMの確率値を算出し、最大の確率値を持つ音素を取得し、当該音素と最適状態の音素が異なるか否かを判断し、異なる場合に音素の置換があったと判断しても良い。
(ステップS4707)評定値算出手段460712は、音素の置換があった旨を示す評定結果を構成する。
(ステップS4708)出力部108は、ステップS4707で構成した評定結果を出力する。
(ステップS4709)評定値算出手段460712は、バッファをクリアする。ステップS4002に戻る。
(ステップS4710)評定値算出手段460712は、バッファ中の全データに対応する全評定値を一時蓄積する。
なお、図47のフローチャートにおいて、音素の置換があったと判断した場合、通常のアルゴリズムにおける発音の評定値より、さらに低い評定値として、評定値を算出しても良い。
以下、本実施の形態における歌声評定装置の具体的な動作について説明する。本実施の形態において、発音の正確さを評定する評定値の算出アルゴリズムが上記の実施の形態とは異なるので、その動作を中心に説明する。具体的には、本歌声評定装置は、音素の置換の検知を行い、かかる音素の置換を考慮して評定値を算出するので、その処理を中心に説明する。
まず、学習者が、英語の歌を歌いだす。そして、例えば、歌の中に音声「right」があり、学習者は「right」を発音した、とする。そして、歌声受付部103は、学習者が発音した音声の入力を受け付ける。次に、音素情報抽出部106は、歌声受付部103が受け付けた音声から音素を取得する。つまり、最適状態決定手段1061は、歌声受付部103が受け付けた音声の各フレームの最適状態を決定し、音素情報取得手段1062は、当該最適状態に対応する音素を取得する。
次に、評定部107は、歌声受付部103が受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得る。そして、最適状態決定手段10711は、区分した音声データを、スペクトル分析し、特徴ベクトル系列「O=o1,o2,・・・,oT」を算出する。
次に、最適状態決定手段10711は、取得した特徴ベクトル系列を構成する各特徴ベクトルotに基づいて、所定のフレームの最適状態(特徴ベクトルotに対する最適状態)を決定する。
次に、最適状態確率値取得手段10712は、上述した数式1、2により、最適状態における確率値を算出する。
次に、評定値算出手段460712は、例えば、最適状態決定手段10711が決定した最適状態を有する音韻全体の状態における1以上の確率値を取得し、当該1以上の確率値の総和をパラメータとして音声の評定値を算出する。つまり、評定値算出手段460712は、例えば、p−DAPスコアをフレーム毎に算出する。ここで、算出するスコアは、上述したDAPスコア等でも良い。
そして、特殊音声検知手段460711は、算出されたフレームに対応する評定値を用いて、特殊な音声が入力されたか否かを判断する。つまり、評定値(例えば、p−DAPスコア)が、所定の値より低い区間が存在するか否かを判断する。
次に、特殊音声検知手段460711は、図48に示すように、評定値(例えば、t−DAPスコア)が、所定の値より低い区間が、一つの音素内(ここでは音素2)であるか否かを判断する。そして、一つの音素内で評定値が低ければ、次に、特殊音声検知手段460711は、直前の音素(音素1)または直後の音素(音素2)に対する評定値(例えば、t−DAPスコア)を算出し、当該評定値が所定の値より高ければ、音素の置換が発生している可能性があると判断する。次に、特殊音声検知手段460711は、予め格納されている音韻HMM(予期する音韻のHMMは除く)の中で、所定の値以上の評定値が得られる音韻HMMが一つ存在すれば、音素の置換が発生していると判断する。なお、図48において、音素2において、音素の置換が発生した区間である。なお、図48において縦軸は評定値であり、当該評定値は、DAP、p−DAP、t−DAP等、問わない。
次に、評定値算出手段460712は、音素の置換があった旨を示す評定結果(例えば、「音素の置換が発生しました。」)を構成する。そして、出力部108は、構成した評定結果を出力する。なお、出力部108は、通常の入力音声に対しては、上述したように評定値を出力することが好適である。
以上、本実施の形態によれば、発音の良し悪しを考慮した歌声の評価ができる。したがって、特に、外国語の歌を練習する場合に、極めて有効である。
また、本実施の形態における歌声の評定における発音評定に関して、連結されたHMMである連結HMMを用いて最適状態を求め、評定値を算出するので、高速に評定値を求めることができる。したがって、リアルタイムに、フレームごと、音素ごと、単語ごとの評定値を出力できる。また、本実施の形態によれば、発音の評定に関して、動的計画法に基づいた事後確率を確率値として算出するので、さらに高速に評定値を求めることができる。また、本実施の形態によれば、発音の評定に関して、フレームごとに確率値を算出するので、上述したように、フレーム単位だけではなく、または/および音素・単語単位、または/および発声全体の評定結果を出力でき、出力態様の自由度が高い。
さらに、本実施の形態において、特に、音素の置換を検知できるので、極めて精度の高い歌声の評定結果が得られる。
なお、本実施の形態において、音素の置換を検知できれば良く、評定値の算出アルゴリズムは問わない。評定値の算出アルゴリズムは、上述したアルゴリズム(DAP、p−DAP、t−DAP、t−p−DAP)でも良く、または、本明細書では述べていない他のアルゴリズムでも良い。
また、本実施の形態において、音素の置換の検知アルゴリズムは、他のアルゴリズムでも良い。例えば、音素の置換の検知において、所定以上の長さの区間を有することを置換区間の検知で必須としても良い。その他、置換の検知アルゴリズムの詳細は種々考えられる。
さらに、本実施の形態における歌声評定装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、歌詞を伴う歌声を受け付ける歌声受付ステップと、前記歌声受付ステップで受け付けた歌声から音素に関する情報である音素情報を抽出する音素情報抽出ステップと、前記音素情報抽出ステップで抽出した音素情報と教師データに基づいて、前記歌声の評定をする評定ステップと、前記評定ステップにおける評定結果を出力する出力ステップを実行させるためのプログラム、である。
また、上記プログラムの前記評定ステップにおいて、歌声受付ステップで受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得て、前記教師データと前記1以上のフレーム音声データに基づいて、前記歌声受付ステップで受け付けた歌声の評定を行う発音評定ステップを具備しても良い。
また、上記プログラムの前記発音評定ステップにおいて、前記フレーム毎の入力音声データに基づいて、特殊な音声が入力されたことを検知する特殊音声検知ステップと、前記教師データと前記特殊音声検知ステップにおける検知結果に基づいて、前記歌声受付ステップで受け付けた歌声の評定を行う評定値算出ステップを具備しても良い。
また、上記プログラムの前記特殊音声検知手ステップにおいて、一の音素の評定値が所定の条件を満たすことを検知し、前記評定値算出ステップにおいて、前記特殊音声検知ステップで前記所定の条件を満たすことを検知した場合に、少なくとも音素の置換があった旨を示す評定結果を構成しても良い。
(実施の形態8)
本実施の形態における歌声評定装置は、上記の各実施の形態の歌声評定装置と比較して、評定部を構成する手段であって、発音の評定を行う発音評定手段における評定アルゴリズムが異なる。つまり、本実施の形態において、特殊音声を検知し、比較対象の音声と入力音声の類似度を精度高く評定できる歌声評定装置について説明する。特に、本歌声評定装置は、音韻の欠落を検知できる歌声評定装置である。
図49は、本実施の形態における歌声評定装置のブロック図である。本歌声評定装置は、教師データ格納部101、基準情報格納部102、歌声受付部103、教師周波数情報取得部104、歌声周波数情報取得部105、音素情報抽出部106、評定部4907、出力部108を具備する。
評定部4907は、発音評定手段49071、タイミング評定手段1072、周波数評定手段1073を具備する。
発音評定手段49071は、特殊音声検知手段490711、評定値算出手段490712、最適状態決定手段10711、最適状態確率値取得手段10712を具備する。
特殊音声検知手段490711は、一の音素の評定値が所定の値より低く、かつ当該音素の直前の音素または当該音素の直後の音素の評定値が所定の値より高いことを検知する。また、特殊音声検知手段490711は、一の音素の評定値が所定の値より低く、かつ当該音素の直前の音素または当該音素の直後の音素の評定値が所定の値より高く、かつ当該音素の区間長が所定の長さよりも短いことを検知しても良い。また、特殊音声検知手段490711は、直前の音素に対応する確率値、または直後の音素に対応する確率値が、当該一の音素の確率値より高いことを検知しても良い。かかる場合に、特殊音声検知手段490711は、音韻の欠落を検知することは好適である。さらに、音素の区間長が所定の長さよりも短いことを欠落の条件に含めることにより、音韻の欠落の検知の精度は向上する。特殊音声検知手段490711は、通常、MPUやメモリ等から実現され得る。特殊音声検知手段490711の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
評定値算出手段490712は、特殊音声検知手段490711が所定の条件を満たすことを検知した場合に、少なくとも音素の欠落があった旨を示す評定結果を構成する。評定値算出手段490712は、通常、MPUやメモリ等から実現され得る。評定値算出手段490712の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、歌声評定装置の動作について説明する。なお、本歌声評定装置の動作は、上記の実施の形態における動作と比較して、音素の発音誤りの評定のアルゴリズムが異なるだけである。かかる音素の発音誤りの評定処理のアルゴリズムについて、図50のフローチャートを用いて説明する。
(ステップS5001)特殊音声検知手段490711は、バッファに蓄積されているデータに対して、直前の音素に対応する教師データの確率値または、直後の音素に対応する教師データの確率値が、予定されている音素に対応する教師データの確率値より高いか否かを判断する。高ければステップS5002に行き、高くなければステップS4710に行く。なお、ステップS5002に行くための条件として、バッファに蓄積されているデータに対応するフレーム音声データ群の区間長が所定の長さ以下であることを付加しても良い。
(ステップS5002)評定値算出手段490712は、音素の欠落があった旨を示す評定結果を構成する。
なお、図50のフローチャートにおいて、評定対象の音素(欠落したであろう音素)の区間長が、所定の長さ(例えば、3フレーム)よりも短いことを条件としたが、かかる条件は必須ではない。
また、図50のフローチャートにおいて、音素の欠落があったと判断した場合、通常のアルゴリズムにおける発音の評定値より、さらに低い評定値として、評定値を算出しても良い。
以下、本実施の形態における歌声評定装置の具体的な動作について説明する。本実施の形態において、発音の正確さを評定する評定値の算出アルゴリズムが上記の実施の形態とは異なるので、その動作を中心に説明する。具体的には、本歌声評定装置は、音素の欠落の検知を行い、かかる音素の欠落を考慮して評定値を算出するので、その処理を中心に説明する。
まず、学習者が、英語の歌を歌いだす。そして、例えば、歌の中に音声「right」があり、学習者は「right」を発音した、とする。そして、歌声受付部103は、学習者が発音した音声の入力を受け付ける。次に、音素情報抽出部106は、歌声受付部103が受け付けた音声から音素を取得する。つまり、最適状態決定手段1061は、歌声受付部103が受け付けた音声の各フレームの最適状態を決定し、音素情報取得手段1062は、当該最適状態に対応する音素を取得する。
次に、評定部107は、歌声受付部103が受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得る。そして、最適状態決定手段10711は、区分した音声データを、スペクトル分析し、特徴ベクトル系列「O=o1,o2,・・・,oT」を算出する。
次に、最適状態決定手段10711は、取得した特徴ベクトル系列を構成する各特徴ベクトルotに基づいて、所定のフレームの最適状態(特徴ベクトルotに対する最適状態)を決定する。
次に、最適状態確率値取得手段10712は、上述した数式1、2により、最適状態における確率値を算出する。
次に、評定値算出手段490712は、例えば、最適状態決定手段10711が決定した最適状態を有する音韻全体の状態における1以上の確率値を取得し、当該1以上の確率値の総和をパラメータとして音声の評定値を算出する。つまり、評定値算出手段490712は、例えば、p−DAPスコアをフレーム毎に算出する。ここで、算出するスコアは、上述したDAPスコア等でも良い。
そして、特殊音声検知手段490711は、算出されたフレームに対応する評定値を用いて、特殊な音声が入力されたか否かを判断する。つまり、評定値(例えば、t−DAPスコア)が、所定の値より低い区間が存在するか否かを判断する。
次に、特殊音声検知手段490711は、図51に示すように、評定値(例えば、t−DAPスコア)が、所定の値より低い区間が、一つの音素内(ここでは音素2)であるか否かを判断する。そして、一つの音素内で評定値が低ければ、特殊音声検知手段490711は、直前の音素(音素1)または直後の音素(音素2)に対する評定値(例えば、t−DAPスコア)を算出し、当該評定値が所定の値より高ければ、音素の欠落が発生している可能性があると判断する。そして、当該区間長が、例えば、3フレーム以下の長さであれば、かかる音素は欠落したと判断する。なお、図51において、音素2の欠落が発生したことを示す。なお、図51において縦軸は評定値であり、当該評定値は、DAP、p−DAP、t−DAP等、問わない。また、上記区間長の所定値は、「3フレーム以下」ではなく、「5フレーム以下」でも、「6フレーム以下」でも良い。
次に、評定値算出手段490712は、音素の欠落があった旨を示す評定結果(例えば、「音素の欠落が発生しました。」)を構成する。そして、出力部108は、構成した評定結果を出力する。なお、出力部108は、通常の入力音声に対しては、上述したように評定値を出力することが好適である。
以上、本実施の形態によれば、発音の良し悪しを考慮した歌声の評価ができる。したがって、特に、外国語の歌を練習する場合に、極めて有効である。
また、本実施の形態における歌声の評定における発音評定に関して、連結されたHMMである連結HMMを用いて最適状態を求め、評定値を算出するので、高速に評定値を求めることができる。したがって、リアルタイムに、フレームごと、音素ごと、単語ごとの評定値を出力できる。また、本実施の形態によれば、発音の評定に関して、動的計画法に基づいた事後確率を確率値として算出するので、さらに高速に評定値を求めることができる。また、本実施の形態によれば、発音の評定に関して、フレームごとに確率値を算出するので、上述したように、フレーム単位だけではなく、または/および音素・単語単位、または/および発声全体の評定結果を出力でき、出力態様の自由度が高い。
さらに、本実施の形態において、特に、音素の欠落を検知できるので、極めて精度の高い歌声における発音の評定結果が得られる。
なお、本実施の形態において、音素の欠落を検知できれば良く、評定値の算出アルゴリズムは問わない。評定値の算出アルゴリズムは、上述したアルゴリズム(DAP、p−DAP、t−DAP、t−p−DAP)でも良く、または、本明細書では述べていない他のアルゴリズムでも良い。
また、本実施の形態において、音素の欠落の検知アルゴリズムは、他のアルゴリズムでも良い。例えば、音素の欠落の検知において、所定長さ未満の区間であることを欠落区間の検知で必須としても良いし、区間長を考慮しなくても良い。
また、本実施の形態における歌声評定装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、歌詞を伴う歌声を受け付ける歌声受付ステップと、前記歌声受付ステップで受け付けた歌声から音素に関する情報である音素情報を抽出する音素情報抽出ステップと、前記音素情報抽出ステップで抽出した音素情報と教師データに基づいて、前記歌声の評定をする評定ステップと、前記評定ステップにおける評定結果を出力する出力ステップを実行させるためのプログラム、である。
また、上記プログラムの前記評定ステップにおいて、歌声受付ステップで受け付けた歌声をフレームに区分し、当該区分したフレーム毎の音声データであるフレーム音声データを1以上得て、前記教師データと前記1以上のフレーム音声データに基づいて、前記歌声受付ステップで受け付けた歌声の評定を行う発音評定ステップを具備しても良い。
また、上記プログラムの前記発音評定ステップにおいて、前記フレーム毎の入力音声データに基づいて、特殊な音声が入力されたことを検知する特殊音声検知ステップと、前記教師データと前記特殊音声検知ステップにおける検知結果に基づいて、前記歌声受付ステップで受け付けた歌声の評定を行う評定値算出ステップを具備しても良い。
また、上記プログラムにおいて、前記特殊音声検知ステップは、一の音素の評定値が所定の条件を満たすことを検知し、前記評定値算出ステップは、前記特殊音声検知ステップで前記所定の条件を満たすことを検知した場合に、少なくとも音素の欠落があった旨を示す評定結果を構成しても良い。
また、実施の形態5から実施の形態8において検出した特殊音声は、無音、挿入、置換、欠落であった。歌声評定装置は、かかるすべての特殊音声について検知しても良いことはいうまでもない。また、歌声評定装置は、主として、実施の形態1から実施の形態4において述べた評定値の算出アルゴリズムを利用して、特殊音声の検出を行ったが、他の評定値の算出アルゴリズムを利用しても良い。
また、特殊音声は、無音、挿入、置換、欠落に限られない。例えば、特殊音声は、garbage(雑音などの雑多な音素等)であっても良い。受け付けた音声にgarbageが混入している場合、その区間は類似度の計算対象から除外するのがしばしば望ましい。例えば、発音評定においては、学習者の発声には通常、息継ぎや無声区間などが数多く表れ、それらに対応する発声区間を評定対象から取り除くことが好適である。なお、無音は、一般に、garbageの一種である、と考える。
そこで,どの音素にも属さない雑多な音素(garbage音素)を設定し、garbageのHMMをあらかじめ格納しておく。スコア低下区間において、garbageのHMMに対する評定値(γt(j))が所定の値より大きい場合,その区間はgarbage区間と判定することは好適である。特に、発音評定において,garbage区間が2つの単語にまたがっている場合、息継ぎなどが起こったものとして、評定値の計算対象から除外することは極めて好適である。
また、上記の実施の形態における歌声評定装置の出力例は、図25における出力例に限られない。
具体的には、歌声評定装置は、図54から図60におけるような出力を行っても良い。つまり、図54における出力例のように、音素の時間ズレと発音誤りのみを表示しても良い。かかる出力により、発音に関する間違いが明示され、外国語の歌の学習が効果的に行える。図54において、学習者が正しい発音をした場合には、丸の中に音素を表示している(図54の541)。また、学習者の歌声における発音誤りを正方形の形状で示している(542)。また、音素の時間ずれが発生している場合は、丸、または正方形の形状を所定の色で塗りつぶしている(543)。また、時間ずれを破線で明示している(544)。なお、音素の時間ズレと発音誤りをいかに視覚的に示すかは問わない。
また、図55における出力例において、歌声評定装置は、発音誤りは表示せず、F0パターンと音素の時間ズレを表示する。具体的には、歌声評定装置は、教師データのF0パターンを示す曲線(図55の551)と、学習者の歌声のF0パターンを示す曲線(図55の552)を出力する。また、教師データ、および学習者の歌声のF0パターンの上に、正しい音素を表示し、かつ、音素の時間ずれを、丸の中を所定の色で塗りつぶすことにより明示している(図55の553)。また、F0のずれ、F0の時間ずれを網掛けで表示している(図55の554)。
また、図56の出力例において、歌声評定装置は、F0パターンと音素情報を分離し、全ての情報を表示する。図56において、教師データと学習者の歌声の発音誤りの音素をボールドフォントで表示し、かつ音素に下線を引いている(図56の561)。また、音素の時間的なずれを破線で示している(図56の562)。さらに、F0のずれ、F0の時間ずれを網掛けで表示している(図56の563)。
また、図57の出力例において、歌声評定装置は、教師データと学習者歌声のF0パターンの重ね合わせ表示している。図57において、教師データと学習者歌声のF0のずれ、F0の時間ずれを網掛けで表示している(図57の571)。
また、図58の出力例において、歌声評定装置は、全ての情報を統合し、楽譜イメージに重ね合わせて表示している。楽譜イメージは、予め格納されている楽譜情報に基づいて出力される。また、歌声評定装置は、教師データの表示については、正しい音素を各楽譜の位置に合わせて表示している(図58の581)。また、歌声評定装置は、学習者の発音誤りを、音素を正方形で囲んだ形状により表示している(図58の582)。また、歌声評定装置は、学習者の音素のずれを、音素を丸で囲み、かつ所定の色で塗りつぶして表示している。さらに、歌声評定装置は、F0のずれ、F0の時間ずれを網掛けで表示している(図58の584)。
また、図59の出力例において、歌声評定装置は、音素を日本語音で置換表示している。つまり、例えば、歌声評定装置は、音素(例えば、「a」)と日本語音(例えば、「ア」)を対応付けて格納している音素日本語音管理部を具備している。そして、歌声評定装置は、かかる音素日本語音管理部の情報から、音素を日本語音に変換し、図59のような日本語音を表示する。そして、歌声評定装置は、学習者の音素のずれを示すために、音素を丸で囲み、かつ所定の色で塗りつぶした図柄を表示している(図59の591)。さらに、歌声評定装置は、F0のずれ、F0の時間ずれを網掛けで表示している(図59の592)。
さらに、図60の出力例において、歌声評定装置は、図58の出力例に対して、発音誤りを除いて、音素を日本語音で置換表示している。本歌声評定装置も、音素日本語音管理部を具備している。そして、歌声評定装置は、かかる音素日本語音管理部の情報から、音素を日本語音に変換し、図60のような日本語音を表示する。そして、歌声評定装置は、学習者の音素のずれを示すために、音素を丸で囲み、かつ所定の色で塗りつぶした図柄を表示している(図60の601)。さらに、歌声評定装置は、F0のずれ、F0の時間ずれを網掛けで表示している(図60の602)。
以上、歌声評定装置の出力例を種々説明したが、上記以外の出力態様でも良いことは言うまでもない。
また、図52は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の歌声評定装置を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図52は、このコンピュータシステム520の概観図であり、図53は、コンピュータシステム520のブロック図である。
図52において、コンピュータシステム520は、FD(Flexible Disk)ドライブ、CD−ROM(Compact Disk Read Only Memory)ドライブを含むコンピュータ521と、キーボード522と、マウス523と、モニタ524と、マイク525とを含む。
図53において、コンピュータ521は、FDドライブ5211、CD−ROMドライブ5212に加えて、CPU(Central Processing Unit)5213と、CPU5213、CD−ROMドライブ5212及びFDドライブ5211に接続されたバス5214と、ブートアッププログラム等のプログラムを記憶するためのROM(Read−Only Memory)5215と、CPU5213に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM(Random Access Memory)5216と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク5217とを含む。ここでは、図示しないが、コンピュータ521は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム520に、上述した実施の形態の歌声評定装置の機能を実行させるプログラムは、CD−ROM5301、またはFD5302に記憶されて、CD−ROMドライブ5212またはFDドライブ5211に挿入され、さらにハードディスク5217に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ521に送信され、ハードディスク5217に記憶されても良い。プログラムは実行の際にRAM5216にロードされる。プログラムは、CD−ROM5301、FD5302またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ521に、上述した実施の形態の歌声評定装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム520がどのように動作するかは周知であり、詳細な説明は省略する。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において述べた歌声評定装置は、いわゆるカラオケ装置に搭載されることは好適である。カラオケ装置における歌声を評定する処理以外の処理は、公知技術により実現可能であるので、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。