JP2008243155A - 歌詞検索装置及び歌詞検索プログラム - Google Patents

歌詞検索装置及び歌詞検索プログラム Download PDF

Info

Publication number
JP2008243155A
JP2008243155A JP2007086965A JP2007086965A JP2008243155A JP 2008243155 A JP2008243155 A JP 2008243155A JP 2007086965 A JP2007086965 A JP 2007086965A JP 2007086965 A JP2007086965 A JP 2007086965A JP 2008243155 A JP2008243155 A JP 2008243155A
Authority
JP
Japan
Prior art keywords
data
lyric
lyrics
search
lyric data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007086965A
Other languages
English (en)
Inventor
Takaaki Hagino
孝明 萩野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Roland Corp
Original Assignee
Roland Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Roland Corp filed Critical Roland Corp
Priority to JP2007086965A priority Critical patent/JP2008243155A/ja
Publication of JP2008243155A publication Critical patent/JP2008243155A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】元歌詞とルビ情報とが混在して構成されている歌詞データに対しても高い検索効率で検索し得る歌詞検索装置及び歌詞検索プログラムを提供すること。
【解決手段】本発明の歌詞検索装置及び歌詞検索プログラムによれば、第1の歌詞データ記憶手段に記憶されている第1の歌詞データから、第2の歌詞データが生成され、そのように生成された第2の歌詞データが、第2の歌詞データ記憶手段に記憶される。そして、入力された検索用の文字列は、第2の歌詞データ記憶手段に記憶されている第2の歌詞データを検索対象として検索される。よって、歌詞検索の際には、第2の歌詞データ、即ち、元歌詞データに含まれる文字のうち、付加的歌詞データが付される文字が対応する付加的歌詞データに置換されたデータを検索対象として使用するので、付加的歌詞データを含む文字列を用いて検索行う場合であっても、良好な検索効率で歌詞検索をすることができる。
【選択図】図7

Description

