Merge pull request #653 from pipecat-ai/mb/align-tts-constructors
Align TTSService constructors
This commit is contained in:
@@ -68,9 +68,6 @@ def language_to_cartesia_language(language: Language) -> str | None:
|
|||||||
|
|
||||||
class CartesiaTTSService(WordTTSService):
|
class CartesiaTTSService(WordTTSService):
|
||||||
class InputParams(BaseModel):
|
class InputParams(BaseModel):
|
||||||
encoding: Optional[str] = "pcm_s16le"
|
|
||||||
sample_rate: Optional[int] = 16000
|
|
||||||
container: Optional[str] = "raw"
|
|
||||||
language: Optional[Language] = Language.EN
|
language: Optional[Language] = Language.EN
|
||||||
speed: Optional[Union[str, float]] = ""
|
speed: Optional[Union[str, float]] = ""
|
||||||
emotion: Optional[List[str]] = []
|
emotion: Optional[List[str]] = []
|
||||||
@@ -83,6 +80,9 @@ class CartesiaTTSService(WordTTSService):
|
|||||||
cartesia_version: str = "2024-06-10",
|
cartesia_version: str = "2024-06-10",
|
||||||
url: str = "wss://api.cartesia.ai/tts/websocket",
|
url: str = "wss://api.cartesia.ai/tts/websocket",
|
||||||
model: str = "sonic-english",
|
model: str = "sonic-english",
|
||||||
|
sample_rate: int = 16000,
|
||||||
|
encoding: str = "pcm_s16le",
|
||||||
|
container: str = "raw",
|
||||||
params: InputParams = InputParams(),
|
params: InputParams = InputParams(),
|
||||||
**kwargs,
|
**kwargs,
|
||||||
):
|
):
|
||||||
@@ -99,7 +99,6 @@ class CartesiaTTSService(WordTTSService):
|
|||||||
super().__init__(
|
super().__init__(
|
||||||
aggregate_sentences=True,
|
aggregate_sentences=True,
|
||||||
push_text_frames=False,
|
push_text_frames=False,
|
||||||
sample_rate=params.sample_rate,
|
|
||||||
**kwargs,
|
**kwargs,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -108,9 +107,9 @@ class CartesiaTTSService(WordTTSService):
|
|||||||
self._url = url
|
self._url = url
|
||||||
self._settings = {
|
self._settings = {
|
||||||
"output_format": {
|
"output_format": {
|
||||||
"container": params.container,
|
"container": container,
|
||||||
"encoding": params.encoding,
|
"encoding": encoding,
|
||||||
"sample_rate": params.sample_rate,
|
"sample_rate": sample_rate,
|
||||||
},
|
},
|
||||||
"language": self.language_to_service_language(params.language)
|
"language": self.language_to_service_language(params.language)
|
||||||
if params.language
|
if params.language
|
||||||
@@ -288,9 +287,6 @@ class CartesiaTTSService(WordTTSService):
|
|||||||
|
|
||||||
class CartesiaHttpTTSService(TTSService):
|
class CartesiaHttpTTSService(TTSService):
|
||||||
class InputParams(BaseModel):
|
class InputParams(BaseModel):
|
||||||
encoding: Optional[str] = "pcm_s16le"
|
|
||||||
sample_rate: Optional[int] = 16000
|
|
||||||
container: Optional[str] = "raw"
|
|
||||||
language: Optional[Language] = Language.EN
|
language: Optional[Language] = Language.EN
|
||||||
speed: Optional[Union[str, float]] = ""
|
speed: Optional[Union[str, float]] = ""
|
||||||
emotion: Optional[List[str]] = []
|
emotion: Optional[List[str]] = []
|
||||||
@@ -302,6 +298,9 @@ class CartesiaHttpTTSService(TTSService):
|
|||||||
voice_id: str,
|
voice_id: str,
|
||||||
model: str = "sonic-english",
|
model: str = "sonic-english",
|
||||||
base_url: str = "https://api.cartesia.ai",
|
base_url: str = "https://api.cartesia.ai",
|
||||||
|
sample_rate: int = 16000,
|
||||||
|
encoding: str = "pcm_s16le",
|
||||||
|
container: str = "raw",
|
||||||
params: InputParams = InputParams(),
|
params: InputParams = InputParams(),
|
||||||
**kwargs,
|
**kwargs,
|
||||||
):
|
):
|
||||||
@@ -310,9 +309,9 @@ class CartesiaHttpTTSService(TTSService):
|
|||||||
self._api_key = api_key
|
self._api_key = api_key
|
||||||
self._settings = {
|
self._settings = {
|
||||||
"output_format": {
|
"output_format": {
|
||||||
"container": params.container,
|
"container": container,
|
||||||
"encoding": params.encoding,
|
"encoding": encoding,
|
||||||
"sample_rate": params.sample_rate,
|
"sample_rate": sample_rate,
|
||||||
},
|
},
|
||||||
"language": self.language_to_service_language(params.language)
|
"language": self.language_to_service_language(params.language)
|
||||||
if params.language
|
if params.language
|
||||||
|
|||||||
@@ -74,7 +74,6 @@ def calculate_word_times(
|
|||||||
class ElevenLabsTTSService(WordTTSService):
|
class ElevenLabsTTSService(WordTTSService):
|
||||||
class InputParams(BaseModel):
|
class InputParams(BaseModel):
|
||||||
language: Optional[Language] = Language.EN
|
language: Optional[Language] = Language.EN
|
||||||
output_format: Literal["pcm_16000", "pcm_22050", "pcm_24000", "pcm_44100"] = "pcm_16000"
|
|
||||||
optimize_streaming_latency: Optional[str] = None
|
optimize_streaming_latency: Optional[str] = None
|
||||||
stability: Optional[float] = None
|
stability: Optional[float] = None
|
||||||
similarity_boost: Optional[float] = None
|
similarity_boost: Optional[float] = None
|
||||||
@@ -98,6 +97,7 @@ class ElevenLabsTTSService(WordTTSService):
|
|||||||
voice_id: str,
|
voice_id: str,
|
||||||
model: str = "eleven_turbo_v2_5",
|
model: str = "eleven_turbo_v2_5",
|
||||||
url: str = "wss://api.elevenlabs.io",
|
url: str = "wss://api.elevenlabs.io",
|
||||||
|
output_format: Literal["pcm_16000", "pcm_22050", "pcm_24000", "pcm_44100"] = "pcm_16000",
|
||||||
params: InputParams = InputParams(),
|
params: InputParams = InputParams(),
|
||||||
**kwargs,
|
**kwargs,
|
||||||
):
|
):
|
||||||
@@ -120,18 +120,18 @@ class ElevenLabsTTSService(WordTTSService):
|
|||||||
push_text_frames=False,
|
push_text_frames=False,
|
||||||
push_stop_frames=True,
|
push_stop_frames=True,
|
||||||
stop_frame_timeout_s=2.0,
|
stop_frame_timeout_s=2.0,
|
||||||
sample_rate=sample_rate_from_output_format(params.output_format),
|
sample_rate=sample_rate_from_output_format(output_format),
|
||||||
**kwargs,
|
**kwargs,
|
||||||
)
|
)
|
||||||
|
|
||||||
self._api_key = api_key
|
self._api_key = api_key
|
||||||
self._url = url
|
self._url = url
|
||||||
self._settings = {
|
self._settings = {
|
||||||
"sample_rate": sample_rate_from_output_format(params.output_format),
|
"sample_rate": sample_rate_from_output_format(output_format),
|
||||||
"language": self.language_to_service_language(params.language)
|
"language": self.language_to_service_language(params.language)
|
||||||
if params.language
|
if params.language
|
||||||
else Language.EN,
|
else Language.EN,
|
||||||
"output_format": params.output_format,
|
"output_format": output_format,
|
||||||
"optimize_streaming_latency": params.optimize_streaming_latency,
|
"optimize_streaming_latency": params.optimize_streaming_latency,
|
||||||
"stability": params.stability,
|
"stability": params.stability,
|
||||||
"similarity_boost": params.similarity_boost,
|
"similarity_boost": params.similarity_boost,
|
||||||
|
|||||||
Reference in New Issue
Block a user