public IObservable<Unit> ExecuteAsync(ExecutionContext context) { context.AssertNotNull(nameof(context)); context.CancellationToken.ThrowIfCancellationRequested(); return context .WaitWhilePausedAsync() .SelectMany(_ => this.speechService.SpeakAsync(this.speechText, context.CancellationToken)) .FirstAsync() .RunAsync(CancellationToken.None); }