diff --git a/src/lang/en.ts b/src/lang/en.ts
index fd3b9f89..1d47e3ad 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -241,5 +241,6 @@ export const languageEnglish = {
useGlobalSettings: "Use Global Settings",
recursiveScanning: "Recursive Scanning",
creator: "Creator",
- CharVersion: "Character Version"
+ CharVersion: "Character Version",
+ Speech: "Speech"
}
diff --git a/src/lib/SideBars/CharConfig.svelte b/src/lib/SideBars/CharConfig.svelte
index 1169bef8..489aaca0 100644
--- a/src/lib/SideBars/CharConfig.svelte
+++ b/src/lib/SideBars/CharConfig.svelte
@@ -3,7 +3,7 @@
import { tokenize } from "../../ts/tokenizer";
import { DataBase, type Database, type character, type groupChat } from "../../ts/database";
import { selectedCharID } from "../../ts/stores";
- import { PlusIcon, SmileIcon, TrashIcon, UserIcon, ActivityIcon, BookIcon, LoaderIcon, User, DnaIcon, CurlyBracesIcon } from 'lucide-svelte'
+ import { PlusIcon, SmileIcon, TrashIcon, UserIcon, ActivityIcon, BookIcon, LoaderIcon, User, DnaIcon, CurlyBracesIcon, Volume2Icon } from 'lucide-svelte'
import Check from "../Others/Check.svelte";
import { addCharEmotion, addingEmotion, getCharImage, rmCharEmotion, selectCharImg, makeGroupImage } from "../../ts/characters";
import LoreBook from "./LoreBookSetting.svelte";
@@ -15,6 +15,7 @@
import Help from "../Others/Help.svelte";
import RegexData from "./RegexData.svelte";
import { exportChar } from "src/ts/characterCards";
+ import { getElevenTTSVoices, getWebSpeechTTSVoices } from "src/ts/process/tts";
let subMenu = 0
let subberMenu = 0
@@ -157,6 +158,9 @@
{#if currentChar.type === 'character'}
+
@@ -445,6 +449,49 @@
}
}}>
{/if}
+{:else if subMenu === 5}
+ {#if currentChar.type === 'character'}
+
TTS
+ {language.provider}
+
+
+
+ {#if currentChar.data.ttsMode === 'webspeech'}
+ {#if !speechSynthesis}
+ Web Speech isn't supported in your browser or OS
+ {:else}
+ {language.Speech}
+
+ {#if currentChar.data.ttsSpeech !== ''}
+ If you do not set it to Auto, it may not work properly when importing from another OS or browser.
+ {/if}
+ {/if}
+ {:else if currentChar.data.ttsMode === 'elevenlab'}
+ Please set the ElevenLabs API key in "global Settings → Bot Settings → Others → ElevenLabs API key"
+ {#await getElevenTTSVoices() then voices}
+ {language.Speech}
+
+ {/await}
+ {/if}
+ {/if}
{:else if subMenu === 2}