アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【UbuntuPythonHardware
Dell Pro Max with GB10でCOEIROINK Engineを実行する
POSTED BY
2026-07-20

Dell Pro Max with GB10 2台をつなげて運用する
TSUKUMOのマルチGPUパソコンWA9J-X211/XTにUbuntu Server 22.04とCOEIROINK Engineを導入する

さて、この怪物マシンのGPUを早速音声合成に使おうとCOEIROINK Engineの導入を試みるも、CPUがARM64であるためそのままでは全く動かない

COEIROINKはVOICEVOXの派生ブランチであって、つくよみちゃんという音声モデルを使用できる唯一のエンジンである。しかし数年前で開発は止まってしまっている。VOICEVOX本体は今でもメンテされておりARM64にもDockerで簡単に導入できるが、COEIROINKで作られたモデルを再生することはできない。COEIROINKを再生できるのはこの数年前で止まっているブランチしかないので、エラーをつぶしながら無理矢理GB10で実行できた貴重なメモ!

1、リポジトリのクローンとGPU版ブランチのセット

git clone https://github.com/shirowanisan/voicevox_engine.git
cd voicevox_engine/
git switch -c coeiroink-1.6.0-gpu --track origin/c-1.6.0+v-0.12.3+gpu

このブランチじゃないと動かない。

2、音声モデルつくよみちゃんの取得と設置

リポジトリに音声モデルは含まれていないので、つくよみちゃん(れいせい)を取得する。つくよみちゃんは2026年7月現在でも全音声モデルの中で最もクオリティが高い完成されたモデルだと当方は思っている。

https://coeiroink.com/download

から、COEIROINKソフト本体をダウンロードする。Macの場合、アプリケーションフォルダにコピーしたあと、

/Applications/COEIROINKv2.app/Contents/MacOS/speaker_info/tsukuyomichan-2.0.0

があるので、speaker_infoフォルダごと取得し、さきのvoicevox_engineリポジトリフォルダに放り込んでおく。

3、Dockerを導入する

下準備

sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
cat /etc/apt/sources.list.d/docker.list

本体インストール

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

確認と自動起動、Hello World dockerの確認

sudo systemctl status docker --no-pager
sudo systemctl enable --now docker
sudo docker version
sudo docker compose version
sudo docker run --rm hello-world
sudo usermod -aG docker "$USER" #sudoなしでdockerできるようにする

4、DockerでGB10のGPUを使えるようにする

NVIDIA Cotainer Toolkitが必要。

dpkg -l | grep nvidia-container

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
  | sudo gpg --dearmor \
  -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

curl -s -L \
  https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
  | sed \
    's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#' \
  | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt update
sudo apt install -y nvidia-container-toolkit

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

sudo cat /etc/docker/daemon.json
{
    "runtimes": {
        "nvidia": {
            "args": [],
            "path": "nvidia-container-runtime"
        }
    }
}s

コンテナからGB10が見えるか確認

docker run --rm --gpus all \\
  ubuntu:24.04 \
  nvidia-smi
Unable to find image 'ubuntu:24.04' locally
24.04: Pulling from library/ubuntu
4b987da45db4: Pull complete 
Digest: sha256:4fbb8e6a8395de5a7550b33509421a2bafbc0aab6c06ba2cef9ebffbc7092d90
Status: Downloaded newer image for ubuntu:24.04
Sat Jul 18 08:21:42 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.159.03             Driver Version: 580.159.03     CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| 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 GB10                    On  |   0000000F:01:00.0 Off |                  N/A |
| N/A   44C    P8              4W /  N/A  | Not Supported          |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
/usr/share/keyrings$ docker run --rm --gpus all \
  nvcr.io/nvidia/cuda:13.0.0-base-ubuntu24.04 \
  nvidia-smi
Unable to find image 'nvcr.io/nvidia/cuda:13.0.0-base-ubuntu24.04' locally
13.0.0-base-ubuntu24.04: Pulling from nvidia/cuda
e3bd89a9dac5: Pull complete 
7388693f29f9: Pull complete 
2ab05901de2a: Pull complete 
652943dea480: Pull complete 
13e8f87efde8: Pull complete 
Digest: sha256:6e43a6b02e5f16e4a715953be8b29c40acbe84aed11a61357ef0fc899967fbd9
Status: Downloaded newer image for nvcr.io/nvidia/cuda:13.0.0-base-ubuntu24.04
Sat Jul 18 08:22:20 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.159.03             Driver Version: 580.159.03     CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| 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 GB10                    On  |   0000000F:01:00.0 Off |                  N/A |
| N/A   44C    P8              4W /  N/A  | Not Supported          |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

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

ここでホストと同じように、
NVIDIA GB10
Driver Version: 580.159.03
CUDA Version: 13.0
となっているので、Docker側からGPUが見えていることを確認。

Pytorchの対応確認

docker pull nvcr.io/nvidia/pytorch:26.06-py3
docker run --rm -it \
  --gpus all \
  nvcr.io/nvidia/pytorch:26.06-py3 \
  python -c '
import platform
import torch

print("arch:", platform.machine())
print("torch:", torch.__version__)
print("cuda build:", torch.version.cuda)
print("cuda available:", torch.cuda.is_available())

