Skip to content

Latest commit

 

History

History
309 lines (220 loc) · 10.8 KB

setup_windows.md

File metadata and controls

309 lines (220 loc) · 10.8 KB

Kana セットアップ Windows向け

Warning

このガイドは将来のWindowsのアップデートで破壊される可能性があります

Warning

このガイドはKVM+QEMU+VirtIO上のWindows 11 Enterprise Evaluation 23H2を実行環境として書かれています

お使いのWindowsとは画面や前提に差異がある場合があります

Warning

Kanaは開発環境、およびバージョンアップ時の動作検証環境がLinuxのためWindowsでの実運用は推奨していません

Warning

システム要件がWindowsの最低要件に引っ張られてかなり高くなるになることに留意してください

低スペックなPCを利用する場合には120%Linuxのほうが快適です

手順0 構築する構成を決める

このBotには2つのオプション依存があります

  • メモリと少しの遅延を代償に、巨大なネット辞書を利用してより自然な読みを提供するKagome front
  • 少しの遅延を代償に、英語をカタカナ語に変換してくれる辞書などを利用できるReplace Http

これらの構築には若干の手間がかかるのでこれらを導入するかを予め決めておくことをおすすめします

手順1 環境構築

1.1 Windows環境を用意する

  • CPUはWindowsと軽めのゲームを動かせる程度に(Windows 11入るぐらい新しめのi5ぐらいはあったほうがよさげ)
  • メモリはフル機能なら16GBぐらいを目安に、それ以外なら以下を参考に
    • Windowsに4GB
    • Bot本体に100~500MB
    • エンジンが1個辺り1.5〜5GB程度
    • (オプション)Kagome frontに2.5~3GB
    • (オプション)Replace Httpに100~500MB
  • ストレージは100GB以上推奨
  • CUDA用GPUもあればより快適に
  • 拡張子が表示される設定になっていることを前提としています
  • Windowsには何故か/tmpみたいなメモリキャッシュがないので作ります

1.2 RAMディスク作る

1.2.1 スクリプトの準備をする

OSFMountをダウンロードしてインストールする

↓をメモ帳に貼り付ける

@ECHO OFF
SET RAMDISK_DRIVE=V:
SET RAMDISK_SIZE=512MB
SET RAMDISK_LABEL=RAM Disk
IF NOT EXIST "%RAMDISK_DRIVE%" (
  "%PROGRAMFILES%\OSFMount\OSFMount.com" -a -t vm -s %RAMDISK_SIZE% -o format:ntfs:"%RAMDISK_LABEL%" -m "%RAMDISK_DRIVE%
)

デスクトップにsetup_ramdisk.batとして保存して、保存したものをC直下に移動する

1.2.2 自動で起動するようにする

タスクスケジューラを起動する

基本タスクの作成を押す

トリガーをコンピューターの起動時プログラムの開始でプログラム/スクリプトをC:\setup_ramdisk.batにして作成する

作成したタスクのプロパティを開いてユーザーがログオンしているかどうかにかかわらず実行するを選択、最上位の特権で実行するにチェックを入れる

image

条件タブに切り替えてすべてのチェックを外す

image

1.3 必要なものをインストール

以下の物を入れる。

  • Git
  • ffmpeg
  • Node.js
  • pnpm

必要ではないですがまともな圧縮展開ソフトも入れたほうがいいです。

Git, ffmpeg, Node.jsはwingetで

winget install Git.Git
winget install Gyan.FFmpeg
winget install OpenJS.NodeJS

pnpmは公式のガイド通りに

https://pnpm.io/installation

手順2 Discord APIの準備

See https://github.com/notoiro/kana/blob/master/docs/setup_linux.md#%E6%89%8B%E9%A0%862-discord-api%E3%81%AE%E6%BA%96%E5%82%99

手順3 エンジンの用意

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

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

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

3.1.a VOICEVOXの場合

Click to Expand.

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

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

image

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

image

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

./run.exe

3.1.b SHAREVOXの場合

Click to Expand.

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

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

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

拡張子しか見てないアホが開けないって言ってくるので拡張子を7zにします。

展開したら動くかチェック(Ctrl+Cで終了)

./run.exe

3.1.c COEIROINKの場合

Click to Expand.

公式から環境に合ったものをダウンロードする。

https://shirowanisan.booth.pm/items/3436565 の起動方法の通りに展開していく。

仕様上speaker_infoのフォルダの位置がengineフォルダと横並びなので留意すること。

展開したら動くかチェック(Ctrl+Cで終了)

./engine/engine.exe

手順4 (オプション)Kagome frontの準備

Click to Expand.

巨大なネット辞書であるNeologd辞書を利用してより自然な読みを提供します。

元々は必須の依存で、固有名詞や漢字、更には細かな日本語の表現などの読み品質を圧倒的に改善する、このBot強みでもありますが、今はもうなくても動きます。

4.1 Goのインストール

Goを公式のガイド通りにインストール

https://go.dev/doc/install

4.2 クローンしてくる

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

4.3 ビルド

go build main.go

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

./main.exe

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

Click to Expand.

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

5.1 Nimをインストールする

https://github.com/dom96/choosenim のガイド通りインストールする

5.2 クローンしてくる

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

5.3 ビルド

nimble build

5.3 辞書を配置する

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

mkdir dicts

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

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

./ReplaceHttp.exe

手順6 Kanaの準備

6.1 クローンしてくる

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

6.2 コンフィグを調整する

cp sample.json config.json

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

項目名 意味
TMP_DIR 音声のキャッシュディレクトリ。ガイド通りにやっているならV:/にすればOK
TOKEN 2.1で生成したDiscord Botのトークン
PREFIX その文字で始まる文章を読まなくする文字
KAGOME_HOST Kagome frontを利用する場合のホスト。使わないならnoneにする。
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 起動

複数窓のターミナルが必要なのでWindowsターミナルのタブなど使っていい感じに。

7.1 エンジンの起動

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

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

./run.exe --port 2970 --cpu_num_threads 2

7.2 (オプション)Kagome frontの起動

./main.exe

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

./ReplaceHttp.exe

7.4 本体の起動

$ENV:NODE_ENV = "production"
node index.js

7.5 招待する

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

手順8 自動起動

作者にWindowsの自動起動に関する知識がないので調査後追記