speech_to_text
包在桌面网络上完美运行(在Chrome上测试),但在移动网络上失败。在移动网络上,最初可以听到录音声音,但无法识别语音输入。发出初始声音后,不再处理进一步的输入。
_speechEnabled = await _speechToText.initialize(
finalTimeout: const Duration(seconds: 60),
debugLogging: true,
options: [SpeechToText.webDoNotAggregate],
);
await _speechToText.listen(
onResult: _onSpeechResult,
localeId: "en-IN",
listenMode: ListenMode.dictation,
listenFor: const Duration(seconds: 60),
onDevice: true,
);
onResult
回调。onResult
回调。speech_to_text
软件包版本:[7.0.0]
Flutter 版本:[3.27.3]
设备:[Oppo A79 5G]
桌面浏览器:[132.0.6834.84(官方版本)(arm64)(MacOS)]
移动浏览器:[Android 版 Chrome 131.0.6778.260]
我希望得到维护者的任何指导或见解。
我尝试使用以下代码初始化
speech_to_text
插件:
_speechEnabled = await _speechToText.initialize(
finalTimeout: const Duration(seconds: 60),
debugLogging: true,
options: [SpeechToText.webDoNotAggregate],
);
await _speechToText.listen(
onResult: _onSpeechResult,
localeId: "en-IN",
listenMode: ListenMode.dictation,
listenFor: const Duration(seconds: 60),
onDevice: true,
);
在桌面网络(Chrome)上,我希望它能够收听语音并使用识别的文本触发
onResult
回调,效果非常好。
在移动网络(Chrome)上,我期望有同样的行为。但是,在初次录制声音后,它不会听语音,并且永远不会触发
onResult
回调。
您需要向 ios 和 adnroid 添加权限,如下所述:
对于安卓: 将此代码添加到 AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
对于IOS: 将此代码添加到 info.plist
<key>NSMicrophoneUsageDescription</key>
<string>This app requires microphone access to enable voice interactions and enhance your experience.</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>This app requires speech recognition access to enable voice search functionality for a more convenient user experience.</string>