android - 文本的语音输入部分进行 api 调用后,flutter 中的语音识别

标签 android ios flutter dart

我正在使用 flutter 文本转语音功能。稍后,当我收到文本后,它会分部分发送文本。

我正在使用语音识别插件,在其中输入语音命令并将文本发送到创建的 API 之一,但问题是它将文本部分发送到 API。 例子 : 实际文本:现在是什么时间 但有时字符串会进行 2 次 2 API 调用 或者有时它一次只发送几个单词


    _speechRecognition.setAvailabilityHandler((bool result) => setState(() {
          _isAvailable = result;
          print('Avalibility handler was called');
        }));

    _speechRecognition.setRecognitionStartedHandler(
      () => setState(() {
        _isListening = true;
        print('recognition start  handler was called');
      }),
    );

    _speechRecognition.setRecognitionResultHandler(
      (String speech) => setState(() {
        resultText = speech;

        print(
            'set result handler was called  This is the result handler : $resultText');
        if (_isListening == false && resultText != '') {
          _handleSubmitted(speech);


        }
      }),
    );
    _speechRecognition.setRecognitionCompleteHandler(() {
      setState(() {
        print('set recognition complete handler was called');
        _isListening = false;
      });
    });

    _speechRecognition.activate().then(
          (result) => setState(() {
            _isAvailable = result;
            print('set activate handler was called');
          }),
        );
  }```

最佳答案

我在项目中为解决此问题所做的工作是,我采用了一个新变量来保存语音识别的结果,并且在完整的方法中,我已将该结果传递给 API 调用 示例:-

String transcription = '';

_speech.setRecognitionResultHandler(onRecognitionResult);
_speech.setRecognitionCompleteHandler(onRecognitionComplete);

void onRecognitionResult(String text) {
    setState(() {
      transcription = text;
    });
  }


void onRecognitionComplete() {
    setState(() {
      LogUtils.d("result.....$transcription");
     _handleSubmitted(transcription);
    });
  }

不要在 onRecognitionResult 中管理 API 调用,而是使用 onRecognitionComplete

关于android - 文本的语音输入部分进行 api 调用后,flutter 中的语音识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58411212/

相关文章:

javascript - 从 android 和 IOS 直接 javascript 打印

ios - OpenGLES 帧缓冲区问题

objective-c - CABasicAnimation 使用静态左侧原点增加宽度

android - Flutter-SchedulerBinding,showDialoag,AlertDialog和WillPopScope的问题组合

flutter - 在 Flutter 中将 BASE64 字符串转换为图像

java - 将数据从另一个类传递给处理程序

android - 错误 : Unable to resolve dependency for ':react-native-maps@debug/compileClasspath' : Could not resolve androidx. appcompat :appcompat:1. 0.0

ios - 在Swift中向多个收件人发送短信

flutter - Flutter应用程序中是否可以从nfc芯片读取护照数据?

android - fragment 中的 WebView 未加载页面