From 2f8ce2ccab8bc8154478a78de2791043a5278cf3 Mon Sep 17 00:00:00 2001 From: Cale Smith Date: Thu, 6 Aug 2026 08:26:01 -0700 Subject: [PATCH] Fix Murf integration serving Gen2 instead of falcon-2 Murf's us-east host ignores the model param and always serves Gen2, so the provider now uses the global endpoint with the recommended Amara/Gordon voice pool. --- runner/src/coval_bench/providers/tts/murf.py | 2 +- runner/src/coval_bench/registries/models.py | 4 ++-- runner/tests/providers/tts/test_murf.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/runner/src/coval_bench/providers/tts/murf.py b/runner/src/coval_bench/providers/tts/murf.py index 677b39a0..b257ce53 100644 --- a/runner/src/coval_bench/providers/tts/murf.py +++ b/runner/src/coval_bench/providers/tts/murf.py @@ -21,7 +21,7 @@ logger: structlog.BoundLogger = structlog.get_logger(__name__) _VALID_MODELS = ("falcon-2",) -_WS_URL = "wss://us-east.api.murf.ai/v1/speech/stream-input" +_WS_URL = "wss://global.api.murf.ai/v1/speech/stream-input" _SAMPLE_RATE = 24000 diff --git a/runner/src/coval_bench/registries/models.py b/runner/src/coval_bench/registries/models.py index c4ac9ab2..a10be442 100644 --- a/runner/src/coval_bench/registries/models.py +++ b/runner/src/coval_bench/registries/models.py @@ -811,8 +811,8 @@ class RegisteredModel(BaseModel, frozen=True, extra="forbid"): benchmark=_TTS, provider="murf", model="falcon-2", - voice="Natalie", - voices=("Natalie", "Gordon"), + voice="Amara", + voices=("Amara", "Gordon"), tags=(_STREAMING, _MULTI, _STREAM), status=_EARLY_ACCESS, arena_enabled=False, diff --git a/runner/tests/providers/tts/test_murf.py b/runner/tests/providers/tts/test_murf.py index d5108355..d965cc14 100644 --- a/runner/tests/providers/tts/test_murf.py +++ b/runner/tests/providers/tts/test_murf.py @@ -17,7 +17,7 @@ from .conftest import FakeWebSocket, make_pcm_bytes -_VOICE = "Natalie" +_VOICE = "Amara" def _settings() -> Settings: @@ -84,7 +84,7 @@ def connect_side_effect(url: str, **kwargs: object) -> FakeWebSocket: assert result.error is None parts = urlsplit(captured["url"]) assert parts.scheme == "wss" - assert parts.netloc == "us-east.api.murf.ai" + assert parts.netloc == "global.api.murf.ai" assert parts.path == "/v1/speech/stream-input" assert parse_qs(parts.query) == { "api-key": ["test-murf-key"],