説明

変換装置、変換方法、表示システム及びコンピュータプログラム

【課題】本発明は、ルビを視認しやすく表示するための変換装置、変換方法、表示システム及びコンピュータプログラムを提供する。
【解決手段】PC1は、ネットワーク網Nを介してサーバ装置2から歌詞データを受付ける。PC1は、歌詞データから読み出したルビ付き文字列又は対応するルビ文字列に空白文字を挿入してルビ文字列をなす文字夫々のルビ付き文字列に対する配置を調整する。PC1は入力データを、配置が調整されたルビ付き文字列及びルビ文字列と、ルビ無し文字列とが配列された表示データに変換する。PC1は、ネットワーク網Nを介して表示データをサーバ装置2に送信する。カラオケ装置3は、サーバ装置2から受信した表示データを表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ルビを視認し易く表示するための変換装置、変換方法、表示システム及びコンピュータプログラムに関する。
【背景技術】
【0002】
楽曲の演奏時に読み仮名を示すルビが付された歌詞を表示するカラオケ装置、カラオケ機能付き携帯電話機及びDTM( Desk Top Music)装置等が使われている。例えば特許文献1及び特許文献2に記載の装置は、受付けた歌詞データを歌詞の読み仮名に変換し、歌詞の読み仮名夫々を演奏情報の各音符に割り当てる。これにより、楽曲の演奏と同期して歌詞データを表示するようにしてある。また歌詞は、漢字及び英単語等を含んでおり、カラオケ曲を歌唱するユーザに対して歌詞と共に歌詞の読み名仮名をルビとして表示するカラオケ装置が使われている。このようなカラオケ装置は、ルビを含む歌詞データを受付けて表示するようにしてある。
【0003】
歌詞データが作成される場合、始めに1曲の歌詞全体が複数の画面夫々に表示する歌詞に分割され、さらに各画面に表示する歌詞が複数の部分歌詞に分割される。次に、複数の部分歌詞のうち、一部の部分歌詞にルビが付けられる。複数の部分歌詞夫々を示す複数の文字列からなる歌詞データが作成される。さらに歌詞データの複数の文字列の一部に対応付けたルビを示す子文字列が追加される。子文字列は、ルビを示す1つ又は複数のルビ文字からなる。カラオケ装置は、カラオケ曲の演奏中に歌詞データに配列してある複数の文字列を順次表示し、子文字列を対応する文字列の上側に沿って表示することで、歌詞をルビと共に表示する。この場合、ルビを視認し易くするために、ルビが付される文字列に対するルビ文字夫々の配置を調整して表示する必要がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−41074号公報
【特許文献2】特開2002−82665号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1及び特許文献2に記載の装置は、ルビが付される文字列に対するルビ文字夫々の配置を調整してルビを視認し易くする方法について記載がなかった。
【0006】
本発明は斯かる事情に鑑みてなされたものであり、子文字列又は当該子文字列が対応付けられた文字列に空白文字を挿入する挿入手段を備えることにより、ルビが付される文字列に対するルビ文字夫々の配置を変更してルビを視認し易くするための変換装置、変換方法、表示システム及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る変換装置は、複数の文字列のうち、一部の文字列に子文字列が対応付けられた入力データを受付けて、表示装置により前記子文字列を前記一部の文字列に沿って表示すべく表示データへ変換する変換装置において、前記子文字列又は前記一部の文字列に空白を挿入する挿入手段と、該挿入手段により空白を挿入して前記子文字列をなす文字夫々の前記一部の文字列に対する配置を変更する変更手段と、前記入力データに含まれる前記一部の文字列を前記変更手段により配置を変更した一部の文字列へ変換する変換手段と
を備えることを特徴とする。
【0008】
本発明にあっては、複数の文字列のうち、一部の文字列に子文字列が対応付けられた入力データが受付けられる。子文字列が対応付けられた文字列、又は当該子文字列に空白が挿入されて、当該文字列に対する子文字列をなす文字夫々の配置が、対応関係を把握し易く変更される。入力データは、配置が変更された文字列及び対応する子文字列からなる表示データに変換される。表示データを表示することにより、文字列に沿って対応する子文字列が見易く表示される。
【0009】
本発明に係る変換装置は、前記入力データに含まれる前記一部の文字列夫々の文字列長及び該一部の文字列夫々に対応付けられた子文字列の文字列長を取得する文字列長取得手段と、該文字列長取得手段により取得した一部の文字列の文字列長及び前記子文字列の文字列長を比較する判定手段とを備え、前記挿入手段は、前記判定手段による判定の結果、前記一部の文字列の文字列長が前記子文字列の文字列長よりも長い場合に前記子文字列の先頭に空白を挿入し、前記一部の文字列の文字列長が前記子文字列の文字列長よりも短い場合に前記一部の文字列の先頭に空白を挿入するよう構成してあることを特徴とする。
【0010】
本発明にあっては、子文字列が対応付けられた文字列の文字列長と、子文字列の文字列長とが比較される。文字列の文字列長が子文字列の文字列長よりも長い場合、子文字列の先頭に空白が挿入されて子文字列が当該文字列に対して略中央に位置するよう調整される。文字列の文字列長が子文字列の文字列長よりも短い場合、文字列の先頭に空白が挿入されて子文字列が当該文字列に対して略中央に位置するよう調整される。
【0011】
本発明に係る変換装置は、前記挿入手段は、前記判定手段による判定の結果、前記一部の文字列の文字列長が前記子文字列の文字列長よりも長い場合に前記子文字列の先頭、終端及び文字間夫々に空白を挿入するよう構成してあることを特徴とする。
【0012】
本発明にあっては、子文字列が対応付けられた文字列の文字列長が、子文字列の文字列長以上である場合、子文字列の先頭、文字間及び終端夫々に空白が挿入される。これにより、子文字列が対応付けられた文字列に子文字列が略中央に配置されると共に、子文字列をなす文字夫々が間隙を有して配置される。
【0013】
本発明に係る変換装置は、前記文字列及び子文字列は、全角文字又は半角文字からなり、前記挿入手段は、半角文字と略同一な表示幅を有する空白を挿入するよう構成してあることを特徴とする。
【0014】
本発明にあっては、子文字列が対応けられた文字列及び当該子文字列が、全角文字又は半角文字からなる。子文字列が対応付けられた文字列又は当該子文字列に半角の空白文字が挿入されることにより、子文字列をなす文字夫々の当該文字列に対する配置が最小の文字間隔である1個の半角文字の幅単位で調整される。
【0015】
本発明に係る変換装置は、前記変更手段により変更した一部の文字列を含む文字列及び子文字列夫々を連結する連結手段を備え、前記変更手段は、前記挿入手段により空白を挿入して、前記連結手段により連結した子文字列夫々の前記連結手段により連結した文字列に対する配置を変更するよう構成してあることを特徴とする。
【0016】
本発明にあっては、配置が調整された文字列夫々が連結される。また、対応する子文字列夫々が連結される。連結された文字列又は子文字列に空白が挿入されて、連結された文字列に対して、連結された子文字列の配置が調整される。
【0017】
本発明に係る変換装置は、前記子文字列は、前記一部の文字列に付されるルビであることを特徴とする。
【0018】
本発明にあっては、文章及び歌詞等を示す文字列に沿って、当該文章及び歌詞等の読み仮名を示すルビが視認し易く配置される。
【0019】
本発明に係る変換方法は、複数の文字列のうち、一部の文字列に子文字列が対応付けられた入力データを受付けて、表示装置により前記子文字列を前記一部の文字列に沿って表示すべく表示データへ変換する変換方法において、前記子文字列又は前記一部の文字列に空白を挿入する挿入ステップと、該挿入ステップにより空白を挿入して前記子文字列をなす文字夫々の前記一部の文字列夫々に対する配置を変更する変更ステップと、前記入力データに含まれる前記一部の文字列を前記変更ステップにより配置を変更した一部の文字列に変換する変換ステップとを備えることを特徴とする。
【0020】
本発明にあっては、複数の文字列のうち、一部の文字列に子文字列が対応付けられた入力データが受付けられる。子文字列が対応付けられた文字列、又は当該子文字列に空白が挿入される。これにより、子文字列をなす文字夫々の文字列に対する配置が対応関係を把握し易く変更される。入力データは、配置が変更された文字列及び子文字列からなる表示データに変換される。表示データを表示することにより、文字列に沿って子文字列が見易く表示される。
【0021】
本発明に係る表示システムは、前述の変換装置と、該変換装置により変換した表示データを表示する表示装置とを備えることを特徴とする。
【0022】
本発明にあっては、入力データが変換装置により子文字列を見易く表示すべく表示データへ変換される。表示装置は、表示データを表示することにより、子文字列の表示位置の調整を必要とせずに子文字列を見易く表示する。
【0023】
本発明に係るコンピュータプログラムは、複数の文字列のうち、一部の文字列に子文字列が対応付けられた入力データを受付けるコンピュータに、表示装置により前記子文字列を前記一部の文字列に沿って表示すべく表示データへ変換させるコンピュータプログラムにおいて、前記コンピュータに、前記子文字列又は前記一部の文字列に空白を挿入する挿入ステップと、該挿入ステップにより空白を挿入して前記子文字列をなす文字夫々の前記一部の文字列夫々に対する配置を変更する変更ステップと、前記入力データに含まれる前記一部の文字列を前記変更ステップにより配置を変更した一部の文字列へ変換する変換ステップとを実行させることを特徴とする。
【0024】
本発明にあっては、複数の文字列のうち、一部の文字列に子文字列が対応付けられた入力データが受付けられる。子文字列が対応付けられた文字列、又は当該子文字列に空白が挿入される。これにより、子文字列をなす文字夫々の文字列に対する配置が対応関係を把握し易く変更される。入力データは、配置が変更された文字列及び子文字列からなる表示データに変換される。表示データを表示することにより、文字列に沿って子文字列が見易く表示される。
【発明の効果】
【0025】
本発明にあっては、子文字列又は当該子文字列が対応付けられた文字列に空白文字を挿入する挿入手段を備えることにより、ルビが付される文字列に対するルビ文字夫々の配置を変更してルビを視認し易くする。
【図面の簡単な説明】
【0026】
【図1】実施の形態1に係るカラオケシステムの構成を示すブロック図である。
【図2】実施の形態1に係るPCの内部構成例を示すブロック図である。
【図3】実施の形態1に係る置換文字DBのレコードレイアウト例を示す図表である。
【図4】実施の形態1に係る歌詞データのレコードレイアウト例を示す模式図である。
【図5】実施の形態1に係る対応表のレコードレイアウト例を示す図表である。
【図6】実施の形態1に係る第1ルビレイアウト処理を説明するための説明図である。
【図7】実施の形態1に係る第1ルビレイアウト処理を説明するための説明図である。
【図8】実施の形態1に係る第2ルビレイアウト処理を説明するための説明図である。
【図9】実施の形態1に係る第2ルビレイアウト処理を説明するための説明図である。
【図10】実施の形態1に係る改行処理を説明するための説明図である。
【図11】実施の形態1に係る改行処理を説明するための説明図である。
【図12】実施の形態1に係る改行処理を説明するための説明図である。
【図13】実施の形態1に係る改行処理を説明するための説明図である。
【図14】実施の形態1に係る改行処理を説明するための説明図である。
【図15】実施の形態1に係る改行処理を説明するための説明図である。
【図16】実施の形態1に係る不要な空白文字の削除処理を説明するための説明図である。
【図17】実施の形態1に係る表示データのレコードレイアウト例を示す模式図である。
【図18】実施の形態1に係るデータ変換処理の手順を示すフローチャートである。
【図19】実施の形態1に係るデータ読込処理の手順を示すフローチャートである。
【図20】実施の形態1に係る第1ルビレイアウト処理の手順を示すフローチャートである。
【図21】実施の形態1に係る先頭挿入処理の手順を示すフローチャートである。
【図22】実施の形態2に係る第1ルビレイアウト処理を説明するための説明図である。
【図23】実施の形態2に係る第1ルビレイアウト処理を説明するための説明図である。
【図24】実施の形態2に係る第1ルビレイアウト処理の手順を示すフローチャートである。
【図25】実施の形態2に係る均等挿入処理の手順を示すフローチャートである。
【図26】実施の形態3に係るPCの内部構成例を示すブロック図である。
【発明を実施するための形態】
【0027】
実施の形態1
以下、本発明をその実施の形態を示す図面を参照して具体的に説明する。本発明の表示システムは、ルビを含むテキストデータを受け付けて変換する変換装置と、変換装置により変換されたテキストデータを表示する表示装置とからなる。テキストデータは、例えばルビが付された文章からなる電子書籍データ、ルビが付されたセリフからなる映画及びドラマの字幕データ、並びにルビが付された歌詞からなる歌詞データ等である。変換装置は、ネットワーク網を介して変換すべきテキストデータを受け付けるサーバ装置、並びにネットワーク網及び記憶媒体を介して変換すべきテキストデータを受け付けるPC( Personal Computer )等である。表示装置は、例えば、液晶パネル等の表示部を有する携帯端末装置及び携帯電話機、並びに表示部を有するカラオケ装置等である。本実施の形態では、表示システムとして、歌詞データを変換して得た表示データをカラオケ装置により表示するカラオケシステムを例に挙げて説明する。
【0028】
図1は、実施の形態1に係るカラオケシステムの構成を示すブロック図である。図中1は、変換装置としてのPCであり、インターネット又はLAN( Local Area Network )等のネットワーク網Nを介してサーバ装置2に接続してある。サーバ装置2は、演奏データ、楽曲情報及びデータ作成者により作成された複数の歌詞データを管理している。また、サーバ装置2は、ネットワーク網Nを介してPC1からの要求を受付け、当該要求に応じて歌詞データ及び楽曲情報をPC1に送信するようにしてある。PC1は、サーバ装置2から送られてきた入力データとしての歌詞データを表示データに変換し、当該表示データに楽曲情報を付加してサーバ装置2に送信するようにしてある。
【0029】
サーバ装置2は、PC1により変換された表示データを管理するようにしてある。サーバ装置2には、ネットワーク網Nを介して表示装置としてのカラオケ装置3が接続してある。カラオケ装置3は、サーバ装置2に特定の曲の表示データ及び演奏データを要求するようにしてある。また、カラオケ装置3は、要求に応じて送られてきた演奏データ及び表示データに基づいてカラオケ曲を演奏すると共に、ルビが付された歌詞を表示するようにしてある。カラオケ装置3により演奏及び表示されるカラオケ曲及び歌詞に応じてユーザが歌唱を行うようにしてある。
【0030】
図2は、実施の形態1に係るPC1の内部構成例を示すブロック図である。PC1は、ネットワーク網Nと接続し、当該ネットワーク網Nを介してサーバ装置2から歌詞データを受付けると共に、当該サーバ装置2へ表示データを出力するための通信部13を備える。また、PC1は、コンピュータプログラムに従って挿入手段、変更手段、連結手段(文字列連結手段及び子文字列連結手段)、対応付け手段、変換手段、文字列長取得手段及び判定手段として機能するCPU( Central Processing Unit )10を備える。
【0031】
CPU10には、ROM(Read Only Memory )11と、RAM( Random-Access Memory )12と、通信部13と、置換文字DB( Data Base )14と、表示部15と、操作受付部16とがバス10aを介して接続してある。CPU10は、バス10aを介してハードウェア各部を制御するようにしてある。置換文字DB14は、歌詞データに含まれる特定の文字を予め指定してある文字に置換するための表を記憶してある。ROM11は、CPU10で実行されるコンピュータプログラム及び当該コンピュータプログラムを読み出すためのバッチファイルが記憶してある。
【0032】
RAM12は、ROM11から読み出したプログラムを記憶すると共に、コンピュータプログラムの実行中に生じる変数等を記憶するようにしてある。表示部15は、液晶パネル等からなり、コマンドプロンプトを表示するようにしてある。操作受付部16は、キーボード及びマウス等からなり、ユーザによる操作を受け付けるようにしてある。CPU10は、表示部15に表示したコマンドプロンプトを介して操作受付部16がユーザによるバッチファイルの実行操作を受け付けた場合、ROM11からコンピュータプログラムをRAM12に読み出して実行するようにしてある。
【0033】
図3は、実施の形態1に係る置換文字DB14のレコードレイアウト例を示す図表である。置換文字DB14には、歌詞データに含まれる文字のうち、置換する文字が置換元文字として記憶してあり、各置換元文字に対して置換先の文字が置換先文字として記憶してある。置換元文字として、全角文字を示す文字列が指定してあり、置換先文字として、カタカナの半角文字が指定してある。図3に示す例では、全角文字のひらがなである置換元文字「あ」、「い」、…夫々に対応してカタカナの半角文字である置換先文字「ア」、「イ」、…が指定してある。また、濁点を含んでおり、濁音を示す全角文字である置換元文字「ガ」、「ギ」、…夫々に対応してカタカナの半角文字である置換先文字「カ゛」、「キ゛」、…が指定してある。また、半濁点を含んでおり、半濁音を示す全角文字である置換元文字「パ」、「ピ」、…夫々に対応してカタカナの半角文字である置換先文字「ハ゜」、「ヒ゜」、…が指定してある。
【0034】
図4は、実施の形態1に係る歌詞データのレコードレイアウト例を示す模式図である。歌詞データは、全角文字及び半角文字からなるテキストデータである。ここで、全角文字は、等幅フォントを用いて表示した場合、文字の高さが文字幅と略同一となる文字である。また、半角文字は、等幅フォントを用いて表示した場合、文字の高さが文字幅の略2倍となる文字である。全角文字及び半角文字は、空白(スペース)が表示される空白文字を含んでいる。歌詞データは、画面切替えを示す「;」(セミコロン)で区切られており、各画面に表示する歌詞を示す画面歌詞データが複数配列してある。
【0035】
図4に示す例では、3つのセミコロンにより3回の画面切替が指定されている。また、図4には、画面切替後に表示する歌詞を示す画面歌詞データ夫々が各セミコロンの次の行に配列されている。各画面歌詞データには、複数の文字列としての複数の部分歌詞文字列が配列されている。部分歌詞文字列夫々は、画面切替後に表示する歌詞がデータ作成者等により複数の部分歌詞に分割されて得られた文字列である。複数の部分歌詞文字列のうち、一部の部分歌詞文字列に子文字列としての部分ルビ文字列が対応付けられている。部分ルビ文字列夫々は、各部分歌詞の読み仮名を示す複数のルビ文字からなる文字列である。ここで、部分歌詞文字列及び部分ルビ文字列夫々は、1個の文字からなる文字列を含む。
【0036】
部分歌詞文字列は、漢字、カタカナ、平仮名、数字、アルファベット及び空白を示す文字からなる。部分ルビ文字列は、平仮名及びカタカナを示すルビ文字からなる。部分歌詞文字列のうち、部分ルビ文字列が対応付けられる一部の部分歌詞文字列は、先頭に「”」(ダブルコーテーション)が付加されて、画面歌詞データに配列されている。また、部分ルビ文字列が対応付けられない部分歌詞文字列は、先頭にダブルコーテーションが付加されずに画面歌詞データに配列されている。部分ルビ文字列は、先頭及び終端にダブルコーテーションが付加されて、対応する部分歌詞文字列の後端に挿入されている。
【0037】
以下、部分ルビ文字列が対応付けられた部分歌詞文字列をルビ付き部分歌詞文字列と呼ぶ。また、部分ルビ文字列が対応付けられていない部分歌詞文字列をルビ無し部分歌詞文字列と呼ぶ。例えば、図4に示す画面歌詞データ「”一”いち””番”ばん””大切”たいせつ”な”事”こと”」は、ルビ付き部分歌詞文字列「一」、「番」、「大切」及び「事」夫々の後端に対応する部分ルビ文字列「いち」、「ばん」、「たいせつ」及び「こと」が各挿入されている。また、ルビ無し部分歌詞文字列「な」は、ダブルコーテーションが付加された部分ルビ文字列の「”たいせつ”」の後端に配列してある。次に、PC1が歌詞データを読込む手順について説明する。
【0038】
PC1は、各画面歌詞データに配列してある部分歌詞文字列を順に読み出す。PC1は、ルビ付き部分歌詞文字列を読み出す場合、対応する部分ルビ文字列と共に読み出すようにしてある。PC1は、読み出した部分歌詞文字列のうち、ルビ無し部分歌詞文字列を挟まずに連続して配列してある複数のルビ付き部分歌詞文字列を連結し、1つのルビ付き歌詞文字列として取得する。また、PC1は、連結したルビ付き部分歌詞文字列夫々に対応する部分ルビ文字列を連結し、1つのルビ文字列として取得する。読み出した部分文字列のうち、連続していない各ルビ付き部分歌詞文字列及びルビ無し部分歌詞文字列夫々は、1つのルビ付き歌詞文字列及びルビ無し歌詞文字列として各取得される。
【0039】
また、連続していないルビ付き部分歌詞文字列に対応する部分ルビ文字列夫々は、1つのルビ文字列として各取得される。PC1は、取得したルビ付き歌詞文字列及びルビ無し歌詞文字列を、画面歌詞データにおける部分歌詞文字列の配列順に基づいて、歌詞文字列として並べた対応表を作成し、RAM12に記憶する。PC1は、対応表に並べた歌詞文字列のうち、ルビ付き歌詞文字列夫々にルビ文字列を対応付ける。
【0040】
図5は、実施の形態1に係る対応表のレコードレイアウト例を示す図表である。図5に示す対応表の例は、図4の例に示す画面歌詞データ「”一”いち””番”ばん””大切”たいせつ”な”事”こと”」を読込んで作成された対応表を示している。画面歌詞データに連続して配置してあるルビ付き部分歌詞文字列「一」、「番」及び「大切」が連結されて1つのルビ付き歌詞文字列「一番大切」が取得されている。また、図5は、連続して配置されていないルビ付き部分歌詞文字列「事」が1つのルビ付き歌詞文字列「事」として取得されている。また、図5は、画面歌詞データに配置してあるルビ無し部分歌詞文字列「な」が1つのルビ無し歌詞文字列として取得されている。また、図5の対応表には、歌詞データでの配列順に基づいてルビ付き歌詞文字列「一番大切」、ルビ無し歌詞文字列「な」及びルビ付き歌詞文字列「事」の順に並べられている。
【0041】
図5に示す例では、部分ルビ文字列「いち」、「ばん」及び「たいせつ」が連結されてルビ文字列「いちばんたいせつ」が取得され、当該ルビ文字列が対応表のルビ付き歌詞文字列「一番大切」に対応付けられている。ルビ部分文字列「こと」が1つのルビ文字列として取得され、対応表のルビ付き歌詞文字列「事」に対応付けられている。PC1は、全ての画面歌詞データに基づいて対応表を作成し、歌詞データの読込みを完了する。PC1は、対応表のルビ文字列に置換文字DB14により指定された置換元文字が含まれている場合、置換先文字を用いて対応表を書き換える。これにより、ルビが全角文字を含んでいる場合、半角文字に置換される。
【0042】
また、置換文字DB14の置換先文字としてJISコード等に含まれない外字を指定し、当該外字に置換するようにしてもよい。この場合、歌詞部に”[”(左カッコ)及び”]”(右カッコ)で囲まれた特定の文字コードを示す文字列を挿入し、当該文字列を置換元文字とし、外字に対応付けて置換文字DB14により指定するとよい。次に、ルビ文字列をなすルビ文字夫々のルビ付き歌詞文字列に対する配置を変更する第1ルビレイアウト処理を説明する。
【0043】
PC1は、ルビ付き歌詞文字列及びルビ文字列夫々の文字列長を取得する。各文字列長は、半角文字幅で取得されるようにしてあり、文字列に含まれる全角文字の個数の2倍値と、当該文字列に含まれる半角文字の個数との合計値に対応する。また、1個の文字からなる文字列の場合、文字列長として1が取得されるようにしてある。PC1は、文字列長の差を2等分した数の空白文字をルビ付き歌詞文字列及びルビ文字列のうち、文字列長の短い文字列の先頭に挿入する。これにより、ルビ文字列がルビ付き歌詞文字列の略中央に表示されるよう配置が調整される。
【0044】
ルビ文字列の終端文字が濁点又は半濁点である場合、ルビ文字列の文字列長として、終端文字を除いた文字列長を取得することにより、ルビ文字列又はルビ付き歌詞文字列の先頭に挿入する空白文字の個数が1個加算される。これにより、他の半角文字と比較して左側に位置するよう視認される濁点又は半濁点に合わせてルビ文字列がルビ付き歌詞文字列に対して空白文字1個分を右側に移動して配置される。以上の第1ルビレイアウト処理を数式に基づいて実行する方法を説明する。
【0045】
PC1は、ルビ付き歌詞文字列の文字列長、すなわち一部の文字列の文字列長としての歌詞文字列長W1と、ルビ文字列の文字列長、すなわち子文字列の文字列長としてのルビ文字列長W2とを取得する。PC1は、判定値mを、次式(1)に基づいて算出する。
m=(W1−W2+C)/2 (1)
ここで、Cは、ルビ文字列の終端文字が濁音又は半濁音である場合、1が設定され、濁音又は半濁音で無い場合、0が設定される補正値である。次にPC1は、挿入個数nを次式(2)に基づいて算出する。
n=Int〔|m|〕 (2)
ここでIntは、変数の小数点以下を切り捨てて変数の整数部を取得する関数である。
【0046】
PC1は、ルビ付き歌詞文字列がルビ文字列よりも短く、判定値mが負値である場合、ルビ付き歌詞文字列の先頭に挿入個数nの半角の空白文字を挿入する。また、PC1は、ルビ付き歌詞文字列がルビ文字列よりも長く、判定値mが正値である場合、ルビ文字列の先頭に挿入個数nの半角の空白文字を挿入する。PC1は、配置を調整したルビ付き歌詞文字列及びルビ文字列の組を用いて対応表を書換える。PC1は、対応表に含まれるルビ付き歌詞文字列及びルビ文字列の組全てに第1ルビレイアウト処理を施して対応表を書換える。
【0047】
図6は、実施の形態1に係る第1ルビレイアウト処理を説明するための説明図である。図中(a)及び(b)夫々は、第1ルビレイアウト処理が施される前後のルビ付き歌詞文字列及びルビ文字列を示す。図6(a)に示す例では、ルビ付き歌詞文字列「Come on」の歌詞文字列長W1及びルビ文字列「カモン」のルビ文字列長W2夫々は、7及び3となる。ルビ文字列の終端文字が濁音又は半濁音でないため、補正値Cは0となる。この場合、式(1)より判定値mとして2が算出され、式(2)より挿入個数nとして2が算出される。判定値mは、正値であるため、ルビ文字列「カモン」の先頭に2個の半角の空白文字が図6(b)に示す如く挿入されている。これにより、図6(b)は、ルビ文字列「カモン」が、ルビ付き歌詞文字列「Come on」に対して略中央となるよう配置が調整されている。
【0048】
図7は、実施の形態1に係る第1ルビレイアウト処理を説明するための説明図である。図中(a)及び(b)夫々は、第1ルビレイアウト処理が施される前後のルビ付き歌詞文字列及びルビ文字列を示す。図7の(a)に示す例では、ルビ付き歌詞文字列「11万度」の歌詞文字列長W1及びルビ文字列「シ゛ュウイチマント゛」のルビ文字列長W2夫々は、6及び10となる。ルビ文字列の終端文字が濁音であるため、補正値Cは1となる。この場合、式(1)より判定値mとして−1.5が算出され、式(2)より挿入個数nとして1が算出される。判定値mは、負値であるため、ルビ付き歌詞文字列「11万度」の先頭に1個の半角の空白文字が図7(b)に示す如く挿入されている。
【0049】
これにより、図7(b)は、ルビ文字列「シ゛ュウイチマント゛」が、ルビ付き歌詞文字列「11万度」に対して略中央となるよう配置が調整されている。PC1は、対応表に含まれる全ての組の書換えを完了した場合、対応表に記憶してあるルビ付き歌詞文字列及びルビ無し歌詞文字列をルビ文字列と共に順に連結し、各画面歌詞データに対応した歌詞行を生成する。PC1は、文字列長の異なるルビ文字列が対応付けられたルビ付き歌詞文字列に他のルビ付き歌詞文字列を連結する場合、第2ルビレイアウト処理を行う。次に、第2ルビレイアウト処理について、ルビ文字列長W2よりも短い歌詞文字列長W1を有するルビ付き歌詞文字列を他のルビ付き歌詞文字列に連結する場合の手順を説明する。
【0050】
図8は、実施の形態1に係る第2ルビレイアウト処理を説明するための説明図である。図中黒塗りで示す領域は、半角の空白文字からなるルビ無し歌詞文字列を示す。また、図中斜線で示す領域は、第1ルビレイアウト処理又は第2ルビレイアウト処理によりルビ付き歌詞文字列又はルビ文字列に挿入された半角の空白文字を示す。図8(a)に示す連結元のルビ付き歌詞文字列「 11万度 」は、第1ルビレイアウト処理により先頭に半角の空白文字1個が挿入してあるルビ付き歌詞文字列「 11万度」に、空白文字1個からなるルビ無し歌詞文字列が連結されてなる。また、ルビ付き歌詞文字列「 11万度 」は、ルビ文字列「シ゛ュウイチマント゛」よりも短い文字列長を有している。図8(a)に示す連結先のルビ付き歌詞文字列「Come on」は、先頭に半角の空白文字2個が第1ルビレイアウト処理により挿入されたルビ文字列「 カモン」が対応付けられている。
【0051】
図8(b)に示す如く歌詞文字列「11万度 」のルビ文字「ト」及び当該ルビ文字「ト」の後端に配置された「゛」に対応するよう2個の半角の空白文字を挿入されている。これにより、ルビ文字列及び歌詞文字列が同一の文字列長にされて、ルビ付き歌詞文字列「Come on」に、ルビ文字列「 カモン」と共に連結される。次に、図8(c)に示す如く、連結されたルビ付き歌詞文字列間及び連結されたルビ文字列間夫々に2個以上の半角の空白文字が存在する場合、連結されたルビ文字列間の空白文字が1個となるようルビ文字列から空白文字が削除される。また、ルビ文字列から削除された空白文字と同数の空白文字が連結されたルビ付き歌詞文字列間から削除される。次に、第2ルビレイアウト処理について、ルビ文字列長W2よりも長い歌詞文字列長W1を有するルビ付き歌詞文字列を他のルビ付き歌詞文字列に連結する場合の手順を説明する。
【0052】
図9は、実施の形態1に係る第2ルビレイアウト処理を説明するための説明図である。図中黒塗りで示す領域は、半角の空白文字からなるルビ無し歌詞文字列を示す。また、図中斜線で示す領域は、第1ルビレイアウト処理又は第2ルビレイアウト処理によりルビ付き歌詞文字列又はルビ文字列に挿入された半角又は全角の空白文字を示す。図9(a)に示す連結元のルビ付き歌詞文字列「不思議な 」は、ルビ付き歌詞文字列「不思議な」に、空白文字1個からなるルビ無し歌詞文字列が連結されてなる。また、ルビ付き歌詞文字列「不思議な 」には、第1レイアウト処理により先頭に半角の空白文字が1個挿入されたルビ文字列「 フシキ゛」が対応付けられている。ルビ付き歌詞文字列「不思議な 」は、ルビ付き文字列「 フシキ゛」よりも長い文字列長を有している。図9(a)に示す連結先のルビ付き歌詞文字列「 11万度」は、先頭に半角の空白文字1個が第1ルビレイアウト処理により挿入されたルビ文字列「シ゛ュウイチマント゛」が対応付けられている。
【0053】
図9(b)に示す如く、ルビ文字列「 フシキ゛」の終端に半角及び全角の空白文字夫々を挿入することにより、ルビ文字列及び歌詞文字列が同一の文字列長にされて、ルビ付き歌詞文字列「 11万度」にルビ文字列「シ゛ュウイチマント゛」と共に連結される。この場合、ルビ文字列「 フシキ゛」の終端に半角の空白文字のみを挿入してもよい。次に、図9(c)に示す如く、連結されたルビ付き歌詞文字列間及び連結されたルビ文字列間夫々に2個以上の半角の空白文字が存在する場合、連結されたルビ付き歌詞文字列間の空白文字が1個となるようルビ付き歌詞文字から空白文字が削除される。また、ルビ付き歌詞文字列から削除された空白文字と同数の空白文字が連結されたルビ文字列から削除される。PC1は、生成した歌詞行が所定の文字列長に達した場合、改行処理を施して改行を行う。次に、改行処理を説明する。
【0054】
改行処理は、4つの改行条件に基づいて実行される。PC1は、第1ルビレイアウト処理及び第2ルビレイアウト処理により挿入された空白文字と異なる空白文字が歌詞行に存在し、当該空白文字が改行位置よりも左側に位置している場合、当該空白文字のうち、改行位置に最も近い空白文字の直後で改行する(第1改行条件)。PC1は、第1ルビレイアウト処理及び第2ルビレイアウト処理により挿入された空白文字と異なる空白文字が歌詞行に存在しておらず、ルビ文字列の途中に改行が位置する場合、改行位置のルビ付き歌詞文字列の先端で改行する(第2改行条件)。
【0055】
PC1は、第1ルビレイアウト処理及び第2ルビレイアウト処理により挿入された空白文字と異なる空白文字が歌詞行に存在しておらず、アルファベット表記でない歌詞文字列中に改行が位置する場合、改行位置で改行する(第3改行条件)。PC1は、第1ルビレイアウト処理及び第2ルビレイアウト処理により挿入された空白文字と異なる空白文字が存在しておらず、アルファベット表記の歌詞文字列中に改行が位置する場合、当該歌詞文字列の先端で改行する(第4改行条件)。また、PC1は、第1改行条件から第4改行条件までのいずれにも該当せずに改行が出来なかった場合、その旨の警告を示すログファイルを出力するようにしてある。
【0056】
図10は、実施の形態1に係る改行処理を説明するための説明図である。図10は、第1改行条件に基づいて改行処理が行われる歌詞行の例を示している。図中黒塗りで示す領域は、半角の空白文字からなるルビ無し歌詞文字列を示す。また、図中斜線で示す領域は、第1ルビレイアウト処理又は第2ルビレイアウト処理によりルビ付き歌詞文字列又はルビ文字列に挿入された半角の空白文字を示す。歌詞行「不思議な 11万度 Come on この俺」には、第1ルビレイアウト処理及び第2ルビレイアウト処理により挿入された空白文字とは異なる空白文字が存在し、当該空白文字は、改行M1よりも左側に位置している。この場合、第1改行条件に該当し、図10(b)に示す如く改行M1の位置から最も近い空白文字として、「Come on」の終端に位置する空白文字の直後で改行される。
【0057】
図11は、実施の形態1に係る改行処理を説明するための説明図である。図11は、第2改行条件に基づいて改行処理が行われる歌詞行の例を示している。図中斜線で示す領域は、第1ルビレイアウト処理又は第2ルビレイアウト処理によりルビ付き歌詞文字列又はルビ文字列に挿入された半角の空白文字を示す。歌詞行「不思議な11万度 Come onこの俺様」には、第1ルビレイアウト処理及び第2ルビレイアウト処理により挿入された空白文字とは異なる空白文字が存在しておらず、改行M2は、ルビ文字列「オレサマ」中に位置している。この場合、第2改行条件に該当し、図11(b)に示す如く、改行M2が位置するルビ付き歌詞文字列「俺様」の先端でルビ文字列「オレサマ」と共に改行される。
【0058】
図12は、実施の形態1に係る改行処理を説明するための説明図である。図12に示す例は、第3改行条件に基づいて改行処理が行われる歌詞行である。図中斜線で示す領域は、第1ルビレイアウト処理又は第2ルビレイアウト処理によりルビ付き歌詞文字列又はルビ文字列に挿入された半角の空白文字を示す。歌詞行「不思議な11万度 Come onこの俺様」には、第1ルビレイアウト処理及び第2ルビレイアウト処理により挿入された空白文字とは異なる空白文字が存在しておらず、改行M3は、アルファベット表記でない歌詞文字列「この」中に位置している。この場合、第3改行条件に該当し、図12(b)に示す如く、改行M3が位置する文字「の」で改行される。
【0059】
図13は、実施の形態1に係る改行処理を説明するための説明図である。図13は、第4改行条件に基づいて改行処理が行われる歌詞行の例を示している。図中斜線で示す領域は、第1ルビレイアウト処理又は第2ルビレイアウト処理によりルビ付き歌詞文字列又はルビ文字列に挿入された半角の空白文字を示す。歌詞行「不思議な11万度 Come onこのore」には、第1ルビレイアウト処理及び第2ルビレイアウト処理により挿入された空白文字とは異なる空白文字が存在しておらず、改行M4は、アルファベット表記の歌詞文字列「ore」中に位置している。この場合、第4改行条件に該当し、図13(b)に示す如く、アルファベット表記の歌詞文字列「ore」の先端で改行される。
【0060】
図14は、実施の形態1に係る改行処理を説明するための説明図である。図14に示す例は、第1改行条件から第4改行条件までのいずれの条件にも該当せず、改行処理が行われない場合を示す。図中斜線で示す領域は、第1ルビレイアウト処理又は第2ルビレイアウト処理によりルビ付き歌詞文字列又はルビ文字列に挿入された半角の空白文字を示す。図14(a)に示す例では、改行M5は、歌詞文字列「 従順的心構え」及びルビ文字列「シ゛ュウシ゛ュンテキココロカ゛マエ」の途中に位置している。この場合、第1改行条件から第4改行条件までのいずれにも該当せず、改行処理が行われなかった旨の警告を示すログファイルが出力される。
【0061】
図15は、実施の形態1に係る改行処理を説明するための説明図である。図15は、第1改行条件に基づいて改行処理を行われる歌詞行の他の例を示している。図中黒塗りで示す領域は、半角の空白文字からなるルビ無し歌詞文字列を示す。また、図中斜線で示す領域は、第1ルビレイアウト処理又は第2ルビレイアウト処理によりルビ付き歌詞文字列又はルビ文字列に挿入された半角の空白文字を示す。歌詞行「不思議な 11万度 Come on この俺」には、第1ルビレイアウト処理及び第2ルビレイアウト処理により挿入された空白文字とは異なる空白文字が存在し、当該空白文字は、改行M6よりも左側に位置している。
【0062】
この場合、第1改行条件に該当し、図15(b)に示す如く、改行M6の位置から最も近く、「Come on」の直前に位置する空白文字の直後で改行される。また、改行後にルビ付き歌詞文字列「Come on」の先端とルビ文字列「カモン」の先端とを一致させるべく、ルビ文字列「カモン」の先端に2個の空白文字が挿入される。更に、ルビ付き文字列「11万度」の終端に位置する空白文字が不要な空白文字として削除される。
【0063】
図16は、実施の形態1に係る不要な空白文字の削除処理を説明するための説明図である。図16は、第3改行条件に基づいて改行処理が行われる歌詞行の他の例を示している。図中斜線で示す領域は、第1ルビレイアウト処理又は第2ルビレイアウト処理によりルビ付き歌詞文字列又はルビ文字列に挿入された半角の空白文字を示す。歌詞行「不思議な11万度の 俺」には、第1ルビレイアウト処理及び第2ルビレイアウト処理により挿入された空白文字とは異なる空白文字が存在しておらず、改行M7は、アルファベット表記でない歌詞文字列「 俺」に位置している。
【0064】
この場合、第3改行条件に該当し、図16(b)に示す如く、改行M7が位置する歌詞文字列「 俺」中の空白文字で改行される。また、改行後にルビ付き文字列「シ゛ュウイチマント゛ 」の終端の空白文字及び、ルビ付き歌詞文字列「 俺」及びルビ文字列「 オレ」夫々の先端の空白文字が不要な空白文字として削除される。
【0065】
図17は、実施の形態1に係る表示データのレコードレイアウト例を示す模式図である。図17は、図4に示す歌詞データを受付けた場合に出力される表示データの例を示している。PC1は、サーバ装置2から歌詞データに関する楽曲情報を要求して取得する。PC1は、歌詞データの各画面歌詞データを改行処理後の各歌詞行に変換した表示データを生成する。PC1は、取得した楽曲情報に基づいて楽曲データを生成して、表示データの先頭に付加し、当該表示データを出力する。図17に示す例では、カラオケ選曲番号「1234」、歌詞データのファイル名「1234.txt」、曲名「夏の海」、歌手名「田中太郎」及び作曲者名「山田次郎」を含む楽曲データが表示データの先頭に付加されている。
【0066】
また楽曲データは、作詞者名「ジョージ」、曲名の読み仮名「なつのうみ」、歌手名の読み仮名「たなかたろう」、曲の演奏時間「4’32’’」及び曲の態様を示す「ソロ男」を含んでいる。「ソロ男」は、男性歌手がソロで歌う曲であることを示している。楽曲データの後に、画面切替を示すセミコロンで区切られており、各歌詞画面データから変換された歌詞行が配列してある。図17に示す表示データの例には、図4に示した歌詞データに含まれる画面歌詞データ「”一”いち””番”ばん””大切”たいせつ”な”事”こと”」から変換された歌詞行「一番大切な事」及びルビ行「イチハ゛ンタイセツ コト」が含まれている。
【0067】
図18は、実施の形態1に係るデータ変換処理の手順を示すフローチャートである。データ変換処理は、入力データとしての歌詞データが与えられた場合にPC1のCPU10により実行される。CPU10は、後述のデータ読込処理を実行する(ステップS11)。CPU10は、文字置換処理を実行する(ステップS12)。CPU10は、第1ルビレイアウト処理を実行する(ステップS13)。CPU10は、歌詞行を生成すべくルビ文字列と共に歌詞文字列を連結し(ステップS14)、第2ルビレイアウト処理を実行する(ステップS15)。CPU10は、改行処理を実行する(ステップS16)。CPU10は、サーバ装置2から楽曲情報を取得する(ステップS17)。CPU10は、歌詞データを変換して得た表示データを出力し(ステップS18)、データ変換処理を終了する。
【0068】
図19は、実施の形態1に係るデータ読込処理の手順を示すフローチャートである。データ読込処理は、図18に示すフローチャートのステップS11で実行される。CPU10は、歌詞データから先頭の画面歌詞データを読み出す(ステップS31)。CPU10は、連続した部分歌詞文字列を抽出し(ステップS32)、連結して歌詞文字列を取得する(ステップS33)。CPU10は、連結した部分歌詞文字列に対応する部分ルビ文字列があるか否かを判定する(ステップS34)。CPU10は、部分ルビ文字列があると判定した場合(ステップS34でYES)、連結してルビ文字列を取得する(ステップS35)。CPU10は、連続していない部分歌詞文字列及び部分ルビ文字列夫々を抽出して歌詞文字列及びルビ文字列として取得する(ステップS36)。CPU10は、歌詞文字列及びルビ文字列を対応表に追加する(ステップS37)。
【0069】
CPU10は、全ての画面歌詞データを読み出したか否かを判定する(ステップS38)。CPU10は、全ての画面歌詞データを読み出していないと判定した場合(ステップS38でNO)、次の画面歌詞データを読み出して(ステップS39)、連続した部分歌詞文字列を抽出するステップS32に処理を戻す。CPU10は、部分ルビ文字列があるか否かを判定するステップS34において、部分ルビ文字列がないと判定した場合(ステップS34でNO)、連続していない部分歌詞文字列及び部分ルビ文字列夫々を抽出して歌詞文字列及びルビ文字列として取得するステップS36に処理を移す。CPU10は、全ての画面歌詞データを読み出したか否かを判定するステップS38において、全ての画面歌詞データを読み出したと判定した場合(ステップS38でYES)、データ読込処理を終了する。
【0070】
図20は、実施の形態1に係る第1ルビレイアウト処理の手順を示すフローチャートである。第1ルビレイアウト処理は、図18に示すフローチャートのステップS13で実行される。CPU10は、対応表から歌詞文字列及びルビ文字列の1組を読み出す(ステップS51)。CPU10は、歌詞文字列長W1及びルビ文字列長W2を取得する(ステップS52)。CPU10は、後述の先頭挿入処理を実行する(ステップS53)。CPU10は、対応表から全ての組を読み出したか否かを判定する(ステップS54)。CPU10は、全ての組を読み出していないと判定した場合(ステップS54でNO)、対応表から次の1組を読み出し(ステップS55)、歌詞文字列長W1及びルビ文字列長W2を取得するステップS52に処理を戻す。CPU10は、全ての組を読み出したと判定した場合(ステップS54でYES)、第1ルビレイアウト処理を終了する。
【0071】
図21は、実施の形態1に係る先頭挿入処理の手順を示すフローチャートである。先頭挿入処理は、図20に示すフローチャートのステップS53で実行される。CPU10は、終端文字が濁点又は半濁点であるか否かを判定する(ステップS61)。CPU10は、終端文字が濁点又は半濁点であると判定した場合(ステップS61でYES)、補正値Cに1を設定する(ステップS62)。CPU10は、終端文字が濁点又は半濁点でないと判定した場合(ステップS61でNO)、補正値Cに0を設定する(ステップS63)。CPU10は、判定値mを算出し(ステップS64)、挿入個数nを算出する(ステップS65)。CPU10は、判定値mが正であるか否かを判定する(ステップS66)。
【0072】
CPU10は、判定値mが正であると判定した場合(ステップS66でYES)、ルビ文字列の先頭に挿入個数nの空白文字を挿入する(ステップS67)。CPU10は、判定値mが正でないと判定した場合(ステップS66でNO)、歌詞文字列の先頭に挿入個数nの空白文字を挿入する(ステップS68)。CPU10は、全ての組を読み出したか否かを判定する(ステップS69)。CPU10は、全ての組を読み出していないと判定した場合(ステップS69でNO)、次の1組を読み出し(ステップS70)、終端文字が濁点又は半濁点であるか否かを判定するステップS61に処理を戻す。CPU10は、全ての組を読み出したと判定した場合(ステップS69でYES)、先頭挿入処理を終了する。
【0073】
実施の形態2
本実施の形態は、実施の形態1がルビ文字列又はルビ付き歌詞文字列の先頭に空白文字を挿入するのに対して、ルビ付き歌詞文字列がルビ文字列よりも長い文字列長を有する場合、ルビ文字列の文字間に空白文字を挿入するようにしてある。PC1は、ルビ付き歌詞文字列の歌詞文字列長W1がルビ文字列長W2より短い場合、実施の形態1で示した先頭挿入処理により空白文字をルビ文字列の先頭に挿入する。PC1は、ルビ付き歌詞文字列の歌詞文字列長W1がルビ文字列長W2よりも長い場合、ルビ文字列の文字間の個数に先頭及び終端に対応する2個を加算して空白文字の挿入箇所数を算出する。
【0074】
PC1は、ルビ文字列が濁点又は半濁点を含んでいる場合、当該濁点又は半濁点を除いてルビ文字列長W2を取得する。PC1は、歌詞文字列長W1及びルビ文字列長W2の差分を挿入箇所数で除算することにより、各挿入箇所に挿入すべき空白文字の挿入個数を算出する。PC1は、ルビ文字列の先頭、文字間及び終端夫々に算出した挿入個数の空白文字を挿入する。これにより、ルビ文字列がルビ付き歌詞文字列の略中央に表示されるよう配置されると共に、ルビ文字夫々が略均等な間隙を有して配置される。また、PC1は、算出した挿入個数が0である場合、挿入箇所数からルビ文字列の先頭に対応する1個を引き算して挿入個数を再算出し、ルビ文字列の文字間及び終端夫々に再算出した挿入個数の空白文字を挿入する。
【0075】
図22は、実施の形態2に係る第1ルビレイアウト処理を説明するための説明図である。図中(a)は、ルビ文字列長W2が3であるルビ文字列「カモン」が対応付けられており、歌詞文字列長W1が7であるルビ付き歌詞文字列「Come on」を示す。この場合、ルビ付き歌詞文字列は、ルビ文字列長W2よりも長い歌詞文字列長W1を有するため、空白文字を略均等に挿入する均等挿入処理が行われる。挿入箇所数として、ルビ文字列「カモン」の先頭、2つの文字間及び終端に対応する4が算出される。次に歌詞文字列長W1及びルビ文字列長W2の差分4が挿入箇所数4で除算されて挿入個数として1個が算出される。除算結果は、少数点以下を切り捨てることにより、整数として取得される。図中(b)に示す如くルビ文字列「カモン」の先頭、文字間及び終端夫々に1個の空白文字が挿入される。これにより、ルビ文字列がルビ付き歌詞文字列に対して略中央に配置されると共に、ルビ文字夫々が略均等な間隙を有して配置される。
【0076】
図23は、実施の形態2に係る第1ルビレイアウト処理を説明するための説明図である。図中(a)は、ルビ文字列「フシキ゛」が対応付けられており、歌詞文字列長W1が6であるルビ付き歌詞文字列「不思議」を示す。ルビ文字列「フシキ゛」は、濁点が除かれ、ルビ文字列長W2として3が取得される。この場合、ルビ付き歌詞文字列は、ルビ文字列長W2よりも長い歌詞文字列長W1を有するため、空白文字を略均等に挿入する処理が行われる。挿入箇所数として、ルビ文字列「フシキ゛」の先頭、3つの文字間及び終端に対応する4が算出される。次に歌詞文字列長W1及びルビ文字列長W2の差分3が挿入箇所数4で除算されて挿入個数として0個が算出される。挿入個数として0が算出されたため、挿入箇所数5個からルビ文字列の先頭に対応する1個が減算されて挿入箇所数が3個にされる。
【0077】
文字列長の差分3を挿入箇所数3で除算して挿入個数1個を再算出する。図中(b)に示す如くルビ文字列「フシキ゛」の文字間及び終端夫々に1個の空白文字が挿入される。これにより、ルビ文字列がルビ付き歌詞文字列に対して略中央に配置されると共に、ルビ文字夫々が略均等な間隙を有して配置される。図中(c)に示す如くルビ文字列「フシキ゛」の終端に挿入した空白文字が歌詞文字列の終端に対応する位置から右側に突出した不要な空白文字として削除される。次に挿入個数を数式に基づいて取得する方法を説明する。
【0078】
PC1は、歌詞文字列長W1及びルビ文字列長W2を用いて式(3)に基づいて挿入個数nを算出する。
n=Int〔|(W1−W2)/(W2+1)|〕 (3)
PC1は、算出した挿入個数が0である場合、下記(4)に基づいて挿入個数nを再算出する。
n=Int〔|(W1−W2)/W2|〕 (4)
【0079】
図24は、実施の形態2に係る第1ルビレイアウト処理の手順を示すフローチャートである。PC1は、対応表からルビ付き歌詞文字列及びルビ文字列の1組を読み出す(ステップS81)。PC1は、歌詞文字列長W1及びルビ文字列長W2を取得する(ステップS82)。PC1は、歌詞文字列長W1がルビ文字列長W2以上であるか否かを判定する(ステップS83)。PC1は、歌詞文字列長W1がルビ文字列長W2以上でないと判定した場合(ステップS83でNO)、実施の形態1の図21で示した先頭挿入処理を実行する(ステップS84)。
【0080】
PC1は、歌詞文字列長W1がルビ文字列長W2以上であると判定した場合(ステップS83でYES)、後述の均等挿入処理を実行する(ステップS85)。PC1は、対応表から全ての組を読み出したか否かを判定する(ステップS86)。PC1は、全ての組を読み出していないと判定した場合(ステップS86でNO)、対応表から次の1組を読み出して(ステップS87)、歌詞文字列長W1及びルビ文字列長W2を取得するステップS82に処理を戻す。PC1は、全ての組を読み出したと判定した場合(ステップS86でYES)、第1ルビレイアウト処理を終了する。
【0081】
図25は、実施の形態2に係る均等挿入処理の手順を示すフローチャートである。均等挿入処理は、図24で示すフローチャートのステップS85で実行される。PC1は、挿入個数nを算出する(ステップS101)。PC1は、挿入個数nが0であるか否かを判定する(ステップS102)。PC1は、挿入個数が0でないと判定した場合(ステップS102でNO)、ルビ文字列の先頭、文字間及び終端夫々に挿入個数nの空白文字を挿入する(ステップS105)。PC1は、挿入個数nが0である場合(ステップS102でYES)、挿入個数nを再算出し(ステップS103)、ルビ文字列の文字間及び終端夫々に挿入個数nの空白文字を挿入する(ステップS104)。
【0082】
PC1は、濁点又は半濁点の直後の空白文字があるか否かを判定する(ステップS106)。PC1は、濁点又は半濁点の直後の空白文字があると判定した場合(ステップS106でYES)、当該空白文字を削除して(ステップS107)、均等挿入処理を終了する。PC1は、濁点又は半濁点の直後の空白文字がないと判定した場合(ステップS106でNO)、均等挿入処理を終了する。
【0083】
本実施の形態2は以上の如き構成としてあり、その他の構成及び作用は実施の形態1と同様であるので対応する部分には同一の符号及び処理名を付してその詳細な説明を省略する。
【0084】
実施の形態3
図26は、実施の形態3に係るPCの内部構成例を示すブロック図である。本実施の形態3は、実施の形態1及び実施の形態2がROMからコンピュータプログラムを読み出して実行するのに対して、記録媒体から読み出して実行するよう構成してある。PC4のCPU10には、バス10aを介してHD( Hard Disk )41及び記録媒体読込部42が接続してある。PC4は、記録媒体読込部42に挿入された記録媒体420から本発明のコンピュータプログラム421を読み込んでHD41に記憶するようにしてある。
【0085】
CPU10は、HD41が記憶する本発明のコンピュータプログラム421に従って、PC4による変換処理を実行する構成となっている。コンピュータプログラム421は、CPU10に画面歌詞データに連続して配列されたルビ付き歌詞文字列を連結させると共に、対応するルビ文字列を連結させる(連結ステップ)。コンピュータプログラム421は、CPU10に連結したルビ付き歌詞文字列及び連結したルビ文字列からなる対応表をRAM12に記憶して対応付ける(対応付けステップ)。コンピュータプログラム421は、CPU10に、対応付けたルビ付き歌詞文字列又はルビ文字列に空白文字を挿入させて(挿入ステップ)、ルビ文字夫々のルビ付き歌詞文字列に対する配置を変更させる(変更ステップ)。コンピュータプログラム421は、CPU10に、歌詞データに含まれるルビ付き歌詞文字列及びルビ文字列夫々を、配置が変更されたルビ付き歌詞文字列及びルビ文字列に変換させる(変換ステップ)。
【0086】
本発明に係るコンピュータプログラム421は、CD( Compact Disc )−ROM又はDVD( Digital Versatile Disc )−ROM等の記録媒体420だけでなく、CPU10に接続された図示しない外部のサーバーコンピュータとの間で通信を確立し、係るコンピュータプログラム421をHD41へダウンロードしても良い。
【0087】
本実施の形態3は以上の如き構成としてあり、その他の構成及び作用は実施の形態1及び実施の形態2と同様であるので対応する部分には同一の符号及び処理名を付してその詳細な説明を省略する。
【符号の説明】
【0088】
1,4 PC
2 サーバ装置
3 カラオケ装置
N ネットワーク網
10 CPU
11 ROM
12 RAM
13 通信部
14 置換文字DB
15 表示部
16 操作受付部
41 HD
42 記録媒体読込部
420 記録媒体
421 コンピュータプログラム

