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);
        }