AVSpeechSynthesizer 文字转语音
AVSpeechSynthesizer Text-To-Speech
带有 en-us 语音的 AVSpeechsynthesizer "A" 的发音是 "Capital A" 但只想要 "A" 如何做到这一点?
只有当字符串中有单个字符时才会发生这种情况,
您可以使用此解决方法来检查字符串的长度是否为 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];
完美的发音得益于国际音标(国际音标),无需变通。 :o)
将具有适当属性的 attributedString
作为 AVSpeechUtterance
实例的传入参数。
如果您需要更多详细信息,请发送至 get the phonemes, I suggest to use the iPhone feature located at Settings > General > Accessibility > Speech > Pronunciations
(iOS 12) ⟹ see this WWDC 2018 video summary。
也可以在此 answer 中找到有关实施的有用信息。
带有 en-us 语音的 AVSpeechsynthesizer "A" 的发音是 "Capital A" 但只想要 "A" 如何做到这一点?
只有当字符串中有单个字符时才会发生这种情况,
您可以使用此解决方法来检查字符串的长度是否为 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];
完美的发音得益于国际音标(国际音标),无需变通。 :o)
将具有适当属性的 attributedString
作为 AVSpeechUtterance
实例的传入参数。
如果您需要更多详细信息,请发送至 get the phonemes, I suggest to use the iPhone feature located at Settings > General > Accessibility > Speech > Pronunciations
(iOS 12) ⟹ see this WWDC 2018 video summary。
也可以在此 answer 中找到有关实施的有用信息。