mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-18 04:41:56 +00:00
fix(tts): align MiniMax TTS defaults with current API and add GroupId support
Follow-up on @pty819's t2a_v2 endpoint fix: - Default model: speech-02 -> speech-02-hd (bare 'speech-02' is not in the supported enum; t2a_v2 rejects it with 400). Official enum: speech-01-hd, speech-01-turbo, speech-02-hd, speech-02-turbo, speech-2.6-hd/turbo, speech-2.8-hd/turbo. - Default voice: female-shaonv -> English_expressive_narrator. The legacy speech-01-series short ID doesn't resolve cleanly on the speech-02+ models that are now the default. - Default base URL: api.minimaxi.com -> api.minimax.io (matches the canonical host in the published docs; api-uw.minimax.io is the reduced-latency alt). - Add GroupId support via tts.minimax.group_id config or MINIMAX_GROUP_ID env var. Some MiniMax accounts scope TTS requests by group; without it, requests 401. Only appended when not already in the user's base_url. Tests rewritten to cover both the default t2a_v2 path (hex-encoded audio in JSON, nested voice_setting/audio_setting) and the legacy text_to_speech path (raw audio bytes, flat payload). Adds coverage for GroupId config/env wiring and error surfacing. Also adds AUTHOR_MAP entry for pty819's GitHub-noreply email.
This commit is contained in:
parent
c875c0dc11
commit
7f08cb5941
3 changed files with 128 additions and 21 deletions
|
|
@ -159,9 +159,9 @@ DEFAULT_KITTENTTS_VOICE = "Jasper"
|
|||
DEFAULT_PIPER_VOICE = "en_US-lessac-medium" # balanced size/quality
|
||||
DEFAULT_OPENAI_VOICE = "alloy"
|
||||
DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1"
|
||||
DEFAULT_MINIMAX_MODEL = "speech-02"
|
||||
DEFAULT_MINIMAX_VOICE_ID = "female-shaonv"
|
||||
DEFAULT_MINIMAX_BASE_URL = "https://api.minimaxi.com/v1/t2a_v2"
|
||||
DEFAULT_MINIMAX_MODEL = "speech-02-hd"
|
||||
DEFAULT_MINIMAX_VOICE_ID = "English_expressive_narrator"
|
||||
DEFAULT_MINIMAX_BASE_URL = "https://api.minimax.io/v1/t2a_v2"
|
||||
DEFAULT_MISTRAL_TTS_MODEL = "voxtral-mini-tts-2603"
|
||||
DEFAULT_MISTRAL_TTS_VOICE_ID = "c69964a6-ab8b-4f8a-9465-ec0925096ec8" # Paul - Neutral
|
||||
DEFAULT_XAI_VOICE_ID = "eve"
|
||||
|
|
@ -991,6 +991,18 @@ def _generate_minimax_tts(text: str, output_path: str, tts_config: Dict[str, Any
|
|||
sample_rate = mm_config.get("sample_rate", 32000)
|
||||
bitrate = mm_config.get("bitrate", 128000)
|
||||
|
||||
# MiniMax accounts scope TTS requests by GroupId. When present, the docs
|
||||
# show it as a ?GroupId=<id> query param on the t2a_v2 URL. Accept it
|
||||
# from config or from the MINIMAX_GROUP_ID env var; only attach when the
|
||||
# URL doesn't already carry one.
|
||||
group_id = (
|
||||
str(mm_config.get("group_id") or "").strip()
|
||||
or (get_env_value("MINIMAX_GROUP_ID") or "").strip()
|
||||
)
|
||||
if group_id and "GroupId=" not in base_url:
|
||||
sep = "&" if "?" in base_url else "?"
|
||||
base_url = f"{base_url}{sep}GroupId={group_id}"
|
||||
|
||||
headers = {
|
||||
"Content-Type": "application/json",
|
||||
"Authorization": f"Bearer {api_key}",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue