Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions run-Arch-AMD.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/bash
# Condaの初期化w
source /opt/miniforge/etc/profile.d/conda.sh
conda activate rvc

# --- [追加] 自動クリーンアップ設定 ---
# このスクリプトが終了(EXIT)したり、中断(SIGINT/Ctrl+C)された時に
# 自動的にポート18888を掃除する関数を定義します。
cleanup() {
echo "Stopping Voice Changer and cleaning up port 18888..."
fuser -k 18888/tcp > /dev/null 2>&1
exit
}
# 終了信号をキャッチして cleanup を実行するように設定
trap cleanup EXIT SIGINT SIGTERM
# ------------------------------------

# GPU設定
export HSA_OVERRIDE_GFX_VERSION=11.0.0
export MIOPEN_FIND_MODE=2

# メモリ対策(念のため)
export PYTHONMALLOC=malloc
export MALLOC_CHECK_=0

#デバイス
export ALSA_PCM_CARD=default
export PA_ALSA_PLUGHW=1
export LD_LIBRARY_PATH=\$CONDA_PREFIX/lib/python3.10/site-packages/torch/lib:\$LD_LIBRARY_PATH

cd ~/software/voice-changer/server || exit

python MMVCServerSIO.py --rest_port 18888 --use_gpu
33 changes: 33 additions & 0 deletions server/requirements-arch-amd.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
##requirements for archlinux+amd
numpy<2.0.0
scipy==1.10.1
matplotlib==3.7.1
cython

uvicorn==0.21.1
fastapi==0.95.1
python-socketio==5.8.0
python-multipart==0.0.6
pyOpenSSL==23.1.1
websockets==11.0.2

librosa==0.9.1
resampy==0.4.2
sounddevice==0.4.6

fairseq
hydra-core==1.0.7
omegaconf==2.0.6
pyworld
faiss-cpu==1.7.3
torchcrepe==0.0.18
torchfcpe==0.0.3
einops==0.6.0
local_attention==1.8.5

onnxruntime-rocm
onnxsim==0.4.28
ml_dtypes

gin-config==0.5.0
dataclasses-json==0.5.7
Binary file added tutorials/images/Arch+amd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
140 changes: 140 additions & 0 deletions tutorials/tutorial_Archlinux+rocm_ja.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
# Linux + AMD GPU 用チュートリアル

## 始め

チュートリアルの更新になります。(2026/03/21時点)

主は依存関係と仮想ケーブルを改訂しました。

依存関係の最適化はしていませんが、アプリを走ることに問題ありません。

**テスト環境:**
- Archlinux(EndeavourOS)
- Radeon RX 7600

## 前提条件

### 関連パッケージ

まず、ROCmと音声関連のパッケージを入れる。
```bash
sudo pacman -S rocm-hip-sdk rocm-opencl-sdk rocminfo rocm-smi-lib ffmpeg git
```
入れていたはずのパッケージ、全部必須というわけではない。
```bash
$ sudo pacman -Q | rg "rocm|ffm"
ffmpeg 2:8.1-2
rocm-cmake 7.2.0-1
rocm-core 7.2.0-2
rocm-device-libs 2:7.2.0-1
rocm-hip-libraries 7.2.0-1
rocm-hip-runtime 7.2.0-1
rocm-hip-sdk 7.2.0-1
rocm-language-runtime 7.2.0-1
rocm-llvm 2:7.2.0-1
rocm-opencl-runtime 7.2.0-1
rocm-opencl-sdk 7.2.0-1
rocm-smi-lib 7.2.0-1
rocminfo 7.2.0-1
```
user権限設定
```bash
sudo usermod -aG render,video $USER
```
一度ログアウトまたはRebootして、権限設定を反映する。

## 環境設定(conda)
python用の環境を作成する。

```bash
yay -S miniforge
##miniforge初期化
source /opt/miniforge/etc/profile.d/conda.sh
##環境構築
conda create --name rvc python=3.10.20
##環境をアクティブにする
conda activate rvc
```

次はボイスチェンジャー本体のClone
```bash
cd
mkdir software
cd software
git clone https://github.com/w-okada/voice-changer.git
```


## 依存関係のインストール

```bash
cd ~/software/voice-changer/server
pip install "pip<24.1" "setuptools<70" ##互換性維持
pip install torch==2.4.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/rocm6.0
pip install -r requirements-arch-amd.txt
```
長い長いダウンロードの始まり。

〜〜〜

ダウンロード完了。


古いライブラリのセキュリティー設定を変更。Archlinuxの要件に適合する。
```bash
sudo pacman -S patchelf
find $CONDA_PREFIX/lib/ -name "*.so*" -exec patchelf --clear-execstack {} \; 2>/dev/null
```

## 準備完了、アプリを起動する。

```bash
export HSA_OVERRIDE_GFX_VERSION=11.0.2
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib/python3.10/site-packages/torch/lib:$LD_LIBRARY_PATH##互換性維持
python MMVCServerSIO.py --rest_port 18888 --use_gpu
```


http://127.0.0.1:18888/.
これで、WEB GUI は開けるはず。

メインのフォルダに run-Arch-AMD.sh のスクリプトも入れました、これからそちらも使えます。

![image](images/Arch+amd.png)

## 仮想ケーブルの設定
Linux 標準の PipeWire を使って簡単に作れる。(PulseAudioも)

```bash
pactl load-module module-null-sink sink_name=input sink_properties=device.description="input"
pactl load-module module-null-sink sink_name=output sink_properties=device.description="output"
```
これはRebootまたはログアウトすれば消える設定であるが。
systemctl使えば、永続化設定できる。

```bash
cd
vim ~/.config/systemd/user/virtual-audio.service
[Unit]
Description=Create Virtual Audio Cables (pactl)
# PipeWire-Pulse が起動してから実行するように指定
After=pipewire-pulse.service
Requires=pipewire-pulse.service

[Service]
Type=oneshot
RemainAfterExit=yes
# あなたの環境で動作する pactl コマンドをそのまま記述
ExecStart=/usr/bin/pactl load-module module-null-sink sink_name=input sink_properties=device.description=input
ExecStart=/usr/bin/pactl load-module module-null-sink sink_name=output sink_properties=device.description=output

[Install]
WantedBy=default.target
:wq

systemctl --user daemon-reload
systemctl --user enable --now virtual-audio.service
```
wine 関連の設定はテストできないため、割愛する。

一応、ProtonGe環境のVRchatはそのままでも仮想ケーブルを認認識できる。
Loading