Skip to content

Latest commit

 

History

History
328 lines (242 loc) · 10.8 KB

setup_linux.md

File metadata and controls

328 lines (242 loc) · 10.8 KB

Kana セットアップ Linux向け

手順1 環境構築

1.1 お好きなLinux環境を用意する

  • 動作確認済のLinuxはUbuntuまたはArch
  • GUIは不要
  • CPUはCUDAなしならIntel 8世代のi3程度あるといい(マルチエンジンならi5以上推奨)
  • メモリは物理4GB+スワップ6GBぐらいを目安に
    • OS本体に1GB、Bot本体および依存系で3GB、エンジンが1個辺り1.5〜5GB程度と考えるといい
  • ストレージはボイスエンジン抜きで10GBぐらいいると思う
  • Arm系CPUは未検証なのでx86_64推奨
  • CUDA使うならGPUもあるといい
  • RAM上のキャッシュディレクトリもあるといい(Linuxなら/tmpで十分)

1.2 必要なもののインストール

以下の物を入れる。説明はArchだけど適宜自分のLinuxと読み替えてインストールすること。

  • Git
  • ffmpeg
  • Go
  • Node.js
  • pnpm

Git, ffmpeg, Goはバージョンあんまり気にしなくて良いのでパッケージマネージャで。

paru -S git ffmpeg go

Node.jsはあんまり古いと動かないのでnで入れる。(Archならパッケージマネージャからでもいい。)

paru -S node-n
sudo n latest

Node.js入れたらpnpmを入れる

sudo npm i -g pnpm

手順2 Discord APIの準備

2.1 アプリを作る

Discord Developer PortalにアクセスしてNew Applicationを押す。

image

名前は適当に。チェックボックスは入れる。

image

APPLICETION IDをコピーしてメモ帳にでも貼り付けておく。

ついでにアイコンとか名前とかいい感じに設定する。

image

左のBotを押してBotのタブを開く。

Reset Tokenを押してトークンを生成する。生成されたトークンをコピーしてメモ帳にでも貼り付けとく。

下にスクロールしてMESSAGE CONTENT INTENTオンにする。

お好みで公開Botにしたくない場合はPUBLIC BOTをオフにする

image image

手順3 Kagome frontの準備

3.1 クローンしてくる

git clone git@github.com:notoiro/kagome_front.git
cd kagome_front

3.2 ビルド

go build main.go

動くかチェック(Ctrl+Cで終了)

./main

手順4 エンジンの用意

各エンジンごとに微妙に差異があります。

VOICEVOX系でAPIに互換性があればこのリストにないエンジンでも利用できます。

なお1つ選んでやってもいいし全部やってもいいです。

4.1.a VOICEVOXの場合

Click to Expand.

VOICEVOXの公式から環境に合ったものをダウンロードする。 GPUがあるならGPU版、CPUだけならCPU版。

この後の構築の関係でtar.gzバージョンを推奨。

image

使うのはVOICEVOXフォルダ内のvv-engineフォルダの中身だけなのでそれだけ取り出せばOK。

image

動くかチェック(Ctrl+Cで終了)

./run

4.1.b SHAREVOXの場合

Click to Expand.

Githubリポジトリから環境に合ったものをダウンロードする。

GPUがあるならnvidiaがついてるものを、CPUだけならcpuって付いてるものを。

7z.001が拡張子のファイルを選んでください。