本発明は、歌詞検索装置及び歌詞検索プログラムに関し、特に、歌詞に基づいて検索を行う場合に、歌詞データの種類とは無関係に高い検索効率で検索し得る歌詞検索装置及び歌詞検索プログラムに関するものである。
従来、キーワードとして歌詞の一部分がキーワード入力器へ入力されると、第二のデータ記憶器に曲目ごとにテキストファイルとして記憶されている歌詞データの中から、入力された検索文字列(キーワード)の検索を行い、その検索文字列を含む曲目が抽出される電子音楽データ検索視聴装置が提案されている(特許文献1)。また、歌詞の出だしなどの入力データに基づいて、カセットやコンパクトディスクなどの記録媒体から楽曲を検索し、演奏させる検索システムが提案されている(特許文献2)。
これらの特許文献(特許文献1,2)などに記載される従来の歌詞検索では、演奏データ(電子音楽データ)に対応する歌詞データの中から、検索文字列の検索を行う。
特開2001−125583号公報 特開平7−272462号公報
しかしながら、従来の歌詞検索では、ディスプレイなどの表示装置に文字によって記述される見かけの歌詞(元歌詞)のデータであれば対応可能であるが、元歌詞データと、元歌詞に含まれる一部の文字に対して付されたルビ(読み仮名)のデータとが混在して構成される歌詞データを検索対象とする場合には、検索の失敗が多く、検索効率が悪いという問題点があった。特に、文字によって記述される見かけの歌詞ではなく、ユーザが歌唱時に実際に発音する歌詞(発音上の歌詞)を検索文字列として使用した場合に、検索効率がより悪化する傾向があり、元歌詞とルビ情報との混在具合の複雑さの程度が高い場合には、検索不可能になるという問題点があった。
一般的に、見かけの歌詞より、実際に自身が歌う発音上の歌詞の方が、より強く印象に残るという理由によって、ユーザが歌詞検索を行う際には、発音上の歌詞を検索文字列として入力されるケースが多い。それにもかかわらず、上記のように、発音上の歌詞を検索文字列とする検索の成功率が非常に低いのでは、歌詞検索としての実用性が低い。
本発明は、上述した問題点を解決するためになされたものであり、元歌詞とルビ情報とが混在して構成されている歌詞データに対しても、高い検索効率で検索し得る歌詞検索装置、及び歌詞検索プログラムを提供することを目的としている。
この目的を達成するために、請求項1記載の歌詞検索装置は、文字によって記述される元歌詞データと、その元歌詞データに含まれる少なくとも1つの文字に対して付される付加的歌詞データとを、曲の進行順に、各々論理的に区別可能に混在して含む第1の歌詞データを記憶する第1の歌詞データ記憶手段と、前記元歌詞データに含まれる文字のうち、前記付加的歌詞データが付される文字を、対応する前記付加的歌詞データに置換したデータである第2の歌詞データを、前記第1の歌詞データ記憶手段に記憶されている前記第1の歌詞データから生成する第2の歌詞データ生成手段と、その第2の歌詞データ生成手段により生成された前記第2の歌詞データを記憶する第2の歌詞データ記憶手段と、検索用の文字列を入力する検索文字列入力手段と、前記第2の歌詞データ記憶手段に記憶されている前記第2の歌詞データを検索対象として、前記検索文字列入力手段から入力された文字列を検索する検索手段とを備えている。
請求項2記載の歌詞検索装置は、請求項1記載の歌詞検索装置において、前記第1の歌詞データ記憶手段に記憶されている前記第1の歌詞データから、前記付加的歌詞データを削除したデータである第3の歌詞データを生成する第3の歌詞データ生成手段と、その第3の歌詞データ生成手段により生成された第3の歌詞データを記憶する第3の歌詞データ記憶手段とを備え、前記検索手段は、前記第2の歌詞データ記憶手段に記憶されている前記第2の歌詞データ、又は前記第3の歌詞データ記憶手段に記憶されている前記第3の歌詞データの、少なくとも一方を検索対象として、前記検索文字列入力手段から入力された文字列を検索するものである。
請求項3記載の歌詞検索装置は、請求項2記載の歌詞検索装置において、前記検索手段は、前記第2の歌詞データ記憶手段に記憶されている前記第2の歌詞データ、又は前記第3の歌詞データ記憶手段に記憶されている前記第3の歌詞データの一方を検索対象として、前記検索文字列入力手段から入力された文字列を検索する第1の検索手段と、前記第2の歌詞データ記憶手段に記憶されている前記第2の歌詞データ、又は前記第3の歌詞データ記憶手段に記憶されている前記第3の歌詞データの他方を検索対象として、前記検索文字列入力手段から入力された文字列を検索する第2の検索手段と、前記第1の検索手段による検索の結果、前記検索文字列入力手段から入力された文字列に一致する文字列が見つかった場合には、前記第2の検索手段による検索の実行を禁止する検索終了手段とを備えている。
請求項4記載の歌詞検索装置は、請求項2記載の歌詞検索装置において、前記第2の歌詞データ生成手段により生成された第2の歌詞データ、又は前記第3の歌詞データ生成手段により生成された第3の歌詞データの一方を検索対象として、前記検索手段による検索を行う前に、前記第2の歌詞データ、又は前記第3の歌詞データの他方を、前記第2の歌詞データ生成手段、又は前記第3の歌詞データ生成手段によって生成することを待機する歌詞データ生成待機手段と、前記検索手段による検索の結果、前記検索文字列入力手段から入力された文字列に一致する文字列が見つかった場合に、前記歌詞データ生成待機手段により待機されている前記第2の歌詞データ生成手段又は前記第3の歌詞データ生成手段による歌詞データの生成を禁止する検索終了手段とを備えている。
請求項5記載の歌詞検索プログラムは、第1の歌詞データ記憶手段に記憶されている歌詞データであって、文字によって記述される元歌詞データと、前記元歌詞データに含まれる少なくとも1つの文字に対して付される付加的歌詞データとを、曲の進行順に、各々論理的に区別可能に混在して含む第1の歌詞データから、前記元歌詞データのうち、前記付加的歌詞データが付される文字を、対応する前記付加的歌詞データに置換した第2の歌詞データを生成し、第2の歌詞データ記憶手段に記憶させる第2の歌詞データ生成ステップと、その第2の歌詞データ生成ステップによって前記第2の歌詞データ記憶手段に記憶された第2の歌詞データを検索対象として、入力された検索用の文字列を検索させる検索ステップとを制御装置に実行させるものである。
請求項1記載の歌詞検索装置によれば、第1の歌詞データ記憶手段に記憶されている第1の歌詞データから、第2の歌詞データ生成手段によって第2の歌詞データが生成され、そのように生成された第2の歌詞データは、第2の歌詞データ記憶手段に記憶される。そして、検索文字列入力手段から入力された文字列は、検索手段により、第2の歌詞データ記憶手段に記憶されている第2の歌詞データを検索対象として検索される。
また、請求項5記載の歌詞検索プログラムによれば、第2の歌詞データ生成ステップの実行により、第1の歌詞データ記憶手段に記憶されている第1の歌詞データから、第2の歌詞データが生成され、そのように生成された第2の歌詞データが、第2の歌詞データ記憶手段に記憶される。そして、検索ステップの実行により、第2の歌詞データ記憶手段に記憶されている第2の歌詞データを検索対象として、入力された検索用の文字列が検索される。
ここで、「第1の歌詞データ」は、文字によって記述される元歌詞データと、その元歌詞データに含まれる少なくとも1つの文字に対して付される付加的歌詞データとを、曲の進行順に、各々論理的に区別可能に混在して含むデータであり、「第2の歌詞データ」は、第1の歌詞データにおける元歌詞データに含まれる文字のうち、付加的歌詞データが付される文字を、対応する付加的歌詞データに置換したデータである。
また、「付加的歌詞データ」とは、文字によって記述される見かけ上の歌詞(元歌詞)のうち、対応する文字を置き換えることのできる文字のデータであり、例えば、読み仮名として付された文字(例えば、ルビ)のデータや、読み方とは無関係に、文字を特徴づけたり説明したりする目的で付された仮名文字列や英数字文字列のデータなどが挙げられる。
よって、請求項1記載の歌詞検索装置、及び請求項5記載の歌詞検索プログラムによれば、歌詞検索の際には、第2の歌詞データ、即ち、元歌詞データに含まれる文字のうち、付加的歌詞データが付される文字が、対応する付加的歌詞データに置換されたデータを検索対象として使用するので、付加的歌詞データを含む文字列を用いて検索を行う場合であっても、良好な検索効率で歌詞検索をすることができるという効果がある。
例えば、付加的歌詞データが読み仮名(例えば、読み方として付されたルビ)であれば、第2の歌詞データは、元歌詞におけるルビの振られた文字(たとえば、漢字)を読み仮名で表したデータ、即ち、ユーザが歌唱時に実際に発音する歌詞(発音上の歌詞)のデータとなる。このように、発音上の歌詞のデータが検索対象として生成されるので、ユーザが発音上の歌詞を検索文字列として入力した場合であっても、良好な検索効率で歌詞検索をすることができる。一般的に、ユーザが歌詞検索を行う際には、見かけの歌詞に比べてより強く印象に残っている発音上の歌詞を検索文字列として入力されるケースが多いので、発音上の歌詞を検索文字列とした場合に、良好な検索効率で歌詞検索できる歌詞検索装置又は歌詞検索プログラムは非常に好適である。
請求項2記載の歌詞検索装置によれば、請求項1記載の歌詞検索装置の奏する効果に加えて、次の効果を奏する。第1の歌詞データ記憶手段に記憶されている第1の歌詞データから、第3の歌詞データ生成手段によって第3の歌詞データが生成され、そのように生成された第3の歌詞データは、第3の歌詞データ記憶手段に記憶される。
そして、検索文字列入力手段から入力された文字列は、検索手段により、第2の歌詞データ記憶手段に記憶されている第2の歌詞データ、又は第3の歌詞データ記憶手段に記憶されている第3の歌詞データの少なくとも一方を検索対象として検索される。
ここで、「第3の歌詞データ」は、第1の歌詞データから付加的歌詞データを削除したデータ、即ち、元歌詞データである。
よって、検索手段による歌詞検索の際には、第3の歌詞データ、即ち、元歌詞データを検索対象として使用することができるので、見かけ上の歌詞(元歌詞)を用いた検索にも適用可能であるという効果がある。
請求項3記載の歌詞検索装置によれば、請求項2記載の歌詞検索装置の奏する効果に加えて、次の効果を奏する。検索手段による検索では、まず、検索文字列入力手段から入力された検索用の文字列が、第1の検索手段により、第2の歌詞データ記憶手段に記憶されている第2の歌詞データ、又は第3の歌詞データ記憶手段に記憶されている第3の歌詞データの一方を検索対象として検索される。
ここで、第1の検索手段による検索の結果、入力された検索用の文字列に一致する文字列が見つからなかった場合には、該文字列が、第2の検索手段により、第2の歌詞データ記憶手段に記憶されている第2の歌詞データ、又は第3の歌詞データ記憶手段に記憶されている第3の歌詞データの他方を検索対象として検索される。
その一方で、第1の検索手段による検索の結果、入力された検索用の文字列に一致する文字列が見つかった場合には、検索終了手段により、第2の検索手段による検索の実行が禁止される、即ち、第2の検索手段による検索を行わない。
よって、第2の歌詞データ記憶手段に記憶されている第2の歌詞データ、又は第3の歌詞データ記憶手段に記憶されている第3の歌詞データのいずれか一方から、入力された検索用の文字列が先に見つかった場合には、第2の歌詞データ又は第3の歌詞データのうち、未だ検索されていない方の歌詞データに対する検索を行うことなく検索が終了するので、無駄な検索に時間を費やすことを防止することができ、速い検索速度で結果を得ることができるという効果がある。
請求項4記載の歌詞検索装置によれば、請求項2記載の歌詞検索装置の奏する効果に加えて、次の効果を奏する。第2の歌詞データ生成手段により生成された第2の歌詞データ又は第3の歌詞データ生成手段により生成された第3の歌詞データの一方を検索対象として検索手段による検索を行う前に、第2の歌詞データ又は第3の歌詞データの他方は、歌詞データ生成待機手段によって、第2の歌詞データ生成手段又は第3の歌詞データ生成手段による歌詞データの生成が待機される。
ここで、検索手段による検索の結果、検索文字列入力手段から入力された検索用の文字列に一致する文字列が見つかった場合には、検索終了手段によって、歌詞データ生成待機手段により待機されている第2の歌詞データ生成手段又は第3の歌詞データ生成手段による歌詞データの生成が禁止される、即ち、歌詞データ生成待機手段により待機されている第2の歌詞データ生成手段又は第3の歌詞データ生成手段によって、歌詞データ(第2の歌詞データ又は第3の歌詞データ)が生成されることはない。その結果、他方の歌詞データに対する検索を行うことなく、検索が終了する。
よって、第2の歌詞データ記憶手段に記憶されている第2の歌詞データ、又は第3の歌詞データ記憶手段に記憶されている第3の歌詞データのいずれか一方から、入力された検索用の文字列が先に見つかった場合には、第2の歌詞データ又は第3の歌詞データのうち、未だ検索されていない方の歌詞データは、生成されることなく検索が終了するので、無駄なデータ生成、及び検索に時間を費やすことを防止することができ、速い検索速度で結果を得ることができるという効果がある。
以下、本発明の好ましい実施例について、添付図面を参照して説明する。
図1は、本発明における一実施形態の歌詞検索装置50を搭載する、自動演奏装置1の構成を示したブロック図である。
自動演奏装置1は、演奏データ(MIDI(Musical Instrument Digital Interface)メッセージ)に基づいて自動演奏を行うと共に、その自動演奏に伴う歌詞表示を歌詞データに基づいて表示する装置である。かかる自動演奏装置1は、図1に示すように、CPU10と、ROM11と、RAM12と、ハードディスク(HDD)13と、ユーザの操作により文字などを入力するキーボード14と、各種情報を表示する液晶表示装置(LCD)15と、音源16とを有しており、これらはバスライン17により相互に接続して構成される。また、自動演奏装置1において、音源16の出力は、D/A変換器21に接続され、D/A変換器21の出力は、アンプ22に接続され、アンプ22は、スピーカ23に接続されている。
また、自動演奏装置1は、ユーザがキーボード14から検索文字列(検索用の文字列)として入力した歌詞の一部分を含む曲をHDD13から検索する装置である歌詞検索装置50を搭載している、この歌詞検索装置50は、CPU10と、ROM11と、RAM12と、HDD13と、キーボード14と、LCD15と、これらを相互に接続するバスライン17とから構成される。
CPU10は、自動演奏装置1(歌詞検索装置50)の全体を制御する演算処理装置であり、ROM11には、このCPU10により実行される各種の制御プログラムや、その実行の際に参照される固定値データが記憶される。
RAM12は、ROM11等に記憶されている制御プログラムの実行に当たって、各種のデータ等を一時的に記憶するためのメモリであり、書き換え可能に構成され、歌詞イベントバッファ12aと、ORLバッファ12bと、RBLバッファ12cと、ルビフラグ12dと、消去文字数カウンタ12eとを有している。
歌詞イベントバッファ12aは、後述する歌詞イベント抽出処理(図5参照)において、HDD13に記憶されているN曲分のスタンダードMIDIファイル(SMF)の中の1ファイル、即ち、1曲分のSMFに含まれている歌詞イベントのイベントデータ(以下、歌詞イベントのイベントデータを、単に「歌詞データ」と称する)を記憶するバッファメモリである。
ORLバッファ12bは、後述する元歌詞データ生成処理(図6参照)において、歌詞イベントバッファ12aに記憶されている1曲分の歌詞データから生成された1曲分の元歌詞、即ち、文字によって記述される見かけ上の歌詞のデータ(元歌詞データ)を記憶するバッファメモリである。
RBLバッファ12cは、後述するルビ歌詞データ生成処理(図7参照)において、歌詞イベントバッファ12aに記憶されている1曲分の歌詞データから生成された1曲分のルビ歌詞のデータ(ルビ歌詞データ)を記憶するバッファメモリである。
なお、本実施形態において「ルビ」は、元歌詞に含まれる文字(例えば、送り仮名を含む単語の漢字部分や、複数の漢字からなる熟語や、英単語)の読みを示す仮名(即ち、読み仮名)を意味する。また、「ルビ歌詞」は、ユーザが歌唱時に実際に発音する歌詞(発音上の歌詞)、即ち、元歌詞におけるルビが付されている文字を、対応するルビに置換した歌詞を意味する。
ルビフラグ12dは、後述する元歌詞データ生成処理(図6参照)、及びルビ歌詞データ生成処理(図7参照)において、歌詞イベントバッファ12aに記憶されている歌詞データを1文字(本実施形態では、2バイト文字)ずつ読み出す際に、読み出した各文字がルビのデータ(ルビデータ)であるか否かを示すフラグである。具体的には、ルビフラグ12dが「1」である場合に読み出されたデータは、ルビデータであることを示し、一方で、ルビフラグ12dが「0」である場合に読み出されたデータは、ルビデータではない、即ち、元歌詞データであることを示す。
消去文字数カウンタ12eは、後述するルビ歌詞データ生成処理(図7参照)において、RBLバッファ12cに記憶させた元歌詞データの文字の数(データ量)をカウントするものである。
HDD13は、書き換え可能な不揮発性の大容量メモリであり、N曲分のSMF(第1ファイル13a1〜第Nファイル13aN)を記憶している。なお、HDD13へ記憶させるSMFは、例えば、対応するメディアドライブ(図示せず)に装着された記録媒体(例えば、DVDやCDなど)からのコピーや、通信インターフェイス(図示せず)を介して、外部からダウンロードなどの方法によって取得することができる。
音源16は、SMFに含まれるMIDIイベントのイベントデータ(MIDIデータ)に応じたデジタルの楽音信号を出力するものであり、D/A変換器21により、アナログの楽音信号に変換される。D/A変換器21によって変換されたアナログ楽音信号は、アンプ22に供給され、スピーカ23から楽音が放音される。
次に、図2(a)を参照して、SMFのデータ構成について説明する。図2(a)は、SMFのデータ構成を示す模式図である。なお、図2(a)では、HDD13に記憶されているSMFの1つである、第1ファイル13a1を代表として例示するが、他のSMF(第2ファイル13a2〜第Nファイル13aN)も同様である。
図2(a)に示すように、自動演奏装置1において使用されるSMF(第1ファイル13a1)は、SMFに対して定義されているフォーマット1の構造を有し、1つの曲の先頭に対して設けられる1つのヘッダチャンク51と、その1つのヘッダチャンクに続く2つのトラックチャンク52,53とから構成されている。
ヘッダチャンク51は、そのファイルの基本的な情報を格納するブロックである。このヘッダチャンク51は、チャンクタイプを表す4バイトのデータ(「MThd」を表すアスキーコード)を格納する先頭領域と、この先頭領域に続いてデータサイズ(本実施形態では「0006h」)を格納する領域と、この領域に続いてデータ本体を格納するデータ領域(本実施形態では、6バイトのデータ領域)とから構成されている。なお、ヘッダチャンク51を構成する各領域の図示は省略する。
ヘッダチャンク51に格納されるデータ本体は、SMFのフォーマットタイプ(本実施形態では「フォーマット1」)を指定する2バイトのデータと、1ファイル中に含まれるトラックチャンクの数(本実施形態では「2」)を指定する2バイトのデータと、トラックチャンク52,53で使用されるデルタタイム55(図2(b)参照)の意味(時間単位)を指定する2バイトのデータとから構成されている。
トラックチャンク52,53は、実際の演奏情報を格納するブロックである。なお、本実施形態では、ヘッダチャンク51においてトラックチャンクの数を「2」と指定しているので、1つのSMF内部に2つのトラックチャンク52,53が設けられており、これら2つのトラックチャンク52,53に1曲分の演奏情報が格納されている。
図2(a)に示すように、これらのトラックチャンク52,53は、いずれも、チャンクタイプを表す4バイトのデータ(「MTrk」を表すアスキーコード)を格納する先頭領域52a,53aと、この先頭領域52a,53aに続いてデータサイズを格納する4バイトの領域52b,53bと、この領域52b,53bに続いてデータ本体を格納するデータ領域52c,53cとから構成されている。
ここで、図2(b)を参照して、トラックチャンク52,53の領域52c,53cに格納されるデータ本体の内容について説明する。図2(b)は、(a)に示したSMF(第1ファイル13a1)における、トラックチャンク(1)52の領域52cに格納されるデータ本体のデータ構成を示す模式図である。なお、図2(b)では、トラックチャンク(1)52の領域52cに格納されるデータ本体を例示するが、トラックチャンクに含まれる他のデータ本体についても同様である。
図2(b)に示すように、トラックチャンク(1)52の領域52cに格納されるデータ本体は、デルタタイム55とイベント56とを一対とするデータのシーケンスにより形成されている。
SMFの規格では、イベント56として格納されるイベントとして、MIDIイベントと、システムエクスクルーシブイベントと、メタイベントとの3種類が定義されている。ここで、MIDIイベントは、MIDIチャネルメッセージ(MIDIメッセージの1つ)を表すイベントであり、演奏データとしての実体をなすイベントである。また、システムエクスクルーシブイベントは、システムエクスクルーシブメッセージ(MIDIメッセージの1つ)を表すイベントである。
また、メタイベントは、演奏データ(MIDIメッセージ)以外のデータを表すイベントであり、例えば、演奏データによって演奏される自動演奏に伴う、歌詞のデータ(歌詞データ)を格納する歌詞イベントや、トラックチャンク(1)52の終了位置を示すイベントであるエンド・オブ・トラックなどが含まれる。
デルタタイム55は、SMF内における各イベントの相対的な時間差を、ヘッダチャンク51において指定された時間単位で表すデータである。なお、図2(b)では、デルタタイムの値にかかわらず、デルタタイム55を「Δt」で表している。イベント56がデルタタイム55と一対に構成されることにより、領域52c内の各イベント56は、時系列(曲の進行順)に記述されることとなる。
次に、図3(a)を参照して、メタイベントのデータ構成について説明する。図3(a)は、メタイベントのデータ構成を示す模式図である。図3(a)に示すように、メタイベントは、メタイベントを表すステータスデータ「FFh」を格納する領域61と、イベントの種類を表すデータを格納する領域62と、イベントのサイズを格納する領域63と、イベントのデータ(イベントデータ)を格納する領域64とから構成されている。
なお、図3(a)では、領域62に「05h」が格納されている状態を例示しているが、このように、領域62に「05h」が格納されているメタイベントは歌詞イベントであり、この場合には、領域64には、領域63に格納されたイベントサイズの歌詞データが格納されている。
ここで、図3(b)及び図3(c)を参照して、SMFにおけるメタイベントの1つである歌詞イベントについて説明する。図3(b)は、領域52cに格納される歌詞イベントを示す模式図である。なお、図3(b)では、区間Aに含まれるイベント56のうち、8つが歌詞イベントK1〜K8である場合を例示している。また、図3(c)は、図3(b)における歌詞イベントK1,K2のイベントデータ(領域64)を示す模式図である。
上述のように、歌詞イベントにおける領域64には、イベントデータとして歌詞データが格納されており、各歌詞イベントには、デルタタイム55で示されるタイミングに対応する歌詞データが格納されている。
この歌詞データは、2バイトの文字コード(SJIS漢字コード)を用いて歌詞を表したデータであり、後述するように、文字によって記述される、見かけ上の歌詞(元歌詞)のデータである元歌詞データOR(図3(c)参照)と、元歌詞に含まれる文字の読み仮名として付されるルビのデータであるルビデータRB(図3(c)参照)とが混在したデータである。なお、理解を容易にする目的で、図3(b)及び図3(c)において、領域64に格納されている歌詞データを、文字コードに対応する文字として図示している。
元歌詞に含まれる文字に対してルビを付す場合には、ルビを付す対象とする元歌詞データORを構成する全ての文字(例えば、「ハマ」というルビを付す対象である、「横浜」という元歌詞データOR)を、同一の歌詞イベントにおける領域64内に記述することを条件とし、ルビを付す対象である元歌詞データOR’(ルビ対象データOR’)の直後に、付すべきルビデータRBを、ルビ開始マークRSである「[」とルビ終了マークREである「]」とで囲むことによって記述する。
このように、SMFデータにおける歌詞データは、ルビデータRBを、ルビ開始マークRSとルビ終了マークREとで囲むことにより、元歌詞データORとルビデータRBとを、各々論理的に区別することができる。
例えば、図3(c)に示すように、歌詞イベントK1において、「横浜」を表す元歌詞データORと、その元歌詞データORの直後に記述されるルビ開始マークRSと、そのルビ開始マークRSの後に、「ハ」を表すルビデータRBとを含む歌詞データが記述され、歌詞イベントK1の次の歌詞イベントである歌詞イベントK2において、「マ」を表すルビデータRBと、そのルビデータRBの後に記述されるルビ終了マークREとを含む歌詞データが記述されている場合、元歌詞に含まれる「横浜」という2文字の漢字に対して「ハマ」というルビが付される。
図3(b)では、元歌詞である「横浜」に対して付される2文字のルビである「ハマ」が、別々の歌詞イベントの歌詞データとして記述されているので、自動演奏時に歌詞データに基づいて元歌詞及びルビをLCD15に表示する場合には、「ハ」と「マ」とが異なるタイミングでルビが表示される。なお、ルビを構成する各文字は、必ずしも別々の歌詞イベントに記述する必要はなく、複数のルビを同じ歌詞イベントに記述し、同じタイミングで表示させるように構成してもよい。
このように、SMFの歌詞データは、元歌詞データとルビデータとが、曲の進行順に混在する複雑な構成であるために、従来の歌詞検索装置を用いて歌詞検索を行うと、歌詞データから、元歌詞のデータ(元歌詞データ)とルビ歌詞のデータ(ルビ歌詞データ)とを区別して検索することが難しく、検索の失敗が多く検索効率が悪かった。特に、ルビ歌詞で検索を行った場合に検索効率が悪化し、混在する元歌詞データ及びルビデータの複雑さの程度の大きさによっては、検索不可能になることもあった。
これに対し、自動演奏装置1に含まれる歌詞検索装置50では、後述する図4〜図7に示す処理の実行により、元歌詞データとルビデータとが曲の進行順に混在する複雑な構成の歌詞データを検索対象とする場合であっても、高い検索効率で歌詞検索を行うことができる。
なお、説明の簡略化のため及び発明の理解を容易にするために、以下では、歌詞データ(元歌詞データ及びルビ歌詞データ)を構成する1文字を、全て2バイト文字であるものとして説明するが、1文字として、漢字やカタカナやひらがななどの2バイト文字と、英数半角文字や記号などの1バイト文字とが混在する場合であっても同様である。
ここで、図4〜図8を参照し、自動演奏装置1に含まれる歌詞検索装置50によって歌詞検索を行う際に実行される処理について説明する。
図4は、歌詞検索装置50で歌詞検索を行う場合のメイン処理を示すフローチャートである。また、図5は、図4のメイン処理の中で実行される歌詞イベント抽出処理(S5)を示すフローチャートであり、図6は、メイン処理の中で実行される元歌詞データ生成処理(S6)を示すフローチャートであり、図7は、メイン処理の中で実行されるルビ歌詞データ生成処理(S9)を示すフローチャートである。なお、図4〜図7に示す各フローチャートの実行プログラムは、ROM11に格納されている。
また、図8(a)は、図5の歌詞イベント抽出処理(S5)の実行結果を示す模式図であり、図8(b)は、図6の元歌詞データ生成処理(S6)の実行結果を示す模式図であり、図8(c)は、図7のルビ歌詞データ生成処理(S9)の実行結果を示す模式図である。
図4のメイン処理は、所定の操作により、歌詞検索装置50による歌詞検索の実行が指示されると起動する処理であり、まず、歌詞イベントバッファ12aや、ORLバッファ12bや、RBLバッファ12cや、ルビフラグ12dや、消去文字数カウンタ12eなどの初期設定を実行する(S1)。
初期設定(S1)の実行後、ユーザ操作により、キーボード14から検索文字列が入力されたかを確認し(S2)、検索文字列の入力がない場合には(S2:No)、S2へ戻り、再度確認を行う。
一方で、S2の処理により確認した結果、キーボード14からの検索文字列の入力があった場合には(S2:Yes)、変数nの値を「1」に設定し(S3)、HDD13に記憶されている第1ファイル13a1〜第Nファイル13aNのうち、第n番目のファイルである第nファイル13an(nは、1〜Nのうち現在設定されている値)を、RAM12内の所定のエリアにロードする(S4)。
次いで、S4の処理によってRAM12内の所定のエリアにロードされた第nファイル13an(n=1〜N)の中から歌詞イベントを抽出し、そのイベントデータ、即ち、歌詞データを歌詞イベントバッファ12aに記憶する歌詞イベント抽出処理を実行する(S5)。なお、この歌詞イベント抽出処理(S5)で実行される具体的処理については、図5を参照しつつ後述する。
歌詞イベント抽出処理(S5)の実行後、歌詞イベントバッファ12aに記憶されている歌詞データに含まれる元歌詞データを抽出し、ORLバッファ12bに記憶する元歌詞データ生成処理を実行する(S6)。なお、この元歌詞データ生成処理(S6)で実行される具体的処理については、図6を参照しつつ後述する。
元歌詞データ生成処理(S6)の実行後、ORLバッファ12bに記憶されている元歌詞データの中から、S2の処理により入力が確認された検索文字列を検索し(S7)、検索文字列が見つかったかを確認する(S8)。
S8の処理により確認した結果、検索文字列が見つからなければ(S8:No)、歌詞イベントバッファ12aに記憶されている歌詞データからルビ歌詞データを抽出し、RBLバッファ12cに記憶するルビ歌詞データ生成処理を実行する(S9)。なお、このルビ歌詞データ生成処理(S9)で実行される具体的処理については、図7を参照しつつ後述する。
ルビ歌詞データ生成処理(S9)の実行後、RBLバッファ12cに記憶されているルビ歌詞データの中から、S2の処理により入力が確認された検索文字列を検索し(S10)、検索文字列が見つかったかを確認する(S11)。
S11の処理により確認した結果、RBLバッファ12cに記憶されているルビ歌詞データの中から検索文字列が見つかった場合には(S11:Yes)、現在検索中のSMF、即ち、S4の処理によってRAM12内の所定のエリアにロードされた第nファイル13an(nは、1〜Nのうち現在設定されている値)のファイル名を、LCD15に表示又は追加表示する対象ファイル表示処理を実行し(S14)、S12の処理へ移行する。
一方で、S11の処理により確認した結果、検索文字列が見つからなければ(S11:No)、現在検索中のSMFに含まれる歌詞データには、検索文字列に該当する歌詞が存在しなかったとし、この場合もまたS12の処理へ移行する。
また、S8の処理により確認した結果、ORLバッファ12bに記憶されている元歌詞データの中から検索文字列が見つかった場合には(S8:Yes)、対象ファイル表示処理を実行し(S14)、S12の処理へ移行する。つまり、ORLバッファ12bに記憶されている元歌詞データの中から検索文字列が見つかり、S8におけるYesの分岐処理が実行された場合には、ルビ歌詞データ生成処理(S9)からS11までの処理がスキップされ、その結果、ルビ歌詞データ生成処理(S9)によるルビ歌詞データの生成又はルビ歌詞データを検索対象とする検索のいずれも行われない。
なお、「特許請求の範囲」における、請求項5の「歌詞データの生成を禁止する」は、「歌詞データを生成する処理を実行しない(処理をスキップする)ことにより、歌詞データを生成しない」ことを意味し、例えば、本実施形態では、S8におけるYesの分岐処理の実行によってルビ歌詞データ生成処理(S9)がスキップされ、その結果として、ルビ歌詞データが生成されないことに相当する。同様に、「特許請求の範囲」における、請求項4の「検索の実行を禁止する」は、「検索処理を実行しない(処理をスキップする)ことによって検索を行わない」ことを意味し、例えば、本実施形態では、S8におけるYesの分岐処理の実行によってS10の処理がスキップされ、その結果として、ルビ歌詞データを検索対象とする検索が実行されないことに相当する。
S12では、現在検索中のSMFがHDD13に記憶されている最後のSMF(第Nファイル13aN)であるか、即ち、変数nが「N」であるかを確認する(S12)。ここで、S12の処理により確認した結果、変数nがNであれば(S12:Yes)、検索すべきSMFはHDD13内に残っていないので、このメイン処理を終了する。
一方で、S12の処理により確認した結果、変数nがNでなければ(S12:No)、検索すべきSMFがHDD13内にまだ残っているので、変数nに1を加算し(S13)、S4の処理へ移行し、次のSMFに対し、S4〜S11,S14の処理を実行する。
よって、歌詞検索装置50で実行される上述したメイン処理(図4)によれば、ORLバッファ12bに記憶されている元歌詞データと、RBLバッファ12cに記憶されているルビ歌詞データとの両方を検索対象として、歌詞検索を行うことができるので、元歌詞に含まれる文字列を検索文字列とするか、あるいは、ルビ歌詞に含まれる文字列を検索文字列とするかといったようなユーザによる個人差が生じる場合であっても、良好な検索効率で歌詞検索できる。
特に、従来の歌詞検索では、ルビ歌詞に含まれる文字列を検索文字列とした場合に、検索効率がより悪化する傾向が顕著であったが、元歌詞データとルビデータとを混在して含む歌詞データから、ルビ歌詞データを生成(再現)したことにより、ルビ歌詞に含まれる文字列を検索文字列とした場合の検索効率を向上させることができ、歌詞検索をする上で有用となる。
また、検索文字列が、ORLバッファ12bに記憶されている元歌詞データの中から先に見つかった場合には、ルビ歌詞データについて検索を行わないので、無駄な検索に時間を費やすことを防止することができ、速い検索速度で結果を得ることができる。
ここで、図5を参照して、上述した歌詞イベント抽出処理(S5)について説明する。図5に示すように、歌詞イベント抽出処理(S5)では、まず、歌詞イベントバッファ12aをクリアすると共に、トラック番号を「1」に設定する(S501)。なお、「トラック番号」は、個々のトラックチャンクに付された番号である。例えば、図2(a)に示した第1ファイル13a1には、2つのトラックチャンク52,53があるので、トラック番号「1」は、トラックチャンク(1)52を示すトラック番号であり、トラック番号「2」は、トラックチャンク(2)53を示すトラック番号である。
S501の処理後、1つのイベントを読み出し(S502)、読み出したイベントが歌詞イベントであるかを確認する(S503)。
S503の処理により確認した結果、歌詞イベントであれば(S503:Yes)、歌詞イベントにおける領域64(図3参照)に格納されている歌詞データの先頭に、歌詞イベント開始マークKS(図8(a)参照)として文字「Le」を付したものを歌詞イベントバッファ12aに記憶し(S504)、S505の処理へ移行する。
一方で、S503の処理により確認した結果、歌詞イベントでない、即ち、歌詞イベント以外のイベントであれば(S503:No)、S504の処理を実行することなく、S505の処理へ移行する。
S505では、現在処理中のトラックチャンク、即ち、現在設定されているトラック番号のトラックチャンクにおける最後のイベント(エンド・オブ・トラック)であるかを確認する(S505)。S505の処理により確認した結果、処理中のトラックチャンクにおける最後のイベントでなければ(S505:No)、S502の処理へ移行し、次のイベントに対し、S502〜S505の処理を実行する。
また、S505の処理により確認した結果、処理中のトラックチャンクにおける最後のイベントである場合には(S505:Yes)、未処理のトラックチャンクがあるかを確認し(S506)、未処理のトラックチャンクがなければ(S506:No)、この歌詞イベント抽出処理(S5)を終了する。
一方で、S506の処理により確認した結果、未処理のトラックチャンクがあれば(S506:Yes)、トラック番号に1加算し(S507)、S502の処理へ移行し、S502〜S505の処理を実行し、次のトラックチャンクに対し、そのトラックチャンクに含まれる歌詞イベントの歌詞データを、歌詞イベントバッファ12aに記憶する。
この歌詞イベント抽出処理(S5)によれば、歌詞イベントバッファ12aには、1つのSMFに含まれる全ての歌詞イベントのイベントデータ、即ち、1曲分の歌詞データが、時系列(曲の進行順)に記憶されると共に、歌詞イベント開始マークKSの介在によって歌詞イベントの単位を区別可能に記憶されることになる。
例えば、図3(b)における区間Aに含まれる歌詞イベントK1〜K8のイベントデータ(歌詞データ)は、図8(a)に示すように歌詞イベントバッファ12aに記憶される。なお、理解を容易にする目的で、図8(a)では、歌詞イベントバッファ12aに記憶されているデータを、2バイトの文字コードに対応する文字(2バイトの文字)として図示している。
図8(a)に示すように、各歌詞イベントの歌詞データは、歌詞イベント抽出処理(S5)の結果として先頭に付された歌詞イベント開始マーク(Le)KSにより、それぞれ論理的に区別することができる状態で、歌詞イベントバッファ12aに記憶されている。
なお、上述したように、元歌詞に含まれる文字に対してルビを付す場合には、ルビを付す対象とする元歌詞データORを構成する全ての文字を、同一の歌詞イベントにおける領域64内に記述することを条件とする。従って、1つの歌詞イベントの歌詞データにルビ開始マークRSが含まれている場合には、同一の歌詞イベント内の歌詞データにおいて、ルビ開始マークRSの前方に隣接する文字を少なくとも含み、1又は複数の文字から構成される元歌詞データORが、ルビ対象データOR’に相当する。
よって、歌詞イベント開始マークKSの付加により、各歌詞イベントの歌詞データが論理的に区別できるようになった結果として、1つの歌詞イベントに含まれるルビデータRBとルビ対象データOR’とを論理的に区別することが可能となる。
次に、図6を参照して、上述した元歌詞データ生成処理(S6)について説明する。図6に示すように、元歌詞データ生成処理(S6)では、まず、ORLバッファ12bをクリアすると共に、ルビフラグ12dを「0」に設定する(S601)。
S601の処理後、歌詞イベントバッファ12aからの文字の読み出しが終了したか、即ち、後述するS603〜S610の処理が、歌詞イベントバッファ12aに記憶されている全ての文字に対して実行済みであるかを確認し(S602)、歌詞イベントバッファ12aからの文字の読み出しが終了していれば(S602:Yes)、この元歌詞データ生成処理(S6)を終了する。
一方で、S602の処理により確認した結果、歌詞イベントバッファ12aからの文字の読み出しが未だ終了していなければ(S602:No)、歌詞イベントバッファ12aから1文字を読み出す(S603)。
ここで、S602の処理、即ち、歌詞イベントバッファ12aからの文字の読み出しが終了したか否かの判定は、図示されないカウンタを用いて行うことができる。具体的には、上述した歌詞イベント抽出処理(図5)において、歌詞イベントを歌詞イベントバッファ12aに記憶する毎に、記憶したデータサイズ(文字数)をカウンタに加算しておき、その後、S603の処理により、歌詞イベントバッファ12aから文字を読み出す毎に、読み出したデータサイズ(文字数)を減算する。そして、該カウンタの値がゼロとなった場合に、歌詞イベントバッファ12aからの文字の読み出しが終了したと判定する。
S603の処理後、読み出した文字が歌詞イベント開始マークKSであるかを確認する(S604)。S604の処理により確認した結果、読み出した文字が歌詞イベント開始マークKSであれば(S604:Yes)、何も行うことなくS602の処理へ移行し、続いて実行されるS603の処理により次の1文字を読み出す。即ち、S602の処理によって読み出された文字が歌詞イベント開始マークKSである場合には、この歌詞イベント開始マークKSを読み飛ばし、次の1文字を読み出す。
一方で、S604の処理により確認した結果、歌詞イベント開始マークKSでなければ(S604:No)、ルビフラグ12dが「1」であるかを確認する(S605)。ここで、ルビフラグ12dが「1」でなければ(S605:No)、読み出した文字がルビ開始マークRSであるかを確認する(S606)。
S606の処理により確認した結果、読み出した文字がルビ開始マークRSでなければ(S606:No)、読み出した文字は、元歌詞データORの文字であるので、読み出した文字をORLバッファ12bに記憶し(S607)、S602の処理へ移行し、歌詞イベントバッファ12aからの文字の読み出しが未だ終了していなければ(S602:No)、次の1文字を読み出す(S603)。
一方、S606の処理により確認した結果、読み出した文字がルビ開始マークRSであれば(S606:Yes)、ルビフラグ12dを「1」に設定し(S608)、S602の処理へ移行し、歌詞イベントバッファ12aからの文字の読み出しが未だ終了していなければ(S602:No)、次の1文字を読み出す(S603)。
よって、S608の処理の結果、読み出された文字がルビ開始マークRSである場合には、そのルビ開始マークRSを読み飛ばすと共に、ルビフラグ12dを「1」に設定したことによって、次に読み出される文字を、ルビデータRBの文字として識別させることができる。
また、S605の処理により確認した結果、ルビフラグ12dが「1」である場合には(S605:Yes)、読み出した文字がルビ終了マークREであるかを確認し(S609)、ルビ終了マークREでなければ(S609:No)、読み出した文字は、ルビデータRBの文字であるので、何も行うことなくS602の処理へ移行し、歌詞イベントバッファ12aからの文字の読み出しが未だ終了していなければ(S602:No)、次の1文字を読み出す(S603)。
一方、S609の処理により確認した結果、読み出した文字がルビ終了マークREであれば(S609:Yes)、ルビフラグ12dを「0」に設定し(S610)、S602の処理へ移行し、歌詞イベントバッファ12aからの文字の読み出しが未だ終了していなければ(S602:No)、次の1文字を読み出す(S603)。
よって、S610の処理の結果、読み出された文字がルビ終了マークREである場合には、そのルビ開始マークREを読み飛ばすと共に、ルビフラグ12dを「0」に設定したことによって、次に読み出される文字を、元歌詞データORの文字として識別させることができる。
この元歌詞データ生成処理(S6)によれば、1つのSMFから時系列(曲の進行順)に抽出された元歌詞データORがORLバッファ12bに記憶される。従って、1つのSMFから元歌詞データORを時系列に並べたデータ、即ち、元歌詞(文字によって記述される見かけ上の歌詞)を再現するデータがORLバッファ12b内に生成されることとなる。
例えば、元歌詞データ生成処理(S6)の実行後、図3(b)における区間Aに含まれる歌詞イベントK1〜K8のイベントデータ(歌詞データ)は、元歌詞データORのみが抽出されて、図8(b)に示すようにORLバッファ12bに記憶され、元歌詞である「横浜の人待つ」を再現する。なお、理解を容易にする目的で、図8(b)では、ORLバッファ12bに記憶されているデータを、2バイトの文字コードに対応する文字(2バイトの文字)として図示している。
次に、図7を参照して、上述したルビ歌詞データ生成処理(S9)について説明する。図7に示すように、ルビ歌詞データ生成処理(S9)では、まず、RBLバッファ12cをクリアすると共に、ルビフラグ12dを「0」に設定し、消去文字数カウンタ12eを「0」に設定する(S701)。
S701の処理後、歌詞イベントバッファ12aからの文字の読み出しが終了したか否かを、S602(図6参照)と同様の処理によって確認する(S702)。S702の処理により確認した結果、歌詞イベントバッファ12aからの文字の読み出しが終了していれば(S702:Yes)、このルビ歌詞データ生成処理(S9)を終了する。
一方で、S702の処理により確認した結果、歌詞イベントバッファ12aからの文字の読み出しが未だ終了していなければ(S702:No)、歌詞イベントバッファ12aから1文字を読み出す(S703)。
S703の処理後、読み出した文字が歌詞イベント開始マークKSであるかを確認する(S704)。S704の処理により確認した結果、読み出した文字が歌詞イベント開始マークKSであれば(S704:Yes)、ルビフラグ12dが「1」であるかを確認する(S705)。ここで、ルビフラグ12dが「1」であれば(S705:Yes)、1の歌詞イベントのイベントデータ(歌詞データ)の最初がルビデータRBから始まっているので、何も行うことなくS702の処理へ移行し、続いて実行されるS603の処理により、次の1文字を読み出す。即ち、読み出された文字が、歌詞データの最初がルビデータRBである歌詞イベントに対して付された、歌詞イベント開始マークKSである場合には、この歌詞イベント開始マークKSを読み飛ばし、次の1文字を読み出す。
一方で、S705の処理により確認した結果、ルビフラグ12dが「0」である場合には(S705:No)、1の歌詞イベントのイベントデータ(歌詞データ)の最初が元歌詞データORから始まっているので、消去文字数カウンタ12eを「0」に設定し(S706)、S702の処理へ移行し、歌詞イベントバッファ12aからの文字の読み出しが未だ終了していなければ(S702:No)、次の1文字を読み出す(S703)。
よって、S706の処理の結果、読み出された文字が、歌詞データの最初が元歌詞データORである歌詞イベントに対して付された、歌詞イベント開始マークKSである場合には、その歌詞イベント開始マークKSを読み飛ばすと共に、消去文字数カウンタ12eを「0」に設定したことによって、次に読み出される予定の文字(元歌詞データOR)から、同じ歌詞イベント内にてルビ開始マークRSが読み出されるまで、RBLバッファ12cに記憶させた元歌詞データORの文字数を記憶させることができる。
また、S704の処理により確認した結果、歌詞イベント開始マークKSでなければ(S704:No)、ルビフラグ12dが「1」であるかを確認する(S707)。ここで、ルビフラグ12dが「1」でなければ(S707:No)、読み出した文字がルビ開始マークRSであるかを確認する(S708)。
S708の処理により確認した結果、読み出した文字がルビ開始マークRSでなければ(S708:No)、消去文字数カウンタ12eに1加算し(S711)、読み出した文字をRBLバッファ12cに記憶する(S713)。即ち、消去文字数カウンタ12eを「0」に設定した後、RBLバッファ12cに元歌詞データORが記憶される毎に、消去文字数カウンタ12eの値がカウントアップされる。
S713の処理後、S702の処理へ移行し、、歌詞イベントバッファ12aからの文字の読み出しが未だ終了していなければ(S702:No)、次の1文字を読み出す(S703)。
一方、S708の処理により確認した結果、読み出した文字がルビ開始マークRSであれば(S708:Yes)、RBLバッファ12cに記憶されている文字の末尾から、消去文字数カウンタ12eの値が示す数の文字を消去する(S709)。このS709の処理の結果、消去文字数カウンタ12eが「0」に設定されてから、ルビ開始マークRSが読み出されるまで、RBLバッファ12cに記憶させた元歌詞データORを、ルビ対象データOR’として、RBLバッファ12cから消去することができる。
S709の処理後、ルビフラグ12dを「1」に設定すると共に、消去文字数カウンタ12eを「0」に設定し(S710)、S702の処理へ移行し、歌詞イベントバッファ12aからの文字の読み出しが未だ終了していなければ(S702:No)、次の1文字を読み出す(S703)。
よって、S710の処理の結果、読み出された文字がルビ開始マークRSである場合には、そのルビ開始マークRSを読み飛ばすと共に、ルビフラグ12dを「1」に設定したことによって、次に読み出される文字を、ルビデータRBの文字として識別させることができる。また、S710の結果、消去文字数カウンタ12eが「0」に設定されるので、同一の歌詞イベント内であれば、ルビ終了マークREの後に続く、元歌詞データORの文字数をカウントすることができる。
また、S707の処理により確認した結果、ルビフラグ12dが「1」である場合には(S707:Yes)、読み出した文字がルビ終了マークREであるかを確認し(S712)、ルビ終了マークREであれば(S712:Yes)、ルビフラグ12dを「0」に設定し(S714)、S702の処理へ移行し、歌詞イベントバッファ12aからの文字の読み出しが未だ終了していなければ(S702:No)、次の1文字を読み出す(S703)。
よって、S714の処理の結果、読み出された文字がルビ終了マークREである場合には、そのルビ開始マークREを読み飛ばすと共に、ルビフラグ12dを「0」に設定したことによって、次に読み出される文字を、元歌詞データORの文字として識別させることができる。
一方で、S712の処理により確認した結果、読み出した文字がルビ終了マークREでなければ(S712:No)、読み出した文字は、ルビデータRBの文字であるので、読み出した文字をRBLバッファ12cに記憶し(S713)、S702の処理へ移行し、歌詞イベントバッファ12aからの文字の読み出しが未だ終了していなければ(S702:No)、次の1文字を読み出す(S703)。
このルビ歌詞データ生成処理(S9)によれば、S709の処理の結果として、RBLバッファ12cに記憶させた元歌詞データORのうち、ルビ対象データOR’に相当するデータがRBLバッファ12cから消去される一方で、S713の処理の結果として、ルビ開始マークRSとルビ終了マークREとによって囲まれたルビデータRBが、RBLバッファ12cに書き込まれる。即ち、ルビ対象データOR’がルビデータRBに置換される。その結果として、RBLバッファ12cには、ルビの付されていない元歌詞データOR(元歌詞データORからルビ対象データOR’を除いたもの)とルビデータRBとが合成された歌詞データ、即ち、ルビ歌詞データが生成され、RBLバッファ12cに記憶される。
つまり、このルビ歌詞データ生成処理(S9)によれば、RBLバッファ12cには、1つのSMFに含まれる全ての歌詞イベントのイベントデータ、即ち、1曲分の歌詞データが、時系列(曲の進行順)に一旦記憶されるが、ルビの付される元歌詞データOR(ルビ対象データOR’)は消去されるので、最終的にはルビ歌詞データが記憶されていることとなる。
例えば、ルビ歌詞データ生成処理(S9)の実行後、図3(b)における区間Aに含まれる歌詞イベントK1〜K8のイベントデータ(歌詞データ)は、図8(c)に示すように、ルビ歌詞である「ハマのおんなまつ」に対応するルビ歌詞データとしてRBLバッファ12cに記憶されることになる。なお、理解を容易にする目的で、図8(c)では、RBLバッファ12cに記憶されているデータを、2バイトの文字コードに対応する文字(2バイトの文字)として図示している。
以上説明したように、本実施形態の歌詞検索装置50によれば、ルビ歌詞データ生成処理(図7参照)により、元歌詞データとルビデータとが曲の進行順に混在して構成されている歌詞データから、ルビ歌詞データが生成されてRBLバッファ12c内に記憶されるので、歌唱時に実際に発音する歌詞(発音上の歌詞、即ち、ルビ歌詞)に含まれる文字列を検索文字列とした場合であっても、良好な検索効率で歌詞検索をすることができる。
一般的に、ユーザが歌詞検索を行う際には、文字によって記述される見かけの歌詞(元歌詞)に比べてより強く印象に残っているルビ歌詞を検索文字列として入力されるケースが多いので、ルビ歌詞を検索文字列とした場合に、良好な検索効率で歌詞検索でき、非常に好適である。
また、本実施形態の歌詞検索装置50によれば、元歌詞データ生成処理(図6参照)により、元歌詞データとルビデータとが曲の進行順に混在して構成されている歌詞データから、元歌詞データが生成されてORLバッファ12bに記憶されるので、元歌詞を検索文字列として用いた検索にも適用可能である。よって、元歌詞に含まれる文字列を検索文字列とするか、あるいは、ルビ歌詞に含まれる文字列を検索文字列とするかといったようなユーザによる個人差が生じる場合であっても、良好な検索効率で歌詞検索できる。
以上、各実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で、種々の改良変更が可能であることは容易に推察できるものである。
例えば、上記実施形態では、SMFの歌詞データから、元歌詞データ及びルビ歌詞データをそれぞれ生成できる構成としたが、SMFの歌詞データに限定されるものではなく、元歌詞に含まれる文字とルビとが論理的に区別可能な形式の歌詞データであれば、適用可能である。
また、上記実施形態では、トラックチャンク(1)52及びトラックチャンク(2)53のそれぞれにMIDIイベントと歌詞イベントとが混在しているタイプのSMFを用いる構成としたが、1曲分の演奏データ(MIDIイベントなど)と1曲分の歌詞イベントとが、それぞれ別々にトラックチャンクに格納されているタイプのSMFを用いる構成としてもよい。
また、上記実施形態では、フォーマット1のSMFを例に説明したが、フォーマット1の場合に限定することを意図するものではなく、SMFにおけるその他のフォーマット、例えば、フォーマット0に対しても、上記実施形態を同様に適用することができる。
また、上記実施形態では、SMFを用いて例示したので、各歌詞イベントの歌詞データを論理的に区別させるために、歌詞イベント抽出処理(図5参照)におけるS504の処理によって、各歌詞イベントの歌詞データの先頭に歌詞イベント開始マークKSを付す構成とした。これに対し、各歌詞イベントの歌詞データの先頭に、所定の歌詞イベント開始マークが予め記述されたデータを使用してもよく、この場合には、上記実施形態のように、歌詞イベント抽出処理(図5参照)により歌詞イベント開始マークKSを付さずとも、各歌詞イベントの歌詞データを論理的に区別できる。
また、上記実施形態では、メイン処理(図4参照)において、ORLバッファ12bに記憶されている元歌詞データの中から検索文字列が見つからなかった場合に、ルビ歌詞データを生成する構成としたが、予め、元歌詞データとルビ歌詞データを生成しておく構成であってもよい。なお、この構成において、元歌詞データ又はルビ歌詞データの一方に対して先に検索を行い、検索文字列が見つかった場合には、他方の歌詞データに対する検索を行わないようにすることにより、無駄な検索に時間を費やすことを防止することができる。
また、上記実施形態では、元歌詞データ及びルビ歌詞データの2種類を生成できる構成としたが、ルビ歌詞データのみを生成する構成としてもよい。
また、上記実施形態では、歌詞データから、元歌詞データと、元歌詞データにおける少なくとも一部の文字を対応するルビ(即ち、その文字の読みを示す仮名)に置換したルビ歌詞データとを生成する構成としたが、元歌詞データにおける少なくとも一部の文字に対して、読み方とは無関係に、文字を特徴づけたり説明したりする目的で付された仮名文字列や英数字文字列が対応付けられている場合に、元歌詞データにおける該当文字を、そのような仮名文字列や英数字文字列に置換して得られた歌詞データを生成して、検索対象として利用する構成としてもよい。
また、上記実施形態では、元歌詞データ生成処理(図6参照)及びルビ歌詞データ生成処理(図7参照)により、元歌詞データ及びルビ歌詞データは、いずれも1曲分全てが生成されるように構成したが、一部ずつ区切って生成して検索させるように構成してもよい。
また、1曲分全ての元歌詞データ及びルビ歌詞データを生成することに換えて、1曲における特定の部分、例えば、一番の歌詞やサビの歌詞のみに対し、元歌詞データ、及びルビ歌詞データを生成して検索させるように構成してもよい。なお、「1曲における特定の部分」は、予め規定されている特定の部分であっても、ユーザによって指定された特定の部分であってもよい。
また、1曲分全ての元歌詞データ、及びルビ歌詞データを生成することに換えて、SMFにおける表示に関する情報、例えば、キャリッジリターン(CR)やラインフィード(LF)などを区切りとして元歌詞データ及びルビ歌詞データを生成し、いずれか一方、又は、両方を交互に検索するように構成してもよい。
また、デルタタイム55が示す値の時間差を考慮するなどして、文脈、文節、又は単語の切れなどを判別する判別手段を設け、これらの判別手段によって判別された単位(文脈、文節、又は単語の単位)で、検索文字列と比較する構成としてもよい。一般的に、検索文字列は、文脈、文節、又は単語などの決まった単位で入力されるので、予め文脈、文節、又は単語などの単位を明確にしておくことにより、検索効率をより向上させることができる。
また、ORLバッファ12bに記憶されている元歌詞データ、及びRBLバッファ12cに記憶されているルビ歌詞データに含まれる各文字の時間的対応関係をつけた上で、検索文字列を所定の単位(文脈、文節、又は単語の単位)に分割する分割手段を設け、その分割手段によって分割された単位(文脈、文節、又は単語の単位)毎に、元歌詞データ、及びルビ歌詞データに対して検索するように構成してもよい。このとき、分割手段によって分割された単位(文脈、文節、又は単語の単位)が、一部は元歌詞データから見つかり、残りがルビ歌詞データから見つかった場合に、それらが、元歌詞データ、及びルビ歌詞データに含まれる各文字の時間的対応関係から、一連の歌詞をなすと推定される場合に、検索文字列がみつかったと判断するようにすればよい。元歌詞とルビ歌詞とを混同して記憶しているユーザがいることも考えられるので、このように検索文字列を所定の単位に分割し、その分割された単位毎に、元歌詞データ、及びルビ歌詞データに対して検索することは、検索効率の向上という点で有用である。
また、検索文字列と被検索文字列(上記実施形態では、ORLバッファ12bに記憶されている元歌詞データ、及びRBLバッファ12cに記憶されているルビ歌詞データ)とに対し、予め定義されている規則(例えば、ひらがなを全てカタカナに変換する、スペースをすべて省く、句読点をすべて省く、など)に従う置換(プリプロセス)を実行する構成としてもよい。このように、検索文字列と被検索文字列とに対して同じ処理を経由させることにより、表記の違いを吸収させることができ、検索効率をより向上させることができる。
また、上記実施形態は、歌詞部分、即ち、SMFにおける歌詞データから元歌詞データとルビ歌詞データとを生成し、元歌詞(見かけの歌詞)、又はルビ歌詞のいずれに対しても歌詞検索を可能とするものであったが、検索対象は歌詞部分に限定されるものではない。例えば、MIDIガイドラインにおいて、ルビを付すことが可能であるとされている曲情報部分(例えば、曲名や、作曲者名や、演奏者名など)に対しても、上記実施形態を同様に適用することができる。
なお、上記実施形態において、請求項1又は5に記載の第1の歌詞データ記憶手段としては、歌詞イベントバッファ12aが該当し、請求項1記載の第2の歌詞データ生成手段、又は請求項5記載の第2の歌詞データ生成ステップとしては、ルビ歌詞データ生成処理(S9)が該当し、請求項1又は5に記載の第2の歌詞データ記憶手段としては、RBLバッファ12cが該当し、請求項1記載の検索文字列入力手段としては、キーボード14が該当し、請求項1記載の検索手段、又は請求項5記載の検索ステップとしては、S10の処理が該当する。
また、上記実施形態において、請求項2記載の第3の歌詞データ生成手段としては、元歌詞データ生成処理(S6)が該当し、請求項2記載の第3の歌詞データ記憶手段としては、ORLバッファ12bが該当し、請求項2記載の検索手段としては、S7の処理又はS10の処理が該当する。
また、上記実施形態において、請求項3記載の第1の検索手段としては、S7の処理が該当し、請求項3記載の第2の検索手段としては、S10の処理が該当し、請求項3記載の検索終了手段としては、S8におけるYesの分岐処理が該当する。
また、上記実施形態において、請求項4記載の歌詞データ生成待機手段としては、S8の処理が該当し、請求項4記載の検索終了手段としては、S8におけるYesの分岐処理が該当する。
本発明における一実施形態の歌詞検索装置を搭載する、自動演奏装置の構成を示したブロック図である。 (a)は、SMFのデータ構成を示す模式図であり、(b)は、(a)に示したSMFにおける、トラックチャンクに格納されるデータ本体のデータ構成を示す模式図である。 (a)は、メタイベントのデータ構成を示す模式図であり、(b)は、歌詞イベントを示す模式図であり、(c)は、(b)における歌詞イベントK1,K2のイベントデータ部分を示す模式図である。 歌詞検索装置で歌詞検索を行う場合のメイン処理を示すフローチャートである。 図4のメイン処理の中で実行される歌詞イベント抽出処理を示すフローチャートである。 図4のメイン処理の中で実行される元歌詞データ生成処理を示すフローチャートである。 図4のメイン処理の中で実行されるルビ歌詞データ生成処理を示すフローチャートである。 (a)は、歌詞イベント抽出処理の実行結果を示す模式図であり、(b)は、元歌詞データ生成処理の実行結果を示す模式図であり、(c)は、ルビ歌詞データ生成処理の実行結果を示す模式図である。
符号の説明
1 自動演奏楽器
12a 歌詞イベントバッファ(第1の歌詞データ記憶手段)
12b ORLバッファ(第3の歌詞データ記憶手段)
12c RBLバッファ(第2の歌詞データ記憶手段)
12d ルビフラグ
12e 消去文字数カウンタ
13aN 第Nファイル
50 歌詞検索装置
OR 元歌詞データ
OR’ ルビ対象データ(ルビによって置換される元歌詞)
RB ルビデータ(付加的歌詞データ)

