android - 如何使 SpeechRecognizer 的蜂鸣声静音?

标签 android audio voice-recognition

以前有人问过这个问题,但似乎没有人有解决方案:Muting SpeechRecognizer's beep sound

尽管如此,我还是想知道有没有人知道如何将 SpeechRecognizer 的嘟嘟声静音?

我创建了 speechRecognizer 对象:private SpeechRecognizer sr = SpeechRecognizer.createSpeechRecognizer(this);

然后在我的类里面,我像这样实例化 speechRecognizer

sr.setRecognitionListener(new listener());
Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
        RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);             
i.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getApplication()
        .getClass().getName());
i.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 6);
i.putExtra(RecognizerIntent.EXTRA_PROMPT, "");
i.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS, 7000);
sr.startListening(i);

谁有什么好主意?我研究过我可以创建一个 AudioManager (AudioManager mAudioManager) 对象,然后使用 setStreamSolo(),我可以静音。但我不确定如何实现。我将它添加到 speechRecognizer 的实例化代码中,但没有任何反应。这是我应该从我的主类调用的东西吗?

mAudioManager.setStreamSolo(AudioManager.STREAM_VOICE_CALL, true);

提前谢谢你。

最佳答案

噢,我会发表评论,但我没有代表。不过我想帮忙。

你见过这个吗:

Continues Speech Recognition beep sound after Google Search update

Is it possible to turn off the silent mode programmatically in android?

Mute the global sound in Android

在我看来,代码因 android 版本而异 - 如第一个链接所述,Google 将“哔”的输出切换为媒体流

我猜其中一个问题会有答案。如果是这样,请发布您所做的事情,正如您所说,许多人似乎都遇到了这个问题。

我的猜测是:

//mute audio

AudioManager amanager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
             amanager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true);
             amanager.setStreamMute(AudioManager.STREAM_ALARM, true);
             amanager.setStreamMute(AudioManager.STREAM_MUSIC, true);
             amanager.setStreamMute(AudioManager.STREAM_RING, true);
             amanager.setStreamMute(AudioManager.STREAM_SYSTEM, true);


//unmute audio

AudioManager amanager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);

             amanager.setStreamMute(AudioManager.STREAM_NOTIFICATION, false);
             amanager.setStreamMute(AudioManager.STREAM_ALARM, false);
             amanager.setStreamMute(AudioManager.STREAM_MUSIC, false);
             amanager.setStreamMute(AudioManager.STREAM_RING, false);
             amanager.setStreamMute(AudioManager.STREAM_SYSTEM, false);

我想这个来自 Witness 应用程序用户的回答会奏效。归功于:@WitnessApplications

此外,此范围将是在您开始收听(i) 之前;

关于android - 如何使 SpeechRecognizer 的蜂鸣声静音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25538752/

相关文章:

android - PlacePicker 不选择 Material 主题

android - 运行非零退出值1时出现此错误

algorithm - 如何使用python查找两个语音文件的差异

android - 调用 android.speech.RecognizerIntent API 导致连接错误对话框,在日志中显示 'calling_package' 警告

audio - RtAudio 或 PortAudio,使用哪一个?

Android - 当前语音识别服务的名称是什么

java - 映射器函数返回了一个空值

java - 回收器 View 需要 30 秒才能加载,并且滚动时也会滞后

java - 设计音频架构

audio - 如何分析 PCM 或 WAV 样本的基频?