Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

drskot

macrumors newbie
Original poster
Jul 11, 2010
4
0
Has anybody had any luck using an NSSpeechSynthesizerDelegate? None of my delegate's methods are being called.

Here's the code:


Code:
#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>

@interface SynthesizerDelegate : NSObject <NSSpeechSynthesizerDelegate>
@end

@implementation SynthesizerDelegate
- (void)speechSynthesizer:(NSSpeechSynthesizer *)sender willSpeakWord:(NSRange)characterRange ofString:(NSString *)string {
  printf("speaking word ");
  printf("%s \n", [[string substringWithRange:characterRange] UTF8String]);
}
- (void)speechSynthesizer:(NSSpeechSynthesizer *)sender didFinishSpeaking:(BOOL)finishedSpeaking {
  printf("finished speaking\n");
}
@end

int main (int argc, const char * argv[])
{
  NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
  
  NSString *input = @"I am not an animal. I am a man.";
  
  NSSpeechSynthesizer *synthesizer = [[NSSpeechSynthesizer alloc] init];
  SynthesizerDelegate *delegate = [[SynthesizerDelegate alloc] init];
  [synthesizer setDelegate:delegate];
  
  [synthesizer startSpeakingString:input];
  
  while ([synthesizer isSpeaking]) {
    sleep(1);
  }
  
  [synthesizer release];
  [delegate release];
  
  [pool drain];
  return 0;
}
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.