openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
44 lines (43 loc) • 1.6 kB
JavaScript
import { n as asObject } from "./provider-http-errors-DqaqQLLZ.js";
import { t as createOpenAiCompatibleSpeechProvider } from "./speech-DeKvI3F1.js";
import { t as OPENROUTER_BASE_URL } from "./provider-catalog-Dya4CIwt.js";
//#region extensions/openrouter/speech-provider.ts
const DEFAULT_OPENROUTER_TTS_MODEL = "hexgrad/kokoro-82m";
const DEFAULT_OPENROUTER_TTS_VOICE = "af_alloy";
const OPENROUTER_TTS_MODELS = [
DEFAULT_OPENROUTER_TTS_MODEL,
"google/gemini-3.1-flash-tts-preview",
"mistralai/voxtral-mini-tts-2603",
"elevenlabs/eleven-turbo-v2"
];
const OPENROUTER_TTS_RESPONSE_FORMATS = ["mp3", "pcm"];
function buildOpenRouterSpeechProvider() {
return createOpenAiCompatibleSpeechProvider({
id: "openrouter",
label: "OpenRouter",
autoSelectOrder: 35,
models: OPENROUTER_TTS_MODELS,
voices: [DEFAULT_OPENROUTER_TTS_VOICE],
defaultModel: DEFAULT_OPENROUTER_TTS_MODEL,
defaultVoice: DEFAULT_OPENROUTER_TTS_VOICE,
defaultBaseUrl: OPENROUTER_BASE_URL,
envKey: "OPENROUTER_API_KEY",
responseFormats: OPENROUTER_TTS_RESPONSE_FORMATS,
defaultResponseFormat: "mp3",
voiceCompatibleResponseFormats: ["mp3"],
baseUrlPolicy: {
kind: "canonical",
aliases: ["https://openrouter.ai/v1"]
},
extraHeaders: {
"HTTP-Referer": "https://openclaw.ai",
"X-OpenRouter-Title": "OpenClaw"
},
apiErrorLabel: "OpenRouter TTS API error",
missingApiKeyError: "OpenRouter API key missing",
readExtraConfig: (raw) => ({ provider: asObject(raw?.provider) }),
extraJsonBodyFields: [{ configKey: "provider" }]
});
}
//#endregion
export { buildOpenRouterSpeechProvider as t };