しかしながら、音声で歌詞を報知する場合には、歌唱者がリクエスト曲を初めて歌うような、曲や歌詞に対する習熟度が低いときには、歌詞が聞き取れず、うまく歌えない問題があった。
本発明は、上述の問題点を解決するためになされたものであり、習熟度にあわせて歌詞の音声出力を行なう楽音発生装置を提供することを目的とする。
上記目的を達成するために、請求項1に記載の発明の楽音発生装置は、曲データを再生する曲再生手段と、歌詞データに基づいて音声信号を生成する音声信号生成手段と、当該音声信号生成手段により生成された音声信号に基づいて、曲の歌詞を所定のタイミングで歌詞音声として出力する歌詞音声出力手段とを備えた楽音発生装置において、歌唱者の過去の履歴データ又は歌唱者からの入力データに基づいて歌唱者の習熟度を判定する習熟度判定手段と、当該習熟度判定手段により判定された習熟度に基づいて、複数のモードを切り替えることにより、前記音声信号生成手段による音声信号の生成、前記音声出力手段による歌詞音声の出力、前記曲再生手段による曲データの再生の少なくとも1つを制御するモード切替手段とを備えている。
請求項2に記載の発明の楽音発生装置は、請求項1に記載の発明の構成に加え、前記モード切替手段は、前記習熟度判定手段により習熟度が低いと判定された場合には、一度に出力する歌詞音声の長さを予め設定された既定値よりも短くし、前記習熟度判定手段により習熟度が高いと判定された場合には、一度に出力する歌詞音声の長さを予め設定された既定値よりも長くするように前記歌詞音声出力手段を制御することを特徴とする。
請求項3に記載の発明の楽音発生装置は、請求項1又は2に記載の発明の構成に加え、前記モード切替手段は、前記習熟度判定手段により習熟度が低いと判定された場合には、歌詞音声の出力速度を予め設定された既定値よりも遅くし、前記習熟度判定手段により習熟度が高いと判定された場合には、歌詞音声の出力速度を予め設定された既定値よりも速くするように前記歌詞音声出力手段を制御することを特徴とする。
請求項4に記載の発明の楽音発生装置は、請求項1乃至3のいずれかに記載の発明の構成に加え、前記モード切替手段は、前記習熟度判定手段により習熟度が低いと判定された場合には、再生される曲のテンポをその曲固有のテンポよりも遅くし、前記習熟度判定手段により習熟度が高いと判定された場合には、再生される曲のテンポをその曲固有のテンポよりも速くするように前記曲再生手段を制御することを特徴とする。
請求項5に記載の発明の楽音発生装置は、請求項1乃至4のいずれかに記載の発明の構成に加え、前記モード切替手段は、前記習熟度判定手段により習熟度が低いと判定された場合には、出力する歌詞音声の音量を予め設定された既定値よりも大きくし、前記習熟度判定手段により習熟度が高いと判定された場合には、出力する歌詞音声の音量を予め設定された既定値よりも小さくするように前記歌詞音声出力手段を制御することを特徴とする。
請求項6に記載の発明の楽音発生装置は、請求項1乃至5のいずれかに記載の発明の構成に加え、前記モード切替手段は、歌唱対象曲の歌詞が外国語である場合に、前記習熟度判定手段により習熟度が低いと判定されたときには、外国語の歌詞をカタカナ読みした音声信号を生成し、前記習熟度判定手段により習熟度が高いと判定された場合には、外国語の歌詞をネイティブ読みした音声信号を生成するように前記音声信号生成手段を制御することを特徴とする。
請求項7に記載の発明の楽音発生装置は、請求項1乃至6のいずれかに記載の発明の構成に加え、再生対象の曲を歌唱者が歌ったことがある回数を記憶する歌唱回数記憶手段を備え、前記習熟度判定手段は、当該歌唱回数記憶手段に記憶された回数に基づいて習熟度を判定することを特徴とする。
請求項8に記載の発明の楽音発生装置は、請求項1乃至6のいずれかに記載の発明の構成に加え、歌唱者の歌唱力を採点する歌唱力採点手段と、当該歌唱力採点手段による採点結果を記憶する採点結果記憶手段とを備え、前記習熟度判定手段は、当該採点結果記憶手段に記憶された採点結果に基づいて習熟度を判定することを特徴とする。
請求項9に記載の発明の楽音発生装置は、請求項8に記載の発明の構成に加え、前記歌唱力採点手段は、歌唱者の音声を認識し、その認識された音声の文言と歌唱対象曲の歌詞データの文言との一致度に基づき歌唱力を採点することを特徴とする。
請求項10に記載の発明の楽音発生装置は、請求項1乃至6のいずれかに記載の発明の構成に加え、習熟度に関するデータを入力する入力手段を備え、前記習熟度判定手段は、当該入力手段により入力されたデータに基づいて習熟度を判定することを特徴とする。
請求項11に記載の発明の楽音発生装置は、請求項1乃至9のいずれかに記載の発明の構成に加え、前記習熟度判定手段は、所定のタイミングで歌唱者の習熟度の判定を行い、前記モード切替手段は、前記習熟度判定手段による習熟度の判定が行われる度に、前記モードを切り替えることを特徴とする。
請求項12に記載の発明の楽音発生装置は、請求項11に記載の発明の構成に加え、前記習熟度判定手段は、前記音声出力手段による1回または予め定められた回数の歌詞音声の出力が行われる毎に歌唱者の習熟度の判定を行うことを特徴とする。
請求項13に記載の発明の楽音発生装置は、請求項11に記載の発明の構成に加え、前記習熟度判定手段は、所定時間間隔毎に歌唱者の習熟度の判定を行うことを特徴とする。
請求項14に記載の発明の楽音発生装置は、請求項11に記載の発明の構成に加え、前記習熟度判定手段は、歌唱対象曲の1番もしくは1番毎の歌唱終了時に歌唱者の習熟度の判定を行うことを特徴とする。
請求項1に記載の発明の楽音発生装置によれば、曲再生手段が曲データを再生し、音声信号生成手段が歌詞データに基づいて音声信号を生成し、歌詞音声出力手段が音声信号生成手段により生成された音声信号に基づいて、曲の歌詞を所定のタイミングで歌詞音声として出力し、習熟度判定手段が歌唱者の過去の履歴データ又は歌唱者からの入力データに基づいて歌唱者の習熟度を判定し、モード切替手段が習熟度判定手段により判定された習熟度に基づいて、複数のモードを切り替えることにより、音声信号生成手段による音声信号の生成、音声出力手段による歌詞音声の出力、曲再生手段による曲データの再生の少なくとも1つを制御する。従って、歌唱者の習熟度に応じた歌詞音声や曲のテンポで歌唱することができる。
請求項2に記載の発明の楽音発生装置によれば、請求項1に記載の発明の効果に加え、習熟度判定手段により習熟度が低いと判定された場合には、一度に出力する歌詞音声の長さを短くし、習熟度判定手段により習熟度が高いと判定された場合には、一度に出力する歌詞音声の長さを長くするようにモード切替手段が歌詞音声出力手段を制御する。従って、習熟度が低い場合には一度に出力される歌詞音声が短いので聞き取りやすく、習熟度が高い場合には一度に出力される歌詞音声が長いので音声の出力頻度が少なくなり、煩雑さが減少して歌唱しやすくなる。
請求項3に記載の発明の楽音発生装置によれば、請求項1又は2に記載の発明の効果に加え、習熟度判定手段により習熟度が低いと判定された場合には、歌詞音声の出力速度を遅くし、習熟度判定手段により習熟度が高いと判定された場合には、歌詞音声の出力速度を速くするようにモード切替手段が歌詞音声出力手段を制御する。従って、習熟度が低い場合には歌詞音声の出力速度が遅いので聞き取りやすく、習熟度が高い場合には歌詞音声の出力速度が速いので音声の出力時間が短くなり、煩雑さが減少して歌唱しやすくなる。
請求項4に記載の発明の楽音発生装置によれば、請求項1乃至3のいずれかに記載の発明の効果に加え、習熟度判定手段により習熟度が低いと判定された場合には、再生される曲のテンポを遅くし、習熟度判定手段により習熟度が高いと判定された場合には、再生される曲のテンポを速くするようにモード切替手段が曲再生手段を制御する。従って、習熟度が低い場合には曲のテンポが遅いので慣れていなくても歌いやすく、習熟度が高い場合には曲のテンポが速いので軽快に歌唱しやすくなる。
請求項5に記載の発明の楽音発生装置によれば、請求項1乃至4のいずれかに記載の発明の効果に加え、習熟度判定手段により習熟度が低いと判定された場合には、出力する歌詞音声の音量を大きくし、習熟度判定手段により習熟度が高いと判定された場合には、出力する歌詞音声の音量を小さくするようにモード切替手段が歌詞音声出力手段を制御する。従って、習熟度が低い場合には歌詞音声の音量が大きいので聞き取りやすく、習熟度が高い場合には歌詞音声の音量が小さいので煩雑さが減少して歌唱しやすくなる。
請求項6に記載の発明の楽音発生装置によれば、請求項1乃至5のいずれかに記載の発明の効果に加え、歌唱対象曲の歌詞が外国語である場合に、習熟度判定手段により習熟度が低いと判定されたときには、外国語の歌詞をカタカナ読みした音声信号を生成し、習熟度判定手段により習熟度が高いと判定された場合には、外国語の歌詞をネイティブ読みした音声信号を生成するようにモード切替手段が音声信号生成手段を制御する。従って、習熟度が低い場合には日本語に近い発音で外国語歌詞が出力されて聞き取りやすく、習熟度が高い場合には原曲の歌詞に近い発音で快適に歌うことができる。
請求項7に記載の発明の楽音発生装置によれば、請求項1乃至6のいずれかに記載の発明の効果に加え、歌唱回数記憶手段が再生対象の曲を歌唱者が歌ったことがある回数を記憶し、習熟度判定手段が歌唱回数記憶手段に記憶された回数に基づいて習熟度を判定する。従って、歌唱回数が少なければ習熟度が低いと判断できる。
請求項8に記載の発明の楽音発生装置によれば、請求項1乃至6のいずれかに記載の発明の効果に加え、歌唱力採点手段が歌唱者の歌唱力を採点し、採点結果記憶手段が歌唱力採点手段による採点結果を記憶し、習熟度判定手段が採点結果記憶手段に記憶された採点結果に基づいて習熟度を判定する。従って、歌唱力の採点結果により歌唱者の習熟度を判定するので、より正確に習熟度を判定してモードを切替えることができる。
請求項9に記載の発明の楽音発生装置によれば、請求項8に記載の発明の効果に加え、歌唱力採点手段が歌唱者の音声を認識し、その認識された音声の文言と歌唱対象曲の歌詞データの文言との一致度に基づき歌唱力を採点する。従って、歌詞に対する習熟度を特に判定しやすくなる。
請求項10に記載の発明の楽音発生装置によれば、請求項1乃至6のいずれかに記載の発明の効果に加え、入力手段が習熟度に関するデータを入力し、習熟度判定手段が入力手段により入力されたデータに基づいて習熟度を判定する。従って、過去の歌唱回数や採点結果等を記憶していない場合にも、歌唱者の習熟度に応じたモードに切替えることができる。
請求項11に記載の発明の楽音発生装置によれば、請求項1乃至9のいずれかに記載の発明の効果に加え、習熟度判定手段が所定のタイミングで歌唱者の習熟度の判定を行い、モード切替手段が習熟度判定手段による習熟度の判定が行われる度に、モードを切り替える。従って、習熟度をより正確に判定し、その判定結果をモードに反映させて歌唱環境を快適にすることができる。
請求項12に記載の発明の楽音発生装置によれば、請求項11に記載の発明の効果に加え、習熟度判定手段が音声出力手段による1回または予め定められた回数の歌詞音声の出力が行われる毎に歌唱者の習熟度の判定を行う。従って、習熟度をリアルタイムに判定し、その判定結果をモードにすぐに反映させて歌唱環境を快適にすることができる。
請求項13に記載の発明の楽音発生装置によれば、請求項11に記載の発明の効果に加え、習熟度判定手段が所定時間間隔毎に歌唱者の習熟度の判定を行う。従って、習熟度を効率よくより正確に判定し、その判定結果をモードに反映させて歌唱環境を快適にすることができる。
請求項14に記載の発明の楽音発生装置によれば、請求項11に記載の発明の効果に加え、習熟度判定手段が歌唱対象曲の1番もしくは1番毎の歌唱終了時に歌唱者の習熟度の判定を行う。従って、習熟度を効率よくより正確に判定し、その判定結果をモードに反映させて歌唱環境を快適にすることができる。
以下、本発明の実施の形態を、図面を参照して説明する。図1は、本発明にかかる楽音発生装置の一例であるカラオケ装置1の回路ブロック図である。カラオケ装置1は、カラオケ装置1全体を制御するCPU11と、各種プログラムを記憶するROM12と、各種データを記憶するRAM13と、入力手段である操作パネル21と、外部記憶装置14と、MIDI音源15と、表示用のビデオモニタ17と、ビデオモニタ17を制御するビデオコントローラ16と、MIDI音源15からの音響と歌唱者の音声を混合するミキサ18と、アンプ19と、スピーカ20と、アンプ24と、マイク25と、アンプ24からの音声信号にエコーを施すエコー回路23とから構成されている。
操作パネル21は、テンキーやカーソルキー等を含む各種の操作キーからなり、リクエスト曲やユーザーIDの入力、手動入力による習熟度や各種の設定項目の入力ができるようになっている。
外部記憶装置14は、ハードディスクや不揮発メモリから構成され、曲の伴奏音を生成するためのMIDIデータである曲データベース41、漢字かな混じりのテキストデータで構成された歌詞データとこれに対応する読みデータのデータベースである歌詞データベース42、背景画像を生成するためのビデオデータベース43、習熟度別のモードを記憶したモードデータベース51、歌唱者の過去の歌唱についての採点結果を歌唱者のIDと曲名とに対応づけて記憶した採点結果データベース52、歌詞データを音声合成する際に使用される音声合成辞書61、合成音声の音節毎の継続時間を記憶した音節長データベース62が記憶されている。
曲再生手段であるMIDI音源15は、曲データベース41に記憶されたMIDIデータに基づいて伴奏音の音響信号を生成する。ビデオコントローラ16は、ビデオデータベース43内のビデオデータや歌詞データベース42内の歌詞データに基づいて、曲の背景映像に歌詞のテロップをスーパーインポーズしてビデオモニタ17の画面上に映し出させる。
ミキサ18は、MIDI音源15により生成された伴奏音の音響信号とエコー回路23からの歌唱者の音声信号とを混合してアンプ19に出力するとともに、歌詞データベース42内の歌詞データに音声合成辞書61を使用して生成された合成音声信号をアンプ19に出力する。アンプ19は、ミキサ18からの信号を増幅してスピーカ20を駆動する。スピーカ20は、アンプ19からの信号を音として出力する。エコー回路23は、アンプ24からの音声信号にエコー処理を施す。アンプ24は、マイク25からの音声信号を増幅する。マイク25は、歌唱者の歌声を音声信号に変換する。
次に、外部記憶装置14に記憶されている曲データベース41について、図2を参照して説明する。図2は、曲データベース41の構成の一部を示す模式図である。曲データベース41は、MIDIデータで構成されている。「1.PROG:CHG」は、このパートの再生音を発する楽器の設定を示すもので、図示された20番は、例えばピアノを示すものである。次に、「2.CRT:CHG」は、MIDIデータのコントロールを設定するもので、表示されているC11は、コントロールの設定のうちマスターボリュームの設定を意味し、その右側の「DYN」の部分のXに数値を入れれば、それがマスターボリュームの設定値となる。このマスターボリュームは、このパートの全体の音量を設定するものである。次に、「3.G/MINER」の表示は、この楽曲の調性を示している。さらに、「4.4/4」は、この楽曲の拍子を示している。そして、ナンバー5以下の表示は、各再生音の音程を示しており、「ST」(スタンダードタイム)は、音の長さを示し、「GT」は、実際に音の発生状態をオン状態としておくためのゲートタイムである。すなわち、ゲートタイムGTは、音の発生をオフした後もその発生音の余韻があるため、音が重なり合うことのないようにスタンダードタイムSTよりも短い時間として設定される。このようなスタンダードタイムSTを合計すれば、対象となるフレーズの演奏時間を算出することができる。また、各音程データの欄に指示されている「C7」は、各音程ごと、すなわち単音ごとのボリュームを示しており、その右側の数値80がその音量を設定する数値である。これにより、マスターボリュームC11に設定されたXと各単音のボリュームの数値との積がその各音程部分のボリュームとなるものである。
次に、外部記憶装置14に記憶されている歌詞データベース42について、図3を参照して説明する。図3は、歌詞データベース42の内容を示す模式図である。歌詞データベース42は、各曲の歌詞データと対応する読みデータが読上げの最小単位(以下、「1文節」という。)で区切られて記憶されている。歌詞データは、読上げ長により、1文節、1フレーズ、2フレーズの単位に区切ることができる。歌詞データベース42には、データ番号欄42a,歌詞データ欄42b,読みデータ(1)欄42c,読みデータ(2)欄42d,読上げ終了タイミング欄42eの5カラムが設けられている。データ番号欄42aには、歌詞データの区切りと順番が「a-b-c」の構成で記憶されている。「a」は歌詞データを2フレーズで区切った場合の順番が、「b」は歌詞データを1フレーズで区切った場合の順番が、「c」は、歌詞データを1文節で区切った場合の順番が記憶される。読みデータは、外国語の歌詞の場合には、発音記号で記載されるネイティブ読みと、カタカナで記載されるカタカナ読みとが用意されている。読みデータ(1)欄42cにはネイティブ読みのアクセント付き読みデータが、また、読みデータ(2)欄42dには、カタカナ読みのアクセント付き読みデータが記憶される。読上げ終了タイミング欄42eには、歌詞音声による読み上げを行なう場合に終了するタイミング、すなわちその歌詞に対応する演奏が開始されるタイミングが記憶されている。尚、アクセント付き読みデータは、歌詞データに対応させてデータベース内に記憶させずに、読上げデータ作成処理の中でその都度生成するように構成してもよい。この場合には、音声合成辞書61の読みデータにネイティブ読みのものとカタカナ読みのものとの2種類を持たせるようにすればよい。また、読上げ終了タイミングも、歌詞データと対応づけてデータベース内に記憶させず、曲データベース41のMIDIデータからその都度算出するようにしてもよい。
次に、外部記憶装置14に記憶されているモードデータベース51について、図4を参照して説明する。図4は、モードデータベース51の内容を示す模式図である。モードデータベース51は、歌唱者の習熟度に応じて歌詞音声の出力(読上げ)方法等を制御するためのものであり、複数の設定項目の組み合わせを習熟度に対応するモードとして用意している。本実施の形態では、モードは低・中・高の3種類が用意されている。モードデータベース51には、習熟度欄51a、外国語欄51b、歌詞長欄51c、読上速度欄51d、曲速度欄51e、読上音量欄52fの6カラムが用意されている。習熟度欄51aには、歌唱者の習熟度(低・中・高)と対応する過去の採点結果(得点)が記憶されている。本実施形態では、習熟度を過去に同じ曲を歌ったときの採点結果により、0〜40点の場合を習熟度が低いものとし、41〜70点の場合を中程度の習熟度、71〜100点の場合を高習熟度としている。採点結果の範囲はこれに限られるものではなく、適宜設定することができる。外国語欄51bには、外国語の歌詞データの場合にネイティブの発音で歌詞音声を出力するか、カタカナ読みのような発音で歌詞音声を出力するかの別が記憶されている。低習熟度と中習熟度モードではカタカナ読みに、高習熟度モードではネイティブ読みに設定される。歌詞長欄51cには、1回に出力する歌詞音声の長さが記憶されている。低習熟度モードでは1文節分の長さが、中習熟度モードでは1フレーズ分の長さが、高習熟度モードでは2フレーズ分の長さが設定される。読上速度欄51dには、歌詞音声を出力する読み上げのスピードが記憶されている。読上速度は、人間の平均的な発声速度である毎秒6.5音節を通常速度として、低習熟度モードではそれよりも遅い毎秒4.7音節、中習熟度モードでは通常の速度で、高習熟度モードでは通常速度よりも速い毎秒9.3音節で出力されるように設定される。曲速度欄51eには、リクエスト曲の再生スピードが記憶されている。もともと各曲のMIDIデータには、固有のテンポが既定値として記憶されている。この値は、四分音符の長さをμsec(マイクロ秒)単位で表したものであり、一拍あたりの時間でテンポを表している。例えば、四分音符=112の場合、四分音符の長さは535714μsecとなる。この数値を大きくすればテンポは遅くなり、小さくすればテンポは速くなる。従って、低習熟度モードでは既定の1.2倍の値、中習熟度モードでは既定値、高習熟度モードでは既定値の0.8倍の値がMIDI音源15にセットされる。読上音量欄51fには、歌詞音声の出力音量(読上音量)が記憶されている。通常はリクエスト曲の既定ボリュームと同じボリュームで出力される。低習熟度モードでは楽曲のボリュームの1.2倍の大きい音量で、中習熟度モードでは楽曲と同じボリュームで、高習熟度モードでは楽曲のボリュームの半分の音量で出力されるように設定される。
次に、RAM13の記憶領域について図5を参照して説明する。図5は、RAM13の記憶領域を示す模式図である。RAM13には、歌唱者が選択した曲のデータを曲データベース41から読み込んで一時的に記憶するリクエスト曲記憶領域130,リクエスト曲の歌詞データを一時的に記憶する歌詞データ記憶領域131,歌唱者のIDとリクエスト曲から採点結果データベース52を検索し、リクエスト曲の歌唱回数を読み出して一時的に記憶する歌唱回数記憶領域132,リクエスト曲の直近の採点結果(得点)を一時的に記憶する採点結果記憶領域133,リクエスト曲が外国語の歌詞データを有する場合に1が記憶されて「ON」となる外国語フラグを記憶する外国語フラグ記憶領域134,リクエスト曲が外国語の歌詞を有する場合に歌詞音声をネイティブ読みで出力するかカタカナ読みで出力するかの別を記憶する外国語読み種別記憶領域135,習熟度モードに従ってモードデータベース51から読み出されるか歌唱者により選択される読上げ長を一時的に記憶する読上げ長記憶領域136,習熟度モードに従ってモードデータベース51から読み出されるか歌唱者により選択される読上げ長を一時的に記憶する読上げ速度記憶領域137,習熟度モードに従ってモードデータベース51から読み出されるか歌唱者により選択される曲のテンポを一時的に記憶する曲速度記憶領域138,習熟度モードに従ってモードデータベース51から読み出されるか歌唱者により選択される読上げ音量を一時的に記憶する読上げ音量記憶領域139,設定された読上げ長に従って1回に読上げる歌詞データを一時的に記憶する読上げ対象データ記憶領域140,1回に読上げるアクセント付き読みデータを記憶する合成音声データ記憶領域141,現在処理中の歌詞データの読上げにかかる時間を一時的に記憶する読上げ時間記憶領域142,現在処理中の歌詞データの読上げ終了タイミングと読上げ時間から算出される読上げ開始時期を記憶する読上げ開始時期記憶領域143が設けられている。尚、RAM13には、これらの他にも図示外の各種の記憶領域が用意されている。
次に、本実施形態のカラオケ装置1の動作について、図6〜図10のフローチャート、図11のタイミングチャート、図12及び図13の表示画面の例を参照して説明する。図6は、カラオケ装置1の全体の流れを示すメインルーチンのフローチャート、図7は、図4のS45で行なう読上げ処理の詳細を示すサブルーチンのフローチャートである。図8は、図7のS103で行なう読上げデータ作成処理の詳細を示すサブルーチンのフローチャートである。図9は、図7のS105で行なう読上げ開始時期計算処理の詳細を示すフローチャートである。図10は、図6のフローチャートのS49で行なう採点処理の詳細を示すフローチャートである。図11は、読上げ開始時期を示すタイミングチャートである。図12は、歌唱者が手動で習熟度の設定を選択する場合の設定画面100の表示画面の例である。図13は、歌唱者が手動で項目の設定を選択する場合の設定画面200の表示画面の例である。以下、フローチャートの各ステップは、「S」と略記する。
まず、歌唱者が入力したユーザーIDを受け付ける(S1)。次に、歌唱者が選択した曲を受け付け、その曲データを曲データベース41から読み出してリクエスト曲記憶領域130に、歌詞データを歌詞データベース42から読み出して歌詞データ記憶領域131に記憶する(S2)。次に、リクエスト曲が外国語の歌詞を有しているか否かを判断する(S3)。外国語歌詞の曲であれば(S3:YES)、外国語フラグ記憶領域134に1を記憶してフラグを「ON」とする(S4)。外国語の曲でなければ(S3:NO)、そのままS5に進む。
次に、習熟度や歌詞の読み上げや曲のテンポ等の項目を歌唱者が自分で設定するか否かを問い合わせ、入力結果から手動設定か否かを判断する(S5)。手動設定を行なわない場合には(S5:NO)、入力されたユーザーIDとリクエスト曲から採点結果データベース52を検索し、そのリクエスト曲を歌唱者が過去に歌ったことがある回数と、そのリクエスト曲を歌唱者が最も最近歌った時の採点結果を読み出し、それぞれ歌唱回数記憶領域132と採点結果記憶領域133に記憶する(S7)。
次に、歌唱回数記憶領域132に記憶した回数が予め設定した回数(例えば5回)を上回っているか否かを判断する(S9)。例えば5回以下であれば(S9:NO)、その歌唱者は今のリクエスト曲には習熟していないと判断し、低習熟度モードを選択する(S11)。低習熟度モードが選択されると、図4に示すモードデータベース51の低習熟度モードを検索して、各項目を設定し、RAMの記憶領域に記憶する(S13)。具体的には、リクエスト曲の歌詞が外国語であれば、外国語読み種別をカタカナ読みとして外国語読み種別記憶領域135に記憶する。ここで、外国語の曲であるか否かは、外国語フラグ記憶領域134に1が記憶されているかどうかにより判断する。さらに、読上げる歌詞の長さは1文節を読上げ長記憶領域136に記憶し、歌詞音声の読上げ速度は毎秒4.7音節として読上げ速度記憶領域137に記憶し、曲のテンポは既定の1.2倍の値として曲速度記憶領域138に記憶し、読上げ音量は楽曲のボリュームの1.2倍として読上げ音量記憶領域139に記憶する。
歌唱回数があらかじめ設定した回数を上回っていれば(S9:YES)、次に、採点結果記憶領域133に記憶された得点が高得点の範囲に入っているか否かを判断する(S15)。本実施形態では、図4に示すように、71点〜100点の範囲を高得点としてあらかじめ設定している。高得点の場合には(S15:YES)、この歌唱者は、今のリクエスト曲に習熟していると判断し、高習熟度モードを選択する(S17)。高習熟度モードが選択されると、図4に示すモードデータベース51の高習熟度モードを検索して、各項目を設定し、RAMの記憶領域に記憶する(S19)。具体的には、まず、リクエスト曲の歌詞が外国語であれば、外国語読み種別をネイティブ読みとして外国語読み種別記憶領域135に記憶する。ここで、外国語の曲であるか否かは、外国語フラグ記憶領域134に1が記憶されているかどうかにより判断する。さらに、読上げる歌詞の長さは2フレーズを読上げ長記憶領域136に記憶し、歌詞音声の読上げ速度は毎秒9.3音節として読上げ速度記憶領域137に記憶し、曲のテンポは既定値の0.8倍の値として曲速度記憶領域138に記憶し、読上げ音量は楽曲のボリュームの半分の音量として読上げ音量記憶領域139に記憶する。
また、高得点でない場合には(S15:NO)、さらに、中得点の範囲に入っているか否かを判断する(S21)。本実施形態では、図4に示すように、41点〜70点の範囲を中得点としてあらかじめ設定している。中得点の場合には(S21:YES)、この歌唱者のリクエスト曲に対する習熟度は中程度であると判断し、中習熟度モードを選択する(S23)。中習熟度モードが選択されると、図4に示すモードデータベース51の中習熟度モードを検索して、各項目を設定し、RAMの記憶領域に記憶する(S25)。具体的には、まず、リクエスト曲の歌詞が外国語であれば、外国語読み種別をカタカナ読みとして外国語読み種別記憶領域135に記憶する。ここで、外国語の曲であるか否かは、外国語フラグ記憶領域134に1が記憶されているかどうかにより判断する。さらに、読上げる歌詞の長さは1フレーズを読上げ長記憶領域136に記憶し、歌詞音声の読上げ速度は通常速度である毎秒6.5音節として読上げ速度記憶領域137に記憶し、曲のテンポは既定値として曲速度記憶領域138に記憶し、読上げ音量は楽曲と同じボリュームとして読上げ音量記憶領域139に記憶する。
また、中得点でもない場合には(S21:NO)、低得点であることになる。本実施形態では、図4に示すように、0点〜40点の範囲を低得点としてあらかじめ設定している。そこで、その歌唱者は今のリクエスト曲には習熟していないと判断し、歌唱回数が5回以下の場合と同様に、低習熟度モードを選択する(S11)。低習熟度モードが選択されると、図4に示すモードデータベース51の低習熟度モードを検索して、各項目を設定し、RAMの記憶領域に記憶する(S13)。具体的には、リクエスト曲の歌詞が外国語であれば、外国語読み種別をカタカナ読みとして外国語読み種別記憶領域135に記憶する。ここで、外国語の曲であるか否かは、外国語フラグ記憶領域134に1が記憶されているかどうかにより判断する。さらに、読上げる歌詞の長さは1文節を読上げ長記憶領域136に記憶し、歌詞音声の読上げ速度は毎秒4.7音節として読上げ速度記憶領域137に記憶し、曲のテンポは既定の1.2倍の値として曲速度記憶領域138に記憶し、読上げ音量は楽曲のボリュームの1.2倍として読上げ音量記憶領域139に記憶する。
一方、手動選択の場合には(S5:YES)、さらに、習熟度を入力するか、各項目について詳細設定をするかを問い合わせ、入力結果から習熟度入力か否かを判断する(S27)。習熟度を設定する場合には(S27:YES)、図12のような設定画面100を表示して、歌唱者に入力を促す(S29)。図12に示すように、歌唱者は、入力手段であるカーソルを移動させることにより、「初級」、「通常」、「プロ並み!」から選んで習熟度を入力することができる。「初級」が選択された場合には上述の低得点の場合(S15:NO、S21:NO)と同様に低習熟度モードが選択され、「通常」が選択された場合には、上述の中得点の場合(S15:NO、S21:YES)と同様に中習熟度モードが選択され、「プロ並み!」が選択された場合には、上述の高得点の場合(S15:YES)と同様に高習熟度モードが選択される。
習熟度設定ではなく(S27:NO)、各項目について詳細設定をする場合には、図13のような設定画面200を表示して、歌唱者に入力を促す(S31)。図13に示すように、歌唱者は、カーソルを移動させることにより、以下の項目について設定を行なう(S33)。すなわち、「外国語歌詞の読み方」を「カタカナ読み」と「ネイティブ読み」の2つから、「一度に読上げる歌詞の長さ」を「1文節」、「1フレーズ」、「2フレーズ」の3つから、「前振り読み上げのスピード」を「低」、「通常」、「高」の3つから、「曲のテンポ」を「ゆっくり」、「通常」、「速い」の3つから、「読上げ時の音量」を「小」、「通常」、「大」の3つから選択し、「決定」ボタンを押して設定する。次に、受け付けた設定内容に基づいて、順に設定情報をRAM13に記憶していく。
具体的には、まず、外国語フラグ記憶領域134に1が記憶されて外国語フラグがONになっているか否かを判断する(S35)。外国語フラグがOFFの場合には(S35:NO)、そのままS37に進む。外国語フラグがONの場合には(S35:YES)、設定された「外国語歌詞の読み方」に従って、外国語読み種別を外国語読み種別記憶領域135に記憶する(S36)。次に、設定された「一度に読上げる歌詞の長さ」に従って、読上げ長を読上げ長記憶領域136に記憶する(S37)。そして、設定された「前振り読み上げのスピード」に従って、読上げ速度を読上げ速度記憶領域137に記憶する(S38)。具体的には、「低」の場合は毎秒4.7音節が、「通常」の場合は毎秒6.5音節が、「高」の場合は毎秒9.3音節が記憶される。次に、設定された「曲のテンポ」に従って、リクエスト曲のテンポを曲速度記憶領域138に記憶する(S39)。具体的には、「ゆっくり」の場合は既定の1.2倍の値が、「通常」の場合は規定値が、「速い」の場合は既定値の0.8倍の値が記憶される。そして、設定された「読上げ時の音量」に従って、歌詞音声の読上げ音量を読上げ音量記憶領域139に記憶する(S41)。具体的には、「小」の場合は楽曲のボリュームの半分が、「通常」の場合は楽曲と同じボリュームが、「大」の場合は楽曲のボリュームの1.2倍が記憶される。
以上の処理により、歌唱者の習熟度モードが決定され、曲の演奏と歌詞音声の出力(読上げ)に必要な各項目が設定される。尚、習熟度モードによる設定項目とその内容は、上記の形態に限られるものではなく、モードデータベース51の内容を適宜変更して対応することができる。
次に、リクエスト曲記憶領域130に記憶されている曲データを読み出してMIDI音源15に送り、曲の演奏を開始する(S43)。ここで、曲の演奏テンポは、曲速度記憶領域138に記憶されたテンポに従ってMIDI音声を再生する。そして、演奏曲に会わせて歌詞音声の読み上げ処理を行なう(S45)。読み上げ処理の詳細については、図7のフローチャートを参照して以下説明する。
読上げ処理が開始されると、まず読み上げ対象となる1データ分の歌詞を歌詞データベース42から読み出して読上げ対象データ記憶領域141に記憶する(S101)。ここで、読上げ対象となる1データの長さは、読上げ長記憶領域136に記憶されているものであり、1文節、1フレーズ、もしくは2フレーズが選択され、該当する分の歌詞データが読み出される。例えば、図3の歌詞データベース42に例示されている「Old Kentucky Home」がリクエストされ、歌唱者の習熟度が低いと判断された場合、1回目の読み上げ対象となる歌詞データは、1文節である「The sun shines」となる。
次に、S101で読上げ対象データ記憶領域141に記憶した歌詞データの読上げデータ作成処理を行ない、出力する読上げデータを生成する(S103)。この読上げデータ作成処理により、出力される歌詞音声が生成されるとともに、その出力(読上げ)にかかる時間が算出される。読上げデータ作成処理の詳細は、図8のフローチャートを参照して説明する。
図8に示すように、まず、読上げ対象データ記憶領域141に記憶されている歌詞データに音声合成辞書を用いて読みを付与する(S201)。次に、読みデータに対してアクセントを付与し(S203)、こうして得られたアクセント付き読みデータを合成音声データ記憶領域141に記憶する(S205)。このように音声合成辞書を用いて読みとアクセントを付与する場合には、歌詞データベース42自身には読みやアクセントを持たせておく必要がなく、記憶容量を節減することができる。一方、図3の歌詞データベース42のように、歌詞データ自体に読みを持たせるように構成し、処理にかかる時間を高速化してもよい。この場合は、アクセント付き読みデータを歌詞データベース42から読み出し、そのまま合成音声データ記憶領域141に記憶すればよい。
次に、読みとアクセントを付与されたデータについてそれぞれの読み文字列の表す音節の継続長を算出する(S207)。音節の継続長の既定値は、あらかじめ音節長データベース62として外部記憶装置14に記憶させておく。この規定値に発声速度計数を乗じて実際の音節の継続長が算出される。この発生速度係数には、読上げ速度記憶領域137に記憶された読上げ速度が反映される。次に、算出された各音節の継続長を合計して、対象歌詞データの読上げにかかる合計継続時間を算出し、読上げ時間記憶領域142に記憶する(S209)。そして、図7の読上げ処理のルーチンに戻る。
図7に戻り、このようにして読上げ音声データの生成と読上げ時間の算出が完了すると(S103)、次に、読上げ開始時期を計算する(S105)。読上げ開始時期計算処理の詳細については、図9のフローチャート及び図11のタイミングチャートを参照して説明する。まず、対象歌詞データの読上げを終了すべき時期Teを算出する(S301)。本実施形態では、読上げ終了時期は、現在の読上げ対象歌詞データに対応する部分の曲演奏が開始されるタイミングにしているが、これに限られるものではない。この曲演奏開始時期はMIDIデータの各音長を合計することによって算出できる。また、図3の歌詞データベース42のように、歌詞データベースの中に読み上げ終了タイミングの数値を持たせるようにしてもよい。
次に、現在の読上げ対象歌詞データの読上げに要する時間Tpを読上げ時間記憶領域142から読み出す(S303)。そして、Te−Tpにより、読上げ開始時期を算出し、読上げ開始時期記憶領域143に記憶する(S305)。例えば、図11に示す「Old Kentucky Home」の例では、「The sun shines」の読上げ終了時期は240STであり、これがTeとなる。ここから、先に説明した読上げデータ作成処理(図8、S207,S208)で算出された読上げ時間Tpを差し引くと、読上げ開始時期Te−Tpが算出できる。以上の処理が終了したら、図7の読上げ処理のルーチンに戻る。
図7に戻って、以上のように読上げ開始時期が算出されたら(S105)、演奏開始からの経過時間が読上げ開始時期に達したか否かを判断する(S107)。まだ読上げ開始時期になっていなければ(S107:NO)、そのまま待機して読上げ開始時期に達したか否かの判断を繰り返す。そして、読上げ開始時期に達したら(S107:YES)、合成音声データ記憶領域141から読上げデータを読み出してミキサ18に送出し、歌詞音声の読み上げを行なう(S109)。尚、ここでの読上げ音量は、読上げ音量記憶領域139に記憶した読上げ音量に従って、音量が調整される。読み上げが終了したら、読上げ対象となる歌詞データを1つ進める(S111)。そして、図6のメインルーチンに戻る。
図6に戻り、1データ分の読上げ処理が終了したら(S45)、次に、採点処理を行なうタイミングか否かを判断する(S47)。採点処理は、所定時間間隔で繰り返し行なってもよいし、歌詞の1番が終了するごとに、又は1曲が終了してから行なってもよい。採点処理を行なうタイミングである場合は(S47:YES)、採点処理を行なう(S49)。採点処理の詳細については、図10のフローチャートを参照して説明する。
図10に示すように、まず、マイク25から入力された音声をA/D変換したデータをRAMに記憶しておき、その音程を認識する(S401)。次いで、曲データベース41内に含まれる対象曲のメロディーデータの音程と、RAMに記憶された音程とがどの程度一致しているかを比較し、音程一致度を評価する(S403)。例えば、正しい音程に対して±何セントずつずれているかに応じて減点数を設定し、所定の持ち点(例えば100点)から減算する。
次に、マイク25に入力された音声の発声タイミングを、曲データベース41内に含まれる対象曲のメロディーデータに設定された発声タイミングとどの程度一致しているかを判定する(S405)。そして、その判定をタイミング一致度として採点する(S407)。例えば、正しい発生タイミングに対して±何ミリ秒ずれているかに応じて減点数を設定し、所定の持ち点から減算する。
次に、マイク25に入力された音声の文言自体をRAMに記憶しておき、周知の方法を用いて音声認識する(S409)。そして、その認識結果が歌詞データベース42内の歌詞データの文言とどの程度一致しているかを評価する(S411)。そして、以上の音程一致度採点結果(S403)、タイミング一致度採点結果(S407)、文言一致度採点結果(S411)の点数を例えば相加平均して、歌唱者の総合的な歌唱力を採点し、採点結果記憶領域133に記憶する(S413)。採点方法は上記に限られるものではなく、音程の一致度、発生タイミングの一致度、文言の一致度のいずれか1つ又は2つでもよいし、他の要素を加えてもよい。以上の採点処理が終了したら、図6のメインルーチンに戻る。
図6に戻ると、採点処理を行なうタイミングでない場合(S47:NO)、又は、採点処理が終了したら、曲の演奏が終了するか否かを判断する(S51)。まだ終了しない場合には(S51:NO)、S45に戻って読上げ処理を繰り返す。演奏が終了したら(S51:YES)、採点結果記憶領域133に記憶された採点結果を採点結果データベース52に記憶し(S53)、歌唱回数に1を足してインクリメントする(S55)。そして、処理を終了する。
以上説明したように、本実施形態のカラオケ装置1では、歌唱者のリクエスト曲に対する習熟度をその曲の歌唱回数や過去の歌唱力採点結果により3段階に判定し、判定された習熟度に応じて歌詞音声の出力(読上げ)の方法を複数の項目について変更することができるので、習熟度に応じて適切な歌詞音声出力が行われ、歌唱者が快適に歌唱を行うことができる。
尚、以上の実施形態において、図7のフローチャートのS103において読上げデータ作成処理を実行するCPU11が音声信号生成手段として機能する。また、図6のフローチャートのS45において読上げ処理を実行するCPU11が歌詞音声出力手段として機能する。さらに、図6のフローチャートのS9において歌唱回数を判定し,S15及びS21において得点を判定するCPU11が習熟度判定手段として機能する。また、図6のフローチャートのS11,S17,S23において習熟度別モードの選択処理を行なうCPU11がモード切替手段として機能する。さらに、図6のフローチャートのS49で採点処理を実行するCPU11が歌唱力採点手段として機能する。
以上述べた実施の形態では、習熟度の判定は、1曲の演奏が開始される前に1回だけ行われ、判定された習熟度モードによる歌詞音声の出力が1曲終了まで継続される。これを、演奏中も継続して習熟度の判定を行い、その判定結果に従って習熟度モードをリアルタイムで切り替えるように構成してもよい。このような場合の別の実施の形態のカラオケ装置1の動作を図14のフローチャートを参照して説明する。図14は、別の実施形態のカラオケ装置1のメインルーチンのフローチャートである。
図14のフローチャートは、図6のフローチャートにほぼ対応するものであるので、同一の処理については同一のステップ番号を用い、詳細な説明を省略する。本実施の形態では、リアルタイムで習熟度を自動判定するため、手動入力は行なわない。歌唱回数が設定回数以下であれば(S9:NO)低習熟度モードとし(S11)、設定回数を超えていれば(S9:YES)、採点結果記憶領域133に記憶された歌唱力の採点結果による習熟度の判定を行なう(S15,S21)。そして、判定された習熟度に応じてモードを選択し(S11,S17,S23)、各設定項目が記憶される(S13,S19,S25)。モードの設定が終了すると、MIDI演奏が開始され(S43)、歌詞の読上げ処理が行なわれる(S45)。そして、採点処理を行なうタイミングであれば(S47:YES)、採点処理を行なって、採点結果記憶領域133に記憶する。次に、演奏終了でなければ(S51:NO)、第1の実施の形態のように読上げ処理(S45)に戻るのではなく、S15へ戻って判定処理を行なう。採点処理(S49)が行なわれて新しい採点結果が採点結果記憶領域133に記憶されていれば、その採点結果に基づいて新たに習熟度の判定を行なうことができる。このフローチャートに従うと、新しい採点結果がない場合にも記憶されている採点結果に基づいて再び判定処理を行なうが、新たな採点結果が記憶された場合のみS15に戻り、採点処理が行なわれなかった場合にはS45に戻るように構成してもよい。採点処理が行なわれるたびに判定処理を実行することによって、歌唱回数が少ない場合や、たまたま採点結果が歌唱者の習熟度を正確に反映していなかったような場合に、より正確に習熟度を判定して快適な歌詞音声や曲のテンポによる歌唱環境を提供することができる。