使谷歌语音识别哔声静音

con*_*n_9 9 android speech-recognition voice-recognition android-speech-api google-voice-search

我有一个测试应用程序,它以连续的方式使用Google语音,并且每次调用Google识别服务时都会发出哔声.我试图摆脱哔哔声.我已经读过静音音乐流的线程,但这对我不起作用.

我试图找到蜂鸣声文件的位置,所以我可以去系统中删除它.我按照这个线程,但我在5.0系统文件中看不到该文件.

REG*_*EG1 6

假设您不想将所有流静音,因为您有兴趣播放自己的声音,这可能是您的解决方案:使用Audio Focus API.

所以你会有这样的事情:

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);
Run Code Online (Sandbox Code Playgroud)

我没有测试过,谷歌应用程序(其播放提示音)是否符合这一要求,但通常它应该工作以及它的价值给它一试.

另一种选择是直接静音来自Google App的所有声音(包括Google语音识别哔声).这种方法的优点是不会干扰任何其他流式音频.以下是更详细的链接.但请注意,这需要root访问权限:https: //android.stackexchange.com/questions/128588/how-do-i-disable-the-google-voice-typing-voice-search-ding-sound.


Ser*_*ero 5

我发现静音哔声识别的唯一解决方案是:

audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audio.setStreamVolume(AudioManager.STREAM_MUSIC, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
Run Code Online (Sandbox Code Playgroud)

在保存卷之前,例如:

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
current_volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
Run Code Online (Sandbox Code Playgroud)

要返回以恢复音量级别,例如tapeworms:

audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audio.setStreamVolume(AudioManager.STREAM_MUSIC, audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC),
            AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
Run Code Online (Sandbox Code Playgroud)

我希望它对你有所帮助