Merge pull request #1291 from pipecat-ai/mb/playht-http-protocol
PlayHTHttpTTSService now takes a separate protocol input
This commit is contained in:
@@ -45,6 +45,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- ⚠️ `PipelineTask` now requires keyword arguments (except for the first one for
|
- ⚠️ `PipelineTask` now requires keyword arguments (except for the first one for
|
||||||
the pipeline).
|
the pipeline).
|
||||||
|
|
||||||
|
- Updated `PlayHTHttpTTSService` to take a `voice_engine` and `protocol` input
|
||||||
|
in the constructor. The previous method of providing a `voice_engine` input
|
||||||
|
that contains the engine and protocol is deprecated by PlayHT.
|
||||||
|
|
||||||
- The base `TTSService` class now strips leading newlines before sending text
|
- The base `TTSService` class now strips leading newlines before sending text
|
||||||
to the TTS provider. This change is to solve issues where some TTS providers,
|
to the TTS provider. This change is to solve issues where some TTS providers,
|
||||||
like Azure, would not output text due to newlines.
|
like Azure, would not output text due to newlines.
|
||||||
|
|||||||
@@ -323,7 +323,8 @@ class PlayHTHttpTTSService(TTSService):
|
|||||||
api_key: str,
|
api_key: str,
|
||||||
user_id: str,
|
user_id: str,
|
||||||
voice_url: str,
|
voice_url: str,
|
||||||
voice_engine: str = "Play3.0-mini-http", # Options: Play3.0-mini-http, Play3.0-mini-ws
|
voice_engine: str = "Play3.0-mini",
|
||||||
|
protocol: str = "http", # Options: http, ws
|
||||||
sample_rate: Optional[int] = None,
|
sample_rate: Optional[int] = None,
|
||||||
params: InputParams = InputParams(),
|
params: InputParams = InputParams(),
|
||||||
**kwargs,
|
**kwargs,
|
||||||
@@ -337,12 +338,24 @@ class PlayHTHttpTTSService(TTSService):
|
|||||||
user_id=self._user_id,
|
user_id=self._user_id,
|
||||||
api_key=self._api_key,
|
api_key=self._api_key,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Check if voice_engine contains protocol information (backward compatibility)
|
||||||
|
if "-http" in voice_engine:
|
||||||
|
# Extract the base engine name
|
||||||
|
voice_engine = voice_engine.replace("-http", "")
|
||||||
|
protocol = "http"
|
||||||
|
elif "-ws" in voice_engine:
|
||||||
|
# Extract the base engine name
|
||||||
|
voice_engine = voice_engine.replace("-ws", "")
|
||||||
|
protocol = "ws"
|
||||||
|
|
||||||
self._settings = {
|
self._settings = {
|
||||||
"language": self.language_to_service_language(params.language)
|
"language": self.language_to_service_language(params.language)
|
||||||
if params.language
|
if params.language
|
||||||
else "english",
|
else "english",
|
||||||
"format": Format.FORMAT_WAV,
|
"format": Format.FORMAT_WAV,
|
||||||
"voice_engine": voice_engine,
|
"voice_engine": voice_engine,
|
||||||
|
"protocol": protocol,
|
||||||
"speed": params.speed,
|
"speed": params.speed,
|
||||||
"seed": params.seed,
|
"seed": params.seed,
|
||||||
}
|
}
|
||||||
@@ -389,7 +402,10 @@ class PlayHTHttpTTSService(TTSService):
|
|||||||
await self.start_ttfb_metrics()
|
await self.start_ttfb_metrics()
|
||||||
|
|
||||||
playht_gen = self._client.tts(
|
playht_gen = self._client.tts(
|
||||||
text, voice_engine=self._settings["voice_engine"], options=options
|
text,
|
||||||
|
voice_engine=self._settings["voice_engine"],
|
||||||
|
protocol=self._settings["protocol"],
|
||||||
|
options=options,
|
||||||
)
|
)
|
||||||
|
|
||||||
await self.start_tts_usage_metrics(text)
|
await self.start_tts_usage_metrics(text)
|
||||||
|
|||||||
Reference in New Issue
Block a user