テキストファイルから初音ミクのVSQファイルを作る

テキストファイルから初音ミク(Vocaloid2エディタ)で使用されているVSQファイルを作成できるソフトウェアを作ってみたのでこのページで公開します。

このソフトウェアでテキストファイルからVSQファイルを作るプロセスを設けることにより、ぼくのようなスクリーンリーダーを使っている視覚障害者でも初音ミク(Vocaloid2エディタ)を使えるようになるわけです。

初音ミクと明記しましたが、鏡音リン&レンや巡音ルカなどVocaloid2システムを採用しているバーチャルシンガーシリーズであれば使えると思います(未確認ですが)。

それとVocaloid3エディタやUTAUなど、vsq形式のファイルを読み込むことのできるソフトウェアであれば、問題なく使えると思います。

このソフトウェアはPerl言語で書かれたCGIになっているので、このページ上で実行することができます。

なので、あなたのパソコンに新たにプログラムをインストールすることなくすぐに使用することができます。

それとはじめにことわっておきますが、このソフトウェアはぼくがインターネット上の情報をかき集めて勝手に作ったものです。

なので、このソフトウェアを使用するときは自己責任でお願いします。

  1. はじめに
  2. 発音文字一覧
  3. テンポの設定
  4. 音名とオクターブの設定
  5. 音符の設定
  6. 休符の設定
  7. 各種パラメータの設定
  8. 便利な機能
  9. おわりに

はじめに

まずは、一連の作業を把握するため、初音ミクに軽くおしゃべりしてもらいましょう。

VSQ作成CGIを使って簡単なVSQファイルを作成し、初音ミク(Vocaloid2エディタ)に読み込ませて、初音ミクがおしゃべりするWAVファイルを作成します。

まずは、メモ帳などのテキストエディタを開いてください。

そこに…

わたしのなまえわはつねみくだよ

と1行書いてテキストファイルとして保存してください。

このテキストファイルをVSQ作成CGIに読み込ませて、VSQファイルを作成します。

初音ミクは、単純にひらがなを発音しますから、「わたしは」ではなく「わたしわ」と書きます。

VSQ作成CGIには、以下の入力フォームを使ってアクセスします。

TEXT

参照...ボタンをクリックすると、ファイルの選択ダイアログボックスが表示されるので、先ほど作成しましたテキストファイルを選択しEnterキーを押して指定してください。

次に作成ボタンを押すと、ファイルのダウンロードが要求されるので、保存をクリックしてダウンロードしてください。

VSQファイルがダウンロードできていれば成功で、何らかのエラーが発生したときにはerror.txtという名前のテキストファイルになります。

そして無事にVSQファイルがダウンロードできたら、そのファイルを初音ミク(Vocaloid2エディタ)で開いてください。

VSQファイルをマウスでダブルクリックまたは、矢印キーで選択しEnterキーを押すと初音ミク(Vocaloid2エディタ)が立ち上がり、VSQファイルを読み込んだ状態になります。

初音ミク(Vocaloid2エディタ)を直接立ち上げた場合は、Altキーを押し「ファイル(F)」メニューの中の「開く」を選択するとファイルを開くダイアログボックスが表示されるので…

そこで先ほどダウンロードしたVSQファイルを選択すれば、同じように読み込ませることができます。

VSQファイルの読み込みに成功したら、早速初音ミクに歌わせてみましょう。

「ファイル(F)」メニューの中の「書き出し」の中の「WAV」を選択します。

WAVファイルの保存ダイアログボックスが表示されるので、書き出し先を確認しWAVファイル名を入力しEnterキーを押します。

すると、書き出すWAVファイルの周波数やチャンネルなどを指定する画面になるので何も変更しないでOKボタンを押します。

これで初音ミクのしゃべるWAVファイルが書き出されました。

ちなみにWAVファイルの書き出しには少し時間がかかりますので、全盲のスクリーンリーダーユーザーは無音状態になってもあせらないようにしましょう。

そうして書き出されたWAVファイルは、普通にメディアプレイヤーなどで再生できるので早速聴いてみてください。

少し無音が続いた後に棒読みで、「私の名前は初音ミクだよ」と聞こえればOKです。

最初の無音部分というのは、初音ミクなどのVocaloidシステムの仕様です。

