IOS 7 文本转语音的实现
2014-06-11 16:44
232 查看
转自:http://blog.csdn.net/ochuncui1/article/details/18622859
在IOS7之前一般语音识别是靠一些第三方库,或者使用谷歌语音接口, 其中谷歌的语音接口最好。
伟大的谷歌~~ 不过现在升级的IOS自带文本转语音也非常不错,支持很多种文字,不过声音有点难听:
IOS 7 文本转语音的实现
实现TTS主要依赖AVSpeechSynthesizer,AVSpeechUtterance,AVSpeechSynthesisVoice,要使用这些类必须先加入
AVFoundation框架:
AVSpeechSynthesisVoice:用来配置发音,支持的发音非常多.个人感觉台湾发音最好听~通过调用
[AVSpeechSynthesisVoicespeechVoices]类方法可用看到支持的发音种类;
AVSpeechUtterance:这个类就是用来将字符串合成为语音对象提供给AVSpeechSynthesizer来播放,这个类还有一些
实例方法用来控制语速,音调等等。。
实现代码:
AVSpeechUtterance *utterance = [AVSpeechUtterancespeechUtteranceWithString:@“hello”];
//英式发音
AVSpeechSynthesisVoice *voice = [AVSpeechSynthesisVoicevoiceWithLanguage:@“en-GB”];
utterance.voice = voice;
NSLog(@"%@",[AVSpeechSynthesisVoicespeechVoices]);
AVSpeechSynthesizer *synth = [[AVSpeechSynthesizeralloc]init];
[synth speakUtterance:utterance];
使用SDK自带的方法实现TTS非常的简单,不过只有IOS7以上才支持这些方法,所有还是得找个替代方法;
使用谷歌接口实现TTS
使用谷歌接口实现文本转语音一般的方法就是上传一段文字到谷歌的接口,然后它返回一个MP3格式的音频。下载下来播放。这种方法比较麻烦。
在我用webView的时候发现了个可以偷懒的方法。在webView中有个属性可以自动播放网页上的流媒体,只要设置这个属性就可以不用下载也直
接播放音频。
实现代码
NSString *str = [NSStringstringWithFormat:@"http:
//translate.google.com/translate_tts?tl=en&q=%@",@“hello”];
NSURL *url = [NSURLURLWithString:str];
NSURLRequest *request = [[NSURLRequestalloc]initWithURL:url];
UIWebView *webView = [[UIWebViewalloc]init];
webView.allowsInlineMediaPlayback = YES;//设置这个属性webView就会自动播网页上的流媒体,ipad是默认YES;
//iPhone Safari defaults to NO. iPad Safari defaults toYES
//现在只要加载这个页面,在加载完成后就会播放你选择的文字了.
[self.webViewloadRequest:request];
PS: 接下来我会写一些在IOS上实现语音识别的内容,在IOS上将录制的PCM格式的录音转换成FLAC格式,然后上传到谷歌接口进行语音识别,有兴趣的继续关注~~
在IOS7之前一般语音识别是靠一些第三方库,或者使用谷歌语音接口, 其中谷歌的语音接口最好。
伟大的谷歌~~ 不过现在升级的IOS自带文本转语音也非常不错,支持很多种文字,不过声音有点难听:
IOS 7 文本转语音的实现
实现TTS主要依赖AVSpeechSynthesizer,AVSpeechUtterance,AVSpeechSynthesisVoice,要使用这些类必须先加入
AVFoundation框架:
AVSpeechSynthesisVoice:用来配置发音,支持的发音非常多.个人感觉台湾发音最好听~通过调用
[AVSpeechSynthesisVoicespeechVoices]类方法可用看到支持的发音种类;
AVSpeechUtterance:这个类就是用来将字符串合成为语音对象提供给AVSpeechSynthesizer来播放,这个类还有一些
实例方法用来控制语速,音调等等。。
实现代码:
AVSpeechUtterance *utterance = [AVSpeechUtterancespeechUtteranceWithString:@“hello”];
//英式发音
AVSpeechSynthesisVoice *voice = [AVSpeechSynthesisVoicevoiceWithLanguage:@“en-GB”];
utterance.voice = voice;
NSLog(@"%@",[AVSpeechSynthesisVoicespeechVoices]);
AVSpeechSynthesizer *synth = [[AVSpeechSynthesizeralloc]init];
[synth speakUtterance:utterance];
使用SDK自带的方法实现TTS非常的简单,不过只有IOS7以上才支持这些方法,所有还是得找个替代方法;
使用谷歌接口实现TTS
使用谷歌接口实现文本转语音一般的方法就是上传一段文字到谷歌的接口,然后它返回一个MP3格式的音频。下载下来播放。这种方法比较麻烦。
在我用webView的时候发现了个可以偷懒的方法。在webView中有个属性可以自动播放网页上的流媒体,只要设置这个属性就可以不用下载也直
接播放音频。
实现代码
NSString *str = [NSStringstringWithFormat:@"http:
//translate.google.com/translate_tts?tl=en&q=%@",@“hello”];
NSURL *url = [NSURLURLWithString:str];
NSURLRequest *request = [[NSURLRequestalloc]initWithURL:url];
UIWebView *webView = [[UIWebViewalloc]init];
webView.allowsInlineMediaPlayback = YES;//设置这个属性webView就会自动播网页上的流媒体,ipad是默认YES;
//iPhone Safari defaults to NO. iPad Safari defaults toYES
//现在只要加载这个页面,在加载完成后就会播放你选择的文字了.
[self.webViewloadRequest:request];
PS: 接下来我会写一些在IOS上实现语音识别的内容,在IOS上将录制的PCM格式的录音转换成FLAC格式,然后上传到谷歌接口进行语音识别,有兴趣的继续关注~~
相关文章推荐
- iOS自带文本转语音技术(TTS)的实现即语音播报的实践
- VC编程实现文本语音转换
- VC编程实现文本语音转换
- 封装微软TTS实现web系统文本转语音
- [IOS]使用genstrings和NSLocalizedString实现App文本的本地化
- [IOS]使用genstrings和NSLocalizedString实现App文本的本地化
- VC编程实现文本语音转换
- 关于几个iOS 7 API的功能分析:文本转语音、免费托管IAP以及3D地图等
- IOS 使用CoreText实现表情文本URL等混合显示控件
- (ios实战) UINavigationBar 返回按钮 文本自定义实现
- C#语音朗读文本 — TTS的实现
- VC编程实现文本语音转换
- 文本转声音,TTS语音实现
- IOS 文本高度自适应变化实现实例
- ios知识点总结——富文本实现图文混排
- 使用文本语音开发包实现语音朗读功能
- iOS菜鸟学习——如何实现Label文本自适应
- 网络传输文本,urlEncode和urldecode的iOS实现。
- IOS 实现TXT文本自动识别编码的方法。
- C#语音朗读文本 — TTS的实现