我自己的小项目里需要用到 text to speech功能,就是把文字用语音读出来。一开始想用讯飞的云语音,但是每次发音都需要和讯飞的服务器通讯才能获取到音频。上网闲逛的时候发现ios7新添加了这个功能,不需要联网,语音合成功能在手机上完成,这样在没有wifi与流量的情况下也可以使用了,就拿来试用一下,官方文档在此:苹果官方文档。
使用非常简单,代码就这么几行:
AVSpeechUtterance *utterance = [AVSpeechUtterance
speechUtteranceWithString:@"hello world"];
AVSpeechSynthesizer *synth = [[AVSpeechSynthesizer alloc] init];
[synth speakUtterance:utterance];
执行以上代码,ios设备就会读出初始化 AVSpeechUtterance 对象时所用的 NSString 对象,以上代码读出的是“hello world”。
AVSpeechUtterance 对象有一些属性,可以设置发出声音的效果:
可以修改速度、音量等。
我测试的时候发现读一个英文单词效果还可以,但是读好多词的英文句子的时候,上一个词还没读完,下一个词已经开始读了。也许还需要额外设置。
读中文的效果很好,是普通话发音,能读很长的句子,我试着读了一篇新闻,效果不错。