使用SDK内置百度TTS语音播报功能需要导入libBNOpenTTSComponent.a静态库,并且需要对应用进行授权验证才能够使用,因此需要主动注册应用相关信息。
模拟器不能使用SDK内置的百度TTS语音播报功能。
申请TTS授权前需先申请SDK授权,SDK首次授权需要前往百度智能云平台进行应用注册。
1.1智能云平台进入控制台,左上角搜索'语音技术'。

1.2在语音技术产品页点击应用管理进行创建应用。

1.3创建应用页面全选语音技术,填入对应的信息,语音包名选择iOS,填入工程应用的bundleid,创建应用即可。

1.4如果已有的应用可以在应用列表点击管理,在右上角编辑应用,语音技术一栏需要显示对应的bundleid。

代码参考:
// 使用内置TTS[BNaviService_Instance authorizeTTSAppId:TTS_APP_IDapiKey:TTS_API_KEYsecretKey:TTS_SECRET_KEYcompletion:^(BOOL suc) {NSLog(@"authorizeTTS ret = %d",suc);}];
开发者也可以选择不使用SDK提供的TTS SDK进行播报,可以使用外部TTS播报。如果是这种情况,把libBNOpenTTSComponent.a和baiduTTSSDK.bundle从项目工程中去掉。该能力相关接口和回调在BNSoundProtocol.h中。
使用外置TTS步骤:
(1)设置delegate,进入导航前设置,可以启动app后设置。
[BNaviService_Sound setSoundDelegate:self];
(2)实现以下回调:
/*** TTS文本回调* text: 播报的文案。*@param userInfo 额外信息,非自定义偏航播报时穿空值(nil)*@param key1 : type (自定义偏航播报时userInfo中会传该key),value: BNaviTTSType(枚举值)*/- (void)onPlayTTS:(NSString*)text userInfo:(nullable NSDictionary *)userInfo;/*** TTS音效回调* @param type 音效类型* @param filePath 音频文件路径*/- (void)onPlayVoiceSound:(BNVoiceSoundType)type filePath:(NSString *)filePath {//filePath为mp3音频文件的目录,可以使用AVPlayer进行mp3文件播报[self playVoiceSound:filePath];}/*** 使用自定义的tts播报,需要在此回调外部tts是否正在播报,sdk内部会根据播报状态判断是否继续回调文案* @return 返回自定义TTS是否在播报*/- (BOOL)ttsIsPlaying {//返回外置TTS是否正在播报return [self isPlaying];}
上一篇
下一篇