






















@@ -41,10 +41,23 @@ const DEFAULT_ELEVENLABS_VOICE_SETTINGS = {
4141const ELEVENLABS_TTS_MODELS = [
4242"eleven_v3",
4343"eleven_multilingual_v2",
44+"eleven_flash_v2_5",
45+"eleven_flash_v2",
4446"eleven_turbo_v2_5",
4547"eleven_monolingual_v1",
4648] as const;
474950+function normalizeElevenLabsTtsModelId(value: string | undefined): string | undefined {
51+switch (value) {
52+case "eleven_turbo_v2_5":
53+return "eleven_flash_v2_5";
54+case "eleven_turbo_v2":
55+return "eleven_flash_v2";
56+default:
57+return value;
58+}
59+}
60+4861type ElevenLabsProviderConfig = {
4962apiKey?: string;
5063baseUrl: string;
@@ -136,7 +149,8 @@ function normalizeElevenLabsProviderConfig(
136149}),
137150baseUrl: normalizeElevenLabsBaseUrl(trimToUndefined(raw?.baseUrl)),
138151voiceId: trimToUndefined(raw?.voiceId) ?? DEFAULT_ELEVENLABS_VOICE_ID,
139-modelId: trimToUndefined(raw?.modelId) ?? DEFAULT_ELEVENLABS_MODEL_ID,
152+modelId:
153+normalizeElevenLabsTtsModelId(trimToUndefined(raw?.modelId)) ?? DEFAULT_ELEVENLABS_MODEL_ID,
140154seed: normalizeElevenLabsSeed(raw?.seed),
141155applyTextNormalization: trimToUndefined(raw?.applyTextNormalization) as
142156| "auto"
@@ -158,7 +172,7 @@ function readElevenLabsProviderConfig(config: SpeechProviderConfig): ElevenLabsP
158172apiKey: trimToUndefined(config.apiKey) ?? defaults.apiKey,
159173baseUrl: normalizeElevenLabsBaseUrl(trimToUndefined(config.baseUrl) ?? defaults.baseUrl),
160174voiceId: trimToUndefined(config.voiceId) ?? defaults.voiceId,
161-modelId: trimToUndefined(config.modelId) ?? defaults.modelId,
175+modelId: normalizeElevenLabsTtsModelId(trimToUndefined(config.modelId)) ?? defaults.modelId,
162176seed: normalizeElevenLabsSeed(config.seed) ?? defaults.seed,
163177applyTextNormalization:
164178(trimToUndefined(config.applyTextNormalization) as "auto" | "on" | "off" | undefined) ??
@@ -222,7 +236,7 @@ function parseDirectiveToken(ctx: SpeechDirectiveTokenParseContext) {
222236}
223237return {
224238handled: true,
225-overrides: { ...ctx.currentOverrides, modelId: ctx.value },
239+overrides: { ...ctx.currentOverrides, modelId: normalizeElevenLabsTtsModelId(ctx.value) },
226240};
227241case "stability": {
228242if (!ctx.policy.allowVoiceSettings) {
@@ -407,7 +421,9 @@ export function buildElevenLabsSpeechProvider(): SpeechProviderPlugin {
407421 : { voiceId: trimToUndefined(talkProviderConfig.voiceId) }),
408422 ...(trimToUndefined(talkProviderConfig.modelId) == null
409423 ? {}
410- : { modelId: trimToUndefined(talkProviderConfig.modelId) }),
424+ : {
425+modelId: normalizeElevenLabsTtsModelId(trimToUndefined(talkProviderConfig.modelId)),
426+}),
411427 ...(normalizeElevenLabsSeed(talkProviderConfig.seed) == null
412428 ? {}
413429 : { seed: normalizeElevenLabsSeed(talkProviderConfig.seed) }),
@@ -456,7 +472,7 @@ export function buildElevenLabsSpeechProvider(): SpeechProviderPlugin {
456472 : { voiceId: trimToUndefined(params.voiceId) }),
457473 ...(trimToUndefined(params.modelId) == null
458474 ? {}
459- : { modelId: trimToUndefined(params.modelId) }),
475+ : { modelId: normalizeElevenLabsTtsModelId(trimToUndefined(params.modelId)) }),
460476 ...(trimToUndefined(params.outputFormat) == null
461477 ? {}
462478 : { outputFormat: trimToUndefined(params.outputFormat) }),
@@ -511,7 +527,8 @@ export function buildElevenLabsSpeechProvider(): SpeechProviderPlugin {
511527 apiKey,
512528baseUrl: config.baseUrl,
513529voiceId: trimToUndefined(overrides.voiceId) ?? config.voiceId,
514-modelId: trimToUndefined(overrides.modelId) ?? config.modelId,
530+modelId:
531+normalizeElevenLabsTtsModelId(trimToUndefined(overrides.modelId)) ?? config.modelId,
515532 outputFormat,
516533seed: normalizeElevenLabsSeed(overrides.seed) ?? config.seed,
517534applyTextNormalization:
@@ -549,7 +566,8 @@ export function buildElevenLabsSpeechProvider(): SpeechProviderPlugin {
549566 apiKey,
550567baseUrl: config.baseUrl,
551568voiceId: trimToUndefined(overrides.voiceId) ?? config.voiceId,
552-modelId: trimToUndefined(overrides.modelId) ?? config.modelId,
569+modelId:
570+normalizeElevenLabsTtsModelId(trimToUndefined(overrides.modelId)) ?? config.modelId,
553571 outputFormat,
554572seed: normalizeElevenLabsSeed(overrides.seed) ?? config.seed,
555573applyTextNormalization:
@@ -586,7 +604,8 @@ export function buildElevenLabsSpeechProvider(): SpeechProviderPlugin {
586604 apiKey,
587605baseUrl: config.baseUrl,
588606voiceId: trimToUndefined(overrides.voiceId) ?? config.voiceId,
589-modelId: trimToUndefined(overrides.modelId) ?? config.modelId,
607+modelId:
608+normalizeElevenLabsTtsModelId(trimToUndefined(overrides.modelId)) ?? config.modelId,
590609 outputFormat,
591610seed: normalizeElevenLabsSeed(overrides.seed) ?? config.seed,
592611applyTextNormalization:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。