説明

歌詞割当装置

【課題】歌詞割当装置において、作詞作曲の専門知識を有していない一般の利用者であっても、楽曲に適するように替え歌の歌詞を割り当てること。
【解決手段】歌詞割当処理では、対象楽曲の規定区間Jに対する替歌歌詞を取得し(S110)、その取得した替歌歌詞を音節PHOに細分化した(S210)上で、当該対象楽曲の楽曲データにおける対象区間Iに含まれる音符NOに割り当てている(S250)。しかも、音符NOへの音節PHOの割り当ては、替え歌の歌詞を細分化した音節の数(即ち、区間音節数PHPNJ)が、対象区間Iにおける音符の数(即ち、区間音符数PHNNI)に一致するように調整した上で実行している。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、楽曲に歌詞を割り当てる歌詞割当装置に関する。
【背景技術】
【0002】
従来、情報の入力を受け付ける入力部と、情報を表示する表示部と、当該装置を構成する各部を制御する制御部とを備え、楽曲の楽譜を表し、かつメモリなどに記憶された楽曲データに含まれる音符に、入力部を介して入力された歌詞を表す文字列における各文字を割り当てる歌詞割当装置が知られている(特許文献1参照)。
【0003】
この特許文献1に記載の歌詞割当装置では、歌詞を表す文字列中に、予め規定された記号(以下、規定記号とする)が含まれていれば、複数の文字を一つの音符に割り当てることや、1つの文字を複数の音符に割り当てることがなされる。すなわち、当該歌詞割当装置の利用者は、前者であれば、1つの音符に割り当てたい複数の文字の前または後に規定記号を入力し、後者であれば、複数の音符に割り当て、かつ長音化したい特定の文字の前に規定記号を入力する必要がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−163057号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、特許文献1に記載された歌詞割当装置の利用者の中には、1つの楽曲について、当該楽曲に対して予め作成された歌詞を変更して替え歌を作成したいと考える利用者も存在する。
【0006】
しかしながら、特許文献1に記載の歌詞割当装置を用いて楽曲に適するように歌詞を割り当てるためには、楽曲データに対応する楽曲の音符数を考慮して、歌詞中の適切な位置に規定記号を含める必要がある。通常、楽曲の音符数を考慮して歌詞を入力することは、作詞作曲の専門知識を有する人物でなければ困難である。つまり、作詞作曲の専門知識を有していない一般の利用者では、特許文献1に記載の歌詞割当装置を用いて、替え歌を作成することが困難であるという問題があった。
【0007】
そこで、本発明は、歌詞割当装置において、作詞作曲の専門知識を有していない一般の利用者であっても、楽曲に適するように替え歌の歌詞を割り当てることを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するためになされた本発明の歌詞割当装置では、音符数取得手段が、楽曲の1つである対象楽曲の楽譜を表す楽曲データを取得し、その取得した楽曲データに対して規定された対象区間に存在している音符の数である区間音符数を、音符数取得手段が取得する。
【0009】
そして、替歌取得手段が、対象楽曲の歌詞を構成する文字列を表す歌詞データを取得し、当該歌詞データによって表され、対象区間と対をなす規定区間での歌詞を構成する文字列を、外部から入力された文字列である替歌歌詞へと置換すると、その置換された替歌歌詞の音節の数である区間音節数を、音節数取得手段が取得する。
【0010】
さらに、音符数取得手段にて取得した区間音符数、及び音節数取得手段で取得した区間音節数に基づいて、調整手段が、当該対象区間中の音符と当該規定区間中の音節との数が一致するように、対象区間中の音符及び規定区間中の音節のうちの少なくとも一方を調整する調整制御を実行し、割当手段が、調整手段によって調整された対象区間中の音符に規定区間中の音節を、当該対象区間及び当該規定区間における時間軸に沿った順序にて割り当てる。
【0011】
ただし、本発明の歌詞割当装置において、調整手段は、区間音符数が区間音節数よりも多ければ、対象区間における時間軸に沿って連続する少なくとも2つの音符を含む1つの音符群である特定音符群を対象区間中の音符の1つとすることを、調整制御として実行する。
【0012】
このような歌詞割当装置によれば、作詞作曲の専門知識を有していない一般の利用者であっても、楽曲に適するように替え歌の歌詞を割り当てることができる。
特定音符群を生成する方法としては、時間軸に沿って互いに連続する2つの音符の組合せのうち、当該音符間の音高差が小さいものから順に特定音符群とすることや、時間軸に沿って互いに連続する2つの音符の組合せのうち、当該音符間の間隔が短いものから順に特定音符群とすることが考えられる。
【0013】
また、本発明における調整手段は、区間音符数が区間音節数よりも少なければ、対象区間中の音符を増加させることを、調整制御として実行しても良い(請求項2)。
このような歌詞割当装置によれば、対象区間の音符数に拘わらず、楽曲に適するように替え歌の歌詞を割り当てることができる。
【0014】
なお、対象区間中の音符を増加させる方法としては、特定区間に存在している休符を音符に変更することや、特定区間に存在している1つの音符を2つの音符に分割することが考えられる。
【0015】
さらに、本発明における調整手段は、区間音符数が区間音節数よりも少ない場合に、楽曲データに対応する楽譜の変更を禁止する指令を外部から受け付けると、規定区間の時間軸に沿って連続する少なくとも2つの音節を含む1つの特定音節群を規定区間中の音節の1つとすることを、調整制御として実行しても良い(請求項3)。
【0016】
このような歌詞割当装置によれば、替歌歌詞の文字数に拘わらず、楽曲に適するように替え歌の歌詞を割り当てることができる。
さらに、本発明の歌詞割当装置は、演奏手段が、割当手段にて、対象区間中の音符に規定区間中の音節が割り当てられた、楽曲データを、音声合成処理によって演奏しても良い(請求項4)。
【0017】
本発明の歌詞割当装置の利用者は、替歌歌詞が割り当てられた楽曲を聴くことができ、その替歌歌詞が割り当てられた楽曲が良好であるか否かを判断できる。
【図面の簡単な説明】
【0018】
【図1】楽曲の概略構成を示す図である。
【図2】楽曲データの概略構成を示す図である。
【図3】歌詞データの概略構成を示す図である。
【図4】実施形態における歌詞割当装置の概略構成を示すブロック図である。
【図5】歌詞割当処理の処理手順を示すフローチャートである。
【図6】替歌歌詞の入力を受け付ける替歌歌詞入力画面を例示する図である。
【図7】割当処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下に本発明の実施形態を図面と共に説明する。
本発明が適用された歌詞割当装置10(図4参照)は、楽曲の楽譜を表す楽曲データ中の音符に、歌詞を構成する文字列を表す歌詞データ中の音節を割り当てるものである。
〈楽曲データ、及び歌詞データの構造について〉
まず、歌詞割当装置10が処理を実行する対象である楽曲データ及び歌詞データについて説明する。
【0020】
ここで、図1は、楽曲の概略構成を示す図であり、図2は、楽曲データの概略構成を示す図であり、図3は、歌詞データの概略構成を示す図である。
楽曲データは、楽曲の主旋律に関する楽譜を表す楽譜データと、当該楽曲を識別する識別データとを少なくとも有し、いわゆる周知のMIDI(Musical Instrument Digital Interface)規格にて規定されたデータである。
【0021】
通常、楽曲の主旋律は、図1に示すように、複数の構成区間50A〜50M(例えば、いわゆるAメロや、Bメロ、サビなど)を有している。その構成区間50A〜50Mの各々は、作曲者が意図して当該主旋律を区分けしたものであり、時間軸に沿って連続する複数の音符のまとまりからなる対象区間I(I=1〜Imax)(いわゆるフレーズ)を少なくとも1つ含んでいる。
【0022】
そして、複数個の対象区間Iを有した楽譜データは、図2に示すように、主旋律を形成する音符NOkが表されたデータである。本実施形態における各音符NOkは、当該音符NOkの音高(図2中、ノートナンバー)NNk、音符NOkの出力を開始するまでの当該楽曲の演奏開始からの時間を表す出力開始タイミング(図2中、ノートオンタイミング)ONk、及び音符NOkの出力を終了するまでの当該楽曲の演奏開始からの時間を表す出力終了タイミング(図2中、ノートオフタイミング)OFFkによって表されている。
【0023】
なお、本実施形態において、符合Iは、当該対象区間Iが楽曲の演奏開始から何番目のものであるかを表すインデックス番号であり、符合kは、当該音符NOkが楽曲の演奏開始から何番目に演奏されるものであるかを表すインデックス番号である。
【0024】
歌詞データ70は、楽曲の歌詞を表すデータであり、歌詞を構成する文字列が規定されている。歌詞データ70の各々は、同一の楽曲について、楽曲データと対応付けられている。
【0025】
具体的には、歌詞データ70は、図3に示すように、歌詞を構成する文字列からなる文書データ71と、楽曲における対象区間Iと対をなす規定区間J毎に文書データ71の文字列を区切る区切記号72(図中72A〜72D)とを有している。本実施形態における区切記号72は、文書データ71における文字列の改行を表す改行記号であっても良いし、文書データ71の文字列中に予め規定された数以上連続して含まれる空白(いわゆるスペース)であっても良い。
【0026】
この歌詞データ70は、楽曲データ共に、カラオケを用途として予め作成されることが一般的である。このため、歌詞を構成する文字(以下、歌詞構成文字とも称す)の出力タイミングである歌詞出力タイミングを、楽曲データの演奏と対応付けるタイミング対応関係が規定されている。
【0027】
具体的に、本実施形態におけるタイミング対応関係は、楽曲データの演奏を開始するタイミングに、文書データ71として規定された歌詞構成文字の出力を開始するタイミングが対応付けられた上で、楽曲の時間軸に沿った各歌詞構成文字の歌詞出力タイミングが、楽曲データの演奏を開始からの経過時間によって規定されている。このタイミング対応関係は、一般的に、楽曲データの単位区間Iと当該単位区間Iに対応する規定区間Jとの組合せごとに規定されている。
【0028】
なお、ここでいう経過時間とは、例えば、表示された歌詞構成文字の色替えを実行するタイミングを表す時間であり、色替えの速度によって規定されている。
〈歌詞割当装置について〉
本実施形態における歌詞割当装置10は、図4に示す情報処理装置10によって構成されている。
【0029】
その情報処理装置10は、図4に示すように、通信部11と、表示部12と、入力受付部13と、記憶部14と、演奏部15と、制御部20とを備えている。
このうち、通信部11は、情報処理装置10をネットワーク(例えば、専用回線やWAN)に接続し、その接続されたネットワークを介して外部と通信を行うものである。
【0030】
そして、表示部12は、画像を表示する表示装置(例えば、液晶ディスプレイやCRT等)である。また、入力受付部13は、入力機器(例えば、キーボードやポインティングデバイス)17を介して情報や指令の入力を受け付けるインターフェースである。
【0031】
また、記憶部14は、記憶内容を読み書き可能に構成された不揮発性の記憶装置(例えば、ハードディスク装置)である。この記憶部14には、処理プログラムや、楽曲データ、歌詞データが少なくとも格納される。
【0032】
演奏部15は、楽曲データに基づいて、当該楽曲データによって表された楽曲を演奏するものであり、例えば、周知のMIDI音源(音源モジュール)である。その演奏部15には、少なくとも、当該演奏部15にて演奏された楽曲の楽音を出力する音出力部16が接続されている。なお、本実施形態における音出力部16は、周知のスピーカ構造である。
【0033】
さらに、制御部20は、ROM21と、RAM22と、CPU23とを少なくとも有した周知のマイクロコンピュータを中心に構成されている。
このうち、ROM21は、電源が切断されても記憶内容を保持する必要のある処理プログラムやデータを格納するものである。また、RAM22は、処理プログラムやデータを一時的に格納するものであり、このRAM22には、少なくとも記憶部14から処理プログラムが転送されて格納される。
【0034】
そして、CPU23は、ROM21やRAM22に記憶された処理プログラムに従って各処理(各種演算)を実行する。
なお、本実施形態では、制御部20が実行する処理プログラムとして、楽曲データ及び歌詞データに基づいて、その楽曲データ中の音符に歌詞データ中の音節を割り当てる(以下、歌詞割当処理とする)ものが予め用意されている。
〈歌詞割当処理について〉
次に、制御部20が実行する歌詞割当処理について説明する。
【0035】
ここで、図5は、歌詞割当処理の処理手順を示すフローチャートである。
この歌詞割当処理は、当該歌詞割当処理を起動するための起動指令が、入力受付部13を介して制御部20に入力されると起動される。
【0036】
図5に示すように、歌詞割当処理は、起動されると、まず、入力受付部13を介して入力された情報によって指定された楽曲(以下、対象楽曲とする)に対応する楽曲データ(楽譜データ)を取得する(S110(Sは、ステップを意味する))。
【0037】
そして、S110にて取得した楽譜データによって表される楽曲の構造を解析する曲構造解析を実行する(S120)。本実施形態における曲構造解析(S120)では、楽譜データ中の各対象区間Iの開始位置を表す音符NOkのインデックス番号(以下、区間開始位置とする)stI、及び各対象区間Iの終了位置を表す音符NOkのインデックス番号(以下、区間終了位置とする)enIを特定する。
【0038】
具体的には、楽曲データ中の楽譜データにおいて、時間軸に沿って互いに隣接する音符NOk-1,NOk(ただし、k≧2)の間で無音となる時間長を表す無音時間NMLkを、下記(1)式に基づいて、音符NOk-1,NOkの組合せ毎に算出する。
【0039】
【数1】

