Flutter:语音转为文本错误在null上调用了“初始化”方法

问题描述

我正在尝试将语音文本转换方法添加到我的应用程序中以转换我的 但是我有这个错误

[ERROR:flutter / lib / ui / ui_dart_state.cc(157)]未处理的异常: NoSuchMethodError:方法“初始化”在null上调用。 E / flutter(13534):接收方:空E / flutter(13534):尝试调用: initialize(onError:Closure:(SpeechRecognitionError)=>无效, onStatus:闭包:(字符串)=>无效)

请注意,我正在将录音权限放入android清单

这是我用来语音转文字的功能

bool isListening = false;
  stt.SpeechToText _speech;

void listen() async {
    if (!isListening) {
      bool available = await _speech.initialize(
        onStatus: (val) => print('onState: $val'),onError: (val) => print('onError: $val'),);
      if (available) {
        setState(() => isListening = true);
        _speech.listen(
          onResult: (val) => setState(() {
            resultText = val.recognizedWords;
          }),);
      } else {
        setState(() => isListening = false);
        _speech.stop();
      }
    }
  }

这是我显示它的代码

Row(
                                          mainAxisAlignment:
                                              MainAxisAlignment.center,children: <Widget>[
                                            AvatarGlow(
                                              animate: isListening,glowColor: Colors.red[200],endRadius: 75.0,duration: const Duration(
                                                  milliseconds: 2000),repeatPauseDuration:
                                                  const Duration(
                                                      milliseconds: 100),repeat: true,child: FloatingActionButton(
                                                child: Icon(isListening
                                                    ? Icons.mic
                                                    : Icons.mic_none),onPressed: (){
                                                  listen();
                                                },mini: true,),Container(
                                              width: MediaQuery.of(context)
                                                      .size
                                                      .width *
                                                  0.4,decoration: BoxDecoration(
                                                color: Colors.grey[350],borderRadius:
                                                    BorderRadius.circular(
                                                        10.0),child: Text(
                                                resultText,],

所以任何人都可以帮助我!

解决方法

发生此错误是由于您没有实例化stt.SpeechToText对象,然后调用了程序包的Initialize函数。

您可以使用以下实例化它

stt.SpeechToText _speech = stt.SpeechToText();

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...