<第1実施形態>
図1は、本発明の第1実施形態に係る音響解析装置100を例示する構成図である。音響解析装置100は、制御装置12と記憶装置14と放音装置16とを具備するコンピュータシステムで実現される。例えば携帯電話機,スマートフォンまたはパーソナルコンピュータ等の各種の情報処理装置が音響解析装置100として利用され得る。
制御装置12は、例えばCPU(Central Processing Unit)等の処理回路で構成され、音響解析装置100の各要素を統括的に制御する。記憶装置14は、制御装置12が実行するプログラムと制御装置12が使用する各種のデータとを記憶する。例えば磁気記録媒体および半導体記録媒体等の公知の記録媒体が記憶装置14として利用され得る。相互に別体で構成された同種または異種の複数の記録媒体の組合せを記憶装置14として利用することも可能である。
第1実施形態の記憶装置14は、音を表す音信号Xを記憶する。第1実施形態の音信号Xは、時系列に配列された複数(N個)の音符で構成される特定の楽曲(以下「対象楽曲」という)を歌唱した音声を表す時間領域の信号である。音信号Xは、例えば歌唱音声の収録により生成されて記憶装置14に事前に格納される。なお、例えば通信装置(図示略)が他装置から通信網を介して受信した音信号Xを処理することも可能である。
また、記憶装置14は、対象楽曲の内容を表す楽曲情報Dを記憶する。楽曲情報Dは、対象楽曲を構成する複数の音符の各々について音高(以下「基準音高」という)Prefと音符期間とを指定する。任意の1個の音符の基準音高Prefは、対象楽曲を歌唱する発声者がその音符について発音すべき模範的な音高を意味する。また、図2に例示される通り、任意の1個の音符の音符期間は、その音符の発音が開始されるべき時点(以下「開始点」という)Tsと発音が終了されるべき時点(以下「終了点」という)Teとで規定される。なお、楽曲情報Dの形式は任意である。例えば、音高Prefを番号(ノートナンバ)により指定して発音または消音を指示する指示データと、各指示データの発生時点(開始点Tsまたは終了点Te)を指定する時間データとが時系列に配列されたMIDI(Musical Instrument Digital Interface)形式のファイル(SMF:Standard MIDI File)が楽曲情報Dの好適例である。
対象楽曲を歌唱する発声者は、対象楽曲の各音符の基準音高Prefに一致するように順次に発音する。しかし、発声者の歌唱の巧拙等の各種の事情に起因して、対象楽曲のうち任意の1個の音符に対応する区間内で発声者が発音する音高は、その音符の基準音高Prefに近似するけれども厳密には一致しない。第1実施形態の音響解析装置100は、音信号Xが表す音の音高を対象楽曲の各音符の基準音高Prefに近付ける補正を実行することで音信号Yを生成する信号処理装置である。図1の放音装置16(例えばスピーカまたはヘッドホン)は、音高補正後の音信号Yに応じた音波を放射する。なお、音信号Yをデジタルからアナログに変換するD/A変換器、および、変換後の音信号Yを増幅する増幅器の図示は便宜的に省略した。
制御装置12は、記憶装置14に記憶されたプログラムを実行することで、音信号Xから音信号Yを生成するための複数の機能(音響解析部22,音高補正部24)を実現する。なお、制御装置12の機能を複数の装置に分散した構成、または、制御装置12の機能の少なくとも一部を専用の電子回路が実現する構成も採用され得る。
図1の音響解析部22は、音信号Xの解析により補正値C[k]を設定する。記号kは、時間軸上に設定された複数の時点(以下「解析時点」という)のうち任意の1個を示す変数である。すなわち、音響解析部22は、相異なる複数の解析時点の各々について補正値C[k]を設定する。補正値C[k]は、音信号Xの1個の解析時点における音高(以下「観測音高」という)P[k]を補正するための変数である。
音高補正部24は、音信号Xの観測音高P[k]を補正する。具体的には、音響解析部22は、音響解析部22が設定した補正値C[k]に応じて音信号Xの観測音高P[k]を補正することで音信号Yを生成する。例えば、観測音高P[k]を補正値C[k]だけ上昇または低下させることで音信号Yが生成される。ただし、補正値C[k]を利用して観測音高P[k]を補正する方法は任意である。
図3は、音響解析部22の機能に着目した構成図である。図3に例示される通り、音響解析部22は、前処理部32と強度算定部34と音高算定部36と発音点特定部40と音高特定部50と差分算定部60と補正値設定部70と後処理部80とを具備する。前処理部32は、所定の前処理を音信号Xに対して実行する。第1実施形態の前処理は、音信号Xのサンプリング周波数を所定値に低下させるリサンプリング処理を含む。リサンプリング処理の結果、音響解析部22の以降の処理負荷が削減されるとともに雑音成分等の高周波成分が抑圧される。なお、音信号Xの高周波成分を抑圧する低域通過フィルタ処理を前処理として実行することも可能である。前処理部32を省略してもよい。
強度算定部34は、前処理部32による処理後の音信号Xの強度L[k]を解析時点毎(例えば1ミリ秒毎)に算定する。すなわち、音信号Xの強度L[k]の時系列が生成される。強度L[k]は、音信号Xが表す音の大きさの指標(例えば音量またはパワー)である。強度算定部34による強度L[k]の算定には、公知の技術が任意に採用され得る。なお、人間の聴覚特性を近似したA特性を音信号Xに付与したうえで強度L[k]を算定することも可能である。音高算定部36は、前処理部32による処理後の音信号Xについて観測音高P[k]を解析時点毎に算定する。すなわち、複数の観測音高P[k]の時系列が生成される。観測音高P[k]は、音信号Xが表す音の高さの指標(基本周波数またはピッチ)である。音高算定部36による観測音高P[k]の算定には、自己相関法等の公知の技術が任意に採用され得る。
<発音点特定部40>
前述の通り、発声者は複数の音符の時系列に沿って発音することで対象楽曲を歌唱する。したがって、対象楽曲の任意の1個の音符に対応する音の発音を発声者が開始する時点(以下「発音点」という)Qは、理想的には当該音符の開始点Tsに一致するが、現実的には開始点Tsとは相違する。第1実施形態の発音点特定部40は、音信号Xにおいて対象楽曲の各音符に対応する音の発音点Qを特定する。各音符に対応する音を発声者が発音する時点では音信号Xの強度L[k]が変動する。そこで、発音点特定部40は、強度算定部34が解析した強度L[k]の時間的な変動に応じて各発音点Qを特定する。対象楽曲を構成するN個の音符の各々について発音点Q(合計N個)が特定される。
図4は、第1実施形態の発音点特定部40がN個の発音点Qを特定する処理の概要の説明図である。図4に例示される通り、対象楽曲のN個の音符の各々について複数の候補点Qcが設定される。任意の1個の音符に対応する複数の候補点Qcは、当該音符に対応する発音点Qの候補となる時間軸上の時点であり、楽曲情報Dが当該音符について指定する開始点Tsの周囲に設定される。例えば、開始点Tsの前方および後方に所定の間隔(例えば1ミリ秒間隔)で合計200個の候補点Qcが設定される。第1実施形態の発音点特定部40は、対象楽曲のN個の音符の各々について、複数の候補点Qcの何れかを当該音符の発音点Qとして特定する。
図5は、発音点特定部40を例示する構成図であり、図6は、発音点特定部40の動作の説明図である。図5に例示される通り、第1実施形態の発音点特定部40は、第1演算部42と第2演算部44と推定処理部46とを具備する。
第1演算部42は、N個の音符の各々に設定された複数の候補点Qcの各々について局所コストθ[n,i]を算定する。局所コストθ[n,i]は、対象楽曲の第n番目(n=0〜N-1)の音符に設定された複数の候補点Qcのうち第i番目の候補点Qcが実際の発音点Qに該当するコストを意味する。すなわち、局所コストθ[n,i]は、第n番目の音符における第i番目の候補点Qcが発音点Qに該当するか否かの確度の指標(第1指標の例示)である。具体的には、第i番目の候補点Qcが発音点Qに該当する可能性が高いほど局所コストθ[n,i]が小さい数値となるように、第1演算部42は、N個の音符の各々について候補点Qc毎の局所コストθ[n,i]を算定する。
各音符に対応する音が発音される時点では音信号Xの強度L[k]が変動するという前述の傾向を考慮して、第1実施形態の第1演算部42は、任意の1個の候補点Qcにおける音信号Xの強度L[k]の変動量(増加量または減少量)δl[k]に応じて局所コストθ[n,i]を算定する。概略的には、音信号Xの強度L[k]の変動量δl[k]が大きい(すなわち候補点Qcが発音点Qに該当する可能性が高い)ほど局所コストθ[n,i]が小さい数値となるように、第1演算部42は局所コストθ[n,i]を算定する。音信号Xの強度L[k]が時間的に安定するほど局所コストθ[n,i]は大きい数値になる(すなわち候補点Qcが発音点Qに該当する可能性が低い)、と換言することも可能である。以上の説明から理解される通り、局所コストθ[n,i](第1指標の例示)は、候補点Qcが発音点Qに該当するか否かの確度を音信号Xの強度L[k]の変動という観点から評価した指標である。
音信号Xにおける強度L[k]の変動量δl[k]は、例えば以下の数式(1)で表現される。第1演算部42は、強度算定部34が算定した強度L[k]を適用した数式(1)の演算により変動量δl[k]を算定する。
記号F[m]は、中心時刻(m=0)で最大値となり、中心時刻から正側および負側に離間するほど数値が減少して端部(m=±M)でゼロとなる窓幅(2M+1)の窓関数である。窓幅を規定する定数Mは所定の正数に設定される。数式(1)および図6から理解される通り、第k番目の解析時点の前後で強度L[k]の変動が大きいほど、変動量δl[k]は絶対値が大きい数値となる。また、窓関数F[m]とともに変数m(−M≦m≦M)が強度L[k+m]に乗算されるから、図6からも理解される通り、強度L[k]が増加している過程の変動量δl[k]は正数となり、強度L[k]が減少している過程の変動量δl[k]は負数となる。なお、変動量δl[k]の算定方法は数式(1)に限定されない。例えば第k番目の解析時点の強度L[k]と直前の強度L[k-1]との差分を変動量δl[k]として算定することも可能である。
図5の第1演算部42は、数式(1)で算定した変動量δl[k]に応じた安定指標Wl[k]を算定する。安定指標Wl[k]は、強度L[k]の時間的な安定性の指標である。前述の通り、強度L[k]の変動が大きい(強度L[k]が不安定に変動する)ほど変動量δl[k]の絶対値は大きい数値となるから、概略的には、図6からも理解される通り、変動量δl[k]の絶対値が大きいほど安定指標Wl[k]が小さい数値(すなわち安定性が低いことを意味する数値)となるように安定指標Wl[k]は算定される。具体的には、第1演算部42は、数式(1)で算定した変動量δl[k]を適用した以下の数式(2)の演算により各解析時点の安定指標Wl[k]を算定する。
数式(2)の第1段目は、強度L[k]が増加している過程(δl[k]≧0)における安定指標Wl[k]の演算式であり、第2段目は、強度L[k]が減少している過程(δl[k]<0)における安定指標Wl[k]の演算式である。数式(1)で算定される変動量δl[k]の変動範囲が広いことを考慮して、数式(2)の演算は、安定指標Wl[k]の変動範囲を変動量δl[k]の変動範囲と比較して圧縮するための演算を含む。数式(2)の係数α1は、変動範囲の圧縮の度合を示す定数であり、例えば所定の正数に設定される。
ところで、典型的には強度L[k]が増加する時点が発音点Qに該当するが、強度L[k]が減少する時点も発音点Qに該当する可能性がある。例えば、「あ[a]」に連続して「う[u]」と発音する場合を想定する。「う[u]」の音量は「あ[a]」の音量を下回る傾向があるから、「う[u]」の発音が開始される発音点Qでは強度L[k]が減少する。ただし、強度L[k]が減少する時点が発音点Qに該当する可能性は、強度L[k]が増加する時点が発音点Qに該当する可能性と比較して低いという傾向がある。以上の傾向を考慮して、数式(2)の係数φは、変動量δl[k]に対する安定指標Wl[k]の変動の傾向を、強度L[k]の増加時と減少時とで相違させるための変数である。すなわち、正負非対称の関数(数式(2))により変動量δl[k]が非線形圧縮される。係数φは、例えば所定の正数(例えば0.3)に設定される。
以上の説明から理解される通り、変動量δl[k]の絶対値が大きいほど安定指標Wl[k]が小さい数値となり、変動量δl[k]の絶対値が小さいほど安定指標Wl[k]は大きい数値となる。前述の通り、第k番目の解析時点の変動量δl[k]の絶対値が大きい(すなわち安定指標Wl[k]が小さい)ほど当該解析時点が発音点Qに該当する可能性は高い。以上の関係を考慮して、第1実施形態では、候補点Qcに一致する解析時点について算定された安定指標Wl[k]を当該候補点Qcの局所コストθ[n,i]として利用する。したがって、候補点Qcにおける強度L[k]の変動量δl[k]の絶対値が大きい(すなわち安定指標Wl[k]が小さい)ほど、局所コストθ[n,i]は小さい数値(すなわち当該候補点Qcが発音点Qに該当する可能性が高いことを意味する数値)に設定される。前述の通り係数φを数式(2)に導入した結果、候補点Qcにおいて音信号Xの強度L[k]が増加する場合(δl[k]≧0)と減少する場合(δl[k]<0)とでは、強度L[k]の変動(変動量δl[k])に対する局所コストθ[n,i](安定指標Wl[k])の変動の度合が相違する。
図5の第2演算部44は、対象楽曲内で相前後する2個の音符(第(n-1)番目,第n番目)の組合せ毎に遷移コストξ[n,i,j]を算定する。第n番目の音符の遷移コストξ[n,i,j]は、直前(第(n-1)番目)の音符に対応する複数の候補点Qcのうち第j番目の候補点Qcを選択した場合に、第n番目の音符に対応する複数の候補点Qcのうち第i番目の候補点Qcが実際の発音点Qに該当するコストを意味する。すなわち、遷移コストξ[n,i,j]は、第n番目の音符における第i番目の候補点Qcが発音点Qに該当するか否かの確度の指標(第2指標の例示)である。具体的には、第(n-1)番目の音符(第1音符の例示)における第j番目の候補点Qcが発音点Qに該当するという仮定のもとで、第n番目の音符(第2音符の例示)における第i番目の候補点Qcが当該音符の発音点Qに該当する可能性が高いほど、遷移コストξ[n,i,j]が小さい数値となるように、第2演算部44は、相前後する2個の音符の組合せ毎に遷移コストξ[n,i,j]を算定する。
具体的には、第2演算部44は、以下の数式(3)の演算で遷移コストξ[n,i,j]を算定する。なお、対象楽曲内の最初の音符(n=0)に対応する遷移コストξ[0,i,j]はゼロに設定される。
数式(3)の時間差ΔTs[n]は、第n番目の音符の開始点Ts[n]と第(n-1)番目の音符の開始点Ts[n-1]との時間差(Ts[n]−Ts[n-1])である。すなわち、時間差ΔTs[n]は、対象楽曲の第n番目の音符と第(n-1)番目の音符との模範的な時間差に相当する。他方、時間差ΔQc[n,i,j]は、第n番目の音符に対応する第i番目の候補点Qc[n,i]と第(n-1)番目の音符に対応する第j番目の候補点Qc[n-1,j]との時間差(Qc[n,i]−Qc[n-1,j])である。数式(3)から理解される通り、遷移コストξ[n,i,j]は、第n番目の音符(第1音符)および第(n-1)番目の音符(第2音符)の時間差ΔTs[n]と、候補点Qc[n,i]および候補点Qc[n-1,j]の時間差ΔQc[n,i,j]との差異に応じて算定される。具体的には、候補点Qc[n,i]と候補点Qc[n-1,j]との時間差ΔQc[n,i,j]が対象楽曲の模範的な時間差ΔTs[n]に近いほど、遷移コストξ[n,i,j]は小さい数値(すなわち第n番目の音符の第i番目の候補点Qc[n,i]が発音点Qに該当する可能性が高いことを意味する数値)となる。以上の説明から理解される通り、遷移コストξ[n,i,j](第2指標の例示)は、候補点Qcが発音点Qに該当するか否かの確度を2個の候補点Qc間の時間差という観点から評価した指標である。
図5の推定処理部46は、第1演算部42が算定した各局所コストθ[n,i]と第2演算部44が算定した各遷移コストξ[n,i,j]とを利用して、複数の候補点Qcの何れかを音符毎に発音点Qとして選択および配列した時系列(以下「最尤系列」という)Zを特定する。具体的には、各発音点Qの近傍で強度L[k]が変動し(すなわち局所コストθ[n,i]が抑制され)、かつ、相前後する2個の発音点Qの時間差が対象楽曲の模範的な時間差ΔTs[n]から乖離しない(すなわち遷移コストξ[n,i,j]が抑制される)という傾向のもとで、対象楽曲の全体的に最尤なN個の候補点Qcの時系列が最尤系列Zとして特定される。対象楽曲内の相異なる音符に対応するN個の発音点Qの各々の時刻を示す時系列データが最尤系列Zとして生成される。最尤系列Zの特定には、以下の例示の通り、例えば動的計画法(Dynamic Programming)等の最尤推定が好適に利用される。
第1実施形態の推定処理部46は、局所コストθ[n,i]と遷移コストξ[n,i,j]とを利用した以下の数式(4)の演算により累積コストd[n,i]を算定する。相異なる候補点Qcに対応する複数の累積コストd[n,i](d[n,0],d[n,1],d[n,2],…)がN個の音符の各々について算定される。なお、対象楽曲内の最初の音符(n=0)に対応する累積コストd[0,i]はゼロに設定される。
数式(4)の係数α2は、遷移コストξ[n,i,j]の加重値であり、所定の正数に設定される。数式(4)から理解される通り、推定処理部46は、第(n-1)番目までの音符の累積コストd[n-1,j]と当該音符からの遷移コストξ[n,i,j]との加重和の最小値(min)を第n番目の音符の局所コストθ[n,i]に加算することで累積コストd[n,i]を算定する。相異なる候補点Qcに対応する複数の累積コストd[n,i]が対象楽曲のN個(第0番目から第(N-1)番目)の音符の各々について算定される。推定処理部46は、N個の音符の各々について、複数の候補点Qcのうち最小の累積コストd[n,i]に対応する候補点Qcの番号jをバックポインタjmin[n]として記憶装置14に格納する。バックポインタjmin[n]は、例えば以下の数式(5)で表現される。
対象楽曲のN個の音符の各々について累積コストd[n,i]を算定すると、推定処理部46は、対象楽曲の最後に位置する第(N-1)番目の音符について算定した複数の累積コストd[N-1,i](d[N-1,0],d[N-1,1],d[N-1,2],…)のうち最小値に対応する候補点Qcの番号imin[N-1](imin[N-1]=arg min{d[N-1,i]})を選択する。そして、推定処理部46は、記憶装置14に保持されたバックポインタjmin[n]で指定される候補点Qcを逆順(時間軸上の遡及方向)に辿って順次に発音点Qとして選択することで最尤系列Zを特定する。
図7は、第1実施形態の発音点特定部40が各音符の発音点Qを特定する処理(以下「発音点特定処理」という)のフローチャートである。利用者からの指示を契機として発音点特定処理が開始される。
発音点特定処理を開始すると、第1演算部42は、N個の音符の各々に設定された複数の候補点Qcの各々について局所コストθ[n,i]を算定する(Sa1)。具体的には、第1演算部42は、強度算定部34が算定した強度L[k]の変動量δl[k]を解析時点毎に算定し(Sa11)、変動量δl[k]に応じた安定指標Wl[k]を算定する(Sa12)。そして、第1演算部42は、候補点Qcに一致する解析時点について算定された安定指標Wl[k]を当該候補点Qcの局所コストθ[n,i]として設定する(Sa13)。他方、第2演算部44は、対象楽曲内で相前後する2個の音符(第(n-1)番目,第n番目)の組合せ毎に遷移コストξ[n,i,j]を算定する(Sa2)。なお、第1演算部42による局所コストθ[n,i]の算定(Sa1)と第2演算部44による遷移コストξ[n,i,j]の算定(Sa2)との順序は逆転され得る。推定処理部46は、局所コストθ[n,i]と遷移コストξ[n,i,j]とを利用して最尤系列Zを特定する(Sa3)。具体的には、推定処理部46は、局所コストθ[n,i]と遷移コストξ[n,i,j]とから累積コストd[n,i]とバックポインタjmin[n]とを算定する(Sa31)。そして、推定処理部46は、対象楽曲の最後(第(N-1)番目)の音符について算定された最小の累積コストd[n,i]に対応する候補点Qcから、バックポインタjmin[n]で指定される各候補点Qcに沿って順次に遡及することで、N個の発音点Qを時系列に配列した最尤系列Zを特定する(Sa32)。以上が発音点特定部40の具体例である。
ところで、音信号Xの強度L[k]の時間的な変動が大きい時点を単純に発音点Qとして特定する構成も想定され得る。しかし、単純に強度L[k]の変化が大きい時点を発音点Qとして特定する構成では、実際の発音点Qを高精度に特定することは実際には困難である。第1実施形態では、音符毎の複数の候補点Qcの各々について当該候補点Qcでの強度L[k]の変動量δl[k]に応じて算定された局所コストθ[n,i]を利用して、複数の候補点Qcの何れかが音符毎に発音点Qとして選択した最尤系列が特定される。したがって、例えば単純に強度L[k]の変動量δl[k]が大きい時点を発音点Qとして特定する構成と比較して、対象楽曲の全体的な傾向を反映した適切な発音点Qを特定することが可能である。
また、第1実施形態では、相前後する2個の音符の間の開始点Tsの時間差ΔTs[k]と、候補点Qcの時間差ΔQc[n,i,j]との差異に応じた遷移コストξ[n,i,j]が最尤系列Zの特定に利用される。したがって、相前後する2個の音符間の時間差ΔTs[k]と候補点Qcの時間差ΔQc[n,i,j]との差異が抑制されるように音符毎の適切な発音点Qを特定することが可能である。
第1実施形態では、候補点Qcにおいて音信号Xの強度L[k]が増加する場合と減少する場合とで、強度L[k]の変動に対する局所コストθ[n,i]の変動の度合が相違する。したがって、音信号Xの強度L[k]の変動量が同等でも、強度L[k]の増加時と減少時とでは、当該変化の時点が発音点Qに該当する可能性が相違するという傾向のもとで、発音点Qを高精度に特定可能な適切な局所コストθ[n,i]を算定することが可能である。
第1実施形態では、N個の音符の各々における開始点Tsの周囲に複数の候補点Qcが設定される。したがって、各音符が開始音の近傍で発音されるという傾向のもとで、各音符の発音点を効率的に特定することが可能である。
以上に説明した通り、発音点特定部40は、対象楽曲のN個の音符の各々について発音点Qを特定する。以下の説明では、図2に例示される通り、対象楽曲の任意の1個の音符について特定された発音点Qから、楽曲情報Dが当該音符について指定する終了点Teまでの期間を、「解析期間S」と表記する。解析期間Sは対象楽曲の音符毎に設定される。楽曲情報Dが音符毎に指定する音符期間の開始点Tsが発音点Qに変更されることで、当該音符の音符期間が解析期間S(すなわち実際に音声が存在する期間)に更新されるとも換言され得る。図3の音高特定部50および補正値設定部70は、対象楽曲の相異なる音符に対応するN個の解析期間Sを対象として処理を実行する。音高特定部50および補正値設定部70の各々の具体的な構成および動作について以下に詳述する。なお、図2では解析期間Sが音符期間よりも短い場合を例示したが、発音点Qが開始点Tsよりも時間的に前方である場合には、解析期間Sは音符期間よりも長い期間となる。
<音高特定部50>
音高特定部50は、音信号Xが表す音の音高(以下「解析音高」という)Px[n]をN個の解析期間Sの各々について特定する。具体的には、音高特定部50は、音高算定部36が解析時点毎に音信号Xから算定した観測音高P[k]を利用して解析期間S毎(対象楽曲の音符毎)の解析音高Px[n]を特定する。解析期間S毎に単一の数値の解析音高Px[n]が特定される。任意の1個の解析期間Sの解析音高Px[n]は、その解析期間S内の相異なる解析時点について算定された複数の観測音高P[k]の代表値とも換言され得る。図8は、音高特定部50を例示する構成図である。図8に例示される通り、第1実施形態の音高特定部50は、指標算定部52と第1処理部54と第2処理部56と演算処理部58とを具備する。
指標算定部52は、安定指標Wp[k]を解析時点毎に算定する。安定指標Wp[k]は、観測音高P[k]の時間的な安定性の指標である。第1実施形態の指標算定部52は、以下の例示の通り、各解析時点における観測音高P[k]の変動量δp[k]を算定し、変動量δp[k]に応じた安定指標Wp[k]を解析時点毎に算定する。
指標算定部52は、まず、数式(1)と同様の窓関数F[m]を使用した数式(6)の演算により各解析時点の変動量δp[k]を算定する。なお、変動量δp[k]の算定方法は数式(6)に限定されない。例えば第k番目の解析時点の観測音高P[k]と直前の観測音高P[k-1]との差分を変動量δp[k]として算定することも可能である。
数式(6)から理解される通り、第k番目の解析時点の前後で観測音高P[k]の変動が大きいほど、変動量δp[k]は絶対値が大きい数値となる。したがって、概略的には、変動量δp[k]の絶対値が大きい(観測音高P[k]が不安定に変動する)ほど安定指標Wp[k]が小さい数値(すなわち安定性が低いことを意味する数値)となるように安定指標Wp[k]は算定される。具体的には、第1演算部42は、数式(6)で算定した変動量δp[k]を適用した以下の数式(7)の演算により各解析時点の安定指標Wp[k]を算定する。
数式(7)の演算は、安定指標Wp[k]の変動範囲を変動量δp[k]の変動範囲と比較して圧縮するための演算を含む。数式(7)の係数α3は、変動範囲の圧縮の度合を示す定数であり、例えば所定の正数に設定される。数式(7)から理解される通り、変動量δp[k]の絶対値が大きい(観測音高P[k]が不安定に変動する)ほど安定指標Wp[k]は小さい数値となり、変動量δp[k]の絶対値が小さい(観測音高P[k]が安定的に維持される)ほど安定指標Wp[k]は大きい数値となる。したがって、観測音高P[k]の安定性の指標として安定指標Wp[k]を利用することが可能である。
ところで、観測音高P[k]の時間的な変動(時間的にどのように変動するか)、および、観測音高P[k]が変動した場合に受聴者が知覚する音高の傾向(観測音高P[k]の変動時に受聴者が解析期間Sからどのような音高を認識するか)は、解析期間Sの長短に依存するという傾向がある。以上の傾向を考慮して、第1実施形態では、解析期間Sが長い場合に好適な第1処理Sc1と、解析期間Sが短い場合に好適な第2処理Sc2とが、各解析期間Sの解析音高Px[n]の特定に利用される。第1処理Sc1と第2処理Sc2とは処理内容が相違する。図8の第1処理部54は、第1処理Sc1により各解析期間Sの音高Pa[n](第1音高の例示)を特定し、第2処理部56は、第2処理Sc2により各解析期間Sの音高Pb[n](第2音高の例示)を特定する。音高Pa[n]および音高Pb[n]の各々は、解析期間S毎の単一の数値である。演算処理部58は、第1処理部54が特定した音高Pa[n]と第2処理部56が特定した音高Pb[n]とを利用して解析期間S毎に解析音高Px[n]を算定する。第1処理部54と第2処理部56と演算処理部58との各々の機能について以下に詳述する。
第1処理部54が実行する第1処理Sc1は、解析期間S内の相異なる解析時点について音高算定部36が算定した複数の観測音高P[k]を平均(具体的には加重平均)することで音高Pa[n]を算定する処理である。実際には音声の音高が発音中に変動する場合でも、受聴者は、時間的に安定している箇所の音高が発音されたと知覚し易いという傾向がある。音声が長時間にわたり継続的に発音された場合にはこの傾向が特に顕著である。以上の傾向を考慮して、第1実施形態の第1処理部54は、指標算定部52が算定した安定指標Wp[k]に応じた加重値を利用して解析期間S内の複数の観測音高P[k]を加重平均することで解析期間Sの音高Pa[n]を算定する。具体的には、第1処理部54は、以下の数式(8)の演算により音高Pa[n]を算定する。数式(8)から理解される通り、解析期間S内で安定指標Wp[k]が大きい解析時点の観測音高P[k]ほど音高Pa[n]に対して優勢に反映される。
以上に説明した通り、第1処理Sc1では、解析期間S内の複数の観測音高P[k]を平均(具体的には加重平均)することで音高Pa[n]が算定される。したがって、例えば解析期間S内の複数の観測音高P[k]の何れかを音高Pa[n]として選択する構成と比較して、長時間にわたる発音に対して受聴者が実際に知覚する音高に近い適切な音高Pa[n]を特定できるという利点がある。第1実施形態の第1処理Sc1では特に、安定指標Wp[k]に応じた加重値を利用して解析期間S内の複数の観測音高P[k]を加重平均することで音高Pa[n]が算定される。したがって、例えば解析期間S内の複数の観測音高P[k]の単純平均により音高Pa[n]を算定する構成と比較して、受聴者が知覚する音高に近い適切な音高Pa[n]を特定できるという前述の効果は格別に顕著である。ただし、解析期間S内の複数の観測音高P[k]の単純平均で音高Pa[n]を算定することも可能である。
図8の第2処理部56は、以上に例示した第1処理Sc1とは処理内容が相違する第2処理Sc2により音高Pb[n]を解析期間S毎に特定する。図9は、第2処理Sc2のフローチャートである。解析期間S毎に第2処理Sc2が実行される。図9に例示される通り、第2処理Sc2を開始すると、第2処理部56は、解析期間S内の複数の観測音高P[k]の時系列(以下「音高遷移」という)が、当該解析期間Sに対応する音符の基準音高Prefと交差するか否かを判定する(Sc21)。すなわち、基準音高Prefからみて正側または負側の一方から他方に観測音高P[k]が変動しているか否か(観測音高P[k]が基準音高Prefを跨いで変動しているか否か)が判定される。
短時間の音声の受聴者は、実際には音声の音高が発音中に変動する場合でも、音高遷移の極値(極大値または極小値)に相当する音高が発音されたと知覚する、という傾向がある。以上の傾向を考慮して、解析期間S内の音高遷移が基準音高Prefと交差しない場合(Sc21:NO)、第2処理部56は、図10に例示される通り、解析期間S内の複数の観測音高P[k]のうち基準音高Prefに最も近い観測音高P[k]を音高Pb[n]として特定する(Sc22)。具体的には、例えば図10の例示のように解析期間S内の全部の観測音高P[k]が基準音高Prefを下回る場合には、解析期間S内の複数の観測音高P[k]の最大値(典型的には極大値)が音高Pb[n]として選択される。また、解析期間S内の全部の観測音高P[k]が基準音高Prefを上回る場合には、解析期間S内の複数の観測音高P[k]の最小値(典型的には極小値)が音高Pb[n]として選択される。
他方、音高遷移が基準音高Prefと交差する場合(Sc21:YES)、第2処理部56は、音高遷移と基準音高Prefとの交差の回数が2回以下であり、かつ、解析期間S内で観測音高P[k]が基準音高Prefを上回る時間が閾値τ1を上回る、という条件(以下「音高条件」という)の成否を判定する(Sc23)。閾値τ1は、例えば、解析期間Sの全長に対して所定の割合(例えば75%)に相当する可変の時間長に設定される。図11に例示される通り、解析期間S内の時点s1において基準音高Prefの負側から正側に観測音高P[k]が変動し、閾値τ1を上回る時間が時点s1から経過した時点s2において観測音高P[k]が基準音高Prefの正側から負側に変動した場合に、第2処理部56は音高条件が成立したと判定する。
音高条件が成立する場合(Sc23:YES)、第2処理部56は、解析期間S内の複数の観測音高P[k]の何れかを音高Pb[n]として選択する(Sc24)。具体的には、第2処理部56は、解析期間S内の複数の観測音高P[k]のうち、当該解析期間Sの基準音高Prefを上回り、かつ、安定指標Wp[k]が示す安定性が高い1個の観測音高P[k]を、音高Pb[n]として選択する。例えば、解析期間Sで基準音高Prefを上回る複数の観測音高P[k]のうち、安定指標Wp[k]が最大値となる1個の観測音高P[k]が、音高Pb[n]として選択される。
音高遷移と基準音高Prefとが交差しない場合(Sc21:YES)と、音高条件が成立する場合(Sc23:NO)との何れにも該当しない場合(Sc23:NO)、第2処理部56は、解析期間Sに対応する基準音高Prefを当該解析期間Sの音高Pb[n]として特定する(Sc25)。以上が第2処理Sc2の具体例である。
以上に説明した通り、第1実施形態では、解析期間S内の音高遷移が基準音高Prefに交差しない場合に、解析期間S内で基準音高Prefに最も近い観測音高P[k]が音高Pb[n]として特定される。したがって、短時間の発音に対して受聴者が実際に知覚する音高に近い適切な音高Pb[n]を特定できるという利点がある。また、第1実施形態では、音高条件が成立した場合に、解析期間Sの基準音高Prefを上回り、かつ、安定指標Wp[k]が示す安定性が高い観測音高P[k]が音高Pb[n]として特定される。したがって、時間的に安定している箇所の音高が発音されたと受聴者が知覚し易いという前述の傾向のもとで、受聴者が実際に知覚する音高に近い適切な音高Pb[n]を特定できるという利点がある。他方、音高遷移と基準音高Prefとが交差しない場合(Sc21:YES)と、音高条件が成立する場合(Sc23:NO)との何れにも該当しない場合には、解析期間Sに対応する基準音高Prefが音高Pb[n]として特定される。したがって、音高遷移と基準音高Prefとの交差の有無または音高条件の成否に関わらず、各解析時点の観測音高P[k]に応じた音高Pb[n]を特定する構成と比較して、音高Pb[n]の特定に必要な処理負荷が軽減されるという利点がある。
図8の演算処理部58は、第1処理部54が特定した音高Pa[n]と第2処理部56が特定した音高Pb[n]とを利用して解析期間S毎に解析音高Px[n]を算定する。第1実施形態の演算処理部58は、音高Pa[n]と音高Pb[n]の加重平均により解析音高Px[n]を算定する。前述の通り、解析期間Sが長い場合には第1処理Sc1が好適であり、解析期間Sが短い場合には第2処理Sc2が好適である。以上の傾向を考慮して、第1実施形態の演算処理部58は、解析期間Sの時間長tS[n]に応じた加重値を利用した音高Pa[n]および音高Pb[n]の加重平均により解析音高Px[n]を算定する。具体的には、演算処理部58は、音高Pa[n]と音高Pb[n]とを利用した以下の数式(9)の演算により解析音高Px[n]を解析期間S毎に算定する。
数式(9)において、音高Pa[n]に対する加重値ωa[n]と音高Pb[n]に対する加重値ωb[n]とは、例えば第n番目の解析期間Sの時間長tS[n]を利用した以下の数式(10a)および数式(10b)で定義される。数式(10a)の係数α4および係数α5は所定の正数である。
図12は、数式(10a)の加重値ωa[n]と数式(10b)の加重値ωb[n]と解析期間Sの時間長tS[n]との関係の説明図である。図12では、係数α4を0.05に設定し、係数α5を450msに設定した。図12に例示される通り、解析期間Sの時間長tS[n]が長いほど、加重値ωa[n]が増加するとともに加重値ωb[n]が減少し、解析期間Sの時間長tS[n]が短いほど、加重値ωa[n]が減少するとともに加重値ωb[n]が増加する。したがって、解析期間Sの時間長tS[n]が長いほど、第1処理Sc1で特定された音高Pa[n]が解析音高Px[n]に優勢に反映され、解析期間Sの時間長tS[n]が短いほど、第2処理Sc2で特定された音高Pb[n]が解析音高Px[n]に優勢に反映される。
図13は、音高特定部50が各解析期間Sの解析音高Px[n]を特定する処理(以下「音高特定処理」という)のフローチャートである。図7に例示した発音点特定処理の実行後に図13の音高特定処理が実行される。
音高特定処理を開始すると、指標算定部52は、安定指標Wp[k]を解析時点毎に算定する(Sc0)。安定指標Wp[k]が算定されると、第1処理部54は、前述の第1処理Sc1により各解析期間Sの音高Pa[n]を特定し、第2処理部56は、前述の第2処理Sc2により各解析期間Sの音高Pb[n]を特定する。演算処理部58は、解析期間Sの時間長tS[n]に応じた加重値ωa[n]および加重値ωb[n]を利用して音高Pa[n]と音高Pb[n]とを加重平均することで、解析期間S毎に解析音高Px[n]を算定する(Sc3)。なお、第1処理部54による第1処理Sc1と第2処理部56による第2処理Sc2との順序は逆転され得る。
前述の通り、観測音高P[k]の時間的な変動、および、観測音高P[k]の変動時に受聴者が知覚する音高の傾向は、解析期間Sの長短に依存するという傾向がある。したがって、例えば自己相関法等の公知の技術により単純に音高を特定するだけでは、聴感的に知覚される音高に整合する結果を得ることは実際には困難である。第1実施形態では、第1処理Sc1で特定された音高Pa[n]と第2処理Sc2で特定された音高Pb[n]とが、解析期間Sの時間長tS[n]に応じた加重値(ωa[n],ωb[n])により加重平均される。したがって、解析期間Sが長い場合と短い場合とで観測音高P[k]の時間的な変動の傾向が相違し得るという事情のもとで、解析期間Sの長短に関わらず高精度に解析音高Px[n]を特定できるという利点がある。
図3に例示された差分算定部60は、対象楽曲の各音符の基準音高Prefと音高特定部50が特定した解析音高Px[n]との差分に応じた補正値Ca[k]を解析時点毎に算定する。具体的には、時間軸上の任意の1個の解析時点における補正値Ca[k]は、対象楽曲のうち当該解析時点を含む音符の基準音高Prefと、当該解析時点を含む解析期間Sの解析音高Px[n]との差分(Ca[k]=Pref−Px[n])として算定される。したがって、解析音高Px[n]が基準音高Prefを上回る区間(例えば発声者が基準音高Prefを上回る音高で発音した場合)では、補正値Ca[k]は負数(音高の低下を指示する補正値)に設定される。他方、解析音高Px[n]が基準音高Prefを下回る区間(例えば発声者が基準音高Prefを下回る音高で発音した場合)では、補正値Ca[k]は正数(音高の上昇を指示する補正値)に設定される。
<補正値設定部70>
差分算定部60が算定した補正値Ca[k]を音信号Xの観測音高P[k]に加算することで、対象楽曲の各音符を単位として(すなわち解析期間S毎に)、観測音高P[k]を基準音高Prefに近付ける補正が実現される。しかし、実際の歌唱音声では、図14に例示される通り、発声者が一定の音高を意図して発音した場合でも、1個の音符の区間内で観測音高P[k]が経時的に一方向に変動(典型的には低下)する場合がある。以上に例示した観測音高P[k]の漸次的な変動(以下「漸次変動」という)は、発音が短時間であれば受聴者に知覚され難く特段の問題と認識されないが、発音が長時間にわたる場合には受聴者に顕著に知覚され易いという傾向がある。以上の傾向を考慮して、第1実施形態の補正値設定部70は、1個の音符に対応する解析期間S内で相前後する2個の区間において観測音高P[k]を相互に逆方向に補正するための補正値Cb[k]を解析時点毎に設定する。図15は、補正値設定部70を例示する構成図である。図15に例示される通り、第1実施形態の補正値設定部70は、区間画定部72と区間選択部74と設定処理部76とを具備する。
区間画定部72は、複数の解析期間Sの各々について先頭区間Usと第1区間U1と第2区間U2と末尾区間Ueとを画定する。先頭区間Usは、解析期間Sの始点(発音点Q)を含む区間であり、末尾区間Ueは、解析期間Sの終点(終了点Te)を含む区間である。先頭区間Usは、解析期間Sのうち観測音高P[k]の漸次変動の開始前に観測音高P[k]が不安定に変動する区間である。末尾区間Ueは、解析期間Sのうち観測音高P[k]の漸次変動の終了後に観測音高P[k]が不安定に変動する区間である。先頭区間Usおよび末尾区間Ueは、観測音高P[k]の変動の傾向が暫時変動とは相違する区間とも換言され得る。
第1区間U1および第2区間U2は、先頭区間Usと末尾区間Ueとの間に位置し、観測音高P[k]の漸次変動が観測される区間である。すなわち、第1区間U1の始点から第2区間U2の終点にかけて観測音高P[k]は漸次的に低下する。第1区間U1は、先頭区間Usに後続する区間であり、第2区間U2は、第1区間U1に後続する区間である。概略的には、第1区間U1は、解析期間Sの解析音高Px[n]を上回る音高から解析音高Px[n]まで観測音高P[k]が徐々に低下する区間である。また、概略的には、第2区間U2は、解析音高Px[n]を下回る音高まで観測音高P[k]が解析音高Px[n]から徐々に低下する区間である。
第1実施形態の区間画定部72は、1個の音符の区間内で観測音高P[k]が経時的に変動する傾向を記述した統計モデルを利用して、先頭区間Usと第1区間U1と第2区間U2と末尾区間Ueとを解析期間S毎に画定する。具体的には、区間画定部72は、図14に例示される通り、解析期間S内の相異なる区間に対応する複数の状態σ(σ1,σ2,σ3,σ4)を含む状態遷移モデルμを利用する。第1実施形態の状態遷移モデルμは、時間的な遡及が禁止されるleft-to-right型のHMM(Hidden Markov Model)である。図14の状態σ1は先頭区間Usに対応し、状態σ2は第1区間U1に対応し、状態σ3は第2区間U2に対応し、状態σ4は末尾区間Ueに対応する。区間毎の観測音高P[k]の変動の傾向が反映されるように、各状態σの出力確率の確率分布と状態σ間の遷移確率の確率分布とが事前に設定される。なお、状態σ2と状態σ3とを含む状態遷移モデルμを利用して解析期間Sを第1区間U1と第2区間U2との2個に区分することも可能である。
区間画定部72は、解析期間Sの音高遷移(複数の観測音高P[k]の時系列)をHMMに適用し、例えばビタビ(Viterbi)アルゴリズム等の動的計画法により最尤の状態系列を推定する。区間画定部72は、最尤の状態系列のなかで状態σが遷移する地点を境界として解析期間Sを先頭区間Usと第1区間U1と第2区間U2と末尾区間Ueとに区分する。また、区間画定部72は、状態遷移モデルμに対する音高遷移の尤度λを算定する。尤度λは、状態遷移モデルμで想定された漸次変動に解析期間Sの音高遷移が適合する度合の指標であり、解析期間S内での漸次変動の明瞭性の指標とも換言され得る。例えば尤度λが大きいほど、明瞭な漸次変動が観測区間S内に存在すると評価できる。なお、実際の尤度λは、例えば解析期間S内の解析時点の総数(観測音高P[k]の総数)に応じて正規化された対数尤度である。
図15の区間選択部74は、補正値Cb[k]を使用した補正の対象となる解析期間S(以下「選択解析期間S」という)をN個の解析期間Sから選択する。具体的には、漸次変動が観測される解析期間Sが選択解析期間Sとして選択される。前述の通り、観測音高P[k]の漸次変動は、長時間にわたり発音が継続された場合に特に受聴者に知覚され易いという傾向がある。以上の傾向を考慮して、第1実施形態では、解析期間Sの時間長tS[n]が所定の閾値τ2を上回ることを選択解析期間Sの条件として想定する。他方、解析期間Sが長時間にわたる場合でも漸次変動が観測されない場合もある。そこで、第1実施形態では、区間画定部72が算定した尤度λが閾値λTHを上回ることも選択解析期間Sの条件として想定する。尤度λが閾値λTHを上回ることは、状態遷移モデルμでモデル化された傾向に音高遷移が適合すること(すなわち、解析期間S内に漸次変動が観測されること)を意味する。以上の例示の通り、第1実施形態の区間選択部74は、時間長tS[n]が閾値τ2を上回り、かつ、尤度λが閾値λTHを上回る解析期間Sを、選択解析期間SとしてN個の候補から選択する。
図15の設定処理部76は、選択解析期間S内の解析時点毎に補正値Cb[k]を設定する。第1実施形態の設定処理部76は、区間画定部72が画定した第1区間U1および第2区間U2の各々における解析時点毎に補正値Cb[k]を設定する。具体的には、設定処理部76は、以下の数式(11)の演算により補正値Cb[k]を算定する。なお、第1区間U1内の複数の解析時点にわたり補正値Cb[k]は共通の数値である。同様に、第2区間U2内の複数の解析時点にわたり補正値Cb[k]は共通の数値である。
数式(11)の記号Pave[n]は、第1区間U1または第2区間U2内における複数の観測音高P[k]の平均値(以下「平均音高」という)である。例えば複数の観測音高P[k]の単純平均や加重平均が平均音高Pave[n]として算定される。
第1区間U1は、解析音高Px[n]を上回る音高から解析音高Px[n]まで観測音高P[k]が徐々に低下する区間である。したがって、平均音高Pave[n]は解析音高Px[n]を上回る(Pave[n]>Px[n])。数式(11)の係数Λは正数である(詳細は後述)から、第1区間U1内の各解析時点について設定される補正値Cb[k]は負数である。すなわち、第1区間U1内の各解析時点については、観測音高P[k]を低下させる補正値Cb[k]が算定される。
他方、第2区間U2は、解析音高Px[n]を下回る音高まで観測音高P[k]が解析音高Px[n]から徐々に低下する区間である。したがって、平均音高Pave[n]は解析音高Px[n]を下回る(Pave[n]<Px[n])。したがって、第2区間U2内の各解析時点について設定される補正値Cb[k]は正数である。すなわち、第2区間U2内の各解析時点については、観測音高P[k]を上昇させる補正値Cb[k]が算定される。以上の説明から理解される通り、第1実施形態の補正値設定部70は、第1区間U1内の観測音高P[k]を第1方向(正方向)に補正し、第2区間U2内の観測音高P[k]を第1方向とは反対の第2方向(負方向)に補正するための補正値Cb[k]を設定する。
数式(11)の係数Λは、区間画定部72が解析期間Sの区画のために算定した尤度λを含む以下の数式(12)の演算により算定される。
数式(12)は、尤度λの変動範囲を0以上かつ1以下の範囲に圧縮する演算である。係数α6および係数α7は所定の正数に設定される。数式(12)から理解される通り、尤度λが大きい(すなわち漸次変動が顕著である)ほど係数Λは大きい数値となる。すなわち、解析期間S内で漸次変動が明瞭である(例えば第1区間U1および第2区間U2での観測音高P[k]の変動が大きい)ほど、補正値Cb[k]による観測音高P[k]の補正量は大きくなる。
図16は、補正値設定部70が補正値Cb[k]を設定する処理(以下「補正値設定処理」という)のフローチャートである。図7に例示した発音点特定処理の実行後に図16の補正値設定処理が実行される。なお、図13の音高特定処理と図16の補正値設定処理との先後は任意である。
補正値設定処理を開始すると、区間画定部72は、相異なる音符に対応するN個の解析期間Sの各々について先頭区間Usと第1区間U1と第2区間U2と末尾区間Ueとを画定する(Sd1)。区間選択部74は、N個の解析期間Sから選択解析期間Sを選択する(Sd2)。具体的には、時間長tS[n]が閾値τ2を上回るとともに尤度λが閾値λTHを上回る解析期間Sが選択解析期間Sとして選択される。設定処理部76は、区間選択部74が選択した選択解析期間S内の解析時点毎に補正値Cb[k]を設定する(Sd3)。具体的には、設定処理部76は、第1区間U1内の観測音高P[k]を第1方向に補正し、第2区間U2内の観測音高P[k]を第1方向とは反対の第2方向に補正するための補正値Cb[k]を設定する。
以上に説明した通り、第1実施形態では、対象楽曲の1個の音符に対応する解析期間S(すなわち理想的には観測音高P[k]が一定に維持されるべき区間)の第1区間U1と第2区間U2とで観測音高P[k]を逆方向に補正するための補正値Cb[k]が設定される。したがって、解析期間S内での観測音高P[k]の漸次変動を適切に補正可能な補正値Cb[k]を設定できるという利点がある。
第1実施形態では、状態遷移モデルμを使用して第1区間U1と第2区間U2とが画定されるから、状態遷移モデルμでモデル化された漸次変動のもとで第1区間U1と第2区間U2とを適切に画定できるという利点がある。また、第1実施形態では、先頭区間Usに対応する状態σ1と末尾区間Ueに対応する状態σ4とを含む状態遷移モデルμが第1区間U1および第2区間U2の画定に利用されるから、解析期間Sのうち例えば観測音高P[k]が不安定に変動する先頭区間Usまたは末尾区間Ueを除外して適切な第1区間U1および第2区間U2を画定できるという利点がある。
また、第1実施形態では、状態遷移モデルμに対する尤度λが閾値λTHを上回る解析期間Sについて補正値Cb[k]が設定される。したがって、状態遷移モデルμでモデル化された漸次変動が実際には観測されない解析期間Sについてまで補正値Cb[k]が設定される可能性を低減できるという利点がある。また、状態遷移モデルμを利用した解析期間Sの区分のために算定された尤度λが、選択解析期間Sの選別にも流用されるから、解析期間Sの区分とは無関係の方法で選択解析期間Sを選別する構成と比較して補正値設定部70の処理負荷が軽減されるという利点もある。
図3の後処理部80は、差分算定部60が算定した補正値Ca[k]と補正値設定部70が設定した補正値Cb[k]とから解析時点毎に補正値C[k]を設定する。図17は、後処理部80を例示する構成図である。図17に例示される通り、第1実施形態の後処理部80は、第1調整部82と第2調整部84と補正値合成部86とを具備する。
第1調整部82は、差分算定部60が順次に算定する補正値Ca[k]を調整する。具体的には、第1調整部82は、平滑部821と調整部822とを含んで構成される。平滑部821は、複数の補正値Ca[k]の時系列を時間軸上で平滑化する。平滑部821による平滑化の結果、補正値Ca[k]の急激な変動が緩和される。調整部822は、平滑化後の各補正値Ca[k]に所定の係数を乗算する。なお、平滑部821および調整部822の一方または双方を省略することも可能である。
第2調整部84は、補正値設定部70が順次に設定する補正値Cb[k]を調整する。具体的には、第2調整部84は、第1調整部82と同様に、平滑部841と調整部842とを含んで構成される。平滑部841は、複数の補正値Cb[k]の時系列を時間軸上で平滑化する。前述の通り、第1区間U1と第2区間U2とでは補正値Cb[k]の符号が反転するが、平滑部841による平滑化の結果、第1区間U1と第2区間U2との境界における補正値Cb[k]の急激な変動が緩和される。調整部842は、平滑化後の各補正値Cb[k]に所定の係数を乗算する。なお、平滑部841および調整部842の一方または双方を省略することも可能である。また、平滑部821と調整部822との順序、または平滑部841と調整部842との順序は逆転され得る。
図17の補正値合成部86は、第1調整部82による処理後の各補正値Ca[k]と第2調整部84による処理後の各補正値Cb[k]とから、音高補正部24が観測音高P[k]の補正に使用する補正値C[k]を解析時点毎に順次に生成する。例えば、補正値Ca[k]と補正値Cb[k]との加算で補正値C[k]を算定する加算器が補正値合成部86として好適に利用される。前述の通り、音高補正部24は、音響解析部22(補正値合成部86)が設定した補正値C[k]に応じて音信号Xの観測音高P[k]を補正することで音信号Yを生成する。
ところで、例えば解析時点毎の観測音高P[k]と基準音高Prefとの差分に応じて解析時点毎に個別に補正値C[k]を算定する構成(以下「対比例」という)では、各解析時点の観測音高P[k]が基準音高Prefに近付くように解析時点毎に補正される。したがって、対比例の構成では、例えば発声者に特有の観測音高P[k]の変動(すなわち歌唱の個性)、または、解析期間S内でのビブラートおよびしゃくり等の歌唱表現に由来する観測音高P[k]の微細な変動が低減ないし解消され、補正後の音が機械的で不自然な音と知覚される可能性がある。
対比例とは対照的に、第1実施形態では、基準音高Prefと解析期間S毎の解析音高Px[n]との差分が補正値Ca[k]として算定される。すなわち、任意の1個の解析期間S内では複数の解析時点にわたり補正値Ca[k]が共通する。したがって、解析期間S内での観測音高P[k]の微細な変動は、補正値Ca[k]に起因した補正では低減されない。同様に、補正値設定部70が設定する補正値Cb[k]は、第1区間U1および第2区間U2の各々において複数の解析時点にわたり共通の数値である。したがって、第1区間U1および第2区間U2の各々における観測音高P[k]の微細な変動は、補正値Cb[k]を利用した補正の前後で維持される。以上の説明から理解される通り、第1実施形態では、対比例と比較して、発声者の個性や歌唱表現に由来する観測音高P[k]の変動を維持した聴感的に自然な音を生成できるという利点がある。
<第2実施形態>
本発明の第2実施形態について説明する。なお、以下に例示する各態様において作用または機能が第1実施形態と同様である要素については、第1実施形態の説明で使用した符号を流用して各々の詳細な説明を適宜に省略する。
第1実施形態では、第1処理Sc1で算定された音高Pa[n]と第2処理Sc2で算定された音高Pb[n]とを、解析期間Sの時間長tS[n]に応じた加重値(ωa[n],ωb[n])により加重平均することで解析音高Px[n]を算定した。第2実施形態の音高特定部50は、解析期間Sの時間長tS[n]に応じて第1処理Sc1および第2処理Sc2の何れかを選択的に実行することで解析音高Px[n]を算定する。音高特定部50以外の構成および動作については第1実施形態と同様である。
図18は、第2実施形態における音高特定部50を例示する構成図である。図18に例示される通り、第2実施形態の音高特定部50は、指標算定部52と演算処理部59とを含んで構成される。指標算定部52は、第1実施形態と同様に、観測音高P[k]の安定指標Wp[k]を解析時点毎に算定する。演算処理部59は、第1処理Sc1および第2処理Sc2の何れかを選択的に実行することで解析音高Px[k]を算定する。
図19は、第2実施形態における音高特定処理のフローチャートである。図7に例示した発音点特定処理の実行後に図19の音高特定処理が実行される。音高特定処理を開始すると、指標算定部52は、安定指標Wp[k]を解析時点毎に算定する(Sc0)。
演算処理部59は、解析期間Sの時間長tS[n]が所定の閾値τ3を上回るか否かを判定する(Sc4)。時間長tS[n]が閾値τ3を上回る場合(Sc4:YES)、演算処理部59は、第1処理Sc1を実行することで音高Pa[n]を解析音高Px[n]として算定する。第1処理Sc1の内容は第1実施形態と同様である。すなわち、演算処理部59は、前掲の数式(8)の例示の通り、安定指標Wp[k]を加重値として複数の観測音高P[k]を加重平均することで解析期間Sの音高Pa[n]を算定する。他方、時間長tS[n]が閾値τ3を下回る場合(Sc4:NO)、演算処理部59は、第2処理Sc2を実行することで音高Pb[n]を解析音高Px[n]として算定する。第2処理Sc2の内容は第1実施形態(図9)と同様である。
第2実施形態においても第1実施形態と同様の効果が実現される。第2実施形態では、第1処理Sc1による音高Pa[n]の算定と第2処理Sc2による音高Pb[n]の算定とが解析期間Sの時間長tS[n]に応じて選択的に実行される。したがって、第1実施形態と同様に、
解析期間Sが長い場合と短い場合とで観測音高P[k]の時間的な変動の傾向が相違し得るという事情のもとで、解析期間Sの長短に関わらず高精度に解析音高Px[n]を特定できるという利点がある。また、第2実施形態では、第1処理Sc1と第2処理Sc2とが選択的に実行されるから、時間長tS[n]に関わらず第1処理Sc1および第2処理Sc2の双方が実行される第1実施形態と比較して、解析音高Px[n]の特定に必要な処理負荷が軽減されるという利点もある。
もっとも、第1実施形態において第1処理Sc1と第2処理Sc2との双方を実行することは必須ではない。例えば、図12に例示される通り、時間長tS[n]が所定の閾値τaを上回る場合には第2処理Sc2を省略し、時間長tS[n]が所定の閾値τb(τb<τa)を下回る場合には第1処理Sc1を省略することも可能である。時間長tS[n]が閾値τaと閾値τbとの間にある場合に、第1処理Sc1と第2処理Sc2との双方が実行され、前掲の数式(9)の例示の通り音高Pa[n]と音高Pb[n]との加重平均により解析音高Px[n]が算定される。
<変形例>
以上に例示した態様は多様に変形され得る。具体的な変形の態様を以下に例示する。以下の例示から任意に選択された2個以上の態様は、相互に矛盾しない範囲で適宜に併合され得る。
(1)前述の各形態では、発音点Qから終了点Teまでの期間を解析期間Sとして例示したが、解析期間Sの画定の方法は以上の例示に限定されない。例えば、発音点Qから終了点Teまでの期間を暫定期間として画定し、暫定期間のうち先頭側の一部(以下「除外期間」という)を除外した期間を解析期間Sとして使用することも可能である。除外期間としては、例えば暫定期間のうち先頭を含む所定の時間長または所定の比率の期間が例示され得る。また、観測音高P[K]が極端に低い解析期間S、または、時間長tS[n]が極端に短い解析期間Sを処理対象から除外することも可能である。
(2)前述の各形態では、時間長tS[n]が閾値τ2を上回り、かつ、尤度λが閾値λTHを上回る解析期間Sを選択解析期間Sとして補正値Cb[k]を特定したが、補正値Cb[k]の算定対象となる選択解析期間Sの条件は以上の例示に限定されない。例えば、解析期間S内の有声音の区間の時間長が閾値を上回ること、第1区間U1と第2区間U2との合計長が閾値を上回ること、第1区間U1および第2区間U2の各々の時間長が閾値を上回ること、第1区間U1および第2区間U2のうち長い方の時間長が短い方の時間長の所定倍以下であること等を条件として、選択解析期間Sを選択することも可能である。
(3)前述の各形態では、対象楽曲の各音符の開始点Tsの周囲に複数の候補点Qcを等間隔に配置したが、複数の候補点Qcの時間軸上の位置は以上の例示に限定されない。例えば、複数の候補点Qcの疎密が時間軸上で相違する構成も採用され得る。例えば、開始点Tsに近い位置では、開始点Tsから遠い位置と比較して狭い間隔で密に、候補点Qcを配置することが可能である。
(4)前述の各形態では、対象楽曲の歌唱音声を表す音信号Xを例示したが、音信号Xが表す音は歌唱音声に限定されない。例えば、楽器の演奏により発音される楽音(対象楽曲の演奏音)を表す音信号Xの解析にも、前述の各形態は採用され得る。以上の例示から理解される通り、好適な態様における音信号Xは、複数の音符の時系列に沿って発音された音(典型的には歌唱音声や楽音)を表す信号として包括的に表現される。
(5)移動体通信網またはインターネット等の通信網を介して端末装置(例えば携帯電話機またはスマートフォン)と通信するサーバ装置により音響解析装置100を実現することも可能である。例えば、音響解析装置100は、端末装置から通信網を介して受信した音信号Xに対する処理で音信号Yを生成して端末装置に送信する。
また、前述の各形態では、音響解析部22と音高補正部24とを具備する音響解析装置100を例示したが、音高補正部24は省略され得る。例えば、音高補正部24を端末装置が具備する構成では、音響解析装置100は、端末装置から通信網を介して受信した音信号Xから補正値C[k]を生成して端末装置に送信する。
端末装置が強度算定部34および音高算定部36を具備する構成では、音響解析装置100は、端末装置から通信網を介して受信した強度L[k]および観測音高P[k]から補正値C[k]を生成して端末装置に送信する。すなわち、強度算定部34および音高算定部36は音響解析装置100から省略され得る。端末装置が差分算定部60および後処理部80を具備する構成では、音響解析装置100は、音高特定部50が生成した解析音高Px[k]と補正値設定部70が生成した補正値Cb[k]とを端末装置に送信する。すなわち、差分算定部60および後処理部80は音響解析装置100から省略され得る。
(6)発音点特定部40と音高特定部50と補正値設定部70との各々を別個の音響解析装置100として独立に実現することも可能である。音高特定部50および補正値設定部70の各々にとって発音点特定部40は必須の要件ではない。例えば、楽曲情報Dで指定される音符期間を解析期間Sとして音高特定部50および補正値設定部70が処理を実行することも可能である。
(7)前述の各形態で例示した通り、音響解析装置100は、制御装置12とプログラムとの協働で実現される。本発明の好適な態様に係るプログラムは、複数の音符の時系列に沿って発音された音を表す音信号Xを解析するために、複数の音符の各々に設定された複数の候補点Qcの各々について、当該候補点Qcにおける音信号Xの強度L[k]の変動量δl[k]に応じた局所コストθ[n,i]を算定する第1演算部42、および、局所コストθ[n,i]を利用して、複数の候補点Qcの何れかを音符毎に発音点Qとして選択した最尤系列Zを特定する推定処理部46としてコンピュータを機能させる。以上に例示したプログラムは、例えば、コンピュータが読取可能な記録媒体に格納された形態で提供されてコンピュータにインストールされ得る。
記録媒体は、例えば非一過性(non-transitory)の記録媒体であり、CD-ROM等の光学式記録媒体が好例であるが、半導体記録媒体や磁気記録媒体等の公知の任意の形式の記録媒体を包含し得る。なお、「非一過性の記録媒体」とは、一過性の伝搬信号(transitory, propagating signal)を除く全てのコンピュータ読取可能な記録媒体を含み、揮発性の記録媒体を除外するものではない。また、通信網を介した配信の形態でプログラムをコンピュータに配信することも可能である。
(8)以上に例示した形態から、例えば以下の構成が把握される。
<態様1>
本発明の好適な態様(態様1)に係る音響解析方法は、複数の音符の時系列に沿って発音された音を表す音信号を解析する方法であって、コンピュータ(単体のコンピュータまたは複数のコンピュータで構成されるコンピュータシステム)が、前記複数の音符の各々に設定された複数の候補点の各々について、当該候補点における前記音信号の強度の変動量に応じた第1指標を算定し、前記第1指標を利用して、前記複数の候補点の何れかを音符毎に発音点として選択した最尤系列を特定する。以上の態様では、音符毎の複数の候補点の各々について当該候補点での強度の変動量に応じて算定された第1指標を利用して、複数の候補点の何れかが音符毎に発音点として選択される。したがって、単純に強度の変動量が大きい時点を発音点として特定する構成と比較して、複数の音符の時系列の全体的な傾向を反映した適切な発音点を特定することが可能である。
<態様2>
態様1の好適例(態様2)では、前記コンピュータが、前記複数の音符のうち相前後する第1音符および第2音符の組合せ毎に、前記第1音符および前記第2音符の時間差と、前記第1音符の前記複数の候補点の何れかおよび前記第2音符の前記複数の候補点の何れかの時間差との差異に応じた第2指標を算定し、前記最尤系列の特定においては、前記第1指標と前記第2指標とを利用して、前記最尤系列を特定する。以上の態様では、相前後する第1音符および第2音符の間の開始点の時間差と、第1音符および第2音符の間の候補点の時間差との差異に応じた第2指標が最尤系列の特定に利用される。したがって、相前後する2個の音符間の開始点の時間差と候補点の時間差との差異が抑制されるように音符毎の適切な発音点を特定することが可能である。
<態様3>
態様1または態様2の好適例(態様3)では、前記第1指標の算定において、前記候補点において前記音信号の強度が増加する場合と減少する場合とで前記強度の変化に対する前記第1指標の変化の度合が相違するように、前記第1指標を算定する。以上の態様では、候補点において音信号の強度が増加する場合と減少する場合とで、音信号の強度の変化に対する第1指標の変化の度合が相違するから、音信号の強度の変動量が同等でも、強度の増加時と減少時とでは、当該変化の時点が発音点に該当する可能性が相違するという傾向のもとで、発音点を高精度に特定可能な適切な第1指標を算定できるという利点がある。
<態様4>
態様1から態様3の何れかの好適例(態様4)においては、前記複数の音符の各々における開始点の周囲に前記複数の候補点が設定される。以上の態様では、複数の音符の各々における開始点の周囲に複数の候補点が設定されるから、各音符が所期の開始点の近傍で発音されるという傾向のもとで、各音符の発音点を効率的に特定することが可能である。
<態様5>
本発明の好適な態様(態様5)に係る音響解析装置は、複数の音符の時系列に沿って発音された音を表す音信号を解析する装置であって、前記複数の音符の各々に設定された複数の候補点の各々について、当該候補点における前記音信号の強度の変動量に応じた第1指標を算定する第1演算部と、前記第1指標を利用して、前記複数の候補点の何れかを音符毎に発音点として選択した最尤系列を特定する推定処理部とを具備する。