0

我有一个录制音频的应用程序,当我将它与内置的录音机应用程序进行比较时,质量很差。

我尝试下载其他一些录音机,它们的音频质量确实比我的应用程序更好。

如何为我的应用程序获得最高质量的音频?

4

1 回答 1

2

假设录音环境是合理的(即没有明显的背景噪音),有两个主要因素会影响音频的质量:

  • 录制音频的格式
  • 如果有的话,你做了什么后处理

对于录制格式,如果您想要最高质量,请使用无损格式,例如线性 PCM,而不是有损格式,例如 MP3。如果使用android.media.AudioRecord.AudioRecord,则可以在构造函数中指定录制声音数据的位深度和采样率:

AudioRecord(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes)

一般来说,采样率越高质量越好。位深度由audioFormat参数控制,您可以指定AudioFormat.ENCODING_PCM_8BITAudioFormat.ENCODING_PCM_16BIT。16 位通常质量更高,我想大多数设备都会处理这个问题。最大采样率会因设备而异,但您应该能够获得 44.1kHz(16bit @ 44.1kHz 是标准 CD 格式),因为在所有设备上都“保证”了该采样率(请参阅AudioRecord

在后处理方面,您可以对获得的数字音频样本执行回声消除、降噪、音频压缩、过滤等,但这对于获得合理质量的音频应该不是必需的。

如果您将录制的音频质量与其他应用程序的音频质量进行比较,则应首先确保以与您比较的应用程序相同的格式录制/保存音频。那么任何差异都可能出现在后处理阶段。

于 2012-04-22T22:18:54.430 回答