iOS7以后提供了AVSpeechSynthesizer
这个类来实现文字转语音的功能,要想使用这个类,首先要导入AVFoundation.framework
这个框架,至于使用方法话不多说,直接上代码:
//创建语音合成器
let synchronizer = AVSpeechSynthesizer()
//创建说话方式。说话方式可以传递到语音合成器来生成一段语音流
let utterance = AVSpeechUtterance(string: "你是谁")
//创建嗓音,如果嗓音不存在则返回nil
let voiceType = AVSpeechSynthesisVoice(language: "zh-CN")
//设置说话方式的嗓音
utterance.voice = voiceType
//设置说话的速率
utterance.rate = 0.5
//将说话方式放入语音合成器
synchronizer.speakUtterance(utterance)
通过上面几行代码就可以实现将“你是谁”这段文字转为中文语音输出,当然还可以转为其他语言。通过以下方法,可以遍历支持转化的所有语言:
//遍历输出支持的语言
for voice in AVSpeechSynthesisVoice.speechVoices() {
print(voice.language)
}
只需将AVSpeechSynthesisVoice(language: "zh-CN")
里面的“zh-CN”改为对应的语言即可。