Re: How to speak Chinese on 10.9.2

2014-05-15 Thread Gerriet M. Denkmann

On 15 May 2014, at 08:41, Jens Alfke j...@mooseyard.com wrote:

 On May 14, 2014, at 6:24 PM, Gerriet M. Denkmann gerr...@mdenkmann.de wrote:
 
 But the only thing in 10.9.2 I found was NSSpeechSynthesizer, which has 24 
 voices (which is nice) but all 24 have VoiceLanguage = VoiceLocaleIdentifier 
 = en_US (which seems rather odd).
 
 The non-English voices are optional downloads — you can get them via the 
 Dictation/Speech system pref pane. Pull down the System Voice pop-up and 
 choose Customize…

Thanks. Just did that.

Did set System Voice to Anna (a German voice).
Now, when I select some (German) text and do Control-Click → Speech → Start 
Speaking it just works. Very good.

But this:

NSString *voiceIdentifier = @com.apple.speech.synthesis.voice.anna.premium;
NSString *text = @Der Osten ist rot.; 
NSSpeechSynthesizer  *syn = [ [ NSSpeechSynthesizer alloc ] initWithVoice: 
voiceIdentifier ];   //  non-nil
BOOL ok = [ syn startSpeakingString: text ];//  returns YES, but does 
NOT speak
NSString *pp = [ syn phonemesFromText: text ];  //  returns empty string

does not work as expected.
Same problem with all other voices I just downloaded. Only the default (en-US) 
voices work as they should.

What am I missing?

Gerriet.


___

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

Re: How to speak Chinese on 10.9.2

2014-05-15 Thread Gary L. Wade
German Anna, Chinese Mei-Jia, and Korean Yuna all speak my English text
(Shakespeare, actually, in my test case) with accents from each language.
I also verified Mei-Jia speaks Chinese from a Chinese play in my app, too.
 Do you get any calls in your delegate methods (you have set the delegate
on your speech synthesizer instance, right)?  One difference I’ve done is
to initWithVoice: with nil and later call setVoice:.  Also, I haven’t
tried this sequence myself, but I noticed in your sample code you’re
calling phonemesFromText: right after startSpeakingString:.  Maybe
phonemesFromText: is short-circuiting the speaking?  It’s been a while
since I’ve worked on my app, but I remember some calls will stop any
current speaking.
--
Gary L. Wade
http://www.garywade.com/

On 5/14/2014, 11:15 PM, Gerriet M. Denkmann gerr...@mdenkmann.de wrote:



On 15 May 2014, at 08:41, Jens Alfke j...@mooseyard.com wrote:

 On May 14, 2014, at 6:24 PM, Gerriet M. Denkmann gerr...@mdenkmann.de
wrote:
 
 But the only thing in 10.9.2 I found was NSSpeechSynthesizer, which
has 24 voices (which is nice) but all 24 have VoiceLanguage =
VoiceLocaleIdentifier = en_US (which seems rather odd).
 
 The non-English voices are optional downloads — you can get them via
the Dictation/Speech system pref pane. Pull down the System Voice pop-up
and choose Customize…

Thanks. Just did that.

Did set System Voice to Anna (a German voice).
Now, when I select some (German) text and do Control-Click → Speech →
Start Speaking it just works. Very good.

But this:

NSString *voiceIdentifier =
@com.apple.speech.synthesis.voice.anna.premium;
NSString *text = @Der Osten ist rot.;
NSSpeechSynthesizer  *syn = [ [ NSSpeechSynthesizer alloc ]
initWithVoice: voiceIdentifier ];  //  non-nil
BOOL ok = [ syn startSpeakingString: text ];   //  returns YES, but does
NOT speak
NSString *pp = [ syn phonemesFromText: text ]; //  returns empty string

does not work as expected.
Same problem with all other voices I just downloaded. Only the default
(en-US) voices work as they should.

What am I missing?

Gerriet.



___

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

Re: How to speak Chinese on 10.9.2

2014-05-15 Thread Gerriet M. Denkmann

On 15 May 2014, at 15:53, Gary L. Wade garyw...@desisoftsystems.com wrote:

 German Anna, Chinese Mei-Jia, and Korean Yuna all speak my English text
 (Shakespeare, actually, in my test case) with accents from each language.
 I also verified Mei-Jia speaks Chinese from a Chinese play in my app, too.
 Do you get any calls in your delegate methods (you have set the delegate
 on your speech synthesizer instance, right)?  
