¿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.

  • Se encontró una fuga: AndroidHttpClient creado y nunca cerrado
  • Cómo consultar el SpeechRecognizer predeterminado
  • Android: ¿Dónde está grabado el archivo de audio temp de reconocimiento de voz?
  • Adaptador de llamada de reconocimiento de voz de Android
  • Reconocimiento de voz continua Android
  • ¿Cómo crear un Siri como la aplicación para Android?
  • Android: reconocimiento de voz
  • Restringir el reconocimiento de voz a palabras alfanuméricas
  • ¿Cómo se activa una entrada de micrófono en el emulador de Android
  • Reconocimiento de voz Java como androides
  • Cómo configurar el idioma en el reconocimiento de voz en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.