控制:我们一定要学会控制

尤达大师(电影《星球大战》)有话:的关键在于控制。这本故事书是一个字一个字读出来,我愿意为它添加两个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)的更多相关文章

  1. 怎样使用 iOS 7 的 AVSpeechSynthesizer 制作有声书(1)

    原文: http://www.raywenderlich.com/64623/make-narrated-book-using-avspeechsynthesizer-ios-7 随着 PageVie ...

  2. 怎样使用 iOS 7 的 AVSpeechSynthesizer 制作有声书(3)

    plist 中的每一页 utteranceSting 我们都创建了一个RWTPage.displayText.因此,每页的文本会一次性地显示出来. 由于 You've constructedeach ...

  3. 怎样使用 iOS 7 的 AVSpeechSynthesizer 制作有声书(2)

    切分语句 软件project的一条定律是数据和代码分离.这样做会使代码更易于測试,即使输入的数据发生改变,你的代码也能够同意.甚至于,程序能在执行中实时下载新的数据.假设程序能在执行中下载新书岂不是更 ...

  4. Unity3D开发之“获取IOS设备所在的国家代码"

    原地址:http://dong2008hong.blog.163.com/blog/static/469688272014021025578/ 在前一段时间游戏开发中需要实现获取IOS设备所在的国家代 ...

  5. 一个Android音频文本同步的英文有声读物App的开发过程

    转发: http://segmentfault.com/a/1190000003498111 “新概念英语”.“可可英语”.“亚马逊的audible有声书”.“扇贝听力”是我目前所知道的实现英文语音和 ...

  6. DS1515+

    DS1515+ 2021年05月02日 0 2.4k aahk   DS1515+ 2021年05月02日 这篇文章用于记录.改进.提高.分享我在使用群晖DS1515+网络存储服务器过程中的具体操作. ...

  7. [转]App Store 审核、限时免费、排行、推荐机制技巧精华汇总

    在 App Store 上,什么样的应用会得到推荐? 这个问题问的非常大,而且编辑推荐很多个人元素在里面,我试着用推荐Ovi Store应用的思路来回答一下: 关于应用: 1.首先这个应用最基本的功能 ...

  8. 自然语言处理NLP快速入门

    自然语言处理NLP快速入门 https://mp.weixin.qq.com/s/J-vndnycZgwVrSlDCefHZA [导读]自然语言处理已经成为人工智能领域一个重要的分支,它研究能实现人与 ...

  9. 微信小程序个人/企业开放服务类目一览表

    微信小程序个人/企业开放服务类目一览表   微信小程序个人开放服务类目表 服务类目 类目分类一 类目分类二 引导描述 出行与交通 代驾 / / 生活服务 家政.丽人.摄影/扩印.婚庆服务.环保回收/废 ...

随机推荐

  1. MySQL 全角转换为半角

    ​序言:       用户注冊时候,录入了全角手机号码,所以导致短信系统依据手机字段发送短信失败.如今问题来了,怎样把全角手机号码变成半角手机号码? 1.手机号码全角转换成半角先查询出来全角半角都存在 ...

  2. Ubuntu 12.04 安装 Tomcat8 遇到的问题

    问题: :/tomcat8/bin$ sudo ./configtest.sh Using CATALINA_BASE:   /home/yyb/android/tomcat8 Using CATAL ...

  3. apache cxf之 一个简单的JAX-WS服务程序

    推荐一本apache cxf的书籍: apache cxf的配置,这边就不做介绍了.请参照我关于它配置的博文. 开发步骤: 1.新建Java project,build path引入cxf runti ...

  4. jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令

    jstack(查看线程).jmap(查看内存)和jstat(性能分析)命令   公司内部同事分享的一篇文章 周末看到一个用jstack查看死锁的例子.昨天晚上总结了一下jstack(查看线程).jma ...

  5. (23)unity4.6学习Ugui中国文档-------非官方Demo1

    大家好,我是广东太阳.   转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unitym ...

  6. NET MVC异常处理模块

    一个简单的ASP.NET MVC异常处理模块   一.前言 异常处理是每个系统必不可少的一个重要部分,它可以让我们的程序在发生错误时友好地提示.记录错误信息,更重要的是不破坏正常的数据和影响系统运行. ...

  7. Bash ShellShock 解决办法

    2014 年 9 月 24 日,Bash 惊爆严重安全漏洞,编号为 CVE-2014-6271,该漏洞将导致远程攻击者在受影响的系统上执行任意代码.GNU Bash 是一个为 GNU 计划编写的 Un ...

  8. Android开发调节屏幕亮度

    在播放器,我们经常看到这样的设计,即,在用户的特定部分将能够滑动屏幕向上或向下调整屏幕的亮度,上下滑动的某一部分将能够调整播放音量.并以滑动的进程可以进行调整,以玩. 如今,我不得不说一下亮度调节. ...

  9. python常用类型的内置函数列表

    1.list.append(obj)         向列表中加入一个对象obj fruits = ['apple', 'pear', 'orange'] >>> fruits.ap ...

  10. mysql回想一下基础知识

    创建数据库 creat table test( #整数通常用于int test_id int, #十进制通常使用decimal test_price decimal, #普通文本通常使用.并使用Def ...