長さはだいたい4小節分ぐらいあります。

短くすることもできますが、そうすると初音ミクの発音が一部おかしくなります。

棒読みになっているのは、音の長さ&高さ、アクセントなどが、全ての単語に対して全部同じ設定値(VSQ作成CGIの初期設定値)になっているからです。

後述の設定をいろいろ工夫して変更していけばましになっていきます。

以上がテキストファイルからVSQファイルを作成し、初音ミクに歌ってもらうまでの一連の流れです。

ここからはいろいろな設定を変更し、初音ミクの歌声に表現力を持たせる方法について説明していきます。

発音文字一覧

初音ミクではいろいろな文字を使用することができるようですが…

VSQ作成CGIでは仕様上というかぼくの都合により、以下のひらがなとそれをカタカナにした文字しか使えませんのでご注意ください。

きゃ きゅ きょ
しゃしぃしゅしぇしょ
ちゃちぃちゅちぇちょ
にゃにぃにゅにぇにょ
ひゃひぃひゅひぇひょ
みゃみぃみゅみぇみょ
りゃ りゅ りょ
ぎゃ ぎゅ ぎょ
じゃじぃじゅじぇじょ
びゃびぃびゅびぇびょ
ぴゃぴぃぴゅぴぇぴょ
ふぁふぃふぅふぇふぉ

このほかにも…

「てぃ、てぅ、でぃ、でぅ、すぃ、ずぃ、とぅ、どぅ、うぃ、うぇ、いぇ、ふゅ」

が使えます。

何もしゃべらせたくないときには「_」を使います。

アンダーバー(_)は全角でも半角でもOKです。

以上これらの文字に対して、ひとつひとつ音程などの設定ができます。

前述のように、ただ文字を羅列した場合(何も指定しなかった場合)は、VSQ作成CGIの初期設定値が採用されます。

基本的には以上なんですが、文字を入力する際、注意しなくてはいけないことを書いておきます。

前述の「わたしは」ではなく「わたしわ」とするのはOKですよね。

このほかに、初音ミクでは使えますが、VSQ作成CGIでは長音(ー)が使えません。

なので「ニューヨーク」と入力するときは、「にゅぅよぉく」などと入力します。

逆に、初音ミクでは使えませんが、VSQ作成CGIでは「っ」を無理やり使えるようにしてあります。

なので、「ちょっと」などは、「ちょ_と」などとしなくても普通に使えます。

このほかにも、いろいろと工夫して入力しなくてはいけないところがあるとは思いますが、臨機応変でがんばってください。

<戻る>

テンポの設定

VSQ作成CGIではテンポを指定して、初音ミクの発音スピードをコントロールすることができます。

テンポを指定するときは、テンポと書いてから値を指定します。

指定できる値の範囲は40から320までです。

何も指定がないときには初期設定値の120が採用されます。

だいたいですが、テンポ60で1分間に4分音符が60なるらしいです。

なので以下のように指定すると、前述のものより早くしゃべらせることができます。

テンポ180
わたしのなまえわはつねみくだよ

注意すべき点として、初音ミク(Vocaloid2エディタ)では、127など微妙な値を設定するとうまくVSQファイルを読み込めない場合があります。

<戻る>

音名とオクターブの設定

VSQ作成CGIで音名つまりドレミと、それに関連してオクターブの指定方法について説明します。

VSQ作成CGIでは、ドレミを英字で表現します。

ドはC、レはD、ミはE、ファはF、ソはG、ラはA、シはBとなります。

半音は#を付けて、a#やf#という感じで表現します。

英字であれば半角全角はもちろん、大文字小文字に関係なく入力できます。

#も全角半角どちらでもOKです。

オクターブの指定は、音名の前に↑↓プラス数字(1の場合は省略可能)で表現します。

例えば…

現在のオクターブ値より1つ上げる場合は、↑Cまたは↑1Cとなります。

逆にオクターブ値を2つ下げる場合は、↓2Eまたは↓↓Eと書きます。

これらの指定は、前述しました発音文字(省略不可)や後述します各種パラメータ(省略可能)の後に記述します。

例えばこんな感じになります。

ドCレDミEファFソGラAシBド↑C

