def TTSObserver(config: TTSConfig[bytes]) -> CompositeObserver: # noqa: N802
tts = _ChunkToSpeech(config=config)
@observer(events.ModelMessageChunk)
async def on_model_message_chunk(event: events.ModelMessageChunk, context: Context) -> None:
await tts.on_chunk(event, context)
@observer(events.ModelMessage)
async def on_model_message(event: events.ModelMessage, context: Context) -> None:
await tts.on_complete(context)
return CompositeObserver(on_model_message_chunk, on_model_message)