【发布时间】:2021-03-21 20:27:15
【问题描述】:
我在 Flutter 中有一个适用于 Android 和 iOS 的应用。 在 iOS 上一切都很完美。但在 Android 上,我在语音转文本方面遇到了一些问题......
我正在使用这个插件:https://pub.flutter-io.cn/packages/speech_to_text/
我的安卓代码是:
void startListeningAndroid(BuildContext context) async {
try {
speech.listen(
onResult: (SpeechRecognitionResult result) {
processWords(result, context);
},
listenFor: Duration(seconds: 10),
localeId: _currentLocaleId,
onSoundLevelChange: soundLevelListener,
cancelOnError: false,
partialResults: true,
onDevice: true,
listenMode: ListenMode.dictation,
pauseFor: Duration(seconds: 9),
);
} catch (e) {
print(e.toString());
}
setState(() {});
}
每隔 11 秒,我会使用以下代码再次开始监听:
if (Platform.isAndroid) {
timerSpeech = Timer.periodic(Duration(seconds: 11), ((Timer t) async {
if (voiceRecognitionActivated) {
startListeningAndroid(context);
}
}));
}
但是,一旦我开始 lisening,我就会得到以下日志:
initSpeechState error SpeechRecognitionError msg: error_speech_timeout, permanent: true
initSpeechState error SpeechRecognitionError msg: error_client, permanent: true
代码与之前的工作相同,甚至在每次 lisening 工作之前都不会发出“哔”声。 android 政策或插件版本是否有任何变化可能导致此问题?
我也在主文件夹和调试文件夹的 AndroidManifest.xml 中:
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.INTERNET"/>
<queries>
<intent>
<action android:name="android.speech.RecognitionService" />
</intent>
</queries>
【问题讨论】:
标签: android flutter speech-to-text google-speech-to-text-api