android - 禁用 HTC 噪音消除

标签 android microphone htc-android

我有一个可以读取麦克风的应用程序。具体来说,我检测到对着麦克风吹气 ;) 它不适用于很多 HTC 设备。我买了 HTC Droid Eris 和 HTC Droid Incredible。除此之外,我还收到许多使用 HTC 设备的 friend 的报告,包括相对较新的 HTC Thunderbolt。

因此,调试该应用程序表明,星巴克的环境房间噪音记录在 4000-11000 之间。一旦我对着麦克风吹气,输入音量就会降到 4000 秒:每次,一直。

有人知道这是否可以通过编程方式禁用吗?

这是我读取输入的方式......

    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;
        }
    }

最佳答案

它可以设置到非常小的程度。

使用音频源 MediaRecorder.AudioSource.VOICE_RECOGNITION 而不是 MediaRecorder.AudioSource.MIC 将关闭该输入的音频过滤器。一般来说,就您在设备之间看到的过滤而言,它有点像狂野的西部。即使使用 VOICE_RECOGNITION 也不是完美的,因为关闭过滤器仅在 Ice Cream Sandwich 兼容性定义中采用。 HTC 在 Ice Cream Sandwich 之前使用它,所以对于您的情况,它可能是正确的选择。

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

In addition to the above recording specifications, when an application has started recording an audio stream using the android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION audio source:

  • Noise reduction processing, if present, MUST be disabled.
  • Automatic gain control, if present, MUST be disabled.

关于android - 禁用 HTC 噪音消除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10424133/

相关文章:

java - Android:当我在另一个 Activity 中时,如何保持倒数计时器运行并在超时时显示一条消息?

android - 有时麦克风不会为其他应用程序发布

Android Studio adb - 找不到 USB 设备 - Verizon 解决方案

Android 回调不会在应用程序 onStop/OnResume 后再次运行

java - 显示图库中的图像,ImageBitmap 和 ImageURI 似乎不起作用

android - 带麦克风的谷歌电视

android - 在 HTC Rezound 上且仅在 4g 上尝试连接到服务器时返回未知主机异常

android - setOrientationHint 在某些手机的前置摄像头 (HTC) 上逆时针旋转视频

android - 在 Android RunOnUiThread 或 Handler.post 中更新自定义 View 的最佳方式

java - 使用 Java Sound API 从麦克风阵列同步录音