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

Reply via email to