mirror of
https://github.com/enricoros/big-AGI.git
synced 2026-05-10 21:50:14 -07:00
Use ElevenLabs only if configured
This commit is contained in:
@@ -12,7 +12,7 @@ import { Section } from '@/common/components/Section';
|
||||
import { settingsGap } from '@/common/theme';
|
||||
import { useSettingsStore } from '@/common/state/store-settings';
|
||||
|
||||
import { isValidElevenLabsApiKey, requireUserKeyElevenLabs, useElevenLabsVoices } from './elevenlabs.client';
|
||||
import { isElevenLabsEnabled, requireUserKeyElevenLabs, useElevenLabsVoices } from './elevenlabs.client';
|
||||
|
||||
|
||||
export function ElevenlabsSettings() {
|
||||
@@ -27,7 +27,7 @@ export function ElevenlabsSettings() {
|
||||
}), shallow);
|
||||
|
||||
const requiresKey = requireUserKeyElevenLabs;
|
||||
const isValidKey = apiKey ? isValidElevenLabsApiKey(apiKey) : !requiresKey;
|
||||
const isValidKey = isElevenLabsEnabled(apiKey);
|
||||
|
||||
const { voicesData, loadingVoices } = useElevenLabsVoices(apiKey, isValidKey);
|
||||
|
||||
|
||||
@@ -7,11 +7,15 @@ export const requireUserKeyElevenLabs = !process.env.HAS_SERVER_KEY_ELEVENLABS;
|
||||
|
||||
export const isValidElevenLabsApiKey = (apiKey?: string) => !!apiKey && apiKey.trim()?.length >= 32;
|
||||
|
||||
export const isElevenLabsEnabled = (apiKey?: string) => apiKey ? isValidElevenLabsApiKey(apiKey) : !requireUserKeyElevenLabs;
|
||||
|
||||
|
||||
export async function speakText(text: string) {
|
||||
if (!(text?.trim())) return;
|
||||
|
||||
const { elevenLabsApiKey, elevenLabsVoiceId, preferredLanguage } = useSettingsStore.getState();
|
||||
if (!isElevenLabsEnabled(elevenLabsApiKey)) return;
|
||||
|
||||
try {
|
||||
// NOTE: hardcoded 1000 as a failsafe, since the API will take very long and consume lots of credits for longer texts
|
||||
const nonEnglish = !(preferredLanguage.toLowerCase().startsWith('en'));
|
||||
|
||||
Reference in New Issue
Block a user