语音唤醒FAQ

本文汇总了您在使用语音唤醒服务时的常见问题。

语音唤醒初始化失败通常有哪些原因?

原因

详情

鉴权失败

  • SDK需要进行鉴权,demo默认没有配置鉴权信息,所以需要获取鉴权信息申请配额,详情请参见开通授权。申请完成后将鉴权信息(ak_id、ak_secret、app_key、sdk_code)填入demo中即可进行调试。

  • 获取鉴权信息需要联网,首次使用SDK请确保网络畅通。

资源问题

  • 资源路径设置错误。

  • 资源校验失败:包括资源版本和引擎不兼容,资源损害等。

常见的鉴权失败情况有哪些?

注册失败的原因通常包括以下情况:

  • 参数设置不正确:例如Appkey错误或Appkey对应的项目为设备端解决方案类型。

  • 注册次数超过限制:管控台对单台设备每日注册次数有限制。

  • 没有配额:用户配额超过申请上限。

  • 没有网络:注册是需要联网的。

具体错误信息请参见下表,初始化失败时,可以通过error_msg获取。

日志错误信息

含义

register_over_frequency

注册次数超过限额。详情请参见一个Deviceid一天可以注册几次

AccessKeyId is mandatory for this action

AccessKey不正确,配置信息错误。

quota not-enough

配额不足。

sdk_type_err

sdk_code不正确。请确认开通的是标准版(software_nls_tts_offline_standard)还是精品版(software_nls_tts_offline)。

Specified signature is not matched with our calculation

请校验AccessKey Secret是否填写正确。

unit_not_exist

Appkey没有申请过配额。

初始化成功但是唤醒失败该如何处理?

请检查录音模块是否正常,送入录音buffer的音频是否清晰,是否是16k、16 bit单通道格式音频。

配额消耗的规则是什么?

设备标识(Deviceid)每发生一次变更,就会消耗一个配额。设备标识是进行管控的有效凭证,SDK使用者要保证设置的device_id有效性和唯一性,否则可能导致占用多个配额,甚至鉴权失败。

调用者可能要考虑以下场景:

  • 起初获取不到设备信息,后获取权限,Deviceid变化。

  • 已获取设备ID权限,但用户关闭,Deviceid变化。

  • Android O升级后,AndroidId会随着软件包名称和签名密钥变化而变化,DeviceId变化。

一个Deviceid一天可以注册几次?

单个Deviceid每日只能注册5次。如已注册成功,设备卸载App并重新安装,将消耗一次注册机会,当5次机会消耗完后,只能等到24:00以后才能重新注册。

如果App不卸载,第一天登录和第二天登录分别会注册几次?

App注册成功之后,若有存储权限,鉴权信息成功保存至本地,不需要再次联网注册,可以永久使用。

配额耗尽还能增加吗?

当一个Appkey对应的配额消耗完毕时,可以重新购买配额,系统将按照合同约定,增加相应的配额 。

申请离线配额后,能直接访问在线语音服务吗?

申请离线配额后,不关联在线语音服务(如在线合成、在线语音识别等),如果想使用在线语音服务需要额外购买相应的服务。

已经投入使用的在线语音服务Appkey可以用于申请离线配额吗?

除设备端解决方案外的其他Appkey可以。如果之前使用的是设备端解决方案的Appkey,需要重新申请一个仅语音合成的Appkey,详情请参见创建项目

设备唤醒率不高如何处理?

在确认设备能唤醒的情况下,如果您测试多次输入对应唤醒词语音但响应率低,通常是模型唤醒性能问题。唤醒率一般与设备使用场景、您输入的语音质量或模型训练数据质量有关,如确实唤醒成功率不高,可依次做如下尝试以确认问题:

  • 将设备放置在安静场景下使用。

  • 使用标准普通话匀速响亮地说出唤醒词。

  • 如唤醒词为用户自定义,由于模型未针对该词语做适应性训练,性能不会太好,可尝试在设置自定义唤醒词时同步设置较低阈值尝试。

当前公版唤醒模型使用移动端数据,不一定符合您的实际使用场景,如需要进一步提升唤醒率,降低误唤醒,需要采集质量更好的语音数据进行模型定制。

NTP的作用是什么?

NTP:指网络时间协议(Network Time Protocol)。

唤醒SDK在首次使用时,需要访问阿里云鉴权,阿里云要求本地时间和阿里云时间相差不能超过15分钟,否则会鉴权失败,因此SDK使用NTP模块获取网络时间。

说明

由于NTP本身和阿里云交互有一定时间消耗,网络较差时可能长达十几秒。因此需要业务方综合评估,如果端侧时间不会存在异常,或者概率极小的设备时间异常对业务没有影响,可以在初始化的时候通过将enable_ntp设为false,即关闭NTP。