Flutter Speech to text 不连续收听

Flutter Speech to text not listening continuously

正在研究 Flutter 语音到文本的转换并使用语音到文本库,添加以下代码用于收听:

speech.listen(
          onResult: resultListener,
          listenFor: Duration(minutes: 10),
          localeId: _currentLocaleId,
          onSoundLevelChange: soundLevelListener,
          cancelOnError: false,
          partialResults: true);

应用程序在模拟器中连续监听,但在物理设备中几秒钟后自动停止监听。我试过很多图书馆,比如语音识别,仍然出现同样的问题。一切都在模拟器设备上运行,而不是在物理设备上运行。

请对此提出一些建议。

提前致谢。

由于隐私问题,Flutter 对文本库的语音不允许连续收听,这非常烦人。 listenFor 参数是一个上限,如果你能说那么久的话,什么时候停止。

作为替代方案,我建议使用 Flutter 的平台特定实现。这使您可以进行更低级别的控制。 (作为一个快速提示,即使 Android SpeechRecognition 库也包含超时。但是 Vosk api 能够完成您正在寻找的 https://github.com/alphacep/vosk-api). If you're really keen, you can look at building your own IME to integrate with voice typing functionality (https://developer.android.com/guide/topics/text/creating-input-method)。

来自speech_to_text.dart:

/// Android 和 iOS 都有收听时间限制。时间 /// 取决于设备、网络等。Android 通常很短, /// 特别是如果没有检测到活动语音事件,在订单上 /// 十秒左右。

在 android 中,SpeechRec 在 2 或 3 秒后停止,但在 Ios 中,它会一直收听直到 .stop() 已调用。