(57)【要約】 【課題】  【解決手段】  ゲーム装置２０１において、入力受付部２０２は、音声データの入力を受け付け、分析部２０３は、入力を受け付けられた音声データの周波数成分および／または音量（以下「特徴情報」という。）を分析し、記憶部２０４は、分析された特徴情報を、当該入力の受付開始からの経過時間に対応付けて、記憶し、抽出部２０５は、当該入力の受付開始の後、所定の対比条件が満たされる場合、採点データの特徴情報の経過時間に対する変化と、記憶された特徴情報の経過時間に対する変化と、を対比して、前者の変化と後者の変化とのずれが所定の範囲を超える後者の区間を抽出し、出力部２０６は、記憶された特徴情報のうち、抽出された区間とそのずれの情報を出力する。【選択図】  図２
2005208196.tif 000002
【特許請求の範囲】
【請求項１】
音声データの入力を受け付ける入力受付部、
前記入力を受け付けられた音声データの特徴情報を分析する分析部、
前記分析された特徴情報を、当該入力の受付開始からの経過時間に対応付けて、記憶する記憶部、
当該入力の受付開始の後、所定の対比条件が満たされる場合、あらかじめ用意された採点データの特徴情報の経過時間に対する変化と、前記記憶された音声データの特徴情報の経過時間に対する変化と、を対比して、前者の変化と後者の変化とのずれが所定の範囲を超える後者の区間を抽出する抽出部、および、
前記記憶された特徴情報のうち、前記抽出された区間とそのずれの情報を出力する出力部
を備えることを特徴とするカラオケ装置。
【請求項２】
請求項１に記載のカラオケ装置であって、
前記出力部は、前記抽出された区間に対応付けられる採点データを音声により出力する
ことを特徴とするもの。
【請求項３】
請求項２に記載のカラオケ装置であって、
前記入力を受け付けられた音声データと、伴奏データと、を再生する再生部
をさらに備え、
前記入力受付部は、当該伴奏データの再生の開始により当該入力の受付を開始し、
当該所定の対比条件は、当該伴奏データの再生の終了により満たされ、
前記出力部は、前記抽出された区間に対応付けられる伴奏データを、当該区間に対応付けられる採点データとともに、音声により出力する
ことを特徴とするもの。
【請求項４】
請求項３に記載のカラオケ装置であって、
前記出力部は、当該伴奏データの音声による出力に対して、当該採点データを、当該区間に対するずれだけ時間的にずらして、音声により出力する
ことを特徴とするもの。
【請求項５】
請求項４に記載のカラオケ装置であって、
前記出力部は、当該採点データの区間に対応付けられた文字または図形を、当該採点データの音声による出力に同期させて画面表示して出力する
ことを特徴とするもの。
【請求項６】
請求項５に記載のカラオケ装置であって、
前記出力部は、当該採点データの区間に対応付けられた文字または図形を、当該採点データを当該区間に対するずれだけ時間的にずらさずに音声により出力したとした場合の出力に同期させてさらに画面表示して出力する
ことを特徴とするもの。
【請求項７】
請求項３に記載のカラオケ装置であって、前記出力部は、
当該伴奏データの音声による出力に対して当該採点データを当該区間に対するずれだけ時間的にずらして、当該ずらした音声を所定の第１出力系統を介して音声により出力し、
当該伴奏データの音声による出力に対して当該採点データを時間的にずらさずに、当該ずらさない音声を所定の第２出力系統を介して音声により出力する
ことを特徴とするもの。
【請求項８】
請求項２から７のいずれか１項に記載のカラオケ装置であって、
前記分析部は、音声データの特徴情報として、周波数成分および音量の両方を分析し、
前記出力部は、「当該採点データを音声により出力」するのにかえて、「『前記抽出された採点データの区間に対応する当該記憶された特徴情報の経過時間に対する変化の区間を』音声により出力」する
ことを特徴とするもの。
【請求項９】
入力受付部、分析部、記憶部、抽出部、および、出力部を備えるカラオケ装置において使用されるカラオケ方法であって、
当該入力受付部が、音声データの入力を受け付ける入力受付工程、
当該分析部が、前記入力を受け付けられた音声データの特徴情報を分析する分析工程、
当該記憶部に、前記分析された特徴情報を、当該入力の受付開始からの経過時間に対応付けて、記憶する記憶工程、
当該抽出部が、当該入力の受付開始の後、所定の対比条件が満たされる場合、前記記憶された特徴情報の経過時間に対する変化を、あらかじめ用意された採点データの経過時間に対する変化と対比して、前者の変化と後者の変化とのずれが所定の閾値を超える区間を抽出する抽出工程、および、
当該出力部が、前記記憶された特徴情報のうち、前記抽出された区間の情報を出力する出力工程
を備えることを特徴とする方法。
【請求項１０】
コンピュータを、
音声データの入力を受け付ける入力受付部、
前記入力を受け付けられた音声データの特徴情報を分析する分析部、
前記分析された特徴情報を、当該入力の受付開始からの経過時間に対応付けて、記憶する記憶部、
当該入力の受付開始の後、所定の対比条件が満たされる場合、前記記憶された特徴情報の経過時間に対する変化を、あらかじめ用意された採点データの経過時間に対する変化と対比して、前者の変化と後者の変化とのずれが所定の閾値を超える区間を抽出する抽出部、および、
前記記憶された特徴情報のうち、前記抽出された区間の情報を出力する出力部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カラオケ装置、カラオケ方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、種々のカラオケ装置が提供されている。カラオケ装置では、ＭＩＤＩ（Musical Instrument Digital Interface）データ等で用意された楽曲データや、ＰＣＭ（Pulse Code Modulation）データ等で用意された音声波形データをあらかじめ用意しており、これを伴奏データとして音声出力するとともに、音声出力のタイミングに合わせてテレビジョン装置等の画面に歌詞を表示する。また、カラオケ装置に接続されたマイクから歌い手の音声波形データの入力を受け付け、これと、上記の伴奏データとを適宜混合（mixing；ミキシング）して、スピーカから音声出力する。伴奏データは、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）やＤＶＤ−ＲＯＭ（Digital Versatile Disk ROM）などの情報記録媒体に記録されている場合もあるし、コンピュータ通信網を介して、他の記憶装置から取得可能に構成されている場合もある。
【０００３】
さらに、コンピュータ技術の発展に伴い、各家庭にあるゲーム装置を利用して、カラオケを楽しむことができる環境が整いつつある。このようなゲーム装置を利用したカラオケでは、ビデオ出力はテレビジョン装置などに接続され、歌詞等を表示するのに用いられる。マイクはゲーム装置に直結され、マイクから入力された音声は、ゲーム装置用のＤＶＤ−ＲＯＭに記憶された伴奏データやコンピュータ通信網を介してダウンロードされた伴奏データとミキシングされて、テレビジョン装置やステレオ装置の音声入力を介してスピーカから出力される。
【０００４】
従来、カラオケ装置は、マイクから入力された歌い手の歌唱の様子を示す音声データを周波数分析や音量分析して、その時間変化を、あらかじめ用意された採点用の周波数成分や音量の時間変化とリアルタイムに対比して、採点を行うのが一般的であった。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、採点をリアルタイムで行うと、早く歌い出してしまったり、歌い出しが遅れたり、等の時間的なずれを検知することは難しい。一方で、歌唱の各小節が正しいタイミングで歌われているか否かは、歌の上手下手に大きく関わるため、これを採点に用いたいという要望は大きい。
【０００６】
そこで、カラオケにおいて歌唱の時間的なずれを適切に検知して歌い手に提示する技術が強く求められている。
本発明は、歌唱の時間的なずれを適切に検知して歌い手に提示するのに好適なカラオケ装置、カラオケ方法、ならびに、これらをコンピュータによって実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第１の観点に係るカラオケ装置は、入力受付部、分析部、記憶部、抽出部、および、出力部を備え、以下のように構成する。
【０００８】
すなわち、入力受付部は、音声データの入力を受け付ける。
典型的には、カラオケ装置に接続されたマイクから、歌い手の歌唱の様子が音声データとして入力されることとなる。
【０００９】
一方、分析部は、入力を受け付けられた音声データの特徴情報を分析する。特徴情報としては、典型的には、音声データの周波数成分や音量、または、これらの双方などを採用することができる。
周波数成分の分析には、典型的には、高速フーリエ変換を用いたり、各音程（やこれをさらに細分化した周波数帯）ごとに複数用意されたバンドパスフィルタを用いる。そして、成分の強度が最も高いものを、歌い手の歌唱の音程とする。
【００１０】
音量の分析は、音声データの振幅や振幅の自乗などをそのまま利用するのが一般的であるが、上記歌い手の歌唱の音程の成分の強度を音量として採用しても良い。
なお、歌い出しなどの歌唱の時間的なずれを検知するためには、音程と音量の両方が必要でない場合も多い。したがって、いずれか一方のみを特徴情報として採用して、時間的なずれを検知するのでも良いし、両方を特徴情報として採用するのでも良い。
【００１１】
さらに、記憶部は、分析された特徴情報を、当該入力の受付開始からの経過時間に対応付けて、記憶する。
典型的には、所定の時間間隔（サンプリング間隔）で、分析された特徴情報をＲＡＭ（Randome Access Memory）やハードディスクなどの外部記憶装置に用意された配列に順に記憶していく。このサンプリング間隔は、時間的なずれを検知するための精度と、配列を用意する記憶装置の容量とを勘案して適宜選択することができる。
【００１２】
そして、抽出部は、当該入力の受付開始の後、所定の対比条件が満たされる場合、あらかじめ用意された採点データの特徴情報の経過時間に対する変化と、記憶された音声データの特徴情報の経過時間に対する変化と、を対比して、前者の変化と後者の変化とのずれが所定の範囲を超える後者の区間を抽出する。
【００１３】
ここで、「採点データ」とは、典型的には、歌唱の見本となるべき音程や音量で演奏を行うための演奏データである。したがって、「採点データ」をかりにそのまま演奏すれば、歌い手の見本となるべき音程・音量である楽器が演奏されたかのような音声出力される。
また、「採点データ」と「音声データ」の差異が大きければ、歌い手の歌唱が下手であることになり、一致の度合が高ければ、歌い手の歌唱が上手であることになる。
【００１４】
上記のように、所定の対比条件が満たされるまでは、マイクから入力された音声データを分析した特徴情報は記憶部に記憶されているのみであり、時間的なずれの検知は行わない。所定の対比条件が満たされて初めて、時間的なずれの大きさと、当該ずれが生じている区間を抽出する。したがって、典型的には、歌い手が１曲を歌い終わってから時間的なずれを検知することとなる。
【００１５】
なお、抽出される「区間」は、採点データに対するものであり、後述するように、歌唱の時間的なずれを歌い手に提示する場合には、ＲＡＭなどに記憶された特徴情報を用いるのではなく、採点データを用いて提示する。
また、「所定の対比条件」としては、１曲を歌い終わっているか否か、という条件を採用するのが典型的であるが、歌い手がコントローラ等を介して対比をするようにカラオケ装置に指示を出した場合に満たされることとしても良いし、歌い始めてから所定の時間が経過が経過したときに満たされるものとして設定しておいても良い。
【００１６】
一方、出力部は、記憶された特徴情報のうち、抽出された区間とそのずれの情報を出力する。
出力は、音声による出力、画面表示による出力など、種々の手法が考えられる。また、ずれの大きさをそのまま提示したり、わかりやすく提示したりするほか、ずれの大きさや、ずれが生じている区間の数や時間長によって歌唱に採点付けを行い、採点結果を出力する手法を採用することもできる。
【００１７】
本発明によれば、カラオケにおいて、歌い方に時間的なずれがある場合にはそれを検出して、歌い手にこれを報告することができるようになる。
【００１８】
また、本発明のカラオケ装置において、出力部は、抽出された区間に対応付けられる採点データを音声により出力するように構成することができる。
【００１９】
すなわち、採点データと音声データとに時間的なずれが生じている区間について、正しい音程、正しい強弱、正しいテンポである採点データを音声により再生出力するのである。
【００２０】
本発明によれば、歌のどの区間について、ユーザの歌唱に時間的なずれが生じているかを、ユーザは、正しい音程、正しい強弱、正しいテンポで再生される音声により知ることができるため、自己の歌唱において問題が生じている部分を容易に把握することができるようになり、研鑽を積むのに役立てることができる。
【００２１】
また、本発明のカラオケ装置は、再生部をさらに備え、以下のように構成することができる。
【００２２】
すなわち、再生部は、入力を受け付けられた音声データと、伴奏データと、を再生する。
典型的なカラオケ装置においては、ユーザはアカペラ（伴奏なし）で歌唱を行うのではなく、伴奏データをスピーカなどで音声出力するとともに、ユーザの歌唱を当該音声出力に混合して出力する。再生部は、このようなミキシング再生を行うのである。
【００２３】
一方、入力受付部は、当該伴奏データの再生の開始により当該入力の受付を開始する。
すなわち、本発明では、ユーザの歌唱に係る音声入力の処理を開始する契機として、伴奏データの再生開始を用いる。これによって、伴奏データが再生される前の音声入力は、かりに入力があったとしても、歌唱に係る音声データではないとして処理の対象とはしない。
【００２４】
さらに、当該所定の対比条件は、当該伴奏データの再生の終了により満たされる。
「所定の対比条件」として、伴奏の終了を採用することにより、ユーザが１曲を歌い終わっていることを確認するのである。
【００２５】
そして、出力部は、抽出された区間に対応付けられる伴奏データを、当該区間に対応付けられる採点データとともに、音声により出力する。
上記発明では、ずれが生じている区間に対応する採点データを再生することによって、歌のうちのどの区間について歌唱に時間のずれが生じていたかを知らせていたが、本発明では、当該採点データの再生とともに伴奏データを再生する。
【００２６】
本発明によれば、ユーザはカラオケの伴奏データを聞いて歌を歌うことができるようになる一方で、歌い始めに時間的なずれが生じた場合には、その区間についての伴奏データと採点データとが再生されるので、歌のうちのどの区間について歌唱に時間のずれが生じていたかを、さらに容易に知ることができるようになる。
【００２７】
また、本発明のカラオケ装置において、出力部は、当該伴奏データの音声による出力に対して、当該採点データを、当該区間に対するずれだけ時間的にずらして、音声により出力するように構成することができる。
たとえば、ある区間について、歌い始めが○○秒遅れた場合に、これを出力部が知らせる際には、当該区間に対応する伴奏データの再生から○○秒遅れて採点データを再生するようにする。
本発明によれば、どの程度歌い出し等に時間的なずれが生じていたかを、伴奏データの再生と採点データの再生とを時間的にずらすことによって、ユーザは容易に知ることができるようになる。
【００２８】
また、本発明のカラオケ装置において、出力部は、当該採点データの区間に対応付けられた文字または図形を、当該採点データの音声による出力に同期させて画面表示して出力するように構成することができる。
【００２９】
一般にカラオケにおいては、伴奏データの再生に合わせて歌詞を表す文字を画面に表示する。本発明の一形態においては、出力部において採点データを再生する際に、採点データの再生の進行状況に同期させて、その歌詞を表示するのである。また、図形を同期させて画面表示する場合は、採点データがどの程度再生されたかを表す棒グラフ等の図形の長さの変化を採点データの音声出力に同期させる等が考えられる。
【００３０】
本発明によれば、歌い出し等に時間的なずれが生じていた部分について、当該採点データの再生に合わせて、当該採点データの区間に対応付けられた歌詞などが画面に時間を追って表示されるので、ユーザは、採点データにおける時間経過を容易に知ることができるようになる。
【００３１】
また、本発明のカラオケ装置において、出力部は、当該採点データの区間に対応付けられた文字または図形を、当該採点データを当該区間に対するずれだけ時間的にずらさずに音声により出力したとした場合の出力に同期させてさらに画面表示して出力するように構成することができる。
【００３２】
上記発明では、採点データの再生に同期させて歌詞等の文字や図形を表示していたが、本発明では、さらに、「当該採点データを当該区間に対するずれだけ時間的にずらさずに音声により出力したとした場合の出力」に同期させて（いわば伴奏データの出力に同期させて）、さらに歌詞等の文字や図形を表示する。たとえば、歌詞を表示する場合に、検知された時間のずれが○○秒遅れであった場合は、正しく歌えたとした場合の歌詞表示（伴奏に合った歌詞表示）がされるとともに、○○秒遅れで同じ歌詞が別途表示されることとなる。棒グラフ等で進行状況を提示する場合は、正しく歌ったとした場合の進行状況の棒グラフ等の表示から○○秒遅れで別の棒グラフ等が表示されることとなる。
【００３３】
本発明では、歌い出し等に時間的なずれが生じていた部分について、その時間的なずれだけずらして２つの表示を行うことにより、ずれが生じていた部分やずれの大きさをわかりやすくユーザに提示することができるようになる。
【００３４】
また、  本発明のカラオケ装置において、出力部は、当該伴奏データの音声による出力に対して当該採点データを当該区間に対するずれだけ時間的にずらして、当該ずらした音声を所定の第１出力系統を介して音声により出力し、当該伴奏データの音声による出力に対して当該採点データを時間的にずらさずに当該ずらさない音声を所定の第２出力系統を介して音声により出力するように構成することができる。
【００３５】
たとえば、本発明のカラオケ装置がステレオ再生可能なものである場合、右チャンネルと左チャンネルのいずれか一方を第１出力系統に、他方が第２出力系統に、それぞれ対応付けることができる。そして、第１出力系統のチャンネルからはユーザの歌唱に即した採点データの音声出力を行い、第２出力系統のチャンネルからは正しく歌えたとした場合の採点データの音声出力を行うのである。これらのほか、伴奏データも音声出力されるため、第２出力系統のチャンネルからの採点データの音声出力と伴奏データの音声出力とは、歌唱の見本となるべく同期していることになる。
【００３６】
本発明では、ヘッドホンを用いて音声出力を聞いた場合は特に、ユーザは、歌い出し等の時間的なずれを左右の音の時間差によって知得することができるようになる。
【００３７】
また、本発明は、以下のように構成することができる。
すなわち、分析部は、音声データの特徴情報として、周波数成分および音量の両方を分析する。
上記発明では、時間的なずれが検知できるのであれば、周波数成分のみを特徴情報としても良いし、音量のみを特徴情報としても良いし、周波数成分と音量の両方を合わせて特徴情報としても良い、としていたが、本発明では、周波数成分と音量の両方を合わせて特徴情報とする。
【００３８】
一方、出力部は、「当該採点データを音声により出力」するのにかえて、「『前記抽出された採点データの区間に対応する当該記憶された特徴情報の経過時間に対する変化の区間を』音声により出力」する。
上記発明では、時間的なずれが生じていた部分を音声によりユーザに知らせるために、採点データを再生することとしていたが、本実施形態では、ユーザの声がマイク等を介して入力された音声データの周波数成分および音量の変化のうち、時間的なずれが生じていた部分を音声出力する。
【００３９】
本発明によれば、ユーザの歌い方を録音してそのまま再生するのではなく、その周波数成分（音程）および音量のみをあらかじめ分析しておいて、歌い方に時間的なずれが生じた区間についてその音程・音量で音声再生をしてユーザの歌い方をある程度再現することにより、歌い方に問題がある部分について、ユーザにわかりやすく提示することができるようになる。
【００４０】
本発明のその他の観点に係るカラオケ方法は、入力受付部、分析部、記憶部、抽出部、および、出力部を備えるカラオケ装置において使用されるカラオケ方法であって、入力受付工程、分析工程、記憶工程、抽出工程、および、出力工程を備え、以下のように構成する。
【００４１】
すなわち、入力受付工程では、当該入力受付部が、音声データの入力を受け付ける。
一方、分析工程では、当該分析部が、入力を受け付けられた音声データの特徴情報を分析する。
さらに、記憶工程では、当該記憶部に、分析された特徴情報を、当該入力の受付開始からの経過時間に対応付けて、記憶する。
【００４２】
そして、抽出工程では、当該抽出部が、当該入力の受付開始の後、所定の対比条件が満たされる場合、記憶された音声データの特徴情報の経過時間に対する変化を、あらかじめ用意された採点データの経過時間に対する変化と対比して、前者の変化と後者の変化とのずれが所定の閾値を超える区間を抽出する。
一方、出力工程では、当該出力部が、記憶された特徴情報のうち、抽出された区間の情報を出力する。
【００４３】
本発明の他の観点に係るプログラムは、コンピュータを、上記のカラオケ装置の各部として機能させ、もしくは、コンピュータに、上記のカラオケ方法の各工程を実行させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００４４】
本発明によれば、歌唱の時間的なずれを適切に検知して歌い手に提示するのに好適なカラオケ装置、カラオケ方法、ならびに、これらをコンピュータによって実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００４５】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム装置に本発明が適用される実施形態を説明するが、各種のコンピュータ、ＰＤＡ、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００４６】
図１は、本発明の実施形態の１つに係るカラオケ装置が実現される典型的なゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００４７】
ゲーム装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ（Read Only Memory）１０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェース１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ（Digital Versatile Disk）−ＲＯＭドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、を備える。
【００４８】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、ゲーム装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態のカラオケ装置が実現される。
【００４９】
ＣＰＵ  １０１は、ゲーム装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００５０】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、ゲーム装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００５１】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００５２】
インターフェース１０４を介して接続されたコントローラ１０５は、ユーザがカラオケなどのゲーム実行の際に行う操作入力を受け付ける。
【００５３】
インターフェース１０４を介して着脱自在に接続された外部メモリ１０６には、カラオケのプレイ状況（過去に歌った楽曲や採点結果等）を示すデータ、ゲームの進行状態を示すデータ、チャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００５４】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００５５】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００５６】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００５７】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ＲＯＭ  １０２に記録されているが、ＤＶＤ−ＲＯＭに記録された専用のフォント情報を利用することも可能である。
【００５８】
ＮＩＣ  １０９は、ゲーム装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００５９】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００６０】
音声処理部１１０は、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００６１】
さらに、ゲーム装置１００には、インターフェース１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【００６２】
ゲーム装置１００をカラオケ装置として利用する場合には、ＤＶＤ−ＲＯＭから読み出した音声データ、もしくは、ＮＩＣ  １０９を介してコンピュータ通信網から取得した音声データを伴奏データとし、マイクから入力された音声データを歌唱データとして、伴奏データと歌唱データを音声処理部１１０がミキシングし、スピーカから出力する。また、スピーカにかえて、ヘッドホン（図示せず）やイヤフォン（図示せず）を用いて、音声を出力させることもできる。
【００６３】
このほか、ゲーム装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００６４】
（カラオケ装置の構成）
図２は、上記ゲーム装置１００等の上に実現されるカラオケ装置の概要構成を示す説明図である。図３は、当該カラオケ装置にて実行されるカラオケ方法の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【００６５】
本実施形態に係るカラオケ装置２０１は、入力受付部２０２、分析部２０３、記憶部２０４、抽出部２０５、出力部２０６、および、表示部２０７、操作部２０８を備え、ゲーム装置１００上に実現される。
【００６６】
まず、カラオケ装置２０１は、表示部２０７にメッセージを表示して、カラオケをしたい楽曲をユーザに選択させる（ステップＳ３０１）。ここで、表示部２０７としては、画像処理部１０７を用い、メッセージは、テレビジョン装置などのモニタに表示される。
【００６７】
そして、ユーザが、コントローラ１０５などにより構成される操作部２０８を用いて、所望の楽曲を選択すると、選択された楽曲の伴奏データと採点データを、コンピュータ通信網を介してＮＩＣ  １０９経由で接続されたカラオケサーバ装置からダウンロードする（ステップＳ３０２）。
【００６８】
本実施形態では、伴奏データと採点データは、ＭＩＤＩデータとして提供される。ＭＩＤＩデータは、複数の音源に対応付けられる複数のチャンネルからなる。各チャンネルは、たとえば、ピアノ、ギター、ベース、ドラムなどの楽器に割り当てられており、ゲーム装置１００の音声処理部１１０にあらかじめ用意された音源データに対応付けられている。
【００６９】
ＭＩＤＩデータの指令は、先の指令を出してからどれだけ時間が経過してからこの指令を実行するかを示す経過時間、どのチャンネルに対する指令かを表す番号（チャンネル指定がない場合もある。）、音高・音程、音量、音の演出効果を示す識別子ならびにパラメータを含むものが一般的であるが、ベンダーが自由に利用できるように予約された指令（「システム・エクスクルーシブ」と呼ばれる。）もある。
【００７０】
本実施形態では、伴奏データは、上記のような伴奏に用いられる音源（楽器）に割り当てられたチャンネルに対応付けられるＭＩＤＩデータによって表現される。一方、採点データは、通常のカラオケの伴奏には用いない音源に割り当てられたチャンネルに対応付けられる。
【００７１】
したがって、採点データを、何らかの音源に割り当てて再生すれば、カラオケを歌う際の見本となる音程・音量で（カラオケの歌詞を無視してハミングしたかのように）再生されることになる。
【００７２】
また、後述するように、本実施形態では、歌唱の時間的なずれを検知するが、その検知を行う単位を１小節ごとに行う。すなわち、「この小節は、○○秒歌い始めが遅れている」「この小節は、○○秒歌い始めが進んでいる」のような情報を検知することによって、ユーザの歌唱の実力向上に役立てようとしている。
【００７３】
そこで、小節と小節の区切は、上記のシステム・エクスクルーシブに適当なベンダ拡張命令を定義して、これを用いることによって表現する。
【００７４】
このように、ＭＩＤＩデータの「経過時間」の情報を逐次加算していけば、演奏開始からの経過時間を知ることができる。また、「システム・エクスクルーシブ」によって、時間のずれを検出する区間の区切を表現する。さらに、採点用のデータを扱うチャンネルを伴奏用のデータとは別に設けることによって、カラオケをプレイするとき（ユーザが歌うとき）には、採点データのチャンネルを再生しないこととし、後述するように時間のずれを再現する際に採点データのチャンネルを再現することができる。
【００７５】
このほか、カラオケにおいては、歌詞が伴奏に同期して画面に表示される。そこで、このような歌詞データもＭＩＤＩデータの「システム・エクスクルーシブ」に含めるようにすることが望ましい。ＣＰＵ  １０１は、ＭＩＤＩデータを音声処理部１１０に引き渡して処理させるのと同時に、音声処理部１１０がどこまでＭＩＤＩデータを処理したのかを監視し、それに応じて、ＭＩＤＩデータから歌詞データを走査して、画像処理部１０７を制御して対応する歌詞データをモニタに表示させるのである。その詳細については、後述する。
【００７６】
尚、ＭＩＤＩデータを用いなくとも、上記のような機能を果たす独自のフォーマットで、採点データや伴奏データを表現した場合にも、本発明の範囲に含まれる。たとえば、採点データは１チャンネルのＭＩＤＩデータで表現し、伴奏データはOgg Vorbis形式の音声データで表現する等である。この場合は、伴奏データと採点データとに矛盾が生じないように、それぞれの経過時間や区間の定義等に整合性を持たせるようにデータを定義する必要がある。
【００７７】
また、本実施形態は、いわゆるネットワークカラオケに相当するものであり、ダウンロードしたＭＩＤＩデータはＲＡＭ  １０３に一時的に格納される。また、ハードディスク等の外部記憶装置を有する場合には、そちらに蓄積保存することとしても良い。また、採点データや伴奏データとして、ＤＶＤ−ＲＯＭやＣＤ−ＲＯＭに記録されたものを利用することとし、ＤＶＤ−ＲＯＭドライブ１０８を用いてこれらの情報を読み出すように構成することも可能である。
【００７８】
次に、ＣＰＵ  １０１は、ＲＡＭ  １０３に記憶したＭＩＤＩデータを指定して、当該ＭＩＤＩデータを演奏するように音声処理部１１０に指示を出す（ステップＳ３０３）。すると、音声処理部１１０は、ＭＩＤＩデータを順次解釈し、適切な音源データを取得してＰＣＭデータに変換し、これをＤ／Ａ変換してスピーカから出力する、という処理を、以降のＣＰＵ  １０１における処理と並行して行うこととなる。なお、音声処理部１１０は、後述するように、マイク１１１から入力された音声データと伴奏データとのミキシングも行う。
【００７９】
ついで、ＣＰＵ  １０１は、演奏を開始してからの経過時間を記憶する領域をＲＡＭ  １０３内に確保し、当該経過時間領域に値０（演奏を開始した時刻であることを意味する。）を格納する（ステップＳ３０４）。
【００８０】
ついで、音声処理部１１０に、ＭＩＤＩデータの演奏を開始してから経過時間が、ＲＡＭ  １０３内の経過時間領域に格納された経過時間に所定の間隔値を加算したものとなるまで待機する（ステップＳ３０５）。ここで待機するためには、音声処理部１１０に、演奏開始からの経過時間を問い合わせ、上記条件が満たされるまでこれを繰り返すのでも良いし、割込処理を利用するのでも良い。
【００８１】
また、「所定の間隔値」は、マイク１１１から入力されるＰＣＭデータをバッファリングできる時間長などの定数としても良いし、現在演奏されているＭＩＤＩデータのテンポに応じて変化させても良い。また、１小節の時間長を所定の整数で割った長さ（たとえば、４分音符の長さの２５６分の１等。）、とするのでも良い。以下では、理解を容易にするため、定数dであるとする。
【００８２】
そして、ＣＰＵ  １０１は、ＲＡＭ  １０３に記憶されたＭＩＤＩデータを走査して、「ＲＡＭ  １０３内の経過時間領域に格納された経過時間」から、「ＲＡＭ  １０３内の経過時間領域に格納された経過時間に所定の間隔値を加算した経過時間」までの間（以下「繰り返し単位」という。）に、処理すべきものとして指定されている歌詞データを抽出し（ステップＳ３０６）、当該歌詞データにしたがって画像処理部１０７に指示を出して、モニタに歌詞を表示させる（ステップＳ３０７）。
【００８３】
カラオケにおいては、歌い手のために、モニタにこれから歌うべき歌詞を表示し、伴奏が進むにつれて歌うべき場所の歌詞の色が変化していくという処理を行うことが一般的であるが、適切に歌詞データをＭＩＤＩデータ内に埋め込んでおくことによって、これを実現することができる。
【００８４】
さらに、ＣＰＵ  １０１は、歌い手がマイク１１１を介して歌声を入力し、マイク１１１やこれをインターフェース１０４や適切なサンプリング周波数でＤ／Ａ変換を行うことによって得られるＰＣＭデータのうち、今回の繰り返し単位の間に入力されたものを取得してＲＡＭ  １０３に保存し（ステップＳ３０８）、当該ＰＣＭデータを音声処理部１１０に渡して伴奏データとミキシングさせて、スピーカから再生させる（ステップＳ３０９）。
【００８５】
「所定の間隔値」を十分に小さくすれば、ステップＳ３０８〜ステップＳ３０９の処理によって歌声が遅れる度合は十分に無視できる。なお、マイク１１１から入力されるＰＣＭデータは、ＣＰＵ  １０１の処理とは並行して音声処理部１１０に渡されるものとして、ミキシングによる遅延が生じないようにしても良い。
【００８６】
上記のように、本処理では、伴奏が開始されて以降にマイク１１１から入力されたＰＣＭデータを処理の対象とするため、伴奏が開始される以前にマイク１１１に音声が入力されたとしても、その入力は無視されることになる。
【００８７】
さて、ここで得られるＰＣＭデータは、今回の繰り返し単位の間に入力が受け付けられたものである。そこで、ＣＰＵ  １０１は、ＰＣＭデータを分析して、以下のような情報を得る（ステップＳ３１０）。したがって、ＣＰＵ  １０１は、分析部２０３として機能する。
（ａ）現在のＰＣＭデータの基本周波数。これによって現在の歌声の音程が判明する。たとえば、ＰＣＭデータを高速フーリエ変換することによって周波数スペクトルを得れば、最も成分が大きい周波数が基本周波数となる。このほか、複数の互に異なる周波数帯の信号を通過させるバンドパスフィルタを用意して、これらの出力のうち、最も大きい成分を出力したバンドパスフィルタの周波数帯を基本周波数としても良い。
（ｂ）現在のＰＣＭデータの変位の２乗平均（パワー）。これによって現在の歌声の大きさが判明する。たとえば、ＰＣＭデータは、数値の列と見ることができるが、「当該数値の列に含まれるそれぞれの数値の自乗の平均」から、「当該数値の列に含まれる数値の平均の自乗」を減算すれば、「ＰＣＭデータの変位の２乗平均」が得られる。
【００８８】
そして、これらの特徴情報を、ＲＡＭ  １０３に保存する（ステップＳ３１１）。したがって、ＲＡＭ  １０３は、ＣＰＵ  １０１と共働して、記憶部２０４として機能する。
【００８９】
以下、理解を容易にするため、演奏を開始してからi回目の繰り返し単位（「演奏開始からの経過時間id」から「演奏開始からの経過時間(i+1)d」までの間）における基本周波数はf[i]と、パワーはa[i]と書くこととする。
【００９０】
尚、ＲＡＭ  １０３の容量が小さいために、１曲のカラオケをプレイした場合のすべてのf[i]やa[i]を記憶させることができない場合がある。その場合は、適宜間引を行えば良い。
【００９１】
たとえば、N回に１回だけ記憶させるとするならば、iがNの倍数のときにだけＲＡＭ  １０３にf[i]，a[i]を記憶させることとし、このf[i]，a[i]は、「演奏開始からの経過時間id」から、「演奏開始からの経過時間(i+N)ｄ」までの間における基本周波数とパワーであるものとして扱えば良い。すなわち、f[i] = f[i+1] = … = f[i+N-1]，a[i] = a[i+1] = … = a[i+N-1]，であるものとして扱えば良いのである。尚、以下では、理解を容易にするため、N=1であるものとして説明する。
【００９２】
このほか、ミキシングをする際の「所定の間隔値」と分析を行う際の「所定の間隔値」とを、異なる値とすることによっても、分析された結果のデータの容量を調節することができる。
【００９３】
そして、ステップＳ３０５においてＲＡＭ  １０３内の経過時間領域に格納された値にdを加算して更新し（ステップＳ３１２）ＭＩＤＩデータの演奏が終わっていないか調べ（ステップＳ３１３）、終わっていなければ（ステップＳ３１３；Ｎｏ）、ステップＳ３０５に戻る。
【００９４】
なお、ステップＳ３１３における判断は、「伴奏が終了したか否か」に相当するが、ユーザがコントローラ１０５を操作することによって途中で歌唱を中止した場合には、直ちに抽出処理を終了して、以降の処理に進むようにしても良い。この場合は、以降の処理で対象となる区間として、ステップＳ３１２で直前に処理を行った区間を最後の区間とすることとなる。
【００９５】
一方終わっていれば、後述する抽出処理を実行し（ステップＳ３１４）、その抽出の結果を後述する出力処理によって出力して（ステップＳ３１５）、本処理を終了する。
【００９６】
図４は、抽出処理の制御の流れを示すフローチャートである。
【００９７】
上記のように、ＲＡＭ  １０３には、時間間隔dで分析した結果得られた基本周波数の数列f[0]，f[1]，f[2]，…とパワーの数列a[0]，a[1]，a[2]，…とが記憶されている。
【００９８】
一方、採点用データとして、ＭＩＤＩデータのあるチャンネルに、演奏開始からの経過時間に対応付けることが可能なように音程データと音量データとが採点データとして埋め込まれている。ＭＩＤＩデータを走査すれば、各データ断片が処理されるべき「演奏開始からの経過時間」を得ることができ、音程データからは対応する基本周波数を得ることができる。また、音量はパワーと相関がある。典型的には、音量の２乗がパワー、あるいは、音量そのものがパワーである。
【００９９】
そこで、演奏開始からの経過時間をtとしたときの、tにおける採点データの基本周波数をg(t)、パワーをb(t)と書くこととする。
【０１００】
また、ＭＩＤＩデータには、小節ごとの区切のデータも含まれている。そこで、i番目の小節が始まる「演奏開始からの経過時間」をs(i)と書くこととすると、i番目の小節は、「演奏開始からの経過時間t」がs(i)≦t<s(i+1)である区間になる。
【０１０１】
そこで、対比のために、当該区間の採点データから、対比用の基本周波数g(s(i))，g(s(i)+d)，…，g(s(i+1)-d)、および、パワーb(s(i))，b(s(i)+d)，…，b(s(i+1)-d)を得る。これらはいずれも、(s(i+1)-s(i))/d個の数値データであるから、(s(i+1)-s(i))/d次元のベクトルと見ることができる。そこで以下では、前者をベクトルG[i]と、後者をベクトルB[i]と、それぞれ書くこととする。
【０１０２】
一方、採点データに対する入力された音声データ（歌声）の時間的なずれをδdとすると、これに対応する歌声の区間の基本周波数はf[s(i)/d+δ]，f[s(i)/d+δ+1]，…，f[s(i+1)d+δ-1]パワーは、a[s(i)/d+δ]，a[s(i)/d+δ+1]，…，a[s(i+1)d+δ-1]となる。
【０１０３】
そこで、これらも(s(i+1)-s(i))/d次元のベクトルと見て、前者をF[i,δ]と、後者をA[i,δ]と、それぞれ書くこととする。
【０１０４】
さて、時間的なずれがδdであることから、G[i]とF[i,u]の相関の値、および、B[i]とA[i,u]の相関の値は、いずれも、u = δで極大となるべきである。逆に言えば、ある所定の範囲でuを変化させて、これらの相関の値を求め、これが最大となるuをδとすれば、時間的なずれδdを求めることができる。これは、通信技術におけるスライド同期に相当する。なお、歌声のサンプリングの精度を考えれば、得られるずれの精度はd程度であるから、u，δとしては整数を考えれば十分である。
【０１０５】
uを変化させる範囲については、歌がどの程度までずれることを想定するか、によって、適宜決めれば良い。たとえば、前後L秒までのずれを検出するのであれば、-L/d≦u≦L/dの範囲でuを変化させればよい。
【０１０６】
さて、相関の値の具体的な計算方法であるが、１つの手法としては、２つのベクトルp，qがあるときに、これらの相関の値は、ベクトルp，qがなす角の余弦（cosine）とする手法がある。すなわち、(p・q)/(|p| |q|)をp，qの相関の値C(p,q)とするのである。
【０１０７】
N次元ベクトルpのi番目の要素をp[i]と表記することとすると、ベクトルの内積p・qは、以下の計算によって求めることができる。
p・q = Σi=0N-1p[i]q[i]
また、ベクトルの大きさ|p|は、以下の計算によって求めることができる。
|p| = (p・p)1/2
【０１０８】
さて、本実施形態では、基本周波数の相関と、パワーの相関と、の、２つの値が求められる。したがって、それぞれについて時間的なずれを求めても良いが、両者が異なる場合に、ユーザに両方の値を出力してもユーザがとまどうことも多い。
【０１０９】
そこで、あらかじめ正定数KおよびHを定めておき、i番目の区間について、-L/d≦u≦L/dの範囲でuを変化させて
z(i,u) = K C(G[i],F[i,u]) + H C(B[i],A[i,u])
を計算し、その値が極大となるuを求めて、これをδとすれば良い。
【０１１０】
なお、δ = 0の場合はずれがなく、δが正の場合は、歌唱が伴奏に比べて遅れていることになり、δが負の場合は、歌唱が伴奏に比べて進んでいることになる。
【０１１１】
以下、具体的に抽出処理について述べる。
【０１１２】
まず、ＣＰＵ  １０１は、ＲＡＭ  １０３内に用意された変数領域iに0を格納する（ステップＳ４０１）。
【０１１３】
そして、ＣＰＵ  １０１は、ＲＡＭ  １０３内に記憶されたＭＩＤＩデータを走査して、i番目の区間の開始時間s(i)と終了時間s(i+1)を求める（ステップＳ４０２）。
【０１１４】
ついで、ＣＰＵ  １０１は、ＲＡＭ  １０３内に記憶されたＭＩＤＩデータを走査して、採点データを調べ、ベクトルG[i]およびベクトルB[i]を取得する（ステップＳ４０３）。
【０１１５】
さらに、ＣＰＵ  １０１は、これらのベクトルの大きさ|G[i]|および|B[i]|を計算する（ステップＳ４０４）。
【０１１６】
次に、ＣＰＵ  １０１は、ＲＡＭ  １０３内に用意された変数領域uに値-L/dを、変数領域δに値0を、変数領域mに値0を、それぞれ格納する（ステップＳ４０５）。
【０１１７】
そして、u≦L/dである間（ステップＳ４０６）、以下のステップＳ４０７〜ステップＳ４１２を繰り返す。
【０１１８】
ＲＡＭ  １０３内に記憶されたＰＣＭデータ（マイク１１１から入力された音声を前述のようにサンプリングしたもの）から、ベクトルF[i,u]およびベクトルA[i,u]を取得する（ステップＳ４０７）。
【０１１９】
次に、ＣＰＵ  １０１は、これらのベクトルの大きさ|F[i,u]|および|A[i,u]|を計算する（ステップＳ４０８）。
【０１２０】
さらに、ＣＰＵ  １０１は、相関値z[i,u]を計算する（ステップＳ４０９）。
【０１２１】
そして、ＣＰＵ  １０１は、z[i,u]>mであるか否かを調べ（ステップＳ４１０）、そうである場合（ステップＳ４１０；Ｙｅｓ）、変数領域δに値uを、変数領域mに値z[i,u]を、それぞれ格納する（ステップＳ４１１）、
【０１２２】
ついで、uの値を１増やし（ステップＳ４１２）、ステップＳ４０６に戻る。
【０１２３】
さて、ステップＳ４０６〜ステップＳ４１２の繰り返しが終わったら（ステップＳ４０６；Ｎｏ）、ＣＰＵ  １０１は、i番目の区間についての時間のずれをδdであるとして、この情報をＲＡＭ  １０３に記録する（ステップＳ４１３）。本実施形態では、あらかじめ、ＲＡＭ  １０３にずれを記憶するための配列wを用意し、ＣＰＵ  １０１が、i番目の区間についての時間のずれを、当該配列のi番目の要素w[i]に記憶させる。
【０１２４】
そして、終了時間s(i+1)がＭＩＤＩデータの演奏時間に至ったか否かを調べ（ステップＳ４１４）、至っていない場合（ステップＳ４１４；Ｎｏ）、iを１増やして（ステップＳ４１５）、ステップＳ４０２に戻る。一方、至った場合（ステップＳ４１４；Ｙｅｓ）、本処理を終了する。
【０１２５】
このようにして、各区間についての時間のずれが抽出された後は、当該時間のずれを歌い手に知らせる必要がある。最も単純には、配列wの要素を順に画面に表示して、各小節（区間）ごとにどれだけの時間のずれがあったかを知らせる手法がある。
【０１２６】
もっとも、本実施形態では、さらに歌い手に時間のずれをわかりやすく通知するための工夫を行っている。以下では、このための出力処理の詳細について説明する。
【０１２７】
図５は、出力処理の制御の流れを示すフローチャートである。本実施形態では、歌い手の歌唱の時間のずれを、主として聴覚によって知らせる手法を採用する。以下、本図を参照して説明する。
【０１２８】
上記のように、ＲＡＭ  １０３内の配列wに各区間の時間のずれが格納されているので、まず、ＣＰＵ  １０１は、当該配列のうち、時間のずれの絶対値|w[i]|を大きい順に上位から所定の数だけ選択する（ステップＳ５０１）。
【０１２９】
次に、ＣＰＵ  １０１は、ステップＳ５０１で選択されたものから、絶対値|w[i]|が所定の閾値よりも大きいものをさらに選択する（ステップＳ５０２）。ここでの「所定の閾値」とは、これよりも時間が短かければ、人間の聴覚には、遅れたり進んだりしているとは認識できないような、短かい時間を、あらかじめ設定すればよい。
【０１３０】
そして、ＣＰＵ  １０１は、ステップＳ５０２において選択された配列の要素の数が０個であるか否かを調べる（ステップＳ５０３）。０個である場合（ステップＳ５０３；Ｙｅｓ）、歌い手の歌い出しは正確である旨を報告して（ステップＳ５０４）、本処理を終了する。
【０１３１】
一方、ステップＳ５０２において選択された配列の要素の数が０個でない場合（ステップＳ５０３；Ｎｏ）、ＣＰＵ  １０１は、ステップＳ５０２において選択された配列の要素を、所定の順序に並べる（ステップＳ５０５）。ここで、所定の順序としては、以下のような態様が考えられる。
（ａ）添字iの順番。すなわち、歌の中でそれぞれの区間が出現する順。
（ｂ）時間のずれの絶対値の大きい順。すなわち、歌唱の中での、ずれが大きい順。
（ｃ）時間のずれの値の順またはその逆順。すなわち、歌唱の中での遅れまたは進みが大きい順。
【０１３２】
次に、ステップＳ５０２において選択された配列の要素に対応する区間のそれぞれについて、ステップＳ５０５において得られた順に、ステップＳ５０７〜ステップＳ５１３の処理を繰り返す（ステップＳ５０６）。
【０１３３】
当該区間がi番目の小節であるとすると、ＣＰＵ  １０１は、w[i]の正であるか否かを判断する（ステップＳ５０７）。
【０１３４】
w[i]が正である場合（ステップＳ５０７；Ｙｅｓ）、ＣＰＵ  １０１は、音声処理部１１０に対して、i番目の区間のＭＩＤＩデータのうち、伴奏データに係るチャンネルの再生を開始する旨の指示を出す（ステップＳ５０８）。そして、ＣＰＵ  １０１は、w[i]に相当する時間だけ待機してから（ステップＳ５０９）、音声処理部１１０に対して、i番目の区間のＭＩＤＩデータのうち、採点データに係るチャンネルの再生を開始する旨の指示を出す（ステップＳ５１０）。
【０１３５】
上記のように、採点データに係るチャンネルは、カラオケのプレイ時には音源を割り当てず、再生も行わない（ただし、見本音声として、たとえば小さな音量で再生するようにしてもよい。）。一方、出力時には、採点データに係るチャンネルに適当な音源（伴奏に使われていない音源データや、正弦波、方形波のように容易に生成できる音源データ等。）を当該採点データに割り当てて再生を行う。
【０１３６】
一方、w[i]が正でない場合（ステップＳ５０７；Ｎｏ）、ＣＰＵ  １０１は、i番目の区間のＭＩＤＩデータのうち、採点データに係るチャンネルの再生を開始する旨の指示を出す（ステップＳ５１１）。そして、|w[i]|に相当する時間だけ待機してから（ステップＳ５１２）、音声処理部１１０に対して、i番目の区間のＭＩＤＩデータのうち、伴奏データに係るチャンネルの再生を開始する旨の指示を出す（ステップＳ５１３）。
【０１３７】
ステップＳ５０６〜ステップＳ５１３の処理の繰り返しが終わったら、本処理を終了する。
【０１３８】
本実施形態によれば、ユーザの歌唱データそのものをすべて録音する必要がないため、ＲＡＭ  １０３などの記憶容量に制限があるゲーム装置１００などの安価なハードウェアにおいても、伴奏と歌唱とのずれをユーザが聴覚によって知得することができる。
【０１３９】
なお、ハードディスクなどを外部記憶装置として備えるゲーム装置１００においては、伴奏データと採点データとの再生開始の時間をずらして再生するのではなく、ユーザの歌唱のＰＣＭデータをそのまま（もしくは適宜圧縮して）録音し、伴奏データの当該区間と、当該区間の再生時に録音されたＰＣＭデータと、を同時にミキシングして再生することとしても良い。この場合には、よりリアルに、ユーザの歌唱のずれを再現することができる。
【０１４０】
また、上記実施形態では、原則として伴奏の開始から終了までにマイク１１１から入力された音声データの時間のずれを検出してこれを報告しようとするが、ある一定の範囲の区間について何回も練習したい場合には、ユーザの指示入力によって、「伴奏全体の開始から終了まで」にかえて、「ユーザが指定した範囲の区間」について、上記の処理を実行しても良い。
【０１４１】
また、上記実施形態では、時間のずれが生じている区間のうち上位のものについて、歌唱と伴奏とを当該区間についてのみ再生する。したがって、ある小節のみにおいて時間のずれが生じていた場合は、当該小節のみが出力されることとなる。
【０１４２】
しかしながら、時間のずれが生じている場合には、その前後の様子も合わせて再生した方が、ユーザにわかりやすいことも多い。
【０１４３】
そこで、i (i≧1)番目の区間について出力の処理を行う場合には、伴奏データについては、i-1番目の区間からi+1番目の区間まで順に連続して再生することとしても良い。この場合、採点データについては、i-1番目の区間の再生を開始してからs(i-1) + w[i]だけ時間が経過した後に再生を開始する。
【０１４４】
これによって、特に、歌い出しが早い場合に、そのずれをわかりやすくユーザに提示することができるようになる。
【０１４５】
このほか、カラオケ装置でステレオ出力ができる場合においては、採点データの再生の際に、一方の出力（たとえば、左側出力）では、伴奏データに同期して採点データを再生し、他方の出力（たとえば、右側出力）では、上記のように伴奏データとはw[i]を考慮して時間をずらして採点データを再生するようにしても良い。
【０１４６】
この場合は、正しい歌い出し（見本）とユーザが行った歌唱（実際）の歌い出しとが、ヘッドホンやスピーカの左右からずれて再生されるため、ユーザはずれの程度をわかりやすく把握できるようになる。
【０１４７】
また、上記のように、カラオケ装置においては、採点データ（を伴奏データと時間のずれなく再生したもの）に同期して歌詞がモニタに表示される。そこで、「伴奏データと同期して採点データを再生したとした場合の歌詞表示」と、「伴奏データとw[i]だけ時間をずらして採点データを再生した場合の歌詞表示」と、を画面の異なる位置に表示することとしても良い。
【０１４８】
たとえば、スピーカやヘッドホンの左右から採点データを「見本」と「実際」として再生する場合には、「見本」に対応する歌詞の表示を画面上段に、「実際」に対応する歌詞の表示を画面下段に、それぞれ行うものとする。
【０１４９】
一般に、カラオケにおける歌詞の表示は、歌詞に含まれる文字の色を、歌の進行に合わせて変更する形態をとることが多い。
【０１５０】
上記実施形態によれば、「見本」となる歌詞表示と、「実際」の歌詞表示とが、時間をずらして行われるので、ユーザは、聴覚のみならず視覚を通じても、自分の歌唱の時間のずれを容易に知得できるようになる。
【産業上の利用可能性】
【０１５１】
上記のように、本発明によれば、歌唱の時間的なずれを適切に検知して歌い手に提示するのに好適なカラオケ装置、カラオケ方法、ならびに、これらをコンピュータによって実現するプログラムを提供することができ、カラオケボックス等の専用施設に利用されるカラオケ装置の他、汎用ゲーム装置や汎用コンピュータ上に実現されるカラオケ装置においても、本発明を適用することができる。
【図面の簡単な説明】
【０１５２】
【図１】本発明の実施形態に係るカラオケ装置が実現される典型的なゲーム装置の概要構成を示す模式図である。
【図２】本実施形態のカラオケ装置の概要構成を示す説明図である。
【図３】本実施形態のカラオケ装置にて実行されるカラオケ方法の制御の流れを示すフローチャートである。
【図４】本実施形態のカラオケ装置にて実行される抽出処理の制御の流れを示すフローチャートである。
【図５】本実施形態のカラオケ装置にて実行される出力処理の制御の流れを示すフローチャートである。
【符号の説明】
【０１５３】
１００  ゲーム装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェース
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
２０１  カラオケ装置
２０２  入力受付部
２０３  分析部
２０４  記憶部
２０５  抽出部
２０６  出力部
【図１】
2005208196.tif 000003
【図２】
2005208196.tif 000004
【図３】
2005208196.tif 000005
【図４】
2005208196.tif 000006
【図５】
2005208196.tif 000007