开发者社区 问答 正文

阿里云c++sdk实时语音识别嵌入mrcp

设置的无输入超时40s和识别超时60s,客服问答场景,客服问了第一句话后,客户一直不说话,结果超时的时间 是 100s 也就是上面的 无输入超时40s+识别超时的60s,要的效果仅仅是40s。
代码如下:
微信图片_20240524172209.png

这两个参数的值是由lua脚本传过来的,查看freeswitch日志显示的值 无输入超时40s, 识别超时60s。这个是以前c++sdk3.0.9版本嵌入的mrcp,现在的版本是c++sdk 3.0.17会不会是版本问题呢?还是其他问题有没有大佬帮忙看一下,谢谢

展开
收起
游客ezmswn52mppva 2024-05-24 17:28:38 206 发布于广东 分享
分享
版权
举报
2 条回答
写回答
取消 提交回答
  • 识别超时recognition_timeout参数默认在mpf中没有使用,需要手动实现逻辑

    2024-06-04 13:56:10 举报
    赞同 2

    评论

    全部评论 (2)

    登录后可评论
    头像
    这是 实现灵敏度的 逻辑 阿里云C++sdk 也没有接口 ,setSpeechNoiseThreshold()这个也不生效吧。 //灵敏度 if (mrcp_resource_header_property_check(request, RECOGNIZER_HEADER_SENSITIVITY_LEVEL) == TRUE) { apt_log(RECOG_LOG_MARK, APT_PRIO_INFO, "[demolog] Sensitivity-Level:%f", recog_header->sensitivity_level); g_speechNoiseThreshold = recog_header->sensitivity_level; // 噪音阈值 if (!std::isnan(g_speechNoiseThreshold)) { recog_channel->request->setSpeechNoiseThreshold(g_speechNoiseThreshold); } }
    2024-06-04 15:35:07
    赞同回复举报
    头像
    您好请问一下,如果手动实现逻辑的话,参数是可以这样子设置的g_recognition_timeout=recog_header->recognition_timeout; 但是 阿里云C++SDK,并没有 实现 识别超时的接口,我该如何处理呢? // 检查并处理识别超时 if (mrcp_resource_header_property_check(request, RECOGNIZER_HEADER_RECOGNITION_TIMEOUT) == TRUE) { apt_log(RECOG_LOG_MARK, APT_PRIO_INFO, "[demolog] Setting recognition_timeout to %d ms", recog_header->recognition_timeout); g_recognition_timeout=recog_header->recognition_timeout; }
    2024-06-04 15:29:44
    赞同回复举报
  • 北京阿里云ACE会长

    确保Lua脚本传递的参数正确无误,并且C++ SDK能够正确解析和应用这些参数。检查是否有任何缓存或旧配置影响当前设置。

    检查C++ SDK中关于超时逻辑的实现。可能是识别超时和无输入超时的逻辑叠加了,需要调整逻辑以确保它们不会相互累积。

    2024-05-25 13:32:48 举报
    赞同 5 评论

    评论

    全部评论 (0)

    登录后可评论
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等