如何使用 iOS 7 的 AVSpeechSynthesizer 国家有声读物(4)
控制:我们一定要学会控制
尤达大师(电影《星球大战》)有话:的关键在于控制。这本故事书是一个字一个字读出来,我愿意为它添加两个button,音调和语速,以便我们能够调整语音合成实时的时候。
还是 RWTPageViewController.m,在nextSpeechIndex 属性后声明下列属性:
|
; , , , , , , , , , , , , , , , ; // 1 utterance.pitchMultiplier = self.currentPitchMultiplier; // 2 utterance.rate = self.currentRate; [self.synthesizer speakUtterance:utterance]; } } |
假设你点击了 lower/raise button。则新设置的值将在下一句朗读中得到应用。
编译执行。例如以下图所看到的:

触摸或点击这些button,然后注意发音的变化。
尤达确实非常厉害,哪怕你不是杰迪也能够成为大师(AVSpeechSynthesizer 方面的)。
结尾
这里能够下载 完整的项目代码。
希望本文能成为激发你开发自己的有声书的动力。假设你想知道很多其它的关于怎样对合成语音进行调优的技巧,请看以下:
最佳有声书WhirlySquirrelly.plist竞赛
说明:请尝试进一步调优 WhirlySquirrelly.plist,并上传至论坛或者本文留言里。
我们会评出当中的优胜者,并在评论中加以褒扬。
同意用户选择图书
说明: 加入一个“Choose Book” button。并在 UIPopoverController中显示一个可选的图书列表。当用户选择某本图书,在 RWTPageViewController 中重置 book 对象并显示新书。
从 Web 上下载图书
说明:将书籍以 plist 格式存储在 webserver或者提供相似 AWS S3 或者 Heroku 的服务。server先要提供一个 url列表。列出全部图书,然后再提供一个能够下载某本书的服务。
在前一个功能中,将图书的链接加入进去。
念到词高亮显示
提示: 使用AVSpeechSynthesizerDelegate 托付中的方法
在 speechSynthesizer:didStartSpeechUtterance:方法中。高亮指定的 utterance。
在 speechSynthesizer:didFinishSpeechUtterance:方法中。将高亮的 utterance 去高亮。你能够用 pageTextLable 的 attributedText 属性,通过NSAttributedString 设置不同的背景色和字体属性以实现加亮效果。
在第一页显示书名
Addthe Ability to Display a Title Page Before All Other Pages
说明:在 RWTPageViewController 之前加入额外的 viewController,并设置 Main.storyboard 新的属性已启用viewcontroller。他们俩 ViewController 随着 UINavigationController 经营。 为此,您可以更改 Page 类的设计,并分成声 Page 和沉默 Page,然后换 RWTPageViewController 我们可以用这两种不同的处理Page。
如何使用 iOS 7 的 AVSpeechSynthesizer 国家有声读物(4)的更多相关文章
- 怎样使用 iOS 7 的 AVSpeechSynthesizer 制作有声书(1)
原文: http://www.raywenderlich.com/64623/make-narrated-book-using-avspeechsynthesizer-ios-7 随着 PageVie ...
- 怎样使用 iOS 7 的 AVSpeechSynthesizer 制作有声书(3)
plist 中的每一页 utteranceSting 我们都创建了一个RWTPage.displayText.因此,每页的文本会一次性地显示出来. 由于 You've constructedeach ...
- 怎样使用 iOS 7 的 AVSpeechSynthesizer 制作有声书(2)
切分语句 软件project的一条定律是数据和代码分离.这样做会使代码更易于測试,即使输入的数据发生改变,你的代码也能够同意.甚至于,程序能在执行中实时下载新的数据.假设程序能在执行中下载新书岂不是更 ...
- Unity3D开发之“获取IOS设备所在的国家代码"
原地址:http://dong2008hong.blog.163.com/blog/static/469688272014021025578/ 在前一段时间游戏开发中需要实现获取IOS设备所在的国家代 ...
- 一个Android音频文本同步的英文有声读物App的开发过程
转发: http://segmentfault.com/a/1190000003498111 “新概念英语”.“可可英语”.“亚马逊的audible有声书”.“扇贝听力”是我目前所知道的实现英文语音和 ...
- DS1515+
DS1515+ 2021年05月02日 0 2.4k aahk DS1515+ 2021年05月02日 这篇文章用于记录.改进.提高.分享我在使用群晖DS1515+网络存储服务器过程中的具体操作. ...
- [转]App Store 审核、限时免费、排行、推荐机制技巧精华汇总
在 App Store 上,什么样的应用会得到推荐? 这个问题问的非常大,而且编辑推荐很多个人元素在里面,我试着用推荐Ovi Store应用的思路来回答一下: 关于应用: 1.首先这个应用最基本的功能 ...
- 自然语言处理NLP快速入门
自然语言处理NLP快速入门 https://mp.weixin.qq.com/s/J-vndnycZgwVrSlDCefHZA [导读]自然语言处理已经成为人工智能领域一个重要的分支,它研究能实现人与 ...
- 微信小程序个人/企业开放服务类目一览表
微信小程序个人/企业开放服务类目一览表 微信小程序个人开放服务类目表 服务类目 类目分类一 类目分类二 引导描述 出行与交通 代驾 / / 生活服务 家政.丽人.摄影/扩印.婚庆服务.环保回收/废 ...
随机推荐
- MySQL 全角转换为半角
序言: 用户注冊时候,录入了全角手机号码,所以导致短信系统依据手机字段发送短信失败.如今问题来了,怎样把全角手机号码变成半角手机号码? 1.手机号码全角转换成半角先查询出来全角半角都存在 ...
- Ubuntu 12.04 安装 Tomcat8 遇到的问题
问题: :/tomcat8/bin$ sudo ./configtest.sh Using CATALINA_BASE: /home/yyb/android/tomcat8 Using CATAL ...
- apache cxf之 一个简单的JAX-WS服务程序
推荐一本apache cxf的书籍: apache cxf的配置,这边就不做介绍了.请参照我关于它配置的博文. 开发步骤: 1.新建Java project,build path引入cxf runti ...
- jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
jstack(查看线程).jmap(查看内存)和jstat(性能分析)命令 公司内部同事分享的一篇文章 周末看到一个用jstack查看死锁的例子.昨天晚上总结了一下jstack(查看线程).jma ...
- (23)unity4.6学习Ugui中国文档-------非官方Demo1
大家好,我是广东太阳. 转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unitym ...
- NET MVC异常处理模块
一个简单的ASP.NET MVC异常处理模块 一.前言 异常处理是每个系统必不可少的一个重要部分,它可以让我们的程序在发生错误时友好地提示.记录错误信息,更重要的是不破坏正常的数据和影响系统运行. ...
- Bash ShellShock 解决办法
2014 年 9 月 24 日,Bash 惊爆严重安全漏洞,编号为 CVE-2014-6271,该漏洞将导致远程攻击者在受影响的系统上执行任意代码.GNU Bash 是一个为 GNU 计划编写的 Un ...
- Android开发调节屏幕亮度
在播放器,我们经常看到这样的设计,即,在用户的特定部分将能够滑动屏幕向上或向下调整屏幕的亮度,上下滑动的某一部分将能够调整播放音量.并以滑动的进程可以进行调整,以玩. 如今,我不得不说一下亮度调节. ...
- python常用类型的内置函数列表
1.list.append(obj) 向列表中加入一个对象obj fruits = ['apple', 'pear', 'orange'] >>> fruits.ap ...
- mysql回想一下基础知识
创建数据库 creat table test( #整数通常用于int test_id int, #十进制通常使用decimal test_price decimal, #普通文本通常使用.并使用Def ...