我们能保证Android的SpeechRecognizer不会向Google发送数据吗?

Ore*_*Ore 5 android speech-recognition offline privacy

我正在尝试实现 Android 的 SpeechRecognizer 功能。由于我公司的隐私限制,数据明确不得离开设备

迄今为止:

  • 我已经使用该SpeechRecognizer.createSpeechRecognizer方法实现了 SpeechRecognizer 类。当我在没有互联网的情况下尝试时,效果很好!然而,据我所知,不能保证谷歌不会在在线时发送数据,如果不是为了转录,那么是为了改进他们的音频训练数据。
  • SpeechRecognizer.createOnDeviceSpeechRecognizer- Android 12 及更高版本提供此功能。就说我不介意吧。但是,它仅适用于特定设备,即。Pixel 6 甚至 Pixel 4a 也没有。
  • putExtra(RecognizerIntent.EXTRA_PREFER_OFFLINE, true)- 这也不起作用。ERROR_NO_MATCH在我尝试过的任何设备中,它总是给我错误: 。

所以这让我们很简单SpeechRecognizer.createSpeechRecognizer,我的实现是这样的:

var recognizerIntent: Intent? = null
        if (SpeechRecognizer.isRecognitionAvailable(applicationContext)) {
            sr = SpeechRecognizer.createSpeechRecognizer(applicationContext)

            val listener = MySpeechRecognitionListener(scopeProvider, lifecycleScope, {
                ...
            }
            sr.setRecognitionListener(listener)
            recognizerIntent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH).apply {
                putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH)
            }
            sr.startListening(recognizerIntent)
} else {...}
Run Code Online (Sandbox Code Playgroud)

问题:我们能否以某种方式保证 Android 的 SpeechRecognizer 不会向 Google 发送数据?

小智 -1

您可以确保在识别过程中禁用互联网连接(wifi、蜂窝网络等),但这并不能保证识别的语音不会被记录/缓存并稍后在有网络连接时发送到谷歌。