您的位置:首页 > 移动开发 > IOS开发

文本转语音

2015-11-26 11:00 579 查看
转自:http://www.cnblogs.com/qingjoin/p/3160945.html

首先导入系统框架



导入头文件和代理

#import <AVFoundation/AVSpeechSynthesis.h>
<AVSpeechSynthesizerDelegate>


然后

AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:@"Hello World"];  //需要转换的文本
//设置语言类别(不能被识别,返回值为nil)
AVSpeechSynthesisVoice *voiceType = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"];//"zh-CN" 普通话
utterance.voice = voiceType;
// 中文朗诵速度:0.1还能够接受
// 英文朗诵速度:0.3还可以
utterance.rate *= 0.1;//语速
AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc]init];
[av speakUtterance:utterance];


avspeech支持的语言种类包括:

"[AVSpeechSynthesisVoice 0x978a0b0]Language: th-TH",
"[AVSpeechSynthesisVoice 0x977a450]Language: pt-BR",
"[AVSpeechSynthesisVoice 0x977a480]Language: sk-SK",
"[AVSpeechSynthesisVoice 0x978ad50]Language: fr-CA",
"[AVSpeechSynthesisVoice 0x978ada0]Language: ro-RO",
"[AVSpeechSynthesisVoice 0x97823f0]Language: no-NO",
"[AVSpeechSynthesisVoice 0x978e7b0]Language: fi-FI",
"[AVSpeechSynthesisVoice 0x978af50]Language: pl-PL",
"[AVSpeechSynthesisVoice 0x978afa0]Language: de-DE",
"[AVSpeechSynthesisVoice 0x978e390] Language:nl-NL",
"[AVSpeechSynthesisVoice 0x978b030]Language: id-ID",
"[AVSpeechSynthesisVoice 0x978b080]Language: tr-TR",
"[AVSpeechSynthesisVoice 0x978b0d0]Language: it-IT",
"[AVSpeechSynthesisVoice 0x978b120]Language: pt-PT",
"[AVSpeechSynthesisVoice 0x978b170]Language: fr-FR",
"[AVSpeechSynthesisVoice 0x978b1c0]Language: ru-RU",
"[AVSpeechSynthesisVoice0x978b210]Language: es-MX",
"[AVSpeechSynthesisVoice 0x978b2d0]Language: zh-HK",
"[AVSpeechSynthesisVoice 0x978b320]Language: sv-SE",
"[AVSpeechSynthesisVoice 0x978b010]Language: hu-HU",
"[AVSpeechSynthesisVoice 0x978b440]Language: zh-TW",
"[AVSpeechSynthesisVoice 0x978b490]Language: es-ES",
"[AVSpeechSynthesisVoice 0x978b4e0]Language: zh-CN",
"[AVSpeechSynthesisVoice 0x978b530]Language: nl-BE",
"[AVSpeechSynthesisVoice 0x978b580]Language: en-GB",
"[AVSpeechSynthesisVoice 0x978b5d0]Language: ar-SA",
"[AVSpeechSynthesisVoice 0x978b620]Language: ko-KR",
"[AVSpeechSynthesisVoice 0x978b670]Language: cs-CZ",
"[AVSpeechSynthesisVoice 0x978b6c0]Language: en-ZA",
"[AVSpeechSynthesisVoice 0x978aed0]Language: en-AU",
"[AVSpeechSynthesisVoice 0x978af20]Language: da-DK",
"[AVSpeechSynthesisVoice 0x978b810]Language: en-US",
"[AVSpeechSynthesisVoice 0x978b860]Language: en-IE",
"[AVSpeechSynthesisVoice 0x978b8b0]Language: hi-IN",
"[AVSpeechSynthesisVoice 0x978b900]Language: el-GR",
"[AVSpeechSynthesisVoice 0x978b950]Language: ja-JP" )


代码片:

#import "ViewController.h"
#import <AVFoundation/AVSpeechSynthesis.h>
@interface ViewController ()<AVSpeechSynthesizerDelegate>
{
UITextView *textView;
}
@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

textView = [[UITextView alloc] initWithFrame:CGRectMake(50, 100, 250, 100)];
textView.layer.borderColor = [UIColor grayColor].CGColor;
textView.layer.borderWidth = 1;
textView.layer.cornerRadius = 6;
textView.layer.masksToBounds = YES;
[self.view addSubview:textView];

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(100, 300, 100, 50);
[button setTitle:@"转换" forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
button.layer.cornerRadius = 6;
button.layer.masksToBounds = <
a93e
span class="hljs-literal">YES;
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
button.backgroundColor = [UIColor orangeColor];
[self.view addSubview:button];
}
-(void)buttonClick
{
NSLog(@"文字 %@",textView.text);
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:textView.text];  //需要转换的文本
//设置语言类别(不能被识别,返回值为nil)
AVSpeechSynthesisVoice *voiceType = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"];//"zh-CN" 普通话
utterance.voice = voiceType;
// 中文朗诵速度:0.1还能够接受
// 英文朗诵速度:0.3还可以
utterance.rate *= 0.1;//语速
AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc]init];
[av speakUtterance:utterance];
}
@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 语音 文本