以下、本発明の実施の形態における音楽情報配信システムに関して、図面に基づいて説明する。図1は本発明の実施の形態に係わる、音楽情報配信システムの概略構成を示すブロック図である。
図1において、100は楽曲検索装置、200はサーバである。楽曲検索装置100は本発明のクライアントに相当するものである。楽曲検索装置100とサーバ200とは無線通信手段により接続されている。楽曲検索装置100は、音楽CD13から取得した楽曲データをサーバ200から取得した選曲データに従って選択し、楽曲データを再生する装置である。なお、選曲データに関しては、後ほど詳しく説明する。
まず、楽曲検索装置100に関して説明する。楽曲検索装置100は、楽曲検索装置100の全体の動作を制御するCPU2にバスを介して音楽CDドライブ1、選曲データ取得部3、HDD4、A/Dコンバータ5、ROM6、RAM7、表示制御部8、D/Aコンバータ9、リモコン受信機10が接続される。
音楽CDドライブ1は、音楽CD13から楽曲データ、TOC(Table Of Contents)情報を読み込む。使用者が音楽CD13を音楽CDドライブ1に挿入すると、CPU2は音楽CD13からTOC情報を読み込み、その情報を選曲データ取得部3に送る。
更に、CPU2は音楽CD13から楽曲データを読み出してMP3(MPEG1 Layer-3Audio)など好適なフォーマットで楽曲データファイルを生成し、HDD4に格納する。なお、楽曲データのフォーマットの手法としては、MP3に限らずATRAC(Adaptive Transform AcousticCoding)方式等の様々な手法を採用することができる。なお、TOC(Table Of Contents)とは、音楽CD13に記録されている楽曲の曲数、演奏時間、休止時間等の演奏時間情報を記録してある目次情報である。
選曲データ取得部3は、音楽CDドライブ1からTOC情報を受け取ると、図示せぬ無線通信手段によりサーバ200にTOC情報を送信する。また、楽曲検索装置100は、サーバ200に最後にアクセスしたアクセス日時をHDD4に記憶しており、選曲データ取得部3は、そのアクセス日時をサーバ200に送信する。更に、選曲データ取得部3は、サーバ200から選曲データ、選曲データ識別子リストなどを取得する。この選曲データ識別子リストは、上記アクセス日時から更新を受けた選曲データの識別子リストである。
このように、選曲データ、選曲データ識別子リストを取得した選曲データ取得部3は、これらのデータをHDD4の識別子テーブル、属性テーブル等に格納する。なお、すでにHDD4に格納されている選曲データのうち、選曲データ識別子リストに含まれている物があれば選曲データ取得部3はそれらの選曲データをサーバ200から取得し、HDD4に格納されている選曲データを更新する。これにより、選曲データを常に最新の状態に保つことができる。最後に、選曲データ取得部3はHDD4の更新日時を現在の日時に書き換える。
HDD4は、楽曲データファイル、音声認識辞書、識別子テーブル、属性テーブルなどを備える。
楽曲データファイルは、音楽CD13から取得した所定フォーマットの数百〜数千の楽曲データを記憶する。音声認識辞書は、音声認識を行う際の単語の読みを記憶している。識別子テーブルは、楽曲データファイルの楽曲データを選択するためのデータである選曲データを記憶している。属性テーブルは、音楽CD13を歌唱/演奏している歌手名、音楽CD13の名前、楽曲名とそれらの関係を記憶している。
A/Dコンバータ5は、マイク16と接続されており、このマイク16から入力される音声信号をディジタル変換してCPU2に入力する。ROM6には、システムプログラム、アプリケーションプログラムおよびフォントデータが記憶されている。システムプログラムはこの装置の基本動作や周辺機器とのデータ送受を記憶するプログラムである。
アプリケーションプログラムは、音声認識プログラム、識別子検索プログラム、識別子選択プログラム、シーケンスプログラムなどからなる。
音声認識プログラムは、A/Dコンバータ5から取得したデジタル化された音声信号の発音を分析して、発音を表す記号列に変換するプログラムである。以降、発音を表す記号列を読みと称する。なお、HDD4に格納されている楽曲データ、及びその楽曲を歌唱/演奏している歌手、及びその楽曲を収録する音楽CD13にはそれぞれ一意の識別子がつけられている。
識別子検索プログラムは、読みと識別子を対照させた表を用い、読みから対応する識別子を検索するプログラムである。識別子選択プログラムは、識別子検索プログラムの検索した識別子が複数個存在した場合、その中から一つを選択するプログラムである。
シーケンスプログラムは表示シーケンスプログラム、楽曲再生シーケンスプログラムなどからなる。各シーケンスプログラムは識別子で特定される楽曲の文字情報(歌手名、アルバム名、楽曲名など)をモニタ14に画面表示するとともに、楽曲データファイルを再生する。
フォントデータは、歌詞や楽曲名などを表示するためのものであり、明朝体や丸ゴジック体などの複数種類のフォントが記憶されている。
RAM7は、CPU2などが動作する上で必要なデータを一旦格納するワークエリアが設定される。表示制御部8は、モニタ14と接続されており、ROM6に格納されたフォントを使用して演奏中の音楽CD13のアルバム名、歌手名、曲名等を表示する。
D/Aコンバータ9は、楽曲データをアナログ信号に変換し、そのアナログ信号をアンプ11に送る。アンプ11では、D/Aコンバータ9から取得した楽曲データのアナログ信号を増幅したのち、スピーカ15に出力する。そして、スピーカ15は、アンプ11から取得したアナログ信号を放音する。
リモコン受信機10は、選曲操作などを行うための装置である。リモコン受信機10はリモコン12から送られてくる選曲操作に対応する赤外線信号を受信して、その赤外線信号に対応する信号をCPU2に送信する。また、この選曲操作はリモコン12に加え、マイク16を使用した入力音声によってもおこなうことができる。例えば、マイク16に曲名を入力すると、音声認識プログラムなどによって選曲が行われる。
次に、サーバ200に関して説明する。図2は、サーバ200の概略構成を示すブロック図である。サーバ200は、原選曲データデータベース201、読みデータ変換規則管理部202、木構造読みデータ変換部203、選曲データデータベース204、選曲データ検索部205を備える。
サーバ200は、楽曲検索装置100から音楽CD13のTOC情報及びアクセス日時を受信すると、そのTOC情報から音楽CD13を特定する。また、特定した音楽CD13に対応する選曲データ及びアクセス日時以降に更新を受けた選曲データ識別子リストを楽曲検索装置100に送信する。
原選曲データデータベース201は、選曲データを得るための歌手情報、音楽CD情報を記述した2種類のXML(Extensible Markup Language)ファイルからなる原選曲データが格納されている。この原選曲データは、歌手名、アルバム名、曲名などの発音を表現する記号(仮名、アルファベット発音記号等)及びXMLタグから構成される文字列であるXML読みパターンなどを含む。
読みデータ変換規則管理部202は、原選曲データ中のXML読みパターンを木構造読みパターンに変換する規則が格納されている。また、原語表示名、または日本語表示名に所定の単語を持つ音楽CD13に対し、その所定の単語に相当する読みを木構造読みパターンに付与するという規則が格納されている。
木構造読みデータ変換部203は、読みデータ変換規則管理部202の規則に従って、原選曲データ中のXML読みパターンを木構造読みパターンに変換する。また、原語表示名、または日本語表示名の所定の単語に相当する読みを木構造読みパターンに付与する。すなわち、原選曲データを選曲データに変換する。
選曲データデータベース204は、木構造読みデータ変換部にて変換された選曲データが格納されている。また、この選曲データが更新された日時と選曲データの識別子リストを対応させて記憶されている選曲データ識別子リストが格納されている。
選曲データ検索部205は、楽曲検索装置100から取得したTOC情報に対応する選曲データを選曲データデータベースから検索し、楽曲検索装置100に送信する。
ここで、選曲データについて説明する。選曲データは、使用者が音楽CD13を楽曲検索装置100に挿入した時点に送信されるもの、及び更新の必要が生じたときにサーバ200から楽曲検索装置100に送信されるものがある。
また、この選曲データは2種類のXMLファイルからなる。一つは音楽CD13の曲を歌唱/演奏している歌手の歌手情報であり、もう一つは音楽CD13の名前や収録曲などの音楽CD情報を記述した情報である。これら選曲データは原選曲データデータベースに格納されている原選曲データを変換して得られる。
この原選曲データは歌手情報、音楽CD情報を記述した2種類のXMLファイルからなる。例えば、「ABCD」という日本の歌手の歌手情報の例を図3(a)に示す。1行目はヘッダであり、このXMLファイルが使用している漢字コードなどの情報を記述する。2行目は音楽CD13の楽曲を歌唱、演奏している歌手の歌手情報を示す<ARTIST></ARTIST>タグである。この歌手情報を示すタグには、歌手に一対一に対応する識別子である属性IDが記述される。この例では「010000」である。
3行目は歌手名の原語表示名を示す<TITLE></TITLE>タグである。原語とは歌手の正式名を記述する言語を意味する。この例の原語は英語であり、表示文字列は「ABCD」である。4行目〜6行目は音楽CD13の楽曲を歌唱、演奏している歌手を音声認識で指定する際の木構造読みパターン及びXML読みパターンを示す<PRONOUNCE></PRONOUNCE>タグである。木構造読みパターン及びXML読みパターンは一般に複数個存在し、それらをタグ<PRONOUNCE></PRONOUNCE>の間に並記する。一つのXML読みパターンはタグ<SYL></SYL>により指定する。この例では、読みは「えーびーしーでぃー」ただ一つである。
また外国の歌手の場合、日本語表示名が追加される。例えば、「The EFG」という外国の歌手の歌手情報の例を図4に示す。3行目に原語表示名「The EFG」が示されている。また4行目に日本語表示名を示すタグである<JTITLE></JTITLE>により示されている。この例では「ザ・イーエフジー」である。
次に、例えば、「SINGLES」という日本の歌手の音楽CD13の音楽CD情報の例を図5に示す。1行目はヘッダあり、このXMLファイルが使用している漢字コードなどの情報を記述する。2行目は音楽CD13の音楽CD情報を示すタグである。この音楽CD情報を示すタグには、音楽CD13に一対一に対応する識別子である属性IDが記述される。この例では「010100」である。3行目は音楽CD13の楽曲を歌唱、演奏している歌手の歌手情報を示す<ARTIST></ARTIST>タグである。この歌手情報を示すタグには、歌手に一対一に対応する識別子である属性IDが記述される。この例では「010000」である。
4行目は音楽CD13のアルバム情報を記述するタグであり、その中には、以下に示す<TITLE></TITLE>タグ及び<PRONOUNCE></PRONOUNCE>タグが含まれる。5行目は音楽CD13の名称の原語表示名を示す<TITLE></TITLE>タグである。この例では「SINGLES」である。6行目〜8行目は音楽CD13の名称を音声認識で指定する際の木構造読みパターン及びXML読みパターンを示す<PRONOUNCE></PRONOUNCE>タグである。
10行目は音楽CD13に収録されている楽曲の情報を列挙する<TRACKS></TRACKS>タグである。この<TRACKS></TRACKS>タグ中の属性である「COUNT」は楽曲数であり、この例では「15」である。また各楽曲の情報は例えば11行目のように<TRACK></TRACK>タグで記述する。属性「N」は音楽CD13の中で楽曲が何曲目に収録されているかを示す。
12行目は曲名を示す<TITLE></TITLE>タグでである。この例ではA&Zである。ここで&はXMLで特殊記号を記述するのに使用するものであり、ここでは文字「&」を示す。13行目〜15行目は音楽CD13の楽曲の曲名を音声認識で指定する際のXML読みパターンを示す<PRONOUNCE></PRONOUNCE>タグである。
また外国の歌手の場合、日本語表示名が追加される。その例を図6に示す。5行目に音楽CD13の原語表示名「THE EFG 1962-1966」が示されている。また6行目にその日本語表示名が<JTITLE></JTITLE>タグにより示されている。この例では「ザ・イーエフジー1962年−1966年」である。8行目にはXMLタグを使用したXML読みパターン「<SINGER><THE>ざ</THE>いーえふじー</SINGER><YEAR>1962</YEAR><YEAR>1966</YEAR>」が示されている。
また、音楽CD13の2曲目の楽曲は20行目に原語表示名「HIJK」が示されている。また21行目にその日本語表示名が<JTITLE></JTITLE>タグにより示されている。この例では「あいうえお」である。22行目から25行目に2つのXML読みパターン「えいちあいじぇいけい」「かきくけこ」が記述されている。これら原選曲データのXML読みパターンは木構造読みデータ変換部により木構造読みパターンに変換される。そして、原選曲データから選曲データが得られる。
なお、<TITLE></TITLE>タグ及び<JTITLE></JTITLE>タグにより示される原語表示名や日本語表示名は本発明の表示パターンに相当するものである。
XML読みパターンに記述される歌手、音楽CD13、楽曲の名称の読みの特性には以下の(a)から(f)の属性を持つものがある。こうした属性を有する名前を声に出して読む場合、使用者は以下の読み方をすることがある。
(a)名前が「The」で始まる。この「The」で始まる名前を読む場合、先頭の「ざ」もしくは「じ」を省略して読むことがある。例えば、「The EFG」という歌手の場合、「ざいーえふじー」と読む場合と、「ざ」を省略して単に「いーえふじー」と読む場合がある。
(b)名前に年代を表す数字を含む。年代を読む場合、数字を桁読みする場合と、棒読みする場合とがある。例えば、1962年の場合、「せんきゅーひゃくろくじゅーに」と桁読みする場合と、「いちきゅーろくにー」と棒読みする場合とがある。
(c)名前にサブタイトルを有する。名前にサブタイトルがある場合、このサブタイトルを省略することがある。例えば、「Hello〜かきくけこ」という楽曲の名前の場合、「はろーかきくけこ」と読む場合と、サブタイトルを省略して「はろー」と読む場合がある。
(d)アルバムが複数毎の音楽CD13からなるものであって、音楽CD13の名前に「Disc2」などの枚数番号を含む。名前に枚数番号を含む場合、「でぃすく」の後に番号を示す数字を付加し、その数字を日本語読みする場合と、英語読みする場合の2通りがある。あるいは、音楽CD13の枚数番号を指定しない、すなわち枚数番号を省略して読む場合がある。例えば、「THE EFG 1962-1966 DISC2」という音楽CD13の名前の場合、「Disc2」の部分は、「でぃすくに」と日本語読みする場合と、「でぃすくつー」と英語読みする場合とがある。また、「せんきゅーひゃくろくじゅーろく」のように枚数番号を省略して読む場合もある。
(e)歌手が仇名などの別名をもつ。音楽CD13及び楽曲の名前に歌手の名前を含む場合、その歌手の名前を仇名に読み替える場合がある。例えば、「さしすせそ」という名前の歌手の仇名が「さっきー」である場合、その歌手の音楽CD13の名前が「さしすせそベスト」だと、「さしすせそベスト」と読む場合と、「さっきーベスト」と歌手の名前を仇名に読み替える場合がある。
(f)名前に年代以外の数字を含むもの。名前に数字を含む場合、その数字を日本語読みする場合と、英語読みする場合、棒読みする場合とがある。例えば、名前に「19」が含まれる場合、「じゅうく」と日本語読みする場合、「ないんてぃーん」と英語読みする場合、「いちきゅー」と棒読みする場合とがある。
従って、本発明では(a)から(f)の属性を木構造読みパターンの生成規則であるXMLタグとしてXML読みパターンに記述する。そして、このXML読みパターンによって使用者の読みの特性を反映した木構造読みパターンを生成する。なお、この木構造読みパターンは、音声認識辞書単語の生成、および読み照合パターンの生成に用いられる。以下、木構造読みパターン生成規則(タグ)を示す。なお、下記、木構造読みパターン生成規則(a)’から(f)’は、上記、属性(a)から(f)に対応するものである。
(a)’は、<THE></THE>タグであり、このタグで囲まれた部分を省略可能にする。
(b)’は、<YEAR></YEAR>タグであり、このタグで囲まれた部分の数字を桁読み、棒読みの並記に置き換える。
(c)’は、<SUB></SUB>タグであり、このタグで囲まれた部分を省略可能にする。
(d)’は、<DISC></DISC>タグであり、読み「でぃすく」を追記した後、このタグで囲まれた部分の数字の日本語読み、英語読みの並記を追記する。また、「でぃすく<数字読み>」全体を省略可能にする。
(e)’は、<SINGER></SINGER>タグであり、このタグで囲まれた歌手が仇名などの別名を持つ場合、この歌手の正式名、別名の読みを併記する。
(f)’は、<NUMBER></NUMBER>タグであり、このタグで囲まれた部分の数字の日本語読み、英語読み、棒読みを追記する。
ここで、XML読みパターンから生成された木構造読みパターンの実際の例を示す。図7は木構造読みパターンを示す図であり、(a)は図4の6行目の場合であり、(b)は図5の20行目の場合であり、(c)は図6の8行目の場合であり(ここで歌手The EFGはあだ名を持たないものとする)、(d)は図6の23,24行目の場合であり、(e)は図3(b)の5、6行目の場合であり、(f)は図5の26行目の場合である。
図7(a)〜図7(f)に示すような、XML読みパターンから生成された各木構造読みパターンが受理する読みの例を以下に示す。
図7(a)の場合、「ざいーえふじー」、「いーえふじー」である。図7(b)の場合、「はろーかきくけこ」「はろー」である。
図7(c)の場合、「ざいーえふじーせんきゅーひゃくろくじゅーにせんきゅーひゃくろくじゅーろくでぃすくに」、「ざいーえふじーいちきゅーろくにーいちきゅーろくろくでぃすくに」「ざいーえふじーせんきゅーひゃくろくじゅーにせんきゅーひゃくろくじゅーろく」「ざいーえふじーいちきゅーろくにーいちきゅーろくろく」(以下略)である。
図7(d)の場合、「えいちあいじぇいけい」「あいうえお」である。図7(e)の場合、「さしすせそ」「さっきー」である。図7(f)の場合、「はろーじゅうく」「はろーないんてぃーん」「はろーいちきゅー」である。
図7(d)の例の場合、原語表示名と日本語表示名にて正式名(日本語以外の言語)と日本語名の読み、この例では、正式名「えいちあいじぇいけい」、日本語名「あいうえお」が分かる。従って、正式名及び日本語名の両方の読みを受理するようにその読みを木構造読みパターンに付与する。
このように、XMLタグを用いたXML読みパターンを使用することによって、タグにはそれぞれ曖昧性のない意味付けがされており、タグ付け作業が容易であり、作業の正確性を高め、工数の低減につながる。
また、歌手、音楽CD13、楽曲の名称を使用者が読み上げる際に生じうる複数の読みを簡潔に生成できる。例えば図7(c)の例ではただ一つの読みパターンから(2×2×2×2+2×2×2)=24通りもの読みを自動生成することができる。手作業でこれらすべての読みを生成することは工数がかかり、かつ間違った読みが混入する原因となる。
さらに、タグにより名前に含まれている属性が示されているため、タグの解釈を容易に拡張できる。上例の<DISC>2</DISC>は「でぃすく<数字読み>」という読みに変換されたが、その他に「しーでぃー<数字読み>」という読みを生成する規則を追加することも容易である。
また、上記の木構造読みパターンは次の2つの記号を用いて文字列として表現でき、この文字列によって選曲データに記述される。省略は記号[]を用い、記号[]で囲まれた読みは省略可能であることを示す。また、並記は記号(||)を用い、例えば、記号(||)に(A|B|C)と並記された読みA、B、Cを受理することを示す。並記する読みの数は2個以上の任意の個数を設定できる。
図7(a)〜図7(f)の木構造読みパターンを文字列で表現した例を以下に示す。図7(a)の場合、「[ざ]いーえふじー」となる。図7(b)の場合、「はろー[かきくけこ]となる。図7(c)の場合、「[ざ]いーえふじー(せんきゅーひゃくろくじゅーに|いちきゅーろくにー)(せんきゅーひゃくろくじゅーろく|いちきゅーろくろく)[でぃすく(に|つー)]」となる。図7(d)の場合、「(えいちあいじぇいけい|あいうえお)」となる。
図7(e)の場合、「(さしすせそ|さっきー)」となる。図7(f)の場合、「はろー(じゅうく|ないんてぃーん|いちきゅー)」となる。
ここで、XML読みパターンから木構造読みパターンを生成する手順を以下に説明する。図8は、XMLタグ走査サブ手順を示すフロー図である。図9は、読みデータ変換サブ手順を示すフロー図である。図10は、XML読みパターンから木構造読みパターンを生成する手順を示すフロー図である。
この手順は(1)XMLタグの走査、(2)読みデータ変換という2つのサブ手順を交互に、あるいは再帰的に呼び出すことによって行われる。まずサブ手順(1)(2)について説明する。図8に示す、XMLタグ走査サブ手順では、XML部分読みパターンが入力され、この入力に対する木構造部分読みパターンが出力される。
SA201では、変数S、T、pを以下のように初期化する。S:XML部分読みパターン、T:空文字列、p:Sの最初の文字位置。変数の初期化の処理がなされるとSA202へ進む。SA202では、文字位置pから末尾に向かってSを走査しタグを探す処理がなされ、SA203へ進む。SA203では、タグが見つかったか否かを判定する。タグが見つからなければSA209へ進み、文字位置pから末尾までの文字列を変数Tに追加する。そしてTの値を戻り値としてリターンする(SA210)。
一方、SA203でタグが見つかった場合、SA204へ進む。SA204では、見つかったタグを<A>とし、文字位置pと前記タグ<A>との間の文字列をTに追加し、SA205へ進む。
SA205では、タグ<A>に対応する</A>を見つけ、SA206へ進む。SA206では、タグ<A></A>に挟まれた文字列<A>○△□</A>を読みデータ変換サブ手順に渡す。
ここで図9に基づいて読みデータ変換サブ手順について説明する。図9に示す、読みデータ変換サブ手順では、XML部分読みパターンが入力され、この入力に対する木構造部分読みパターンが出力される。
SA301では、XML部分読みパターンSは<A>○△□</A>という形式の文字列である。タグ<A></A>に挟まれた文字列を変数Sに代入し、SA302へ進む。SA302では、<A>=<SYL>であるか否かを判定する。<A>=<SYL>なら、SA303へ進む。SA303では、文字列Sを入力としてXMLタグ走査サブ手順を呼び出し、その戻り値をTに代入しSA304へ進む。SA304では、その戻り値をそのまま戻り値としてリターンする。一方、SA302の判定において、<A>=<SYL>でない場合、SA305へ進む。
SA305では、<A>=<THE>であるか否かを判定する。<A>=<THE>なら、SA306へ進む。SA306では、文字列Sをカッコ[]で挟んで文字列[S]を生成して変数Tに代入し、SA307へ進む。SA307では、そのTの値を戻り値としてXMLタグ走査サブ手順へ返す。一方、SA305の判定において、<A>=<THE>でない場合、SA308へ進む。
SA308では、<A>=<YEAR>であるか否かを判定する。<A>=<YEAR>なら、文字列は、年代であり、SA309へ進む。SA309では、Sを桁読み、棒読みしたときの読みM、Nを生成し、文字列(M|N)を生成して変数Tに代入し、SA310へ進む。SA310では、そのTの値を戻り値としてXMLタグ走査サブ手順へ返す。一方、SA308の判定において、<A>=<YEAR>でない場合、SA311へ進む。
SA311では、<A>=<SUB>であるか否かを判定する。<A>=<SUB>なら、SA312へ進む。SA312では、文字列Sを入力としてXMLタグ走査サブ手順を呼び出し、その戻り値をカッコ[]で挟んだ文字列[S]を生成して変数Sに代入し、SA313へ進む。SA313では、文字列[S]を生成して変数Tに代入し、SA314へ進む。SA314では、そのTの値を戻り値としてXMLタグ走査サブ手順へ返す。一方、SA311の判定において、<A>=<SUB>でない場合、SA315へ進む。
SA315では、<A>=<DISC>であるか否かを判定する。<A>=<DISC>なら、文字列Sはアルバム中の番目を示す数字であり、SA316へ進む。SA316では、この数字を日本語読み、英語読みしたときの読みM,Nを生成し、文字列でぃすく(M|N)を生成して変数Tに代入し、SA317へ進む。SA317では、そのTの値を戻り値としてXMLタグ走査サブ手順へ返す。一方、SA315の判定において、<A>=<DISC>でない場合、SA315へ進む。
SA318では、<A>=<SINGER>であるか否かを判定する。<A>=<SINGER>なら、文字列Sは歌手の正式名の読みであり、SA319へ進む。SA319では、この歌手が別名の読みS’を有するか否かを判定する。SA319において、別名の読みS’を有する場合は、SA321へ進み、そうでない場合は、SA320へ進む。SA321では、文字列(S|S')を生成して変数Tに代入し、SA322へ進む。SA320では、文字列[S]を生成して変数Tに代入し、SA322へ進む。SA322では、そのTの値を戻り値としてXMLタグ走査サブ手順へ返す。一方、SA315の判定において、<A>=<SINGER>でない場合、SA323へ進む。
SA323では、<A>=<NUMBER>であるか否かを判定する。<A>=<NUMBER>なら、文字列Sは数字であり、SA324へ進む。SA324では、この数字を桁読み、棒読み、英語読みしたときの読みL、M、Nを生成し、文字列(L|M|N)を生成して変数Tに代入し、SA325へ進む。SA325では、そのTの値を戻り値としてXMLタグ走査サブ手順へ返す。一方、SA323の判定において、<A>=<SINGER>でない場合、SA326へ進む。
SA326では、<A>を不明なタグとしてエラーメッセージを出力し、処理を終了する。
なお、上記SA302からSA325の読みデータ変換はサーバの読みデータ変換規則管理部に規則として登録されている。
このようにして、戻り値を得たXMLタグ走査サブ手順では、SA207にて、その戻り値を文字列Tに追加するし、SA208へ進む。SA208では、文字位置pを前記タグ</A>の次の文字位置に設定し、SA202へもどる。
このような(1)XMLタグの走査、(2)読みデータ変換という2つのサブ手順を用いて生成される木構造読みパターンを生成する手順を説明する。図10において、SA401では、原選曲データのタグ<PRONOUNCE>にて並記されているXML読みパターン<SYL>△□○</SYL>それぞれを入力として、XMLタグ走査サブ手順を適用し、対応する木構造読みパターンを生成すし、SA402へ進む。SA402では、SA401で得た木構造読みパターンを、例えばT1,T2,・・・,TNとすると、それらを並記した木構造読みパターン(T1|T2|・・・|TN)を生成する。この生成された木構造読みパターンを含む選曲データは、選曲データデータベース204に格納される。
このようにして、生成された木構造読みパターンの例を図11に示す。図11は、図6に示すXML読みパターンから得られる木構造読みパターンの例である。図6の8行目、23−24行目に記載されたXML読みパターンはそれぞれ図11の8行目、23行目の木構造読みパターンに変換されている。
また、サーバ200で管理されている選曲データが更新される場合がある。これは、歌手や音楽CD13に別名が追加された場合などである。例えば、「さしすせそ」という歌手に対し、「さっきー」という別名を追加する必要が生じた場合を考える。図12(a)は原選曲データであり、(b)は更新前の選曲データであり、(c)は更新前の木構造読みパターンであり、(d)は更新後の選曲データであり、(e)は更新後の木構造読みパターンである。
この場合、読みデータ変換規則管理部202に「XML読みパターン中に、歌手「さしすせそ」の読みが存在したら、別名の「さっきー」を並記する」という規則を追加する。
この規則を追加することによって、図12(a)に示す原選曲データから生成される選曲データは図12(b)に示すようなものであるのに対して、更新後は、図12(d)のような選曲データが生成される。また、木構造読みパターンに関しても、更新前の木構造読みパターン図12(c)に対して、更新後の木構造読みパターン図12(e)のように示される。このようにして、原選曲データデータベース201中の、<SINGER>さしすせそ</SINGER>を含むXML読みパターンを再変換して得られる選曲データを選曲データデータベース204に保存する。
また、他の例として「さしすせそベスト」というアルバムが存在したとき、XML読みパターンは「<SINGER>さしすせそ</SINGER>べすと」として登録されている。このXML読みパターンは別名追加前では「さしすせそべすと」という木構造読みパターンであるが、別名追加後は「(さしすせそ|さっきー)べすと」という木構造読みパターンに変換される。すなわち使用者は、「さしすせそべすと」「さっきーべすと」いずれの発話でも、音楽CD13を検索できるようになる。
このように原選曲データ中のXML読みパターンに<SINGER>タグを用いて、読みのどの部分が歌手名に相当するかが示されているため、ある歌手に別名の読みを追加するといった木構造読みパターンの更新が容易にできる。このように、XMLタグを用いて楽曲データ読みパターンの論理構造を示すことで、木構造読みパターンの生成や更新をほぼ自動的に行うことができる。
また、アルバム名から連想されるキーワードを特定し、そのキーワードを音声認識辞書に登録することでアルバムの検索を容易にすることもできる。アルバムには、その歌手のベスト盤に相当するものがある。そしてそのようなアルバムを購入する使用者は多い。したがってベスト盤の検索を容易にする手段を用意することで、更なる利便性を図ることができる。
ベスト盤のアルバム名には「ベスト」「Best」「グレーテストヒッツ」「Greatest Hits」といった単語を有するものが多い。したがって、こうした単語を原語表示名、または日本語表示名に持つ音楽CD13に対し、「べすと」という読みのキーワードを対応させて木構造読みパターンに付与するという規則を読みデータ変換規則管理部202に持たせても良い。そして使用者が「べすと」という単語を発声したら、キーワード「ベスト」に対応するアルバム名を候補としてディスプレイに表示する。このようにして、使用者はアルバム名を正確に覚えていなくても、ベスト盤に相当するアルバムを容易に検索することが可能となる。
ここでアルバム名が「ベスト」「グレーテストヒッツ」といった単語を含んでいるか否かの判断は機械的に行うことができ、人手を必要としないことも大きな利点である。なお、上記単語がアルバム名に含まれているかどうかの判定は簡単なロジックで判定可能である。したがって上記のような単語を含む曲名に「べすと」という読みのキーワードを割り当てる機構を楽曲検索装置100に持たせることも可能である。
さらに、上記実施例では「べすと」という読みのキーワードを割り当てたが、他の好適なキーワード「だいひょうきょく」(代表曲)などを割り当てても良い。さらには、1962-1966というように2つの年代を並べたアルバム名を有するアルバムもベスト盤と判断して差し支えない。したがってこうしたアルバム名も同様にベスト盤として検索できるようにすることで利便性を向上させることができる。
なお、上述のベスト盤にキーワードを割り当てる方法は原語表示名、または日本語表示名の情報を元に行うため、XML読みパターンのような論理構造を持つ読みパターンを必要としない。従って、このベスト盤に関する規則は、上記木構造読みパターン生成規則(a)’から(f)’と併用しても良いし、ベスト盤に関する規則のみを用いても良い。
ここで、楽曲検索装置100及び、サーバ200の処理動作について説明する。
まず、音楽CD13を音楽CDドライブ1に挿入したときの楽曲検索装置100の処理動作について説明する。図13は音楽CD13を音楽CDドライブ1に挿入したときの楽曲検索装置100の処理を示すフロー図である。この処理は、音楽CDドライブ1に音楽CD13が挿入されことによって開始する。
S171では、音楽CD13のTOC情報を読み込む。CPU2は、音楽CDドライブ1に、音楽CD13が挿入されると、その音楽CD13からTOC情報を読み込み、その情報を選曲データ取得部3に送る。TOC情報を読み込みがなされると、ステップS172へ進む。
S172では、TOC情報及びHDD4に保存されている更新日時がセンターに送信される。選曲データ取得部3は、音楽CDドライブ1からTOC情報を受け取ると、図示せぬ無線通信手段によりサーバ200にTOC情報を送信する。また、選曲データ取得部3は、サーバ200に最後にアクセスしたアクセス日時をHDD4に記憶しており、そのアクセス日時をサーバ200に送信する。センターへの送信がなされるとステップS173へ進む。
S173では、サーバ200から選曲データ及び更新された選曲データ識別子リストを受信する。選曲データ取得部3は、サーバ200から選曲データ、選曲データ識別子リストを取得する。選曲データ及び選曲データ識別子リストを受信すると、ステップS174へ進む。
S174では、選曲データをHDD4に保存する。選曲データ取得部3は、サーバ200から受信した選曲データをHDD4に保存する。選曲データを保存すると、ステップS175へ進む。
S175では、選曲データのアルバム名にBEST、ベスト、Greatest Hits、グレーテストヒッツの単語が含まれていたら対応する木構造読みパターンに「べすと」の読みを並記する。「べすと」の読みを並記すると、ステップS176へ進む。
S176では、更新された選曲データ識別子リストに含まれる識別子に対応する選曲データがHDD4に保存されているか否かを判定する。CPU2は、HDD4に保存されている選曲データが、サーバ200から受信した選曲データ識別子リストに存在するか否かを判定し、含まれているならS177へ、そうでなければS178へ進む。
S177では、HDD4に保存された選曲データをサーバから受信し最新のものに更新する。S178では、HDD4の更新日時を現在の日時に書き換える。
S179では、音楽CD13の楽曲データをMP3ファイルに変換し、楽曲データファイルに保存する。
次に、TOC情報、更新日時を受信したときのサーバ200の処理動作に関して説明する。図14はサーバ200が楽曲検索装置100からTOC情報、更新日時を受信したときの処理動作を示すフロー図である。
S181では、TOC情報および更新日時を受信する。楽曲検索装置100からTOC情報および更新日時を受信すると、ステップS182へ進む。
S182では、TOC情報に対応する選曲データを楽曲検索装置100に送信する。選曲データ検索部204は、楽曲検索装置100から取得したTOC情報に対応する選曲データを選曲データデータベースから検索し、楽曲検索装置100に送信する。選曲データを送信すると、ステップS183へ進む。
S183では、更新日時より前に発売された音楽CDの選曲データのうち、更新日時より後に更新された選曲データの識別子をリストにして楽曲検索装置100に送信する。
次に、楽曲検索する際の楽曲検索装置100の処理動作について説明する。図15は、楽曲検索時の楽曲検索装置100の処理を示すフロー図である。図15は使用者が楽曲名を発話し、楽曲を検索したときの楽曲検索装置100の処理を示す。
S191では、音声認識プログラムにより入力音声を読みを表す文字列に変換する。音声認識プログラムは、デジタル化された入力音声を音声認識辞書に登録された単語の読みと照合する。音声認識辞書の中から入力された入力音声に最も近い発音を示す読みを選択し、その読みを識別子検索プログラムに渡しステップS192へ進む。ここで、音声認識辞書に図7の各木構造読みパターンが受理する読みをすべて登録したものと仮定する。この読みが登録された状態で使用者が「はろー」と発話すると、音声認識プログラムによりその入力音声は「はろー」という読み(文字列)に変換される。
S192では、識別子検索プログラムにより読みに適合する木構造読みパターンを持つ識別子をすべて求める。識別子検索プログラムは、音声認識プログラムから渡された読みを識別子テーブルと照合する。そして、対応する識別子を全て選択すると共に、選択した識別子を識別子検索プログラムへ渡し、ステップS193へ進む。なお、識別子テーブルには図16に示すように識別子と、この識別子に対応する木構造読みパターンが記述される。図16は、識別子テーブルを説明するためのイメージ図である。
また、識別子テーブルは、データの種別(曲コード,曲名等)によって階層化せずに全ての選曲データをその発音順(たとえばアルファベット順や五十音順)に記憶している。すなわち、マイク16から入力された入力音声は、A/D変換・音声認識によって発音が割り出され読みに変換されるため、それだけそのデータの種別を判断することができない。従って、全てのデータをテーブル化して一律に検索し、該当するデータとそのデータ種別を同時に割り出すようにしている。
さて、図7に示す木構造読みパターンと対応する識別子が識別子テーブルに登録されているとする。識別子検索プログラムは、音声認識プログラムから、「はろー」という読みが与えられたとき、識別子テーブルに保持されているすべての各木構造読みパターンと読み「はろー」を照合し、読みが適合する木構造読みパターンに対応する識別子をすべて検索結果として返す。この例では「はろー」に対応する識別子010102が検索結果として返される。
S193では、識別子の個数が複数であるか否かを判定する。この識別子の個数が複数であるか否かの判定は、識別子選択プログラムによって行われる。識別子の個数が複数である場合、ステップS194へ進み、そうでない場合は、ステップS195へ進む。
識別子選択プログラムは、識別子検索プログラムから渡された識別子を属性テーブルと照合することによって、識別子の個数が複数であるか否かの判定を行う。属性テーブルは、歌手テーブル、音楽CDテーブル、楽曲テーブルの3つのテーブルから構成される。図17は、属性テーブルを概略構成を示すイメージ図であり、(a)は歌手テーブルの例であり、(b)は音楽CDテーブルの例であり、(c)は楽曲テーブルの例である。
歌手テーブルにはHDD4に保存されている楽曲データの歌手の識別子と、その識別子に対する原語表示名、日本語表示名、歌手が歌唱/演奏する音楽CD13の識別子リストから構成される。
音楽CDテーブルにはHDD4に保存されている音楽CD13の識別子と、その識別子に対する原語表示名、日本語表示名、音楽CD13に収録されている楽曲の識別子リストから構成される。
楽曲テーブルにはHDD4に保存されている楽曲の識別子と、その識別子に対する原語表示名、日本語表示名、楽曲ファイル名から構成される。
例えば、歌手「ABCD」の音楽CD”SINGLES”の第1曲目である「A & Z」の情報がどのように格納されているかを示す。図3(a)より、歌手「ABCD」の識別子は010000である。歌手テーブルの010000の欄に原語表示名、日本語表示名、音楽CD識別リストが記述されている。音楽CD識別リストに格納されている010100が音楽CD「SINGLES」に対応する識別子である。
音楽CDテーブルの010100の欄に原語表示名、日本語表示名、楽曲識別リストが記述されている。楽曲識別リストに格納されている最初の識別子010101が第1曲目の楽曲に相当する。楽曲テーブルの010101の欄に原語表示名、日本語表示名、楽曲ファイル名が記述されている。
なお、本実施例では、識別子は6桁の数字であり、上2桁が歌手、中2桁が音楽CD,下2桁が音楽CD中の曲順を表す。従って、たとえば010101という識別子が得られたら、これは楽曲の識別子であり、音楽CDの曲順は1番であること。音楽CDの識別子は010100であること。歌手の識別子は010000であることが分かる。
属性テーブルのそれぞれの識別子に対応する情報を読み出すことで、該識別子は歌手「ABCD」の音楽CD「SINGLES」の第1曲目である「A & Z」という楽曲に対応すること、またそれに対応する楽曲ファイル名も判別できる。
属性テーブルは楽曲検索装置100出荷時点の最新の楽曲情報が初期値として設定されている。そしてセンター200から選曲データ取得部1を介して選曲データをダウンロードした時、その内容にしたがって更新される。
ステップS194では、識別子を1個に絞り込む。識別子選択プログラムは識別子検索プログラムから渡された識別子が複数個あったとき、あるいは識別子が歌手に対応し、かつその歌手の音楽CDが複数枚存在するときに識別子の候補を1個に絞り込む。また、識別子選択プログラムは、選択された項目に対応する識別子をシーケンスプログラムに送信する。
複数個の識別子を1個に絞り込む手順としては、使用者に選択させる、あるいは楽曲選択装置が何らかの優先度にしたがって識別子を選択する等好適な方法を用いることができる。
例えば、「れれれ」という読みを持つ楽曲が3曲登録されているとする。使用者が「れれれ」と発話すると、識別子検索プログラムは3個の識別子、例えば110107、120102、130111を検索結果として返す。すると識別子選択プログラムはこの識別子を元に属性テーブルを参照し、対応する3つの原語表示名「LeLeLe」、「レ・レ・レ」、「れ・れ・れ」を得る。
また、本実施例では識別子は6桁の数字であり、上2桁を歌手の識別子としている。したがって歌手の識別子もそれぞれ110000、120000、130000と求められるので、それらの曲を歌っている歌手名も分かる。仮に上記3つの識別子に対応する歌手名をそれぞれA、B、Cとする。そしてこれら原語表示名を図18(a)に示すようにモニタ14に候補として表示する。そして使用者にどの楽曲を選曲するか選択を促す。使用者は音声認識でたとえば「いちばん」「にばん」「さんばん」といった数字を発声する事で、あるいはリモコン12を使用することで候補を一つ選択する。なお、図18(a)は同じ読みをもつ楽曲を示すモニタ14の表示例であり、(b)は2枚組みのアルバムを示すモニタ14の表示例である。
同様に、例えば、「THE EFG」という歌手の音楽CD2枚組のアルバム「THE EFG 1962-1966」の「THE EFG 1962-1966 Disc1」、「THE EFG 1962-1966 Disc2」が登録されているとする。前者はアルバムの1枚目の音楽CD、後者は2枚目の音楽CDに対応する。使用者が「いーえふじーせんきゅーひゃくろくじゅーにせんきゅーひゃくろくじゅーろく」と発話すると、この発話は1枚目及び2枚目の音楽CDの木構造読みに適合する。
従って、識別子検索プログラムは対応する2つの識別子例えば020100、020200を検索結果として返す。すると識別子選択プログラムは識別子020100、020200を元に属性テーブルを参照し、対応する2つの原語表示名「THE EFG 1962-1966 Disc1」、「THE EFG 1962-1966 Disc2」を得る。そしてこれら表示名を図18(b)に示すようにモニタ14に候補として表示する。使用者は音声認識でたとえば「いちばん」「にばん」「さんばん」といった数字を発声する事で、あるいはリモコン12を使用することで候補を一つ選択する。
S195では、識別子が歌手に対応し、かつその歌手の音楽CD13が複数枚登録されているか否かを判定する。音楽CD13が複数枚登録されている場合はステップS196へ進み、そうでない場合はステップS197へ進む。
S196では、音楽CDを1枚選択しステップS197へ進み、ステップS197では、選択された識別子に対応する楽曲を再生する。絞り込む手順としては、使用者に選択させる、あるいは楽曲選択装置が何らかの優先度にしたがって識別子を選択する等好適な方法を用いることができる。
識別子が歌手に対応し、かつ歌手の音楽CDが複数枚楽曲検索装置100に保存されているときについて、例を元に識別子選択プログラムの動作を説明する。使用者が「えーびーしーでぃー」と発話すると、識別子検索プログラムは図17(a)の歌手テーブルの内容に従い、歌手「ABCD」に対応する識別子010000を検索結果として返す。すると識別子選択プログラムには識別子010000を元に図18(b)の音楽CDテーブルを参照する。
この例の場合、その歌手の音楽CDが2枚登録されており、それらの識別子はそれぞれ010100、010200であると判断する。そして音楽CDテーブルを参照して、両音楽CDの原語表示名「SINGLES」、「green」を得る。そしてこれら表示名をモニタ14に候補として表示する。使用者は音声認識でたとえば「いちばん」「にばん」といった数字を発声する事で、あるいはリモコン12を使用することで候補を一つ選択する。以上述べた要領で、識別子選択プログラムは1枚の音楽CDあるいは1曲の楽曲に対応する識別子への絞込みを行う。S197では、選択された識別子に対応する楽曲を再生する。
ここで、モニタ14への音楽CD13の名称などの表示及び音声による検索例に関して説明する。このモニタ14への表示はシーケンスプログラムによってなされるものである。シーケンスプログラムは識別子選択プログラムから送られた識別子を元に対応する音楽CDあるいは楽曲の文字情報および楽曲ファイル名を属性テーブルから検索し、モニタ14への表示、および楽曲の再生を行う。
使用者が識別子010100に対応する音楽CD「SINGLES」を選択したときの表示例を図19に示す。また、使用者が識別子020200に対応する音楽CD「THE EFG 1962-1966 Disc2」を選択したときの表示例を図20に示す。それぞれ第1曲目の楽曲表示名がハイライトされているが、このハイライトは現在演奏中の楽曲であることを示す。
さらに本発明では、外国の歌手の楽曲に対し原語表示名に加え、日本語表示名および日本語表示名に対応する木構造読みパターンを用意したので、使用者の好みに応じてモニタ14の表示を日本語表示に切り替えたり、日本語表示名に対応した読みにより楽曲検索が可能である。
図20(a)は原語による歌手名、音楽CD名、楽曲名表示の例である。この表示を日本語表示に切り替えた例を図20(b)に示す。このように外国の歌手のCDに対し、使用者の好みに応じて原語表示および日本語表示を切り替えて使用できる。
また、日本語表示に対応した読みによる楽曲検索の例を説明する。図6の原選曲データ中の19行目以下に、原語表示名「HIJK」という楽曲に対する情報が記述されている。これは日本語表示名「あいうえお」を持つ。それに従い、XML読みパターンには原語表示名、日本語表示名それぞれに対応する「えいちあいじぇいけい」「あいうえお」が登録されている。
図17(d)に示される、これらの木構造読みパターンに対応する識別子020202をそれぞれ音声認識辞書、および識別子テーブルに登録することで、どちらの読みを使用者が発話してもこの楽曲を検索することが可能となる。従って、図20(a)がモニタ14に表示されているときでも「あいうえお」と発話しても2曲目の「HIJK」を検索することができる。
以上述べたように本発明では、原語表示名に加え、日本語表示名および日本語表示名に対応する木構造読みパターンを用意したので使用者の好みに応じてモニタ14の表示を日本語表示に切り替えたり、日本語表示名に対応した読みにより楽曲検索が可能である。
また、モニタ14の表示に使用する言語にかかわらず、使用者は原語表示名に対応する読み、日本語表示名に対応する読みいずれでも楽曲を検索することができる。
なお、楽曲データは、音楽CD13から読み出してHDD4に格納する場合について説明したが、本発明は、これに限定されるものではなく、ネットワークを介して配信されるものや、DVDから取得するものであってもよい。
1 音楽CDドライブ、2 CPU、3 選曲データ取得部、4 HDD、5 A/Dコンバータ、6 ROM、7 RAM、8 表示制御部、9 D/Aコンバータ、9’ アンプ、10 リモコン受信機、11 アンプ、12 リモコン、13 音楽CD、14 モニタ、15 スピーカ、16 マイク、100 楽曲検索装置、200 サーバ、201 原選曲データデータベース、202 読みデータ変換規則管理部、203 木構造読みデータ変換部、204 選曲データデータベース、205 選曲データ検索部