开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
图像技术
文字识别
人脸与人体识别
视频技术
AR与VR
自然语言处理
知识图谱
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
智能农业
信息服务
智能园区
智能硬件
语音技术

    常见问题

    播放多段长文本

    建议使用sdk内部的队列缓存。 int speak(String text, String utteranceId); 如一开始一次性调用10次speak方法,收到合成结束的onSynthesizeFinish回调后(可以收到utteranceId参数),再加入1句新的。保持sdk内部队列中一直有10个句子。 SDK内部会按照队列次序不断合成。自动按照次序播放

    控制播放暂停及自定义播放

    SDK是无论何种场景都会一直播放。比如有电话接入,需要暂停播放。用户需要自行实现,收到系统电话接入的事件调用pause方法, 结束后调用resume方法。

    如果觉得SDK的播放方式您不满意,可以调用synthesize() 方法仅合成不播放。通过onSynthesizeDataArrived 获取音频数据,自行处理播放。

    高亮当前在读的文字

    onSpeechProgressChanged()根据播放音频的时长百分比回调进度,由于每个字的发音不是等长的,和实际读的文字会有误差。当一次合成的文件较长时,误差尤为明显。

    播放过程中切换发音人

    无论是在线还是离线发音人, 均要求在引擎空闲时切换。 SDK内部有合成队列和播放队列。其中合成队列独立,调用的句子在合成队列结束后加入播放队列。

    引擎空闲是指合成队列为空,即合成全部完成。 即onSynthesizeFinish中,收到的utteranceId为最后一个。utteranceId参数是speak或synthesize方法的第二个参数。

    也可以随时调用stop方式,比如最近的一句话说完时,清空播放队列和合成队列,达到引擎空闲的状态。

    具体请参见demo的SwitchSpeakerListener类。

    常见错误码及解决方案

    错误码 含义 可能原因 自查指南 解决办法
    -102 离线授权下载license失败 网络不佳 或 授权码额度耗尽,导致下载license失败 1. 检查离线联网授权时的网络环境;2.确认SN序列号是否还有额度 1. 更换稳定的网络环境;2. 补充SN序列号额度
    -108 离线合成引擎初始化失败 loadmodel的资源文件 离线音库文件 没加载 1.确认音库文件是否下载;2.是否在指定位置加载;3. 判断模型文件是否有效 点击 1.如加载位置没有对应的文本和音库文件,手动复制文件到指定位置;2.可以尝试删除应用,重新安装测试
    同上 loadmodel时合成引擎不空闲 sdk只支持同一语种的不同发音人使用loadModel方法切换,例如,度小美切换度丫丫。如果是中文切英文或者粤语,需要反初始化后再初始化 如需要切换不同的文本资源,请先调用release方法,再次执行新的文本资源初始化
    同上 其他 初始化添加LoggerProxy.printable(true);保存启动app到报错的完整日志 提供日志,百度侧进一步判断
    -119 SN序列号不合法 SN序列号不在有效期内 核对绑定的SN序列号 更换合法SN序列号
    同上 SN序列号已被绑定 需要确认SN序列号是否已经绑定其他设备,或者设备刷机等导致cuid变更操作 反馈给百度侧,进一步判断
    -204 离线合成初始化失败 设备的系统时间超出license时效 确认设备的系统时间是否正常 校验系统时间
    同上 license 超出有效期 确认SN序列号在有效期内 更换有效期内授权SN
    上一篇
    错误码
    下一篇
    离线合成iOS-SDK