【0040】
その算出された全ての無音時間NMLkの中で時間長が比較的長い無音時間(以下、適合無音時間とする)NMLkを特定する。本実施形態において、適合無音時間NMLkは、無音時間NMLkのヒストグラムにおいて極小点よりも値が大きな全ての無音時間NMLkであっても良いし、無音時間NMLkのヒストグラムにおける変極点よりも値が大きな全ての無音時間NMLkであっても良い。
【0041】
このようにして特定された各適合無音時間NMLkに対応する音符NOkのインデックス番号kを、対象区間Iの区間開始位置stIとして取得する。これと共に、対象区間I+1に対応する区間開始位置stI+1を表す音符NOkxのインデックス番号kxよりも1つ小さい音符NOkx-1のインデックス番号kx−1を、対象区間Iの区間終了位置enIとして取得する。なお、本実施形態では、対象区間1(即ち、I=1)の区間開始位置st1を、楽譜データの時間軸に沿った最初の音符NO1に対応するインデックス番号1(即ち、k=1)とし、対象区間Imaxの区間終了位置enImaxを、楽譜データの時間軸に沿った最後の音符NOkmaxに対応するインデックス番号kmaxとする。
【0042】
さらに、歌詞割当処理では、対象区間の数Nを特定する(S130)。すなわち、本実施形態のS130では、対象区間Imaxの値を、対象区間の数Nとする。
続いて、S120にて取得された対象区間Iの区間開始位置stI及び区間終了位置enIに基づいて、楽譜データ中の各対象区間Iに含まれる音符NOkの数(以下、区間音符数とする)PHNNIを、下記(2)式により算出する(S140)。
【0043】
【数2】

