AVSpeechSynthesizer - How to determine the pause point in milliseconds (iPHONE - iPAD / iOS7 xcode)

I want to read a very long text:

NSString *text =@"Long test with dot. I want speaching pause when read dot. How can I do?";
AVSpeechSynthesizer *synthesizer = [AVSpeechSynthesizer new];
[synthesizer setDelegate:self];
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:text];
        utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:[self.defaults objectForKey:LANGUAGE]];
        utterance.rate = 0.28;
        [synthesizer speakUtterance:utterance];

I want the synthesizer to detect a point and stop for 100 milliseconds.

Is it possible? How can i do

+4
source share
1 answer

I mean the point (.)

but maybe i found a solution also fot char ',':

NSString *text = @"Line one. LineTwo aftre a pause. Line three, pause here again.";
        text = [text stringByReplacingOccurrencesOfString:@"," withString:@"."];

        NSArray *a = [text componentsSeparatedByString:@"."];
        for(NSString *line in a)
           {
           AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:line];
           utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:[self.defaults objectForKey:LINGUA]];
           utterance.rate = 0.28;
           utterance.**postUtteranceDelay** = 0.3;
           [self.synthesizer speakUtterance:utterance];
           }
+7
source

Source: https://habr.com/ru/post/1525437/


All Articles