Replace ElevenLabs with local STT and TTS
This commit is contained in:
@@ -15,14 +15,21 @@ const envSchema = z.object({
|
||||
DISCORD_BOT_TOKEN: emptyToUndefined,
|
||||
DISCORD_APPLICATION_ID: emptyToUndefined,
|
||||
DISCORD_COMMAND_GUILD_ID: emptyToUndefined,
|
||||
ELEVENLABS_API_KEY: emptyToUndefined,
|
||||
ELEVENLABS_VOICE_ID: emptyToUndefined,
|
||||
ELEVENLABS_STT_MODEL: z.string().min(1).default("scribe_v2_realtime"),
|
||||
ELEVENLABS_TTS_MODEL: z.string().min(1).default("eleven_flash_v2_5"),
|
||||
OLLAMA_BASE_URL: z.string().min(1).default("http://localhost:11434"),
|
||||
OLLAMA_MODEL: z.string().min(1).default("qwen3:0.6b"),
|
||||
OLLAMA_KEEP_ALIVE: z.string().min(1).default("5m"),
|
||||
OLLAMA_NUM_CTX: z.coerce.number().int().min(512).max(32768).default(4096),
|
||||
LOCAL_AI_VENV_PATH: z.string().min(1).default(".local-ai/.venv"),
|
||||
LOCAL_AI_CACHE_DIR: z.string().min(1).default(".local-ai/cache"),
|
||||
LOCAL_AI_PYTHON: emptyToUndefined,
|
||||
LOCAL_STT_MODEL: z.string().min(1).default("tiny"),
|
||||
LOCAL_STT_DEVICE: z.string().min(1).default("auto"),
|
||||
LOCAL_STT_COMPUTE_TYPE: z.string().min(1).default("auto"),
|
||||
LOCAL_STT_BEAM_SIZE: z.coerce.number().int().min(1).max(8).default(1),
|
||||
LOCAL_TTS_LANGUAGE: z.string().min(1).default("KR"),
|
||||
LOCAL_TTS_SPEAKER: z.string().min(1).default("KR"),
|
||||
LOCAL_TTS_DEVICE: z.string().min(1).default("auto"),
|
||||
LOCAL_TTS_SPEED: z.coerce.number().min(0.8).max(1.6).default(1.12),
|
||||
BOT_DEFAULT_LANGUAGE: z.string().min(2).default("ko"),
|
||||
MAX_CONVERSATION_TURNS: z.coerce.number().int().min(4).max(30).default(12),
|
||||
LOCAL_AUDIO_SOURCE: emptyToUndefined,
|
||||
@@ -36,10 +43,7 @@ const envSchema = z.object({
|
||||
});
|
||||
|
||||
export type AppConfig = z.infer<typeof envSchema>;
|
||||
export type AssistantRuntimeConfig = AppConfig & {
|
||||
ELEVENLABS_API_KEY: string;
|
||||
ELEVENLABS_VOICE_ID: string;
|
||||
};
|
||||
export type AssistantRuntimeConfig = AppConfig;
|
||||
export type DiscordRuntimeConfig = AssistantRuntimeConfig & {
|
||||
DISCORD_BOT_TOKEN: string;
|
||||
DISCORD_APPLICATION_ID: string;
|
||||
@@ -57,11 +61,7 @@ function requirePresent(value: string | undefined, name: string): string {
|
||||
}
|
||||
|
||||
export function requireAssistantRuntimeConfig(config: AppConfig): AssistantRuntimeConfig {
|
||||
return {
|
||||
...config,
|
||||
ELEVENLABS_API_KEY: requirePresent(config.ELEVENLABS_API_KEY, "ELEVENLABS_API_KEY"),
|
||||
ELEVENLABS_VOICE_ID: requirePresent(config.ELEVENLABS_VOICE_ID, "ELEVENLABS_VOICE_ID"),
|
||||
};
|
||||
return config;
|
||||
}
|
||||
|
||||
export function requireDiscordRuntimeConfig(config: AppConfig): DiscordRuntimeConfig {
|
||||
|
||||
Reference in New Issue
Block a user