OS7 的這個功能確實不錯。我剛試了下,用官方提供的API ,簡單的幾句代碼就能實現文本轉語音!
Xcode 5.0
工程建好後首先把AVFoundation.framework 加入到工程
AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc]init];
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:@"Hello qingjoin"]; //需要轉換的文本
[av speakUtterance:utterance];
//以上三行代碼就可以搞定文本轉語音 有API就是省事。哈哈
/*******************************************************/
//具體可參考以下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
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)