【特許請求の範囲】
【請求項1】
複数の文字列のうち、一部の文字列に子文字列が対応付けられた入力データを受付けて、表示装置により前記子文字列を前記一部の文字列に沿って表示すべく表示データへ変換する変換装置において、
前記子文字列又は前記一部の文字列に空白を挿入する挿入手段と、
該挿入手段により空白を挿入して前記子文字列をなす文字夫々の前記一部の文字列に対する配置を変更する変更手段と、
前記入力データに含まれる前記一部の文字列を前記変更手段により配置を変更した一部の文字列へ変換する変換手段と
を備えることを特徴とする変換装置。
【請求項2】
前記入力データに含まれる前記一部の文字列夫々の文字列長及び該一部の文字列夫々に対応付けられた子文字列の文字列長を取得する文字列長取得手段と、
該文字列長取得手段により取得した一部の文字列の文字列長及び前記子文字列の文字列長を比較する判定手段と
を備え、
前記挿入手段は、
前記判定手段による判定の結果、前記一部の文字列の文字列長が前記子文字列の文字列長よりも長い場合に前記子文字列の先頭に空白を挿入し、前記一部の文字列の文字列長が前記子文字列の文字列長よりも短い場合に前記一部の文字列の先頭に空白を挿入するよう構成してある
ことを特徴とする請求項1に記載の変換装置。
【請求項3】
前記挿入手段は、前記判定手段による判定の結果、前記一部の文字列の文字列長が前記子文字列の文字列長よりも長い場合に前記子文字列の先頭、終端及び文字間夫々に空白を挿入するよう構成してあることを特徴とする請求項1又は請求項2に記載の変換装置。
【請求項4】
前記文字列及び子文字列は、全角文字又は半角文字からなり、
前記挿入手段は、半角文字と略同一な表示幅を有する空白を挿入するよう構成してある
ことを特徴とする請求項1から請求項3までのいずれか一項に記載の変換装置。
【請求項5】
前記変更手段により変更した一部の文字列を含む文字列及び子文字列夫々を連結する連結手段を備え、
前記変更手段は、前記挿入手段により空白を挿入して、前記連結手段により連結した子文字列夫々の前記連結手段により連結した文字列に対する配置を変更するよう構成してある
ことを特徴とする請求項1から請求項4までのいずれか一項に記載の変換装置。
【請求項6】
前記子文字列は、前記一部の文字列に付されるルビであることを特徴とする請求項1から請求項5までのいずれか一項に記載の変換装置。
【請求項7】
複数の文字列のうち、一部の文字列に子文字列が対応付けられた入力データを受付けて、表示装置により前記子文字列を前記一部の文字列に沿って表示すべく表示データへ変換する変換方法において、
前記子文字列又は前記一部の文字列に空白を挿入する挿入ステップと、
該挿入ステップにより空白を挿入して前記子文字列をなす文字夫々の前記一部の文字列夫々に対する配置を変更する変更ステップと、
前記入力データに含まれる前記一部の文字列を前記変更ステップにより配置を変更した一部の文字列に変換する変換ステップと
を備えることを特徴とする変換方法。
【請求項8】
請求項1から請求項6までのいずれか一項に記載の変換装置と、
該変換装置により変換した表示データを表示する表示装置と
を備えることを特徴とする表示システム。
【請求項9】
複数の文字列のうち、一部の文字列に子文字列が対応付けられた入力データを受付けるコンピュータに、表示装置により前記子文字列を前記一部の文字列に沿って表示すべく表示データへ変換させるコンピュータプログラムにおいて、
前記コンピュータに、
前記子文字列又は前記一部の文字列に空白を挿入する挿入ステップと、
該挿入ステップにより空白を挿入して前記子文字列をなす文字夫々の前記一部の文字列夫々に対する配置を変更する変更ステップと、
前記入力データに含まれる前記一部の文字列を前記変更ステップにより配置を変更した一部の文字列へ変換する変換ステップと
を実行させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate