2012-08-15 7 views
5

¿Hay alguna manera de ejecutar SpeechRecognizer mientras está en una llamada? Lo he hecho de esta manera:Ejecutar SpeechRecognizer durante la llamada

  • BroadcastReceiver gestiona cambios en el estado del teléfono (por ejemplo, descolgado).
  • SpeechRecognizer se inicia en el hilo actual (principal), ya que solo se puede iniciar en el hilo principal. El contexto de la aplicación se utiliza para el reconocedor (el contexto actual, dado al receptor de difusión, no puede comenzar a usarse)

Pero desafortunadamente, la persona del otro lado no puede oírme (el reconocimiento de voz funciona bien, sin embargo). De lejos, el reconocedor ha "consumido" mi voz y no la envía.

Soy consciente de que hacer cosas en el hilo principal durante la llamada es peligroso, pero ¿hay alguna manera de ejecutar el reconocedor de alguna manera durante la llamada?

Actualización: Estoy intentando el TelephonyManager oyente en lugar de un BroadcastReceiver, pero algunos servicios internos tocaré la NPE.

Respuesta

2

AFAIK la llamada de voz nunca se maneja desde el lado de Android. El procesador de aplicaciones o el procesador de comunicación tiene control sobre la transmisión en cualquier momento, no ambos. Por lo general, tan pronto como se inicia la llamada de voz, el control de transmisión de micrófono y auriculares se entrega al procesador de comunicación. Extrañamente en su caso El procesador de aplicaciones está tomando el control. Esto parece ser un error.

La transmisión de audio es procesada directamente por el procesador de comunicaciones (lo cual tiene sentido ya que es un desperdicio de procesamiento hacerlo dos veces una vez en el procesador de aplicaciones y una vez en el procesador de comunicaciones que manejará la llamada). Así que no creo que esto sea posible.

+0

Hay aplicaciones que graban tus llamadas (solo oyes tus propias palabras), así que creo que debería ser posible de alguna manera tanto realizar la llamada como realizar algo en el discurso. Probablemente estos procesadores pueden estar encadenados? – Bozho

+0

¿Puedes señalar a la página de aplicaciones en google play, porque no he podido encontrar ninguna – nandeesh

+0

solía tener una aplicación que registra mi llamada e incluso la versión muy silenciosa del otro participante (probablemente la que se puede escuchar desde el altavoz y va al micrófono). Ya no lo tengo (sonrojé mi teléfono), y no recuerdo cuál de las muchas aplicaciones de "grabación" era, pero hice algunas grabaciones. – Bozho

0

Según el modelo de teléfono, es posible si el reconocedor de voz se implementa en un servicio. No tengo ningún problema con el HTC Rezound con Android v4, pero el Motorola Bionic con Android v2.3 no funciona ya que el administrador de audio falla. Incluso con el HTC, el reconocedor no pudo escuchar a la persona en el otro teléfono. Con el altavoz encendido, mantiene el error de informe no coincide.

Cuestiones relacionadas