I’ve gotten multiple requests for information about which queue item is being played, so I’m hearing that and think I am going to try add it as a feature. The way it would work would be to add another OpenEarsEventsObserver callback that states the phrase that is about to be played as an NSString. Will that be granular enough for you? NeatSpeech separates clauses in a long statement and plays them separately, so this would tell you a specific sentence clause that is being played rather than the whole long text. Returning NSRange would be pretty far out of the usual API return value so I don’t think that would work well for most other users, but your feedback on the idea of getting the current queue item that is about to play as an NSString would be valuable.
To answer your question, NeatSpeech puts the new statement at the end of the queue, meaning you can always send new data and it will just get queued behind what is already there. If you want to clear the queue first, you can send the message stopSpeaking to NeatSpeech before queueing new speech, which will stop it immediately, or send stopSpeakingAfterCurrentItemInQueue and it will finish the current item and then stop, after which you can send more statements.