我有一个记录音频的应用程序,当我将它与内置的录音机应用程序进行比较时,质量很差。
我尝试下载其他一些录音机,它们的音质确实比我的应用程序更好。
如何为我的应用程序获得最高质量的音频?
答案 0 :(得分:2)
假设录音环境合理(即没有明显的背景噪音),有两个主要因素会影响音频质量:
对于录制格式,如果您希望获得最高质量,请使用非损耗格式,例如线性PCM,而不是有损格式,例如MP3。如果您使用android.media.AudioRecord.AudioRecord
,则可以在构造函数中指定录制的声音数据的位深度和采样率:
AudioRecord(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes)
一般来说,采样率越高,质量越好。位深度由audioFormat
参数控制,您可以指定AudioFormat.ENCODING_PCM_8BIT
或AudioFormat.ENCODING_PCM_16BIT
。 16位通常会有更高的质量,我想大多数设备都会处理这个问题。最大采样率将随设备而变化,但您应该能够获得44.1kHz(16位@ 44.1kHz是标准CD格式),因为所有设备上的采样率都是“保证”(参见AudioRecord)
在后处理方面,您可以对获得的数字音频样本执行回声消除,降噪,音频压缩,滤波等,但这对于获得合理质量的音频不是必需的。
如果您要将录制的音频质量与某些其他应用程序的音频质量进行比较,则应首先确保以与您要比较的应用程序相同的格式录制/保存音频。那么任何差异都可能在后处理阶段。