iOS9(9.02)に上げたら
voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"ja-JP"];
が
"Building MacinTalk voice for asset: (null)"
とかログに吐いて日本語をしゃべれない件
言語(ロケール)の判定を
NSArray *languages = [NSLocale preferredLanguages];
lang = [languages objectAtIndex:0];
if ([lang isEqualToString:@"ja"])
voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"ja-JP"];
とかやってたのが悪かった。(たぶん"ja"のままだったらよかったと思われ)
(嘘:langがiOS8だと"ja" iOS9だと"ja-JP"になってました)
CFStringRef text = (CFStringRef)CFBridgingRetain(inputText);
CFRange range = CFRangeMake(0,CFStringGetLength(text));
NSString * language = (NSString *)CFBridgingRelease(CFStringTokenizerCopyBestStringLanguage(text,range));
voice = [AVSpeechSynthesisVoice voiceWithLanguage:language];
にしたら動いた。
posted by one-hand-engineer at 16:42|
Comment(0)
|
TrackBack(0)
|
日記
|

|