- Remove sag CLI dependency - Add direct ElevenLabs API integration via fetch - Add OpenAI TTS as alternative provider - Support multi-provider configuration - Add tts.providers RPC method - Update config schema with OpenAI options - Bump version to 0.2.0 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
118 lines
2.9 KiB
JSON
118 lines
2.9 KiB
JSON
{
|
|
"id": "telegram-tts",
|
|
"uiHints": {
|
|
"enabled": {
|
|
"label": "Enable TTS",
|
|
"help": "Automatically convert text responses to voice messages"
|
|
},
|
|
"provider": {
|
|
"label": "TTS Provider",
|
|
"help": "Choose between ElevenLabs or OpenAI for voice synthesis"
|
|
},
|
|
"elevenlabs.apiKey": {
|
|
"label": "ElevenLabs API Key",
|
|
"sensitive": true
|
|
},
|
|
"elevenlabs.voiceId": {
|
|
"label": "ElevenLabs Voice ID",
|
|
"help": "Default: pMsXgVXv3BLzUgSXRplE (Borislav)"
|
|
},
|
|
"elevenlabs.modelId": {
|
|
"label": "ElevenLabs Model ID",
|
|
"help": "Default: eleven_multilingual_v2"
|
|
},
|
|
"openai.apiKey": {
|
|
"label": "OpenAI API Key",
|
|
"sensitive": true
|
|
},
|
|
"openai.model": {
|
|
"label": "OpenAI TTS Model",
|
|
"help": "tts-1 (faster) or tts-1-hd (higher quality)"
|
|
},
|
|
"openai.voice": {
|
|
"label": "OpenAI Voice",
|
|
"help": "alloy, echo, fable, onyx, nova, or shimmer"
|
|
},
|
|
"prefsPath": {
|
|
"label": "User Preferences File",
|
|
"help": "Path to JSON file storing TTS state",
|
|
"advanced": true
|
|
},
|
|
"maxTextLength": {
|
|
"label": "Max Text Length",
|
|
"help": "Maximum characters to convert to speech",
|
|
"advanced": true
|
|
},
|
|
"timeoutMs": {
|
|
"label": "Request Timeout (ms)",
|
|
"help": "Maximum time to wait for TTS API response (default: 30000)",
|
|
"advanced": true
|
|
}
|
|
},
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"provider": {
|
|
"type": "string",
|
|
"enum": ["elevenlabs", "openai"],
|
|
"default": "elevenlabs"
|
|
},
|
|
"elevenlabs": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"apiKey": {
|
|
"type": "string"
|
|
},
|
|
"voiceId": {
|
|
"type": "string",
|
|
"default": "pMsXgVXv3BLzUgSXRplE"
|
|
},
|
|
"modelId": {
|
|
"type": "string",
|
|
"default": "eleven_multilingual_v2"
|
|
}
|
|
}
|
|
},
|
|
"openai": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"apiKey": {
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"type": "string",
|
|
"enum": ["tts-1", "tts-1-hd"],
|
|
"default": "tts-1"
|
|
},
|
|
"voice": {
|
|
"type": "string",
|
|
"enum": ["alloy", "echo", "fable", "onyx", "nova", "shimmer"],
|
|
"default": "alloy"
|
|
}
|
|
}
|
|
},
|
|
"prefsPath": {
|
|
"type": "string"
|
|
},
|
|
"maxTextLength": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 4000
|
|
},
|
|
"timeoutMs": {
|
|
"type": "integer",
|
|
"minimum": 1000,
|
|
"maximum": 120000,
|
|
"default": 30000
|
|
}
|
|
}
|
|
}
|
|
}
|