{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671518030316,"data":{"id":71711985,"title":"5.4.5语音播报","slug":"cxdnor","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"

时序图

特别说明

  1. 客户端一定要对接ISoundPlayObserver.isPlaying(),并且正确返回当前系统的声音通道状态。否则可能出现TTS文本大量堆积(播报不及时)或者TTS文本不发送的情况。
  2. onPlayTTS回调中,有几种状态:有文本 + 无叮咚音文本 + 叮咚音、无文本 + 叮咚音
  3. onPlayRing的内容是onPlayTTS的一个子集,即如果onPlayTTS中包含叮咚音,才会调用onPlayRing。
  4. 声音的停止是由客户端对接系统声音接口实现的,AutoSDK不控制声音的停止,AutoSDK只是停止TTS信息的透出。
  5. 如果遇到语音播报异常,如播报的文本错乱,请先检查语音配置文件是否正常,语音话术配置文件见《启动必须预置的配置文件》。

关键参数

巡航语音开关配置组合

V550 旧版本

V550 新版本

仅开启 【前方路况】

TRParam.enable=true

CruiseParam.mode=0

TRParam.enable=true

CruiseParam.mode=4

仅开启 【电子眼】

不支持

TRParam.enable=true

CruiseParam.mode=1

仅开启 【安全提醒】

不支持

TRParam.enable=true

CruiseParam.mode=2

开启 【电子眼】+【安全提醒】

不支持

TRParam.enable=true

CruiseParam.mode=3

开启【前方路况】+【电子眼】

TRParam.enable=true

CruiseParam.mode=1

TRParam.enable=true

CruiseParam.mode=5

开启 【前方路况】+【安全提醒】

TRParam.enable=true

CruiseParam.mode=2

TRParam.enable=true

CruiseParam.mode=6

开启 【前方路况】+【电子眼】+【安全提醒】

TRParam.enable=true

CruiseParam.mode=3

TRParam.enable=true

CruiseParam.mode=7

全部关闭

  • TRParam.enable=false,可关闭全部,但是TRParam.enable=false还会影响其它TR功能的关闭

  • CruiseParam.mode=0,

只能关闭【电子眼】+【安全提醒】

  • TRParam.enable=false,可关闭全部,但是TRParam.enable=false还会影响其它TR功能的关闭,建议使用CruiseParam.mode=0


  • CruiseParam.mode=0,关闭【前方路况】+【电子眼】+【安全提醒】

核心接口

语音播报观察者接口类:com.autonavi.gbl.guide.observer.ISoundPlayObserver

void com.autonavi.gbl.guide.observer.ISoundPlayObserver.onPlayTTS(SoundInfo pInfo)
void com.autonavi.gbl.guide.observer.ISoundPlayObserver.onPlayRing(@PlayRingType.PlayRingType1 int type)

说明:函数详情,请复制函数名称到在线API搜索。

调用示例

可以根据不同的场景配置相应的开关,达到灵活配置的效果。


启动巡航时,由客户端继承实现并注册语音播报观察者soundPlayObserver。

播报开关开启后,巡航过程中,TTS播报回调观察者soundPlayObserver,将收到对应的播报内容,由客户端进行播放。

ISoundPlayObserver soundPlayObserver = new ISoundPlayObserver() {\n    @Override\n    public void onPlayTTS(SoundInfo soundInfo) {\n\t\tif (soundInfo.ringType > 0) {\n\t\t    // 有ring音\n\t\t    // todo : 根据ringType 播放相关的提示音\n\t\t    // 这里不是必须的,也可以在onPlayRing对接。如果这里有ringType,那么也会同时在onPlayRing回调\n\t\t    // 一般是需要保证ring先播报,然后再播放tts文本的需求才在这里对接,具体由使用方决定\n            \n\t\t}\n        \n\t\tif (soundInfo.text.length() > 0) {\n\t\t    // 有文本\n\t\t    // todo: 客户端实现文本转语音代码\n\t\t}\n        \n        if (soundInfo.voiceText.size() > 0) {\n\t\t    // 有文本/语音文件\n\t\t    // todo: 客户端实现播报对应的内容\n\t\t}\n    }\n\n    @Override\n    public void onPlayRing(int ringType) {\n        // TODO:客户端根据ringType 参考PlayRingType,实现播放对应的wave音频文件\n    }\n\n    @Override\n    public boolean isPlaying() {\n        // TODO : 客户端向系统查询,返回当前系统的声音播放状态\n        \n        return false;\n    }\n};


     com.autonavi.gbl.guide.GuideService.addSoundPlayObserver

// 添加语音播放观察者\nmGuideService.addSoundPlayObserver(soundPlayObserver);\n// 开始巡航\nmGuideService.startNavi(NaviType.NaviTypeCruise);


// 配置路况播报开关\nParam trParam = new Param();\ntrParam.type = Type.GuideParamTR;\ntrParam.tr.enable = true; //打开TR开关\nmGuideService.setParam(trParam);\n\n// 配置巡航电子眼播报开关\nParam cruiseParam = new Param();\ncruiseParam.type = Type.GuideParamCruise;\ncruiseParam.cruise.mode = 7; // 打开路况播报、巡航电子眼播报及道路设施播报提醒。默认打开,0都关闭;1只开启电子眼播报;2只开启特殊道路设施提醒播报;4只打开路况播报;7全部打开\n\nmGuideService.setParam(cruiseParam);\n\n// 配置导航播报开关\nParam ttsParam = new Param();\nttsParam.type = Type.GuideParamTTSPlay;\nttsParam.tts.style = 4; //设置导航播报模式,默认2,0无效  2新手播报(详细播报) 3英文播报 4:新简洁播\nttsParam.tts.enableADCode = true; //打开区域播报\nttsParam.tts.fatiguedTTS = 2; //关闭疲劳驾驶  设置疲劳驾驶播报选项0:TBT自个控制播报 1 : TBT播报,但播报条件由第三方设置给TBT 2 : TBT完全不播报。默认值为0\nmGuideService.setParam(ttsParam);\n// 设置route服务\nmRouteService.control(RouteControlKeyPlayStyle, "4");





","body_lake":null,"pub_level":null,"status":"0","updated_at":"2022-07-26 07:54:00","deleted_at":null,"nameSpace":"mnlcaa/v610","browseCount":317,"collectCount":0,"estimateDate":8,"docStatus":0,"permissions":true,"overView":false}}