AVSpeechSynthesizer是iOS 7在AVFoundation中新增的语音合成API。
文字转语音的大致识别过程是 文字 —> siri —> 后台云 —> Foundation
在使用AVSpeechSynthesizer前需要导入头文件#import <AVFoundation/AVFoundation.h>
1、初始化语音合成器(相当于说话的嘴巴)
AVSpeechSynthesizer *synthesizer = [AVSpeechSynthesizer new];
2、设置语音合成器可识别的语言(相当于说话的语言)
//语音合成器可识别的语言
_voices = @[[AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"],[AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"]];
3、设置语音发声器(相当于说话的舌头)
AVSpeechUtterance *utt = [[AVSpeechUtterance alloc]initWithString:speechVoices[i]];
//对舌头进行设置
//设置声音是播放中文还是英文(单数播放英文,双数播放中文)
utt.voice = self.voices[i%2];
// 设置速率(0- 1)
utt.rate = 0.4;
// 设置音调(0-1)
utt.pitchMultiplier = 0.8;
// 设置延迟处理
utt.postUtteranceDelay = 0.2;
//说话
[synthesizer speakUtterance:utt];
以上便是利用AVSpeechSynthesizer进行文字转语音的大致过程。
简单demo:
创建一个简单的语音识别类:
SpeechController.h
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
/**
* 这是一个文本转语音的类
*/
@interface SpeechController : NSObject
// 创建一个语音合成器(嘴巴)
@property