Claims (5)

  1. 文字によって記述される元歌詞データと、その元歌詞データに含まれる少なくとも1つの文字に対して付される付加的歌詞データとを、曲の進行順に、各々論理的に区別可能に混在して含む第1の歌詞データを記憶する第1の歌詞データ記憶手段と、
    前記元歌詞データに含まれる文字のうち、前記付加的歌詞データが付される文字を、対応する前記付加的歌詞データに置換したデータである第2の歌詞データを、前記第1の歌詞データ記憶手段に記憶されている前記第1の歌詞データから生成する第2の歌詞データ生成手段と、
    その第2の歌詞データ生成手段により生成された前記第2の歌詞データを記憶する第2の歌詞データ記憶手段と、
    検索用の文字列を入力する検索文字列入力手段と、
    前記第2の歌詞データ記憶手段に記憶されている前記第2の歌詞データを検索対象として、前記検索文字列入力手段から入力された文字列を検索する検索手段とを備えていることを特徴とする歌詞検索装置。
  2. 前記第1の歌詞データ記憶手段に記憶されている前記第1の歌詞データから、前記付加的歌詞データを削除したデータである第3の歌詞データを生成する第3の歌詞データ生成手段と、
    その第3の歌詞データ生成手段により生成された第3の歌詞データを記憶する第3の歌詞データ記憶手段とを備え、
    前記検索手段は、前記第2の歌詞データ記憶手段に記憶されている前記第2の歌詞データ、又は前記第3の歌詞データ記憶手段に記憶されている前記第3の歌詞データの、少なくとも一方を検索対象として、前記検索文字列入力手段から入力された文字列を検索するものであることを特徴とする請求項1記載の歌詞検索装置。
  3. 前記検索手段は、
    前記第2の歌詞データ記憶手段に記憶されている前記第2の歌詞データ、又は前記第3の歌詞データ記憶手段に記憶されている前記第3の歌詞データの一方を検索対象として、前記検索文字列入力手段から入力された文字列を検索する第1の検索手段と、
    前記第2の歌詞データ記憶手段に記憶されている前記第2の歌詞データ、又は前記第3の歌詞データ記憶手段に記憶されている前記第3の歌詞データの他方を検索対象として、前記検索文字列入力手段から入力された文字列を検索する第2の検索手段と、
    前記第1の検索手段による検索の結果、前記検索文字列入力手段から入力された文字列に一致する文字列が見つかった場合には、前記第2の検索手段による検索の実行を禁止する検索終了手段とを備えていることを特徴とする請求項2記載の歌詞検索装置。
  4. 前記第2の歌詞データ生成手段により生成された第2の歌詞データ、又は前記第3の歌詞データ生成手段により生成された第3の歌詞データの一方を検索対象として、前記検索手段による検索を行う前に、前記第2の歌詞データ、又は前記第3の歌詞データの他方を、前記第2の歌詞データ生成手段、又は前記第3の歌詞データ生成手段によって生成することを待機する歌詞データ生成待機手段と、
    前記検索手段による検索の結果、前記検索文字列入力手段から入力された文字列に一致する文字列が見つかった場合に、前記歌詞データ生成待機手段により待機されている前記第2の歌詞データ生成手段又は前記第3の歌詞データ生成手段による歌詞データの生成を禁止する検索終了手段とを備えていることを特徴とする請求項2記載の歌詞検索装置。
  5. 第1の歌詞データ記憶手段に記憶されている歌詞データであって、文字によって記述される元歌詞データと、前記元歌詞データに含まれる少なくとも1つの文字に対して付される付加的歌詞データとを、曲の進行順に、各々論理的に区別可能に混在して含む第1の歌詞データから、前記元歌詞データのうち、前記付加的歌詞データが付される文字を、対応する前記付加的歌詞データに置換した第2の歌詞データを生成し、第2の歌詞データ記憶手段に記憶させる第2の歌詞データ生成ステップと、
    その第2の歌詞データ生成ステップによって前記第2の歌詞データ記憶手段に記憶された第2の歌詞データを検索対象として、入力された検索用の文字列を検索させる検索ステップとを制御装置に実行させるものであることを特徴とする歌詞検索プログラム。





