【改訂版】Raspberry Pi2でミクさんに喋らせてみた(OpenJTalk)

Facebook にシェア
Pocket
LINEで送る
このエントリーを Google ブックマーク に追加

Raspberry Pi2でミクさんに喋らせてみた(OpenJTalk) の改訂版。

「open_jtalkのオプションが多く、スマートじゃないな」と思って調べたところ、

こちら

にhtsvoiceに変換してできるとのことだったため、やってみた。

注意

Raspberry Pi上でやるのは非推奨。monoが容量が大きいため。

mono をインストール

Mac の場合

brew install mono

Ubuntuの場合

sudo apt-get update
sudo apt-get install mono-devel

変換プログラムをダウンロード

こちら

より変換プログラムを拝借するし、ホームディレクトリに設置する。(wget不可。)

# htsvconv の中に展開
cd
ls htsvconv002.zip
  
     htsvconv002.zip

mkdir ./htsvconv
unzip ./htsvconv002.zip -d ./htsvconv
cd ./htsvconv

# コンパイル
mcs htsvconv.cs

# htsvconv.exe が作成されているかを確認
ls ./
    config.txt  htsvconv.cs  htsvconv.exe  test.bat

Voice.htsvoices に変換

Raspberry Pi2でミクさんに喋らせてみた(OpenJTalk) の Voice_TYPE_betaディレクトリ配下に、 上で作った htsvconv.exe を設置する。
以下のようになるようにする。

pwd
    /home/ubuntu/Voice_TYPE_beta
ls
    htsvconv.exe  readme.txt  Voice  Voice.htsvoice

上記のようにできたら、htsvconv.exeを使って変換する。

 mono htsvconv.exe Voice
    Voice.htsvoice

    dur.pdf:
    num_windows  = 1
    ntree        = 1
    is_msd       = 0
    stream_size  = 5
    vector_length= 5
    npdf         = { 639 }

    mgc.pdf:
    num_windows  = 3
    ntree        = 5
    is_msd       = 0
    stream_size  = 1
    vector_length= 105
    npdf         = { 621,651,716,735,614 }

    lf0.pdf:
    num_windows  = 3
    ntree        = 5
    is_msd       = 1
    stream_size  = 3
    vector_length= 3
    npdf         = { 471,385,347,460,505 }

    lpf.pdf:
    num_windows  = 1
    ntree        = 5
    is_msd       = 0
    stream_size  = 1
    vector_length= 31
    npdf         = { 1,1,1,1,1 }

    gv-mgc.pdf:
    num_windows  = 1
    ntree        = 1
    is_msd       = 0
    stream_size  = 1
    vector_length= 35
    npdf         = { 3 }

    gv-lf0.pdf:
    num_windows  = 1
    ntree        = 1
    is_msd       = 0
    stream_size  = 1
    vector_length= 1
    npdf         = { 10 }

    Voice.htsvoice

Voice.htvoice ができたら、/usr/share/hts-voice/miku に設置する。


sudo cp Voice.htsvoice /usr/share/hts-voice/miku

talk.sh を編集

#!/bin/sh
TMP=/tmp/talk.wav

cd /usr/share/hts-voice/miku
echo "$1" | open_jtalk \
-m /usr/share/hts-voice/miku/Voice.htsvoice \
-r 1.0 \
-x /var/lib/mecab/dic/open-jtalk/naist-jdic \
-ow $TMP && \
aplay --quiet $TMP
rm -f $TMP

Pythonのコードの対応

Raspberry Pi2でミクさんに喋らせてみた(Python + OpenJTalk)

Raspberry Piにミクさんボイスでタイムラインをしゃべらせた(OpenJTalk)
のPythonのオプションも上のように変更すればいい。省略。