Kuma Ichigo (くま一号)
  • Author:Kuma Ichigo (くま一号)
  • Kuma Ichigo (くま一号)の Hobby site.
    YURI, NOVEL GAME, VOCALOID & VOICE SYNTH.
  • RSS
怪盗紅薔薇の隠れ家
【を】な別室、です。
Counter



最近の記事


最近のコメント


カテゴリー


ブログ内検索


RSS


mail form

名前:
メール:
件名:
本文:


月別アーカイブ


スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

VOCALOID2 CV03 サンプル音声だそうな
リンちゃん解析編など書いていたら。
ほお、クリプトンのブログにCV03のサンプル音声とな。

 ふーん。ベタうちでもかなりいけるのは、ACT2リンやがくぽからさらに進んでるようだけど。
ようやくって感じで大人の女性。 MEIKOよりはやわらかい声かなあ。
しかしー。なんでサンプルに英語の曲?
子音で終わる閉音節がきちんと発音できてるのはすごいけどさ、でも、日本語の発音じゃないとわかんないよー。

スポンサーサイト
リンちゃんちょっと見せて【パラメータ解析編 ポルタメント1】
 だんだん核心に入ります。
というか、ファイル解析とかは誰かがやってくれるのでおいといて、核心に行きます。

 Vocaloid2エディタではどうしてもいじれない部分、そのなかでも、リンの滑舌とアタックの核心、ポルタメントのパラメータ。これはいったいなんなのか。
msec単位のvのパラメータと、1/5 cent単位のpのパラメータ群があります。 pはphaseじゃないかってのは、前々回書きました。今回はv系。

 えーと、スペクトルアナライザとか持ち出したわけではなく、聴感だけでやってますし、憶測部分もありますけど、v のパラメータは多分こんな感じ。
ボカロエディタのピアノロールの一部と思ってください。薄緑色の■が音符。
ポルタメントのvパラメータ

 v1, v2, v4ってパラメータがあります。これで全部ではないのですが。
v1とv2がベンドの深さだということはわかってます。
この、アタックで山になって、なぜかそこから谷ができる、ぐわにょんって音程変化が、リンのとかちのかなりの部分を形成してます。  逆に言うと、ミクは傾向は同じでも変化が少なく、Act2のリンでも変化が小さくなってる気がします。 (重音テトの原音調整でも、こんなかんじみたいなのがおもしろいです。これを消すとキャラクターが消えちゃうらしいです。)

 v3がなくなってますが、位置としてvelに相当するんじゃないかと思います。リンではほとんど効きません。単位もmsecではなく、0~127、というよりパーセント表示なので、実際にどれだけ動いてるかはエンジンと音声データベース次第ということになります。

 v4は、実はボカロエディタから設定できません。せっかくの使えそうなパラメータなのに、なぜ殺してしまったかわかりません。前の音符が短かったりすると、いろいろ処理が大変そうなのはわかりますけど。 その分、PORで調整しろということでしょう。PORはv4(通常ゼロ)とv3の境目の位置を前後に動かすパラメータだろうと思います。

 その意味では、v1とv2も、ベンドの深さで調整すると同期して動いてしまって独立に調整できません。 v1を残してv2を最小に持って行くと、ポルタメントを深くかけてもAct1のとかちはかなり軽減するんですけどね。

 右端に赤丸をつけたのは、ビブラートなしで最後に落ち着く音程が、A=440Hzのチューニングよりかなり低い、という話。 これはボカロ使いなら必修項目なのでたぶんどこにでも書いてあるから説明は省きます。 チューニングができない音源って何なのよ、という話は別の機会に。

つづく

リンちゃん ちょっと見せて【ファイル解析編4 よってたかって】
 よってたかってというのは、いろんなひとが解析してるから、いろいろわかってくる。
VSQファイルの解析が一番進んでるのは、LipSyncの中の人(Boare@ウィキ)かな?
VSQのテキスト部分の解析はほとんど完了していて、謎だった歌手の設定パラメータの解析もされてる。
……VSQやその他のファイルがプレーンテキストなのに、このファイルだけ暗号化されてるってなんで?

 それで、ひとつ、私の解析結果とちがうことがあるんです。
前回のその3で書いた、音符の前ツッコミの時間。
音符の長さで変わります、というところ。

もう一回復習。
VOCALOID2エディタは1拍を480クロックで数えます。一分間は、テンポ×480クロック。

 音符の長さをClocksとすると、時間(msec)になおせば

 60,000 ÷ Tempo ÷ 480 ×clocks
