Raspberry Pi で VOICEVOX を使う方法について書いた。
Raspberry Pi で VOICEVOX を使う|荒川仁志
https://note.com/hitoshiarakawa/n/n32b887f5a2b1
Raspberry Pi で VOICEVOX を使う2|荒川仁志
https://note.com/hitoshiarakawa/n/nfcffd175c952
しかしこれは Raspberry Pi のスピーカーを使うだけで、VOICEVOX は Ubuntu で動かしていた。Raspberry Pi のスペックでは VOICEVOX を動かすのが難しいようだからだ。
その後は Ubuntu ではなく Mac mini に VOICEVOX をインストールして、発声も Mac mini を使っていた。サーバーとクライアントを分けるより1デバイスで完結させたかったので。
*
ちょうど Mac mini が壊れたので、Raspberry Pi に VOICEVOX のインストールおよび発声をさせることにした。8GB RAM の Raspberry Pi 4 があるので、これなら VOICEVOX が動かせそうだ。
環境:Raspberry Pi 4 Model B 8GB(Bookworm Desktop 64-bit)
以下のサイトに従うことでうまくいった。
VOICEVOX COREをRaspberryPiにインストールしてCLIで便利に音声合成を行おう #RaspberryPi - Qiita
https://qiita.com/ueponx/items/186a7c859b49d996785f
VOICEOX CORE は 0.15.4 のバージョンを使った。
ONNX Runtime については、最新バージョンを使うと音声合成コマンドを実行時に以下のようなエラーが出る。バージョン 1.13.1 を使うとエラーが出なかった。
ImportError: libonnxruntime.so.1.13.1: cannot open shared object file: No such file or directory
Open Jtalk についてはもともとバージョン 8-1.11 しか公開されていないので、それを使った。
*
cron に登録するにはワンライナーで実行したい。Python の仮想環境に入る必要があるので厄介だが、以下のようにすればいい。
$ cd voicevox && source voicevox/bin/activate && python ./voicevox.py テストです。 && aplay voicevox.wav && deactivate && cd
voicevox.py は上記サイトのものを以下のように変更してシンプルにしている。
変更前:
with open("./" + text + ".wav", "wb") as f:
変更後:
with open("./voicevox.wav", "wb") as f:
*
でも cron に登録するならもっとシンプルなコマンドにしたいので、シェルスクリプトを書いた。
(1)voicevox.sh というファイルを作成し、以下を記述する。
#!/bin/bash
text=$1
cd voicevox
source voicevox/bin/activate
python ./voicevox.py $text
aplay voicevox.wav
deactivate
(2)1に実行権限を与える。
$ sudo chmod 735 voicevox.sh
(3)実行する。
$ ./voicevox.sh テストです。
だいたい 12 秒ぐらいのタイムラグで発声するので十分なレスポンスだ。
(4)cron に登録するには以下のようにジョブを指定する。
0 15 * * * echo "cronに登録したよ。" | XDG_RUNTIME_DIR=/run/user/$(id -u) xargs /home/{ユーザー名}/voicevox.sh
XDG_RUNTIME_DIR=/run/user/$(id -u)
を記述しなければ音声が再生されない。このことにたどり着くのに時間がかかった。
参考:
VOICEVOX COREをRaspberryPiにインストールしてCLIで便利に音声合成を行おう #RaspberryPi - Qiita
https://qiita.com/ueponx/items/186a7c859b49d996785f
Releases · VOICEVOX/voicevox_core · GitHub
https://github.com/VOICEVOX/voicevox_core/releases
Releases · microsoft/onnxruntime
https://github.com/microsoft/onnxruntime/releases
Index of /project/open-jtalk/Dictionary
https://jaist.dl.sourceforge.net/project/open-jtalk/Dictionary/
RaspberryPiでVOICEVOXうごかせたぞ~!|koppesan
https://note.com/koppesan/n/n266fa5d61bdb
bash - Audio doesn’t play with crontab on Raspberry Pi - Stack Overflow
https://stackoverflow.com/questions/42497130/audio-doesnt-play-with-crontab-on-raspberry-pi
Amazon.co.jp: ラズベリーパイ 4 コンピューターモデルB 8GB Raspberry Pi 4 ラズパイ 4 TELEC認定取得済み (Raspberry Pi 4 8GB) : パソコン・周辺機器
https://amzn.to/4bw9fQi