带有en-us声音的AVSpeechsynthesizer是" A"是"资本A"但只是想" A"怎么办?
答案 0 :(得分:3)
仅当字符串中有单个字符
时才会发生这种情况你可以使用这种解决方法来检查字符串的长度是否为1而不是将其转换为小写字符串,
NSString *stringToUtter = @"A";
if (stringToUtter.length==1) {
stringToUtter = [stringToUtter lowercaseString];
}
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:stringToUtter];
utterance.rate = AVSpeechUtteranceMinimumSpeechRate;
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-us"];
[self.synthesizer speakUtterance:utterance];
答案 1 :(得分:0)
使用 IPA标记 (国际语音字母),可以获得完美的发音,而无需解决方法。 :o)
放置一个attributedString
及其适当的属性作为AVSpeechUtterance
实例的传入参数。
要获取音素,建议使用Settings > General > Accessibility > Speech > Pronunciations
(iOS 12)中的iPhone功能⟹如果需要更多详细信息,请参阅此WWDC 2018 video summary。
有关实现的有用信息也可以在此answer中找到。