1.第一步导入framework

2.导入头文件

#import <AVFoundation/AVSpeechSynthesis.h>

3. 设置代理 并写下面方法  (注:代理方法用不到可以不用 遵循代理 和代理方法)

//遵循代理 AVSpeechSynthesizerDelegate
// 文本读语音方法 stra是要读的文本
- (void)boFangTextWithString:(NSString *)stra
{
//初始化语音合成器
_avSpeaker = [[AVSpeechSynthesizer alloc] init];
_avSpeaker.delegate = self;
//初始化要说出的内容
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:stra];
//设置语速,语速介于AVSpeechUtteranceMaximumSpeechRate和AVSpeechUtteranceMinimumSpeechRate之间
//AVSpeechUtteranceMaximumSpeechRate
//AVSpeechUtteranceMinimumSpeechRate
//AVSpeechUtteranceDefaultSpeechRate
utterance.rate = 0.5; //设置音高,[0.5 - 2] 默认 = 1
//AVSpeechUtteranceMaximumSpeechRate
//AVSpeechUtteranceMinimumSpeechRate
//AVSpeechUtteranceDefaultSpeechRate
utterance.pitchMultiplier = ; //设置音量,[0-1] 默认 = 1
utterance.volume = ; //读一段前的停顿时间
utterance.preUtteranceDelay = ;
//读完一段后的停顿时间
utterance.postUtteranceDelay = ; //设置声音,是AVSpeechSynthesisVoice对象
//AVSpeechSynthesisVoice定义了一系列的声音, 主要是不同的语言和地区.
//voiceWithLanguage: 根据制定的语言, 获得一个声音.
//speechVoices: 获得当前设备支持的声音
//currentLanguageCode: 获得当前声音的语言字符串, 比如”ZH-cn”
//language: 获得当前的语言
//通过特定的语言获得声音
AVSpeechSynthesisVoice *voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"];
//通过voicce标示获得声音
//AVSpeechSynthesisVoice *voice = [AVSpeechSynthesisVoice voiceWithIdentifier:AVSpeechSynthesisVoiceIdentifierAlex];
utterance.voice = voice;
//开始朗读
[_avSpeaker speakUtterance:utterance];
}
#pragma mark - AVSpeechSynthesizerDelegate
//已经开始
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didStartSpeechUtterance:(AVSpeechUtterance *)utterance{ }
//已经说完
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didFinishSpeechUtterance:(AVSpeechUtterance *)utterance{ //如果朗读要循环朗读,可以在这里再次调用朗读方法
//[_avSpeaker speakUtterance:utterance];
}
//已经暂停
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didPauseSpeechUtterance:(AVSpeechUtterance *)utterance{ }
//已经继续说话
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didContinueSpeechUtterance:(AVSpeechUtterance *)utterance{ }
//已经取消说话
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didCancelSpeechUtterance:(AVSpeechUtterance *)utterance{ }
//将要说某段话
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer willSpeakRangeOfSpeechString:(NSRange)characterRange utterance:(AVSpeechUtterance *)utterance{ }

以下代码 只是选择语言用

[AVSpeechSynthesisVoice 0x978a0b0] Language: th-TH",

"[AVSpeechSynthesisVoice 0x977a450] Language: pt-BR",

"[AVSpeechSynthesisVoice 0x977a480] Language: sk-SK",

"[AVSpeechSynthesisVoice 0x978ad50] Language: fr-CA",

"[AVSpeechSynthesisVoice 0x978ada0] Language: ro-RO",

"[AVSpeechSynthesisVoice 0x97823f0] Language: no-NO",

"[AVSpeechSynthesisVoice 0x978e7b0] Language: fi-FI",

"[AVSpeechSynthesisVoice 0x978af50] Language: pl-PL",

"[AVSpeechSynthesisVoice 0x978afa0] Language: de-DE",

"[AVSpeechSynthesisVoice 0x978e390] Language: nl-NL",

