AI 地图
产品服务
解决方案
文档与支持
定价
更新时间: 2026/08/04 18:34
语音合成
下载开发文档

使用SDK内置百度TTS语音播报功能需要导入libBNOpenTTSComponent.a静态库,并且需要对应用进行授权验证才能够使用,因此需要主动注册应用相关信息。
模拟器不能使用SDK内置的百度TTS语音播报功能。

内置 TTS
TTS授权申请

申请TTS授权前需先申请SDK授权,SDK首次授权需要前往百度智能云平台进行应用注册。

1. TTS授权申请

1.1智能云平台进入控制台,左上角搜索'语音技术'。

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

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

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

2. 按以上步骤填入应用名称、包名等信息。
3. 点击立即创建会生成 App ID、API Key 和 Secret Key,就是在开发中初始化TTS时需要传入的参数。
TTS 鉴权

代码参考:

// 使用内置TTS
[BNaviService_Instance authorizeTTSAppId:TTS_APP_ID
apiKey:TTS_API_KEY
secretKey:TTS_SECRET_KEY
completion:^(BOOL suc) {
NSLog(@"authorizeTTS ret = %d",suc);
}];
外置 TTS

开发者也可以选择不使用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];
}
注意:- (BOOL)ttsIsPlaying需要准确返回外置TTS是否正在播报。如果一直返回YES,SDK内部会认为外界一直在播报, onPlayTTS:就会一直不触发,导致无文字吐出;如一直返回NO,文字吐出的频率可能会过快,会出现语句打断的情况,所以请根据实际情况返回。

上一篇

无UI导航

下一篇

传入外部定位点数据
本篇文章对您是否有帮助?