用于古英语的 AVSpeechSynthesis,带有 IPA 发音。
Example 文件夹包含一个演示此软件包功能的应用程序。
File -> Add Packageshttps://github.com/ryanlintott/OEVoice 并按版本选择。使用 import OEVoice 导入软件包
此软件包与 iOS 14 或更高版本兼容。
实际上,这取决于您。 我目前在自己的 Old English Wordhord app 中使用此软件包。
如果您喜欢这个软件包,请请我喝杯咖啡以表示感谢!
使用 AVSpeechSynthesizerIPA 而不是 AVSpeechSynthesizer 来访问 speakIPA(_ ipaString: String, voice: AVSpeechSynthesisVoice, willSpeak: ((String) -> Void)? = nil)
有 3 种初始化 AVSpeechSynthesizerIPA 的方法
AVSpeechSynthesizerIPA.oeSupported - 使用此方法可确保设置了 OEVoice 支持的语言。AVSpeechSynthesizerIPA.init(language: String) - 强制选择一种语言。AVSpeechSynthesizerIPA.init?(languages: [String]) - 提供一个语言选项列表。在 AVspeechSynthesizer 的 speak() 函数内部,首次运行时会设置一个语言值。它不使用 AVSpeechUtterance 中使用的 AVSpeechSynthesisVoice 提供的语言,而是访问用户的首选语言(可能通过 UserDefaults 键 AppleLanguages)。如果首选语言与语音语言不匹配,则使用 IPA 的语音根本不准确。声音会被错误地发音,一些字符会被读作它们的字符名称而不是它们的声音,并且一些字符会被忽略。
我已经将此报告为一个错误(FB9688443)。 理想情况下,speak() 每次运行都只使用所提供语音的语言,而不需要引用用户的首选语言。
AVspeechSynthesizerIPA 的 init 确保即使在主要语言不兼容的设备上,发音也是准确的。如果用户的第一首选语言不兼容,则 UserDefaults 中的首选语言将临时更改为所需的语言,并在空字符串上运行 speak(),然后将语言更改回原来的语言。