AivisSpeech Engine対応の読み上げBot
====================================

現在の配布版
------------
α6

概要
----
Discordサーバーのテキストチャンネルへ投稿された文章を、
AivisSpeech Engineで音声合成して読み上げるBotです。

Windows 11と、1つのDiscordサーバーでの利用を前提としています。
複数のDiscordサーバーでの同時運用は動作保証外です。
LinuxおよびWindows 10は、この配布物のサポート対象外です。

非公式配布物について
--------------------
本Botは、Aivis ProjectおよびDiscord Inc.の公式配布物ではありません。
Aivis ProjectおよびDiscord Inc.による承認、提携、保証を
受けたものでもありません。

配布内容
--------
Bot本体: tts-bot-alpha6.py
Bot本体 SHA-256: e754ddf7887ec7b6f44e332734a50f451e273250ba62a38373635c1bcf6db594
グローバル辞書: global_replacement.db
辞書 SHA-256: 5c0704323edcba9c42267ca50209771ed81b2f01d8fcda1a513a985230bd7920

α6の主な更新
------------
- 文分割後の各セグメントへ記号専用finalguardを再適用
- guildごとの読み上げキューを単一consumerへ集約
- SQLiteのcommit成功後にだけメモリ上の設定を更新
- VS15、VS16、補助平面Variation Selectorの処理を統一
- /speakers応答内のspeaker・style要素を型検証

正式α5で独立再現された5件を修正し、独立監査、test Bot、
実機環境での確認を完了しています。

必要なもの
----------
- Windows 11
- AivisSpeech Engine
- Python 3.12または3.13系
- FFmpeg
- Discord Botトークン

初期話者
--------
Botの初期話者は「コハク」、初期スタイルは「ノーマル」です。
コハクはAivisSpeechのGUIモデル一覧に最初から含まれていません。
Botを初めて起動する前に、AivisHubからコハクのAIVMXをダウンロードし、
AivisSpeechへインストールしてください。

https://hub.aivis-project.com/aivm-models/22e8ed77-94fe-4ef2-871f-a86f94e9a579

モデルのライセンスと利用条件は、AivisHubの配布ページで確認してください。
別の話者を使用する場合は、使用する音声モデルをAivisSpeechへインストールし、
Bot起動後、読み上げ前に /set_speaker で話者とスタイルを選択してください。

導入の概要
----------
1. AivisSpeech EngineとFFmpegを用意します。
2. 初期話者「コハク」をAivisHubからAivisSpeechへインストールします。
3. このZIPを新しいフォルダへ展開します。
4. Windows Embedded版Pythonを使う場合は、Botフォルダ内に python フォルダを作り、準備したPythonフォルダの中身を配置します。
5. Botフォルダを開き、フォルダ内の何もない場所を右クリックして「ターミナルで開く」を選択します。
6. 開いたターミナルで次を順番に実行します。

   .\python\python.exe -m pip install --upgrade pip setuptools wheel
   .\python\python.exe -m pip install -r requirements-base.txt
   .\python\python.exe -m pip install --upgrade --no-deps -r requirements-security-override.txt

7. Bot本体と同じフォルダに token.txt を作成します。
8. token.txtにはDiscord Botトークン本体だけを1行で保存します。
9. AivisSpeech Engineが起動していることを確認し、同じターミナルでBotを起動します。

   .\python\python.exe .\tts-bot-alpha6.py

通常インストール版Pythonを使う場合は、同じPython環境へrequirementsを導入し、そのPythonでBot本体を起動してください。

初回設定
--------
1. 使用するボイスチャンネルへ参加します。
2. /connect を実行します。
3. /set_read_channel を実行します。
4. 初期話者のコハク（ノーマル）以外を使用する場合は、/set_speaker を実行します。
5. 設定したテキストチャンネルへ短い文章を投稿します。

文字数上限
----------
/set_limit では50～1000文字を設定できます。初期値は200文字です。
通常は100～200文字を推奨します。

文字数上限を大きくすると、文章や音声モデルによっては読み上げが極端に早くなったり、
発音やイントネーションが不自然になったりする場合があります。
これはAivisSpeech Engine側の音声生成特性によるもので、Bot側だけでは完全に防げない
場合があります。

秘密情報
--------
token.txt、bot.db、settings.json、replacement.json、バックアップ、ログ、
一時音声などの利用環境固有ファイルは配布ZIPに含めていません。
これらを問い合わせや再配布の際に添付しないでください。

問い合わせ
----------
お問い合わせ・ご意見:
contact☆twilight-relay.com（☆を@に置き換えてください）

セキュリティに関する連絡:
security☆twilight-relay.com（☆を@に置き換えてください）

ライセンス
----------
Bot本体と配布ZIP内の独自文書: MIT License
グローバル辞書: CC0 1.0 Universal
外部ソフトウェア、サービス、音声モデルには各提供元の条件が適用されます。

詳しくは LICENSE.txt、LICENSE_SCOPE.txt、GLOBAL_DICTIONARY_NOTICE.txt、
CC0-1.0.txt、THIRD_PARTY_NOTICES.txt を確認してください。

Webサイト
----------
https://docs.hoshino-umika.com/
