致力于Flutter语音到文本的转换,并使用语音到文本库,下面添加了用于收听的代码:
speech.listen(
onResult: resultListener,
listenFor: Duration(minutes: 10),
localeId: _currentLocaleId,
onSoundLevelChange: soundLevelListener,
cancelOnError: false,
partialResults: true);
应用程序在模拟器中连续监听,但在物理设备中几秒钟后自动停止监听。我曾尝试过许多类似语音识别的库,但仍然会发生同样的问题。一切都在模拟器设备上运行,而不是在物理设备上。
请对此提供一些建议。
谢谢。
答案 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() 调用。