禁用HTC噪音消除

时间:2012-05-03 02:03:37

标签: android microphone htc-android

我有一个可以读取麦克风的应用。特别是我检测到吹入麦克风;)它不适用于很多HTC设备。我已经选择了HTC Droid Eris以及HTC Droid Incredible。除了那些我有许多朋友的报告,有HTC设备也遇到这个问题,包括相对较新的HTC Thunderbolt。

因此,调试应用程序显示环境室噪声在星巴克的4000-11000中记录。一旦我吹入麦克风,输入音量就会下降到4000s:每次都是。

任何人都知道这是否可以通过编程方式禁用?

这是我如何阅读输入...

    int minBufferSize = AudioRecord.getMinBufferSize(8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
    AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, 8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, minBufferSize);
    short[] buffer = new short[minBufferSize];

    audioRecord.startRecording();
    audioRecord.read(buffer, 0, minBufferSize);

    int i = 0;
    for (short sample : buffer) {
        inputVolume = Math.abs(sample);
        maxVolumeIn = (inputVolume > maxVolumeIn) ? inputVolume : maxVolumeIn;
        if (inputVolume >= micSensitivity) {
            Log.d(TAG, "Blowing Detected. Volume Level: " + inputVolume);
            break;
        }
    }

1 个答案:

答案 0 :(得分:5)

可设定的程度非常小。

使用音频源MediaRecorder.AudioSource.VOICE_RECOGNITION代替MediaRecorder.AudioSource.MIC将关闭该输入的音频过滤器。一般而言,就您在设备之间看到的过滤而言,它是一种狂野的西部。即使使用VOICE_RECOGNITION也不完美,因为关闭过滤器仅被用于冰淇淋三明治兼容性定义。 HTC在冰淇淋三明治之前使用它,但对于你的情况,它可能是正确的选择。

来自Android 4.0 Compatibility Definition Document的第5.3节:

  

除上述录制规格外,当应用程序开始使用android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION音频源录制音频流时:

     
      
  • 降噪处理(如果存在)必须禁用。
  •   
  • 必须禁用自动增益控制(如果存在)。
  •