JP2007086965A 2007-03-29 2007-03-29 歌詞検索装置及び歌詞検索プログラム Pending JP2008243155A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007086965A JP2008243155A (ja) 2007-03-29 2007-03-29 歌詞検索装置及び歌詞検索プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007086965A JP2008243155A (ja) 2007-03-29 2007-03-29 歌詞検索装置及び歌詞検索プログラム

Publications (1)

Publication Number Publication Date
JP2008243155A true JP2008243155A (ja) 2008-10-09

Family

ID=39914362

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007086965A Pending JP2008243155A (ja) 2007-03-29 2007-03-29 歌詞検索装置及び歌詞検索プログラム

Country Status (1)

Country Link
JP (1) JP2008243155A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101039762B1 (ko) * 2009-11-11 2011-06-09 주식회사 금영 가사 데이터를 이용한 노래반주기의 곡 검색방법
CN103425629A (zh) * 2012-05-24 2013-12-04 富士通株式会社 生成装置、生成方法、检索装置和检索方法

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0527787A (ja) * 1991-07-22 1993-02-05 Brother Ind Ltd 音楽再生装置
JPH05224683A (ja) * 1992-02-07 1993-09-03 Roland Corp カラオケ装置における歌詞表示制御装置
JPH11282464A (ja) * 1998-03-26 1999-10-15 Roland Corp 自動演奏装置の表示装置
JP2002082678A (ja) * 2000-09-07 2002-03-22 Sanyo Electric Co Ltd カラオケ端末装置
JP2002123270A (ja) * 2000-10-12 2002-04-26 Pioneer Electronic Corp 楽曲検索装置及び楽曲検索方法
JP2002341880A (ja) * 2001-05-21 2002-11-29 Matsushita Electric Ind Co Ltd 音楽データ配信システム
JP2003122349A (ja) * 2001-10-16 2003-04-25 Roland Corp 歌詞表示装置
JP2003131674A (ja) * 2001-10-22 2003-05-09 Megafusion Corp 楽曲検索システム
JP2004013863A (ja) * 2002-06-12 2004-01-15 Dainippon Printing Co Ltd 文書検索用文字処理方法およびシステム
JP2005174496A (ja) * 2003-12-12 2005-06-30 Sony Corp 楽曲検索装置
JP2005182408A (ja) * 2003-12-18 2005-07-07 Yasutaka Shimizu 用語検索支援システム、用語検索支援方法及び用語検索支援プログラム
JP2005267468A (ja) * 2004-03-19 2005-09-29 Murata Mach Ltd 情報検索装置
JP2006337966A (ja) * 2005-06-06 2006-12-14 Sega Corp カラオケ装置、情報検索装置、プログラム、および操作端末

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0527787A (ja) * 1991-07-22 1993-02-05 Brother Ind Ltd 音楽再生装置
JPH05224683A (ja) * 1992-02-07 1993-09-03 Roland Corp カラオケ装置における歌詞表示制御装置
JPH11282464A (ja) * 1998-03-26 1999-10-15 Roland Corp 自動演奏装置の表示装置
JP2002082678A (ja) * 2000-09-07 2002-03-22 Sanyo Electric Co Ltd カラオケ端末装置
JP2002123270A (ja) * 2000-10-12 2002-04-26 Pioneer Electronic Corp 楽曲検索装置及び楽曲検索方法
JP2002341880A (ja) * 2001-05-21 2002-11-29 Matsushita Electric Ind Co Ltd 音楽データ配信システム
JP2003122349A (ja) * 2001-10-16 2003-04-25 Roland Corp 歌詞表示装置
JP2003131674A (ja) * 2001-10-22 2003-05-09 Megafusion Corp 楽曲検索システム
JP2004013863A (ja) * 2002-06-12 2004-01-15 Dainippon Printing Co Ltd 文書検索用文字処理方法およびシステム
JP2005174496A (ja) * 2003-12-12 2005-06-30 Sony Corp 楽曲検索装置
JP2005182408A (ja) * 2003-12-18 2005-07-07 Yasutaka Shimizu 用語検索支援システム、用語検索支援方法及び用語検索支援プログラム
JP2005267468A (ja) * 2004-03-19 2005-09-29 Murata Mach Ltd 情報検索装置
JP2006337966A (ja) * 2005-06-06 2006-12-14 Sega Corp カラオケ装置、情報検索装置、プログラム、および操作端末

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101039762B1 (ko) * 2009-11-11 2011-06-09 주식회사 금영 가사 데이터를 이용한 노래반주기의 곡 검색방법
CN103425629A (zh) * 2012-05-24 2013-12-04 富士通株式会社 生成装置、生成方法、检索装置和检索方法
JP2013246592A (ja) * 2012-05-24 2013-12-09 Fujitsu Ltd 生成プログラム、生成方法、生成装置、検索プログラム、検索方法および検索装置

