| const { TTSProviders } = require('librechat-data-provider'); |
| const { getAppConfig } = require('~/server/services/Config'); |
| const { getProvider } = require('./TTSService'); |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| async function getVoices(req, res) { |
| try { |
| const appConfig = |
| req.config ?? |
| (await getAppConfig({ |
| role: req.user?.role, |
| })); |
|
|
| const ttsSchema = appConfig?.speech?.tts; |
| if (!ttsSchema) { |
| throw new Error('Configuration or TTS schema is missing'); |
| } |
|
|
| const provider = await getProvider(appConfig); |
| let voices; |
|
|
| switch (provider) { |
| case TTSProviders.OPENAI: |
| voices = ttsSchema.openai?.voices; |
| break; |
| case TTSProviders.AZURE_OPENAI: |
| voices = ttsSchema.azureOpenAI?.voices; |
| break; |
| case TTSProviders.ELEVENLABS: |
| voices = ttsSchema.elevenlabs?.voices; |
| break; |
| case TTSProviders.LOCALAI: |
| voices = ttsSchema.localai?.voices; |
| break; |
| default: |
| throw new Error('Invalid provider'); |
| } |
|
|
| res.json(voices); |
| } catch (error) { |
| res.status(500).json({ error: `Failed to get voices: ${error.message}` }); |
| } |
| } |
|
|
| module.exports = getVoices; |
|
|