use parent _settings dict instead of self._params pattern
This commit is contained in:
@@ -70,7 +70,16 @@ class HathoraSTTService(SegmentedSTTService):
|
|||||||
)
|
)
|
||||||
self._model = model
|
self._model = model
|
||||||
self._api_key = api_key or os.getenv("HATHORA_API_KEY")
|
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:
|
def can_generate_metrics(self) -> bool:
|
||||||
"""Check if this service can generate processing metrics.
|
"""Check if this service can generate processing metrics.
|
||||||
@@ -100,17 +109,17 @@ class HathoraSTTService(SegmentedSTTService):
|
|||||||
await self.start_processing_metrics()
|
await self.start_processing_metrics()
|
||||||
await self.start_ttfb_metrics()
|
await self.start_ttfb_metrics()
|
||||||
|
|
||||||
url = f"{self._params.base_url}"
|
url = f"{self._base_url}"
|
||||||
|
|
||||||
payload = {
|
payload = {
|
||||||
"model": self._model,
|
"model": self._model,
|
||||||
}
|
}
|
||||||
|
|
||||||
if self._params.language is not None:
|
if self._settings["language"] is not None:
|
||||||
payload["language"] = self._params.language
|
payload["language"] = self._settings["language"]
|
||||||
if self._params.model_config is not None:
|
if self._settings["model_config"] is not None:
|
||||||
payload["model_config"] = [
|
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")
|
base64_audio = base64.b64encode(audio).decode("utf-8")
|
||||||
@@ -129,7 +138,7 @@ class HathoraSTTService(SegmentedSTTService):
|
|||||||
if text: # Only yield non-empty text
|
if text: # Only yield non-empty text
|
||||||
# Hathora's API currently doesn't return language info
|
# Hathora's API currently doesn't return language info
|
||||||
# so we default to the requested language or "en"
|
# 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)
|
await self._handle_transcription(text, True, response_language)
|
||||||
yield TranscriptionFrame(
|
yield TranscriptionFrame(
|
||||||
text,
|
text,
|
||||||
|
|||||||
@@ -91,8 +91,16 @@ class HathoraTTSService(TTSService):
|
|||||||
)
|
)
|
||||||
self._model = model
|
self._model = model
|
||||||
self._api_key = api_key or os.getenv("HATHORA_API_KEY")
|
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)
|
self.set_voice(voice_id)
|
||||||
|
|
||||||
def can_generate_metrics(self) -> bool:
|
def can_generate_metrics(self) -> bool:
|
||||||
@@ -117,17 +125,17 @@ class HathoraTTSService(TTSService):
|
|||||||
await self.start_processing_metrics()
|
await self.start_processing_metrics()
|
||||||
await self.start_ttfb_metrics()
|
await self.start_ttfb_metrics()
|
||||||
|
|
||||||
url = f"{self._params.base_url}"
|
url = f"{self.base_url}"
|
||||||
|
|
||||||
payload = {"model": self._model, "text": text}
|
payload = {"model": self._model, "text": text}
|
||||||
|
|
||||||
if self._voice_id is not None:
|
if self._voice_id is not None:
|
||||||
payload["voice"] = self._voice_id
|
payload["voice"] = self._voice_id
|
||||||
if self._params.speed is not None:
|
if self._settings["speed"] is not None:
|
||||||
payload["speed"] = self._params.speed
|
payload["speed"] = self._settings["speed"]
|
||||||
if self._params.model_config is not None:
|
if self._settings["model_config"] is not None:
|
||||||
payload["model_config"] = [
|
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()
|
yield TTSStartedFrame()
|
||||||
|
|||||||
Reference in New Issue
Block a user