このように↑や↓を使うと、その発音文字のみピンポイントで変更することができます。

でも、すべての発音文字に対してオクターブ値を変更したいときは不便ですよね。

なので次は、現在指定されているオクターブ値をまとめて変更する方法について説明します。

オクターブ値も後述します各種設定と同じで、何も指定がなければ初期設定値が採用されます。

オクターブの初期設定値は5で、0から9まで変更可能です。

変更するときは、オクターブ5などと書いて指定します。

例えば、以下のように書きます。

オクターブ4
ドCレDミEファFソGラAシBド↑C
オクターブ5
ドCレDミEファFソGラAシBド↑C
オクターブ6
ドCレDミEファFソGラAシBド↑C

今後いろいろな値を指定していきますが、このように…

設定名(今回の場合はオクターブという文字列ですが)を直接指定し値を変更する方法と…

目的の発音文字のみピンポイントで変更する(今回の場合は↑↓+数字ですが)を使用する方法とがあるので、覚えておくと入力を簡略化することができます。

音符の設定

VSQ作成CGIで音符(発音の長さ)を指定する方法について説明します。

これも何も指定がなければ初期設定値(4分音符)が採用されます。

変更するときはオクターブ値と同じように、初期設定値を変更する方法と、ひとつの発音文字のみピンポイントで変更する方法とがあります。

まずは初期設定値を変更する方法からみていきましょう。

「長さ」または「ながさ」と書いてから、音符値を指定します。

音符値は、1、2、4、8、16、32、64が指定できます。

1は全音符、2は2分音符、4は4分音符という感じです。

音符値の後に5と書けば付点を指定することができます。

なので、長さ15と書けば、付点全音符となり全音符+2分音符の長さが指定されたことになります。

さらに、音符値をつなげて長さを指定することもできます。

例えば、長さ1+4+4と書けば、長さ15と同じ扱いになります。

次は、ひとつの発音文字のみピンポイントで音符値を変更する方法についてです。

この場合の音符値は、前述の音名の直後や、半音上がってるときは#の後に記述します。

音符値の種類や使い方も、前述の初期設定値を変更するやり方と同じです。

あC4、かf#2+4などと書きます。

違うところは、3連符が使えるようになっているところです。

例えば、あC4を3つに割る場合は、あC83あC83あC83と書きます。

付点は5で、3連符は3ですのでわかりやすいと思います。

ちなみに、付点と3連符は同時に使えませんのでご注意ください。

ここまでのことをふまえた上でさらに、音符値を省略して入力していく方法について説明します。

どういうことかというと、すでに初期設定で決められている値は省略できるというルールがあります。

例えば、一番初めの「わたしのなまえわはつねみくだよ」というのは、全ての音符値の入力を省略した形です。

さらに、音符値を足し合わせるときも初期設定値は省略できます。

例えば長さ4で、あC++と書けば、あC4+4+4と同じ意味になります。

入力文字を少なくしたい場合はお試しください。

<戻る>

休符の設定

前述の音符の指定をふまえて、ここでは休符の指定方法について説明します。

休符を指定するときは、アンダーバー(_)を書いてから、その長さを前述の音符値で指定します。

なので、一番初めのように「_」だけを書いたときには、音符の初期設定値が採用されます。

もちろん省略も使えますから、長さ4で_+と書いたときは、_4+4と同じ意味になります。

以上ここまでのことを理解していれば、べた打ちではありますが、初音ミクで普通に歌わせることができます。

<戻る>

各種パラメータの設定

ここでは、VSQ作成CGIで使える各種パラメータを紹介します。

これらパラメータを変更することにより初音ミクを調教することができます。

パラメータも前述の各種設定と同じように、初期設定値をまとめて変更する方法と、ピンポイントで値を変更する方法という2つの方法があります。

初期設定値を変更するときは、変更したいパラメータ名の後に設定値を書きます。

ピンポイントで値を変更するときは、発音文字の後、音名またはオクターブ指定の前に書きます。

強さの設定

初期設定値は64で、変更するときは「強さ」または「つよさ」と書いてから値を指定します。

値の範囲は0から127までです。

ピンポイントで値を変更するときは、初期設定値を基準にして、そこからどれだけ値を加算または減算するかで値の変化を表現します。

