title: Interrupt AVSpeechUtterance and Resume Using WillSpeakRange Delegate in Swift
body: <p>Using AVSpeechSynthesizer, if an utterance is going to be very long, I'd like to prompt user whether to cut it off or hear to end.</p>
  
  <p>I'm tracking the length in the willSpeakRange delegate.</p>
  
  <p>At a certain point, I would like to pause or stop the speech. And then ask the user whether to continue.</p>
  
  <p>If I use the Pause functionality of the synthesizer on the original utterance, it does not seem to allow me to interrupt with "Do you want to hear to the end".</p>
  
  <p>On the other hand, if I use the Stop functionality, it allows me to ask "Do you want to hear to the end" but we lose the place in the original utterance.</p>
  
  <p>How can I pause or stop the original utterance and then either resume or capture the remaining text to start a new utterance that effectively completes the original one.</p>
  
  <p>This is the code I am using:</p>
  
  <pre><code>let count = 0
  func speechSynthesizer(_ synthesizer: AVSpeechSynthesizer, willSpeakRangeOfSpeechString characterRange: NSRange, utterance: AVSpeechUtterance) {
  count = count+1
  if (count==limit) {
  count = 0
  //Pause option does not seem to allow interjection
  self.voice.pauseSpeaking(at: AVSpeechBoundary.immediate)
  //stop option loses place
  self.voice.stopSpeaking(at: .immediate)
  //NEED TO CAPTURE UNSPOKEN TEXT IF I USE STOP OPTION
  let speechString = utterance.speechString
  let newRange = Range(characterRange, in: speechString)
  //Store the remaining text to a variable       
  remainingText = ???
  self.speakSomething(text:",,Should I stop or continue?")
  }
  </code></pre>