From e934211170ac1d5cc84f227ded569d70dedf321e Mon Sep 17 00:00:00 2001 From: gnuduncan Date: Tue, 31 Mar 2026 10:13:08 +0200 Subject: [PATCH] fix(minimax): use global TTS endpoint default and add missing Talk Mode overrides Switch DEFAULT_MINIMAX_TTS_BASE_URL from api.minimaxi.com (CN) to api.minimax.io (global) so international API keys work out of the box. Add vol and pitch to resolveTalkOverrides for parity with resolveTalkConfig. Co-Authored-By: Claude Opus 4.6 (1M context) --- docs/tools/tts.md | 4 ++-- extensions/minimax/speech-provider.test.ts | 2 +- extensions/minimax/speech-provider.ts | 2 ++ extensions/minimax/tts.ts | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/tools/tts.md b/docs/tools/tts.md index 85355c4f0b9..d2678b0702a 100644 --- a/docs/tools/tts.md +++ b/docs/tools/tts.md @@ -157,7 +157,7 @@ Full schema is in [Gateway configuration](/gateway/configuration). providers: { minimax: { apiKey: "minimax_api_key", - baseUrl: "https://api.minimaxi.com", + baseUrl: "https://api.minimax.io", model: "speech-2.8-hd", voiceId: "English_expressive_narrator", speed: 1.0, @@ -262,7 +262,7 @@ Then run: - `providers.elevenlabs.applyTextNormalization`: `auto|on|off` - `providers.elevenlabs.languageCode`: 2-letter ISO 639-1 (e.g. `en`, `de`) - `providers.elevenlabs.seed`: integer `0..4294967295` (best-effort determinism) -- `providers.minimax.baseUrl`: override MiniMax API base URL (default `https://api.minimaxi.com`, env: `MINIMAX_API_HOST`). +- `providers.minimax.baseUrl`: override MiniMax API base URL (default `https://api.minimax.io`, env: `MINIMAX_API_HOST`). - `providers.minimax.model`: TTS model (default `speech-2.8-hd`, env: `MINIMAX_TTS_MODEL`). - `providers.minimax.voiceId`: voice identifier (default `English_expressive_narrator`, env: `MINIMAX_TTS_VOICE_ID`). - `providers.minimax.speed`: playback speed `0.5..2.0` (default 1.0). diff --git a/extensions/minimax/speech-provider.test.ts b/extensions/minimax/speech-provider.test.ts index 4612f22edee..f0a4bfda3ae 100644 --- a/extensions/minimax/speech-provider.test.ts +++ b/extensions/minimax/speech-provider.test.ts @@ -56,7 +56,7 @@ describe("buildMinimaxSpeechProvider", () => { delete process.env.MINIMAX_TTS_MODEL; delete process.env.MINIMAX_TTS_VOICE_ID; const config = provider.resolveConfig!({ rawConfig: {}, cfg: {} as never, timeoutMs: 30000 }); - expect(config.baseUrl).toBe("https://api.minimaxi.com"); + expect(config.baseUrl).toBe("https://api.minimax.io"); expect(config.model).toBe("speech-2.8-hd"); expect(config.voiceId).toBe("English_expressive_narrator"); }); diff --git a/extensions/minimax/speech-provider.ts b/extensions/minimax/speech-provider.ts index 58723744bb4..475f460f822 100644 --- a/extensions/minimax/speech-provider.ts +++ b/extensions/minimax/speech-provider.ts @@ -212,6 +212,8 @@ export function buildMinimaxSpeechProvider(): SpeechProviderPlugin { ? {} : { model: trimToUndefined(params.modelId) }), ...(asNumber(params.speed) == null ? {} : { speed: asNumber(params.speed) }), + ...(asNumber(params.vol) == null ? {} : { vol: asNumber(params.vol) }), + ...(asNumber(params.pitch) == null ? {} : { pitch: asNumber(params.pitch) }), }), listVoices: async () => MINIMAX_TTS_VOICES.map((voice) => ({ id: voice, name: voice })), isConfigured: ({ providerConfig }) => diff --git a/extensions/minimax/tts.ts b/extensions/minimax/tts.ts index bbf609438cc..cd749638a40 100644 --- a/extensions/minimax/tts.ts +++ b/extensions/minimax/tts.ts @@ -1,4 +1,4 @@ -export const DEFAULT_MINIMAX_TTS_BASE_URL = "https://api.minimaxi.com"; +export const DEFAULT_MINIMAX_TTS_BASE_URL = "https://api.minimax.io"; export const MINIMAX_TTS_MODELS = ["speech-2.8-hd", "speech-01-240228"] as const;