No, no delegate yet.

 One difference I’ve done is
 to initWithVoice: with nil and later call setVoice:.  Also, I haven’t
 tried this sequence myself, but I noticed in your sample code you’re
 calling phonemesFromText: right after startSpeakingString:.  Maybe
 phonemesFromText: is short-circuiting the speaking?  
An interesting point. But when I replace Anna with Bruce (one of the 
preinstalled voices), he speaks and I also get the phonemes. (still not using 
any delegate).

Must be something else.

Just added a delegate with 
speechSynthesizer:didEncounterErrorAtIndex:ofString:message: and 
speechSynthesizer:willSpeakWord:ofString:

but neither of these gets called with Anna.
With Bruce the latter method does get called.

Still puzzled.


 It’s been a while since I’ve worked on my app, but I remember some calls will 
 stop any
 current speaking.
 --
 Gary L. Wade
 http://www.garywade.com/
 
 On 5/14/2014, 11:15 PM, Gerriet M. Denkmann gerr...@mdenkmann.de wrote:
 
 
 
 On 15 May 2014, at 08:41, Jens Alfke j...@mooseyard.com wrote:
 
 On May 14, 2014, at 6:24 PM, Gerriet M. Denkmann gerr...@mdenkmann.de
 wrote:
 
 But the only thing in 10.9.2 I found was NSSpeechSynthesizer, which
 has 24 voices (which is nice) but all 24 have VoiceLanguage =
 VoiceLocaleIdentifier = en_US (which seems rather odd).
 
 The non-English voices are optional downloads — you can get them via
 the Dictation/Speech system pref pane. Pull down the System Voice pop-up
 and choose Customize…
 
 Thanks. Just did that.
 
 Did set System Voice to Anna (a German voice).
 Now, when I select some (German) text and do Control-Click → Speech →
 Start Speaking it just works. Very good.
 
 But this:
 
 NSString *voiceIdentifier =
 @com.apple.speech.synthesis.voice.anna.premium;
 NSString *text = @Der Osten ist rot.;  
 NSSpeechSynthesizer  *syn = [ [ NSSpeechSynthesizer alloc ]
 initWithVoice: voiceIdentifier ];//  non-nil
 BOOL ok = [ syn startSpeakingString: text ]; //  returns YES, 
 but does
 NOT speak
 NSString *pp = [ syn phonemesFromText: text ];   //  returns empty 
 string
 
 does not work as expected.
 Same problem with all other voices I just downloaded. Only the default
 (en-US) voices work as they should.
 
 What am I missing?
 
 Gerriet.
 
 


___

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

Re: How to speak Chinese on 10.9.2

2014-05-15 Thread Gerriet M. Denkmann

On 15 May 2014, at 15:53, Gary L. Wade garyw...@desisoftsystems.com wrote:

  Also, I haven’t tried this sequence myself, but I noticed in your sample 
 code you’re
 calling phonemesFromText: right after startSpeakingString:.  Maybe
 phonemesFromText: is short-circuiting the speaking?

Right on! 
Putting phonemesFromText: BEFORE startSpeakingString: finally gets me to hear 
all my new voices.

But: phonemesFromText: still returns an empty string.
This is a pity, because getting the phonemes is the goal of the whole exercise.

With or without delegate.

Another thing: setUsesFeedbackWindow: YES has no visible effect whatsoever with 
any voice.


  It’s been a while
 since I’ve worked on my app, but I remember some calls will stop any
 current speaking.
 --
 Gary L. Wade
 http://www.garywade.com/
 
 On 5/14/2014, 11:15 PM, Gerriet M. Denkmann gerr...@mdenkmann.de wrote:
 
 
 
 On 15 May 2014, at 08:41, Jens Alfke j...@mooseyard.com wrote:
 
 On May 14, 2014, at 6:24 PM, Gerriet M. Denkmann gerr...@mdenkmann.de
 wrote:
 
 But the only thing in 10.9.2 I found was NSSpeechSynthesizer, which
 has 24 voices (which is nice) but all 24 have VoiceLanguage =
 VoiceLocaleIdentifier = en_US (which seems rather odd).
 
 The non-English voices are optional downloads — you can get them via
 the Dictation/Speech system pref pane. Pull down the System Voice pop-up
 and choose Customize…
 
 Thanks. Just did that.
 
 Did set System Voice to Anna (a German voice).
 Now, when I select some (German) text and do Control-Click → Speech →
 Start Speaking it just works. Very good.
 
 But this:
 
 NSString *voiceIdentifier =
 @com.apple.speech.synthesis.voice.anna.premium;
 NSString *text = @Der Osten ist rot.;  
 NSSpeechSynthesizer  *syn = [ [ NSSpeechSynthesizer alloc ]
 initWithVoice: voiceIdentifier ];//  non-nil
 BOOL ok = [ syn startSpeakingString: text ]; //  returns YES, 
 but does
 NOT speak
 NSString *pp = [ syn phonemesFromText: text ];   //  returns empty 
 string
 
 does not work as expected.
 Same problem with all other voices I just downloaded. Only the default
 (en-US) voices work as they should.
 
 What am I missing?
 
 Gerriet.
 
 


