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.NodeJSpnpmは公式のガイド通りに
各エンジンごとに微妙に差異があります。
VOICEVOX系でAPIに互換性があればこのリストにないエンジンでも利用できます。
なお1つ選んでやってもいいし全部やってもいいです。
3.1.a VOICEVOXの場合
Click to Expand.
VOICEVOXの公式から環境に合ったものをダウンロードする。 GPUがあるならGPU版、CPUだけならCPU版。
この後の構築の関係でzipバージョンを推奨。
使うのはVOICEVOXフォルダ内のvv-engineフォルダの中身だけなのでそれだけ取り出せばOK。
動くかチェック(Ctrl+Cで終了)
./run.exe3.1.b SHAREVOXの場合
Click to Expand.
Githubリポジトリから環境に合ったものをダウンロードする。
GPUがあるならnvidiaがついてるものを、CPUだけならcpuって付いてるものを。
7z.001が拡張子のファイルを選んでください。
拡張子しか見てないアホが開けないって言ってくるので拡張子を7zにします。
展開したら動くかチェック(Ctrl+Cで終了)
./run.exe3.1.c COEIROINKの場合
Click to Expand.
公式から環境に合ったものをダウンロードする。
https://shirowanisan.booth.pm/items/3436565 の起動方法の通りに展開していく。
仕様上speaker_infoのフォルダの位置がengineフォルダと横並びなので留意すること。
展開したら動くかチェック(Ctrl+Cで終了)
./engine/engine.exeClick to Expand.
巨大なネット辞書であるNeologd辞書を利用してより自然な読みを提供します。
元々は必須の依存で、固有名詞や漢字、更には細かな日本語の表現などの読み品質を圧倒的に改善する、このBot強みでもありますが、今はもうなくても動きます。
Goを公式のガイド通りにインストール
git clone https://github.com/notoiro/kagome_front.git
cd kagome_frontgo build main.go動くかチェック(Ctrl+Cで終了)
./main.exeClick to Expand.
英語の読み辞書など巨大な辞書向けにNim製の置換ツールを利用できます。 なくても動きます。
https://github.com/dom96/choosenim のガイド通りインストールする
git clone https://github.com/notoiro/replace_http.git
cd replace_httpnimble builddictsという名前のフォルダを作る
mkdir dictsその中に辞書を配置すればロードされます。
動くかチェック(Ctrl+Cで終了)
./ReplaceHttp.exegit clone https://github.com/notoiro/kana.git
cd kanacp sample.json config.jsonconfig.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.jshttps://discord.com/oauth2/authorize?client_id=APPLICATIONID&scope=bot&permissions=2184268864のAPPLICATIONIDを2.1でコピーしたIDに置き換えてからブラウザで開く。
作者にWindowsの自動起動に関する知識がないので調査後追記