えっと計算すると、LipSyncの中の人の画像をお借りして

Vocaloid Duration計算式1

になるはずですよね。
それが、実際は100msec前後短く、125msecでゼロになっちゃう。
そして、その差の割合が、音符の長さによって違う。

 ディレイ時間もなぜかプリセンドタイムより短い。
本来こうなるはずです。(またBoare@ウィキより借用)
Vocaloid PresendTime計算式1

 そこで、Vocaloid2の時間計算をグラフにしてみました。
 VSQファイルの中の、テキスト部分から計算できる時間と、NRPN部分に書かれた時間の差。
Vocacloid 謎のDurationグラフ

 なんじゃ、これ?
前回、子音の発音部分が前ツッコミしてるんだろうって書いたけど、それにしては時間がばらつくのが気になってた。
 これって、音声合成の時に、5秒、10秒、16秒でやりかたが違うってことかな?
ループの引き延ばし方がだんだん長くなってる?
いや、サンプラー音源のループみたいな単純なもんじゃないよね。

 16秒の音声合成をするのはたぶんものすごく大変。UTAUと同じような、合成した音声を時間方向に引っぱり伸ばすような変換をやっぱりやってるのかな。

リンちゃんちょっと見せて 【ファイル解析編3 16分音符は長さゼロ!!】
こんな解析をして意味があるのかって、あるらしいんですこれが。
とりあえずわかった、使いこなす方も科学の限界越えてること。
で、とりあえず、cosMo(暴走p)たんは凄い篇。

MIDI部分:VOCALOID2.VST 用

 目的はここ。

 マニュアルの最後に書いてある、NPRNのコマンドで書かれている。このため、NRPNの上位バイト、下位バイト(この言い方は正確じゃない)、データの上位バイト、下位バイトの4種類のコマンドしか出てこない。

 えー、上位バイト、下位バイトが正しくないというのは、7ビットコードで、ほんとは「上位7ビット、下位7ビット」だからです。VOCALOIDのパラメータが、やたら0~127のやつばっかりなのは、そういうところはMIDI的だからなのね。
  パラメータには、だから、7ビットのものと、14ビットのものがあります。DYNとかGENとかが7ビット。PITが14ビット。上位がMSB、下位が LSBと表記されます。VOCALOID2の、ファイルで入ってるPDFのマニュアル、最後の何ページかに書かれているvstに対するコマンドの羅列はそ ういう意味です。

 実際には、NRPNが二つ(VOCALOID2.VSTにはNRPN MSBだけのコマンドはない)、DATAが2個のセットになります。 NRPNが一つで3バイト。DATAが一つで3バイト。  VOCALOID2.VSTに対するコマンドは、6~12バイトの組って事になるんですが……それだけにはならない(笑)。

  NRPN=Non Registerd Parameter Numberってのは、直訳、登録されていないパラメータ番号。 MIDI規格に書かれていない、メーカーとか音源に固有に定義された命令です。なので、 たいてい音源の識別コマンドが含まれます。 MIDIの原則は、「理解できないコマンドは無視」なので、これでよかったの。

 で、これを書き出すと、

NRPN MSB xx
NRPN LSB xx
DATA MSB xx
DATA LSB xx

