AVSpeechSynthesizer文字转语音

时间:2016-07-22 05:55:24

标签: ios text-to-speech avspeechsynthesizer

带有en-us声音的AVSpeechsynthesizer是" A"是"资本A"但只是想" A"怎么办?

2 个答案:

答案 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中找到。