iOS语音合成

苹果公司在iOS7中推出了语音合成的技术,无需网络环境也可以实现语音合成。

iOS7语音合成的主要的API如下:

1、AVSpeechUtterance,是语音合成的基本单位,它封装影响语音合成的需要的一些参数:语音、语调、语速和延迟等。

2、AVSpeechSynthesisVoice,是语音合成中的Voice对象,它主要包括语音和地区两个方面。

3、AVSpeechSynthesizer,语音合成器的管理类,通过speakUtterance:方法管理AVSpeechSynthesizer。

4、AVSpeechSynthesizerDelegate,是AVSpeechSynthesizer的委托协议。

代码如下:

#import "DemoVC36.h"

#import

@interface DemoVC36 ()@property (weak, nonatomic) IBOutlet UITextView *textView;

@property (weak, nonatomic) IBOutlet UISlider *slider;

@property (nonatomic, strong) AVSpeechSynthesizer *speechSynthesizer;

@end

@implementation DemoVC36

- (void)viewDidLoad {

[super viewDidLoad];

//为TextView

[self.textView.layer setBorderWidth:0.5f];

[self.textView.layer setBorderColor:[UIColor grayColor].CGColor];

[self.textView setDelegate:self];

self.speechSynthesizer = [[AVSpeechSynthesizer alloc] init];

self.speechSynthesizer.delegate = self;

}

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{

BOOL retval = TRUE;

if ([text isEqualToString:@"\n"]) {

[self.textView resignFirstResponder];

retval = FALSE;

}

return retval;

}

- (IBAction)speakButtonWasPressed:(UIButton *)sender {

NSString *str = @"wei fang is a handsome man";

AVSpeechUtterance *utt = [AVSpeechUtterance speechUtteranceWithString:str];

utt.rate = [self.slider value];

[self.speechSynthesizer speakUtterance:utt];

}

- (IBAction)speechSpeedShouldChange:(id)sender {

UISlider *slider = (UISlider *)sender;

NSInteger val = round(slider.value);

NSLog(@"%@",[NSString stringWithFormat:@"%ld",val]);

}

#pragma mark--AVSpeechSynthesizerDelegate

-(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didStartSpeechUtterance:(AVSpeechUtterance *)utterance{

NSLog(@"语音合成开始");

}

-(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didFinishSpeechUtterance:(AVSpeechUtterance *)utterance{

NSLog(@"语音合成完成");

}

@end

时间: 2024-10-04 23:56:06

iOS语音合成的相关文章

iOS语音识别,语音播报,文字变语音播报,语音变文字

首先使用的是科大讯飞的sdk 1.语音识别部分 AppDelegate.m #import "AppDelegate.h" #import <iflyMSC/iflyMSC.h> @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictiona

IOS开发之语音合成(科大讯飞)详解

1.注册讯飞账号,申请APPID(注意选择IOS平台) 2.加载所需要的类库 3.导入所需要的类库文件头 4.调用申请的APPID以及所需函数,完成语音合成(需要参考官方给出的SDK文件) 详细步骤: 一.首先到科大讯飞官网注册账号(http://open.voicecloud.cn/),并创建应用获取appid,下载sdk文件 二.代码实现api调用 1.先用xcode(我这里使用的是xcode 5.1)新建好一个项目,然后在项目添加要用的类库.其中有一个是讯飞语音的类库iflyMSC,在下载

IOS开发学习笔记--语音合成(科大讯飞)

      现在语音服务越来越热,我们平时使用的很多软件都带有语音合成和识别功能,用起来也很方便.说到语音服务,Google和微软都提供过API接口,不过笔者要介绍的是国内的智能语音技术提供商---科大讯飞.之前看过一个比较Google.微软和科大讯飞语音识别引擎的博文(http://fqctyj.blog.163.com/blog/static/70843455201361955322797/),有兴趣可以去看看.笔者接触语音服务的时间也不长,对语音服务也不是很了解,但是拆解过科大讯飞的Dem

[iOS]AVSpeechSynthesizer语音合成

1 #import <AVFoundation/AVFoundation.h> 2 3 // 初始化方法 4 AVSpeechSynthesizer *speech = [[AVSpeechSynthesizer alloc]init]; 5 6 // 设置内容 7 AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString: 8 @"红鲤鱼与绿鲤鱼与驴"]; 9 // 设置语音类型

自己总结的 iOS ,Mac 开源项目以及库,知识点------持续更新

自己在 git  上看到一个非常好的总结的东西,但是呢, fork  了几次,就是 fork  不到我的 git 上,干脆复制进去,但是,也是认真去每一个每一个去认真看了,并且也是补充了一些,感觉非常棒,所以好东西要分享,为啥用 CN 博客,有个好处,可以随时修改,可以持续更新,不用每次都要再发表,感觉这样棒棒的 我们 自己总结的iOS.mac开源项目及库,持续更新.... github排名 https://github.com/trending,github搜索:https://github.

iOS开发 非常全的三方库、插件、大牛博客等等

UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看"使用方法". (国人写) XHRefreshControl- XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHo

iOS、mac开源项目及库汇总

UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看“使用方法”. (国人写) XHRefreshControl – XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHou

最全面的iOS和Mac开源项目和第三方库汇总

UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看“使用方法”. (国人写) XHRefreshControl – XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHou

iOS开发之资料收集

github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github.com/Tim9Liu9/TimLiu-iOS UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者