Yosemite NSSpeechSynthesizer isSpeaking initially returns NO

Originator:peter
Number:rdar://18536310 Date Originated:2014-10-03
Status:Open Resolved:
Product:OS X Product Version:Yosemite 10.10 GM
Classification:UI/Usability Reproducible:Most Always
 
In Yosemite, immediately after calling NSSpeechSynthesizer  startSpeakingString, isSpeaking returns NO.  After a while, it changes to YES, and then eventually changes back to NO.

Clearly, it should be YES immediately, otherwise you have unavoidable race conditions to deal with.

	NSSpeechSynthesizer* synth = [[NSSpeechSynthesizer alloc] init];
	[synth startSpeakingString:@"Hello There"];
	NSLog( @"isSpeaking is %d", [synth isSpeaking] );

Note there is a race condition here already, so while I've said "Always", and in my experiments, for the default voice Alex, it will always show 0 in the log, its possible that on a slow Mac or on other conditions, it would start showing true before the NSLog ran.  And indeed, depending on the voice, it may show YES sooner.

Always, immediately after calling startSpeakingString, the result should be YES, and should only go NO when the speaking has finished.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!