
ラズパイ4(or 5)にインストールしてローカル・オフラインで稼働
前回のOpenJTalk版 の続編
64-bit環境でも動くAquesTalkを使ってみます。ライセンスに関しては個人で非商用利用する分には無料で使えます。
OSイメージはRaspberry Pi OS Desktop (64-bit)Bookworm
ラズパイ5からイヤホンジャックがなくなったのでUSBスピーカーやUSBto3.5mmコンバーターなどを使います。
ラズパイの場合はAquesTalk Piを使います。
新規にフォルダーを作ってそこにダウンロード・インストールします。
以下のようにテキストをaplayにパイプして使えます。
ファイルに記述した文章を読み上げてみます。
>sudo nano txt
使い方も簡単。ホストから文字列を、シリアルインターフェースを介して送るだけ。あとはAquesTalk がリアルタイムに読み上げます。数値も、適切な読みとアクセントで読み上げることができます。
raspberry pi 4 , 5 で実行してみましたが、本当にリアルタイムで音声合成して発話されます。
ただ、3やZeroでは、初回にサウンドの最初の部分が欠落してしまい、続けて再生すると全体が再生されました。再生されないわけではないので原因は….不明です。
中品質と自称していますが、結構高品質と評判のVoiceVox を使ってみます。いくつかバージョンがあり、商用・非商用問わず無料です。
まずWindows PCをサーバーにしてラズパイをクライアントとしてして使う「エンジン:engine)」。
IPアドレスを指定していてもLAN内でブロックされて使えないことがあります。この場合ngrok経由でトンネルして使います。
ngrokでは起動ごとにアクセスするアドレスが都度変わるので、ちと面倒です。
また、AquestTalkと同様にローカルにインストールしてオフラインで使える「コア:core」があります。
今回はこのコア版を使ってみます。
ラズパイは5でOSイメージはRaspberry Pi OS Desktop (64-bit)Bookworm
まずは仮想環境を作ってそこで作業します。
適当な作業領域を作りそこに移動します。
最新のCOREサイトからVOICEVOX コアライブラリをダウンロードします。
wget https://github.com/VOICEVOX/voicevox_core/releases/download/0.15.3/voicevox_core-linux-arm64-cpu-0.15.3.zip
ダウンロード後解凍して、voicevox_coreに改名しそこへ移動
辞書ファイルをダウンロードして解凍しておきます。
実行ファイルのサンプルがあります、ダウンロードしておきます。
ONNXのランタイムをダウンロード・解凍後、共有ファイルを移動させておきます。
voicevox_coreライブラリをインストールしておきます。
以下を実行してwavファイルが作成され、音声が再生されれば成功です。
>python3 run.py
>aplay ./output.wav
run.pyを少しいじって、ワンラインで実行できるようにします。
>sudo nano run.py
以下を追加
main()関数の最後部に以下を追加
実行してみます。
ラズパイ5なら少なくとも5秒程度のタイムラグがあります。また長文になるほど、時間はかかります。
リアルタイムというわけにはいきませんが、エンジン版をWindows PCにインストールして使う場合NVIDIA のRTX 4090位を積んだマシンにしたり、次期ラズパイ6あたりなら、リアルタイムが可能になると思います。
Appendix
音声認識は以下を参照
Leave a Reply