Warning
このガイドは将来のWindowsのアップデートで破壊される可能性があります
Warning
このガイドはKVM+QEMU+VirtIO上のWindows 11 Enterprise Evaluation 23H2を実行環境として書かれています
お使いのWindowsとは画面や前提に差異がある場合があります
Warning
Kanaは開発環境、およびバージョンアップ時の動作検証環境がLinuxのためWindowsでの実運用は推奨していません
Warning
システム要件がWindowsの最低要件に引っ張られてかなり高くなるになることに留意してください
低スペックなPCを利用する場合には120%Linuxのほうが快適です
このBotには2つのオプション依存があります
- メモリと少しの遅延を代償に、巨大なネット辞書を利用してより自然な読みを提供するKagome front
- 少しの遅延を代償に、英語をカタカナ語に変換してくれる辞書などを利用できるReplace Http
これらの構築には若干の手間がかかるのでこれらを導入するかを予め決めておくことをおすすめします
- 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
みたいなメモリキャッシュがないので作ります
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直下に移動する
タスクスケジューラを起動する
基本タスクの作成を押す
トリガーをコンピューターの起動時
、プログラムの開始
でプログラム/スクリプトをC:\setup_ramdisk.bat
にして作成する
作成したタスクのプロパティを開いてユーザーがログオンしているかどうかにかかわらず実行する
を選択、最上位の特権で実行する
にチェックを入れる
条件タブに切り替えてすべてのチェックを外す
以下の物を入れる。
- Git
- ffmpeg
- Node.js
- pnpm
必要ではないですがまともな圧縮展開ソフトも入れたほうがいいです。
Git, ffmpeg, Node.jsはwingetで
winget install Git.Git
winget install Gyan.FFmpeg
winget install OpenJS.NodeJS
pnpmは公式のガイド通りに
各エンジンごとに微妙に差異があります。
VOICEVOX系でAPIに互換性があればこのリストにないエンジンでも利用できます。
なお1つ選んでやってもいいし全部やってもいいです。
3.1.a VOICEVOXの場合
Click to Expand.
VOICEVOXの公式から環境に合ったものをダウンロードする。 GPUがあるならGPU版、CPUだけならCPU版。
この後の構築の関係でzip
バージョンを推奨。
使うのはVOICEVOX
フォルダ内のvv-engine
フォルダの中身だけなのでそれだけ取り出せばOK。
動くかチェック(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
Click to Expand.
巨大なネット辞書であるNeologd辞書を利用してより自然な読みを提供します。
元々は必須の依存で、固有名詞や漢字、更には細かな日本語の表現などの読み品質を圧倒的に改善する、このBot強みでもありますが、今はもうなくても動きます。
Goを公式のガイド通りにインストール
git clone https://github.com/notoiro/kagome_front.git
cd kagome_front
go build main.go
動くかチェック(Ctrl+Cで終了)
./main.exe
Click to Expand.
英語の読み辞書など巨大な辞書向けにNim製の置換ツールを利用できます。 なくても動きます。
https://github.com/dom96/choosenim のガイド通りインストールする
git clone https://github.com/notoiro/replace_http.git
cd replace_http
nimble build
dicts
という名前のフォルダを作る
mkdir dicts
その中に辞書を配置すればロードされます。
動くかチェック(Ctrl+Cで終了)
./ReplaceHttp.exe
git clone https://github.com/notoiro/kana.git
cd kana
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 で有効/無効、bitlate とthreads はそれぞれビットレートと変換に利用するスレッド数。 |
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。 |
pnpm install
複数窓のターミナルが必要なのでWindowsターミナルのタブなど使っていい感じに。
VOICEVOX系なら--port ポート番号
でポート指定、--cpu_num_threads コア数
でコア数指定、--use_gpu
でGPU使用等のオプションが利用できます。
COEIROINKのv2ならポート50032固定です
Bot側の設定とか見ながらいい感じに起動します。
./run.exe --port 2970 --cpu_num_threads 2
./main.exe
./ReplaceHttp.exe
$ENV:NODE_ENV = "production"
node index.js
https://discord.com/oauth2/authorize?client_id=APPLICATIONID&scope=bot&permissions=2184268864
のAPPLICATIONID
を2.1でコピーしたIDに置き換えてからブラウザで開く。
作者にWindowsの自動起動に関する知識がないので調査後追記