Reconocimiento de voz como servicio de fondo

¿Es posible implementar una actividad como servicio? Mi actividad es una actividad de reconocimiento de voz. Quiero tener la actividad en ejecución en el fondo de la aplicación constantemente la comprobación de la voz y cuando el usuario dice un comando lo reconocerá y luego realizar la acción. Mi pregunta es … ¿es posible hacer esto y si es así cómo puede el servicio del fondo notificar la actividad o la aplicación actual? Había un mensaje permeable en esto pero no una respuesta clara … Gracias por cualquier entrada o ayuda. Aquí está la actividad de voz … tomada de otra publicación stackoverflow:

import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.speech.RecognitionListener; import android.speech.RecognizerIntent; import android.speech.SpeechRecognizer; import android.widget.Button; import android.widget.TextView; import java.util.ArrayList; import android.util.Log; public class voiceRecognitionTest extends Activity implements OnClickListener { private TextView mText; private SpeechRecognizer sr; private static final String TAG = "MyStt3Activity"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button speakButton = (Button) findViewById(R.id.btn_speak); mText = (TextView) findViewById(R.id.textView1); speakButton.setOnClickListener(this); sr = SpeechRecognizer.createSpeechRecognizer(this); sr.setRecognitionListener(new listener()); } class listener implements RecognitionListener { public void onReadyForSpeech(Bundle params) { Log.d(TAG, "onReadyForSpeech"); } public void onBeginningOfSpeech() { Log.d(TAG, "onBeginningOfSpeech"); } public void onRmsChanged(float rmsdB) { Log.d(TAG, "onRmsChanged"); } public void onBufferReceived(byte[] buffer) { Log.d(TAG, "onBufferReceived"); } public void onEndOfSpeech() { Log.d(TAG, "onEndofSpeech"); } public void onError(int error) { Log.d(TAG, "error " + error); mText.setText("error " + error); } public void onResults(Bundle results) { String str = new String(); Log.d(TAG, "onResults " + results); ArrayList data = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION); for (int i = 0; i < data.size(); i++) { Log.d(TAG, "result " + data.get(i)); str += data.get(i); } mText.setText("results: "+String.valueOf(data.size())); } public void onPartialResults(Bundle partialResults) { Log.d(TAG, "onPartialResults"); } public void onEvent(int eventType, Bundle params) { Log.d(TAG, "onEvent " + eventType); } } public void onClick(View v) { if (v.getId() == R.id.btn_speak) { Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,"voice.recognition.test"); intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,5); sr.startListening(intent); Log.i("111111","11111111"); } } 

}

One Solution collect form web for “Reconocimiento de voz como servicio de fondo”

Lo que puede hacer es iniciar la actividad de reconocimiento que escuchará los comandos y cuando encuentre un comando apropiado hará lo que quiera que haga en ese comando en particular. El problema con este enfoque simple es que la actividad estará constantemente escuchando la entrada de voz y, lo más importante, TI NECESITA ESTAR EN FOCO y no correr en segundo plano …

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/VoiceRecognition.html

  • Limitación del diccionario de reconocimiento de voz para una mejor coincidencia y buena precisión
  • Reconocimiento de voz fuera de línea en Android (JellyBean)
  • ¿Reconoce RecognitionListener.onError () automáticamente SpeechRecognizer.cancel ()?
  • Talking App como hablar, la grabación de audio no funcionó en todos los dispositivos
  • Android Reconoce la voz de 2 personas de manera diferente
  • Tiempo de espera del reconocimiento de voz de Google
  • Cómo grabar voz en android?
  • ¿Inicia Google Now o la búsqueda por voz por defecto del teléfono?
  • Cómo manejar ERROR_RECOGNIZER_BUSY
  • Tiempo de espera del reconocimiento de voz de Google
  • Android mediaRecorder.setAudioSource ha fallado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.