【0044】
さらに、S110にて取得した楽譜データ中の各音符NOkを解析する音符解析を実行する(S150)。
本実施形態の音符解析では、楽譜データにおいて、音符NOk-1,NOkの間での音高差NNDkと、音符NOkの時間長を表す音符長NLkとを、下記(3)式に基づいて算出する。さらに、本実施形態の音符解析では、下記(3)式に基づいて、全ての音符NOkの中で時間長が最長である音符長NLkを最大音符長MNLとして、全ての音高差NNDkの中で値が最大であるものを最大音高差MNNDとして導出する。なお、下記(3)式中のabsは絶対値を返す関数を示し、maxは最大値を返す関数を示す。
【0045】
【数3】

【0046】
そして、対象区間I及び規定区間Jを初期値(本実施形態では、I=1,J=1)に設定する(S160)。さらに、対象楽曲に対応する歌詞データ70の文書データ71から、規定区間Jでの歌詞を構成する文字列(以下、対象歌詞文字列と称す)を取得する(S170)。
【0047】
上述したようにタイミング対応関係として、対象区間Iの演奏を開始するタイミングに、規定区間Jの歌詞構成文字の出力を開始するタイミングが対応付けられているため、楽曲データから対象区間Iを特定することで、その対象区間Iに対応する規定区間Jでの歌詞を対象歌詞文字列として取得できる。
【0048】
なお、歌詞割当装置10がカラオケ装置として構成されている場合、歌詞データが楽曲データに含まれていることが多いため、対象歌詞文字列は、楽曲データと共に取得しても良い。
【0049】
その取得した対象歌詞文字列を表示すると共に、新たな文字列の入力を受け付ける替歌歌詞入力画像LG(図6参照)を、表示部12に表示する(S180)。この替歌歌詞入力画像LGは、図6に示すように、S170にて取得した対象歌詞文字列を表示する対象歌詞表示欄80と、入力装置17を介して入力された新たな文字列を表示する替歌歌詞表示欄81と、文字列の入力をキャンセルするキャンセルボタン83と、替歌歌詞表示欄81に表示された文字列を確定して入力を受け付ける入力完了ボタン82とを備えている。
【0050】
続いて、替歌歌詞の取得が許可されたか否かを判定する(S190)。具体的に、本実施形態のS190では、入力完了ボタン82が押下されたか否かを判定して、入力完了ボタン82が押下されていなければ(S190:NO)、入力完了ボタン82が押下されるまで待機する。
【0051】
そして、入力完了ボタン82が押下されると(S190:YES)、その時点で替歌歌詞表示欄81に入力されていた文字列を、S170にて取得した対象歌詞文字列に変わる文字列を表す替歌歌詞として取得する(S200)。
【0052】
その取得した替歌歌詞に対して周知の形態素解析を実施すると共に、周知の手法により替歌歌詞を音節PHOl毎に分解し、その分解した各音節PHOlを取得する(S210)。ただし、本実施形態において、符合lは、当該音節PHOlが文書データ71における最初の音節から何番目のものであるかを表すインデックス番号である。
【0053】
さらに、各音節について平均の発声時間長(以下、音節長とする)が予め格納された音節長データベースから、各音節PHOlに対応する音節長PHO_LENlを、各音節PHOlと対応付けて取得する(S220)。なお、本実施形態において音節長データベースは、情報処理装置10の記憶部14に音節長が記憶されることで構成されたものでも良いし、情報処理装置10の通信部11が接続されるネットワーク上に情報処理装置10とは別体に設けられたものであっても良い。
【0054】
続いて、歌詞割当処理では、歌詞データ70中の区切記号72に基づいて、歌詞データ70中の文書データ71における各規定区間Jの開始位置を表す音節PHOlのインデックス番号(以下、区切開始位置とする)phsJ、及び終了位置を表す音節PHOlのインデックス番号(以下、区切終了位置とする)pheJを特定する(S230)。具体的には、規定区間Jと規定区間J+1とを区切る区切記号72に対し、当該区切記号72の直前の音節PHOl-1に対応するインデックス番号l−1を規定区間Jの区切終了位置pheJとし、当該区切記号72の直後の音節PHOlに対応するインデックス番号lを規定区間J+1の区切開始位置phsJ+1とする。ただし、規定区間1(即ち、J=1)の区切開始位置phs1は、歌詞データ70における最初の音節PHO1に対応するインデックス番号1(即ち、l=1)とし、規定区間Jmaxの区切終了位置pheJmaxは、歌詞データ70における最後の音節PHOlmaxに対応するインデックス番号lmaxとする。
【0055】
さらに、S230にて特定された各規定区間Jの区切開始位置phsJ、区切終了位置pheJに基づいて、歌詞データ70の文書データ71における各規定区間Jに含まれる音節数(以下、区間音節数とする)PHPNJを、下記(4)式により導出する(S240)。
【0056】
【数4】