___

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

Re: How to speak Chinese on 10.9.2

2014-05-15 Thread Gary L. Wade
If you need the phonemes, look at the willSpeakPhoneme delegate method. You can 
use it in conjunction with the other delegates in a manner like NSString 
enumerates sentences and words―not a perfect comparison, but it should help you 
conceptually.

If I recall, the feedback window solves a very narrow need, one that didn't 
help me much, so I didn't explore it, especially since the delegate methods 
gave me what I needed.

I wouldn't doubt that NSSpeechSynthesizer gets deprecated in favor of the AV 
variety based on the way Apple has historically ported underlying technologies 
between platforms, but if not or you need to support older OSes, be careful 
about some of its property retrieval methods, especially the phoneme dictionary 
per voice, since in at least one OS and earlier it returned a retained object 
vs an autoreleased object against the Objective-C memory naming contract.
--
Gary L. Wade (Sent from my iPhone)
http://www.garywade.com/

 On May 15, 2014, at 5:53 AM, Gerriet M. Denkmann gerr...@mdenkmann.de 
 wrote:
 
 
 On 15 May 2014, at 15:53, Gary L. Wade garyw...@desisoftsystems.com wrote:
 
 Also, I haven’t tried this sequence myself, but I noticed in your sample 
 code you’re
 calling phonemesFromText: right after startSpeakingString:.  Maybe
 phonemesFromText: is short-circuiting the speaking?
 
 Right on! 
 Putting phonemesFromText: BEFORE startSpeakingString: finally gets me to hear 
 all my new voices.
 
 But: phonemesFromText: still returns an empty string.
 This is a pity, because getting the phonemes is the goal of the whole 
 exercise.
 
 With or without delegate.
 
 Another thing: setUsesFeedbackWindow: YES has no visible effect whatsoever 
 with any voice.
 
 
 It’s been a while
 since I’ve worked on my app, but I remember some calls will stop any
 current speaking.
 --
 Gary L. Wade
 http://www.garywade.com/
 
 On 5/14/2014, 11:15 PM, Gerriet M. Denkmann gerr...@mdenkmann.de wrote:
 
 
 
 On 15 May 2014, at 08:41, Jens Alfke j...@mooseyard.com wrote:
 
 On May 14, 2014, at 6:24 PM, Gerriet M. Denkmann gerr...@mdenkmann.de
 wrote:
 
 But the only thing in 10.9.2 I found was NSSpeechSynthesizer, which
 has 24 voices (which is nice) but all 24 have VoiceLanguage =
 VoiceLocaleIdentifier = en_US (which seems rather odd).
 
 The non-English voices are optional downloads ― you can get them via
 the Dictation/Speech system pref pane. Pull down the System Voice pop-up
 and choose Customize…
 
 Thanks. Just did that.
 
 Did set System Voice to Anna (a German voice).
 Now, when I select some (German) text and do Control-Click → Speech →
 Start Speaking it just works. Very good.
 
 But this:
 
 NSString *voiceIdentifier =
 @com.apple.speech.synthesis.voice.anna.premium;
 NSString *text = @Der Osten ist rot.;
 NSSpeechSynthesizer  *syn = [ [ NSSpeechSynthesizer alloc ]
 initWithVoice: voiceIdentifier ];//non-nil
 BOOL ok = [ syn startSpeakingString: text ];//returns YES, but does
 NOT speak
 NSString *pp = [ syn phonemesFromText: text ];//returns empty string
 
 does not work as expected.
 Same problem with all other voices I just downloaded. Only the default
 (en-US) voices work as they should.
 
 What am I missing?
 
 Gerriet.
 

___

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

Re: How to speak Chinese on 10.9.2

2014-05-15 Thread Gerriet M. Denkmann

On 15 May 2014, at 22:12, Gary L. Wade garyw...@desisoftsystems.com wrote:

 If you need the phonemes, look at the willSpeakPhoneme delegate method. You 
 can use it in conjunction with the other delegates in a manner like NSString 
 enumerates sentences and words—not a perfect comparison, but it should help 
 you conceptually.