プラスするときは>!の後に加算する値を指定し、マイナスするときには<!の後に減算する値を指定します。

ベンドの深さの設定

初期設定値は20で、変更するときは「ベンドの深さ」または「べんどのふかさ」と書いてから値を指定します。

値の範囲は0から100までです。

ピンポイントで値を変更するときは、初期設定値を基準にして、そこからどれだけ値を加算または減算するかで値の変化を表現します。

プラスするときは>|の後に加算する値を指定し、マイナスするときには<|の後に減算する値を指定します。

ベンドの長さの設定

初期設定値は0で、変更するときは「ベンドの長さ」または「べんどのながさ」と書いてから値を指定します。

値の範囲は0から100までです。

ピンポイントで値を変更するときは、初期設定値を基準にして、そこからどれだけ値を加算または減算するかで値の変化を表現します。

プラスするときは>‐の後に加算する値を指定し、マイナスするときには<‐の後に減算する値を指定します。

ディケイの設定

初期設定値は50で、変更するときは「ディケイ」と書いてから値を指定します。

値の範囲は0から100までです。

ピンポイントで値を変更するときは、初期設定値を基準にして、そこからどれだけ値を加算または減算するかで値の変化を表現します。

プラスするときは>.の後に加算する値を指定し、マイナスするときには<.の後に減算する値を指定します。

アクセントの設定

初期設定値は50で、変更するときは「アクセント」と書いてから値を指定します。

値の範囲は0から100までです。

ピンポイントで値を変更するときは、初期設定値を基準にして、そこからどれだけ値を加算または減算するかで値の変化を表現します。

プラスするときは>@の後に加算する値を指定し、マイナスするときには<@の後に減算する値を指定します。

パラメータの順序

ピンポイントで指定する際、各パラメータには指定順はありません。

なので、例えば…

あ>@50>.50>!60C+

などと指定します。

便利な機能

VSQ作成CGIには入力を支援する機能がいくつか備わっています。

前述しましたように、何も指定がなければ初期設定値を自動的に割り当てるという省略機能もその1つです。

ですがVSQ作成CGIには、そのほかにも便利な機能があるのでここで紹介しておきます。

コメント機能

コメント機能とは、テキストファイル内に覚書ができる機能のことです。

使い方も簡単で、//と書けばその後の文字はコメント扱いとなり改行するまで無視されます。

例えば…

長さ45 // 付点4分音符を指定

などという感じで使います。

もちろん行頭に//と書けば、その1行がコメント行扱いとなります。

メモ機能

メモ機能とは、テンプレートのことです。

もし全く同じ部分があった場合、テキストファイルですからコピーペーストすればいいように思いますが…

もし、それを修正しなくてはいけなくなった場合、ペーストしたぶん同じ作業を繰り返さなくてはいけないので面倒ですよね。

そんなときにメモ機能を使います。

使い方として例えば…

ドCレDミEファFソGラAシBド↑C

という文字列が3回登場する場合、以下のようにしてメモ機能を使います。

まず、初めてこの文字列が登場する(1回目)前後を、メモ1「と」という文字列ではさみます。

メモ1「
ドCレDミEファFソGラAシBド↑C

という感じです。

そして2回目と3回目は以下のように書きます。

メモ1
メモ1

こうすると、2回目と3回目のメモ1部分が、1回目に指定しました…

ドCレDミEファFソGラAシBド↑C

という扱いになります。

もちろん修正するときは、1回目の文字列を修正するだけですので簡単です。

さらに、このメモ機能は複数の文字列に対して使用可能です。

前述の例ではわかりやすくメモ1としましたが…

別の文字列をメモする場合は、メモ2「~」や、メモ3「~」とすればOKです。

<戻る>

おわりに

このページはもちろん、VSQ作成CGIも急いで作ったものなので、いろいろとトラブルがあるかと思います。

ぶっちゃけしっかりデバックできていません。

なので、何らかのトラブルが発生しましたらぜひご連絡ください。

その際、できるだけ詳しく現象を書いていただけると助かります。

解決することはお約束できませんが、今後の参考にさせていただきます。

そのほか意見や感想なども大歓迎です!

ここまで読んでいただき本当にありがとうございました。

<戻る>