移动端要接入语音输入转文字,查看使用人数最多的是speech_to_text,但是在接入非google的android手机时出现了很多问题。不是代码的问题,全是手机设置。
1.如果要在国内用,可以直接跳过了,用不了;
如果是google手机,估计官方demo已经可以愉快的测试了。
非google的android手机,比如三星
2.代码的调式模式开启
void _initSpeech() async {
_speechEnabled = await _speechToText.initialize(
onError: errorListener,
onStatus: statusListener,
debugLogging: true,
options: [SpeechToText.androidIntentLookup]);
setState(() {});
}
void errorListener(SpeechRecognitionError error) {
debugPrint('Received error status: $error');
}
void statusListener(String status) {
debugPrint('Received listener status: $status');
}
andorid权限申请记得在main和debug下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" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
3.第一个问题:点击开始语音输入 立马出现error,说话也没有任何回调
解决:非google手机要先用google play安装speech reconginition & Synthesis
4.安装后还是会报错:点击开始语音输入,能听见手机响了一下,但是报错没有权限
在手机的app管理位置找到安装的speech reconginition & Synthesis给它授权话筒
5.再次点击语音输入,报错网络异常
外网是ok的。。
补充:
1.不知道是不是手机的原因,开始监听几秒后不会说话会直接结束。
2.关于和videoPlayer联用
问题:当开始监听语音输入时,视频会暂停播放
解决:视频开始混合模式
VideoPlayerController.file(value, videoPlayerOptions: VideoPlayerOptions(mixWithOthers: true))
网友评论