【0057】
そして、区間音符数PHNNIと区間音節数PHPNJとに基づいて、対象区間I中の音符NOkの数と規定区間J中の音節PHOlの数とが一致するように、対象区間I中の音符NOk及び規定区間J中の音節PHOlのうちの少なくとも一方を調整する調整制御を実行すると共に、それらの調整された対象区間I中の音符NOkそれぞれに規定区間J中の音節PHOlを割り当てる割当処理を実行する(S250)。
【0058】
続いて、割当処理によって、音符NOkそれぞれに音節PHOlが割り当てられた結果を出力する(S260)。具体的に、本実施形態におけるS260では、S250の割当処理の結果として、楽譜データ上の各音符NOkに歌詞データ70の文字(音節PHOl)をマッピングしたデータを表示部12に表示する。
【0059】
そして、S250にて対象区間I中の音符NOkそれぞれに割り当てられた規定区間Jでの音節PHOlを、周知の音声合成処理にて発声する(S270)。すなわち、本実施形態のS270では、対象区間Iの替え歌を演奏する。なお、この音声合成処理としては、例えば、特開平02−027397号などに記載された歌唱可能な音声合成方法を用いれば良い。
【0060】
そのS270にて発声された、対象区間I中の音符NOkそれぞれに割り当てられた規定区間Jでの音節PHOlにて、対象区間Iでの替え歌を確定するか否かを表す替歌確定指令が、入力装置17を介して入力されたか否かを判定する(S280)。このS280での判定の結果、替歌確定指令が、対象区間Iでの替え歌を確定しない旨を表していれば(S280:NO)、S190へと戻り、新たな替歌歌詞を取得するまで待機する。
【0061】
一方、S280での判定の結果、替歌確定指令が、対象区間Iでの替え歌を確定する旨を表していれば(S280:YES)、インデックス番号Iが最大のインデックス番号Imax以上であるか否かを判定する(S290)。そのS290での判定の結果、インデックス番号Iが最大のインデックス番号Imax未満であれば(S290:NO)、インデックス番号I及びインデックス番号Jを、それぞれ、1つインクリメントして(S300)、S170へと戻る。
【0062】
なお、S290での判定の結果、インデックス番号Iが最大のインデックス番号Imax以上であれば(S290:YES)、本歌詞割当処理を終了する。
〈割当処理について〉
次に、歌詞割当処理のS250にて起動される割当処理について説明する。
【0063】
図7に示すように、割当処理は、対象区間Iにおける区間音符数PHNNI、及び対象規定区間Jにおける区間音節数PHPNJを取得し(S410)、それらの取得した対象区間Iにおける区間音符数PHNNIと規定区間Jにおける区間音節数PHPNJとを比較する(S420)。
【0064】
そのS410での比較の結果、区間音符数PHNNIと区間音節数PHPNJとが不一致であれば(S420:PHNNI>PHPNJまたはPHNNI<PHPNJ)、後述するS430からS520のステップにて調整制御を実行する。
【0065】
一方、S420での比較の結果、区間音符数PHNNIと区間音節数PHPNJとが一致していれば(S420:PHNNI=PHPNJ)、対象区間Iに含まれている各音符NOkに、規定区間Jに含まれている音節PHOlそれぞれを、時間軸に沿った順序にて1対1に割り当てる(S530)。
【0066】
すなわち、本実施形態では、例えば、規定区間Jにおける音節PHOlが7つであり、対象区間Iにおける音符NOkが7つであれば、規定区間Jにおける音節PHOlと対象区間Iにおける音符NOkとを共に増減させることなく、S530にて割り当てる。
【0067】
なお、S420での比較の結果、区間音節数PHPNJが区間音符数PHNNIよりも少なければ(S420:PHNNI>PHPNJ)、値が小さいほど音符NOk-1,NOkの間の歌唱が容易であることを表す音符群化スコアGSCkを、下記(5)式に基づいて対象区間Iに含まれる音符NOk-1,NOkの組合せ毎に算出する(S430)。ただし、(5)式中のαは、予め定められた定数(0<α<1)である。
【0068】
【数5】

