ラズパイで音声合成(2)AquestTalk・VoiceVox


ラズパイ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

音声認識は以下を参照

ラズパイで音声認識(2)Vosk

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*