帖子
帖子
用户
博客
课程
显示全部楼层
48
帖子
1
勋章
1792
Y币

[问题求助] voiceRecognizer语音识别,调用recognizeStop,返回的识别内容为空

[复制链接]
发表于 2024-4-15 18:01:15

var voiceRecognizer = api.require('voiceRecognizer');
voiceRecognizer.recognizeStart(function(ret) {
    if (ret.status) {
        api.alert({ msg: "开始成功"});
    } else {
        api.alert({ msg: "开始失败"});
    }
});
开始语音识别,如果等待它自动完成,返回语音识别内容就是正常的,
{"recognizeResult":{"isLast":true,"result":"你好"}}
如果是我说完话,主动调用
voiceRecognizer.recognizeStop();
停止录音,按照官方文档的说法,是 会停止录音,并开始进行语音识别。但是实际上调用停止之后,返回的识别内容为空,
{"recognizeResult":{"isLast":true,"result":""}}

请问这个要怎么处理?
先调用一下这个createUtility接口呢。https://developer.yonyou.com/doc ... nizer#createUtility 这个文档可以参考看一下。
48
帖子
1
勋章
1792
Y币
chyd④④⑤⑤②⑦⑧⑤② · 2024-4-15 20:56先调用一下这个createUtility接口呢。https://developer.yonyou.com/docs/Client-API/Open-SDK/voiceRecognizer#createUtility 这个文档可以参考看一下。

这些都调用了,其他的接口也都正常,语音唤醒,语音合成,都是可以正常使用,语音识别设置了时间后,如果说完话,等待自动完成,也是有正常的回调,就是如果我主动调用stop接口,按照文档写的,应该是立即停止录音,并进行语音识别,但是实际上是立即停止录音,但是监听的回调结果里识别的文字是空字符串
0
帖子
2
勋章
1067
Y币
你这个问题是在iOS还是android上进行测试的,我反馈给相关的技术人员去看一下
48
帖子
1
勋章
1792
Y币
至高吾·尚 · 2024-4-16 14:07你这个问题是在iOS还是android上进行测试的,我反馈给相关的技术人员去看一下

在安卓机上,我还发现一个问题,调用语音文件识别的方法 fileIdentify  ,会报is not a function。除了这两个方法,其余的方法测试过都没有问题。
0
帖子
1
勋章
2522
Y币
Android上没有支持fileIdentify这个方法;调用recognizeStop本地测试结果返回是正常的,是在addEventListener recognizeResult监听中返回的
48
帖子
1
勋章
1792
Y币
模块开发-JP1688 · 2024-4-16 14:59Android上没有支持fileIdentify这个方法;调用recognizeStop本地测试结果返回是正常的,是在addEventListener recognizeResult监听中返回的

我是通过 recognizeResult 监听来的。但是主动停止的返回的识别内容就是空串,我重新打了一个自定义loader来测试,也还是一样的,我把代码发出来你看一下。

  1. apiready = function () {
  2.         voiceRecognizer = window.api.require('voiceRecognizer');
  3.         voiceRecognizer.createUtility({
  4.             android_appid: '70fd06b6'
  5.         }, (ret) => {
  6.             if (ret.status) {
  7.                 console.log('初始化成功')
  8.                 voiceRecognizer.recognizeConfig({
  9.                     config: {
  10.                         vadbos: '5000',
  11.                         vadeos: '2000',
  12.                         timeout: '60000',
  13.                         netTimeout: '20000',
  14.                         rate: '16000',
  15.                         dot: false
  16.                     }
  17.                 }, (ret) => {
  18.                     if (ret.status) {
  19.                         console.log('配置语音识别成功')
  20.                         voiceRecognizer.addEventListener({
  21.                             name: 'recognizeResult' // 语音识别结果(语音识别)
  22.                         }, (ret) => {
  23.                             console.log(JSON.stringify(ret));
  24.                         });
  25.                     }
  26.                 });
  27.             } else {
  28.                 console.log('初始化失败')
  29.             }
  30.         });
  31.     };
复制代码


然后下面是两个调用方法
  1.     function shibei() {
  2.         voiceRecognizer.recognizeStart()
  3.     }

  4.     function shibeiStop() {
  5.         voiceRecognizer.recognizeStop()
  6.     }

复制代码


如果我只调用开始识别的接口,说完话然后等待自动完成,监听里返回的数据就有我说话的内容,如果我说完话调用停止录音的方法,监听里返回的数据的相应字段就是空字符串
48
帖子
1
勋章
1792
Y币
模块开发-JP1688 · 2024-4-16 14:59Android上没有支持fileIdentify这个方法;调用recognizeStop本地测试结果返回是正常的,是在addEventListener recognizeResult监听中返回的

麻烦帮忙看一下,这个主动停止的确实很重要,而且安卓端也没有fileIdentify方法,本来准备主动停止就拿生成的录音文件去调用这个方法识别,也不行。
讯飞的sdk下载勾选了语音唤醒,在线语音合成(流式版),语音听写(流式版),离线语音听写,这几个模块。
0
帖子
1
勋章
2522
Y币
addEventListener里有个realTime,设置为true,你再看下文档里有说明
48
帖子
1
勋章
1792
Y币
模块开发-JP1688 · 2024-4-17 10:24addEventListener里有个realTime,设置为true,你再看下文档里有说明

好的,谢谢
您需要登录后才可以回帖 登录

本版积分规则