【0069】
すなわち、音符群化スコアGSCkは、音高差NNDkが小さいほど、かつ本発明の休符に相当する無音時間NMLkが短いほど値が小さくなる。
続いて、S430にて算出された音符群化スコアGSCkに基づいて、規定区間Jの音節PHOlの数に一致するように、対象区間Iの音符NOkの数を減少させることを調整制御として実行する(S440)。本実施形態のS440における調整制御では、対象区間Iにおいて時間軸に沿って連続する2つの音符NOk-1,NOkのうち、音符群化スコアGSCkの値が最小となる音符NOk-1,NOkから順に、音符NOの1つである特定音符群NOk-1を設定する。
【0070】
ただし、本実施形態のS440では、特定音符群NOk-1として設定される音符NOk-1,NOkが重複しないようにされている。例えば、音符群化スコアGSCの値が、音符NOk-1,NOkの組、音符NOk,NOk+1の組,音符NOk+1k+2の組の順で小さく、これらの組のうち、2つの組を特定音符群NOとして設定しなければならない場合を想定する。この場合、音符NOk+1,NOk+2の組が特定音符群NOとして設定され、音符NOk+1が重複する音符NOk,NOk+1の組は特定音符群NOとして設定されず、音符NOk+1、NOk+2と重複しない音符NOk-1,NOkの組が特定音符群NOとして設定される。
【0071】
このように、音符NOk-1,NOkの組が特定音符群NOとして設定されるとき、インデックス番号がk+1以降である音符NOk+1のインデックス番号を1つデクリメントする(例えば、音符NOk+1が音符NOkとなる)。さらに、このデクリメントされた音符NOkに応じて、対象区間I+1以降の区間開始位置st及び対象区間I以降の区間終了位置enが更新される。
【0072】
その後、対象区間Iに含まれている各音符NOk(ここでは、特定音符群NOを含む)に、規定区間Jに含まれている音節PHOlそれぞれを、時間軸に沿った順序にて1対1に割り当てる(S530)。
【0073】
すなわち、規定区間Jにおける音節PHOlが6つであり、対象区間Iにおける音符NOが7つである場合を想定する。この場合、本実施形態では、対象区間Iにおける音符NOのうち、音符群化スコアGSCが最小となる音符NOk-1,NOkを特定音符群NOk-1として設定して音符NOの数を、規定区間Jにおける音節PHOlの数に一致させる。その上で、特定音符群NOk-1を含む対象区間Iの各音符NOに、規定区間Jの音節PHOlそれぞれを割り当てる。
【0074】
また、S420での比較の結果、区間音節数PHPNJが区間音符数PHNNIよりも多ければ(S420:PHNNI<PHPNJ)、入力受付部13を介して、楽譜データの修正を許可するか否かを表す情報(以下、許可情報とする)を当該情報処理装置10の利用者に入力させ、その入力された許可情報を取得する(S450)。
【0075】
続いて、S450にて取得した許可情報が楽譜データの修正を許可しない旨を表していれば(S460:NO)、後述するS510,S520にて調整制御を実行する。
一方、S450にて取得した許可情報が楽譜データの修正を許可する旨を表していれば(S460:YES)、対象区間Iの音符長NLkについて分散(以下、音符長分散とする)を導出する(S470)。その導出された音符長分散が、予め規定された閾値以下であれば(S480:NO)、即ち、対象区間Iにおける音符長NLkのバラつきが小さければ、規定区間Jの区間音節数PHPNJに一致するように、対象区間Iにおける無音時間NMLkに基づいて対象区間I内に新たな音符NOkを追加することを調整制御として実行する(S490)。
【0076】
具体的に、本実施形態のS490における調整制御では、対象区間I中での無音時間NMLk、即ち、休符の時間長が短いものから順に、当該休符を、音符NOkの1つである変更音符NOkへと変更して設定する。なお、休符としての無音時間NMLkが最短でありかつ同一時間長であるものが少なくとも2つ以上存在する場合、音高差NNDkが最小である無音時間NMLkを変更音符NOkへと変更する。また、本実施形態では、無音時間NMLkが「0」であれば、当該無音時間NMLkを変更音符NOkへと変更する対象から除外する。
【0077】
そして、本実施形態のS490では、変更音符NOkの音高(ノートナンバー)NNkを、その変更音符NOkに時間軸に沿って隣接する音符NOk-1,NOk+1の音高NNk-1,NNk+1の中間値に設定する。
【0078】
このように、無音時間NMLkが変更音符NOkへと変更されるとき、変更音符NOkが設定される以前に、インデックス番号がk以降であった音符NOkのインデックス番号を1つインクリメントする(例えば、音符NOk+1が音符NOk+2となる)。さらに、このインクリメントされた音符NOkに応じて、対象区間I+1以降の区間開始位置st及び対象区間I以降の区間終了位置enは更新される。
【0079】
その後、対象区間Iに含まれている各音符NOk(ここでは、変更音符NOkを含む)に、規定区間Jに含まれている音節PHOlそれぞれを、時間軸に沿った順序にて1対1に割り当てる(S530)。
【0080】
例えば、規定区間Jの音節PHOlが8つであり、対象区間Iの音符NOkが7つである場合を想定する。この場合、本実施形態では、対象区間Iの無音時間NMLkのうち、その値が最短(ただし、「0」は除く)のものを変更音符NOkへと変更して音符NOkを追加することで、対象区間Iの音符NOkの数を規定区間Jの音節PHOlの数に一致させる。その上で、変更音符NOkを含む対象区間Iの各音符NOkに、規定区間Jの音節PHOlそれぞれを割り当てる。
【0081】
なお、S470にて導出された音符長分散が閾値よりも大きければ(S480:YES)、即ち、対象区間Iにおける音符長NLkのバラつきが大きければ、規定区間Jの区間音節数PHPNJに一致するように、対象区間Iにおける音符長NLkに基づいて対象区間I内に新たな音符NOkを追加することを調整制御として実行する(S500)。
【0082】
本実施形態のS500における調整制御では、対象区間I中の音符NOkの中で、音符長NLkが最大である音符NOkから順に、当該音符NOkを、それぞれが音符NOの1つである基準音符NOk及び分割音符NOk+1へと分割して設定する。ただし、基準音符NOkの音符長NLkは、分割音符NOk+1の音符長NLk+1よりも長いものとする(「音符NOkの音符長NLk」>「基準音符NOkの音符長NLk」+「分割音符NOk+1の音符長NLk+1」)。なお、本実施形態のS500では、音符長NLkが最大であり、かつ同一時間長である音符NOkが少なくとも2つ以上存在する場合には、音高差NNDkが最小ものから、基準音符NOk及び分割音符NOk+1へと分割する。
【0083】
このように、音符NOkを基準音符NOk及び分割音符NOk+1へと分割するとき、分割音符NOk+1が設定される以前に、インデックス番号がk+1であった音符NOk+1のインデックス番号を1つインクリメントする(例えば、音符NOk+1が音符NOk+2となる)。さらに、このインクリメントされた音符NOkに応じて、対象区間I+1以降の区間開始位置st及び対象区間I以降の区間終了位置enIは更新される。
【0084】
その後、対象区間Iに含まれている各音符NOk(ここでは、基準音符NOk及び分割音符NOk+1を含む)に、規定区間Jに含まれている音節PHOlそれぞれを、時間軸に沿った順序にて1対1に割り当てる(S530)。
【0085】
例えば、規定区間Jの音節PHOlが8つであり、対象区間Iの音符NOkが7つである場合を想定する。この場合、本実施形態では、対象区間Iの音符NOkのうち、音符長NLkが最長のものを基準音符NOk及び分割音符NOk+1の2つの音符NOに分割することで、対象区間Iの音符NOkの数を規定区間Jの音節PHOlの数に一致させる。その上で、基準音符NOk及び分割音符NOk+1を含む対象区間Iの各音符NOkに、規定区間Jの音節PHOlそれぞれを割り当てる。
【0086】
一方、S450にて取得した許可情報が楽譜データの修正を許可しない旨を表していれば(S460:NO)、音節長PHO_LENl-1と音節長PHO_LENlとの和を、規定区間Jにおける音節PHOl-1,PHOlの組合せ毎に算出する(S510)。続いて、それらの音節長PHO_LENl-1,PHO_LENlの和に基づいて、対象区間Iの音符NOkの数に一致するように、規定区間Jの音節PHOlの数を減少させることを調整制御として実行する(S520)。
【0087】
本実施形態のS520における調整制御では、具体的に、音節長PHO_LENl-1,PHO_LENlの和が最小となる音節PHOl-1,PHOlの組合せから順に、音節PHOの1つである特定音節群PHOl-1を設定する。このとき、インデックス番号がl+1以降である音節PHOl+1のインデックス番号を1つデクリメントする(例えば、音節PHOl+1が音節PHOlとなる)。さらに、このデクリメントされた音節PHOlに応じて、規定区間J+1以降の区切開始位置phs及び規定区間J以降の区切終了位置pheが更新される。
【0088】
その後、対象区間Iに含まれている各音符NOkに、規定区間Jに含まれている音節PHOl(ここでは、特定音節群PHOlを含む)それぞれを、時間軸に沿った順序にて1対1に割り当てる(S530)。
【0089】
例えば、規定区間Jの音節PHOlが8つであり、対象区間Iの音符NOkが7つである場合を想定する。この場合、本実施形態では、規定区間Jの音節PHOlのうち、音節長PHO_LENl-1,PHO_LENlの和が最小となる音節PHOl-1,PHOlの組合せを特定音節群PHOl-1として設定することで、規定区間Jの音節PHOlの数を対象区間I中の区間音符数PHNNIに一致させる。その上で、対象区間Iの各音符NOkに、特定音節群PHOl-1を含む規定区間Jの音節PHOlそれぞれを割り当てる。
【0090】
その後、歌詞割当処理へと戻る。
[実施形態の効果]
以上説明したように、本実施形態の歌詞割当処理では、対象楽曲の規定区間Jに対する替歌歌詞を取得し、その取得した替歌歌詞を音節PHOに細分化した上で、当該対象楽曲の楽曲データにおける対象区間Iに含まれる音符NOに割り当てる。
【0091】
しかも、本実施形態の歌詞割当処理での音符NOへの音節PHOの割り当ては、替え歌の歌詞を細分化した音節の数(即ち、区間音節数PHPNJ)が、対象区間Iにおける音符の数(即ち、区間音符数PHNNI)に一致するように調整した上で実行される。
【0092】
この結果、本実施形態の歌詞割当処理、ひいては、情報処理装置10によれば、作詞作曲の専門知識を有していない一般の利用者であっても、楽曲に適するように替え歌の歌詞を割り当てることができる。
【0093】
特に、本実施形態の割当処理では、対象区間Iに含まれる音符の数(区間音符数PHNNI)や、替歌歌詞の音節数(即ち、区間音節数PHPNJ)に拘わらず、楽曲に適するように替え歌の歌詞を割り当てることができる。
【0094】
なお、本実施形態の歌詞割当処理では、対象区間Iに含まれる各音符NOに割り当てた、替歌歌詞の音節PHOを、音声合成処理によって発声し、歌唱音声化している。さらに、歌詞割当処理では、音声合成処理を実行した後に、替え歌を確定する旨を表す替歌確定指令が入力されると、対象楽曲における歌詞を当該替え歌にて確定している。
【0095】
よって、情報処理装置10の利用者は、替歌歌詞が割り当てられた楽曲を歌唱音声で聴くことができ、その替歌歌詞が割り当てられた楽曲が良好であるか否かを判断した上で、対象楽曲の歌詞を替え歌へと変更することができる。
[その他の実施形態]
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において、様々な態様にて実施することが可能である。
[実施形態と特許請求の範囲との対応関係]
最後に、上記実施形態の記載と、特許請求の範囲の記載との関係を説明する。
【0096】
上記実施形態の歌詞割当処理におけるS110が、特許請求の範囲の記載における楽曲データ取得手段に相当し、歌詞割当処理におけるS120〜S140が、特許請求の範囲の記載における音符数取得手段に相当する。そして、歌詞割当処理におけるS170〜S190が、特許請求の範囲の記載における替歌取得手段に相当し、歌詞割当処理におけるS210〜S240が、特許請求の範囲の記載における音節数取得手段に相当する。
【0097】
さらに、上記実施形態の割当処理におけるS410〜S520が、特許請求の範囲の記載における調整手段に相当し、割当処理におけるS530が、特許請求の範囲の記載における割当手段に相当する。
【0098】
なお、歌詞割当処理におけるS270が、特許請求の範囲の記載における演奏手段に相当する。
【符号の説明】
【0099】
10…情報処理装置(歌詞割当装置) 11…通信部 12…表示部 13…入力受付部 14…記憶部 15…演奏部 16…音出力部 17…入力装置 20…制御部 21…ROM 22…RAM 23…CPU 70…歌詞データ 71…文書データ 72…区切記号 80…対象歌詞表示欄 81…替歌歌詞表示欄 82…入力完了ボタン 83…キャンセルボタン GL…替歌歌詞入力画像

