颤抖的语音无法连续听文本

时间:2020-05-12 09:01:33

标签: flutter speech-recognition speech-to-text

致力于Flutter语音到文本的转换,并使用语音到文本库,下面添加了用于收听的代码:

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

应用程序在模拟器中连续监听,但在物理设备中几秒钟后自动停止监听。我曾尝试过许多类似语音识别的库,但仍然会发生同样的问题。一切都在模拟器设备上运行,而不是在物理设备上。

请对此提供一些建议。

谢谢。

2 个答案:

答案 0 :(得分:0)

由于隐私问题,令人讨厌的文本库Flutter语音不允许连续收听。如果您可以持续讲话那么长,listenFor参数是何时中断的上限。

作为替代方案,我建议使用Flutter的平台特定实现。这使您可以进行较低级别的控制。 (快速提示,甚至Android SpeechRecognition库也包含超时。但是Vosk api可以完成您要寻找的https://github.com/alphacep/vosk-api。)如果您真的很热衷,可以考虑构建自己的IME以与语音键入功能(https://developer.android.com/guide/topics/text/creating-input-method)集成。

答案 1 :(得分:0)

来自speech_to_text.dart:

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

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