3

我正在做一个项目,我必须使用 Android 开发板,就像下面一样,通过 MIC 录制音频,特别是语音。

对于来自 MIC 的音频,我希望它被背景噪音过滤掉。我知道我可以应用一些噪声抑制算法来过滤它,但我想使用内置功能VOICE_RECOGNITION作为音频源,来过滤背景噪声。

AudioRecord audioRecord = new AudioRecord(AudioSource.MIC, SAMPLE_RATE, CHANNEL_CONFIG, AUDIO_FORMAT, minBufSize);
AudioRecord audioRecord = new AudioRecord(AudioSource.VOICE_RECOGNITION, SAMPLE_RATE, CHANNEL_CONFIG, AUDIO_FORMAT, minBufSize);

VOICE_RECOGNITION说:

为语音识别调整的麦克风音频源(如果可用),否则行为类似于 DEFAULT。

它说“如果可用”,这是有道理的,此功能并非在所有设备上都可用,也不是 Android 操作系统的一部分,因为如果它是操作系统的一部分,它应该在所有设备上都可用。这意味着,它与硬件有关,所有制造商可能都没有提供此功能。

我的问题:

  1. 在购买之前,我如何知道此功能是否可用?
  2. 正如我所假设的那样,这个功能真的与硬件有关吗?
  3. 如果此功能在我的相应设备中不可用,我该如何启用它?

注意:上面定义的所有 Android 开发板都可以运行 Android JellyBean 4.2.2。

注意:我有三星 Galaxy S2,其中提供了此功能。经测试,工作正常。

任何额外的细节将不胜感激。谢谢

4

2 回答 2

2

我的理解是通过使用单独捕获环境噪声的第二个专用麦克风来实现噪声消除。我相信硬件相关的要求是这个专用麦克风的存在。

查看 Galaxy S2 的技术规格,您可以看到以下功能:

使用专用麦克风进行主动降噪

来源:http ://www.gsmarena.com/samsung_i9100_galaxy_s_ii-3621.php

作为另一个例子,Nexus 5 在技术规格中提到:

双麦克风

来源:https ://www.google.com.au/nexus/5/

谢谢

于 2014-04-30T09:01:09.637 回答
1

VOICE_RECOGNITION 的预处理最少(通常没有)。默认 MIC 输入具有内置处理功能。

于 2018-04-11T13:48:04.660 回答