use parent _settings dict instead of self._params pattern

This commit is contained in:
Mike Seese
2026-01-05 11:15:43 -08:00
parent e77bdf66f9
commit 67fdb0b659
2 changed files with 30 additions and 13 deletions

View File

@@ -70,7 +70,16 @@ class HathoraSTTService(SegmentedSTTService):
)
self._model = model
self._api_key = api_key or os.getenv("HATHORA_API_KEY")
self._params = params or HathoraSTTService.InputParams()
self._base_url = params.base_url
params = params or HathoraSTTService.InputParams()
self._settings = {
"language": params.language,
"model_config": params.model_config,
}
self.set_model_name(model)
def can_generate_metrics(self) -> bool:
"""Check if this service can generate processing metrics.
@@ -100,17 +109,17 @@ class HathoraSTTService(SegmentedSTTService):
await self.start_processing_metrics()
await self.start_ttfb_metrics()
url = f"{self._params.base_url}"
url = f"{self._base_url}"
payload = {
"model": self._model,
}
if self._params.language is not None:
payload["language"] = self._params.language
if self._params.model_config is not None:
if self._settings["language"] is not None:
payload["language"] = self._settings["language"]
if self._settings["model_config"] is not None:
payload["model_config"] = [
{"name": option.name, "value": option.value} for option in self._params.model_config
{"name": option.name, "value": option.value} for option in self._settings["model_config"]
]
base64_audio = base64.b64encode(audio).decode("utf-8")
@@ -129,7 +138,7 @@ class HathoraSTTService(SegmentedSTTService):
if text: # Only yield non-empty text
# Hathora's API currently doesn't return language info
# so we default to the requested language or "en"
response_language = self._language or "en"
response_language = self._settings["language"] or "en"
await self._handle_transcription(text, True, response_language)
yield TranscriptionFrame(
text,

View File

@@ -91,8 +91,16 @@ class HathoraTTSService(TTSService):
)
self._model = model
self._api_key = api_key or os.getenv("HATHORA_API_KEY")
self._params = params or HathoraTTSService.InputParams()
self._base_url = params.base_url
params = params or HathoraTTSService.InputParams()
self._settings = {
"speed": params.speed,
"model_config": params.model_config,
}
self.set_model_name(model)
self.set_voice(voice_id)
def can_generate_metrics(self) -> bool:
@@ -117,17 +125,17 @@ class HathoraTTSService(TTSService):
await self.start_processing_metrics()
await self.start_ttfb_metrics()
url = f"{self._params.base_url}"
url = f"{self.base_url}"
payload = {"model": self._model, "text": text}
if self._voice_id is not None:
payload["voice"] = self._voice_id
if self._params.speed is not None:
payload["speed"] = self._params.speed
if self._params.model_config is not None:
if self._settings["speed"] is not None:
payload["speed"] = self._settings["speed"]
if self._settings["model_config"] is not None:
payload["model_config"] = [
{"name": option.name, "value": option.value} for option in self._params.model_config
{"name": option.name, "value": option.value} for option in self._settings["model_config"]
]
yield TTSStartedFrame()