开发者社区> 问答> 正文

在阿里语音AI我使用sdk的实时语音识别,怎么判断电话那端讲话超时呢?

在阿里语音AI我使用sdk的实时语音识别,怎么判断电话那端讲话超时呢?image.png 有没有地方设置比如5秒没有讲话给一个事件?之前我们用的是mrcp对接,是有识别超时的;现在用sdk也想有这种效果。

展开
收起
三分钟热度的鱼 2023-05-29 11:49:12 130 0
3 条回答
写回答
取消 提交回答
  • 云端行者觅知音, 技术前沿我独行。 前言探索无边界, 阿里风光引我情。

    在阿里语音AI的实时语音识别中,可以通过监听语音数据的回调函数来判断电话那端讲话是否超时。具体来说,您可以在回调函数中记录每次语音数据的时间戳,然后在每次回调函数被调用时,计算当前时间戳与上一次时间戳之间的差值,如果差值超过了您设定的阈值,就可以判断电话那端讲话已经超时。

    以下是一个示例代码,用于演示如何在回调函数中判断电话那端讲话是否超时: image.png

    在上面的示例代码中,我们定义了一个变量last_timestamp,用于记录上一次语音数据的时间戳。在回调函数on_voice_data中,我们首先获取当前时间戳current_timestamp,然后计算当前时间戳与上一次时间戳之间的差值time_diff。如果差值超过了设定的阈值(这里设定为10秒),就打印一条消息,表示电话那端讲话已经超时。最后,我们将当前时间戳赋值给last_timestamp,以便在下一次回调函数被调用时使用。

    2023-05-29 12:56:40
    赞同 展开评论 打赏
  • 我们服务端是10s不发送数据 会断开。单独的sdk没有,sdm的参数是No-Input-Timeout 此回答整理自钉群“阿里语音AI【6群】”

    2023-05-29 12:51:04
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    使用阿里语音AI的实时语音识别SDK,可以通过设置超时时间来判断对端讲话超时。

    在实时语音识别过程中,SDK会实时返回识别结果,您可以通过监听SDK的回调函数,判断对端是否一直在讲话。如果一段时间内(例如5秒)没有收到任何识别结果,就可以判断对端讲话超时,并触发相应的事件。

    具体实现中,可以在初始化SDK时,设置超时时间,例如:

    // 初始化实时语音识别SDK RealtimeTranscriptionClient client = new RealtimeTranscriptionClient(appKey, token, format);

    // 设置超时时间(单位:毫秒) client.setTimeout(5000);

    // 监听回调函数 client.setEventHandler(new RealtimeTranscriptionEventHandler() { // 实时识别结果回调函数 @Override public void onTranscriptionResult(String result) { // 收到识别结果,说明对端正在讲话 }

    // 超时回调函数 @Override public void onTranscriptionTimeout() { // 一段时间内没有收到识别结果,说明对端讲话超时 } });

    // 开始实时语音识别 client.start(); 在使用SDK时,可以根据自己的实际需求,设置不同的超时时间,以便更好地判断对端讲话超时。

    2023-05-29 12:51:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
释放算力潜能加速应用构建Serverless为AI创新提速 立即下载
智算时代,基于 Kubernetes 落地云原生 AI 立即下载
AI让数据库的路走的“更快更远” 立即下载