……という意味不明の羅列にしかならないんですよね。Dominoの定義ファイルならそれなりに表示できてるんですが、その状態でテキストにできないし。
 それだけじゃなく、いつもこの4つ組が来るわけじゃないの。NRPN一個の命令と、二個の命令があり、パラメータも7ビットと14ビットがあるでしょ。

  もっと面倒なのは、MIDIには「ランニングステータス」という概念がありまして、ってか、これ、通信の概念なんだけど、もともとMIDIって通信規格だ もん。 インターネット(という名前はないな、ゲートウエイとでも言ってたかな)がまだ300bps、じゃない、300baudだった時代の、 31,250bpsって超ハイテク技術だもん、通信量と処理量を一バイトでも削ろうという涙ぐましい努力があるの。送りっぱなしで、相手が受け取ったとい う信号が返らないMIDIだから、よく信号を受け取り損ねた。だから、途中でずれちゃっても最上位ビットをみればそこで頭出しができて立ち直る。音が鳴 りっぱなしになっちゃったときに、音を止めるとかリセットするとか、そういうコマンドが大量にあるし。……脱線した。

 えーと、送信を節 約するために、NRPN MSBを送って、ざっとデータを送った後、次も同じNRPN MSBだったら省略してNRPN LSBから始めればいいんです。次も同じNRPNLSBだったら、DATA MSBから送ればいいです。んで、次も同じDATA MSBだったら、DATA LSBだけ連続してがーーーっと送ればいいことになってるんです。
 DYNだったら、7ビット、0~127のパラメー タの連続でしょう? 一個送るためにいちいち12バイト送ってたら大変なことに……今は全然ならないけど、30年前だったら、まともに動かなかったのよ。 で、VOCALOID2.VST用のMIDI部分はランニングステータスが使ってあるの。 だから、DYNの「値だけ」ずら~~~っと並んで書いてあるわ け。 これ、見ただけでは何のことだか全然わかりません、はい。
 それをわかるようにするのに、やっぱり結局あああああああ、作りました。ただ、自分だけわかればいい書式なので、もうちょっとなんとかしようとしてますが、はい、これです。

 できてみた瞬間、あれ?????

 Delay 1905msecだあ? たしか、2秒のディレイがデフォルトで入ってたはずだぞ。2秒って言ったら2000msecだぞ。

 95msecの差と言ったら音楽ではずいぶん長い時間です。Tempo 120なら一拍が500msecですから、えっと16分音符が125msec、32分音符=62.5msecよりだいぶ長い。なんだそれ。
 そう思ってみると、音符の長さも短いんです。 Durationの値が、音符の長さよりもずいぶん短い。

  そこに、大きな鍵がありました。 そう、VOCALOIDの特許の一つ、「子音が終わったあとの、母音の頭を発音のタイミングとして捉えている」んです。  VOCALOID2エディタは、音符の通りのタイミングと長さを見ています。でも、エンジンにとっては、子音の分がコマンドのタイミングより前につっこ んでいるんです。
 
 そこでおもしろいこと。
テンポ120の16分音符=125msec以下だと、長さゼロです。 ええっ? っ て感じですが、ほとんど子音だけ発音して終わり。 これ以上音符を短くしても、発音自体は変わらなくて、発声のタイミングだけになっちゃう。うわあ。

 そういえば、初期の初音ミクにはテンポいくつかより早いと、音程が確かじゃなくなるとか書いて あったなあ。 「子音には音程感がない」というのが、しゃべりの音声合成との違い。

 ふむふむ、限界に挑戦した曲となるとやっぱりアレ、「初音ミクの消失」だけど、ショート版からフル版のDead-Endになったらわざわざテンポを下げたんだよね。
 Dead-Endがテンポ245。三連符の連打だから、えーと電卓、

 60秒 ÷ 245 ÷ 3 =  81.6 msec

 うわあああああああああ。 使いこなす方も科学の限界越えてるって。音符の長さゼロで、言葉を聞き取らせてるんだ、「消失」って。

 解析した意味が初めて出てきました。 やはり、VSQテキスト=VOCALOID2エディタと、vst用MIDIは全く同じものが二重にあるわけではなかったんです。

 ……MikuMikuVoiceのヘルプで樋口さんが解説してくれるまで気がつかなくて、悩んでたよorz
母音にも同じディレイが入ってるってことは、ほんとに「あいうえお」とそれ以外の発音タイミングが違うんだ。へえええええ。

 この解説は次に続く。 だってね、その前つっこみの、差も割合も一定じゃないんだよ、音符の長さによって。


 えーと、ちょっとだけ説明。
  "(" がついているのは、音符の中に含まれる命令で、C3とかD4とかの発音のグループの中に含まれるコマンドです。ひらがなの歌詞は、vstには理解できない (笑)ので送られていません。Version:Device= 0:0になってますが、VOCALOID第一世代のMEIKOやKAITOはどうなってるんだろう。

 そうそう、もう一つ大きな謎が残りました。 初期化してない!!
マニュアルには必ず入れるようにって書いてある、Begin of Vocaloid2 MIDI と End of Vocaloid2 MIDI がはいってないんです。 これ、一曲歌ったら、次の曲を歌うときに前の曲の設定が残るはずなのに……?

 ところが。
 あのね。リンちゃんをお迎えする前なんだけど、ハロpの恋のバカンス、一時VSQが公開されたでしょう。当時は読むことはできなかったけれどこれは取っておこうと思って(笑)、ダウンロードしてあった。それを見たら……全部のパラメータが一つずつ初期化されてる!!

 そう、前述の謎のパラメータだけでなく、最初は一通り入っていたパラメータの初期設定が、今年二月のうちのリンちゃん.vstからは消えちゃってるの。 Act.2は……あれれ?

 入手できるいろんなVSQファイルを見ていたら、昨年九月の初音ミク発売以来、初期化部分は二転三転しているようなんです。 あれ?

  結構、発売してからも手を入れてるのかな。 いや、この発売してからのユーザーのツッコミぶりを見たら、いろいろ変えたいところはあるんだろうな。
 初音ミクのバージョン番号で見ると、少なくとも二回のバージョンアップ、サポートに出ないマイナーバージョンはもう十何回? ふぅん、なるほど。 これは、クリプトンのサポートを注意してみていないとダメですね。

