NVIDIA Jetson AGX Orin Developer KitでVOICEVOXを使用してText-to-Speech(TTS)を動作させる方法
最終更新日:2023年11月17日
VOICEVOXは無料で使える中品質なテキスト読み上げソフトウェア。商用・非商用問わず無料で、誰でも簡単にお使いいただけます。と紹介されていたので、NVIDIA Jetson AGX Orin Developer Kit(以降Jetson Orin)で試してみました。かなり苦労したので記事に残します。
本記事では、Jetson Orinを使用し、Dockerコンテナ上にVOICEVOX COREのみを実装し、VOICEVOX COREを使用してテキストを読み上げた内容をWAVファイルに保存し、この保存したWAVファイルをコンテナ上のターミナルからgst-launch-1.0を使用してGStreamerのパイプラインを組んで、テレビのスピーカーから出力します。
本記事では、説明が複雑化するのを避けるため、WAVファイルの作成と再生は手作業で行います。本記事では作成と再生は手操作ですが、当然、すべてpythonコードで書くことができます。
本記事で身につくスキルは、以下です。
VOICEVOX COREの環境構築
VOICEVOX COREを使用してテキストを読み上げた内容をWAVファイルに保存
Dockerコンテナ上から、Jetson Orinと接続したテレビのスピーカーからのWAVファイル再生
音源利用規約
許諾内容
商用、非商用ともにご利用いただけます。
利用の際にはクレジット表記が必要になります。
例:VOICEVOX:ずんだもん、VOICEVOX:四国めたん
動画サイトの場合は説明画面や動画内のクレジットなど、ユーザーが気になって見にいった際にはわかる程度のところに記載をお願いします。 アプリなどでの利用の場合は、アプリの紹介画面などに記載をお願いします。(少し探せばわかる場所に)
詳細はこちら以下を参照してください。
環境
本記事を参考に、VOICEVOXを動作させるには以下のものが必要です。
NVIDIA Jetson AGX Orin Developer Kit (64GB)
JetPack5.1.1 (※ NVIDIA Jetson AGX Orin Developer KitはJetPack5.1.1以上を推奨)
15Gbyteの空きスペース (※ ターミナルでdf -hを入力してAvailが15G以上であることを確認してください)
スピーカー付きのディスプレイ(例えばテレビ等)
USBマウス(※)
USBキーボード(※)
インターネット接続
※ SSH等でJetson Orinへリモートログインする場合はUSBマウスやUSBキーボードは必須ではありません。
Jetson Orinはスピーカーが付属していないので、本記事ではHDMI入力があるテレビとJetson OrinをDisplayport(Jetson Orin側)↔HDMI(テレビ側)変換ケーブルで接続して試します。
環境構築手順
VOICEVOX COREの入手
まずは、デスクトップにVOICEVOXというフォルダを作成します。フォルダ作成後、VOICEVOXのフォルダの中に移動し、ソースコードを入手します。以下のコマンドを順に入力してください。
cd Desktop/VOICEVOX
git clone https://github.com/VOICEVOX/voicevox_core -b 0.14.4
cd voicevox_core
git checkout eb6768f
Downloaderの入手
続いて、今は、Desktop/VOICEVOX/voicevox_coreディレクトリにいるので、再度VOICEVOXフォルダに移動し、以下のコマンドを順に入力してください。
cd Desktop/VOICEVOX
binary=download-linux-arm64
curl -sSfL https://github.com/VOICEVOX/voicevox_core/releases/latest/download/${binary} -o download
chmod +x download
./download -v 0.14.4
JetPackのバージョン確認
Jetson OrinのJetPackのバージョンを確認します。NVIDIAではJetPackのバージョン毎にDockerイメージを提供しているためです。
ターミナルで以下のコマンドを入力することでJetPackバージョンを確認することできます。
$ cat /etc/nv_tegra_release
私の環境だと以下のように出力されます。
note@ubuntu:~/Desktop$ cat /etc/nv_tegra_release
# R35 (release), REVISION: 3.1, GCID: 32827747, BOARD: t186ref, EABI: aarch64, DATE: Sun Mar 19 15:19:21 UTC 2023
note@ubuntu:~/Desktop$
先頭のR35 (release), REVISION: 3.1に注目して、L4T R35.3.1と解釈します。
L4T-PyTorchの入手
VOICEVOXはPyTorchを使用しないのでDockerイメージはなんでも良いのですが、音声認識のWhipserや物体検知のYOLO8がPyTorchを使用するのでL4T-PyTorchを使用します。(WhipserやYOLOv8の記事も書いてるので見てください。)
まずは、以下のWebページでJetPack5.1.1に適合するL4T-PyTorchを探します。
l4t-pytorchをクリックします。
JetPack5.1.1はL4T R35.3.1なので、dustynv/l4t-pytorch:r35.3.1を使用することになります。
もし、JetPack5.1.2の場合は、dustynv/l4t-pytorch:r35.4.1として以降を進めてください。
以下のコマンドを入力してL4T-PyTorchのnvidia-dockerイメージをダウンロードします。
$ sudo docker pull dustynv/l4t-pytorch:r35.3.1
L4T-PyTorchのnvidia-dockerイメージの確認のため、以下のコマンドを入力します。
$ sudo docker images
私の環境では以下のようになりました。
note@ubuntu:~/Desktop$ sudo docker images
[sudo] password for note:
REPOSITORY TAG IMAGE ID CREATED SIZE
dustynv/l4t-pytorch r35.3.1 b7b86c6df311 2 days ago 11.4GB
note@ubuntu:~/Desktop$
このDockerイメージで使用しているPyTorchのバージョンは2.0.0、Pythonのバージョンは3.8.10です。
torch 2.0.0+nv23.5
torch2trt 0.4.0
torchaudio 2.0.1+3b40834
torchvision 0.15.1a0+42759b1
Python 3.8.10
Dockerコンテナ作成
コンテナでWAVファイルを再生するため、ホスト側のAdvanced Linux Sound Architecture (ALSA)関連のファイルにコンテナからアクセスできるようにする必要があります。
ここから先は
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?