本文介绍智能语音交互在项目配置、鉴权、服务连接、并发、SDK 使用和计费方面的常见问题。
功能与项目
如何通过音视频通信 RTC 调用语音识别服务?
可以获取 RTC 的音频数据,再将数据发送到智能语音交互服务进行识别。iOS 和 Mac 的音频数据获取方法,请参见语音数据处理。
创建的项目数量有限制吗?
目前没有限制。
一个项目支持配置多个基础模型吗?
不支持。一个 Appkey 对应一个基础模型。
是否提供 H5 语音唤醒技术或插件?
设备端暂不支持,云端支持。设备端通常采用端云结合的方案:先由设备端的唤醒模型完成唤醒,再结合云端模型二次确认,降低误唤醒的概率。
账号与鉴权
如何获取 AccessKey ID 和 AccessKey Secret?
获取 AccessKey 的方法,请参见快速开始中的 AccessKey 创建步骤。
如何查看 UID?
登录阿里云控制台,将鼠标指针移至右上角的用户头像,弹出面板中的账号ID即为 UID。
SDK 初始化失败时应检查哪些信息?
检查是否使用正确的 AccessKey ID 和 AccessKey Secret 生成 NLS Token,以及 Appkey、Token 是否填写正确。使用需要配置 Workspace 的 SDK 时,还需检查 Workspace 等必填参数。
服务连接
语音识别和语音合成使用哪些端口?
HTTP 和 ws 的默认端口为 80,HTTPS 和 wss 的默认端口为 443。连接地址显式指定端口时,使用该地址中的端口。
如何查询服务域名对应的 IP 地址?
nls-meta.cn-shanghai.aliyuncs.com 用于获取 Token,nls-gateway-cn-shanghai.aliyuncs.com 用于语音服务调用。可以通过 dig nls-meta.cn-shanghai.aliyuncs.com 或 dig nls-gateway-cn-shanghai.aliyuncs.com 查询对应的 IP 地址。
这些 IP 地址可能变化。如果网络配置依赖解析出的 IP 地址,需要监控解析结果并及时更新配置。
调用服务前需要配置服务器公网 IP 白名单吗?
调用智能语音交互公网接口,无需向服务侧绑定或报备客户端服务器的公网 IP。客户端仍需能够访问对应的服务地址,并按接口要求配置 Appkey、Token 等鉴权信息。
实时语音识别的音频数据必须连续发送吗?
需要连续发送。服务端超过 10 秒未收到音频数据时,会因超时断开连接并返回 40000004。如需继续识别,客户端需要重新发起请求。
音频发送中断后,为什么还会收到识别结果?
音频发送中断时,服务端可能仍在处理之前收到的数据,因此还会返回这些数据的识别结果。收到结果不表示中断后的音频已被识别;连接超时断开后,需要重新发起请求。
实时语音识别报错“Invalid binary message while server state is 'ROUTING'”怎么办?
客户端在服务端完成任务启动前发送了音频数据。发送 StartTranscription 后,应等待 TranscriptionStarted 事件,再发送音频二进制数据。
并发与用量
并发数如何计算?
并发数是同一阿里云账号(UID)同时处理的请求数。例如,一个实时语音识别请求持续发送音频时,并发数为 1;此时同一账号再发起一个请求,两个请求同时处理,并发数就为 2。
实时语音识别可以用同一个 Token 和 Appkey 建立多路 WebSocket 连接吗?
可以。同一个有效的 Token 和 Appkey 可以用于多路并发连接,无需为每路连接单独获取 Token。每路连接使用独立的 task_id,分别按协议发送 StartTranscription 和 StopTranscription。并发路数仍受账号的并发额度限制。
超出并发限制会有什么现象?
语音识别或语音合成请求超出并发限制时,可能返回 40000005,表示请求数量过多。并发量较大时,也可能出现连接断开的情况。
开通商用或扩容并发后,控制台何时更新数据?
可用并发路数实时更新;昨日并发路数和计量数据按 T+1 更新,即在第二天更新。
如何查看账号的语音识别用量?
可以在控制台查看调用时长、次数、并发路数等数据,用于判断服务使用情况。具体请参见服务用量。
SDK 使用
是否提供 SDK 源码?
提供 C++、Java 和 Python SDK 源码,可以在 GitHub 查看协议实现。建议使用智能语音交互提供的 SDK 进行集成,接入方法请参见快速开始。自行实现协议的客户端可获得的技术支持有限。
Android SDK 支持在多进程中初始化多个实例吗?
目前不支持。
语音合成 SDK 提供播放功能和播放完成事件吗?
SDK 提供语音合成事件,不提供音频播放功能或播放完成事件。音频播放需要由客户端处理。
开始识别失败时应如何排查?
使用单例模式的 SDK 时,应先确认上一个识别任务已经结束,再开始新的识别任务。
开始识别后没有结果,应检查什么?
检查 SDK 是否初始化成功、开始识别接口是否调用成功,以及录音是否正常开启并返回音频状态回调。使用包含 vad_mode 参数的 SDK 时,还需检查该参数是否使用正确。
若以上检查均正常但仍无识别结果,检查 SDK 的错误事件。使用返回 EVENT_ASR_ERROR 事件的 SDK 时,可根据该事件携带的错误码定位问题。
如何记录录音文件识别 TaskId 与文件 URL 的对应关系?
建议在业务系统中保存请求使用的 FileUrl 和接口返回的 TaskId,建立对应关系,便于根据 TaskId 查找提交识别的音频文件。
有哪些入门教程?
接入步骤请参见快速开始。也可以参考以下中文视频:
计费
试用版有哪些限制?
一句话识别、实时语音识别:最多同时处理 2 路识别请求。
录音文件识别:新用户在 3 个月试用期内,每隔 24 小时可免费识别 2 小时的录音文件。免费额度用完后,间隔 24 小时可继续试用。
实时语音识别支持多少路并发?
试用版提供 2 路免费并发,有效期为 3 个月。开通商用后默认提供 200 路并发,可单独购买并发资源包扩容。
英文识别需要购买扩展语言包还是并发路数?
英文识别需要购买扩展语言包和并发路数。