¿El reconocedor de voz de Google en Android necesita Internet?

Utilizo el siguiente código para invocar el reconocimiento de voz por google:

// This is a demonstration of Android's built in speech recognizer package com.example.voiceinputbuiltintest; import java.util.ArrayList; import java.util.Locale; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.speech.RecognizerIntent; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private static final int VOICE_RECOGNITION = 1; Button speakButton ; TextView spokenWords; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); speakButton = (Button) findViewById(R.id.button1); spokenWords = (TextView)findViewById(R.id.textView1); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == VOICE_RECOGNITION && resultCode == RESULT_OK) { ArrayList<String> results; results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); // TODO Do something with the recognized voice strings Toast.makeText(this, results.get(0), Toast.LENGTH_SHORT).show(); spokenWords.setText(results.get(0)); } super.onActivityResult(requestCode, resultCode, data); } public void btnSpeak(View view){ Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); // Specify free form input intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); intent.putExtra(RecognizerIntent.EXTRA_PROMPT,"Please start speaking"); intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.ENGLISH); startActivityForResult(intent, VOICE_RECOGNITION); } } 

Esto funciona sin conexión de red en mi máquina de prueba que es Nexus 7 con Android 4.3. Pensé que funcionaría igual en cualquier dispositivo androide. Sin embargo, cuando lo pruebo en Samsung Galaxy S2 con la versión de Android gingerbread.el21, la actividad de reconocimiento de voz aparece, pero dice que necesita conexión a la red y se niega a trabajar. ¿Por qué funciona en Nexus 7 y no en Galaxy S2? ¿Funciona sin conexión o necesita conexión de red? Funciona en el Nexus 7 incluso cuando paro el wifi.

En jellybean el usuario necesita descargar el paquete de reconocimiento de voz offline.

Este artículo dice:

Anteriormente, cuando pulsó el icono de voz y pronunció un comando o una consulta, Android tuvo que digitalizar su voz, subirla a la nube, procesar la forma de onda, convertirla en texto y enviar el texto a su teléfono. Ahora los teléfonos son lo suficientemente potentes como para poder ser incorporados en el dispositivo, sin necesidad de red adicional de E / S. Como se puede imaginar esto se traduce en un reconocimiento de voz mucho más rápido que las versiones anteriores.

El usuario de la aplicación tendrá que hacer esto :

  1. Vaya a "Idioma y entrada" en el ajuste
  2. Pulse en "Descargar reconocimiento de voz en línea" en la sección "Búsqueda de voz"
  3. Elija el paquete de idioma que desea que su dispositivo Android reconozca
  4. Descargue el paquete y disfrute de la escritura de voz sin conexión

Otro enlace auxiliar:

Google ha restringido ciertos dispositivos Jelly Bean de usar el reconocimiento offline debido a restricciones de hardware.

  • Cómo obtener Google Speech Recognition Engine en un dispositivo Android
  • ¿Por qué RecognitionListener dejó de trabajar en JellyBean?
  • Hacer que el teléfono escuche constantemente la entrada de voz
  • RecognizerIntent no funciona; "Falta paquete de llamada extra"
  • Conversión de voz en texto
  • Reconocimiento de voz activado por palabra clave en android
  • Cómo extender los comandos de voz de Google Now en Android con acciones personalizadas
  • Código fuente de reconocimiento de voz google
  • ¿Hay algún equivalente para el uso RemoteInput.setChoices, pero para el teléfono?
  • Reconocimiento de voz sin Internet en Android
  • ¿NDEV / Dragon Mobile SDK requiere acceso a Internet?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.