3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VOICEVOXのRuby版を動かしてみた

Last updated at Posted at 2023-05-03

はじめに - VOICEVOXとは

日本語を喋らせることができるソフト。Rustで実装されている。内部ではONNXRuntimeとか走っているようだ。

Ruby版 - voicevox.rb

sevenc-nanashi さんが作っている。Ruby-FFIを使っている。

インストール

VOICEVOXのインストール方法はクセが有る。今後も方法が変わるかもしれないので、最新の情報を当たってほしい。まず、公式からダウンローダーを入手する。そして、ダウンローダを実行すると必要なファイルが入手される。

具体的には公式のREADMEを読んでほしい。

Windowsの場合

Invoke-WebRequest https://github.com/VOICEVOX/voicevox_core/releases/latest/download/download-windows-x64.exe -OutFile ./download.exe
./download.exe

Linux/macOSの場合

binary=download-linux-x64
curl -sSfL https://github.com/VOICEVOX/voicevox_core/releases/latest/download/${binary} -o download
chmod +x download
./download

実行すると、open_jtalk_dic_utf_8 voicevox_core-linux-x64-cpu がダウンロードされ、
voicevox_core ディレクトリが得られる。ひょっとすると他のプラットフォームでは異なるのかもしれないが、Linuxではこんな感じだ。

voicevox_core
├── libonnxruntime.so.1.13.1
├── libvoicevox_core.so
├── model
├── open_jtalk_dic_utf_8-1.11
├── README.txt
├── VERSION
└── voicevox_core.h

これのインストール方法であるが、libvoicevox_core.solibonnxruntime.so.1.13.1 に依存している。しかし、この2つの共有ライブラリだけコピーすると、modelがないと言われてしまう。何らかの環境変数による設定が可能なのかもしれないが、デフォルトでは modellibvoicevox_core.so と同じディレクトリに存在すると想定されているようだ。なので/usr/local/lib などにコピーでインストールするのはやめて、このディレクトリ適当な場所に配置した上で LD_LIBRARY_PATH に含めるのが良さそうでさる。

export LD_LIBRARY_PATH="/path/to/voicevox_core:$LD_LIBRARY_PATH"

実は今まであまり気がついていなかったのだが、Ruby-FFIはLD_LIBRARY_PATH で指定したディレクトリの中の共有ライブラリを見にいってくれるそうだ。知らなかった。筆者の自作のライブラリはもっぱらpkgconfigで .pc ファイルを見に行くことにより、共有ライブラリの位置を割り出すようにしていたので、LD_LIBRARY_PATH には対応できていないかもしれない。

個人的には、vendor ディレクトリの中に、共有ライブラリなどすべて必要なファイルを梱包して、GemにインストールできるようにするAnkaneさん方式のGemが好きなのだが、VOICEVOXは依存ファイルが多いため、その方式が難しいと思われる。またパッケージマネージャーを通した配布ではなく、downloadコマンドの実行という特殊な配布形式となっているため、現行の方法がまだ一番マシかもしれない。

それから openjtalk の場所も教えてあげる必要がある。この環境変数は正式なものがまだ決まっていないらしく、例えば次のようにする。

export OPENJTALK_DICT="/path/to/voicevox_core/open_jtalk_dic_utf_8-1.11"

これでexampleが動くようになる。

bundle install
bundle exec ruby examples/repl_wrapper.rb

この記事は以上です。良きRubyライフを!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?