iOS7 文本转语音 AVSpeechSynthesizer

时间:2023-03-08 22:03:56
iOS7 文本转语音 AVSpeechSynthesizer

OS7 的这个功能确实不错。我刚试了下,用官方提供的API ,简单的几句代码就能实现文本转语音!

Xcode 5.0

工程建好后首先把AVFoundation.framework 加入到工程

iOS7 文本转语音 AVSpeechSynthesizer

 AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc]init];
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:@"Hello qingjoin"]; //需要转换的文本
[av speakUtterance:utterance];
//以上三行代码就可以搞定文本转语音 有API就是省事。哈哈
iOS7 文本转语音 AVSpeechSynthesizer
/*******************************************************/
//具体可参考以下demo 记得.h文件里别忘记了这个哦
#import <AVFoundation/AVSpeechSynthesis.h> //
// ViewController.m
// AVideoSpeechDemo
//
// Created by qingyun on 6/28/13.
// Copyright (c) 2013 qingyun. All rights reserved.
//
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad
{
[super viewDidLoad];
_textS.delegate = self;
// Do any additional setup after loading the view, typically from a nib.
} - (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} - (IBAction)textToSpeechBtnPress:(id)sender
{
AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc]init];
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:_textS.text]; //需要转换的文本
[av speakUtterance:utterance];
} -(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
} @end
iOS7 文本转语音 AVSpeechSynthesizer

2013-06-28 14:54:07.817 AVideoSpeechDemo[5468:60b] Enqueue: <AXSpeechAction: 0x166d9820> hello :Pitch 1.000000 : Language: (null)

2013-06-28 14:54:22.791 AVideoSpeechDemo[5468:60b] Enqueue: <AXSpeechAction: 0x166f94f0> hello, qingjoin :Pitch 1.000000 : Language: (null)

2013-06-28 15:06:42.424 AVideoSpeechDemo[5468:60b] Enqueue: <AXSpeechAction: 0x166f3af0> 你好,我是qingjoin ! hello :Pitch 1.000000 : Language: (null)

iOS7 文本转语音 AVSpeechSynthesizer

demo 下载连接:http://files.cnblogs.com/qingjoin/AVideoSpeechDemo.zip