百度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);
}

不难吧!是不是很简单!也就这样。。。。

上一篇 下一篇

猜你喜欢

热点阅读