実施の形態1
図1は本発明に係る配信システムの概要を示す模式図である。Sは本発明に係る配信システムであり、音楽データに合わせて表示される文字データを変換する変換処理装置1、インターネット及び携帯電話回線網等を含む通信網N、並びに、機種の異なる複数の携帯端末機2,2,2・・・を含んで構成される。変換処理装置1は、例えばサーバコンピュータが用いられる。以下では変換処理装置1をサーバコンピュータ1であるものとして説明する。携帯端末機2は例えば、携帯電話機、PDA(Personal Digital Assistance)、
表示部を備える可搬型オーディオプレーヤまたは可搬型ゲーム機等であり、一般のカラオケ店舗に設置されるモニタより小型の表示画面を備える可搬型の携帯端末機である。本実施の形態においては、携帯端末機2を携帯電話機2であるものとして説明する。携帯電話機2,2,2・・・は異なる表示領域を持つ機種の異なる携帯電話機2である。
サーバコンピュータ1は配信対象となるカラオケのデータを逐次記憶する。このカラオケのデータは音楽データ、及び、この音楽データに合わせて表示される文字データ等の表示情報からなり、新曲がリリースされるたびにこのカラオケデータが作成される。サーバコンピュータ1は、携帯電話機2の画面が一般のカラオケ店舗の表示画面に比べて小さい事から、文字データ等の表示情報の変換処理を機種毎に行う。そして、通信網Nを介して携帯電話機2から配信リクエストがあった場合は、音楽データに加えて、機種に応じて変換された表示情報を携帯電話機2へ配信する。携帯電話機2は予めダウンロードしておいた再生プログラム256(図3参照)に従い、音楽データを再生すると共に、画面に文字データ等を表示する。
図2はサーバコンピュータ1のハードウェア構成を示すブロック図である。サーバコンピュータ1は、制御部としてのCPU(Central Processing Unit)11、RAM(Random Access Memory)12、入力部13、表示部14、通信部16及び記憶部15を含んで構成
される。CPU11は、バス17を介してサーバコンピュータ1のハードウェア各部と接続されていて、それらを制御すると共に、記憶部15に格納された制御プログラムに従って、種々のソフトウェア的機能を実行する。制御プログラムは、C言語等のプログラミング言語で記述されている。
表示部14は例えば液晶ディスプレイ等であり、入力部13はキーボード及びマウス等から構成される。通信部16はモデムまたはLANカード等であり、CPU11からの指示に従い音楽データ及び変換処理後の文字データ等の表示情報を、通信網Nを介して携帯電話機2へ送出する。記憶部15は例えばハードディスクで構成され、内部には上述した制御プログラム、表示情報データベース151、機種別データベース152及び仕様データベース153が記憶されている。なお、表示情報データベース151、機種別データベース152及び仕様データベース153の詳細については後述する。
図3は携帯電話機2のハードウェア構成を示すブロック図である。携帯電話機2は、制御部としてのCPU21、RAM22、入力部23、表示部24、時計部210、通信部26、マイク28、スピーカ29及び記憶部25を含んで構成される。CPU21は、バス27を介して携帯電話機2のハードウェア各部と接続されていて、それらを制御すると共に、記憶部25に格納された制御プログラムに従って、種々のソフトウェア的機能を実行する。制御プログラムは、C言語等のプログラミング言語で記述されている。
表示部24は例えば液晶ディスプレイ等であり、入力部23はプッシュボタン等により構成される。なお、タッチパネルのように表示部24と入力部23とを一体的に構成するようにしても良い。スピーカ29は音楽データ、通話データ、またはマイク28から入力された音声に係る音声信号を増幅して出力する。マイク28は外部から入力された音声信号を電気信号へ変換する。変換後の電気信号は図示しないA/D変換器によりデジタルデータへ変換されてCPU21へ出力される。通信部26は高周波送受信部及びアンテナ等を備え、音楽データ、文字データ等を含む各種データの送受信を行う。
記憶部25には音楽ファイル252、表示情報ファイル251、画像データファイル253、仕様ファイル254、フォントファイル255及び再生プログラム256等が記憶されている。音楽ファイル252はサーバコンピュータ1から配信された音楽データが記憶されており、表示情報ファイル251には、音楽データに併せて表示される文字データ、文字データの表示位置、文字データの変色速度等が記憶されている。再生プログラム256は、サーバコンピュータ1等から通信網Nを介してダウンロードしたソフトウェアであり、携帯電話機2でのカラオケの機能を実現するプログラムが記述されている。
仕様ファイル254は、携帯電話機2が備えているMAC(Media Access Control)アドレス等の機種に関する情報が予め記憶されている。フォントファイル255には、携帯電話機2が表示部24に表示する文字のフォントが記憶されている。画像データファイル253には、サーバコンピュータ1から送信された文字データをGIF(Graphic Interchange Format)、JPEG(Joint Photographic Experts Group)またはビットマップ形式等により画像として変換した画像データが記憶されている。CPU21は再生プログラム256を実行し、音楽ファイル252から音楽データを、表示情報ファイル251から文字データを含む表示情報をそれぞれ読み出す。
CPU21は、読み出した文字データを参照して対応するフォントを、フォントファイル255を参照して読み出しRAM22に格納する。そしてCPU21はこの読み出した文字データに係るフォントを画像データへ変換する。GIF形式等により変換された文字データに係る画像データは画像データファイル253に記憶される。入力部23からカラオケを開始する旨の信号が入力された場合、CPU21は、時計部210からの時間信号を参照して、音楽データの再生と同期させて、読み出した表示情報に従い文字データに係る画像データの表示を行う。さらにCPU21は表示情報ファイル251に記憶された表示情報に従い画像データの変色処理を行い、ユーザの歌唱を補助する。このように従来のように、フォントファイル255から読み出した文字データとして歌詞を表示部24へ表示し、一文字単位で変色するのではなく、画像データとして歌詞を表示し、その変色も表示情報に従いドット単位で行う。
図4はサーバコンピュータ1の仕様データベース153のレコードレイアウトを示す説明図である。サーバコンピュータ1は携帯電話機2から送信されるMACアドレスまたは機種名等を参照する事により機種を判別している。サーバコンピュータ1の仕様データベース153には、機種名に対応させて、表示領域及び縮小率が記憶されている。図4に示すように機種名フィールドには携帯電話機2,2,2・・・の機種を特定するための機種名が「A601」、「A602」及び「B881」の如く記憶されている。表示領域フィールドには各携帯電話機2の表示部24の表示領域が縦方向及び横方向それぞれについて記憶されている。例えば、機種名「A601」については表示部24の縦方向領域が240ドット、横方向領域が240ドットと記憶されている。
縮小率フィールドには、一般のカラオケ店舗のモニタ向けに規定した表示領域(例えば、縦400ドット、横640ドット)に対する各携帯電話機2の表示部24の表示領域縮小率が記憶されている。すなわち、携帯電話機2の表示部24の表示領域を、上記規定された表示領域で除して100倍した値が記憶されている。例えば、機種名「A602」に関しては、縦の縮小率が86%、横の縮小率が38%と記憶されている。なお、一般のカラオケ店舗のモニタ向けに規定した表示領域は、縦400ドット、横640ドットに限るものではなく、適宜状況に応じてその表示領域が規定される。機種名、表示領域及び縮小率の情報は通信網Nを介して接続される他のコンピュータ(図示せず)から取得するようにしても良いし、オペレータが入力部13から機種名及び表示領域の情報を入力し、CPU11に演算させた縮小率を記憶させるようにしても良い。
図5は表示情報データベース151のレコードレイアウトを示す説明図である。表示情報データベース151に記憶された内容は、例えばカラオケ店舗のモニタ用に使用される文字データ等の表示情報が記憶されている。表示情報データベース151は音楽データ毎に、音楽データに同期して表示される文字データ、位置情報、サイズ情報及び変色速度等の表示情報が記憶されている。図5に示すように音声データとして「森の熊さん」、「Will」及び「春よ来い」等が記憶されている。図5の例においては音楽データ「森の熊さん」の文字データ及び各文字データの位置情報を含む表示情報を示している。音楽データは例えばmidi(Musical Instruments Digital Interface)形式により保存されている。
表示情報データベース151は各音楽データに対応付けて、表示タイミングフィールド、同期タイミングフィールド、文字データフィールド、位置情報フィールド、サイズ情報フィールド、変色する際の時間情報フィールド、変色速度フィールド及びルビ位置情報フィールドを含んで構成される。文字データフィールドには歌詞が所定のブロック単位で記憶されている。図5の例においては、「ある日」、「森の中」、「くまさんに」、「出会った」と記憶されている。なお、本実施の形態においては文字データを、説明を容易にすべく「ある日」の如くブロック単位で処理しているが、一文字単位「あ」「る」「日」により処理しても良い事はもちろんである。
表示タイミングフィールドは表示する文字データ群の表示開始時間を記憶している。図5の例においては、音楽データの再生開始後「0分8秒00」後に文字データ群「ある日」、「森の中」、「くまさんに」、「出会った」が表示される。「0分20秒55」においてはこれらの文字が消去され次の文字データ群(フレーズ)が表示される。同期タイミングフィールドには音楽データに併せて文字の変色を開始する同期タイミングが、文字データに対応付けて記憶されている。例えば、図5の例においては、音楽データの再生開始後「0分8秒00」後に文字データ群「ある日」、「森の中」、「くまさんに」、「出会った」が白色で表示され、その2秒後の「0分10秒00」の時点で、「ある日」の文字を赤色等に変える処理が開始される。
位置情報フィールドには文字データをモニタに表示する際の位置を示す位置情報が記憶されている。例えば、文字データ「ある日」に関しては(x,y)座標系において(90,250)を始点、終点(218,202)として文字データが表示される。図6は文字データの表示例を示す説明図である。図6の例においてはカラオケ店舗のモニタの表示領域が縦400ドット、横640ドットである。横方向をx軸、縦方向をy軸、左隅の座標を(x,y)=(0,0)とし、単位はドットであるものとしている。文字データ「ある日」に関しては(90,250)を始点に、(218,202)を終点に表示され、「森の中」については(230,250)を始点に、(374,202)を終点に、「くまさんに」については(160,150)を始点に、(384,102)を終点に、さらに「出会った」については(450,150)を始点に、(626,102)を終点として各文字データを表示する。なお、文字データの左上の座標点を始点、右下の座標点を終点としている。
サイズ情報フィールドには、各文字データの表示サイズが記憶されている。単位はドットである。例えば「森の中」については3文字が縦横48ドットサイズで表示される。また文字データ「くまさんに」の「く」については横32ドットサイズとして記憶されており、その他の文字「まさんに」は横48ドットとして記憶されている。なお、縦サイズは48ドットである。この「く」はプロポーショナルフォントにおいて横幅が小さく設定された文字であり、他の文字データよりも横幅の小さいサイズ情報が設定される。プロポーショナルフォントにおいて横幅が小さく設定された文字としては文字「し」、小文字「っ」の他、英文字「i」等が該当する。プロポーショナルフォントにおいて横幅が小さく設
定された文字「っ」を含む文字データ「出会った」に関しては、横方向のサイズ情報が「48,48,32,48」として記憶されている。
変色する際の時間情報フィールドには各文字データを変色するのに要する時間が記憶されている。これは文字によっては歌う際にゆっくり発声するものもあれば、速く発声するものもあるからである、例えば、「くまさんに」に関しては、「く」について変色開始から0.9秒で変色を終え、「ま」について変色開始から0.8秒で変色を終え、「さ」について変色開始から0.8秒で変色を終え、「ん」について変色開始から1.2秒で変色を終え、「に」について変色開始から1.2秒で変色を終える。
変色速度フィールドには文字データ毎に、単位時間あたりの変色速度が単位(dot/0.1sec)で記憶されている。例えば文字データ「くまさんに」関しては、「く」の変色速度が0.1秒あたり4ドット、「ま」の変色速度が0.1秒あたり6ドット、「さ」の変色速度が0.1秒あたり6ドット、「ん」の変色速度が0.1秒あたり4ドット、「に」の変色速度が0.1秒あたり4ドットと記憶されている。
ルビ位置情報フィールドには各文字データに対応するルビの位置情報が記憶されている。単位はドットである。なお、図示していないが、表示情報データベース151には、音楽データ、当該音楽データに対応する文字データ、各文字データに対応するルビが記憶されている。例えば「森の中」では「森」にルビ「もり」が「森」の上部「0」ドットを始点として表示される。すなわち、「森」は位置座標(230,250)であるところ、ルビは、x座標230に0を付加した値、x座標230を始点とし、「森」にルビ「もり」が重なり合わない適宜のy座標位置、例えばy座標270(x,y:230,270)としてルビが付加される。また「中」にもルビ「なか」が、文字データ「森」からみてx座標「96」が加算された位置(326,270)に付加される。
このルビ位置情報は「5」等として、「森」の位置座標(230,250)であるところ、ルビを、x座標230に5を付加した値、x座標235を始点とし、「森」にルビ「もり」が重なり合わない適宜のy座標位置、例えばy座標270(x,y:235,270)としてルビを付加するようにしてもよい。これらルビの開始位置座標はCPU11がルビ位置情報及びルビのサイズを参照して決定する。ルビ位置情報「なし」に関してはルビが存在しない事を意味する。すなわち「森の中」の「の」に関してはルビが存在しない。
図7は機種別データベース152のレコードレイアウトを示す説明図である。機種別データベース152には機種毎に各音楽データに対応付けて文字データ、位置情報等を含む表示情報が記憶されている。サーバコンピュータ1のCPU11は表示情報データベース151に記憶された表示情報を、機種別データベース152に記憶された機種名、表示領域及び縮小率を参照して、表示情報の変換処理を行い変換後のデータを機種別データベース152に記憶する。以下にCPU11が実行する変換処理及び機種別データベース152の記憶内容について説明する。
機種別データベース152には、機種毎に各音楽データの文字データ及び位置情報を含む表示情報が記憶されている。図7の例は、機種「A601」に対する各音楽データの表示情報が記憶されているものを示す。CPU11は機種毎「A601」、「A602」、「B881」・・・に変換処理を行い、変換後の表示情報を機種別データベース152にそれぞれ記憶する。なお、機種は異なるが表示領域等の仕様が共通する機種同士は機種別データベース152の記憶内容を共有するようにしても良い。例えば、機種「A601」と同じ表示領域を有する機種に関しては、機種「A601」と共通の記憶内容を用いて変換処理すればよい。図7の例においては、図5の例と同じく音楽データ「森の熊さん」の文字データ及び各文字データの位置情報を含む表示情報を示している。
機種別データベース152は各音楽データに対応付けて、表示タイミングフィールド、同期タイミングフィールド、文字データフィールド、位置情報フィールド、サイズ情報フィールド、変色する際の時間情報フィールド、変色速度フィールド、及び、補正量フィールドを含んで構成される。表示タイミングフィールド、同期タイミングフィールド、文字データフィールドの構成については図5で説明した表示情報データベース151と同様であるので説明は省略する。なお、表示タイミングフィールド、同期タイミングフィールド、文字データフィールドに記憶されている情報は、サーバコンピュータ1のCPU11により、表示情報データベース151から読み出され、機種別データベース152へ書き込まれる。
位置情報フィールドには、携帯電話機2の表示部24に文字データを表示する際の始点及び終点を示す座標が記憶されている。この位置情報の変換処理にあたり、サーバコンピュータ1のCPU11は各データベースのフィールドのキーを関連づけたスキーマにおいてSQL(Structured Query Language)を用いて対話することにより、必要な情報の記憶、検索等の処理を実行する。サーバコンピュータ1のCPU11は、機種名「A601」をもとに仕様データベース153を検索し、縮小率「縦60%、横38%」を読み出す。さらにCPU11は表示情報データベース151の位置情報フィールドに記憶された位置情報を読み出す。そして読み出した位置情報に縮小率をそれぞれ乗じて変換後の位置情報を算出する。CPU11は変換後の位置情報を文字データに対応付けて、機種別データベース152の位置情報フィールドに記憶する。
例えば、「森の中」については位置情報の始点(230,250)、終点(374,202)と記憶されているところ、それぞれ0.38、0.6を乗じて変換後の位置情報の始点(87,150)及び終点(142、121)を得る。なお、文字データ群にプロポーショナルフォントにおけるサイズ情報が小さく設定された文字が含まれている場合の終点算出処理については後述する。図8は携帯電話機2の表示部24に表示される文字データの表示イメージを示す説明図である。携帯電話機2のCPU21はフォントファイル255を参照し、文字データ「森の中」を読み出し、これを画像データに変換し画像データファイル253に記憶する。そして、CPU21は変換後の画像データが位置情報の始点(87,150)、終点(142,121)に収まるよう、縮小または拡大の画像処理を行い、位置情報の始点(87,150)を基準に画像処理後の画像データ「森の中」を表示部24に表示する。同様に「ある日」は(34,150)、「くまさんに」は(61,90)を始点として表示する。なお、本実施の形態においては、複数の文字をひとまとめのブロックとして処理しているが、一文字単位で位置情報を記憶しておき、これを一文字ごと変換して始点の各文字の始点位置情報を求めるようにしても良い。
サーバコンピュータ1のCPU11は表示情報データベース151に記憶されたサイズ情報を読み出す。そして、CPU11は読み出したサイズ情報に縮小率を乗じて変換後のサイズ情報を算出する。例えば、文字データ「ある日」については、x軸及びy軸方向の文字幅が「48」ドットであるので、これに0.38を乗じてx軸及びy軸方向の文字幅「18」ドットを得る。なお、本実施の形態においてはy軸方向についてもx軸方向の縮小率0.38を乗じたが、y軸方向の縮小率0.6を乗じて縦方向のサイズ情報としても良い。
文字データのブロックに他の文字データのサイズ情報よりも小さい一の文字データが存在する場合、他の文字データのサイズに従い縮小変換を行う。例えば文字データブロック「くまさんに」はプロポーショナルフォントにおけるサイズ情報が小さく設定された文字「く」が含まれている。表示情報データベース151に記憶されたサイズ情報は、他の文字「48」ドットに対して「32」ドットである。この場合、他の文字「まさんに」のサイズ情報に従って縮小し、変換後のサイズ情報「18」ドットを得る。これは携帯電話機2にプロポーショナルフォントが存在しない場合を考慮したものであり、プロポーショナルフォントを携帯電話機2が有する場合、一の文字データに係るサイズ情報「32」ドットに縮小率を乗じて、変換後のサイズ情報「12」ドットを算出するようにしても良い。
サーバコンピュータ1のCPU11は変換後のサイズ情報を機種別データベース152に記憶する。次に、プロポーショナルフォントにおけるサイズ情報が小さく設定された文字が含まれている場合の、位置情報の終点x座標値を算出する処理について説明する。終点の変換処理はプロポーショナルフォントにおけるサイズ情報が小さく設定された文字を含まない場合、表示情報データベース151に記憶された位置情報の終点に縮小率を乗じて求める。一方、プロポーショナルフォントにおけるサイズ情報が小さく設定された文字が含まれている場合、変換後のサイズ情報をも考慮して位置情報終点のx座標値を求める。図9はプロポーショナルフォントにおけるサイズ情報が小さく設定された文字が含まれている場合の位置座標の関係を示す説明図である。図9(a)は変換前の文字データ「くまさんに」「出会った」であり、それぞれ横サイズ「32」のプロポーショナルフォントにおけるサイズ情報が小さく設定された文字「く」「っ」が含まれている。このとき「くまさんの」始点は(160、150)、終点は(384、102)、「出会った」の始点は(450,150)、終点は(626,102)である。
図9(b)は縮小後の各文字データの座標を示す。それぞれの始点座標は上述した縮小率をそれぞれ乗じて「くまさんが」の始点(61,90)、「出会った」の始点(171,90)が得られる。CPU11は終点を求めるべく、機種別データベース152に記憶されたサイズ情報を読み出し、その合計値を算出する。本実施例の例では、変換後のサイズ情報「18」に、「くまさんに」の5文字を乗じて、サイズ情報の合計値「90」を得る。CPU11は始点のx座標61に合計値90を加算し終点のx座標151を得る。終点のy座標値はプロポーショナルフォントにおけるサイズ情報が小さく設定された文字を含まない場合と同じく、縮小率を乗じて61を得る。その結果「くまさんに」の変換後の位置情報に係る終点は(151,61)となる。
同様に、CPU11は「出会った」の終点を求めるべく、機種別データベース152に記憶されたサイズ情報を読み出し、その合計値を算出する。本実施例の例では、変換後のサイズ情報は「18」、「出会った」の4文字のサイズ情報の合計値は「72」となる。CPU11は始点のx座標171に合計値72を加算し終点のx座標243を得る。終点のy座標値はプロポーショナルフォントにおけるサイズ情報が小さく設定された文字を含まない場合と同じく、縮小率を乗じて61を得る。その結果「出会った」の変換後の位置情報に係る終点は(243,61)となる。CPU11は係る変換処理を行い変換後の位置情報を機種別データベース152の位置情報フィールドに記憶する。
図9(c)は変換処理後の補正処理を示す説明図である。図9(b)に示す文字データ「出会った」の終点x座標値「243」に着目すると、機種「A601」の表示領域横「240」を3ドットこえている事が理解できる。CPU11は変換した位置情報に係る終点x座標値が表示領域を超えるか否かを、仕様データベース153に記憶された表示領域と比較して判断する。CPU11は超えていると判断した場合、超えない値となるまで補正処理を行う。この補正処理は、例えばCPU11が表示領域を超える値「3」を、算出し、始点及び終点のx座標値から減ずるようにすればよい。この例においては、図9(c)に示すように、「出会った」の始点及び終点のx座標値をそれぞれ「3」減じて、始点(168,90)、終点(240,61)と補正する。
CPU11は図7に示す機種別データベース152の補正量フィールドにこの補正量「3」を記憶する。なお、本実施の形態においては説明のため、位置情報フィールドに補正前の「出会った」に係る座標の始点(171,90)及び終点(243,61)を記述しているが、補正後の始点(168,90)、終点(240,61)を位置情報フィールドに記憶しておいても良い事はもちろんである。
次にルビの変換処理について説明する。サーバコンピュータ1のCPU11は表示情報データベース151からルビを読み出し、画像データへ変換し、さらに、縮小率に従い変換後のルビの画像データを縮小し、機種別データベース152に文字データに対応付けて記憶する。例えば「森の中」のルビ「もり なか」をCPU11は読み出し、ルビの画像データ「もり なか」を得る。そして、縮小率に従い画像処理を行い、縮小後の画像データ「もり なか」を機種別データベース152の文字データ「森の中」に対応付けて記憶する。このルビの画像データの表示位置は、変換後の文字データに係る画像データに重ならない位置に適宜配置すればよい。例えば、文字データ「森の中」の画像データは始点(87,150)、終点(142,121)であるが、ルビの画像データの位置情報は、始点x座標を同じくし、y座標は適宜の値(20ドットなど)を加算した値(170)、すなわち、ルビの画像データの位置情報始点は(87,170)とすればよい。なお、本実施の形態においては、説明を容易にするためルビを「もり なか」の如くひとまとめにして説明したが、「もり」「なか」の如く分割して処理するようにしても良い。
機種別データベース152の変色する際の時間情報フィールドには、各文字データに係る画像データを変色するのに要する時間が秒単位で記憶されている。図5の表示情報データベース151と同じく、これらの値は変更されていない。サーバコンピュータ1のCPU11は表示情報データベース151の同フィールドの記憶内容をコピーし、機種別データベース152の同フィールド内に貼り付ける処理を行う。
機種別データベース152の変色速度フィールドには携帯電話機2の表示部24において表示される文字データに係る画像データ中の各文字を変色させる際の変色速度を記憶している。単位はdot/0.1secである。変色速度の算出にあたっては、位置情報及びサイズ情報と異なり、単に表示情報データベース151に記憶された変色速度に縮小率を乗じて算出する処理は行わない。これは、変色速度を縮小率で同じく縮小すると、テンポが大幅にずれるからである。CPU11は表示情報データベース151または機種別データベース152の変色速度フィールドから変色する際の時間情報を読み出し、さらに、機種別データベース152のサイズ情報フィールドからサイズ情報を読み出す。
CPU11は、読み出したサイズ情報を変色する際の時間情報で除す事により、各文字の変色速度を算出する。例えば、「くまさんに」の「く」に関しては、サイズ情報「18」ドットを変色する際の時間情報「0.9」secで除し、0.1秒単位にすべくさらに10で除して「2」dot/0.1secを得る。同様に「ま」及び「さ」は「2.25」dot/0.1sec、「ん」及び「に」は1.5dot/0.1secとなる。
携帯電話機2のCPU21は文字データに係る画像データを、同期タイミングをトリガーに変色を開始する。CPU21は送信された変色速度を参照し、色を変える画像処理を行う。例えば、文字データに係る画像データが「くまさんに」の場合、CPU21はx軸方向に「2」dot/0.1secで「く」の画像を白文字から赤文字へと変色する画像処理を行う。CPU21は18ドットの着色が終了したと判断した場合、画像「ま」を変色すべく、速度を「2.25」dot/0.1secに切り替えて変色処理を行う。このように、文字データを画像として取り扱い、ドット単位で変色を行うので、携帯電話機2においても、ユーザに適切な歌唱案内を行う事ができる。
以上説明した表示情報データベース151、機種別データベース152及び仕様データベース153はサーバコンピュータ1の記憶部15に記憶するようにしているが、通信網Nを介して接続される図示しないデータベースコンピュータにこれらを記憶しておき、必要に応じて情報の記憶及び検索等を行うようにしても良い。サーバコンピュータ1のCPU11は、新曲がリリースされるたびに、音楽データ並びに文字データ及び位置情報を含む表示情報を表示情報データベース151に記憶する。CPU11は仕様データベース153を参照して、特定機種に係る縮小率を用いて、上述した変換処理を各表示情報に対して行い、変換後の機種毎の表示情報として、機種別データベース152に記憶する。
ユーザが携帯電話機2からカラオケの再生表示を希望する場合、サーバコンピュータ1へアクセスする。サーバコンピュータ1のCPU11は携帯電話機2のMACアドレス等を参照して機種を判別する。そして、その機種をもとに、機種別データベース152へアクセスし、当該機種に対応する、音楽データ、文字データ、位置情報、サイズ情報等の表示情報を機種別データベース152から読み出す。CPU11はこれら読み出した音楽データ及び表示情報をアクセスのあった携帯電話機2へ送信する。
CPU21は、送信された音楽データ及び表示情報を受信し、音楽データを音楽ファイル252、表示情報を表示情報ファイル251にそれぞれ記憶する。ユーザは予めサーバコンピュータ1からダウンロードした再生プログラム256を起動する。CPU21は再生プログラム256に従い、文字データを読み出し、フォントファイル255を参照して文字データを出力する。CPU21は出力した文字データをGIF形式の画像データへ変換する。CPU21は表示情報ファイル251から変換した文字データに係る画像データに対応する位置情報を読み出し、位置情報の始点及び終点の座標内に収まるよう、変換した画像データの拡大または縮小処理を行う。そして拡大または縮小処理後の文字データに係る画像データを画像データファイル253に記憶する。
CPU21はさらに、文字データにルビの画像データが付随しているか否かを判断し、付随している場合は、サーバコンピュータ1にて縮小処理されたルビの画像データを文字データに係る画像データに並列して配置する画像処理を行う。ルビが存在する文字データに関しては、文字データに係る画像データとルビの画像データとが組み合わされた画像データが画像データファイル253に記憶される。以上述べた処理を各文字データについて行い逐次画像データファイル253に記憶する。
CPU21は音楽の再生開始の指示を入力部23から受け付けた場合、音楽ファイル252から音楽データを読み出し、スピーカ29へ音楽データを出力する。CPU21は音楽の再生と同時に時計部210をリセットし、表示情報ファイル251に記憶された表示タイミングに従い、画像データファイル253に記憶された文字データに係る画像データ及びルビが存在する場合はルビの画像を読み出して表示部24に表示する。そしてCPU21は表示情報ファイル251から同期タイミングを参照して、変色処理を行う。CPU21は表示情報ファイル251に記憶された変色速度に従い、画像データの変色を行う。なお、本実施の形態においては、ルビの画像データをも変色する形態につき説明するが、ルビの画像データについては変色しなくても良い。ユーザは表示部24に表示される文字データ及び変色指示に従い、マイク28を通じて歌唱する。マイク28から入力された音声信号はスピーカ29から出力される。
図10は機種別データベース152への記憶処理の手順を示すフローチャートである。新曲が発表された場合、カラオケを提供するための、音楽データ並びに文字データ及び位置情報等の表示情報は表示情報データベース151に記憶される。サーバコンピュータ1のCPU11はその新曲の表示情報を機種毎に変換すべく以下の処理を行う。なお、以下の例では新曲「森の熊さん」を機種「A601」に変換する際の例を用いて説明する。CPU11はまず、表示情報データベース151から変換対象となる音楽データを読み出し、機種別データベース152の機種「A601」の記憶領域に、この読み出した音楽データを記憶する(ステップS101)。
CPU11は変換処理を行わない、表示タイミング、同期タイミング、文字データ、及び変色する際の時間情報を含む表示情報を表示情報データベース151から読み出し(ステップS102)、機種及び音楽データに対応付けてこれら表示情報を機種別データベース152に記憶する(ステップS103)。
図11は変換処理の手順を示すフローチャートである。CPU11は変換処理の対象となる携帯電話機2の機種名をもとに、仕様データベース153を検索し、表示領域及び縮小率を読み出し(ステップS111)、RAM12に記憶する。CPU11は変換対象となる位置情報の始点座標、終点座標を読み出し、さらにサイズ情報を表示情報データベース151から読み出す(ステップS112)。CPU11は、ステップS103で記憶した文字データ中にプロポーショナルフォントにおけるサイズ情報が小さく設定された文字が含まれているか否かを判断する(ステップS113)。具体的には、CPU11は、変換対象である文字データ群に係るサイズ情報の中に、他の文字データのサイズ情報とは異なる、一の文字データのサイズ情報が存在するか否かを判断する。例えば文字データ群「くまさんに」はサイズ情報が「32,48,48,48,48」であり、他の文字データ「まさんに」のサイズ情報「48」とは異なるサイズ情報「32」を有する文字データ「く」が存在する。
CPU11は、プロポーショナルフォントにおけるサイズ情報が小さく設定された文字が含まれていないと判断した場合(ステップS113でNO)、サイズ情報にRAM12に記憶している縮小率を乗じる(ステップS114)。本例ではサイズ情報「48」に横方向(y軸方向)の縮小率38%が乗じられる。そしてCPU11は変換後のサイズ情報「18」を機種別データベース152のサイズ情報フィールドに記憶する(ステップS115)。続いて、CPU11は読み出した位置情報に係る始点座標及び終点座標に縮小率を乗じて(ステップS116)、変換後の文字データの始点座標及び終点座標を得る。CPU11は変換後の位置情報(始点座標及び終点座標)を記憶部15の機種別データベース152の位置情報フィールドに記憶する(ステップS117)。なお、本実施の形態においては変換処理により、位置情報の始点座標及び終点座標を求めるようにしているが、これに限るものではなく、文字データ群の中心座標を求めても良いし、4隅の座標全てを求めても良く、さらに始点座標または終点座標のみを求めて処理するようにしても良い。
CPU11はプロポーショナルフォントにおけるサイズ情報が小さく設定された文字が含まれていると判断した場合(ステップS113でYES)、プロポーショナルフォントにおけるサイズ情報が小さく設定された文字以外のサイズ情報に縮小率を乗じる(ステップS118)。本例ではプロポーショナルフォントにおけるサイズ情報が小さく設定された文字ではない、他の文字「まさんに」のサイズ情報「48」に縮小率を乗じる。CPU11は変換後のサイズ情報を機種別データベース152のサイズ情報フィールドに記憶する(ステップS119)。CPU11はステップS116と同じく、読み出した位置情報の始点座標に縮小率を乗じ、さらに、終点のy座標に縮小率を乗じる(ステップS1110)。
CPU11はステップS119において算出した変換後の始点x座標に変換後のサイズ情報に文字数を乗じた値を加算し、終点のx座標を得る(ステップS1111)。本例において文字データ「くまさんに」の変換前の位置情報は始点(160,150)、終点(384、102)、サイズ情報はプロポーショナルフォントにおけるサイズ情報が小さく設定された文字1文字を含む「32、48,48,48,48」である。横(x軸方向)38%の縮小率による変換後のサイズ情報は、「18,18,18,18,18」である。変換後の位置情報の始点は、横(x軸方向)38%、縦(y軸方向)60%の縮小率により、始点(61,90)となる。また終点y座標は縦(y軸方向)60%の縮小率により、「61」となる。変換後の終点x座標は始点x座標「61」に、変換後のサイズ情報「18」に文字数「5」を乗じた値を加算し変換後のx座標「151」を得る。
CPU11は変換後の位置情報を機種別データベース152に記憶する(ステップS117)。CPU11は変換後の文字データが表示領域を超えるか否かを判断する(ステップS1112)。具体的にはCPU11は、RAM12に記憶した表示領域のx座標(横)最大値及び機種別データベース152の位置情報の終点x座標を読み出し、位置情報の終点x座標が表示領域の最大値を超えるか否かを判断する。CPU11は表示領域を超えないと判断した場合(ステップS1112でNO)、変換処理を終了する。一方、CPU11が、表示領域を超えると判断した場合(ステップS1112でYES)、すなわち位置情報の終点x座標が表示領域の最大値を超える場合、CPU11は超えた値を位置情報のx座標から減じる補正を行う(ステップS1113)。
すなわち、CPU11は終点x座標値から最大値を減じた値をまず求める。文字データ「出会った」を例とした場合、x座標「243」から最大値「240」を減じた値「3」を求める。続いて、CPU11は位置情報の始点及び終点のx座標「171」,「243」から「3」を減じる補正を行う。これにより補正後の位置情報、始点(168,90)、終点(240,61)が得られる。CPU11はこの補正後の位置情報を機種別データベース152の位置情報フィールドに記憶する(ステップS1114)。なお、本実施例においては説明を簡単にするために補正量を終点のx座標から表示領域x座標の最大値を減じた値としたが、これよりも大きい値としても良いことはもちろんである。
図12はルビ画像の変換処理手順を示すフローチャートである。CPU11は表示情報データベース151の文字データフィールドを検索し、文字データにルビが存在するか否かを判断する(ステップS121)。CPU11は、ルビが存在すると判断した場合(ステップS121でYES)、ルビ位置情報を表示情報データベース151から読み出す(ステップS122)。またCPU11は表示情報データベース151から文字データに対応するルビの文字データを読み出す(ステップS123)。CPU11は読み出したルビの文字データをGIF等の画像データへ変換する(ステップS124)。
CPU11は変換したルビの画像データをステップS111において読み出した縮小率に従い縮小する画像処理を行う(ステップS125)。CPU11は対応する文字データの位置情報からルビの画像データの位置情報を算出する(ステップS126)。具体的にはCPU11は変換後の文字データの位置情報の始点から、オフセットした位置をルビの画像データの位置情報とすれば良い。例えば文字データ「出会った」については、位置情報の始点(171、90)、y座標「90」に適宜の値「10」を加算した値「100」を求め、ルビの画像データの位置情報(171,100)とする。
CPU11は以上のようにして得たルビの画像データ及び当該ルビの画像データの位置情報を機種別データベース152に記憶する(ステップS127)。ステップS121において、CPU11はルビが存在しないと判断した場合(ステップS121でNO)、ステップS122〜ステップS127の処理はスキップする。
図13は変色速度の算出処理の手順を示すフローチャートである。CPU11は機種別データベース152のサイズ情報を読み出す(ステップS131)。またCPU11は表示情報データベース151または機種別データベース152の変色する際の時間情報フィールドから変色する際の時間情報を読み出す(ステップS132)。CPU11は、変色速度を算出すべく、読み出したサイズ情報を変色する際の時間情報で除す(ステップS133)。CPU11は変換後の変色速度を機種別データベース152の変色速度フィールドに記憶する(ステップS134)。以上の処理を曲中の文字データに繰り返し行う事により変換処理が終了する。また、一の機種についての変換処理を終えた場合は、他の機種「A602」等についても仕様データベース153に記憶された表示領域及び縮小率を読み出して同様の処理を繰り返す。
図14及び図15はサーバコンピュータ1と携帯電話機2との間の情報の送受信処理の手順を示すフローチャートである。携帯電話機2のCPU21はサーバコンピュータ1との間で通信を確立する。その後CPU21はサーバコンピュータ1へ再生プログラム256の取得を要求する(ステップS141)。サーバコンピュータ1のCPU11はこの取得要求を受けて記憶部15に記憶された再生プログラム256を読み出して携帯電話機2へ送信する(ステップS142)。携帯電話機2のCPU21は送信された再生プログラム256を記憶部25に記憶する(ステップS143)。
ユーザは新曲のカラオケデータの取得を希望する場合は、入力部23から、ダウンロードする曲を選択する。このユーザからの入力を受けて、携帯電話機2のCPU21はカラオケを楽しむために必要な音楽データ及び文字データを含む表示情報の取得要求をサーバコンピュータ1へ行うと共に、機種の情報を送信する(ステップS144)。サーバコンピュータ1のCPU11はこの取得要求及び機種の情報を受信して、送信元の携帯電話機2の機種を判別する(ステップS145)。この機種の判別は、携帯電話機2が送信した、機種に関する情報を参照して判別しても良いし、携帯電話機2とサーバコンピュータ1との間で送受信される情報に含まれるMACアドレスを参照して機種を判別してもよい。
サーバコンピュータ1のCPU11は、判別した機種をもとに、変換処理が行われた機種別データベース152へアクセスする(ステップS146)。サーバコンピュータ1のCPU11は取得要求のあった音楽データを機種別データベース152から読み出し(ステップS147)、読み出した音楽データを携帯電話機2へ送信する(ステップS148)。携帯電話機2のCPU21は送信された音楽データを音楽ファイル252に記憶する(ステップS149)。
サーバコンピュータ1のCPU11はステップS145において判別した機種をもとに、機種別データベース152を検索し、表示タイミング、同期タイミング、文字データ、位置情報、変色速度、ルビの画像データ及びルビの画像データの位置情報を含む表示情報を読み出し(ステップS1410)、これら読み出した表示情報を携帯電話機2へ送信する(ステップS1411)。携帯電話機2のCPU21は、送信された表示タイミング、同期タイミング、文字データ、位置情報、変色速度、ルビの画像データ及びルビの画像データの位置情報を含む表示情報を受信する(ステップS1412)。
携帯電話機2のCPU21は、受信した表示タイミング、同期タイミング、文字データ、位置情報、変色速度、ルビの画像データの位置情報を含む表示情報を表示情報ファイル251に記憶する(ステップS151)。同様に、携帯電話機2のCPU21はルビの画像データを画像データファイル253に記憶する(ステップS152)。
図16は再生及び変色処理の手順を示すフローチャートである。ユーザはカラオケを開始する場合、入力部23から表示部24に示されるガイドに従い、再生開始信号を入力する。携帯電話機2のCPU21は入力された再生開始に係る信号を受け付け(ステップS161)、再生プログラム256を起動する(ステップS162)。CPU21は表示情報ファイル251に記憶された文字データ及び当該文字データに対応する位置情報を読み出す(ステップS163)。CPU21は読み出した文字データに対応するフォントをフォントファイル255から読み出す(ステップS164)。CPU21はこの読み出した文字データのフォントをRAM22に展開する。
CPU21はこの文字データのフォントを、展開されたRAM22から読み出し、GIF形式等により画像データに変換する(ステップS165)。CPU21はステップS163において読み出した位置情報を参照して、変換した文字データに係る画像データの拡大または縮小処理を行う(ステップS167)。例えば、変換された文字データに係る画像データ「くまさんに」を縮小または拡大する場合、CPU21は画像データ「くまさんに」のx軸方向のドット数及びy軸方向のドット数(x1,y1)を検出し、また表示情報ファイル251に記憶された位置情報、始点(61,90)、終点(151,61)から、x軸方向のドット数「90」,y軸方向のドット数「29」をそれぞれ算出する。そしてこれらのドット数から、縮小率(x1/90、y1/29)または拡大率(90/x1、29/y1)を算出して、画像データ「くまさんに」を縮小または拡大する。
CPU21はこのようにして変換された文字データに係る画像データを画像データファイル253に記憶する(ステップS168)。CPU21は音楽データを音楽ファイル252から読み出して再生を行う(ステップS169)。CPU21はこれと同時に時計部210をリセットする。CPU21は表示部24に歌詞及び歌詞の変色を表示すべく以下の処理を行う。CPU21は表示情報ファイル251に記憶された位置情報を参照し、同じく表示情報ファイル251に記憶された表示タイミングに応じて、時計部210からの信号をもとに、文字データの画像データ及びルビの画像データを画像データファイル253から読み出して表示する(ステップS1610)。
ルビの画像データの表示位置は、サーバコンピュータ1から送信されたルビの画像データの位置情報を参照して表示部24に表示する。なお、ルビの画像データの位置情報を用いずに、対応する文字データの位置情報を参照してルビの画像データの位置情報を携帯電話機2のCPU21が決定するようにしても良い。この場合CPU21は文字データに係る画像データの位置情報の始点を(x,y)とした場合、y座標に数ドット加算した(x,y+a)を始点としてルビの画像データの位置情報としても良い。これにより、音楽デ
ータに合わせて、画像データとして、歌詞及び歌詞に付随するルビが表示部24に表示される。
CPU21は変色処理を行うべく、時計部210からの信号をもとに、表示情報ファイル251に記憶された同期タイミング及び変色速度に従い、文字データの画像データ及びルビの画像データの変色処理を行う(ステップS1611)。変色は例えば歌詞が白色で表示されている場合は、赤色等で変色を行う。CPU21は、文字データに係る画像データのサイズ情報に相当するドット数毎に決定された変色速度を参照し、変色する画像処理を実行する。以上の処理を繰り返す事により、文字データの表示及び変色処理が実行できる。
実施の形態2
図17は実施の形態2に係るサーバコンピュータ1の構成を示すブロック図である。実施の形態2に係るサーバコンピュータ1を動作させるためのコンピュータプログラムは、本実施の形態2のように、CD−ROM、MO、またはDVD−ROM等の可搬型記録媒体1Aで提供することも可能である。さらに、コンピュータプログラムを、通信網Nを介して図示しないサーバコンピュータからダウンロードすることも可能である。以下に、その内容を説明する。
図17に示すサーバコンピュータ1の図示しないリーダ/ライタに、位置情報、サイズ情報、変色する際の時間情報を読み出させ、位置情報を変換させ、サイズ情報を変換させ、変色速度を算出させるコンピュータプログラムが記録された可搬型記録媒体1A(CD−ROM、MO又はDVD−ROM等)を、挿入して記憶部15の制御プログラム内にこのプログラムをインストールする。または、かかるプログラムを、通信部16を介して外部の図示しないサーバコンピュータからダウンロードし、記憶部15にインストールするようにしても良い。かかるプログラムはRAM12にロードして実行される。これにより、上述のような本発明のサーバコンピュータ1として機能する。
本実施の形態2は以上の如き構成としてあり、その他の構成及び作用は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。