



















@@ -1,54 +1,12 @@
11import {
2-asObject,
2+assertOkOrThrowProviderError,
33normalizeApplyTextNormalization,
44normalizeLanguageCode,
55normalizeSeed,
6-readResponseTextLimited,
76requireInRange,
8-trimToUndefined,
9-truncateErrorDetail,
107} from "openclaw/plugin-sdk/speech";
118import { isValidElevenLabsVoiceId, normalizeElevenLabsBaseUrl } from "./shared.js";
12913-function formatElevenLabsErrorPayload(payload: unknown): string | undefined {
14-const root = asObject(payload);
15-if (!root) {
16-return undefined;
17-}
18-const detailObject = asObject(root.detail);
19-const message =
20-trimToUndefined(root.message) ??
21-trimToUndefined(detailObject?.message) ??
22-trimToUndefined(detailObject?.detail) ??
23-trimToUndefined(root.error);
24-const code =
25-trimToUndefined(root.code) ??
26-trimToUndefined(detailObject?.code) ??
27-trimToUndefined(detailObject?.status);
28-if (message && code) {
29-return `${truncateErrorDetail(message)} [code=${code}]`;
30-}
31-if (message) {
32-return truncateErrorDetail(message);
33-}
34-if (code) {
35-return `[code=${code}]`;
36-}
37-return undefined;
38-}
39-40-async function extractElevenLabsErrorDetail(response: Response): Promise<string | undefined> {
41-const rawBody = trimToUndefined(await readResponseTextLimited(response));
42-if (!rawBody) {
43-return undefined;
44-}
45-try {
46-return formatElevenLabsErrorPayload(JSON.parse(rawBody)) ?? truncateErrorDetail(rawBody);
47-} catch {
48-return truncateErrorDetail(rawBody);
49-}
50-}
51-5210function assertElevenLabsVoiceSettings(settings: {
5311stability: number;
5412similarityBoost: number;
@@ -138,17 +96,7 @@ export async function elevenLabsTTS(params: {
13896signal: controller.signal,
13997});
14098141-if (!response.ok) {
142-const detail = await extractElevenLabsErrorDetail(response);
143-const requestId =
144-trimToUndefined(response.headers.get("x-request-id")) ??
145-trimToUndefined(response.headers.get("request-id"));
146-throw new Error(
147-`ElevenLabs API error (${response.status})` +
148-(detail ? `: ${detail}` : "") +
149-(requestId ? ` [request_id=${requestId}]` : ""),
150-);
151-}
99+await assertOkOrThrowProviderError(response, "ElevenLabs API error");
152100153101return Buffer.from(await response.arrayBuffer());
154102} finally {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。