百度TTS语音播报
2019-01-03 本文已影响24人
爱吃榴莲的程序员
前言
之前我的简书中写到了【iOS实现语音播报】里面有介绍到两种语音播报方式:AVSpeechSynthesis和百度TTS,这篇文章我们就简单的了解一下百度TTS到底该如何使用?
正文
1.百度TTS集成
TTS的集成我就不多说了,大家可以通过百度TTS集成进行查看和学习!
2.使用
不管是【极光推送】还是【TTS】第一步少不了申请APPKey,然后在我们的工程中注册
// 注册
-(void)configureTTSSDK{
NSLog(@"TTS version info: %@", [BDSSpeechSynthesizer version]);
[BDSSpeechSynthesizer setLogLevel:BDS_PUBLIC_LOG_VERBOSE];
[[BDSSpeechSynthesizer sharedInstance] setSynthesizerDelegate:self];
// [self configureOnlineTTS];
[self configureOfflineTTS];
}
// 在线注册
-(void)configureOnlineTTS{
[[BDSSpeechSynthesizer sharedInstance] setApiKey:BaiDu_API_Key withSecretKey:BaiDu_Secret_Key];
[[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryPlayback error:nil];
}
//离线注册
-(void)configureOfflineTTS{
NSError *err = nil;
// 在这里选择不同的离线音库(请在XCode中Add相应的资源文件),同一时间只能load一个离线音库。根据网络状况和配置,SDK可能会自动切换到离线合成。
NSString* offlineEngineSpeechData = [[NSBundle mainBundle] pathForResource:@"Chinese_And_English_Speech_Female" ofType:@"dat"];
NSString* offlineChineseAndEnglishTextData = [[NSBundle mainBundle] pathForResource:@"Chinese_And_English_Text" ofType:@"dat"];
err = [[BDSSpeechSynthesizer sharedInstance] loadOfflineEngine:offlineChineseAndEnglishTextData speechDataPath:offlineEngineSpeechData licenseFilePath:nil withAppCode:BaiDu_APP_ID];
if(err){
NSLog(@"offLineTTS configure error : %@",err.localizedDescription);
}else{
NSLog(@"offLineTTS success");
}
}
- (void)ttsReadContent:(NSString *) message{
[[BDSSpeechSynthesizer sharedInstance] setPlayerVolume:5];
[[BDSSpeechSynthesizer sharedInstance] setSynthParam:[NSNumber numberWithInteger:7] forKey:BDS_SYNTHESIZER_PARAM_SPEED];
NSInteger flag = [[BDSSpeechSynthesizer sharedInstance] speakSentence:message withError:nil];
NSLog(@"TTSFlage -------%ld",flag);
}
不难吧!是不是很简单!也就这样。。。。