daz*_*ama 7 android speech-recognition
我有一个个人 Android 应用程序,可以执行语音转文本功能,多年来我一直在 Android 手机上使用该应用程序。最近,我将 Pixel 3 更新至 Android 12 (S),但对 SpeechRecognizer 的调用已停止工作。
我以一种非常标准的方式调用它:
SpeechRecognizer sr = SpeechRecognizer.createSpeechRecognizer(MainActivity.this);
sr.setRecognitionListener(listener);
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.RECORD_AUDIO}, 1);
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
sr.startListening(intent);
Run Code Online (Sandbox Code Playgroud)
升级到Android 12后,调用 后startListening(),onError()立即调用监听回调,错误码为ERROR_CLIENT。手机还会发出一种快速的“嘟嘟”故障声,尽管它表明它正在使用麦克风。
logcat 输出(如下)有一些错误,我发现有趣的是,它表明“首选离线”已启用,尽管我在意图中没有该功能。
有什么想法吗?这是 Pixel 3 的问题吗?
021-11-03 10:11:16.471 24887-24887/? I/AiAi: AiAiSpeechRecognitionService#onStartListening
2021-11-03 10:11:16.474 24887-24887/? I/RecognitionServiceImpl: RecognitionService#onStartListening
2021-11-03 10:11:16.474 1071-4475/? D/audio_hw_primary: out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
2021-11-03 10:11:16.474 24887-24887/? I/IntentParsingUtil: Using Locale.getDefault() for recognition: null
2021-11-03 10:11:16.474 24887-24887/? I/AiAiSpeechRecognition: [AiAi RecognitionService] session start logged
2021-11-03 10:11:16.474 24887-24887/? I/IntentParsingUtil: Using Locale.getDefault() for recognition: null
2021-11-03 10:11:16.474 24887-24887/? I/IntentParsingUtil: Using Locale.getDefault() for recognition: null
2021-11-03 10:11:16.474 24887-24887/? I/AiAiSpeechRecognition: [AiAi RecognitionService] prefer offline logged
2021-11-03 10:11:16.475 24887-24887/? I/SodaSpeechRecognizer: Offline recognizer - start listening
2021-11-03 10:11:16.475 24887-24922/? I/AiAiAudio: #startListening
... Some audio stuff here ...
2021-11-03 10:11:16.576 24887-4930/? I/AiAiAudio: run(): Tee read loop starting
2021-11-03 10:11:16.578 24887-24923/? E/native: E1103 10:11:16.578536 24923 language_pack_utils.cc:346] No usable config found in LP at: /data/user/0/com.google.android.as/files/superpacks/speech-recognition/aiai_en_us_v27
2021-11-03 10:11:16.578 24887-24923/? E/native: E1103 10:11:16.578691 24923 soda_impl.cc:522] Terse enabled but could not initialize processor: Terse Processor: No usable config found in LP.
2021-11-03 10:11:16.579 24887-24923/? I/SodaDetectionHandler: Initialized SODA with status: 5
2021-11-03 10:11:16.580 24887-24923/? E/SodaSpeechRecognizer: Soda recognizer failed to initialize: ConfigStatus 5!
2021-11-03 10:11:16.580 24887-24923/? W/RecognitionClient: #onError space agsa_transcription_SODA_INITIALIZATION_ERROR code 5!
2021-11-03 10:11:16.580 24887-24923/? I/AiAiSpeechRecognition: [AiAi RecognitionService] mic close logged
2021-11-03 10:11:16.580 24887-24923/? I/AiAiAudio: #stopListeningAndCleanUpSession
2021-11-03 10:11:16.580 24887-24923/? I/AiAiAudio: stop(): Stopping AudioTee
2021-11-03 10:11:16.582 14403-14403/com.example.tester_ii_s I/FU: onError: 5
2021-11-03 10:11:16.582 24887-24922/? I/AiAiSpeechRecognition: [AiAi RecognitionService] session end logged
Run Code Online (Sandbox Code Playgroud)
小智 4
此问题似乎来自相应设备的底层 SpeechRecognizer 引擎,在本例中为 AiAiSpeechRecognition。
AiAiSpeechRecognition 是Android 系统智能包的一部分,该包是 Android 12 的新增功能,具有 LiveCaption 等功能。但是,它(目前)似乎与 SpeechRecognizer API 不兼容。
出于某种原因,将设备升级到 Android 12 后,默认 SpeechRecognizer 应用很有可能被设置为 Android System Intelligence,尽管事实并非如此。
设备用户可以通过进入“设置”>“应用程序”>“默认应用程序”>“数字助理应用程序”>“语音输入”并将其更改回“Google 语音服务”来修复此问题(您可能首先需要通过以下方式更新 Google 语音服务) Play 商店)。完成此操作后,Android System Intelligence 将从该设置中的选项列表中消失,这表明它从未打算被选择。
您还可以仅针对您的应用程序以编程方式解决该问题。 为此,您需要专门请求 Google 的语音服务作为您的 SpeechRecognizer 服务:
mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(
mContext,
new ComponentName(
"com.google.android.tts",
"com.google.android.apps.speech.tts.googletts.service.GoogleTTSRecognitionService"
)
);
Run Code Online (Sandbox Code Playgroud)
但请注意,通过这样做,
因此,这只能用作临时解决方法。
据我所知,选择 Android System Intelligence 作为 SpeechRecognizer 引擎的事实是 Android 12 中的一个错误,应该由 Google 修复。我还没有在谷歌的问题跟踪器中搜索这个问题,也许应该在那里提交。
| 归档时间: |
|
| 查看次数: |
2445 次 |
| 最近记录: |