(57)【特許請求の範囲】
【請求項１】
楽曲の１つである対象楽曲の楽譜を表す楽曲データを取得する楽曲データ取得手段と、
前記楽曲データ取得手段で取得した楽曲データに対して規定された対象区間に存在している音符の数である区間音符数を取得する音符数取得手段と、
前記対象楽曲の歌詞を構成する文字列を表す歌詞データを取得し、当該歌詞データによって表され、前記対象区間と対をなす規定区間での歌詞を構成する文字列を、外部から入力された文字列である替歌歌詞へと置換する替歌取得手段と、
前記替歌取得手段で置換された替歌歌詞の音節の数である区間音節数を取得する音節数取得手段と、
前記音符数取得手段にて取得した区間音符数、及び前記音節数取得手段で取得した区間音節数に基づいて、当該対象区間中の音符と当該規定区間中の音節との数が一致するように、前記対象区間中の音符及び前記規定区間中の音節のうちの少なくとも一方を調整する調整制御を実行する調整手段と、
前記調整手段によって調整された前記対象区間中の音符に前記規定区間中の音節を、当該対象区間及び当該規定区間における時間軸に沿った順序にて割り当てる割当手段と
を備え、
前記調整手段は、
前記区間音符数が前記区間音節数よりも多ければ、前記対象区間における時間軸に沿って連続する少なくとも２つの音符を含む１つの音符群である特定音符群を前記対象区間中の音符の１つとすることを、前記調整制御として実行し、
前記区間音符数が前記区間音節数よりも少なければ、前記対象区間中の音符を増加させることを、前記調整制御として実行し、
さらに、
前記調整手段は、
前記区間音符数が前記区間音節数よりも少なければ、前記対象区間における音符長についての分散である音符長分散を導出する分散導出手段を備え、
前記分散導出手段で導出した音符長分散が予め規定された閾値よりも大きければ、当該対象区間において音符長が最大である音符から順に、２つの音符に分割することを、前記調整制御として実行する
ことを特徴とする歌詞割当装置。
【請求項２】
前記調整手段は、
前記分散導出手段で導出した音符長分散が前記閾値以下であれば、当該対象区間に含まれ、かつ、時間長が短い休符から順に前記音符に変更することを、前記調整制御として実行する
ことを特徴とする請求項１に記載の歌詞割当装置。
【請求項３】
前記調整手段は、
前記区間音符数が前記区間音節数よりも少ない場合に、前記楽曲データに対応する楽譜の変更を禁止する指令を外部から受け付けると、前記規定区間の時間軸に沿って連続する少なくとも２つの音節を含む１つの特定音節群を前記規定区間中の音節の１つとすることを、前記調整制御として実行する
ことを特徴とする請求項１または請求項２に記載の歌詞割当装置。
【請求項４】
前記割当手段にて、前記対象区間中の音符に前記規定区間中の音節が割り当てられた、前記楽曲データを、音声合成処理によって演奏する演奏手段
を備えることを特徴とする請求項１〜請求項３のいずれか一項に記載の歌詞割当装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲に歌詞を割り当てる歌詞割当装置に関する。
【背景技術】
【０００２】
従来、情報の入力を受け付ける入力部と、情報を表示する表示部と、当該装置を構成する各部を制御する制御部とを備え、楽曲の楽譜を表し、かつメモリなどに記憶された楽曲データに含まれる音符に、入力部を介して入力された歌詞を表す文字列における各文字を割り当てる歌詞割当装置が知られている（特許文献１参照）。
【０００３】
この特許文献１に記載の歌詞割当装置では、歌詞を表す文字列中に、予め規定された記号（以下、規定記号とする）が含まれていれば、複数の文字を一つの音符に割り当てることや、１つの文字を複数の音符に割り当てることがなされる。すなわち、当該歌詞割当装置の利用者は、前者であれば、１つの音符に割り当てたい複数の文字の前または後に規定記号を入力し、後者であれば、複数の音符に割り当て、かつ長音化したい特定の文字の前に規定記号を入力する必要がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１６３０５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、特許文献１に記載された歌詞割当装置の利用者の中には、１つの楽曲について、当該楽曲に対して予め作成された歌詞を変更して替え歌を作成したいと考える利用者も存在する。
【０００６】
しかしながら、特許文献１に記載の歌詞割当装置を用いて楽曲に適するように歌詞を割り当てるためには、楽曲データに対応する楽曲の音符数を考慮して、歌詞中の適切な位置に規定記号を含める必要がある。通常、楽曲の音符数を考慮して歌詞を入力することは、作詞作曲の専門知識を有する人物でなければ困難である。つまり、作詞作曲の専門知識を有していない一般の利用者では、特許文献１に記載の歌詞割当装置を用いて、替え歌を作成することが困難であるという問題があった。
【０００７】
そこで、本発明は、歌詞割当装置において、作詞作曲の専門知識を有していない一般の利用者であっても、楽曲に適するように替え歌の歌詞を割り当てることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するためになされた本発明の歌詞割当装置では、音符数取得手段が、楽曲の１つである対象楽曲の楽譜を表す楽曲データを取得し、その取得した楽曲データに対して規定された対象区間に存在している音符の数である区間音符数を、音符数取得手段が取得する。
【０００９】
そして、替歌取得手段が、対象楽曲の歌詞を構成する文字列を表す歌詞データを取得し、当該歌詞データによって表され、対象区間と対をなす規定区間での歌詞を構成する文字列を、外部から入力された文字列である替歌歌詞へと置換すると、その置換された替歌歌詞の音節の数である区間音節数を、音節数取得手段が取得する。
【００１０】
さらに、音符数取得手段にて取得した区間音符数、及び音節数取得手段で取得した区間音節数に基づいて、調整手段が、当該対象区間中の音符と当該規定区間中の音節との数が一致するように、対象区間中の音符及び規定区間中の音節のうちの少なくとも一方を調整する調整制御を実行し、割当手段が、調整手段によって調整された対象区間中の音符に規定区間中の音節を、当該対象区間及び当該規定区間における時間軸に沿った順序にて割り当てる。
【００１１】
ただし、本発明の歌詞割当装置において、調整手段は、区間音符数が区間音節数よりも多ければ、対象区間における時間軸に沿って連続する少なくとも２つの音符を含む１つの音符群である特定音符群を対象区間中の音符の１つとすることを、調整制御として実行する。
【００１２】
このような歌詞割当装置によれば、作詞作曲の専門知識を有していない一般の利用者であっても、楽曲に適するように替え歌の歌詞を割り当てることができる。
特定音符群を生成する方法としては、時間軸に沿って互いに連続する２つの音符の組合せのうち、当該音符間の音高差が小さいものから順に特定音符群とすることや、時間軸に沿って互いに連続する２つの音符の組合せのうち、当該音符間の間隔が短いものから順に特定音符群とすることが考えられる。
【００１３】
また、本発明における調整手段は、区間音符数が区間音節数よりも少なければ、対象区間中の音符を増加させることを、調整制御として実行する。さらに、調整手段では、分散導出手段が、区間音符数が区間音節数よりも少なければ、対象区間における音符長についての分散である音符長分散を導出し、その導出された音符長分散が予め規定された閾値よりも大きければ、当該対象区間において音符長が最大である音符から順に、２つの音符に分割することを、調整制御として実行する。
このような歌詞割当装置によれば、対象区間の音符数に拘わらず、楽曲に適するように替え歌の歌詞を割り当てることができる。
【００１４】
なお、対象区間中の音符を増加させる方法としては、特定区間に存在している休符を音符に変更することや、特定区間に存在している１つの音符を２つの音符に分割することが考えられる。
【００１５】
また、本発明における調整手段は、分散導出手段が導出した音符長分散が閾値以下であれば、当該対象区間に含まれ、かつ、時間長が短い休符から順に音符に変更することを、調整制御として実行しても良い。
さらに、本発明における調整手段は、区間音符数が区間音節数よりも少ない場合に、楽曲データに対応する楽譜の変更を禁止する指令を外部から受け付けると、規定区間の時間軸に沿って連続する少なくとも２つの音節を含む１つの特定音節群を規定区間中の音節の１つとすることを、調整制御として実行しても良い。
【００１６】
このような歌詞割当装置によれば、替歌歌詞の文字数に拘わらず、楽曲に適するように替え歌の歌詞を割り当てることができる。
さらに、本発明の歌詞割当装置は、演奏手段が、割当手段にて、対象区間中の音符に規定区間中の音節が割り当てられた、楽曲データを、音声合成処理によって演奏しても良い。
【００１７】
本発明の歌詞割当装置の利用者は、替歌歌詞が割り当てられた楽曲を聴くことができ、その替歌歌詞が割り当てられた楽曲が良好であるか否かを判断できる。
【図面の簡単な説明】
【００１８】
【図１】楽曲の概略構成を示す図である。
【図２】楽曲データの概略構成を示す図である。
【図３】歌詞データの概略構成を示す図である。
【図４】実施形態における歌詞割当装置の概略構成を示すブロック図である。
【図５】歌詞割当処理の処理手順を示すフローチャートである。
【図６】替歌歌詞の入力を受け付ける替歌歌詞入力画面を例示する図である。
【図７】割当処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下に本発明の実施形態を図面と共に説明する。
本発明が適用された歌詞割当装置１０（図４参照）は、楽曲の楽譜を表す楽曲データ中の音符に、歌詞を構成する文字列を表す歌詞データ中の音節を割り当てるものである。
〈楽曲データ、及び歌詞データの構造について〉
まず、歌詞割当装置１０が処理を実行する対象である楽曲データ及び歌詞データについて説明する。
【００２０】
ここで、図１は、楽曲の概略構成を示す図であり、図２は、楽曲データの概略構成を示す図であり、図３は、歌詞データの概略構成を示す図である。
楽曲データは、楽曲の主旋律に関する楽譜を表す楽譜データと、当該楽曲を識別する識別データとを少なくとも有し、いわゆる周知のＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）規格にて規定されたデータである。
【００２１】
通常、楽曲の主旋律は、図１に示すように、複数の構成区間５０Ａ〜５０Ｍ（例えば、いわゆるＡメロや、Ｂメロ、サビなど）を有している。その構成区間５０Ａ〜５０Ｍの各々は、作曲者が意図して当該主旋律を区分けしたものであり、時間軸に沿って連続する複数の音符のまとまりからなる対象区間Ｉ（Ｉ＝１〜Ｉｍａｘ）（いわゆるフレーズ）を少なくとも１つ含んでいる。
【００２２】
そして、複数個の対象区間Ｉを有した楽譜データは、図２に示すように、主旋律を形成する音符ＮＯkが表されたデータである。本実施形態における各音符ＮＯkは、当該音符ＮＯkの音高（図２中、ノートナンバー）ＮＮk、音符ＮＯkの出力を開始するまでの当該楽曲の演奏開始からの時間を表す出力開始タイミング（図２中、ノートオンタイミング）ＯＮk、及び音符ＮＯkの出力を終了するまでの当該楽曲の演奏開始からの時間を表す出力終了タイミング（図２中、ノートオフタイミング）ＯＦＦkによって表されている。
【００２３】
なお、本実施形態において、符合Ｉは、当該対象区間Ｉが楽曲の演奏開始から何番目のものであるかを表すインデックス番号であり、符合ｋは、当該音符ＮＯkが楽曲の演奏開始から何番目に演奏されるものであるかを表すインデックス番号である。
【００２４】
歌詞データ７０は、楽曲の歌詞を表すデータであり、歌詞を構成する文字列が規定されている。歌詞データ７０の各々は、同一の楽曲について、楽曲データと対応付けられている。
【００２５】
具体的には、歌詞データ７０は、図３に示すように、歌詞を構成する文字列からなる文書データ７１と、楽曲における対象区間Ｉと対をなす規定区間Ｊ毎に文書データ７１の文字列を区切る区切記号７２（図中７２Ａ〜７２Ｄ）とを有している。本実施形態における区切記号７２は、文書データ７１における文字列の改行を表す改行記号であっても良いし、文書データ７１の文字列中に予め規定された数以上連続して含まれる空白（いわゆるスペース）であっても良い。
【００２６】
この歌詞データ７０は、楽曲データ共に、カラオケを用途として予め作成されることが一般的である。このため、歌詞を構成する文字（以下、歌詞構成文字とも称す）の出力タイミングである歌詞出力タイミングを、楽曲データの演奏と対応付けるタイミング対応関係が規定されている。
【００２７】
具体的に、本実施形態におけるタイミング対応関係は、楽曲データの演奏を開始するタイミングに、文書データ７１として規定された歌詞構成文字の出力を開始するタイミングが対応付けられた上で、楽曲の時間軸に沿った各歌詞構成文字の歌詞出力タイミングが、楽曲データの演奏を開始からの経過時間によって規定されている。このタイミング対応関係は、一般的に、楽曲データの単位区間Ｉと当該単位区間Ｉに対応する規定区間Ｊとの組合せごとに規定されている。
【００２８】
なお、ここでいう経過時間とは、例えば、表示された歌詞構成文字の色替えを実行するタイミングを表す時間であり、色替えの速度によって規定されている。
〈歌詞割当装置について〉
本実施形態における歌詞割当装置１０は、図４に示す情報処理装置１０によって構成されている。
【００２９】
その情報処理装置１０は、図４に示すように、通信部１１と、表示部１２と、入力受付部１３と、記憶部１４と、演奏部１５と、制御部２０とを備えている。
このうち、通信部１１は、情報処理装置１０をネットワーク（例えば、専用回線やＷＡＮ）に接続し、その接続されたネットワークを介して外部と通信を行うものである。
【００３０】
そして、表示部１２は、画像を表示する表示装置（例えば、液晶ディスプレイやＣＲＴ等）である。また、入力受付部１３は、入力機器（例えば、キーボードやポインティングデバイス）１７を介して情報や指令の入力を受け付けるインターフェースである。
【００３１】
また、記憶部１４は、記憶内容を読み書き可能に構成された不揮発性の記憶装置（例えば、ハードディスク装置）である。この記憶部１４には、処理プログラムや、楽曲データ、歌詞データが少なくとも格納される。
【００３２】
演奏部１５は、楽曲データに基づいて、当該楽曲データによって表された楽曲を演奏するものであり、例えば、周知のＭＩＤＩ音源（音源モジュール）である。その演奏部１５には、少なくとも、当該演奏部１５にて演奏された楽曲の楽音を出力する音出力部１６が接続されている。なお、本実施形態における音出力部１６は、周知のスピーカ構造である。
【００３３】
さらに、制御部２０は、ＲＯＭ２１と、ＲＡＭ２２と、ＣＰＵ２３とを少なくとも有した周知のマイクロコンピュータを中心に構成されている。
このうち、ＲＯＭ２１は、電源が切断されても記憶内容を保持する必要のある処理プログラムやデータを格納するものである。また、ＲＡＭ２２は、処理プログラムやデータを一時的に格納するものであり、このＲＡＭ２２には、少なくとも記憶部１４から処理プログラムが転送されて格納される。
【００３４】
そして、ＣＰＵ２３は、ＲＯＭ２１やＲＡＭ２２に記憶された処理プログラムに従って各処理（各種演算）を実行する。
なお、本実施形態では、制御部２０が実行する処理プログラムとして、楽曲データ及び歌詞データに基づいて、その楽曲データ中の音符に歌詞データ中の音節を割り当てる（以下、歌詞割当処理とする）ものが予め用意されている。
〈歌詞割当処理について〉
次に、制御部２０が実行する歌詞割当処理について説明する。
【００３５】
ここで、図５は、歌詞割当処理の処理手順を示すフローチャートである。
この歌詞割当処理は、当該歌詞割当処理を起動するための起動指令が、入力受付部１３を介して制御部２０に入力されると起動される。
【００３６】
図５に示すように、歌詞割当処理は、起動されると、まず、入力受付部１３を介して入力された情報によって指定された楽曲（以下、対象楽曲とする）に対応する楽曲データ（楽譜データ）を取得する（Ｓ１１０（Ｓは、ステップを意味する））。
【００３７】
そして、Ｓ１１０にて取得した楽譜データによって表される楽曲の構造を解析する曲構造解析を実行する（Ｓ１２０）。本実施形態における曲構造解析（Ｓ１２０）では、楽譜データ中の各対象区間Ｉの開始位置を表す音符ＮＯkのインデックス番号（以下、区間開始位置とする）ｓｔI、及び各対象区間Ｉの終了位置を表す音符ＮＯkのインデックス番号（以下、区間終了位置とする）ｅｎIを特定する。
【００３８】
具体的には、楽曲データ中の楽譜データにおいて、時間軸に沿って互いに隣接する音符ＮＯk-1，ＮＯk（ただし、ｋ≧２）の間で無音となる時間長を表す無音時間ＮＭＬkを、下記（１）式に基づいて、音符ＮＯk-1，ＮＯkの組合せ毎に算出する。
【００３９】
【数１】
0005418557.tif 000002
【００４０】
その算出された全ての無音時間ＮＭＬkの中で時間長が比較的長い無音時間（以下、適合無音時間とする）ＮＭＬkを特定する。本実施形態において、適合無音時間ＮＭＬkは、無音時間ＮＭＬkのヒストグラムにおいて極小点よりも値が大きな全ての無音時間ＮＭＬkであっても良いし、無音時間ＮＭＬkのヒストグラムにおける変極点よりも値が大きな全ての無音時間ＮＭＬkであっても良い。
【００４１】
このようにして特定された各適合無音時間ＮＭＬkに対応する音符ＮＯkのインデックス番号ｋを、対象区間Ｉの区間開始位置ｓｔIとして取得する。これと共に、対象区間Ｉ＋１に対応する区間開始位置ｓｔI+1を表す音符ＮＯkxのインデックス番号ｋｘよりも１つ小さい音符ＮＯkx-1のインデックス番号ｋｘ−１を、対象区間Ｉの区間終了位置ｅｎIとして取得する。なお、本実施形態では、対象区間１（即ち、Ｉ＝１）の区間開始位置ｓｔ1を、楽譜データの時間軸に沿った最初の音符ＮＯ1に対応するインデックス番号１（即ち、ｋ＝１）とし、対象区間Ｉmaxの区間終了位置ｅｎImaxを、楽譜データの時間軸に沿った最後の音符ＮＯkmaxに対応するインデックス番号ｋｍａｘとする。
【００４２】
さらに、歌詞割当処理では、対象区間の数Ｎを特定する（Ｓ１３０）。すなわち、本実施形態のＳ１３０では、対象区間Ｉｍａｘの値を、対象区間の数Ｎとする。
続いて、Ｓ１２０にて取得された対象区間Ｉの区間開始位置ｓｔI及び区間終了位置ｅｎIに基づいて、楽譜データ中の各対象区間Ｉに含まれる音符ＮＯkの数（以下、区間音符数とする）ＰＨＮＮIを、下記（２）式により算出する（Ｓ１４０）。
【００４３】
【数２】
0005418557.tif 000003
【００４４】
さらに、Ｓ１１０にて取得した楽譜データ中の各音符ＮＯkを解析する音符解析を実行する（Ｓ１５０）。
本実施形態の音符解析では、楽譜データにおいて、音符ＮＯk-1，ＮＯkの間での音高差ＮＮＤkと、音符ＮＯkの時間長を表す音符長ＮＬkとを、下記（３）式に基づいて算出する。さらに、本実施形態の音符解析では、下記（３）式に基づいて、全ての音符ＮＯkの中で時間長が最長である音符長ＮＬkを最大音符長ＭＮＬとして、全ての音高差ＮＮＤkの中で値が最大であるものを最大音高差ＭＮＮＤとして導出する。なお、下記（３）式中のａｂｓは絶対値を返す関数を示し、ｍａｘは最大値を返す関数を示す。
【００４５】
【数３】
0005418557.tif 000004
【００４６】
そして、対象区間Ｉ及び規定区間Ｊを初期値（本実施形態では、Ｉ＝１，Ｊ＝１）に設定する（Ｓ１６０）。さらに、対象楽曲に対応する歌詞データ７０の文書データ７１から、規定区間Ｊでの歌詞を構成する文字列（以下、対象歌詞文字列と称す）を取得する（Ｓ１７０）。
【００４７】
上述したようにタイミング対応関係として、対象区間Ｉの演奏を開始するタイミングに、規定区間Ｊの歌詞構成文字の出力を開始するタイミングが対応付けられているため、楽曲データから対象区間Ｉを特定することで、その対象区間Ｉに対応する規定区間Ｊでの歌詞を対象歌詞文字列として取得できる。
【００４８】
なお、歌詞割当装置１０がカラオケ装置として構成されている場合、歌詞データが楽曲データに含まれていることが多いため、対象歌詞文字列は、楽曲データと共に取得しても良い。
【００４９】
その取得した対象歌詞文字列を表示すると共に、新たな文字列の入力を受け付ける替歌歌詞入力画像ＬＧ（図６参照）を、表示部１２に表示する（Ｓ１８０）。この替歌歌詞入力画像ＬＧは、図６に示すように、Ｓ１７０にて取得した対象歌詞文字列を表示する対象歌詞表示欄８０と、入力装置１７を介して入力された新たな文字列を表示する替歌歌詞表示欄８１と、文字列の入力をキャンセルするキャンセルボタン８３と、替歌歌詞表示欄８１に表示された文字列を確定して入力を受け付ける入力完了ボタン８２とを備えている。
【００５０】
続いて、替歌歌詞の取得が許可されたか否かを判定する（Ｓ１９０）。具体的に、本実施形態のＳ１９０では、入力完了ボタン８２が押下されたか否かを判定して、入力完了ボタン８２が押下されていなければ（Ｓ１９０：ＮＯ）、入力完了ボタン８２が押下されるまで待機する。
【００５１】
そして、入力完了ボタン８２が押下されると（Ｓ１９０：ＹＥＳ）、その時点で替歌歌詞表示欄８１に入力されていた文字列を、Ｓ１７０にて取得した対象歌詞文字列に変わる文字列を表す替歌歌詞として取得する（Ｓ２００）。
【００５２】
その取得した替歌歌詞に対して周知の形態素解析を実施すると共に、周知の手法により替歌歌詞を音節ＰＨＯl毎に分解し、その分解した各音節ＰＨＯlを取得する（Ｓ２１０）。ただし、本実施形態において、符合ｌは、当該音節ＰＨＯlが文書データ７１における最初の音節から何番目のものであるかを表すインデックス番号である。
【００５３】
さらに、各音節について平均の発声時間長（以下、音節長とする）が予め格納された音節長データベースから、各音節ＰＨＯlに対応する音節長ＰＨＯ＿ＬＥＮlを、各音節ＰＨＯlと対応付けて取得する（Ｓ２２０）。なお、本実施形態において音節長データベースは、情報処理装置１０の記憶部１４に音節長が記憶されることで構成されたものでも良いし、情報処理装置１０の通信部１１が接続されるネットワーク上に情報処理装置１０とは別体に設けられたものであっても良い。
【００５４】
続いて、歌詞割当処理では、歌詞データ７０中の区切記号７２に基づいて、歌詞データ７０中の文書データ７１における各規定区間Ｊの開始位置を表す音節ＰＨＯlのインデックス番号（以下、区切開始位置とする）ｐｈｓJ、及び終了位置を表す音節ＰＨＯlのインデックス番号（以下、区切終了位置とする）ｐｈｅJを特定する（Ｓ２３０）。具体的には、規定区間Ｊと規定区間Ｊ＋１とを区切る区切記号７２に対し、当該区切記号７２の直前の音節ＰＨＯl-1に対応するインデックス番号ｌ−１を規定区間Ｊの区切終了位置ｐｈｅJとし、当該区切記号７２の直後の音節ＰＨＯlに対応するインデックス番号ｌを規定区間Ｊ＋１の区切開始位置ｐｈｓJ+1とする。ただし、規定区間１（即ち、Ｊ＝１）の区切開始位置ｐｈｓ1は、歌詞データ７０における最初の音節ＰＨＯ1に対応するインデックス番号１（即ち、ｌ＝１）とし、規定区間Ｊmaxの区切終了位置ｐｈｅJmaxは、歌詞データ７０における最後の音節ＰＨＯlmaxに対応するインデックス番号ｌｍａｘとする。
【００５５】
さらに、Ｓ２３０にて特定された各規定区間Ｊの区切開始位置ｐｈｓJ、区切終了位置ｐｈｅJに基づいて、歌詞データ７０の文書データ７１における各規定区間Ｊに含まれる音節数（以下、区間音節数とする）ＰＨＰＮJを、下記（４）式により導出する（Ｓ２４０）。
【００５６】
【数４】
0005418557.tif 000005
【００５７】
そして、区間音符数ＰＨＮＮIと区間音節数ＰＨＰＮJとに基づいて、対象区間Ｉ中の音符ＮＯkの数と規定区間Ｊ中の音節ＰＨＯlの数とが一致するように、対象区間Ｉ中の音符ＮＯk及び規定区間Ｊ中の音節ＰＨＯlのうちの少なくとも一方を調整する調整制御を実行すると共に、それらの調整された対象区間Ｉ中の音符ＮＯkそれぞれに規定区間Ｊ中の音節ＰＨＯlを割り当てる割当処理を実行する（Ｓ２５０）。
【００５８】
続いて、割当処理によって、音符ＮＯkそれぞれに音節ＰＨＯlが割り当てられた結果を出力する（Ｓ２６０）。具体的に、本実施形態におけるＳ２６０では、Ｓ２５０の割当処理の結果として、楽譜データ上の各音符ＮＯkに歌詞データ７０の文字（音節ＰＨＯl）をマッピングしたデータを表示部１２に表示する。
【００５９】
そして、Ｓ２５０にて対象区間Ｉ中の音符ＮＯkそれぞれに割り当てられた規定区間Ｊでの音節ＰＨＯlを、周知の音声合成処理にて発声する（Ｓ２７０）。すなわち、本実施形態のＳ２７０では、対象区間Ｉの替え歌を演奏する。なお、この音声合成処理としては、例えば、特開平０２−０２７３９７号などに記載された歌唱可能な音声合成方法を用いれば良い。
【００６０】
そのＳ２７０にて発声された、対象区間Ｉ中の音符ＮＯkそれぞれに割り当てられた規定区間Ｊでの音節ＰＨＯlにて、対象区間Ｉでの替え歌を確定するか否かを表す替歌確定指令が、入力装置１７を介して入力されたか否かを判定する（Ｓ２８０）。このＳ２８０での判定の結果、替歌確定指令が、対象区間Ｉでの替え歌を確定しない旨を表していれば（Ｓ２８０：ＮＯ）、Ｓ１９０へと戻り、新たな替歌歌詞を取得するまで待機する。
【００６１】
一方、Ｓ２８０での判定の結果、替歌確定指令が、対象区間Ｉでの替え歌を確定する旨を表していれば（Ｓ２８０：ＹＥＳ）、インデックス番号Ｉが最大のインデックス番号Ｉｍａｘ以上であるか否かを判定する（Ｓ２９０）。そのＳ２９０での判定の結果、インデックス番号Ｉが最大のインデックス番号Ｉｍａｘ未満であれば（Ｓ２９０：ＮＯ）、インデックス番号Ｉ及びインデックス番号Ｊを、それぞれ、１つインクリメントして（Ｓ３００）、Ｓ１７０へと戻る。
【００６２】
なお、Ｓ２９０での判定の結果、インデックス番号Ｉが最大のインデックス番号Ｉｍａｘ以上であれば（Ｓ２９０：ＹＥＳ）、本歌詞割当処理を終了する。
〈割当処理について〉
次に、歌詞割当処理のＳ２５０にて起動される割当処理について説明する。
【００６３】
図７に示すように、割当処理は、対象区間Ｉにおける区間音符数ＰＨＮＮI、及び対象規定区間Ｊにおける区間音節数ＰＨＰＮJを取得し（Ｓ４１０）、それらの取得した対象区間Ｉにおける区間音符数ＰＨＮＮIと規定区間Ｊにおける区間音節数ＰＨＰＮJとを比較する（Ｓ４２０）。
【００６４】
そのＳ４１０での比較の結果、区間音符数ＰＨＮＮIと区間音節数ＰＨＰＮJとが不一致であれば（Ｓ４２０：ＰＨＮＮI＞ＰＨＰＮJまたはＰＨＮＮI＜ＰＨＰＮJ）、後述するＳ４３０からＳ５２０のステップにて調整制御を実行する。
【００６５】
一方、Ｓ４２０での比較の結果、区間音符数ＰＨＮＮIと区間音節数ＰＨＰＮJとが一致していれば（Ｓ４２０：ＰＨＮＮI＝ＰＨＰＮJ）、対象区間Ｉに含まれている各音符ＮＯkに、規定区間Ｊに含まれている音節ＰＨＯlそれぞれを、時間軸に沿った順序にて１対１に割り当てる（Ｓ５３０）。
【００６６】
すなわち、本実施形態では、例えば、規定区間Ｊにおける音節ＰＨＯlが７つであり、対象区間Ｉにおける音符ＮＯkが７つであれば、規定区間Ｊにおける音節ＰＨＯlと対象区間Ｉにおける音符ＮＯkとを共に増減させることなく、Ｓ５３０にて割り当てる。
【００６７】
なお、Ｓ４２０での比較の結果、区間音節数ＰＨＰＮJが区間音符数ＰＨＮＮIよりも少なければ（Ｓ４２０：ＰＨＮＮI＞ＰＨＰＮJ）、値が小さいほど音符ＮＯk-1，ＮＯkの間の歌唱が容易であることを表す音符群化スコアＧＳＣkを、下記（５）式に基づいて対象区間Ｉに含まれる音符ＮＯk-1，ＮＯkの組合せ毎に算出する（Ｓ４３０）。ただし、（５）式中のαは、予め定められた定数（０＜α＜１）である。
【００６８】
【数５】
0005418557.tif 000006
【００６９】
すなわち、音符群化スコアＧＳＣkは、音高差ＮＮＤkが小さいほど、かつ本発明の休符に相当する無音時間ＮＭＬkが短いほど値が小さくなる。
続いて、Ｓ４３０にて算出された音符群化スコアＧＳＣkに基づいて、規定区間Ｊの音節ＰＨＯlの数に一致するように、対象区間Ｉの音符ＮＯkの数を減少させることを調整制御として実行する（Ｓ４４０）。本実施形態のＳ４４０における調整制御では、対象区間Ｉにおいて時間軸に沿って連続する２つの音符ＮＯk-1，ＮＯkのうち、音符群化スコアＧＳＣkの値が最小となる音符ＮＯk-1，ＮＯkから順に、音符ＮＯの１つである特定音符群ＮＯk-1を設定する。
【００７０】
ただし、本実施形態のＳ４４０では、特定音符群ＮＯk-1として設定される音符ＮＯk-1，ＮＯkが重複しないようにされている。例えば、音符群化スコアＧＳＣの値が、音符ＮＯk-1，ＮＯkの組、音符ＮＯk，ＮＯk+1の組，音符ＮＯk+1，k+2の組の順で小さく、これらの組のうち、２つの組を特定音符群ＮＯとして設定しなければならない場合を想定する。この場合、音符ＮＯk+1，ＮＯk+2の組が特定音符群ＮＯとして設定され、音符ＮＯk+1が重複する音符ＮＯk，ＮＯk+1の組は特定音符群ＮＯとして設定されず、音符ＮＯk+1、ＮＯk+2と重複しない音符ＮＯk-1，ＮＯkの組が特定音符群ＮＯとして設定される。
【００７１】
このように、音符ＮＯk-1，ＮＯkの組が特定音符群ＮＯとして設定されるとき、インデックス番号がｋ＋１以降である音符ＮＯk+1のインデックス番号を１つデクリメントする（例えば、音符ＮＯk+1が音符ＮＯkとなる）。さらに、このデクリメントされた音符ＮＯkに応じて、対象区間Ｉ＋１以降の区間開始位置ｓｔ及び対象区間Ｉ以降の区間終了位置ｅｎが更新される。
【００７２】
その後、対象区間Ｉに含まれている各音符ＮＯk（ここでは、特定音符群ＮＯを含む）に、規定区間Ｊに含まれている音節ＰＨＯlそれぞれを、時間軸に沿った順序にて１対１に割り当てる（Ｓ５３０）。
【００７３】
すなわち、規定区間Ｊにおける音節ＰＨＯlが６つであり、対象区間Ｉにおける音符ＮＯが７つである場合を想定する。この場合、本実施形態では、対象区間Ｉにおける音符ＮＯのうち、音符群化スコアＧＳＣが最小となる音符ＮＯk-1，ＮＯkを特定音符群ＮＯk-1として設定して音符ＮＯの数を、規定区間Ｊにおける音節ＰＨＯlの数に一致させる。その上で、特定音符群ＮＯk-1を含む対象区間Ｉの各音符ＮＯに、規定区間Ｊの音節ＰＨＯlそれぞれを割り当てる。
【００７４】
また、Ｓ４２０での比較の結果、区間音節数ＰＨＰＮJが区間音符数ＰＨＮＮIよりも多ければ（Ｓ４２０：ＰＨＮＮI＜ＰＨＰＮJ）、入力受付部１３を介して、楽譜データの修正を許可するか否かを表す情報（以下、許可情報とする）を当該情報処理装置１０の利用者に入力させ、その入力された許可情報を取得する（Ｓ４５０）。
【００７５】
続いて、Ｓ４５０にて取得した許可情報が楽譜データの修正を許可しない旨を表していれば（Ｓ４６０：ＮＯ）、後述するＳ５１０，Ｓ５２０にて調整制御を実行する。
一方、Ｓ４５０にて取得した許可情報が楽譜データの修正を許可する旨を表していれば（Ｓ４６０：ＹＥＳ）、対象区間Ｉの音符長ＮＬkについて分散（以下、音符長分散とする）を導出する（Ｓ４７０）。その導出された音符長分散が、予め規定された閾値以下であれば（Ｓ４８０：ＮＯ）、即ち、対象区間Ｉにおける音符長ＮＬkのバラつきが小さければ、規定区間Ｊの区間音節数ＰＨＰＮJに一致するように、対象区間Ｉにおける無音時間ＮＭＬkに基づいて対象区間Ｉ内に新たな音符ＮＯkを追加することを調整制御として実行する（Ｓ４９０）。
【００７６】
具体的に、本実施形態のＳ４９０における調整制御では、対象区間Ｉ中での無音時間ＮＭＬk、即ち、休符の時間長が短いものから順に、当該休符を、音符ＮＯkの１つである変更音符ＮＯkへと変更して設定する。なお、休符としての無音時間ＮＭＬkが最短でありかつ同一時間長であるものが少なくとも２つ以上存在する場合、音高差ＮＮＤkが最小である無音時間ＮＭＬkを変更音符ＮＯkへと変更する。また、本実施形態では、無音時間ＮＭＬkが「０」であれば、当該無音時間ＮＭＬkを変更音符ＮＯkへと変更する対象から除外する。
【００７７】
そして、本実施形態のＳ４９０では、変更音符ＮＯkの音高（ノートナンバー）ＮＮkを、その変更音符ＮＯkに時間軸に沿って隣接する音符ＮＯk-1，ＮＯk+1の音高ＮＮk-1，ＮＮk+1の中間値に設定する。
【００７８】
このように、無音時間ＮＭＬkが変更音符ＮＯkへと変更されるとき、変更音符ＮＯkが設定される以前に、インデックス番号がｋ以降であった音符ＮＯkのインデックス番号を１つインクリメントする（例えば、音符ＮＯk+1が音符ＮＯk+2となる）。さらに、このインクリメントされた音符ＮＯkに応じて、対象区間Ｉ＋１以降の区間開始位置ｓｔ及び対象区間Ｉ以降の区間終了位置ｅｎは更新される。
【００７９】
その後、対象区間Ｉに含まれている各音符ＮＯk（ここでは、変更音符ＮＯkを含む）に、規定区間Ｊに含まれている音節ＰＨＯlそれぞれを、時間軸に沿った順序にて１対１に割り当てる（Ｓ５３０）。
【００８０】
例えば、規定区間Ｊの音節ＰＨＯlが８つであり、対象区間Ｉの音符ＮＯkが７つである場合を想定する。この場合、本実施形態では、対象区間Ｉの無音時間ＮＭＬkのうち、その値が最短（ただし、「０」は除く）のものを変更音符ＮＯkへと変更して音符ＮＯkを追加することで、対象区間Ｉの音符ＮＯkの数を規定区間Ｊの音節ＰＨＯlの数に一致させる。その上で、変更音符ＮＯkを含む対象区間Ｉの各音符ＮＯkに、規定区間Ｊの音節ＰＨＯlそれぞれを割り当てる。
【００８１】
なお、Ｓ４７０にて導出された音符長分散が閾値よりも大きければ（Ｓ４８０：ＹＥＳ）、即ち、対象区間Ｉにおける音符長ＮＬkのバラつきが大きければ、規定区間Ｊの区間音節数ＰＨＰＮJに一致するように、対象区間Ｉにおける音符長ＮＬkに基づいて対象区間Ｉ内に新たな音符ＮＯkを追加することを調整制御として実行する（Ｓ５００）。
【００８２】
本実施形態のＳ５００における調整制御では、対象区間Ｉ中の音符ＮＯkの中で、音符長ＮＬkが最大である音符ＮＯkから順に、当該音符ＮＯkを、それぞれが音符ＮＯの１つである基準音符ＮＯk及び分割音符ＮＯk+1へと分割して設定する。ただし、基準音符ＮＯkの音符長ＮＬkは、分割音符ＮＯk+1の音符長ＮＬk+1よりも長いものとする（「音符ＮＯkの音符長ＮＬk」＞「基準音符ＮＯkの音符長ＮＬk」＋「分割音符ＮＯk+1の音符長ＮＬk+1」）。なお、本実施形態のＳ５００では、音符長ＮＬkが最大であり、かつ同一時間長である音符ＮＯkが少なくとも２つ以上存在する場合には、音高差ＮＮＤkが最小ものから、基準音符ＮＯk及び分割音符ＮＯk+1へと分割する。
【００８３】
このように、音符ＮＯkを基準音符ＮＯk及び分割音符ＮＯk+1へと分割するとき、分割音符ＮＯk+1が設定される以前に、インデックス番号がｋ＋１であった音符ＮＯk+1のインデックス番号を１つインクリメントする（例えば、音符ＮＯk+1が音符ＮＯk+2となる）。さらに、このインクリメントされた音符ＮＯkに応じて、対象区間Ｉ＋１以降の区間開始位置ｓｔ及び対象区間Ｉ以降の区間終了位置ｅｎIは更新される。
【００８４】
その後、対象区間Ｉに含まれている各音符ＮＯk（ここでは、基準音符ＮＯk及び分割音符ＮＯk+1を含む）に、規定区間Ｊに含まれている音節ＰＨＯlそれぞれを、時間軸に沿った順序にて１対１に割り当てる（Ｓ５３０）。
【００８５】
例えば、規定区間Ｊの音節ＰＨＯlが８つであり、対象区間Ｉの音符ＮＯkが７つである場合を想定する。この場合、本実施形態では、対象区間Ｉの音符ＮＯkのうち、音符長ＮＬkが最長のものを基準音符ＮＯk及び分割音符ＮＯk+1の２つの音符ＮＯに分割することで、対象区間Ｉの音符ＮＯkの数を規定区間Ｊの音節ＰＨＯlの数に一致させる。その上で、基準音符ＮＯk及び分割音符ＮＯk+1を含む対象区間Ｉの各音符ＮＯkに、規定区間Ｊの音節ＰＨＯlそれぞれを割り当てる。
【００８６】
一方、Ｓ４５０にて取得した許可情報が楽譜データの修正を許可しない旨を表していれば（Ｓ４６０：ＮＯ）、音節長ＰＨＯ＿ＬＥＮl-1と音節長ＰＨＯ＿ＬＥＮlとの和を、規定区間Ｊにおける音節ＰＨＯl-1，ＰＨＯlの組合せ毎に算出する（Ｓ５１０）。続いて、それらの音節長ＰＨＯ＿ＬＥＮl-1，ＰＨＯ＿ＬＥＮlの和に基づいて、対象区間Ｉの音符ＮＯkの数に一致するように、規定区間Ｊの音節ＰＨＯlの数を減少させることを調整制御として実行する（Ｓ５２０）。
【００８７】
本実施形態のＳ５２０における調整制御では、具体的に、音節長ＰＨＯ＿ＬＥＮl-1，ＰＨＯ＿ＬＥＮlの和が最小となる音節ＰＨＯl-1，ＰＨＯlの組合せから順に、音節ＰＨＯの１つである特定音節群ＰＨＯl-1を設定する。このとき、インデックス番号がｌ＋１以降である音節ＰＨＯl+1のインデックス番号を１つデクリメントする（例えば、音節ＰＨＯl+1が音節ＰＨＯlとなる）。さらに、このデクリメントされた音節ＰＨＯlに応じて、規定区間Ｊ＋１以降の区切開始位置ｐｈｓ及び規定区間Ｊ以降の区切終了位置ｐｈｅが更新される。
【００８８】
その後、対象区間Ｉに含まれている各音符ＮＯkに、規定区間Ｊに含まれている音節ＰＨＯl（ここでは、特定音節群ＰＨＯlを含む）それぞれを、時間軸に沿った順序にて１対１に割り当てる（Ｓ５３０）。
【００８９】
例えば、規定区間Ｊの音節ＰＨＯlが８つであり、対象区間Ｉの音符ＮＯkが７つである場合を想定する。この場合、本実施形態では、規定区間Ｊの音節ＰＨＯlのうち、音節長ＰＨＯ＿ＬＥＮl-1，ＰＨＯ＿ＬＥＮlの和が最小となる音節ＰＨＯl-1，ＰＨＯlの組合せを特定音節群ＰＨＯl-1として設定することで、規定区間Ｊの音節ＰＨＯlの数を対象区間Ｉ中の区間音符数ＰＨＮＮIに一致させる。その上で、対象区間Ｉの各音符ＮＯkに、特定音節群ＰＨＯl-1を含む規定区間Ｊの音節ＰＨＯlそれぞれを割り当てる。
【００９０】
その後、歌詞割当処理へと戻る。
［実施形態の効果］
以上説明したように、本実施形態の歌詞割当処理では、対象楽曲の規定区間Ｊに対する替歌歌詞を取得し、その取得した替歌歌詞を音節ＰＨＯに細分化した上で、当該対象楽曲の楽曲データにおける対象区間Ｉに含まれる音符ＮＯに割り当てる。
【００９１】
しかも、本実施形態の歌詞割当処理での音符ＮＯへの音節ＰＨＯの割り当ては、替え歌の歌詞を細分化した音節の数（即ち、区間音節数ＰＨＰＮJ）が、対象区間Ｉにおける音符の数（即ち、区間音符数ＰＨＮＮI）に一致するように調整した上で実行される。
【００９２】
この結果、本実施形態の歌詞割当処理、ひいては、情報処理装置１０によれば、作詞作曲の専門知識を有していない一般の利用者であっても、楽曲に適するように替え歌の歌詞を割り当てることができる。
【００９３】
特に、本実施形態の割当処理では、対象区間Ｉに含まれる音符の数（区間音符数ＰＨＮＮI）や、替歌歌詞の音節数（即ち、区間音節数ＰＨＰＮJ）に拘わらず、楽曲に適するように替え歌の歌詞を割り当てることができる。
【００９４】
なお、本実施形態の歌詞割当処理では、対象区間Ｉに含まれる各音符ＮＯに割り当てた、替歌歌詞の音節ＰＨＯを、音声合成処理によって発声し、歌唱音声化している。さらに、歌詞割当処理では、音声合成処理を実行した後に、替え歌を確定する旨を表す替歌確定指令が入力されると、対象楽曲における歌詞を当該替え歌にて確定している。
【００９５】
よって、情報処理装置１０の利用者は、替歌歌詞が割り当てられた楽曲を歌唱音声で聴くことができ、その替歌歌詞が割り当てられた楽曲が良好であるか否かを判断した上で、対象楽曲の歌詞を替え歌へと変更することができる。
［その他の実施形態］
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において、様々な態様にて実施することが可能である。
［実施形態と特許請求の範囲との対応関係］
最後に、上記実施形態の記載と、特許請求の範囲の記載との関係を説明する。
【００９６】
上記実施形態の歌詞割当処理におけるＳ１１０が、特許請求の範囲の記載における楽曲データ取得手段に相当し、歌詞割当処理におけるＳ１２０〜Ｓ１４０が、特許請求の範囲の記載における音符数取得手段に相当する。そして、歌詞割当処理におけるＳ１７０〜Ｓ１９０が、特許請求の範囲の記載における替歌取得手段に相当し、歌詞割当処理におけるＳ２１０〜Ｓ２４０が、特許請求の範囲の記載における音節数取得手段に相当する。
【００９７】
さらに、上記実施形態の割当処理におけるＳ４１０〜Ｓ５２０が、特許請求の範囲の記載における調整手段に相当し、割当処理におけるＳ５３０が、特許請求の範囲の記載における割当手段に相当する。
【００９８】
なお、歌詞割当処理におけるＳ２７０が、特許請求の範囲の記載における演奏手段に相当する。
【符号の説明】
【００９９】
１０…情報処理装置（歌詞割当装置）  １１…通信部  １２…表示部  １３…入力受付部  １４…記憶部  １５…演奏部  １６…音出力部  １７…入力装置  ２０…制御部  ２１…ＲＯＭ  ２２…ＲＡＭ  ２３…ＣＰＵ  ７０…歌詞データ  ７１…文書データ  ７２…区切記号  ８０…対象歌詞表示欄  ８１…替歌歌詞表示欄  ８２…入力完了ボタン  ８３…キャンセルボタン  ＧＬ…替歌歌詞入力画像
【図１】
0005418557.tif 000007
【図２】
0005418557.tif 000008
【図３】
0005418557.tif 000009
【図４】
0005418557.tif 000010
【図５】
0005418557.tif 000011
【図６】
0005418557.tif 000012
【図７】
0005418557.tif 000013