
























@@ -123,6 +123,8 @@ export type TtsSynthesisResult = {
123123error?: string;
124124latencyMs?: number;
125125provider?: string;
126+providerModel?: string;
127+providerVoice?: string;
126128persona?: string;
127129fallbackFrom?: string;
128130attemptedProviders?: string[];
@@ -139,6 +141,8 @@ export type TtsTelephonyResult = {
139141error?: string;
140142latencyMs?: number;
141143provider?: string;
144+providerModel?: string;
145+providerVoice?: string;
142146persona?: string;
143147fallbackFrom?: string;
144148attemptedProviders?: string[];
@@ -1064,6 +1068,36 @@ function resolveTtsRequestSetup(params: {
10641068};
10651069}
106610701071+function readTtsResultString(value: unknown): string | undefined {
1072+return typeof value === "string" && value.trim() ? value.trim() : undefined;
1073+}
1074+1075+function resolveTtsResultModel(
1076+providerConfig: SpeechProviderConfig,
1077+providerOverrides?: SpeechProviderOverrides,
1078+): string | undefined {
1079+return (
1080+readTtsResultString(providerOverrides?.modelId) ??
1081+readTtsResultString(providerOverrides?.model) ??
1082+readTtsResultString(providerConfig.modelId) ??
1083+readTtsResultString(providerConfig.model)
1084+);
1085+}
1086+1087+function resolveTtsResultVoice(
1088+providerConfig: SpeechProviderConfig,
1089+providerOverrides?: SpeechProviderOverrides,
1090+): string | undefined {
1091+return (
1092+readTtsResultString(providerOverrides?.voiceId) ??
1093+readTtsResultString(providerOverrides?.voiceName) ??
1094+readTtsResultString(providerOverrides?.voice) ??
1095+readTtsResultString(providerConfig.voiceId) ??
1096+readTtsResultString(providerConfig.voiceName) ??
1097+readTtsResultString(providerConfig.voice)
1098+);
1099+}
1100+10671101export async function textToSpeech(params: {
10681102text: string;
10691103cfg: OpenClawConfig;
@@ -1271,6 +1305,8 @@ export async function synthesizeSpeech(params: {
12711305audioBuffer: synthesis.audioBuffer,
12721306 latencyMs,
12731307 provider,
1308+providerModel: resolveTtsResultModel(prepared.providerConfig, prepared.providerOverrides),
1309+providerVoice: resolveTtsResultVoice(prepared.providerConfig, prepared.providerOverrides),
12741310persona: persona?.id,
12751311fallbackFrom: provider !== primaryProvider ? primaryProvider : undefined,
12761312 attemptedProviders,
@@ -1401,6 +1437,8 @@ export async function textToSpeechTelephony(params: {
14011437audioBuffer: synthesis.audioBuffer,
14021438 latencyMs,
14031439 provider,
1440+providerModel: resolveTtsResultModel(prepared.providerConfig, prepared.providerOverrides),
1441+providerVoice: resolveTtsResultVoice(prepared.providerConfig, prepared.providerOverrides),
14041442persona: persona?.id,
14051443fallbackFrom: provider !== primaryProvider ? primaryProvider : undefined,
14061444 attemptedProviders,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。