Update Sarvam TTS to apply all changes to settings, not just voic
This commit is contained in:
@@ -24,7 +24,7 @@ from pipecat.runner.types import RunnerArguments
|
||||
from pipecat.runner.utils import create_transport
|
||||
from pipecat.services.deepgram.stt import DeepgramSTTService
|
||||
from pipecat.services.openai.llm import OpenAILLMService
|
||||
from pipecat.services.sarvam.tts import SarvamTTSService, SarvamWSTTSSettings
|
||||
from pipecat.services.sarvam.tts import SarvamTTSService, SarvamTTSSettings
|
||||
from pipecat.transports.base_transport import BaseTransport, TransportParams
|
||||
from pipecat.transports.daily.transport import DailyParams
|
||||
from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams
|
||||
@@ -97,8 +97,8 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await task.queue_frames([LLMRunFrame()])
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Sarvam TTS settings: pace=1.3")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=SarvamWSTTSSettings(pace=1.3)))
|
||||
logger.info("Updating Sarvam TTS settings: pace=1.5")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=SarvamTTSSettings(pace=1.5)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -276,7 +276,7 @@ class SarvamHttpTTSSettings(TTSSettings):
|
||||
|
||||
|
||||
@dataclass
|
||||
class SarvamWSTTSSettings(TTSSettings):
|
||||
class SarvamTTSSettings(TTSSettings):
|
||||
"""Settings for Sarvam WebSocket TTS service.
|
||||
|
||||
Parameters:
|
||||
@@ -686,7 +686,7 @@ class SarvamTTSService(InterruptibleTTSService):
|
||||
See https://docs.sarvam.ai/api-reference-docs/text-to-speech/stream for API details.
|
||||
"""
|
||||
|
||||
_settings: SarvamWSTTSSettings
|
||||
_settings: SarvamTTSSettings
|
||||
|
||||
class InputParams(BaseModel):
|
||||
"""Configuration parameters for Sarvam TTS WebSocket service.
|
||||
@@ -841,7 +841,7 @@ class SarvamTTSService(InterruptibleTTSService):
|
||||
pace = max(pace_min, min(pace_max, pace))
|
||||
|
||||
# Build base settings
|
||||
self._settings = SarvamWSTTSSettings(
|
||||
self._settings = SarvamTTSSettings(
|
||||
target_language_code=(
|
||||
self.language_to_service_language(params.language) if params.language else "en-IN"
|
||||
),
|
||||
@@ -956,9 +956,10 @@ class SarvamTTSService(InterruptibleTTSService):
|
||||
async def _update_settings(self, update: TTSSettings) -> dict[str, Any]:
|
||||
"""Apply a settings update and resend config if voice changed."""
|
||||
changed = await super()._update_settings(update)
|
||||
if "voice" in changed:
|
||||
|
||||
if changed:
|
||||
await self._send_config()
|
||||
self._warn_unhandled_updated_settings(changed.keys() - {"voice"})
|
||||
|
||||
return changed
|
||||
|
||||
async def _connect(self):
|
||||
|
||||
Reference in New Issue
Block a user