资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

常见问题

Android播放多段长文本

建议使用sdk内部的队列缓存。 int speak(String text, String utteranceId);

如一开始一次性调用10次speak方法,收到合成结束的onSynthesizeFinish回调后(可以收到utteranceId参数),再加入1句新的。保持sdk内部队列中一直有10个句子。

SDK内部会按照队列次序不断合成。自动按照次序播放

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

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

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

Android高亮当前在读的文字

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

Android播放过程中切换发音人

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

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

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

具体请参见demo的SwitchSpeakerListener类。

ios如何同时集成语音识别和语音合成?两个.a名字是一样的,内容一样么?

内容不一样,同时集成只需将.a换个名字重新导入即可。同名的资源文件内容是一样的。

ios如何获得合成的音频数据

请参考Demo中的synthesizerNewDataArrived方法。注意合成的数据是逐段返回的,如果需要完整的音频,开发者自行拼接数据即可。

ios如何管理AudioSession

请开发者参考SDK头文件 BDS_SYNTHESIZER_PARAM_ENABLE_AVSESSION_MGMTBDS_SYNTHESIZER_PARAM_AUDIO_SESSION_CATEGORY_OPTIONS配置说明或者文档关于AVAudioSession部分。如果无法达成预期效果,建议收取合成的音频数据,自行播放。

ios如何实现后台播放、如何实现锁屏界面的播放、显示

SDK内部不会对后台、锁屏相关功能做任何控制,但会在必要的时候调用setActive接口对外部音频进行打断及恢复,会影响某些场景下的锁屏显示,如果开发者不希望SDK对AudioSession进行操作自己管理,可以通过参数配置接口,把BDS_SYNTHESIZER_PARAM_ENABLE_AVSESSION_MGMT对应的value设置为NO,即可屏蔽SDK内部的操作。建议开发者自行收取合成音频数据,播放音频的同时来实现相关功能。

商务合作的流程是怎样的?

请在AI官网底部点击“商务合作”,详细描述您的需求。或者在百度云提交工单申请合作。

如何反馈使用问题

在反馈问题之前,请开发者务必在Demo测试并复现。

通过各个渠道反馈问题时,请务必详细描述以下信息:

问题描述:(具体问题,稳定复现/概率)
SDK 版本:(是否已经切换到最新版本)
是否已在Demo中复现:请务必在Demo中复现遇到的错误。无法在Demo复现的问题相对难以定位原因。
 
若能在Demo中复现,请描述:
SDK:(SDK类型,版本号)
初始化引擎代码:(在线引擎、离线引擎代码片段)
APPID:
复现逻辑:(如何复现)
完整日志:(附上开启Debug模式的,从启动到结束的完整日志)
上一篇
语音合成 iOS SDK
下一篇
音色列表