ニートがプログラミングするブログ(はてな出張所)

ニートがプログラミングするブログです。今は主にコンピュータビジョンに関することをやっています。

自分の声を初音ミクの声に変換するためのツールを作りました。

ツールの配布は終了しました。

 

このツールは録音した自分の声とひらがなで書いた台本から、初音ミクv3で読み込み可能なvsqxファイルを作るというものです。
ある意味で、自分の喋らせたいように初音ミクに喋らせることが出来ます。
実際は細かい調整は手作業でやらなければなりませんが、それでも一から作るよりは楽なはずです。
実際どんな感じになるかを先に示しておきます。
「無調整」はこのツールで作ったものをそのままwavに変換したものです。
「調整」は気になるところを数分かけて修正したものです。
「棒読み」はE3の音程のところに台本を流し込んだだけです。
無調整:
調整:
棒読み:
無調整のものですが、編集画面を張っておきます。
この配置を自力でやるのは、特に音痴の僕なんかは、結構大変そうです。


それでは、このツールの使い方を説明していきます。
まずは、githubのページからzipファイルをダウンロードして解凍します。
このページのDownloadをクリックすればダウンロードできます。

次に、声を録音してください。
このファイルを周波数を16000Hz、ビット数を16bit、チャンネル数をモノラル(1ch)のwavファイルに変換します。
僕は、えこでこツールを使いました。
えこでこツールを起動したら、左上の出力でwavを選択します。
そして音質を指定を選び、その横のボタンをクリックして上で書いた様な設定をします。
あとはドラッグ&ドロップでwavファイルが出力されます。

次は、ひらがなの台本を作ります。
先ほど作ったwavファイルと同じ名前にして拡張子だけを.wavから.txtに変えます。
基本的にはしゃべったような感じにひらがなで書いていけば良いです。
ただし、最初と最後以外で、間があるところは sp と書きます。
spの左右にスペースが一つずつあります。
例えば上にある音声の場合は、「わたしのなまえわはつねみくです sp よろしくねえ」となります。
あくまえでも喋ったように書くので、「なまえは」ではなく「なまえわ」と書きます。
また、すべてのひらがなのパターンが使えるわけではありません。
例えば「よろしくねぇ」のように「ねぇ」とは書けません。
使えるひらがなのパターンは「02make_vsqx」フォルダ内の「moji2miku.txt」の左側を見てください。
伸ばす音も二回以上続けて書けませんし、伸ばす音の後に「っ」も書けません。
そこらへんの書き方は、エラーが出たときに、あまり一般的ではなさそうな書き方をしてるところを疑ってください。
ちなみに、Kanji2naというソフトを使えば漢字が混じってる文章でもひらがなに直してくれます。

上で作ったwavファイルとtxtファイルをdataフォルダ内のwavフォルダに入れます。
そして「01segment_julius」フォルダ内の「segment_julius.exe」をダブルクリックして実行します。
うまくいけば、wavフォルダ内にlabファイルが出来ます。
その後「02make_vsqx」内の「make_vsqx.exe」をダブルクリックすれば、vsqxフォルダにvsqxファイルが出来ます。

これで使えるようになると思いますが、最後に歌を歌わせる場合を説明しておきます。
歌を歌わせる場合は、「02make_vsqx」内の「param.txt」を編集します。
ここで、moji_len_maxの175.0という値を4800.0に変更します。
次に、oct_numを1に設定します。
ちなみにこのプログラムでは、ファイルを上から順に偶数版目の行を読んでいって値を入れてるだけなので、順番を変えたりすると動かなくなります。
例として、君が代の最初の部分で説明します。
君が代をひらがなで書くと「きみがーよーはちよにーーやちよに」です。
しかし、台本を書くときには、歌ったように書かなければなりません。
そのため「きーみーがーあーよーおーわー sp ちーよーにーいーいやーちーよーにー」と書きます。
僕はかなり音痴なので歌モードがきちんと動作するか分かりませんが、ためしにちょっとやってみるか、くらいの気持ちで試してもらえれば良いです。
君が代
一応音程を合わせて配置したんだけど、なんとなく自然に聞こえません。(PITをオフにしてあります)
ここらへんは調整の技術が必要になるんでしょうね。

別の場所にvsqxファイルをコピーしてから編集してください。
間違ってプログラムを実行してしまうと、確認なしでvsqxファイルに上書きしてしまうからです。
また、編集の際は音の高さと音の長さに注意すればいいんじゃないかと思います。
音が高すぎたり、長すぎたりするとおかしな音に聞こえがちです。

おまけ
技術的にな部分を説明した動画を作りました。
一世代前のプログラムを使っていて、無調整なので外国人っぽい話方になっています。
今はもう少しましに喋ると思います。

 

 

それにしても、py2exeで作ったせいか、ファイルサイズがかなり大きくなってしまった。