Unfortunately the documentation says about speechSynthesizer:willSpeakPhoneme: 
This method is not sent for modern voices. And this seems indeed to be the 
case.

Another problem with: speechSynthesizer:willSpeakWord:ofString: - while it 
works fine for German or Chinese, it gives complete garbage for Thai.

 
 If I recall, the feedback window solves a very narrow need, one that didn't 
 help me much, so I didn't explore it, especially since the delegate methods 
 gave me what I needed.
 
 I wouldn't doubt that NSSpeechSynthesizer gets deprecated in favor of the AV 
 variety based on the way Apple has historically ported underlying 
 technologies between platforms, but if not or you need to support older OSes, 
 be careful about some of its property retrieval methods, especially the 
 phoneme dictionary per voice, since in at least one OS and earlier it 
 returned a retained object vs an autoreleased object against the Objective-C 
 memory naming contract.
 --
 Gary L. Wade (Sent from my iPhone)
 http://www.garywade.com/
 
 On May 15, 2014, at 5:53 AM, Gerriet M. Denkmann gerr...@mdenkmann.de 
 wrote:
 
 
 On 15 May 2014, at 15:53, Gary L. Wade garyw...@desisoftsystems.com wrote:
 
 Also, I haven’t tried this sequence myself, but I noticed in your sample 
 code you’re
 calling phonemesFromText: right after startSpeakingString:.  Maybe
 phonemesFromText: is short-circuiting the speaking?
 
 Right on! 
 Putting phonemesFromText: BEFORE startSpeakingString: finally gets me to 
 hear all my new voices.
 
 But: phonemesFromText: still returns an empty string.
 This is a pity, because getting the phonemes is the goal of the whole 
 exercise.
 
 With or without delegate.
 
 Another thing: setUsesFeedbackWindow: YES has no visible effect whatsoever 
 with any voice.
 
 
 It’s been a while
 since I’ve worked on my app, but I remember some calls will stop any
 current speaking.
 --
 Gary L. Wade
 http://www.garywade.com/
 
 On 5/14/2014, 11:15 PM, Gerriet M. Denkmann gerr...@mdenkmann.de wrote:
 
 
 
 On 15 May 2014, at 08:41, Jens Alfke j...@mooseyard.com wrote:
 
 On May 14, 2014, at 6:24 PM, Gerriet M. Denkmann gerr...@mdenkmann.de
 wrote:
 
 But the only thing in 10.9.2 I found was NSSpeechSynthesizer, which
 has 24 voices (which is nice) but all 24 have VoiceLanguage =
 VoiceLocaleIdentifier = en_US (which seems rather odd).
 
 The non-English voices are optional downloads — you can get them via
 the Dictation/Speech system pref pane. Pull down the System Voice pop-up
 and choose Customize…
 
 Thanks. Just did that.
 
 Did set System Voice to Anna (a German voice).
 Now, when I select some (German) text and do Control-Click → Speech →
 Start Speaking it just works. Very good.
 
 But this:
 
 NSString *voiceIdentifier =
 @com.apple.speech.synthesis.voice.anna.premium;
 NSString *text = @Der Osten ist rot.;
 NSSpeechSynthesizer  *syn = [ [ NSSpeechSynthesizer alloc ]
 initWithVoice: voiceIdentifier ];//non-nil
 BOOL ok = [ syn startSpeakingString: text ];//returns YES, but does
 NOT speak
 NSString *pp = [ syn phonemesFromText: text ];//returns empty 
 string
 
 does not work as expected.
 Same problem with all other voices I just downloaded. Only the default
 (en-US) voices work as they should.
 
 What am I missing?
 
 Gerriet.
 


___

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

Re: How to speak Chinese on 10.9.2