if torch.cuda.is_available():
    print("device:", torch.cuda.get_device_name(0))
    print("capability:", torch.cuda.get_device_capability(0))
    x = torch.randn(2048, 2048, device="cuda")
    y = x @ x
    print("test:", y.shape, y.device)
'

arch: aarch64
torch: 2.13.0a0+8145d630e8.nv26.06
cuda build: 13.3
cuda available: True
device: NVIDIA GB10
capability: (12, 1)
test: torch.Size([2048, 2048]) cuda:0

5、新しくDockerfile.gb10を作成する

ツールの下準備は整ったので、既存のDockerfileを使わず新しく以下のように作成する。
voicevox_engine/Dockerfile.gb10

https://github.com/servernote/voicevox_engine/blob/main/Dockerfile.gb10

6、coeiroink.pyのコードを修正する

今回コード内のx86バイナリが使えない=CoreWrapperが使えない=--load-all-modelsが効かない、ので、起動時に全モデルをロードするように手動修正する必要がある。これをしないと、異なるspeakerが来るたびにモデルの再ロードが行われパフォーマンスが低下するため。

voicevox_engine/voicevox_engine/dev/synthesis_engine/coeiroink.py

https://github.com/servernote/voicevox_engine/blob/main/voicevox_engine/dev/synthesis_engine/coeiroink.py

7、不要ファイル防止のため.dockerignoreを作成する

voicevox_engine/.dockerignore

Shell.dockerignoreGitHub Source
.git
.gitignore
__pycache__
*.pyc
*.pyo
*.original
venv
.venv
dist
build

8、Dockerをビルドする

いよいよビルド。念の為キャッシュをoffにして実行

cd voicevox_engine
docker build --no-cache --progress=plain -f Dockerfile.gb10 -t mycoeiroink-gb10 .

9、対話モードで実行してみる

ビルドが通ったら実行

docker run --rm -it --name mycoeiroink-gb10 --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 -p 50031:50031 mycoeiroink-gb10

NVIDIA Release 26.06 (build 337426144)
PyTorch Version 2.13.0a0+8145d63

NOTE: CUDA Forward Compatibility mode ENABLED.
  Using CUDA 13.3 driver version 610.43.02 with kernel driver version 580.159.03.
  See https://docs.nvidia.com/deploy/cuda-compatibility/ for details.

INFO:     Started server process [1]
INFO:uvicorn.error:Started server process [1]
INFO:     Waiting for application startup.
INFO:uvicorn.error:Waiting for application startup.
INFO:     Application startup complete.
INFO:uvicorn.error:Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:50031 (Press CTRL+C to quit)
INFO:uvicorn.error:Uvicorn running on http://0.0.0.0:50031 (Press CTRL+C to quit)

うまいこといった!!GPUの使用状況を確認する。

nvidia-smi
Sat Jul 18 19:58:35 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.159.03             Driver Version: 580.159.03     CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| 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 GB10                    On  |   0000000F:01:00.0 Off |                  N/A |
| N/A   46C    P0             10W /  N/A  | Not Supported          |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A          871938      C   python                                  890MiB |
+-----------------------------------------------------------------------------------------+

ちゃんと当該プロセスがGPUのメモリをロードしている。

10、COEIROINK APIをテストする

話者モデルの確認

curl -s http://127.0.0.1:50031/speakers | jq .
[
  {
    "name": "つくよみちゃん",
    "speaker_uuid": "3c37646f-3881-5374-2a83-149267990abc",
    "styles": [
      {
        "name": "れいせい",
        "id": 0
      },
      {
        "name": "おしとやか",
        "id": 5
      },
      {
        "name": "げんき",
        "id": 6
      }
    ],
    "version": "1.0.0"
  }
]

まずはAPIが反応。ダウンロードしたCOEIROINKソフトから持ってきたvoicevox_engine/speaker_info/tsukuyomichan-2.0.0がちゃんとコピーされていれば上記のように出るはず。
(ただしソフトに同梱されているのは0:れいせいのみ、ほかの2つは必要なら別途ダウンロード)

クエリ生成関数

curl -s \
  -X POST \
  "http://127.0.0.1:50031/audio_query?speaker=0" \
  --get \
  --data-urlencode "text=こんにちは。GB10で音声合成しています。" \
  > query.json

カレントにsynthesis関数に渡すquery.jsonができるので、すかさずこれを指定し音声合成

curl -s \
  -H "Content-Type: application/json" \
  -X POST \
  -d @query.json \
  "http://127.0.0.1:50031/synthesis?speaker=0" \
  > test.wav

test.wavを確認すれば、つくよみちゃん(れいせい)の声で読み上げてくれているのがわかる。やったぜ!!!
初回のみ7秒ほどかかってしまって、以降は瞬時に終わるので何か内部で初期化に時間がかかってるっぽいが・・--load_all_modelsでも変わらずこれだけは最後まで原因がわからなかったが実用には支障ないでしょう。多分。

11、サーバーとしてシステムに常駐させる

docker run -d \
  --name mycoeiroink-gb10 \
  --restart unless-stopped \
  --gpus all \
  --ipc=host \
  --ulimit memlock=-1 \
  --ulimit stack=67108864 \
  -p 50031:50031 \
  mycoeiroink-gb10

ログ確認、停止、再起動、削除

docker logs -f mycoeiroink-gb10

docker stop mycoeiroink-gb10

docker start mycoeiroink-gb10

docker rm mycoeiroink-gb10

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

【キーワード検索】