iOS语音合成,语音阅读《AVFoundation》->AVSpeechSynthesizer使用方法介绍

本文介绍了如何使用iOS的AVFoundation框架中的AVSpeechSynthesizer进行语音合成和阅读。通过一个简单的语音朗读文字的demo,详细阐述了AVSpeechSynthesizer的使用步骤和AVSpeechUtterance的关键属性,包括发音速度、音调等。同时提供了源代码下载链接。
摘要由CSDN通过智能技术生成

iOS语音合成,语音阅读《AVFoundation》->AVSpeechSynthesizer使用方法介绍

效果图,图片找的网上的

一:写在前面

相关源代码已经上传到网上,里面该有的注释也都有了,感兴趣的同学可以直接上Github下载: AVFoundation相关代码下载地址:点击我就可以了

二:正文

我们有时候在读书软件上可以发现语音朗读功能(读起来好像没什么感情)。其实这个利用iOS系统api就可以实现。下面就通过一个语音朗读文字的demo来讲解该功能的实现步骤。

2.1:AVSpeechSynthesizer介绍

实现该功能核心的部件就是AVSpeechSynthesizer。

NS_CLASS_AVAILABLE_IOS(7_0)
@interface AVSpeechSynthesizer : NSObject

大家看到了么,iOS7.0之后才出现了AVSpeechSynthesizer。AVSpeechSynthesizer具有以下属性:

//代理方法
@property(nonatomic, weak, nullable) id<AVSpeechSynthesizerDelegate> delegate;
//是否正在朗读(只读)
@property(nonatomic, readonly, getter=isSpeaking) BOOL speaking;
//是否已经暂停(只读)
@property(nonatomic, readonly, getter=isPaused) BOOL paused;

支持的方法如下:

//朗读方法,需要一个AVSpeechUtterance类型参数
- (void)speakUtterance:(AVSpeechUtterance *)utterance;

//停止朗读,会清理掉当前正在执行朗读操作的队列    
- (BOOL)stopSpeakingAtBoundary:(AVSpeechBoundary)boundary;
//暂停朗读,这里面需要传递一个AVSpeechBoundary类型参数,两种选择,是立即停止还是读完这个单词再停止。
- (BOOL)pauseSpeakingAtBoundary:(AVSpeechBoundary)boundary;
//继续朗读
- (BOOL)continueSpeaking;

上面提到代理方法,还记得不?下面就是相关的代理方法:

//开始朗读的代理方法
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didStartSpeechUtterance:(AVSpeechUtterance *)utterance;
//结束朗读的代理方法
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didFinishSpeechUtterance:(AVSpeechUtterance *)ut
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值