スポンサーリンク

WSL2 Ubuntu 22.04 LTS に VOICEVOX core をインストールする

winter_beach
記事内に広告が含まれています。
スポンサーリンク

はじめに

これまで、各種の生成 AI は WSL2 Ubuntu 23.10 の上で環境を構築し使用してきました。常々、「ちゃんと構築するなら 22.04 LTSだよなぁ」と考えていました。

まとまった時間が取れましたので、WSL2 Ubuntu 22.04 LTS の上で各種の生成 AI の環境を作り直す事にしました。ゼロから環境構築する際の参考になれば幸いです。

以下の記事で CUDA 11.7 のアンインストールと CUDA 11.8 & 12.1 のインストールの方法、NVIDIA cuDNN8 をインストールする方法について説明しました。

今回は、上記の環境をベースに、VOICEVOX core Ver.0.15.0-preview.16 を使用する環境の構築について説明します。

スポンサーリンク

前提となる環境

前提となる環境は、Windows11 WSL2 Ubuntu 22.04 LTS です。Python のバージョンは若干古く 3.10.12 になります。GPU は nVidia RTX3060 12GB で Driver は Ver.546.33 です。WSL2 の場合は、Windows 側にインストールした GPU ドライバーのバージョンとなり、WSL2 用のコマンド・ライブラリも同時にインストールされます。

これに CUDA 11-8 & 12.1 と cuDNN をインストールしています。cuDNN は CUDA 11-8 用です。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

$ python3 -V
Python 3.10.12

$ nvidia-smi
Sat Jan  6 20:35:57 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.29.01              Driver Version: 546.33       CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 3060        On  | 00000000:08:00.0  On |                  N/A |
| 30%   38C    P8              13W / 170W |    666MiB / 12288MiB |      3%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

$ /usr/local/cuda-11.8/bin/nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

$ /usr/local/cuda-12.1/bin/nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Mon_Apr__3_17:16:06_PDT_2023
Cuda compilation tools, release 12.1, V12.1.105
Build cuda_12.1.r12.1/compiler.32688072_0

$ dpkg -l | grep libcudnn8 | tr -s ' '
ii libcudnn8 8.9.7.29-1+cuda11.8 amd64 cuDNN runtime libraries
ii libcudnn8-dev 8.9.7.29-1+cuda11.8 amd64 cuDNN development libraries and headers

生成 AI は ~/GenerationAI 以下に directory を作成してインストールする事にします。

$ mkdir ~/GenerationAI && cd ~/GenerationAI

この環境をベースとして、各種の生成 AI をインストールします。

VOICEVOX で合成音声を生成する最も簡単な方法

始めに記載しておきますが、VOICEVOX で合成音声を生成する場合に最も簡単な方法は、下記リンク先の VOICEVOX のソフトウェアをインストールして使用する事です。Windows / Mac / Linux 用の GPU 対応版 / CPU 版 を選択してインストールすれば、合成音声が直ぐに生成できます。

これ以降の内容は、WSL2 上に VOICEVOX core の環境を構築したい方向けです。後々の自分の為にも、なるべく詳細に手順を記載します。

VOICEVOX core Ver.0.15.0-preview.16 のインストール

VOICEVOX core の 2024年1月時点での最新の Release バージョンは 1.14.5 ですが、工事中との事ですので、実際に合成音声を生成できた Ver.0.15.0-preview.16 をインストールします。

大まかな手順は以下の通りです。

  • 必要な package のインストール
  • 環境を構築する directory の作成
  • VOICEVOX core のリポジトリを git clone
  • インストール用ダウンローダ、合成音声モデル、Python パッケージの入手
  • ダウンローダによるライブラリのインストール
  • Python 仮想環境の構築
  • 合成音声モデルの展開と Python パッケージのインストール
  • 既存の環境にインストール済みのライブラリの退避

順を追って説明します。

必要な package のインストール

Ubuntu 22.04 LTS 側に必要な package は、git と python3、python3-venv、unzip です。

$ sudo apt install git python3 python3-venv unzip

環境を構築する directory の作成

合成音声生成のソフトウェアは、Voicevox directory 以下に環境を作ります。

