Silenciar el sonido de reconocimiento de voz de Google
Tengo una aplicación de prueba que utiliza la voz de Google de manera continua y reproduce el sonido de pitido cada vez que se llama al servicio de reconocimiento de Google. Estoy tratando de deshacerme del pitido. He leído los hilos de silenciar la corriente de la música pero eso no trabajaría para mí.
Estoy intentando encontrar la localización del archivo del pitido así que podría apenas ir y borrarlo del sistema. He seguido este hilo, pero no puedo ver el archivo en el archivo del sistema 5.0.
- Tiempo de espera del reconocimiento de voz de Google
- Cómo leer mensajes de voz por programación en Android
- Reconocimiento de voz en Android con clip de sonido grabado?
- API de reconocimiento de voz sin conexión en Android 4.2
- API de voz a texto de Google para idiomas distintos del inglés
- Android TTS Masculino Masculino Voz Cambio
- Comparar dos voces en android
- Reconocimiento de voz fuera de línea
- Continúa el sonido del pitido de reconocimiento de voz después de actualizar la búsqueda de Google
- Talking App como hablar, la grabación de audio no funcionó en todos los dispositivos
- ¿Cómo pasar el texto a Google Voice SMS mediante programación?
- ¿Cómo convertir el habla al texto durante la llamada con diferentes colores de texto para el llamante y el receptor de llamadas?
- Reconocimiento de voz fuera de línea en Android (JellyBean)
Suponiendo que no desea silenciar todas las secuencias porque está interesado en reproducir su propio sonido, esto podría ser una solución para usted: Utilice la API de enfoque de audio .
Así que usted tendría algo como esto:
AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE); ... // Request audio focus for playback int result = am.requestAudioFocus(afChangeListener, // Use the music stream. AudioManager.STREAM_MUSIC, // Request permanent focus. AudioManager.AUDIOFOCUS_GAIN); if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { am.registerMediaButtonEventReceiver(RemoteControlReceiver); // Play your own sound (or play silence) } am.abandonAudioFocus(afChangeListener);
No he probado, si la aplicación de Google (que reproduce el sonido de pitido) se adhiere a esta solicitud, pero por lo general debe funcionar y vale la pena darle una oportunidad.
Otra opción sería silenciar directamente todos los sonidos procedentes de la aplicación de Google (que incluye el sonido de reconocimiento de voz de Google). La ventaja de este método es que no hay interferencia con ningún otro audio de transmisión. El siguiente es un enlace para más detalles. Tenga en cuenta, sin embargo, que esto requiere acceso root: https://android.stackexchange.com/questions/128588/how-do-i-disable-the-google-voice-typing-voice-search-ding-sound .
La única solución que he encontrado para silenciar el pitido de reconocimiento de sonido es:
audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE); audio.setStreamVolume(AudioManager.STREAM_MUSIC, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
Antes de guardar el volumen, por ejemplo:
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); current_volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
Para volver a restaurar el nivel de volumen, como tenias:
audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE); audio.setStreamVolume(AudioManager.STREAM_MUSIC, audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC), AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
Espero que te ayude en algo
Puede utilizar el administrador de audio para controlar los sonidos
AudioManager audioManager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
Antes de empezar a reconocer la llamada
audioManager.setStreamMute(AudioManager.STREAM_MUSIC, true);
Y una vez completado el reconocimiento, llame al
audioManager.setStreamMute(AudioManager.STREAM_MUSIC, false);
Encontré otra solución que funciona bien para mí. Puse la corriente de audio del reproductor de medios a otra corriente, así que podría silenciar la corriente de la música. Espero que ayude a alguien más también.
afd = context.getResources().openRawResourceFd(R.raw.duduuudududu2); mp.reset(); mp.setAudioStreamType(AudioManager.STREAM_ALARM); myAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,0,0); try { mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength()); mp.prepare(); } catch (IOException e) { e.printStackTrace(); } mp.start();
- Android KeyPairGenerator genera siempre el mismo par de claves
- Detección de presencia de FPU en Android