Add Windows Media TTS engine selection

This commit is contained in:
2026-05-01 04:01:33 +09:00
parent 1a8e8d0a8f
commit 52d7f74049
12 changed files with 475 additions and 77 deletions

View File

@@ -16,9 +16,8 @@ import { GuildVoiceSession } from "./audio/guild-voice-session.js";
import { type DiscordRuntimeConfig } from "./config.js";
import { Logger } from "./logger.js";
import { LocalFasterWhisperSttService } from "./services/local-stt.js";
import { LocalKokoroTtsService } from "./services/local-tts.js";
import { OllamaLlmService } from "./services/ollama-llm.js";
import { WindowsSystemTtsService } from "./services/windows-system-tts.js";
import { createTtsService } from "./services/create-tts-service.js";
export async function runDiscordBot(config: DiscordRuntimeConfig, logger: Logger): Promise<void> {
const commands = [
@@ -39,15 +38,12 @@ export async function runDiscordBot(config: DiscordRuntimeConfig, logger: Logger
});
const stt = new LocalFasterWhisperSttService(config, logger);
const tts =
process.platform === "win32"
? new WindowsSystemTtsService(config.LOCAL_TTS_SPEED)
: new LocalKokoroTtsService(config, logger);
const tts = createTtsService(config, logger);
const llm = new OllamaLlmService(config);
const sessions = new Map<string, GuildVoiceSession>();
await stt.warmup();
await tts.warmup();
await tts.warmup?.();
function getVoiceChannel(interaction: ChatInputCommandInteraction): VoiceBasedChannel | null {
const member = interaction.member as GuildMember | null;