feat: default TTS model overrides on (#1559) (thanks @Glucksberg)
Co-authored-by: Glucksberg <80581902+Glucksberg@users.noreply.github.com>
This commit is contained in:
@@ -2,6 +2,25 @@ export type TtsProvider = "elevenlabs" | "openai";
|
||||
|
||||
export type TtsMode = "final" | "all";
|
||||
|
||||
export type TtsModelOverrideConfig = {
|
||||
/** Enable model-provided overrides for TTS. */
|
||||
enabled?: boolean;
|
||||
/** Allow model-provided TTS text blocks. */
|
||||
allowText?: boolean;
|
||||
/** Allow model-provided provider override. */
|
||||
allowProvider?: boolean;
|
||||
/** Allow model-provided voice/voiceId override. */
|
||||
allowVoice?: boolean;
|
||||
/** Allow model-provided modelId override. */
|
||||
allowModelId?: boolean;
|
||||
/** Allow model-provided voice settings override. */
|
||||
allowVoiceSettings?: boolean;
|
||||
/** Allow model-provided normalization or language overrides. */
|
||||
allowNormalization?: boolean;
|
||||
/** Allow model-provided seed override. */
|
||||
allowSeed?: boolean;
|
||||
};
|
||||
|
||||
export type TtsConfig = {
|
||||
/** Enable auto-TTS (can be overridden by local prefs). */
|
||||
enabled?: boolean;
|
||||
@@ -9,11 +28,26 @@ export type TtsConfig = {
|
||||
mode?: TtsMode;
|
||||
/** Primary TTS provider (fallbacks are automatic). */
|
||||
provider?: TtsProvider;
|
||||
/** Optional model override for TTS auto-summary (provider/model or alias). */
|
||||
summaryModel?: string;
|
||||
/** Allow the model to override TTS parameters. */
|
||||
modelOverrides?: TtsModelOverrideConfig;
|
||||
/** ElevenLabs configuration. */
|
||||
elevenlabs?: {
|
||||
apiKey?: string;
|
||||
baseUrl?: string;
|
||||
voiceId?: string;
|
||||
modelId?: string;
|
||||
seed?: number;
|
||||
applyTextNormalization?: "auto" | "on" | "off";
|
||||
languageCode?: string;
|
||||
voiceSettings?: {
|
||||
stability?: number;
|
||||
similarityBoost?: number;
|
||||
style?: number;
|
||||
useSpeakerBoost?: boolean;
|
||||
speed?: number;
|
||||
};
|
||||
};
|
||||
/** OpenAI configuration. */
|
||||
openai?: {
|
||||
|
||||
@@ -162,11 +162,39 @@ export const TtsConfigSchema = z
|
||||
enabled: z.boolean().optional(),
|
||||
mode: TtsModeSchema.optional(),
|
||||
provider: TtsProviderSchema.optional(),
|
||||
summaryModel: z.string().optional(),
|
||||
modelOverrides: z
|
||||
.object({
|
||||
enabled: z.boolean().optional(),
|
||||
allowText: z.boolean().optional(),
|
||||
allowProvider: z.boolean().optional(),
|
||||
allowVoice: z.boolean().optional(),
|
||||
allowModelId: z.boolean().optional(),
|
||||
allowVoiceSettings: z.boolean().optional(),
|
||||
allowNormalization: z.boolean().optional(),
|
||||
allowSeed: z.boolean().optional(),
|
||||
})
|
||||
.strict()
|
||||
.optional(),
|
||||
elevenlabs: z
|
||||
.object({
|
||||
apiKey: z.string().optional(),
|
||||
baseUrl: z.string().optional(),
|
||||
voiceId: z.string().optional(),
|
||||
modelId: z.string().optional(),
|
||||
seed: z.number().int().min(0).max(4294967295).optional(),
|
||||
applyTextNormalization: z.enum(["auto", "on", "off"]).optional(),
|
||||
languageCode: z.string().optional(),
|
||||
voiceSettings: z
|
||||
.object({
|
||||
stability: z.number().min(0).max(1).optional(),
|
||||
similarityBoost: z.number().min(0).max(1).optional(),
|
||||
style: z.number().min(0).max(1).optional(),
|
||||
useSpeakerBoost: z.boolean().optional(),
|
||||
speed: z.number().min(0.5).max(2).optional(),
|
||||
})
|
||||
.strict()
|
||||
.optional(),
|
||||
})
|
||||
.strict()
|
||||
.optional(),
|
||||
|
||||
Reference in New Issue
Block a user