I tried the Speech Synthesizer Manager too. It suffers from the same deficiency that NSSpeechSynthesizer does. I suspect that NSSpeechSynthesizer uses the Speech Synthesis Manager internally. On Aug 9, 2012, at 2:51 PM, Ken Thomases wrote:
> On Aug 9, 2012, at 1:29 PM, Jens Alfke wrote: > >> On Aug 9, 2012, at 10:00 AM, Charlie Dickman <3tothe...@comcast.net> wrote: >> >>> NSTask *ls = [[NSTask alloc] init]; >>> NSFileHandle *stdIn = [NSFileHandle >>> fileHandleForReadingAtPath: txtFilePath]; >>> [ls setStandardInput: stdIn]; >>> [ls setLaunchPath: @"/usr/bin/say"]; >>> [ls launch]; >>> [ls release]; >>> >>> My problem is that the command speaks the text in the file when the task is >>> launched but not anything written to it subsequently. >> >> Yeah, when the NSFileHandle hits EOF on the file it will propagate the EOF >> to the task, which will then exit. >> >> What you want instead is to make your own NSStream that isn't tied to a >> file. But looking at the NSTask and NSFileHandle APIs, I don't see how you >> can attach an NSStream to a task... > > The correct thing to do is to use a pipe to send data to the task. You can > keep that open as long as you like and keeping writing new data. However, > you (Charlie) also wrote: > >> I have also looked into using an NSPipe but it doesn't seem to add anything. > > You want to look again because that should work. However, there's no reason > to believe that the "say" command will speak the data in dribs and drabs as > you write it. The man page says that, when input is not a TTY, the text is > spoken all at once. So, presumably it will not speak until you close the > pipe and it sees EOF and knows it has all of the data. > > If NSSpeechSynthesizer has problems, you might look into the Speech Synthesis > Manager. Either way, I would not expect that you could work around the > problems indefinitely using the "say" command, since it surely uses those > APIs under the hood. (The man page actually states that it uses the Speech > Synthesis Manager.) > > Regards, > Ken > Charlie Dickman 3tothe...@comcast.net _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com