2014-05-15 Thread Gary L. Wade
Well, that's not fun. It's been a while since I tried it out, though. Well, 
write up some bugs, and if you have a sample app showing what you need, it'll 
at least get addressed. Speech is a priority although the forms of that 
priority might be different than we expect. And, if you are one of us going to 
WWDC in a couple of weeks, be ready to talk with whatever group you'll need to; 
that's how I found out the cause of the memory leak bug by one of the team 
members bringing up the source code right there.
--
Gary L. Wade (Sent from my iPhone)
http://www.garywade.com/

 On May 15, 2014, at 8:38 AM, Gerriet M. Denkmann gerr...@mdenkmann.de 
 wrote:
 
 
 On 15 May 2014, at 22:12, Gary L. Wade garyw...@desisoftsystems.com wrote:
 
 If you need the phonemes, look at the willSpeakPhoneme delegate method. You 
 can use it in conjunction with the other delegates in a manner like NSString 
 enumerates sentences and words―not a perfect comparison, but it should help 
 you conceptually.
 
 Unfortunately the documentation says about 
 speechSynthesizer:willSpeakPhoneme: 
 This method is not sent for modern voices. And this seems indeed to be the 
 case.
 
 Another problem with: speechSynthesizer:willSpeakWord:ofString: - while it 
 works fine for German or Chinese, it gives complete garbage for Thai.
 
 
 If I recall, the feedback window solves a very narrow need, one that didn't 
 help me much, so I didn't explore it, especially since the delegate methods 
 gave me what I needed.
 
 I wouldn't doubt that NSSpeechSynthesizer gets deprecated in favor of the AV 
 variety based on the way Apple has historically ported underlying 
 technologies between platforms, but if not or you need to support older 
 OSes, be careful about some of its property retrieval methods, especially 
 the phoneme dictionary per voice, since in at least one OS and earlier it 
 returned a retained object vs an autoreleased object against the Objective-C 
 memory naming contract.
 --
 Gary L. Wade (Sent from my iPhone)
 http://www.garywade.com/
 
 On May 15, 2014, at 5:53 AM, Gerriet M. Denkmann gerr...@mdenkmann.de 
 wrote:
 
 
 On 15 May 2014, at 15:53, Gary L. Wade garyw...@desisoftsystems.com 
 wrote:
 
 Also, I haven’t tried this sequence myself, but I noticed in your sample 
 code you’re
 calling phonemesFromText: right after startSpeakingString:.  Maybe
 phonemesFromText: is short-circuiting the speaking?
 
 Right on! 
 Putting phonemesFromText: BEFORE startSpeakingString: finally gets me to 
 hear all my new voices.
 
 But: phonemesFromText: still returns an empty string.
 This is a pity, because getting the phonemes is the goal of the whole 
 exercise.
 
 With or without delegate.
 
 Another thing: setUsesFeedbackWindow: YES has no visible effect whatsoever 
 with any voice.
 
 
 It’s been a while
 since I’ve worked on my app, but I remember some calls will stop any
 current speaking.
 --
 Gary L. Wade
 http://www.garywade.com/
 
 On 5/14/2014, 11:15 PM, Gerriet M. Denkmann gerr...@mdenkmann.de wrote:
 
 
 
 On 15 May 2014, at 08:41, Jens Alfke j...@mooseyard.com wrote:
 
 On May 14, 2014, at 6:24 PM, Gerriet M. Denkmann gerr...@mdenkmann.de
 wrote:
 
 But the only thing in 10.9.2 I found was NSSpeechSynthesizer, which
 has 24 voices (which is nice) but all 24 have VoiceLanguage =
 VoiceLocaleIdentifier = en_US (which seems rather odd).
 
 The non-English voices are optional downloads ― you can get them via
 the Dictation/Speech system pref pane. Pull down the System Voice pop-up
 and choose Customize…
 
 Thanks. Just did that.
 
 Did set System Voice to Anna (a German voice).
 Now, when I select some (German) text and do Control-Click → Speech →
 Start Speaking it just works. Very good.
 
 But this:
 
 NSString *voiceIdentifier =
 @com.apple.speech.synthesis.voice.anna.premium;
 NSString *text = @Der Osten ist rot.;
 NSSpeechSynthesizer  *syn = [ [ NSSpeechSynthesizer alloc ]
 initWithVoice: voiceIdentifier ];//non-nil
 BOOL ok = [ syn startSpeakingString: text ];//returns YES, but 
 does
 NOT speak
 NSString *pp = [ syn phonemesFromText: text ];//returns empty 
 string
 
 does not work as expected.
 Same problem with all other voices I just downloaded. Only the default
 (en-US) voices work as they should.
 
 What am I missing?
 
 Gerriet.
 

___

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

Re: How to speak Chinese on 10.9.2

2014-05-14 Thread Jens Alfke

On May 14, 2014, at 6:24 PM, Gerriet M. Denkmann gerr...@mdenkmann.de wrote:

 But the only thing in 10.9.2 I found was NSSpeechSynthesizer, which has 24 
 voices (which is nice) but all 24 have VoiceLanguage = VoiceLocaleIdentifier 
 = en_US (which seems rather odd).

The non-English voices are optional downloads — you can get them via the 
Dictation/Speech system pref pane. Pull down the System Voice pop-up and choose 
Customize…

—Jens
___

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