【问题标题】:Flutter Speech to text not listening continuouslyFlutter Speech to text 不连续收听
【发布时间】:2020-05-12 09:01:33
【问题描述】:

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

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

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

请对此提出一些建议。

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    由于隐私问题,Flutter 语音文本库不允许连续收听,这非常烦人。 listenFor 参数是一个上限,它决定了如果您可以持续发言那么长时间,则何时中断。

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

    【讨论】:

    • 第二个链接末尾多余的 0 使其无效。
    【解决方案2】:

    从 Speech_to_text.dart:

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

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

    【讨论】:

    • 嗨@izzelot,你知道这在过去几个月里是否发生了变化吗?我有一个在 Android 中使用语音到文本的应用程序,每 10 秒循环一次,以使语音正常工作,但现在一旦启动,我在 initSpeechState 中出现超时错误
    • 嗨@Faabass,没有任何改变。
    猜你喜欢
    • 2022-07-14
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多