展開したら`run``に実行権限をつけて動くかチェック(Ctrl+Cで終了)

chmod +x run
./run

4.1.c COEIROINKの場合

Click to Expand.

COEIROINKにはネイティブで動くv1とWine経由で動くv2があります。

構築こそ大変手間がかかりますが、それでもなおMYCOEによるボイス拡張は魅力です。 そのため自分が叩いたコマンドラインや参考資料などを載せますが、それでも自力での構築が必須であり、あなたが怠惰な初心者の場合は非推奨のボイスエンジンになります。

4.1.c.a v1の場合

  • Githubからクローンしてくる
  • Linuxネイティブで動きます。
  • CUDAも動きます。
  • c-1.6.0+v-0.12.3及びc-1.6.0+v-0.12.3+gpuが動作します。
  • 依存関係が地獄。
  • pyenvにてバージョン3.8.10に固定
  • VOICEVOXのオプションが利用できます。
  • 声は公式からダウンロードする。

requirements.txtを以下のように書き換え

diff --git a/requirements.txt b/requirements.txt
index 0fa096c..0d59f35 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -40,7 +40,7 @@ pycparser==2.20
     # via cffi
 pydantic==1.8.2
     # via fastapi
-pyopenjtalk @ git+https://github.com/VOICEVOX/pyopenjtalk@a85521a0a0f298f08d9e9b24987b3c77eb4aaff5
+pyopenjtalk @ git+https://github.com/VOICEVOX/pyopenjtalk@master
     # via -r requirements.in
 python-multipart==0.0.5
     # via -r requirements.in

コマンドラインは以下の通り

python -m venv ./.venv
pip install torchaudio
pip install pydantic==1.9.1
pip install espnet resampy typeguard==2.13.3
pip install -r requirements.txt
pip install typing-extensions==4.5.0
pip install numpy==1.23.0

実行

python run.py

参考資料

4.1.c.b v2の場合

  • 公式からダウンロードしてくる
  • engineフォルダのengine.exeをWine経由で起動すれば動く。
  • CPU版は普通に動く。GPU版は頑張ればまともに動きそうな雰囲気はあるもののあんまりまともには動かない。
  • オプションが不明のためポート指定やコア数指定はできません。

手順5 (オプション)ReplaceHttpの準備

Click to Expand.

英語の読み辞書など巨大な辞書向けにNim製の置換ツールを利用できます。 なくても動きます。

5.1 Nimをインストールする

paru -S nim

5.2 クローンしてくる

git clone git@github.com:notoiro/replace_http.git
cd replace_http

5.3 ビルド

nimble build

5.3 辞書を配置する

dictsという名前のフォルダを作る

mkdir dicts

その中に辞書を配置すればロードされます。

動くかチェック(Ctrl+Cで終了)

./ReplaceHttp

手順6 Kanaの準備

6.1 クローンしてくる

git clone git@github.com:notoiro/kana.git
cd kana

6.2 コンフィグを調整する

cp sample.json config.json

config.jsonを以下を参考に編集する。主に調整すべき物にはTOKEN, SERVER_DIR, REMOTE_REPLACE_HOST, VOICE_ENGINES

項目名 意味
TMP_DIR 音声のキャッシュディレクトリ。/tmpなどのRAM上を推奨。
TOKEN 2.1で生成したDiscord Botのトークン
PREFIX その文字で始まる文章を読まなくする文字
SERVER_DIR ユーザーデータの保存先。こっちはディスク上推奨。
REMOTE_REPLACE_HOST ReplaceHttpを利用する場合のホスト。使わないならnoneにする。
OPUS_CONVERT 音声のOpusへの変換設定。enableで有効/無効、bitlatethreadsはそれぞれビットレートと変換に利用するスレッド数。
DICT_DIR トークン単位の辞書の保存先。
IS_PONKOTSU ポンコツ設定をデフォルトで有効にするか
TMP_PREFIX キャッシュディレクトリに保存されるファイルのファイル名につける識別子。複数動かす場合に便利

VOICE_ENGINESは音声エンジンの設定。用意したエンジンの数だけ以下の内容のオプジェクトを入れれば良い。

項目名 内容
name エンジン名。これは内部で利用されるshortidに影響するため、互換性上標準的な名前をつけることが推奨される。(e.g. VOICEVOX, SHAREVOX, COEIROINKなど)
type エンジンタイプ。エンジンのAPIがVOICEVOX互換である場合はVOICEVOX、COEIROINK v2の場合はCOEIROINK_V2
server エンジンのホスト。ここで指定されたポート通りにエンジンを起動する必要がある。
credit_url クレジットを表示したときに表示するエンジンの公式ページのURL。

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

pnpm install

手順7 起動

複数窓のターミナルが必要なのでGUIがない場合はscreenとかbyobuを使って起動してください。

7.1 Kagome frontの起動

./main

7.2 エンジンの起動

VOICEVOX系なら--port ポート番号でポート指定、--cpu_num_threads コア数でコア数指定、--use_gpuでGPU使用等のオプションが利用できます。

Bot側の設定とか見ながらいい感じに起動します。

/run --port 2970 --cpu_num_threads 2

7.3 (オプション)ReplaceHttpの起動

./ReplaceHttp

7.4 本体の起動

npm run production

7.5 招待する

https://discord.com/oauth2/authorize?client_id=APPLICATIONID&scope=bot&permissions=2184268864APPLICATIONIDを2.1でコピーしたIDに置き換えてからブラウザで開く。

手順8 systemdで起動するようにする

services配下のサービスファイルを自分の環境に合わせて編集する。

サービス用のフォルダを用意

mkdir -p ~/.config/systemd/user

編集したやつを~/.config/systemd/userにコピーする。

systemdに認識させる

systemctl --user daemon-reload

有効にして起動する