"[AVSpeechSynthesisVoice 0x978b030] Language: id-ID",

"[AVSpeechSynthesisVoice 0x978b080] Language: tr-TR",

"[AVSpeechSynthesisVoice 0x978b0d0] Language: it-IT",

"[AVSpeechSynthesisVoice 0x978b120] Language: pt-PT",

"[AVSpeechSynthesisVoice 0x978b170] Language: fr-FR",

"[AVSpeechSynthesisVoice 0x978b1c0] Language: ru-RU",

"[AVSpeechSynthesisVoice 0x978b210] Language: es-MX",

"[AVSpeechSynthesisVoice 0x978b2d0] Language: zh-HK",中文(香港)粤语

"[AVSpeechSynthesisVoice 0x978b320] Language: sv-SE",

"[AVSpeechSynthesisVoice 0x978b010] Language: hu-HU",

"[AVSpeechSynthesisVoice 0x978b440] Language: zh-TW",中文(台湾)

"[AVSpeechSynthesisVoice 0x978b490] Language: es-ES",

"[AVSpeechSynthesisVoice 0x978b4e0] Language: zh-CN",中文(普通话)

"[AVSpeechSynthesisVoice 0x978b530] Language: nl-BE",

"[AVSpeechSynthesisVoice 0x978b580] Language: en-GB",英语(英国)

"[AVSpeechSynthesisVoice 0x978b5d0] Language: ar-SA",

"[AVSpeechSynthesisVoice 0x978b620] Language: ko-KR",

"[AVSpeechSynthesisVoice 0x978b670] Language: cs-CZ",

"[AVSpeechSynthesisVoice 0x978b6c0] Language: en-ZA",

"[AVSpeechSynthesisVoice 0x978aed0] Language: en-AU",

"[AVSpeechSynthesisVoice 0x978af20] Language: da-DK",

"[AVSpeechSynthesisVoice 0x978b810] Language: en-US",英语(美国)

"[AVSpeechSynthesisVoice 0x978b860] Language: en-IE",

"[AVSpeechSynthesisVoice 0x978b8b0] Language: hi-IN",

"[AVSpeechSynthesisVoice 0x978b900] Language: el-GR",

"[AVSpeechSynthesisVoice 0x978b950] Language: ja-JP"

最新文章

  1. WPF入门教程系列十——布局之Border与ViewBox(五)
  2. CSS实现底部固定
  3. 并发案例--ScheduledExecutorService用法
  4. iOS调用系统功能发邮件
  5. CentOS中的chkconfig命令
  6. Spring dataSource
  7. IOS各类问题
  8. 浅C#中的装箱和拆箱
  9. NMF和SVD在推荐系统中的应用(实战)
  10. 关于java的自动拆装箱若干细节问题
  11. javascript 备忘 细节 相关
  12. tesserat训练中文备忘录
  13. Android Studio导包无效,全部报红
  14. Confluence 6 CSS 编辑快速入门
  15. 【java并发核心二】Exchanger的使用
  16. Lambda学习---方法引用和其他基本应用
  17. 深入理解Java之线程池(爱奇艺面试)
  18. 【读】为什么BIO效率低下
  19. CheeseZH: Stanford University: Machine Learning Ex2:Logistic Regression
  20. CentOS下编译安装LNMP环境

热门文章

  1. iOS数据持久化存储之归档NSKeyedArchiver
  2. 最近采集写的一个超简单实用的HTML解析类
  3. 维特比算法(Viterbi)
  4. java 基础 - 查找某个字串出现的次数及位置
  5. java对象的初始化过程和创建对象的几种方式
  6. QT(1)介绍
  7. JSOI2008星球大战——联通块数量
  8. Out of resources when opening file ‘./xxx.MYD’ (Errcode: 24)解决方法
  9. TCP/IP 详解卷一之 HTTP协议
  10. VijosP1112:小胖的奇偶