iOS开发日记50-文本转语音(TTS)
2015-11-27 14:18
447 查看
今天博主有一个文本转语音(TTS)的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.
文本转语音技术, 也叫TTS, 是Text To Speech的缩写. iOS如果想做有声书等功能的时候, 会用到这门技术.
iOS7之后才有该功能,需要导入 AVFoundation 库
//在iPhone静音模式开启后,声音无法播放,需要打开后台播放
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
//语音合成器, 是最主要的接口
AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc]init];
//要说的一段话,语音合成器的播放内容接口
AVSpeechUtterance *utterance1 = [[AVSpeechUtterance alloc]initWithString:[NSString stringWithFormat:@"%@",@"实时"]]; //需要转换的文本
//读完一段后的停顿时间
utterance1.postUtteranceDelay=0.1;
//说话的速率
utterance1.rate=0.4;
//开始播放内容
[av speakUtterance:utterance1];
AVSpeechSynthesisVoice定义了一系列的声音, 主要是不同的语言和地区.下面是他的几个属性和方法
voiceWithLanguage: 根据制定的语言, 获得一个声音.
speechVoices: 获得当前设备支持的声音
currentLanguageCode: 获得当前声音的语言字符串, 比如”ZH-cn”
language: 获得当前的语言
上面是一段简单的TTS播放,如果想要进行更复杂的操作,可以遵守AVSpeechSynthesizerDelegate协议,实现其方法
合成器的委托, 对于一些事件, 提供了响应的接口.
didCancelSpeechUtterance: 已经取消说话
didContinueSpeechUtterance: 已经继续说话
didFinishSpeechUtterance: 已经说完
didPauseSpeechUtterance: 已经暂停
didStartSpeechUtterance:已经开始
willSpeakRangeOfSpeechString:将要说某段话
文本转语音技术, 也叫TTS, 是Text To Speech的缩写. iOS如果想做有声书等功能的时候, 会用到这门技术.
iOS7之后才有该功能,需要导入 AVFoundation 库
//在iPhone静音模式开启后,声音无法播放,需要打开后台播放
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
//语音合成器, 是最主要的接口
AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc]init];
//要说的一段话,语音合成器的播放内容接口
AVSpeechUtterance *utterance1 = [[AVSpeechUtterance alloc]initWithString:[NSString stringWithFormat:@"%@",@"实时"]]; //需要转换的文本
//读完一段后的停顿时间
utterance1.postUtteranceDelay=0.1;
//说话的速率
utterance1.rate=0.4;
//开始播放内容
[av speakUtterance:utterance1];
AVSpeechSynthesisVoice定义了一系列的声音, 主要是不同的语言和地区.下面是他的几个属性和方法
voiceWithLanguage: 根据制定的语言, 获得一个声音.
speechVoices: 获得当前设备支持的声音
currentLanguageCode: 获得当前声音的语言字符串, 比如”ZH-cn”
language: 获得当前的语言
上面是一段简单的TTS播放,如果想要进行更复杂的操作,可以遵守AVSpeechSynthesizerDelegate协议,实现其方法
合成器的委托, 对于一些事件, 提供了响应的接口.
didCancelSpeechUtterance: 已经取消说话
didContinueSpeechUtterance: 已经继续说话
didFinishSpeechUtterance: 已经说完
didPauseSpeechUtterance: 已经暂停
didStartSpeechUtterance:已经开始
willSpeakRangeOfSpeechString:将要说某段话
相关文章推荐
- iOS中Block介绍 内存管理与其他特性
- 浅谈iOS中的单例模式
- 快速排序的理解
- IOS版AdMob集成KeyMob广告教程
- IOS Framework制作 注意事项
- iOS学习笔记:神奇的IB_DESIGNABLE和IBInspectable
- iOS隐藏导航条1px的底部横线
- iOS 基本的绘图
- 关于iOS Tabbar的一些设置
- iOS判断设备型号
- IOS---加急审核
- iOS Crash文件的解析(二)如何使用symbolicatecrash工具
- IOS- 1970ms时间计算
- iOS 警告收录及科学快速的消除方法
- iOS本地通知详解
- NSDictionary、NSArray、NSString、NSData互转
- iOS开发缺少framework对应错误提示
- IOS技术调研
- iOS企业开发者账号申请流程(未完待续)
- iOS 判断邮箱 手机号 是否正确