ios文本转语音

我的blog原文地址https://xing-ou.github.io/2016/05/12/ios文本到语音/
今天实现ios的文本转语音,看了下api,很简单,开始吧

需要import AVFoundation

AVSpeechSynthesizer:用它来“说”

AVSpeechUtterance :代表我们想要说的内容

AVSpeechSynthesisVoice:代表说的声音(☞语言 :英语或中文等)

AVSpeechSynthesizer

官方文档

//说一段语音,调用这个方法会把要说的加入到一个队列,播放时以加入队列的先后播放
func speakUtterance(_ utterance: AVSpeechUtterance) 
//对播放的 暂停 开始之类的控制
func continueSpeaking() -> Bool//继续播放,成功返回true
//暂停播放,AVSpeechBoundary控制是立即停止,还是把当前的单词说完再停
func pauseSpeakingAtBoundary(_ boundary: AVSpeechBoundary) -> Bool
var paused: Bool { get }//查询是否暂停了
var speaking: Bool { get }//查询是否正在说话
//停止说话,AVSpeechBoundary控制是立即停止,还是把当前的单词说完再停
func stopSpeakingAtBoundary(_ boundary: AVSpeechBoundary) -> Bool
///代理,提供对暂停,开始之类的监听,还能通过代理知道即将读到哪里,
unowned(unsafe) var delegate: AVSpeechSynthesizerDelegate?   

AVSpeechUtterance

///通过想要读的字符串来初始化
init(string string: String)
///初始化完成后,还能够对声音进行特殊配置
var pitchMultiplier: Float//0.5-2.0,0.5有点偏男声,2.0能够实现鬼畜效果
var postUtteranceDelay: NSTimeInterval
var preUtteranceDelay: NSTimeInterval
var rate: Float //0.0 - 1.0,默认0.5
var voice: AVSpeechSynthesisVoice? //语音,中文只能用中文的语音播放(有香港版zh-HK,台湾版zh-TW,大陆版zh-CN)
var volume: Float//声音

AVSpeechSynthesisVoice

print(AVSpeechSynthesisVoice.speechVoices())//能打印出所有支持的voice

朗读

 let utterance = AVSpeechUtterance(string: "农业不发达,要用金坷垃。日本资源太缺乏必须要用金坷垃,掺了金坷垃,不浪费蒸发,掺了金坷垃能吸收两米下的氮磷钾,世界肥料都涨价,我们都要金坷垃,肥料掺了金坷垃不流失不浪费蒸发,肥料掺金坷垃金坷垃能吸收氮磷钾,肥料掺了金坷垃一代能顶两袋撒,肥料掺了金坷垃坷垃小麦亩产一千八,农业不发达,要用金坷垃,日本资源太缺乏必须要用金坷垃,掺了金坷垃,不浪费蒸发,掺了金坷垃能吸收两米下的氮磷钾,世界肥料都涨价,我们都要金坷垃,肥料掺了金坷垃不流失不浪费蒸发,肥料掺金坷垃金坷垃能吸收氮磷钾,非洲农业不发达,必须要用金坷垃,日本资源太缺乏必须有金坷垃,肥料掺了金坷垃一代能顶两袋撒,日本肥料掺了金坷垃粮食不进口啦,非洲农业不发达,必须要用金坷垃,日本资源太缺乏必须有金坷垃,亩产一千八,拉拉,日本鬼子真不傻,不能给了他金坷垃,给了他对美国农业,对非洲危害大,非洲农业不发达,必须要用金坷垃,日本资源太缺乏必须有金坷垃,肥料掺了金坷垃一代能顶两袋撒,日本肥料掺了金坷垃粮食不进口啦,我要金坷垃我要金坷垃,日本粮食有了金坷垃再不进口啦,非洲不发达我们支援他,你们日本鬼子不要想别想金坷垃。")
     
        utterance.voice = AVSpeechSynthesisVoice(language: "zh-TW")
        utterance.rate = 0.55 //嫌 金坷垃 太慢,调高点 范围0.5 - 1.0
        utterance.pitchMultiplier = 2.0 //类似于鬼畜效果,慎用
        let speechSynthesizer = AVSpeechSynthesizer()
        speechSynthesizer.speakUtterance(utterance)

demo地址

https://github.com/xing-ou/blogdemo/blob/master/TextToVoiceDemo.zip

你可能感兴趣的:(ios文本转语音)