feat(tts): add Telnyx to /tts provider command

This commit is contained in:
Franco Viotti 2026-01-29 08:56:47 -03:00
parent 4ebeb160c7
commit ff47117510
No known key found for this signature in database

View File

@ -50,7 +50,8 @@ function ttsUsage(): ReplyPayload {
`**Providers:**\n` + `**Providers:**\n` +
`• edge — Free, fast (default)\n` + `• edge — Free, fast (default)\n` +
`• openai — High quality (requires API key)\n` + `• openai — High quality (requires API key)\n` +
`• elevenlabs — Premium voices (requires API key)\n\n` + `• elevenlabs — Premium voices (requires API key)\n` +
`• telnyx — Great quality, cheaper than ElevenLabs (requires API key)\n\n` +
`**Text Limit (default: 1500, max: 4096):**\n` + `**Text Limit (default: 1500, max: 4096):**\n` +
`When text exceeds the limit:\n` + `When text exceeds the limit:\n` +
`• Summary ON: AI summarizes, then generates audio\n` + `• Summary ON: AI summarizes, then generates audio\n` +
@ -151,6 +152,7 @@ export const handleTtsCommands: CommandHandler = async (params, allowTextCommand
if (!args.trim()) { if (!args.trim()) {
const hasOpenAI = Boolean(resolveTtsApiKey(config, "openai")); const hasOpenAI = Boolean(resolveTtsApiKey(config, "openai"));
const hasElevenLabs = Boolean(resolveTtsApiKey(config, "elevenlabs")); const hasElevenLabs = Boolean(resolveTtsApiKey(config, "elevenlabs"));
const hasTelnyx = Boolean(resolveTtsApiKey(config, "telnyx"));
const hasEdge = isTtsProviderConfigured(config, "edge"); const hasEdge = isTtsProviderConfigured(config, "edge");
return { return {
shouldContinue: false, shouldContinue: false,
@ -160,18 +162,24 @@ export const handleTtsCommands: CommandHandler = async (params, allowTextCommand
`Primary: ${currentProvider}\n` + `Primary: ${currentProvider}\n` +
`OpenAI key: ${hasOpenAI ? "✅" : "❌"}\n` + `OpenAI key: ${hasOpenAI ? "✅" : "❌"}\n` +
`ElevenLabs key: ${hasElevenLabs ? "✅" : "❌"}\n` + `ElevenLabs key: ${hasElevenLabs ? "✅" : "❌"}\n` +
`Telnyx key: ${hasTelnyx ? "✅" : "❌"}\n` +
`Edge enabled: ${hasEdge ? "✅" : "❌"}\n` + `Edge enabled: ${hasEdge ? "✅" : "❌"}\n` +
`Usage: /tts provider openai | elevenlabs | edge`, `Usage: /tts provider openai | elevenlabs | telnyx | edge`,
}, },
}; };
} }
const requested = args.trim().toLowerCase(); const requested = args.trim().toLowerCase();
if (requested !== "openai" && requested !== "elevenlabs" && requested !== "edge") { if (
requested !== "openai" &&
requested !== "elevenlabs" &&
requested !== "telnyx" &&
requested !== "edge"
) {
return { shouldContinue: false, reply: ttsUsage() }; return { shouldContinue: false, reply: ttsUsage() };
} }
setTtsProvider(prefsPath, requested); setTtsProvider(prefsPath, requested as "openai" | "elevenlabs" | "telnyx" | "edge");
return { return {
shouldContinue: false, shouldContinue: false,
reply: { text: `✅ TTS provider set to ${requested}.` }, reply: { text: `✅ TTS provider set to ${requested}.` },