iOS语音合成

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于iOS语音合成的主要内容,如果未能解决你的问题,请参考以下文章

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

iOS 8 和 XCode 6 上的 AVFoundation 语音合成

Cordova / Phonegap iOS Safari 和语音合成不起作用

Python语音合成(日文翻译)

基于C# 百度AI和科大汛飞语音合成SDK

统计参数语音合成的初学者指南