Similar Documents

Publication Publication Date Title
JP3250559B2 (ja) 歌詞作成装置及び歌詞作成方法並びに歌詞作成プログラムを記録した記録媒体
US20080115655A1 (en) Playback systems and methods with integrated music, lyrics and song information
US8212819B2 (en) Display control apparatus
JP2006146873A (ja) データ検索方法、装置及びプログラム
WO2004034282A1 (ja) コンテンツ再利用管理装置およびコンテンツ再利用支援装置
JP2008243155A (ja) 歌詞検索装置及び歌詞検索プログラム
JP5034674B2 (ja) ファイル又はフォルダ管理装置
JP2007172466A (ja) 演奏情報記録装置
JP4116434B2 (ja) 計算ユニットにおけるテキスト処理方法及び計算ユニット
JP2008021235A (ja) 読み登録システム及び読み登録プログラム
JP4218692B2 (ja) 演奏情報検索装置
CN110335583B (zh) 一种带隔断标识的复合文件生成及解析方法
JP2002258845A (ja) 演奏情報検索装置
JP4149417B2 (ja) カラオケ装置と演奏予約装置からなるシステム
JP5169021B2 (ja) 表示制御装置
JP2005044103A (ja) 文書作成装置、文書作成方法およびプログラム
JP2004206153A (ja) 歌詞作成装置及び歌詞作成方法並びに歌詞作成プログラムを記録したコンピュータで読み取り可能な記録媒体
JP2002140338A (ja) 辞書構築支援装置および辞書構築支援方法
JPH11338868A (ja) 歌詞によるリズムパターンの検索方法及び装置及び歌詞によるリズムパターンの検索プログラムを格納した記憶媒体
JP3841076B2 (ja) 作詞支援装置、作詞支援方法および記憶媒体
JP5262190B2 (ja) 入力補完装置、及び入力補完プログラム
JP3487011B2 (ja) データ書込装置及びデータ表示装置
JPH09258763A (ja) 音声合成装置
JPH1153355A (ja) 文作成装置
JP4740597B2 (ja) ユーザから提供された入力ワードを処理するための方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100326

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120214

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120612