mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-06-19 08:28:10 +02:00
* fix: add language field to CartesiaTTSConfiguration and pass to TTS service Closes #432 * chore: regenerate OpenAPI spec to fix drift-check The openapi.json snapshot had drifted from the FastAPI app definition because main gained new organization endpoints (billing, credits, context) after this branch was created. Regenerate it with 'python -m scripts.dump_docs_openapi' to bring it back in sync. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: clarify Cartesia language schema --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Abhishek Kumar <abhishek@a6k.me>
77 lines
2.3 KiB
Python
77 lines
2.3 KiB
Python
from types import SimpleNamespace
|
|
from unittest.mock import patch
|
|
|
|
from api.services.configuration.registry import (
|
|
CARTESIA_TTS_MODELS,
|
|
CartesiaTTSConfiguration,
|
|
ServiceProviders,
|
|
)
|
|
from api.services.pipecat.service_factory import create_tts_service
|
|
|
|
|
|
def test_cartesia_tts_configuration_defaults_to_sonic_3_5():
|
|
config = CartesiaTTSConfiguration(api_key="test-key")
|
|
|
|
assert config.provider == ServiceProviders.CARTESIA
|
|
assert config.model == "sonic-3.5"
|
|
assert CARTESIA_TTS_MODELS == ["sonic-3.5", "sonic-3"]
|
|
|
|
|
|
def test_create_cartesia_tts_service_passes_selected_model():
|
|
user_config = SimpleNamespace(
|
|
tts=SimpleNamespace(
|
|
provider=ServiceProviders.CARTESIA.value,
|
|
api_key="test-key",
|
|
model="sonic-3.5",
|
|
voice="test-voice-id",
|
|
speed=1.0,
|
|
volume=1.0,
|
|
)
|
|
)
|
|
audio_config = SimpleNamespace(
|
|
transport_out_sample_rate=24000,
|
|
transport_in_sample_rate=16000,
|
|
)
|
|
|
|
with patch(
|
|
"api.services.pipecat.service_factory.CartesiaTTSService"
|
|
) as mock_service:
|
|
create_tts_service(user_config, audio_config)
|
|
|
|
assert mock_service.call_count == 1
|
|
kwargs = mock_service.call_args.kwargs
|
|
assert kwargs["api_key"] == "test-key"
|
|
assert kwargs["settings"].model == "sonic-3.5"
|
|
assert kwargs["settings"].voice == "test-voice-id"
|
|
|
|
|
|
def test_cartesia_tts_configuration_default_language_is_english():
|
|
config = CartesiaTTSConfiguration(api_key="test-key")
|
|
|
|
assert config.language == "en"
|
|
|
|
|
|
def test_create_cartesia_tts_service_passes_language_to_settings():
|
|
user_config = SimpleNamespace(
|
|
tts=SimpleNamespace(
|
|
provider=ServiceProviders.CARTESIA.value,
|
|
api_key="test-key",
|
|
model="sonic-3.5",
|
|
voice="test-voice-id",
|
|
speed=1.0,
|
|
volume=1.0,
|
|
language="tr",
|
|
)
|
|
)
|
|
audio_config = SimpleNamespace(
|
|
transport_out_sample_rate=24000,
|
|
transport_in_sample_rate=16000,
|
|
)
|
|
|
|
with patch(
|
|
"api.services.pipecat.service_factory.CartesiaTTSService"
|
|
) as mock_service:
|
|
create_tts_service(user_config, audio_config)
|
|
|
|
kwargs = mock_service.call_args.kwargs
|
|
assert kwargs["settings"].language == "tr"
|