Discordの特定チャンネルを監視し、投稿メッセージをVOICEVOXで読み上げるBotです。
/join- 実行ユーザーが接続中のVCに参加し、実行チャンネルの投稿を読み上げ対象にします/bye- VCから切断します/set-model- 読み上げ話者IDを設定します(個人/サーバー)/set-speaker- 旧話者設定コマンド/set-speed- 読み上げ速度を設定します/set-volume- 読み上げ音量を設定します
通常の文章はTTSで読み上げます。
K: を含むABCテキストは歌唱APIに切り替えます。
有効例(cc-docs/input.txt):
X:1
T:故郷(ふるさと)
M:3/4
L:1/4
C:高野辰之 作詞・ 岡野貞一 作曲
K:G
V:1
"G"G G G|"D"A > B A|"G"B B c|d3
w:う さ ぎ|お い し|か の や|ま
abcjsでABCをパースし、ノート列をVOICEVOXnotes[]に変換midiPitchesからMIDIキー(0-127)を取得- ノート長は
abcjsのduration/getBpm()/getBeatLength()からframe_lengthに変換 - 休符は
key: null, lyric: "" - 歌詞は
w:行を使用。空歌詞は自動で補完(あまたはー)
- 現在は「最初に見つかったメロディ声部(1声部)」を歌唱対象にします
- 和音(同時複数音)は最高音を採用
K:がない入力はABCとして扱いません
- 歌唱は話者ID
6000(波音リツ sing)固定 /set-modelや/set-speakerは通常TTS側のみへ適用
.env をプロジェクトルートに配置してください。
DISCORD_TOKEN=
CLIENT_ID=
GUILD_ID= # 開発時は設定推奨(ギルド即時反映)
TTS_HOST= # pnpm devなら127.0.0.1 / botをdockerで動かすならvoicevox
TTS_PORT=50021git clone https://github.com/tora-tora-tiger/discord-speaker.git
cd discord-speaker
pnpm install
pnpm deploy-commands
# voicevoxだけdocker
docker compose up -d voicevox
pnpm dev