【特許請求の範囲】
【請求項1】
楽曲の1つである対象楽曲の楽譜を表す楽曲データを取得する楽曲データ取得手段と、
前記楽曲データ取得手段で取得した楽曲データに対して規定された対象区間に存在している音符の数である区間音符数を取得する音符数取得手段と、
前記対象楽曲の歌詞を構成する文字列を表す歌詞データを取得し、当該歌詞データによって表され、前記対象区間と対をなす規定区間での歌詞を構成する文字列を、外部から入力された文字列である替歌歌詞へと置換する替歌取得手段と、
前記替歌取得手段で置換された替歌歌詞の音節の数である区間音節数を取得する音節数取得手段と、
前記音符数取得手段にて取得した区間音符数、及び前記音節数取得手段で取得した区間音節数に基づいて、当該対象区間中の音符と当該規定区間中の音節との数が一致するように、前記対象区間中の音符及び前記規定区間中の音節のうちの少なくとも一方を調整する調整制御を実行する調整手段と、
前記調整手段によって調整された前記対象区間中の音符に前記規定区間中の音節を、当該対象区間及び当該規定区間における時間軸に沿った順序にて割り当てる割当手段と
を備え、
前記調整手段は、
前記区間音符数が前記区間音節数よりも多ければ、前記対象区間における時間軸に沿って連続する少なくとも2つの音符を含む1つの音符群である特定音符群を前記対象区間中の音符の1つとすることを、前記調整制御として実行する
ことを特徴とする歌詞割当装置。
【請求項2】
前記調整手段は、
前記区間音符数が前記区間音節数よりも少なければ、前記対象区間中の音符を増加させることを、前記調整制御として実行する
ことを特徴とする請求項1に記載の歌詞割当装置。
【請求項3】
前記調整手段は、
前記区間音符数が前記区間音節数よりも少ない場合に、前記楽曲データに対応する楽譜の変更を禁止する指令を外部から受け付けると、前記規定区間の時間軸に沿って連続する少なくとも2つの音節を含む1つの特定音節群を前記規定区間中の音節の1つとすることを、前記調整制御として実行する
ことを特徴とする請求項1または請求項2に記載の歌詞割当装置。
【請求項4】
前記割当手段にて、前記対象区間中の音符に前記規定区間中の音節が割り当てられた、前記楽曲データを、音声合成処理によって演奏する演奏手段
を備えることを特徴とする請求項1〜請求項3のいずれか一項に記載の歌詞割当装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−44880(P2013−44880A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−181661(P2011−181661)
【出願日】平成23年8月23日(2011.8.23)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】