(57)【要約】【課題】歌詞表示のためのタイミングデータが与えられていない楽曲データであっても、楽曲データの再生時間に合わせて、適切に歌詞を表示すること。【解決手段】音素データ変換部３１は歌詞データ格納部２３から歌詞データを読み込み、音素辞書格納部２４を参照し歌詞データを音素列に変換する。モーラ数計算部３２は、モーラ数計算ルールを参照し音素列を読み込み区間モーラ数および行モーラ数を計算する。モーラ速度計算部３３は、歌唱時間データ格納部２３から歌唱時間データを読み込み歌唱区間の時間長を計算すると共に、モーラ数計算部３２によって計算された区間モーラ数を時間長で割ることによって歌唱区間毎のモーラ速度を計算する。表示タイミング計算部３４は、モーラ速度計算部３３によって計算されたモーラ速度と、モーラ数計算部３２で計算された行モーラ数とに基づいて歌詞データの各行毎の表示タイミングを計算する。【選択図】図１
2010085581.tif 000002
【特許請求の範囲】
【請求項１】
楽曲データにおける歌唱データの存在区間である歌唱区間毎に、前記歌唱区間の開始時間および終了時間である歌唱時間データを格納する歌唱時間データ格納部と、
前記歌唱区間毎に、テキストデータとして記述された前記楽曲データの歌詞データを格納する歌詞データ格納部と、
文字または単語をその意味を区別する働きのある最小の音声単位である音素データに変換するための音素辞書を格納する音素辞書格納部と、
前記音素データから、発音上一定の時間的長さを有する音の分節単位であるモーラの個数を計算するためのモーラ数計算ルールを格納するモーラ数計算ルール格納部と、
前記歌詞データ格納部から前記歌詞データを読み込み、前記音素辞書格納部を参照して、前記歌詞データを前記音素データに変換する音素データ変換部と、
前記モーラ数計算ルールを参照し、前記音素データ変換部によって作成された前記音素データを読み込み、前記歌唱区間の前記モーラの個数である区間モーラ数および前記歌唱区間の各行の前記モーラの個数である行モーラ数を計算するモーラ数計算部と、
前記歌唱時間データ格納部から前記歌唱時間データを読み込み、前記歌唱区間の時間長を計算すると共に、前記モーラ数計算部によって計算された前記区間モーラ数を、前記時間長で割ることによって求められる、前記歌唱区間毎のモーラ速度を計算するモーラ速度計算部と、
前記モーラ速度計算部によって計算された前記モーラ速度と、前記モーラ数計算部で計算された前記行モーラ数とに基づいて、前記歌詞データの各行毎の表示タイミングを計算する表示タイミング計算部と、
前記表示タイミング計算部によって計算された前記表示タイミングに基づいて、前記楽曲データの再生に同期させて前記歌詞データを表示させる表示制御部と、
を有する歌詞データ表示装置。
【請求項２】
楽曲データにおける歌唱データの存在区間である歌唱区間毎に、前記歌唱区間の開始時間および終了時間である歌唱時間データを格納する歌唱時間データ格納部と、
テキストデータとして記述された前記楽曲データの歌詞データを格納する歌詞データ格納部と、
文字または単語をその意味を区別する働きのある最小の音声単位である音素データに変換するための音素辞書を格納する音素辞書格納部と、
前記音素データから、発音上一定の時間的長さを有する音の分節単位であるモーラの個数を計算するためのモーラ数計算ルールを格納するモーラ数計算ルール格納部と、
前記歌詞データ格納部から前記歌詞データを読み込み、前記音素辞書格納部を参照して、前記歌詞データを前記音素データに変換する音素データ変換部と、
前記モーラ数計算ルールを参照し、前記音素データ変換部によって作成された前記音素データを読み込み、前記歌詞データ全体の前記モーラの個数である全モーラ数および前記歌詞データの各行毎の前記モーラの個数である行モーラ数を計算するモーラ数計算部と、
前記歌唱時間データ格納部から前記歌唱時間データを読み込み、前記各歌唱区間の時間長およびその合計値である合計時間長を計算し、前記モーラ数計算部によって計算された前記全モーラ数を、前記合計時間長で割ることによって求められる平均モーラ速度を計算すると共に、前記各歌唱区間の時間長を前記平均モーラ速度で割ることにより得られる各歌唱区間の推定モーラ数と、前記行モーラ数とに基づいて、前記歌詞データを行毎に前記各歌唱区間に対応させる歌唱区間分割部と、
前記歌唱区間分割部で得られた前記歌詞データと前記歌唱区間との対応情報と、前記モーラ数計算部で計算された前記行モーラ数とに基づいて、前記歌唱区間毎のモーラ数を計算すると共に、それを前記歌唱区間分割部で計算された前記歌唱区間の時間長で割ることによって求められる、前記歌唱区間毎のモーラ速度を計算するモーラ速度計算部と、
前記モーラ速度計算部によって計算された前記モーラ速度と、前記モーラ数計算部で計算された前記行モーラ数とに基づいて、前記歌詞データの各行毎の表示タイミングを計算する表示タイミング計算部と、
前記表示タイミング計算部によって計算された前記表示タイミングに基づいて、前記楽曲データの再生に同期させて前記歌詞データを表示させる表示制御部と、
を有する歌詞データ表示装置。
【請求項３】
請求項１または請求項２に記載の歌詞データ表示装置において、
さらに、
漢字とその読み方を示す平仮名とを一つ以上対応させて格納する漢字辞書格納部と、
前記歌詞データ格納部から取得した前記歌詞データ中の漢字を、前記漢字辞書格納部を参照して平仮名に変換する平仮名変換部と、を有し、
前記音素データ変換部は、
前記音素辞書格納部を参照して、前記平仮名変換部によって平仮名に変換された前記歌詞データを前記音素データに変換し、音素列を作成する、歌詞データ表示装置。
【請求項４】
楽曲データにおける歌唱データの存在区間である歌唱区間に対応する、１つ以上の行で構成されるテキストデータとして記述された楽曲データの歌詞データを読み込むと共に、文字乃至は単語を語の意味を区別する働きのある最小の音声単位である音素データに変換するための音素辞書を参照し、前記歌詞データを前記音素データに変換した音素時系列データを作成するステップと、
前記音素時系列データに対して、発音上一定の時間的長さを有する音の分節単位であるモーラの個数を計算し、前記歌唱区間のモーラの個数である区間モーラ数および前記歌唱区間の各行のモーラの個数である行モーラ数を計算するステップと、
前記区間モーラ数を前記歌唱区間の時間長で除算して得られる歌唱区間毎のモーラ速度を計算するステップと、
前記モーラ速度と前記行モーラ数とに基づいて、前記歌詞データの各行毎に楽曲データの先頭からの時間を計算するステップと、
前記表示タイミングに基づいて、前記楽曲データの再生に同期させて前記歌詞データを表示させるステップと、
を有する歌詞データ表示方法。
【請求項５】
１つ以上の行で構成されるテキストデータとして記述された楽曲データの歌詞データを読み込むと共に、文字乃至は単語を語の意味を区別する働きのある最小の音声単位である音素データに変換するための音素辞書を参照し、前記歌詞データを前記音素データに変換した音素時系列データを作成するステップと、
前記音素時系列データに対して、発音上一定の時間的長さを有する音の分節単位であるモーラの個数を計算し、前記楽曲データ全体のモーラの個数である全モーラ数および前記歌詞データの各行のモーラの個数である行モーラ数を計算するステップと、
前記全モーラ数を、楽曲データにおける歌唱データの存在区間である各歌唱区間の時間長の合計値で除算して得られる平均モーラ速度を計算するステップと、
前記各歌唱区間の時間長を前記平均モーラ速度で除算して得られる各歌唱区間の推定モーラ数を計算するステップと、
前記推定モーラ数と、前記行モーラ数とに基づいて、前記歌詞データの各行と前記各歌唱区間との対応情報を作成するステップと、
前記対応情報と前記行モーラ数とに基づいて、前記各歌唱区間毎のモーラの個数である区間モーラ数を計算するステップと、
前記区間モーラ数を前記歌唱区間の時間長で除算して得られる歌唱区間毎のモーラ速度を計算するモーラ速度計算ステップと、
前記モーラ速度と前記行モーラ数とに基づいて、前記歌詞データの各行毎に楽曲データの先頭からの時間を計算するタイミング計算ステップと、
前記表示タイミングに基づいて、前記楽曲データの再生に同期させて前記歌詞データを表示させるステップと、
を有する歌詞データ表示方法。
【請求項６】
楽曲データにおける歌唱データの存在区間である歌唱区間に対応する、１つ以上の行で構成されるテキストデータとして記述された楽曲データの歌詞データを読み込むと共に、文字乃至は単語を語の意味を区別する働きのある最小の音声単位である音素データに変換するための音素辞書を参照し、前記歌詞データを前記音素データに変換した音素時系列データを作成するステップと、
前記音素時系列データに対して、発音上一定の時間的長さを有する音の分節単位であるモーラの個数を計算し、前記歌唱区間のモーラの個数である区間モーラ数および前記歌唱区間の各行のモーラの個数である行モーラ数を計算するステップと、
前記区間モーラ数を前記歌唱区間の時間長で除算して得られる歌唱区間毎のモーラ速度を計算するステップと、
前記モーラ速度と前記行モーラ数とに基づいて、前記歌詞データの各行毎に楽曲データの先頭からの時間を計算するステップと、
前記表示タイミングに基づいて、前記楽曲データの再生に同期させて前記歌詞データを表示させるステップと、
をコンピュータに実行させる歌詞データ表示プログラム。
【請求項７】
１つ以上の行で構成されるテキストデータとして記述された楽曲データの歌詞データを読み込むと共に、文字乃至は単語を語の意味を区別する働きのある最小の音声単位である音素データに変換するための音素辞書を参照し、前記歌詞データを前記音素データに変換した音素時系列データを作成するステップと、
前記音素時系列データに対して、発音上一定の時間的長さを有する音の分節単位であるモーラの個数を計算し、前記楽曲データ全体のモーラの個数である全モーラ数および前記歌詞データの各行のモーラの個数である行モーラ数を計算するステップと、
前記全モーラ数を、楽曲データにおける歌唱データの存在区間である各歌唱区間の時間長の合計値で除算して得られる平均モーラ速度を計算するステップと、
前記各歌唱区間の時間長を前記平均モーラ速度で除算して得られる各歌唱区間の推定モーラ数を計算するステップと、
前記推定モーラ数と、前記行モーラ数とに基づいて、前記歌詞データの各行と前記各歌唱区間との対応情報を作成するステップと、
前記対応情報と前記行モーラ数とに基づいて、前記各歌唱区間毎のモーラの個数である区間モーラ数を計算するステップと、
前記区間モーラ数を前記歌唱区間の時間長で除算して得られる歌唱区間毎のモーラ速度を計算するモーラ速度計算ステップと、
前記モーラ速度と前記行モーラ数とに基づいて、前記歌詞データの各行毎に楽曲データの先頭からの時間を計算するタイミング計算ステップと、
前記表示タイミングに基づいて、前記楽曲データの再生に同期させて前記歌詞データを表示させるステップと、
をコンピュータに実行させる歌詞データ表示プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音楽コンテンツが記録された記録メディアを再生し、再生に合わせて適切なタイミングで歌詞を表示する歌詞データ表示装置、歌詞データ表示方法、歌詞データ表示プログラムに関する。
【背景技術】
【０００２】
近年、インターネットを介したサービスの普及により、楽曲データの歌詞を、検索エンジンなどを用いて取得することができるようになった。しかし、取得できる歌詞の多くは、楽曲データの再生時間に対応する歌詞表示のタイミング（同期）情報が与えられていないことがほとんどである。そのため、楽曲データを再生しながら、歌に合わせて適切な歌詞を表示するためには、事前にタイミングデータを作成する必要がある。このタイミングデータを手動で入力する場合、非常に煩雑な作業を行わなければならない。この問題を解決するために、タイミングデータを自動で作成する手法が提案されている。例えば、特許文献１の手法では、まず、バンドパスフィルタによって、音響信号からボーカル音声を取り出し、取り出したボーカル音声を、音声認識によってコード化する。次に、コード化されたボーカル音声を基に、一致する歌詞のフレーズを検索して、見つかったフレーズを表示する。
【特許文献１】特開２００２−１６９５７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、特許文献１による方法では、例えば、ピアノやギターなどの、ボーカル帯域にかかる楽器の楽音が楽曲データ中に存在すると、ボーカル音声だけを抽出することが困難になるため、楽器音の小さい楽曲データや、アカペラなど、限定された楽曲データでなければ、抽出の精度は低下し、ボーカル音声の抽出ができない、という問題がある。
【０００４】
特に、ボーカル音声は、話速やアクセント、周波数帯域などが、通常の会話とは異なるため、音声認識エンジンで正しく処理を行うことが難しい。
【０００５】
そこで、本発明は、歌詞表示のためのタイミングデータが与えられていない楽曲データであっても、楽曲データの再生時間に合わせて、適切に歌詞を表示することができる歌詞データ表示装置、歌詞データ表示方法、歌詞データ表示プログラムを提供するものである。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明は、楽曲データにおける歌唱データの存在区間である歌唱区間毎に、前記歌唱区間の開始時間および終了時間である歌唱時間データを格納する歌唱時間データ格納部と、前記歌唱区間毎に、テキストデータとして記述された前記楽曲データの歌詞データを格納する歌詞データ格納部と、文字または単語をその意味を区別する働きのある最小の音声単位である音素データに変換するための音素辞書を格納する音素辞書格納部と、前記音素データから、発音上一定の時間的長さを有する音の分節単位であるモーラの個数を計算するためのモーラ数計算ルールを格納するモーラ数計算ルール格納部と、前記歌詞データ格納部から前記歌詞データを読み込み、前記音素辞書格納部を参照して、前記歌詞データを前記音素データに変換する音素データ変換部と、前記モーラ数計算ルールを参照し、前記音素データ変換部によって作成された前記音素データを読み込み、前記歌唱区間の前記モーラの個数である区間モーラ数および前記歌唱区間の各行の前記モーラの個数である行モーラ数を計算するモーラ数計算部と、前記歌唱時間データ格納部から前記歌唱時間データを読み込み、前記歌唱区間の時間長を計算すると共に、前記モーラ数計算部によって計算された前記区間モーラ数を、前記時間長で割ることによって求められる、前記歌唱区間毎のモーラ速度を計算するモーラ速度計算部と、前記モーラ速度計算部によって計算された前記モーラ速度と、前記モーラ数計算部で計算された前記行モーラ数とに基づいて、前記歌詞データの各行毎の表示タイミングを計算する表示タイミング計算部と、前記表示タイミング計算部によって計算された前記表示タイミングに基づいて、前記楽曲データの再生に同期させて前記歌詞データを表示させる表示制御部と、を有する歌詞データ表示装置である。
また、次の発明は、楽曲データにおける歌唱データの存在区間である歌唱区間毎に、前記歌唱区間の開始時間および終了時間である歌唱時間データを格納する歌唱時間データ格納部と、テキストデータとして記述された前記楽曲データの歌詞データを格納する歌詞データ格納部と、文字または単語をその意味を区別する働きのある最小の音声単位である音素データに変換するための音素辞書を格納する音素辞書格納部と、前記音素データから、発音上一定の時間的長さを有する音の分節単位であるモーラの個数を計算するためのモーラ数計算ルールを格納するモーラ数計算ルール格納部と、前記歌詞データ格納部から前記歌詞データを読み込み、前記音素辞書格納部を参照して、前記歌詞データを前記音素データに変換する音素データ変換部と、前記モーラ数計算ルールを参照し、前記音素データ変換部によって作成された前記音素データを読み込み、前記歌詞データ全体の前記モーラの個数である全モーラ数および前記歌詞データの各行毎の前記モーラの個数である行モーラ数を計算するモーラ数計算部と、前記歌唱時間データ格納部から前記歌唱時間データを読み込み、前記各歌唱区間の時間長およびその合計値である合計時間長を計算し、前記モーラ数計算部によって計算された前記全モーラ数を、前記合計時間長で割ることによって求められる平均モーラ速度を計算すると共に、前記各歌唱区間の時間長を前記平均モーラ速度で割ることにより得られる各歌唱区間の推定モーラ数と、前記行モーラ数とに基づいて、前記歌詞データを行毎に前記各歌唱区間に対応させる歌唱区間分割部と、前記歌唱区間分割部で得られた前記歌詞データと前記歌唱区間との対応情報と、前記モーラ数計算部で計算された前記行モーラ数とに基づいて、前記歌唱区間毎のモーラ数を計算すると共に、それを前記歌唱区間分割部で計算された前記歌唱区間の時間長で割ることによって求められる、前記歌唱区間毎のモーラ速度を計算するモーラ速度計算部と、前記モーラ速度計算部によって計算された前記モーラ速度と、前記モーラ数計算部で計算された前記行モーラ数とに基づいて、前記歌詞データの各行毎の表示タイミングを計算する表示タイミング計算部と、前記表示タイミング計算部によって計算された前記表示タイミングに基づいて、前記楽曲データの再生に同期させて前記歌詞データを表示させる表示制御部と、を有する歌詞データ表示装置である。
ここで、上記歌詞データ表示装置において、さらに、漢字とその読み方を示す平仮名とを一つ以上対応させて格納する漢字辞書格納部と、前記歌詞データ格納部から取得した前記歌詞データ中の漢字を、前記漢字辞書格納部を参照して平仮名に変換する平仮名変換部と、を有し、前記音素データ変換部は、前記音素辞書格納部を参照して、前記平仮名変換部によって平仮名に変換された前記歌詞データを前記音素データに変換し、音素列を作成する、ようにしても良い。
また、次の発明は、楽曲データにおける歌唱データの存在区間である歌唱区間に対応する、１つ以上の行で構成されるテキストデータとして記述された楽曲データの歌詞データを読み込むと共に、文字乃至は単語を語の意味を区別する働きのある最小の音声単位である音素データに変換するための音素辞書を参照し、前記歌詞データを前記音素データに変換した音素時系列データを作成するステップと、前記音素時系列データに対して、発音上一定の時間的長さを有する音の分節単位であるモーラの個数を計算し、前記歌唱区間のモーラの個数である区間モーラ数および前記歌唱区間の各行のモーラの個数である行モーラ数を計算するステップと、前記区間モーラ数を前記歌唱区間の時間長で除算して得られる歌唱区間毎のモーラ速度を計算するステップと、前記モーラ速度と前記行モーラ数とに基づいて、前記歌詞データの各行毎に楽曲データの先頭からの時間を計算するステップと、前記表示タイミングに基づいて、前記楽曲データの再生に同期させて前記歌詞データを表示させるステップと、を有する歌詞データ表示方法である。
また、次の発明は、１つ以上の行で構成されるテキストデータとして記述された楽曲データの歌詞データを読み込むと共に、文字乃至は単語を語の意味を区別する働きのある最小の音声単位である音素データに変換するための音素辞書を参照し、前記歌詞データを前記音素データに変換した音素時系列データを作成するステップと、前記音素時系列データに対して、発音上一定の時間的長さを有する音の分節単位であるモーラの個数を計算し、前記楽曲データ全体のモーラの個数である全モーラ数および前記歌詞データの各行のモーラの個数である行モーラ数を計算するステップと、前記全モーラ数を、楽曲データにおける歌唱データの存在区間である各歌唱区間の時間長の合計値で除算して得られる平均モーラ速度を計算するステップと、前記各歌唱区間の時間長を前記平均モーラ速度で除算して得られる各歌唱区間の推定モーラ数を計算するステップと、前記推定モーラ数と、前記行モーラ数とに基づいて、前記歌詞データの各行と前記各歌唱区間との対応情報を作成するステップと、前記対応情報と前記行モーラ数とに基づいて、前記各歌唱区間毎のモーラの個数である区間モーラ数を計算するステップと、前記区間モーラ数を前記歌唱区間の時間長で除算して得られる歌唱区間毎のモーラ速度を計算するモーラ速度計算ステップと、前記モーラ速度と前記行モーラ数とに基づいて、前記歌詞データの各行毎に楽曲データの先頭からの時間を計算するタイミング計算ステップと、前記表示タイミングに基づいて、前記楽曲データの再生に同期させて前記歌詞データを表示させるステップと、を有する歌詞データ表示方法である。
また、次の発明は、楽曲データにおける歌唱データの存在区間である歌唱区間に対応する、１つ以上の行で構成されるテキストデータとして記述された楽曲データの歌詞データを読み込むと共に、文字乃至は単語を語の意味を区別する働きのある最小の音声単位である音素データに変換するための音素辞書を参照し、前記歌詞データを前記音素データに変換した音素時系列データを作成するステップと、前記音素時系列データに対して、発音上一定の時間的長さを有する音の分節単位であるモーラの個数を計算し、前記歌唱区間のモーラの個数である区間モーラ数および前記歌唱区間の各行のモーラの個数である行モーラ数を計算するステップと、前記区間モーラ数を前記歌唱区間の時間長で除算して得られる歌唱区間毎のモーラ速度を計算するステップと、前記モーラ速度と前記行モーラ数とに基づいて、前記歌詞データの各行毎に楽曲データの先頭からの時間を計算するステップと、前記表示タイミングに基づいて、前記楽曲データの再生に同期させて前記歌詞データを表示させるステップと、をコンピュータに実行させる歌詞データ表示プログラムである。
また、次の発明は、１つ以上の行で構成されるテキストデータとして記述された楽曲データの歌詞データを読み込むと共に、文字乃至は単語を語の意味を区別する働きのある最小の音声単位である音素データに変換するための音素辞書を参照し、前記歌詞データを前記音素データに変換した音素時系列データを作成するステップと、前記音素時系列データに対して、発音上一定の時間的長さを有する音の分節単位であるモーラの個数を計算し、前記楽曲データ全体のモーラの個数である全モーラ数および前記歌詞データの各行のモーラの個数である行モーラ数を計算するステップと、前記全モーラ数を、楽曲データにおける歌唱データの存在区間である各歌唱区間の時間長の合計値で除算して得られる平均モーラ速度を計算するステップと、前記各歌唱区間の時間長を前記平均モーラ速度で除算して得られる各歌唱区間の推定モーラ数を計算するステップと、前記推定モーラ数と、前記行モーラ数とに基づいて、前記歌詞データの各行と前記各歌唱区間との対応情報を作成するステップと、前記対応情報と前記行モーラ数とに基づいて、前記各歌唱区間毎のモーラの個数である区間モーラ数を計算するステップと、前記区間モーラ数を前記歌唱区間の時間長で除算して得られる歌唱区間毎のモーラ速度を計算するモーラ速度計算ステップと、前記モーラ速度と前記行モーラ数とに基づいて、前記歌詞データの各行毎に楽曲データの先頭からの時間を計算するタイミング計算ステップと、前記表示タイミングに基づいて、前記楽曲データの再生に同期させて前記歌詞データを表示させるステップと、をコンピュータに実行させる歌詞データ表示プログラムである。
【発明の効果】
【０００７】
本発明の歌詞データ表示装置によれば、楽曲データと歌詞の同期情報のない歌詞データに対して、歌詞行の表示開始のタイミング情報を与えることができ、ユーザが特別な作業を行わなくとも、再生される楽曲データに合わせて、適切な歌詞行を表示することができる。また、音素辞書を用意するだけで、あらゆる言語の楽曲データについて、簡単に対応することができる。また、音響信号の分析や音声認識などを行わないので、従来手法よりも高速に処理することが可能である。また、どのような楽器構成の楽曲データであっても、歌詞表示のタイミング情報を与えることができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明を実施するための最良の形態について、好ましい実施形態を示して説明する。
【０００９】
実施形態１.
本発明の実施形態に基づく実施形態１の歌詞データ表示装置１についての説明を行う。  
【００１０】
図１は、本発明の実施形態１に基づく歌詞データ表示装置１の構成例を示すブロック図である。
【００１１】
図１において、歌詞データ表示装置１は、入力部１０と、格納部２０と、制御部３０と、表示部４０と、再生部５０とで構成される。また、格納部２０は、機能別に、楽曲データ格納部２１と、歌唱時間データ格納部２２と、歌詞データ格納部２３と、音素辞書格納部２４と、モーラ数計算ルール格納部２５とを有し、制御部３０は、音素データ変換部３１と、モーラ数計算部３２と、モーラ速度計算部３３と、表示タイミング設定部３４と、表示制御部３５とを有する。
【００１２】
入力部１０は、歌詞データ表示装置に対して選択や決定動作を行うことのできる入力機器である。
【００１３】
図２に入力部１０の一例を示す。図２では、入力部１０として、選択動作を行うための十字キー１０００と、決定動作を行うための決定ボタン１００１が示されている。
【００１４】
格納部２０は、ハードディスクやフラッシュメモリのような高速アクセスが可能な大容量記録媒体である。以降、格納部２０を機能別に分けて説明する。
【００１５】
楽曲データ格納部２１は、楽曲データ本体であるデジタルデータと、各楽曲データのデジタルデータを一意に識別するための識別子である楽曲データＩＤとを格納する。楽曲データＩＤは、１、２、３といった数値でも良いし、ＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）などを用いても良い。なお、楽曲データ格納部２１は、本装置外に設けられていても勿論よい。
【００１６】
歌唱時間データ格納部２２は、楽曲データにおける歌唱データの存在区間である歌唱区間毎に、歌唱区間の開始時間および終了時間である歌唱時間データを格納するもので、楽曲データＩＤと、楽曲データＩＤによって対応付けられた楽曲データのボーカル音声である歌唱データの存在する一つ以上の区間（歌唱区間）の開始時間および終了時間の歌唱時間データを格納する。歌唱区間データは、歌唱区間の開始時間および終了時間を対にして格納される。
【００１７】
図３に、歌唱時間データ格納部２２に格納される歌唱時間データのフォーマットの一例を示す。図３の例では、楽曲データＩＤと、歌唱区間番号と、各歌唱区間の開始時間、終了時間とを格納している。楽曲データＩＤ「ＩＤ１」の歌唱区間は２つであり、歌唱区間番号１の開始時間は１０秒、終了時間は３０秒である。歌唱区間番号２の開始時間は、５０秒、終了時間は１分２０秒である。なお、歌唱時間データ格納部２２には、ボーカル音声のある区間ではなく、前奏や間奏などのボーカル音声のない区間を格納してもよい。その場合、ボーカル音声のない区間以外の区間を、歌唱区間に変換する。
【００１８】
歌詞データ格納部２３は、歌唱区間毎に、テキストデータとして記述された前記楽曲データの歌詞データを格納するもので、楽曲データＩＤと、対応する楽曲データの歌唱区間毎の歌詞データとを格納する。
【００１９】
図４に、歌詞データ格納部２３に格納された歌詞データの一例を示す。図４の例では、楽曲データＩＤと、その楽曲データを歌唱区間毎に分けた、改行区切り文字を含む歌詞のテキストデータを格納している。楽曲データＩＤ「ＩＤ１」の楽曲データの歌唱区間は２つあり、それぞれの歌唱区間毎に歌詞のテキストデータが格納されている。なお、日本語の歌詞データは、予め平仮名に直して格納する。
【００２０】
音素辞書格納部２４は、文字または単語をその意味を区別する働きのある最小の音声単位である音素データに変換するための音素辞書を格納する。音素とは、語の意味を区別する働きのある最小の音声単位である。日本語で例を示すと、「あき」は、「aki」という子音と母音の組み合わせで構成されるが、これらの/a/，/k/，/i/が音素である。/k/を/s/に変更すると、「あし」と発音され、語の意味が変化する。
【００２１】
図５に英語用の音素辞書の一例を示す。図５の例では、左側に英語の語、右側に、語に対応する音素を格納している。英語の場合は、語は単語であり、可能な限り多くの単語についての音素を格納する。日本語の場合は、単語の構成によって音素が変化することはないため、単語ではなく、平仮名の音素を格納する。
【００２２】
図６に、日本語用の音素辞書の一例を示す。図６の例では、“あいうえおか・・・”の５０音順に、それぞれの音素をローマ字により示している。
【００２３】
モーラ数計算ルール格納部２５は、音素の列から発音上一定の時間的長さを有する音の分節単位であるモーラの個数、すなわちモーラ数を計算するためのモーラ数計算ルールを格納する。モーラとは、音韻論で用いられる単位であり、一定の時間的長さを有する音の分節単位である。例えば、「こたつ」は、一定の時間的長さを有する音が３音あるので、モーラ数は３である。「きゃたつ」は、３文字であるが、拗音「ゃ」は時間的長さを有してはいないため、モーラ数は「こたつ」と同様に３とカウントされる。モーラ数計算ルール格納部２５に関しては、後述のモーラ数計算部３２にて詳述する。以上が、格納部２０の説明である。
【００２４】
制御部３０は、不図示のＣＰＵやメモリを備えており、メモリ上に展開された歌詞表示用プログラムをＣＰＵが実行することにより、歌詞データ表示装置１全体を制御する。以降、制御部３０を機能別に分けて説明する。
【００２５】
音素データ変換部３１は、指定された楽曲データに対応する歌詞データを読み込み、音素辞書格納部２４を参照して、歌詞データを音素の並びである音素列である音素データに変換する。
【００２６】
音素データ変換部３１の動作の流れを、図７を参照して説明する。
【００２７】
まず、楽曲データＩＤが入力されると、音素データ変換部３１は、歌詞データ格納部２３を参照し、楽曲データＩＤに対応する歌詞データを取得する（ステップＳ３１０）。次に、音素データ変換部３１は、取得した歌詞データ中の未処理部分から、音素データに変換可能な語を取り出す（ステップＳ３１１）。例えば、日本語であれば平仮名１つ分で、英語であれば単語が、音素データに変換可能な語に当たる。次に、音素データ変換部３１は、ステップＳ３１１で取り出した語を、音素辞書格納部２４を参照して、音素データに変換する（ステップＳ３１２）。次に、音素データ変換部３１は、歌詞を全て音素データに変換したかどうかの判断を行う（ステップＳ３１３）。もし、未処理の語が残っている場合は、ステップＳ３１１に戻り、処理を繰り返す。そうでなければ、音素データ変換部３１は、処理を終了する。
【００２８】
音素データ変換部３１は、ステップＳ３１１において、改行区切りに相当する文字が取り出された場合は、そのまま改行区切りとして、音素列に出力する。
【００２９】
ここで、「An apple a day keeps the doctor away」という英文を処理する具体例を説明する。この場合、音素データ変換部３１は、まず、音素データに変換可能な最初の語であるanを取り出して、音素辞書格納部２４を参照し、音素データに変換する。まだ、音素データに変換していない語が残っているため、また次の語(apple)を取り出して音素データに変換する。上記処理を繰り返し、全ての語を前記音素データに変換した音素列が、図８である。
【００３０】
モーラ数計算部３２は、音素データ変換部３１によって作成された音素列のモーラ数を計算する。モーラ数の計算は、行単位で行う。行毎のモーラ数を、以降、行モーラ数と呼ぶ。音素ではなくモーラを用いる理由は、音素には、時間的な長さの情報を含まないためである。
【００３１】
モーラ数計算部３２によるモーラ数計算の処理の流れを、図９のフローチャートを参照して説明する。
【００３２】
まず、モーラ数計算部３２は、音素列から、まだモーラ数を計算していない行を１行抜き出す（ステップＳ３２０）。
【００３３】
次に、モーラ数計算部３２は、ステップＳ３２０で抜き出された音素列を母音記号（Ｖ）と子音記号（Ｃ）に変換し、ＶＣ列を作成する（ステップＳ３２１）。モーラ数計算部３２は、内部に変換表を有し、音素が母音であるならば、その音素をＶに変換し、音素が子音記号であるならば、その音素をＣに変換する。この変換の際に、もし、母音が２重母音であるならば、２個のＶに、３重母音であるならば、３個のＶに変換する。また、半母音（日本語での「ぁぃぅぇぉゃゅょ」などの拗音）は、ＶにもＣにも変換しない。また、促音（日本語での「っ」）や、撥音（日本語での「ん」）、及び長音（日本語での「ー」）は、Ｖに変換する。
【００３４】
図１０に、モーラ数計算部３２が内部に有する変換表の一例を示す。図１０では、左列に示した音素から、右列のＶＣへ変換するための表である。
【００３５】
図１１は、音素列からＶＣ列への変換例を示す。図１１の（Ａ）は、「An apple a day keeps the doctor away」の音素列とＶＣ列とを表にしたものであり、図１１の（Ｂ）は、「いろはにほへと  ちりぬるを」の音素列とＶＣ列とを表にしたものである。
【００３６】
次に、モーラ数計算部３２は、ステップＳ３２１で作成したＶＣ列から、部分ＶＣ列を取り出す（ステップＳ３２２）。つまり、モーラ数計算部３２は、読み込み位置ｐから最初に見つかるＶまでを部分ＶＣ列として、元のＶＣ列から取り出す。読み込み位置ｐの初期値は、ＶＣ列の先頭の文字であり、部分ＶＣ列を取り出した後、読み込み位置ｐを、発見したＶの次の位置に設定する。もし、ＶがＶＣ列の終端まで見つからなかった場合は、読み込み位置ｐからＶＣ列の終端までを、部分ＶＣ列として取り出す。また、部分ＶＣ列を取り出す際、単語と単語の間にある空白文字は、無視して処理を行う。その理由は、英語のように、単語の終わりが子音である言語において、例えば、「an apple」を実際に発音する場合、anとappleとの間は、間をおかずに続けて発音する性質を有するからである。
【００３７】
部分ＶＣ列を取り出す具体例を示すと、図１１の（Ａ）に示したＶＣ列に対して処理を行う場合、読み込み位置ｐがＶＣ列の先頭の文字であるとき、最初のＶが１文字目に登場するので、取り出される部分ＶＣ列は「Ｖ」である。読み込み位置ｐが２文字目の場合、取り出される部分ＶＣ列は「ＣＶ」である。
【００３８】
次に、モーラ数計算部３２は、部分ＶＣ列から、モーラ数を取得し、合計モーラ数に加算する（ステップＳ３２３）。つまり、モーラ数計算部３２は、モーラ数計算ルール格納部２５を参照し、部分ＶＣ列と一致するモーラ数を取得し、合計モーラ数に加算する。つまり、音素列のｎ行目のＶＣ列に対する合計モーラ数をＭｎとし、部分ＶＣ列から取得されたモーラ数をｍとすると、新しい合計モーラ数は、Ｍｎ＋ｍとなる。
【００３９】
図１２に、モーラ数計算ルール格納部２５の一例を示す。モーラ数計算ルール格納部２５に格納するルールを作成する場合、韻律的特徴を考慮して作成する。例えば、図１２の例において、「Ｃ」及び「Ｖ」がそれぞれモーラ数１であるのに、２つを組み合わせた「ＣＶ」もモーラ数１であるのは、子音＋母音を実際に発音すると、発音長さは「Ｃ」や「Ｖ」と同様の長さになる性質に基づいているためである。
【００４０】
次に、モーラ数計算部３２は、ＶＣ列からの部分ＶＣ列の取り出しを、全て終えたかどうかの判断を行う（ステップＳ３２４）。まだ終えていない場合はステップＳ３２１に戻り、処理を繰り返し、そうでなければ、ステップＳ３２５に進む。
【００４１】
モーラ数計算部３２は、ステップＳ３２４で、ＶＣ列からの部分ＶＣ列の取り出しを全て終えた場合、モーラ数を計算していない音素列の行がないかどうかを判断する（ステップＳ３２５）。もし、全ての音素列の処理が終了したのであれば、モーラ数計算部３２は処理を終了する。そうでなければ、ステップＳ３２０に戻る。
【００４２】
図１１（Ａ）の例を、部分ＶＣ列に分割して、それぞれのモーラ数を示した表を図１３に示す。図１３に示したモーラ数を全て足すと１６となり、この数値が行モーラ数である。以上がモーラ数計算部３２の処理の説明である。
【００４３】
モーラ速度計算部３３は、モーラ数計算部３２によって算出された、行モーラ数を基に、歌唱区間毎のモーラ速度を計算する。
【００４４】
モーラ速度計算部３３の動作の流れを図１４のフローチャートを参照して説明を行う。
【００４５】
モーラ速度計算部３３は、まず、歌詞データ格納部２３を参照して、歌唱区間番号ｉに対応する歌詞の開始行番号と終了行番号を取得する（ステップＳ３３０）。
【００４６】
次に、取得した開始行番号と終了行番号の区間のモーラ数の合計を、モーラ数計算部３２によって算出された歌詞行毎に求められた行モーラ数から計算する（ステップＳ３３１）。ここで求められる、歌唱区間のモーラ数を、区間モーラ数と呼ぶ。
【００４７】
次に、歌唱区間の時間長を取得する（ステップＳ３３２）。モーラ速度計算部３３は、歌唱時間データ格納部２２を参照して、歌唱区間ｉに対応する開始時間、終了時間を取得する。取得した開始時間をｔｓ、終了時間をｔｅとおくと、時間長Ｔは、
【００４８】
【数１】
2010085581.tif 000003
で求められる。
【００４９】
次に、ステップＳ３３１で求めた区間モーラ数と、ステップＳ３３２で求めた歌唱区間の時間長とを基に、モーラ速度を計算する（ステップＳ３３３）。歌唱区間ｉの区間モーラ数をＭｉ、歌唱区間ｉの時間長をＴｉとおくと、歌唱区間ｉのモーラ速度Ｖｉは、
【００５０】
【数２】
2010085581.tif 000004
で求められる。
【００５１】
次に、全ての歌唱区間についてモーラ速度を計算したかどうかを判断する。全ての歌唱区間についてモーラ速度を計算した場合は、モーラ速度計算部３３は処理を終了する。そうでなければ、歌唱区間ｉをｉ＋１に変更し、ステップＳ３３０に戻って処理を続行する。
【００５２】
ここで、図３と図４の例において、楽曲データＩＤがＩＤ１の曲について、歌唱区間１のモーラ速度を算出する具体例を示す。歌唱区間１の時間長Ｔ１は、終了時間が３０秒、開始時間が１０秒なので、３０−１０＝２０秒と求められる。歌唱区間１の区間モーラ数Ｍ１を２８とすると、モーラ速度Ｖ１は、２８／２０を計算して、１．４と求められる。以上がモーラ速度計算部３３の説明である。
【００５３】
表示タイミング設定部３４は、モーラ速度計算部３３によって求められた、歌唱区間毎のモーラ速度を基に、再生中における歌詞行毎の表示タイミングを設定する。歌唱区間ｉのモーラ速度をＶｉ、歌唱区間ｉ中の歌詞行ｎの行モーラ数をＭｎとすると、歌唱区間ｉ開始時間ｔｓからの歌詞行ｎのディレイ時間Ｄｎは、
【００５４】
【数３】
2010085581.tif 000005
で求めることができ、歌詞行ｎの表示開始時間Ｔｎは、Ｔｎ＝ｔｓ＋Ｄｎで求められる。  
【００５５】
上述の処理を、全ての歌唱区間、及び全ての歌詞行について繰り返し、歌詞行の表示開始時間Ｔｎを算出する。
【００５６】
前述のモーラ速度計算部３３の例で用いたモーラ速度Ｖ１＝１．４を基にして、表示開始時間を算出する具体例を示す。まず、図４に示した、楽曲データＩＤ「ＩＤ１」の歌唱区間１における１行目の歌詞行の表示開始時間は、歌唱区間１の開始時間と同値であるため、１０秒である。次に、２行目の歌詞行について、歌詞行１の行モーラ数は１６であるため、ディレイ時間Ｄ２は、
【００５７】
Ｄ２＝Ｍ１／Ｖ１＋Ｄ１＝１６／１．４＋０≒１１．４
と求められ、歌詞行２の表示開始時間は、１０＋１１．４＝２１．４秒と求められる。
【００５８】
表示制御部３５は、楽曲データの再生時間に合わせて、歌詞の表示を行う。表示制御部３５は、表示制御部３５は、再生中の楽曲データの再生位置を一定時間毎にチェックする。チェック時の楽曲データ再生位置を基に、前記表示タイミング設定部３４で設定された歌詞の表示開始時間を参照し、次の歌詞の表示開始時間を超えた場合、歌詞の表示を行う。以上が制御部３０の説明である。
【００５９】
表示部４０は、ディスプレイ等の表示機器等であり、歌詞を表示する。
【００６０】
再生部５０は、楽曲データのプレーヤやスピーカ、ヘッドホン等の再生機器である。
【００６１】
次に、本実施形態における、歌詞データ表示装置１全体の動作を、図１５のフローチャートを参照し説明する。
【００６２】
歌詞データ表示装置を起動すると、まず、制御部３０は、再生する楽曲データの入力を受け付ける（ステップＳ１０）。
【００６３】
図１６に、楽曲データ入力動作を行うためのユーザインタフェースの例を示す。図１６では、表示部４０に再生可能な楽曲データの一覧が表示されており、ユーザが入力部１０を介してカーソル１０１０を動かし、再生したい楽曲データを決定する。
【００６４】
次に、制御部３０は、ステップＳ１０で入力された情報から、再生する楽曲データの歌詞データを、歌詞データ格納部２３から取得する（ステップＳ２０）。
【００６５】
次に、制御部３０は、歌詞の表示タイミングの設定を行う（ステップＳ３０）。
【００６６】
表示タイミングの設定動作の処理の流れを、図１７のフローチャートを参照し説明を行う。
【００６７】
まず、音素データ変換部３１は、歌詞のテキストデータを音素へ変換し、音素列を作成する（ステップＳ３０００）。音素データ変換部３１の動作の流れについては、前述の図７の通りである。
【００６８】
次に、ステップＳ３０００で作成された音素列を基に、モーラ数計算部３２は、歌詞のモーラ数を計算する（ステップＳ３０１０）。モーラ数計算部３２の動作の流れについては、前述の図９の通りである。
【００６９】
次に、ステップＳ３０１０で計算されたモーラ数を基に、モーラ速度計算部３３は、歌唱区間毎のモーラ速度を計算する（ステップＳ３０２０）。モーラ速度計算部３３の動作の流れについては、前述の図１４の通りである。
【００７０】
次に、ステップＳ３０２０で計算された歌唱区間毎のモーラ速度を基に、表示タイミング設定部３４は、歌詞行毎の表示開始のタイミングを設定する（ステップＳ３０３０）。表示タイミング設定部３４の動作については、前述の通りである。以上が、歌詞データの同期表示制御処理の説明である。
【００７１】
図１５のフローチャートの説明に戻り、制御部３０は、ステップＳ１０で指示された楽曲データを再生する（ステップＳ４０）。
【００７２】
次に、表示制御部３５は、再生中の楽曲データの再生位置が、次に表示すべき歌詞行の表示開始時間を超えたかどうかを判断する（ステップＳ５０）。もし、超えた場合はステップＳ６０に進み、そうでなければステップＳ７０に進む。
【００７３】
ステップＳ５０において、真と判断した場合、制御部３０は、次に表示すべき歌詞行を、表示部４０に表示させる（ステップＳ６０）。図１８に、一例を示す。表示部４０内に示された歌詞１０２０が、楽曲データの再生時間に基づいて表示される歌詞である。
【００７４】
ステップＳ５０で偽と判断した場合、もしくはステップＳ６０の処理を終えると、制御部３０は、再生が終了したかどうかの判断を行う（ステップＳ７０）。もし、再生が終了していなければ、ステップＳ５０に戻り、再生が終了した場合は、歌詞データ表示装置１は処理を終了する。以上が、歌詞データ表示装置１の動作の説明である。
【００７５】
以上詳述したように、本実施形態１の歌詞データ表示装置１によれば、同期情報のない歌詞データに対して、歌詞行の表示開始のタイミング情報を与えることができ、ユーザが特別な作業を行わなくとも、再生される楽曲データに合わせて、適切な歌詞行を表示することができる。
【００７６】
なお、本実施形態におけるモーラ数計算ルール格納部２５の例は、言語に寄らず一つであったが、日本語や英語、ドイツ語、フランス語など、言語別に用意しても良い。
【００７７】
また、格納部２０は、歌詞データ表示装置１とネットワークによって接続された、外部機器であっても良い。
【００７８】
また、あらゆる言語の楽曲データについても、再生される楽曲データに合わせて、適切な歌詞行を表示することができる。
【００７９】
また、音響信号の分析や音声認識などを行わないので、従来手法よりも高速に処理することができる。
【００８０】
実施形態２.
次に、本発明の実施形態に基づく実施形態２の歌詞データ表示装置２についての説明を行う。日本語の歌詞には漢字がしばしば出現するが、漢字は音読み、訓読みだけでなく、送り仮名や用法などによって読みが変化する上、単語と単語との間には区切り文字が存在しないため、単語を多数収録した辞書だけでは音素データに変換することは困難である。そこで、実施形態２の歌詞データ表示装置２によれば、漢字を含む日本語の歌詞であっても、歌詞の同期処理を行うことができる。
【００８１】
図１９は、本発明の実施形態２に基づく歌詞データ表示装置２の構成例を示すブロック図である。
【００８２】
図１９において、実施形態２の歌詞データ表示装置２では、図２に示した歌詞データ表示装置１の格納部２０に、漢字辞書格納部２６が、制御部３０に平仮名変換部３６がそれぞれ追加されている。本実施形態２では、漢字辞書格納部２６と、平仮名変換部３６の説明のみを行い、その他の部に関しては、歌詞データ表示装置１と同様のため、説明を省略する。
【００８３】
漢字辞書格納部２６は、漢字で表された単語と、読み仮名と、品詞を格納する。
【００８４】
図２０に、漢字辞書格納部２６のフォーマットの一例を示す。図２０の例では、「会社」は名詞のみが格納されており、読み仮名は「かいしゃ」である。「書」は、名詞の場合の読み仮名は「しょ」であるが、カ行動詞である場合、例えば「書く」などの場合の読み仮名は「か」である。
【００８５】
平仮名変換部３６は、漢字を平仮名に変換する。平仮名変換部３６は、文章が入力されると、まず、公知の技術である形態素解析を行い、文章を品詞情報を含む単語へ分解する。次に、分解された単語と、品詞とを基に、漢字辞書格納部２６を参照して、平仮名へ変換する。この作業を入力された文章全てについて行う。
【００８６】
ここで、「彼女がケーキを買う」という文章を平仮名変換部３６によって平仮名に変換する具体例を示す。
【００８７】
図２１は、「彼女がケーキを買う」を形態素に変換した例を示している。図２１の各単語を、漢字辞書格納部２６を参照して平仮名に変換すると、「かのじょがけーきをかう」となる。
【００８８】
次に、本実施形態２における、歌詞データ表示装置２の動作例について、図２２のフローチャートを参照し説明する。
【００８９】
図２２のフローチャートは、実施形態１における歌詞データ表示装置１のフローチャート（図１５）に、さらに平仮名変換処理（ステップＳ２５）が追加されている。本実施形態では平仮名変換処理の説明を行い、その他の処理については、実施形態１と同様であるため、説明を省略する。
【００９０】
ステップＳ２０にて、歌詞データを取得すると、平仮名変換部３６は、取得した歌詞データを平仮名に変換する。平仮名変換部３６の動作は、前述の通りである。ステップＳ３０では、ステップＳ２０で変換した平仮名の歌詞データを利用して、歌詞データの同期表示制御処理を行う。その他の処理は、実施形態１と同様である。以上が歌詞データ表示装置２の説明である。
【００９１】
従って、本実施形態２の歌詞データ表示装置２によると、漢字を含む歌詞データであっても、歌詞の同期処理を行うことができる。
【００９２】
なお、本実施形態２では、日本語における漢字に関して取り扱ったが、漢字のように読みが用法によって変化する言語についても同様に適用できる。
【００９３】
実施形態３.
本発明の実施形態に基づく実施形態３の歌詞データ表示装置３についての説明を行う。歌詞データ表示装置３によれば、歌詞データが、歌唱区間に分けられて格納されていなくても、同期処理を行うことができる。
【００９４】
図２３は、本発明の実施形態に基づく歌詞データ表示装置３の構成例を示すブロック図である。
【００９５】
図２３において、歌詞データ表示装置３は、図２に示した歌詞データ表示装置１の格納部２０に歌詞行情報格納部２７が、制御部３０に歌唱区間分割部３７が、それぞれ追加されている。また、格納部２０の歌詞データ格納部２３の構成と、制御部３０のモーラ速度計算部３３とが異なるため、歌詞データ表示装置３では、それぞれ歌詞データ格納部２３Ａ、モーラ速度計算部３３Ａとする。本実施形態３では、歌詞データ格納部２３Ａと、歌詞行情報格納部２７と、歌唱区間分割部３７との説明のみを行い、その他の部に関しては、歌詞データ表示装置１と同様のため、説明を省略する。
【００９６】
歌詞データ格納部２３Ａは、楽曲データＩＤと、楽曲データＩＤに対応する楽曲データの歌詞とを格納する。歌詞データ表示装置１の歌詞データ格納部２３では、楽曲データの歌唱区間の情報が格納されていたが、歌詞データ表示装置３の歌詞データ格納部２３Ａでは、歌唱区間の情報は格納されていない。
【００９７】
図２４に歌詞データ格納部２３Ａに格納される歌詞データのフォーマットの一例を示す。
【００９８】
図２４に示した例は、図４に示したフォーマットの例から、歌唱区間に関する情報である歌唱区間番号を取り除いたものである。
【００９９】
歌詞行情報格納部２７は、歌唱区間分割部３７によって算出される、前記歌唱区間毎の歌詞の開始行番号と終了行番号を格納する。格納される情報は、後述する歌唱区間分割部３７によって与えられる。
【０１００】
図２５に、歌詞行情報格納部２７に格納される歌詞行情報のフォーマットの一例を示す。図２５では、例えば、歌唱区間１については、開始行番号が１で、終了行番号が２として格納されている。
【０１０１】
モーラ速度計算部３３Ａは、モーラ数計算部３２によって算出された行モーラ数を基に、歌唱区間毎のモーラ速度を計算する。モーラ速度計算部３３Ａと、モーラ速度計算部３３とは、図１４に示した、ステップＳ３３０の処理が異なる。モーラ速度計算部３３でのステップＳ３３０では、歌詞データ格納部２３を参照して、歌唱区間番号に対応する歌詞の開始行番号と、終了行番号とを取得していたが、歌詞データ表示装置３における歌詞データ格納部２３には、前記情報が格納されていないため、歌詞行情報格納部２７を参照して、歌詞の歌唱区間毎の開始行番号と、終了行番号とを取得する。その他の処理については、モーラ速度計算部３３と同様であるため、説明を省略する。
【０１０２】
歌唱区間分割部３７は、歌唱区間に分けられていない歌詞データを、歌唱区間に分割する。歌唱区間分割部３７の動作の流れを、図２６のフローチャートを参照して説明する。
【０１０３】
まず、歌唱区間分割部３７は、全ての歌唱区間の再生時間を計算する（ステップＳ３７０）。歌唱区間分割部３７は、歌唱時間データ格納部３７を参照して、全ての歌唱区間の再生時間を合計する。なお、再生時間は、終了時間から開始時間を引くことによって求められる。
【０１０４】
次に、歌唱区間分割部３７は、曲の平均モーラ速度を計算する（ステップＳ３７１）。平均モーラ速度は、各歌詞行のモーラ数の合計値から、ステップＳ３７０で算出された曲の総再生時間を割ることで求められる。なお、各行モーラ数は、前述の通り、モーラ数計算部３２によって算出する。
【０１０５】
次に、歌唱区間分割部３７は、歌詞を各歌唱区間に分割する（ステップＳ３７２）。歌唱区間ｊの再生時間をｔｊ、ステップＳ３７１で求められた平均モーラ速度をｖ、歌詞行ｋの行モーラ数をＭｋとすると、歌唱区間ｊの予想区間モーラ数ｍｊは、
【０１０６】
【数４】
2010085581.tif 000006
で求められる。この値を用いて、
【０１０７】
【数５】
2010085581.tif 000007
【０１０８】
【数６】
2010085581.tif 000008
を満たす、最大のｎｊを求める（ｎｊは整数、ｊは自然数）。このｎｊが、歌唱区間ｊに含まれる歌詞行番号ｎｊとなる。なお、数式５に示されたε０は、予想モーラ数に対して許容される誤差範囲を示す０以上の整数である。この値は固定値でも良いし、
【０１０９】
【数７】
2010085581.tif 000009
のような数式であっても良い。以上の計算を、全ての歌唱区間について行う。
【０１１０】
次に、歌唱区間分割部３７は、歌詞行情報格納部２７に、データを格納する（ステップＳ３７３）。歌唱区間ｊの開始行番号はｎｊとし、終了行番号は、（ｎｋ）−１（ｋ＝ｊ＋１）として、歌詞行情報格納部２７に格納する。
【０１１１】
ところで、歌詞の中には、歌詞を見やすくするために、空白行を設けているデータがある。このような場合、空白行に該当する箇所に間奏が挿入される可能性が高い。そのため、歌唱区間分割部３７は、この情報を利用することも可能である。具体的には、間に空白行のない歌詞行を、ひとつの歌詞行として扱う。
【０１１２】
図２４のＩＤ１の歌詞を例にとると、空白行が登場するまでの２行分をまとめる、つまり「An apple a day keeps the doctor away Time flies like an arrow」をひとつの歌詞行として扱う。そのため、この新しい行モーラ数Ｍは、２行分の行モーラ数を合計した数値となる。以上が歌唱区間分割部３７の説明である。
【０１１３】
次に、本実施形態３における、歌詞データ表示装置３の動作例について説明する。
【０１１４】
歌詞データ表示装置３の動作は、図１５に示した、実施形態１における歌詞データ表示装置１の動作の流れと同様であるが、ステップＳ３０の歌詞データの同期表示制御処理の詳細な処理動作が異なる。
【０１１５】
図２７は、本実施形態３における歌詞データ表示装置３の歌詞データの同期表示制御処理の動作の一例を示すフローチャートである。なお、音素変換処理（ステップＳ３０００）と、モーラ数計算処理（ステップＳ３０１０）は、実施形態１における歌詞データ表示装置１と処理内容が同様であるため、説明を省略する。
【０１１６】
行モーラ数の計算を終えると、歌唱区間分割部３７は、歌唱区間毎に開始歌詞行と、終了歌詞行とを計算し、歌詞行情報格納部２７に格納する（ステップＳ３０１５）。歌唱区間分割部３７の処理は、前述の通りである。
【０１１７】
歌詞行情報格納部２７に値を設定した後、モーラ速度計算部３３Ａは、歌唱区間毎のモーラ速度を計算する（ステップＳ３０２０Ａ）。モーラ速度計算部３３Ａの処理は、前述の通りである。
【０１１８】
歌唱区間毎のモーラ速度から、歌詞行毎の表示開始のタイミングを設定する表示タイミング設定処理（ステップＳ３０３０）は、実施形態１における歌詞データ表示装置１と処理内容が同様であるため、説明を省略する。以上が、歌詞データ表示装置３の動作の説明である。
【０１１９】
以上、詳述したように、本実施形態３における歌詞データ表示装置３によれば、歌詞データが歌唱区間に分けられていなくとも、楽曲データの再生中に、適切な歌詞を表示することができる。
【０１２０】
なお、上記実施形態１〜３では、本発明に係る歌詞データ表示装置を図１や、図１９、図２３のブロック図に示すように、ハードウエアにより構成して説明したが、本発明では、これに限らず、実施形態１〜３の歌詞データ表示装置の機能を実行するための歌詞データ表示プログラムと、この歌詞データ表示プログラムを実行するＣＰＵ等とにより、ソフトウエアにより構成するようにしても勿論よい。
【図面の簡単な説明】
【０１２１】
【図１】実施形態１における歌詞データ表示装置１の構成を示すブロック図である。
【図２】実施形態１〜３における入力部の一例を示す図である。
【図３】実施形態１〜３における歌唱時間データの一例を示す図である。
【図４】本発明実施形態１，２における歌詞データの一例を示す図である。
【図５】実施形態１〜３における英語の音素辞書の一例を示す図である。
【図６】実施形態１〜３における日本語の音素辞書の一例を示す図である。
【図７】実施形態１〜３における音素データ変換部の処理の流れを示すフローチャートである。
【図８】英文を音素列に変換した一例を示す図である。
【図９】実施形態１〜３におけるモーラ数計算部の処理の流れを示すフローチャートである。
【図１０】実施形態１〜３におけるモーラ数計算部での音素からＶＣ列へ変換するための変換表の一例を示す図である。
【図１１】音素列をＶＣ列に変換した一例を示す図である。
【図１２】実施形態１〜３におけるモーラ数計算ルールの一例を示す図である。
【図１３】ＶＣ列からモーラ数に変換した一例を示す図である。
【図１４】実施形態１〜３におけるモーラ速度計算部の処理の流れを示すフローチャートである。
【図１５】実施形態１における歌詞データ表示装置１の動作の一例を示すフローチャートである。
【図１６】楽曲データの入力動作を行うためのユーザインタフェースの一例を示す図である。
【図１７】本発明実施形態１，２における歌詞データの同期表示制御処理動作の一例を示すフローチャートである。
【図１８】表示部に歌詞を表示した一例を示す図である。
【図１９】実施形態２における歌詞データ表示装置２の構成を示すブロック図である。
【図２０】実施形態２における漢字辞書の一例を示す図である。
【図２１】文章から単語および品詞への形態素解析を行った一例を示す図である。
【図２２】実施形態２における歌詞データ表示装置２の動作の一例を示すフローチャートである。
【図２３】実施形態３における歌詞データ表示装置３の構成を示すブロック図である。
【図２４】実施形態３における歌詞データの一例を示す図である。
【図２５】実施形態３における歌詞行情報の一例を示す図である。
【図２６】実施形態３における歌唱区間分割部の動作の一例を示す図である。
【図２７】実施形態３における歌詞データの同期表示制御処理の動作の一例を示すフローチャートである。
【符号の説明】
【０１２２】
１，２，３  歌詞データ表示装置
１０  入力部
２０  格納部
２１  楽曲データ格納部
２２  歌唱時間データ格納部
２３，２３Ａ  歌詞データ格納部
２４  音素辞書格納部
２５  モーラ数計算ルール格納部
２６  漢字辞書格納部
２７  歌詞行情報格納部
３０  制御部
３１  音素データ変換部
３２  モーラ数計算部
３３，３３Ａ  モーラ速度計算部
３４  表示タイミング設定部
３５  表示制御部
３６  平仮名変換部
３７  歌唱区間分割部
４０  表示部
５０  再生部
【図１】
2010085581.tif 000010
【図２】
2010085581.tif 000011
【図３】
2010085581.tif 000012
【図４】
2010085581.tif 000013
【図５】
2010085581.tif 000014
【図６】
2010085581.tif 000015
【図７】
2010085581.tif 000016
【図８】
2010085581.tif 000017
【図９】
2010085581.tif 000018
【図１０】
2010085581.tif 000019
【図１１】
2010085581.tif 000020
【図１２】
2010085581.tif 000021
【図１３】
2010085581.tif 000022
【図１４】
2010085581.tif 000023
【図１５】
2010085581.tif 000024
【図１６】
2010085581.tif 000025
【図１７】
2010085581.tif 000026
【図１８】
2010085581.tif 000027
【図１９】
2010085581.tif 000028
【図２０】
2010085581.tif 000029
【図２１】
2010085581.tif 000030
【図２２】
2010085581.tif 000031
【図２３】
2010085581.tif 000032
【図２４】
2010085581.tif 000033
【図２５】
2010085581.tif 000034
【図２６】
2010085581.tif 000035
【図２７】
2010085581.tif 000036