💬

VOICEVOXのエンジンがwine経由じゃなくても動くようになっていた

2021/09/16に公開

おはこんばんにちわ

以前の記事でVOICEVOXのコアを試しました

https://zenn.dev/tantan_tanuki/articles/5621081816b633

記事内でwaveファイルじゃなくて標準出力に出せないかなとぼやいていたんですが

光栄なことに作者様よりこんな返信が!

https://twitter.com/hiho_karuta/status/1437688782505971720

エンジンなら標準出力に出せるとのありがたいご連絡

実は以前これに関しては試していました

https://zenn.dev/tantan_tanuki/articles/78428a29aab2d2

この記事の時点ではwine経由で動かすことになってしまい

う〜ん。。。

てなってたのですが既にwine不要な状態になっていました

対応が早い!追いつけない!!

まぁコアがwine不要で動いてた時点で察しろって話ですねw

有り難いことにDockerイメージも公開されていたので早速試して見ます

$ docker run --rm -it -p '127.0.0.1:50021:50021' hiroshiba/voicevox_engine:cpu-ubuntu20.04-latest
~略~
INFO:     Uvicorn running on http://0.0.0.0:50021 (Press CTRL+C to quit)

凄い!簡単!

以前の記事で作った簡易テスト用のコマンドがそのまま使える気がするので流用してみます

$ function vv {
  text=$(echo "$1" | nkf -WwMQ | sed 's/=$//g' | tr = % | tr -d '\n')
  body="$(curl -s -X 'POST' -d '' -H 'accept: application/json' "http://localhost:50021/audio_query?text=$text&speaker=${2:-0}")"
  play <(curl -s -X 'POST' "http://localhost:50021/synthesis?speaker=${2:-0}" -H 'accept: audio/wav' -H 'Content-Type: application/json' -d "$body")
}

そして実行

$ time vv 'あなただけ見つめてる,出会った日から,今でもずっと' 1
play WARN alsa: can't encode 0-bit Unknown or not applicable

/dev/fd/63:

 File Size: 0         Bit Rate: 0
  Encoding: Signed PCM    
  Channels: 1 @ 16-bit   
Samplerate: 24000Hz      
Replaygain: off         
  Duration: 00:00:05.24  

In:100%  00:00:05.24 [00:00:00.00] Out:126k  [      |      ]        Clip:0    
Done.

real    0m50.267s
user    0m0.011s
sys     0m0.058s

聞こえるー!
私の年代がわかる音声が聞こえるよー!
ちょっと時間がかかってハラハラしたけどdocker runするだけで動きました!

折角だし最新のフロントエンドも試してみよう

$ git clone https://github.com/Hiroshiba/voicevox
$ cd voicevox
$ cp .env.production .env
$ npm ci
$ npm run electron:serve

Imgur

まぁ別々に起動したからこれは仕方ないかな

フロントからの起動時に事前に起動確認API的なの叩いて動作してたらスルーするような挙動があると嬉しいですね

とりあえずOKをポチッとな

Imgur

動いた!

ダミー画像出てるけど権利関係かな?

ぱっと見た感じ前回試したときと比べて話速の設定が無くなって音量と無音時間が追加されてますね

プロジェクトが保存できるようになってるので継続した編集や編集内容の共有などがしやすくなってていいですね

ただ保存する時に拡張子わからなくてソース漁ってしまいました😅

$ find ./src -type f -exec grep 'VOICEVOX Project file' {} \;
        const projectFileErrorMsg = `VOICEVOX Project file "${filePath}" is a invalid file.`;
    filters: [{ name: "VOICEVOX Project file", extensions: ["vvproj"] }],
    filters: [{ name: "VOICEVOX Project file", extensions: ["vvproj"] }],

どうやらvvprojが拡張子のようですね

拡張子違うと読み込めないので辛かったのですが正式なWindows版だと拡張子気にしなくてもいいような動きなのかな?

エンジンのWindows依存が解消されてdockerとnodeがあれば簡単に動かせるようになったのでWindwos以外でもかなり捗りそうです

開発も活発なのでこれからどう進化していくか期待しています😍

それでは良い音声合成ライフを〜

しゃみしゃっきりー

P.S.

全然記事と関係ないんですが

こないだ楽天スーパーセールでポイント還元で実質1.3万くらいで買えてしまうというだけでこれを買ってしまった。。。

https://www.lenovo.com/jp/ja/notebooks/ideapad/slim-3-series/IdeaPad-3-CB-11IGL05/p/88IPSC31450

こいつがChromeOSか!
Androidアプリが動いた!!
LXCでLinux動いた!!!

ってひとしきり感動しました

。。。

さてこれから何に使おうかな🙄

Discussion