$ cd ~/Generation_AI
$ mkdir Voicevox && cd Voicevox

VOICEVOX core のリポジトリを git clone

合成音声を生成する Python script はダウンローダでは読み込まれませんので、github リポジトリを clone しておきます。

$ git clone https://github.com/VOICEVOX/voicevox_core -b 0.15.0-preview.16

Ver.0.15.0-preview.16 を指定して clone します。

インストール用ダウンローダ、合成音声モデル、Python パッケージの入手

ライブラリ等をインストールするダウンローダ、合成音声モデル、Python パッケージをダウンロードします。ダウンローダには実行権限を付加しておきます。

$ wget https://github.com/VOICEVOX/voicevox_core/releases/download/0.14.5/download-linux-x64
$ chmod +x ./download-linux-x64

$ wget https://github.com/VOICEVOX/voicevox_core/releases/download/0.15.0-preview.16/model-0.15.0-preview.16.zip
$ wget https://github.com/VOICEVOX/voicevox_core/releases/download/0.15.0-preview.16/voicevox_core-0.15.0rc16+cuda-cp38-abi3-linux_x86_64.whl

ダウンローダによるライブラリのインストール

ダウンローダで必要なライブラリ一式をインストールします。version と cuda を指定します。

$ ./download-linux-x64 --version 0.15.0-preview.16 --device cuda
...(snip)...
voicevox_core-linux-x64-gpu-0.15.0-preview.16.zip         Done!
CUDA-linux-x64.zip                                        Done!
open_jtalk_dic_utf_8-1.11.tar.gz                          Done!
 INFO 全ての必要なファイルダウンロードが完了しました

voicevox_core の GPU 版、CUDA ライブラリ、open_jtalk_dic ライブラリが voicevox_core 以下にインストールされます。

Python 仮想環境の構築

voicevox_core 内に Python 仮想環境を構築します。

$ cd voicevox_core
$ python3 -m venv .venv
$ source .venv/bin/activate
(.venv) $ pip install --upgrade pip setuptools

合成音声モデルの展開と Python パッケージのインストール

予めダウンロードしておいた、合成音声モデルを展開し、Python パッケージをインストールします。

(.venv) $ unzip ../model-0.15.0-preview.16.zip

(.venv) $ ls model-0.15.0-preview.16
0.vvm  10.vvm  12.vvm  14.vvm  3.vvm  5.vvm  7.vvm  9.vvm      metas.json
1.vvm  11.vvm  13.vvm  2.vvm   4.vvm  6.vvm  8.vvm  README.md

(.venv) $ pip install ../voicevox_core-0.15.0rc16+cuda-cp38-abi3-linux_x86_64.whl
...(snip)...
Successfully installed annotated-types-0.6.0 pydantic-2.5.3 pydantic-core-2.14.6 typing-extensions-4.9.0 voicevox-core-0.15.0rc16+cuda
(.venv) $ pip list
Package           Version
----------------- ---------------
annotated-types   0.6.0
pip               23.3.2
pydantic          2.5.3
pydantic_core     2.14.6
setuptools        69.0.3
typing_extensions 4.9.0
voicevox_core     0.15.0rc16+cuda

既存の環境にインストール済みのライブラリの退避

Ubuntu 22.04 LTS には、CUDA 11.8 & 12.1、及び cuDNN 8 (11.8用) がインストールされています。これらのライブラリは、VOICEVOX core でインストールしたものではなく、既存の環境にインストールしたものを使用しますので、不要なライブラリを退避します。

(.venv) $ mkdir non_use_lib
(.venv) $ mv libcu* non_use_lib

(.venv) $ ls non_use_lib
libcublas.so.11    libcudnn.so.8            libcudnn_cnn_infer.so.8  libcufft.so.10
libcublasLt.so.11  libcudnn_adv_infer.so.8  libcudnn_ops_infer.so.8  libcurand.so.10

(.venv) $ ls lib*
libonnxruntime.so.1.14.0          libonnxruntime_providers_shared.so    libvoicevox_core.so
libonnxruntime_providers_cuda.so  libonnxruntime_providers_tensorrt.so

VOICEVOX core Ver.0.15.0-preview.16 では、onnxruntime は 1.14.0 がインストールされました。