;*====================================*
;* VOCALOID2.VST MIDI BLOCK
;*====================================*
000000000: 1:1: 0 @CH 01 : .
000000000: 1:1: 0 @Version:Device 0:0
000000000: 1:1: 0 @Delay 0msec
000000000: 1:1: 0 BankSelect 0
000001649: 1:4:209 ProgramChange 2
000001649: 1:4:209 @Version:Device 0:0
000001649: 1:4:209 @Delay 1905msec
000001649: 1:4:209 BRE
000001814: 1:4:374 0
000001814: 1:4:374 CLE
000002384: 2:1:464 0
000002384: 2:1:464 @Version:Device 0:0
000002384: 2:1:464 @Delay 1905msec
000002384: 2:1:464 PIT 0 (0%)
000002880: 2:3: 0 @Version:Device 0:0
000002880: 2:3: 0 @Delay 1905msec
000002880: 2:3: 0 C3
000002880: 2:3: 0 (Vel= 71
000002880: 2:3: 0 (Duration 1397
000002880: 2:3: 0 (Location TOP&END
000002880: 2:3: 0 (PhoneticByte 1
000002880: 2:3: 0 [a]
000002880: 2:3: 0 (Phonetic Continue
000002880: 2:3: 0 (v1mean 0
000002880: 2:3: 0 (d1mean 22
000002880: 2:3: 0 (d1mean1stNote 20
000002880: 2:3: 0 (d2mean 69
000002880: 2:3: 0 (d4mean 24
000002880: 2:3: 0 (pMeanOnsetFirstNote 10
000002880: 2:3: 0 (vMeanNoteTransition 12
000002880: 2:3: 0 (pMeanEndingNote 12
000002880: 2:3: 0 (Portament off
000002880: 2:3: 0 (ChangrAfterPeak(Decay) 0
000002880: 2:3: 0 (Accent 0
000003840: 3:1: 0 (End 0
000003840: 3:1: 0 @Version:Device 0:0
000003840: 3:1: 0 @Delay 1905msec
000003840: 3:1: 0 C3
000003840: 3:1: 0 (Vel= 64
000003840: 3:1: 0 (Duration 2413
000003840: 3:1: 0 (Location TOP&END
000003840: 3:1: 0 (PhoneticByte 1
000003840: 3:1: 0 [a]
000003840: 3:1: 0 (Phonetic Continue
000003840: 3:1: 0 (v1mean 0
000003840: 3:1: 0 (d1mean 8
000003840: 3:1: 0 (d1mean1stNote 20
000003840: 3:1: 0 (d2mean 28
000003840: 3:1: 0 (d4mean 24
000003840: 3:1: 0 (pMeanOnsetFirstNote 10
000003840: 3:1: 0 (vMeanNoteTransition 12
000003840: 3:1: 0 (pMeanEndingNote 12
000003840: 3:1: 0 (Portament off
000003840: 3:1: 0 (ChangrAfterPeak(Decay) 0
000003840: 3:1: 0 (Accent 50
000005280: 3:4: 0 (End 50
000005280: 3:4: 0 @Version:Device 0:0
000005280: 3:4: 0 @Delay 1905msec
000005280: 3:4: 0 C3
000005280: 3:4: 0 (Vel= 64
000005280: 3:4: 0 (Duration 3429
000005280: 3:4: 0 (Location TOP&END
000005280: 3:4: 0 (PhoneticByte 1
000005280: 3:4: 0 [a]
000005280: 3:4: 0 (Phonetic Continue
000005280: 3:4: 0 (v1mean 0
000005280: 3:4: 0 (d1mean 8
000005280: 3:4: 0 (d1mean1stNote 20
000005280: 3:4: 0 (d2mean 28
000005280: 3:4: 0 (d4mean 24
000005280: 3:4: 0 (pMeanOnsetFirstNote 10
000005280: 3:4: 0 (vMeanNoteTransition 12
000005280: 3:4: 0 (pMeanEndingNote 12
000005280: 3:4: 0 (Portament off
000005280: 3:4: 0 (ChangrAfterPeak(Decay) 0
000005280: 3:4: 0 (Accent 50
000005464: 3:4:184 (End
000005464: 3:4:184 PIT -127 (-1%)
000007169: 4:3:449 @Version:Device 0:0
000007169: 4:3:449 @Delay 1905msec
000007169: 4:3:449 BRI
000007200: 4:4: 0 C3
000007200: 4:4: 0 (Vel= 64
000007200: 4:4: 0 (Duration 4445
000007200: 4:4: 0 (Location TOP&END
000007200: 4:4: 0 (PhoneticByte 1
000007200: 4:4: 0 [a]
000007200: 4:4: 0 (Phonetic Continue
000007200: 4:4: 0 (v1mean 0
000007200: 4:4: 0 (d1mean 8
000007200: 4:4: 0 (d1mean1stNote 20
000007200: 4:4: 0 (d2mean 28
000007200: 4:4: 0 (d4mean 24
000007200: 4:4: 0 (pMeanOnsetFirstNote 10
000007200: 4:4: 0 (vMeanNoteTransition 12
000007200: 4:4: 0 (pMeanEndingNote 12
000007200: 4:4: 0 (Portament off
000007200: 4:4: 0 (ChangrAfterPeak(Decay) 0
000007200: 4:4: 0 (Accent 50
000007214: 4:4: 14 (End
000007214: 4:4: 14 BRI
000009600: 6:1: 0 @Version:Device 0:0
000009600: 6:1: 0 @Delay 1905msec
000009600: 6:1: 0 C3
このへんでとりあえず打ち切ってつづく

リンちゃんちょっと見せて 【ファイル解析編2 大構造】
あー、寄り道しすぎ。本題です。

 VSQファイルは2つの部分からできている。というのは、よってたかって解析されている。んで、vst用に書き出したときの.midファイルと.vsqファイルが全く同じというのもわかってる。
 でも、両者が同じ筈はないので、たぶん二重に冗長部分が書かれてるというのもわかっている。
 参考にしたサイトとか動画はあまりにたくさんなので書けませんが、VSQテキスト部分はLipSyncのBoareさんvst部分は、DominoのVocaloid2用vstの定義ファイル(初心者になるための耳コピ講座)がかなり参考になりました。
 ……結局、中身を覗くperlスクリプト、自分で作った。そこらのDAWでもなんでも中身がのぞけるはずなのになんで作る羽目になったかって、MIDI規格すれすれのところが2カ所あって化けるもので……。


基本構造:SMFの形式

Standerd MIDI File
Track 0
  1.  Format = 1
  2.  TIMEBASE = 480 tick/beat
Track 1
 Tempo
 Beat
Track 2 ~
Vocaloid2 エディタのTrack 1~に相当
最初にトラックの名前

VSQテキスト
1:1:000からテキストメタイベント 127バイトずつのブロック
DM:0001 , DM:0002 ……というブロックヘッダ
VSQテキスト本体

VST MIDI
NRPNのかたまり



トラック0 ヘッダトラック
 トラック0は普通にMIDIファイルしている。

%MIDIFILE ARRANGE FORM
;*====================================*
; Header & General Info.
; All Tracks : 2 (Trk)
; Date-Time : 2008/08/02 17:23:46
;*====================================*
@MThd
@FORMAT 1
@TIMEBASE 480
@END

 遙か古代、MIDI創生期からの伝承を保持している方がもしみていたらわかると思いますが、sc.exeってmidとテキストのコンバータ、というより、コンパイラ、ディスコンパイラの吐き出すテキストと基本、同じにしました。 ';'はコメント。
@はヘッダとかのMIDIのコマンド以外の記述。
 MIDIファイルであることを示すヘッダがあって、MIDIファイルの形式がある。TIMEBASEというのは、4分音符をいくつのクロックで表わすかという数字。一拍を480tickで表わします、という意味です。
 この、TIMEBASEの情報は、VSQのテキスト部分に書かれていないようです。480固定だからでしょうか。

トラック1 コンダクタートラックとか、マスタートラックとか言われるところ。

;*====================================*
; <MTrk> Header Info.
; Track No. : 1
; Block Length : 35 (byte)
;*====================================*
@MTrk 1

000000000: 1:1: 0 @SEQ_NAME Master Track
000000000: 1:1: 0 @TEMPO 60
000000000: 1:1: 0 @BEAT 4/4
000000000: 1:1: 0 @END

 こんだけ。曲の途中でテンポが変わった場合はここに書き込まれます。拍子は、ボカロエディタの場合、曲の途中で変えられませんし、実質的に意味はありませんからここだけでしょう。

 そうそう、一番左の0000000000は、つけ加えました。 普通は、"1:1:0" 一小節目の、一拍目の、tickゼロの位置という書き方をするんですが、VSQテキストの方の表現が、0から始まるクロックをずーっと書いてあるだけなので、両方読めるように。


トラック2 以降

 ここからが本当の中身です。
ボーカロイドエディタでのトラック1から入っているところ。マスタートラックと合わせて、最大17あるわけですね。

;*====================================*
; <MTrk> Header Info.
; Track No. : 2
; Block Length : 6161 (byte)
;*====================================*
@MTrk 2

000000000: 1:1: 0 @SEQ_NAME Voice1

 ここまでがヘッダー。


 VSQ部分: これが本体。

 SMFのテキストとして書き込まれている。「メタテキスト」という書式で、音源やvstには送られない。MIDIシーケンサやDAW、プレイヤーのための情報としてテキストが書けるようになっているのだけれど、その書式の中に詰め込まれている。 これが、各トラックの1小節目の一拍目の最初、時間ゼロのところにどさーっと書かれている。

 127バイトごとのブロックに機械的に分割されていて、ブロックに "DM:0001" とか連番で番号が振られている。それを取り除いてつなげると、VSQの本体が取り出せる。iniファイルのような形式ででブロックごとに書き込まれたテキスト。歌詞のひらがなはshift-jisで書かれている。 2バイトの文字が機械的にブロックに分割されるために1バイトごとに分かれてしまうことがあり、普通のmidiファイルの解析では化ける。(これがちょっと困った。それでMIDI創生期から使ってるsc.exe(DOSプログラムだ(笑))が使えなかったの。自分でプログラム書くつもりなかったんだけどなあ)
 DAWや、MIDIプレイヤーで、今時こんなことで動作上のトラブル起こすようなものはないとは思うけど、Dominoでさえ表示はかっとぶ。これ、本当は危ない。MIDIってコマンドの1バイト目は最上位ビットが立ってて、2バイト目以降は立ってないってすっごく単純な構造をしているの。
 他にも、鏡音発売時くらいまでのボーカロイド2には、vstの初期化のところでもう一カ所危ないところがあったようだ。ボカロエディタにもvstのコマンドにも存在しない、4チャンネルのパラメトリックイコライザーのようなパラメータが、全部で12個あって、これが、多分無効という意味だろう、255(16進数のFF)で初期化されてた。こちらはほんとにMIDI規格違反で、12月末の鏡音発売時のデータには入っている。2月に届いたうちのリンちゃんには入っていない。後述。)

;*====================================*
;* VSQ TEXT BLOCK
;*Block header "DM:xxxx:" is removed.
;*====================================*
[Common]
Version=DSB301
Name=Voice1
Color=181,162,123
DynamicsMode=1
PlayMode=1
[Master]
PreMeasure=1
[Mixer]
MasterFeder=0
MasterPanpot=0
MasterMute=0
OutputMode=0
Tracks=1
Feder0=0
Panpot0=0

 途中省略

[EpRResidualBPList]
2610=0
12075=0
[EpRESlopeBPList]
8130=64
8175=62
12330=64
[EpRESlopeDepthBPList]
2775=0
12225=0
;*====================================*
;* VSQ TEXT BLOCK END
;*====================================*

 というわけで、そのまんま読めます。
で、こちらの方は、リップシンク系の人が早かったけど、解析がよってたかって行われているし、ボカロエディタの設定とだいたいそのまま対応がつくので、いろんなツールができてきた、というわけです。
 妙に暗号化したりしなかったのは、YAMAHAさんGJと思います。テキストで羅列しても、どうということのない容量だし。

つづく


リンちゃん、ちょっと見せて (その3)
なんで音量がこんな変動を起こすのか。なぜノイズが出るのか。んで、オフセットはどうして?

 これ、LalaVoiceの時もAudacityの波形を見ながら考えたことがあって、専門家でもなんでもないくまが直感で思ったことを書いてみる。

 前の記事のAudacityの波形で合成音声ってこんなふうになるの? と思うわけです。横軸のスケールが大きいので音量のカーブだけしかわからないけど、それが二重に見えるでしょう? で、真ん中の薄い青の部分は比較的DCオフセットがないけど、濃い青のところが飛び出ている。 オリジナルリンとACT. 2リンで、同じ音、同じ音節でも挙動が違う。どころか、同じリンでも上行と下行で違う。な~ぜ~?

 ちょっと拡大すると、位相が回転してるみたいなのが見えてくる。Vocaloidから入った人はこれが当たり前だと思うんだろうね。でも、自然音でこれだけプラスマイナスの振幅が違うとか、こんなことって、ないよね?
RIN 位相?
 もっと拡大すると、二つの波が徐々に位相をずらしながら重なってるのがわかる。
ふーん、音声合成ってこういうことをやってるのか、と。

 LalaVoiceって、歌うためのエンジンじゃないでしょう? しゃべると綺麗な声なのに、LalaSongで歌わせるととたんにノイズが入る。DCオフセットも音程で変わる。CREに相当するような、高域を強調するパラメータを上げると、とたんにノイズが入る。挙動はよく似てる。
  でも、LalaVoiceは多分、こんな風に位相のズレがだんだん動いていかずにある角度で固定してるんじゃないのかな、波形見てもわからなかった。二つの波の位相が微妙にずれるんだとすると、音程を変えたときに二つの波の周波数が微妙にずれる、とすればなんとなくわからなくはない。
 この「うねり」の周期って、横軸を表示しなかったけど、0.1秒くらいなの。
この図は音程がD3なんだけど、切りのいいところで、500Hzで1/10秒で一周期ずれるとするでしょ? そうすると500Hzと500.1Hzの差だよね。子音のところはずっと細かい。一桁下で、500.01かな。 音程としてはどっちも感じないでしょう。この位相のズレのズレ(笑)でなんか起きてるんじゃないのかなあ。
 ただ、付け焼き刃でネットで調べた話でなんなんですが、位相の回転って母音でも必要なの? よくわかんない。

 それで。
ボーカロイド2って、ポルタメントでもディレイでも、ビブラートのパラメータでも1msec単位で時間管理してるよね。なにかタイミングのずれるところがでてくるんじゃないのかな、音程の周波数で割りきれないところとか。
 まあ、ボーカロイドの特許とか論文とかも読んでないし(読む気もないし)ここまで。スペクトル分析? そういうのはやりたい人にお任せします。
 えーと、音程管理の方は、1/5centだよな、半音の1/500。 えーと、500×((2の12乗根)の500乗根)って、やーめたってばーーー。

 ただ、科学の限界を越えたところの端っこを見たような気がしたの。
合成音声の音程を変える、なおかつ声質を変えない、ということがいかに難しいかということの。
さて。パラメータのスタート地点を決めるのだけが目的だったんだから、これから本題のリンちゃんに歌ってもらう方にもどります。

りんちゃん、ちょっと見せて (その2)
つぎっ。
ビブラートのパラメータはどうでもいいのでとばす。
(つかわないやつ。PITとDYNでやります)

 下のコントロールパラメータをそれぞれこんな風に、上行下行それぞれで振ってみる。
音声は、最初がオリジナル、あとがAct. 2です。
上から順に設定値を決めて、その値で次のパラメータのテストをしてます。


● VEL
 オリジナルリンでは、聴感上ほとんど効かなかったの。ボーカロイドのVelocityはMIDIのVelocityと違い、音量に関係なく、子音の発音の早さって書いてある。早いほうが、ぐぉわにょんっ、って感じの鏡音エキセントリックガールアタック(ぅ にやられなくていい。

 音声サンプルは、アクセントを16%にしてから録ってるので、VELの効果はあんまりわかりません。

 このスクリーンショットではすでになってますが、20に設定。ここから下の音声はVEL=20固定です。

 ここで前言撤回。今度はオリジナルの音量が山形に変化してて、act.2の方がそろってる。
繰り返すけど、全く同じVSQだからね。 さっきの無調整と逆だから、ファイル取り違えたかと思って録りなおしたんだもん、間違いじゃないよ。

 ボーカロイド2のエンジンって言葉の発声に全力を集中していて、音量制御が「苦手」か「気にしてない」んじゃないのかしらん。これまでもいじってて聴感上思ったことはあるけど……。
 パラメータの設計がそもそも、音量はDYNだけで、MIDIでは音量をコントロールしてるVEL、VOLUME、マスターボリュームも、殺してあるでしょう? アクセントとディケイも、基本的にエンジンにお任せなので、おおざっぱに傾向を変えるだけだよねえ。 んで、ビブラートは音程だけのビブラートで音量は揺らしてない。
 音量のコントロールが「できない」んじゃないかなあ、疑惑。

 じゃどうすればいいかって、MIDIの5つくらいのパラメータに相当する音量をDYNだけで調整するしかないんだけど……。

 そういうわけで、DYN(amics は音量だからパスして、
● BRE
 ブレシネス。息。 これが、オリジナルリンちゃんではノイジーで全く使えなかった。
ACT.2 は……なるほど。ノイズを減らしたというだけあって、100くらいまでは使えそう。でも、ミクの吐息まではまだまだ及ばないかなあ。
 100を越えると、やっぱりただのノイズになる。いや、トーキングモジュレータをかけたロボット声になら使えるけど。ファイルサイズの関係でサンプリングレート64kなので、ノイズはあまり差がわからないかも。


● BRI、CLE ブライトネスとクリアネス
 全体に、滑舌をはっきりさせるためには、どうやってもくぐもった声になってしまう、という、学園長お姉さまの結果がそのまま出てるようなACT. 2なんだよねー。やっぱり、実家の開発者自身がやってもそうなるんだねえ、と、いうのがACT.2 リンちゃんのデフォだから、BRIとCLEはちょっと上げ目にしておきたい。
 BRIは初期値64に対して90に設定。

 CLEが問題で、これもオリジナルではノイジーであんまり上げられなかった。だいぶ減ったけど、110くらいでかなりノイズが乗ってくる。 初期値0を40くらいに上げるとオリジナルリンとだいたい似たような感じ。
 ただ、これって、エンジンの調整範囲をずらしただけって感じがするなあ。オリジナルリンが0~127まで調整していたのを、範囲をずらして、だいたい-40~87まで動かせるようにしたみたい……と言ったら、リンマスターにはわかるだろうか。 オリジナルとACT.2の声質での違いは、これが一番目立つ。

BRI (VEL=20)

 音量変化はますます謎。 BRIを上げるとだんだん大きくなる、のはいいんだけど、オリジナルリンは下行のミだけ小さい。 ACT. 2は上行のソの最後がぶわっと大きくなってる。くどいようだけど、同じVSQだからね。
 それはともかくとして、同じパラメーターであれば、だいたいほとんどおおざっぱにACT.2の音量が小さくなる傾向にあると思われる。
 (というような言い方をしたくもなるじゃないか)

CRE (VEL=20, BRI=90)

 とにかくノイズが減ったというのはわかる。んで、その分、デフォルトでは声がこもって音量を落としてあるので、CREの調整は必須かもしれない。 調整の範囲は広がった。

● OPE オープニング
 これは、同じようにかかるのを確かめただけ。
OPEを何に使うかって? おもしろいんだよ、ほんとに口を閉じた状態になるの。
 「ん」はひらがなの"ん"を入力しないで、"M"かなんかにしておいてOPEを一気に下げてDYNも落とした方がそれらしい、って物の本に書いてあったからやってみたら、けっこううまくいく。
 「お」とか「え」とかにかければ、"ö"とか"ë"とかちゃんと出るし。 じゃあvとかfとか出ないかなと思ったんだけど、子音にはかからない、と先達のみなさんの解析によればそういうことです。

 たしかに、母音のところだけしかかかってないように聞こえる。

● GEN ジェンダーファクター
 おもしろいことに……と思うのはくまだけ?……高域をカットしても、GENは変わらないんだねえ。
フォルマント(=GEN?)と声の高さは別だってのがよくわかる。 やっぱり、声は違っても声質は同じなの。
……言葉では意味不明なので、聴いてください。


 とりあえず。 リンちゃんACT. 2の調整スタート地点は、これで決めてしまう。
VEL=20
BRI=90
CLE=40
あとはそのまんま。

 つづく……かどうかはわかりません(笑)

 あとなにがあるのかって? リンちゃんの鏡音スーパーラジカルアタック (わ がほんとに怖ろしいのは、順番に、というか滑らかに音程が変わるところじゃなくて、音が飛ぶところだよ。前の音と後の音の音程差が大きいほどアタックの変化が大きいの。だから、しゃべらせると抑揚が大きいところほどかっ飛ぶんだよね。
 オリジナルリンでパラメータではどうにもなんなかった、滑舌と抑揚がどうなったか、は、しゃべらせてみればわかる(笑)。


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。