Search code examples
xcodeios7pointavspeechsynthesizer

AVSpeechSynthesizer - How to detect dot for milliseconds pause (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 synthesizer detect dot and pause for 100 millisecond.

Is it possible? How can I do ??


Solution

  • I mean a dot (.)

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