退避したライブラリは Ubuntu 22.04 LTS にインストールしたものが使用されます。

(.venv) $ ldconfig -p | grep libcublas.so.11
        libcublas.so.11 (libc6,x86-64) => /usr/local/cuda-11/targets/x86_64-linux/lib/libcublas.so.11
(.venv) $ ldconfig -p | grep libcudnn.so.8
        libcudnn.so.8 (libc6,x86-64) => /lib/x86_64-linux-gnu/libcudnn.so.8

VOICEVOX core Ver.0.15.0-preview.16 で合成音声を生成

これで準備が整いましたので、VOICEVOX core で合成音声を生成してみます。生成用の Python script をコピーします。

(.venv) $ cp example/python/run.py .

直接実行できるように、run.py の先頭に以下を追記します。

#!/usr/bin/env python
...

実行権限を付加して run.py を実行します。

(.env) $ chmod +x ./run.py

(.env) $ ./run.py --help
$ ./run.py --help
usage: run.py [-h] [--mode MODE] [--dict-dir DICT_DIR] [--text TEXT] [--out OUT] [--style-id STYLE_ID] vvm

positional arguments:
  vvm                  vvmファイルへのパス

options:
  -h, --help           show this help message and exit
  --mode MODE          モード ("AUTO", "CPU", "GPU")
  --dict-dir DICT_DIR  Open JTalkの辞書ディレクトリ
  --text TEXT          読み上げさせたい文章
  --out OUT            出力wavファイルのパス
  --style-id STYLE_ID  話者IDを指定

'VOICEVOX:四国めたん' で合成音声を生成してみます。

(.venv) $ ./run.py --mode GPU --dict-dir ./open_jtalk_dic_utf_8-1.11 \
--text "初めて合成音声を生成しました。ちゃんと聞こえているかな?" \
--out ./out.wav --style-id 0 ./model-0.15.0-preview.16/0.vvm

ちゃんと生成できました。

VOICEVOX core コアライブラリのビルド

rust の環境を作り、軽く試した感じでは libvoicevox_core.so をビルドする事はできました。Python のライブラリを作るには Poetry が必要です。もう少し試してから、この項を書き直します。

過去の取り組み

VOICEVOX core について過去に取り組んだ内容です。

この時には Ubuntu 23.10 で、最初に VOICEVOX core Ver.0.14.5 で試し、その後で Ver.0.15.0-preview.16 で github 内の Python script を試しました。

まとめ

WSL2 Ubuntu 22.04 LTS に CUDA 11.8 & 12.1、cuDNN 8 for CUDA 11.8 をインストールした環境に、VOICEVOX core Ver.0.15.0-preview.16 をインストールする手順についてまとめました。

  • Ver.0.15.0-preview.16 を使用すれば、この記事の手順によって簡単に VOICEVOX core の環境を構築できます。
  • github の run.py を使用して合成音声を生成できました。
  • 話者 ID と vmm ファイルの対応を調べるには、vmm ファイルを less 等で見ると、始めの方に含まれている話者 ID が書かれています。これを参考に使用する vmm ファイルを特定できます。

予め CUDA 11.8 と cuDNN 8 for CUDA 11.8 をインストールしておけば、それほど難しくなく VOICEVOX core の環境を構築できます。

今回のアイキャッチ画像

冬の海辺を SDXL で生成しました。歩く人の雰囲気から寒さが伝わってきます。

私の NAS (Synology DS218plus) には、内蔵2基外付1基の計3基の HDD を接続しています。IronWolf 8TB です。使い始めて2年以上経過しました。偶に家族に「電源ブチッ」とされる事が数回ありましたが、今の所トラブルなく使えています。

2018年10月に購入して NAS で使用し、その後に取り外した IronWolf 4TB と WesternDigital Red 4TB も PC に接続して現役です。もう 5年以上経過しましたが、こちらもトラブルなく使えています。現在の WesternDigital Red は SMR、WesternDigital Red Plus が CMR ですので、記録方式を気にする方はご注意下さい。以下のリンクは CMR の WD Red Plus です。

コメント

タイトルとURLをコピーしました