我正在android上录制音频,但是我现在面临的主要问题是如果音频中没有数据(例如用户什么也没说),我不想保存音频文件。我可以先保存它,然后检查音频文件的时间或长度,然后再删除它,但是我想在存储文件之前先对其进行检查,以减少工作量并提高性能。
答案 0 :(得分:2)
您可以通过以下方式在 MediaRecorder 上访问语音流的幅度:
public double getAmplitude() {
if (recorder != null)
return recorder.getMaxAmplitude();
else
return 0;
}
然后您可以检查范围以检测音频上是否有任何有价值的数据(例如通话)
答案 1 :(得分:0)
根据环境噪声,仅检查振幅可能不够。您可能需要对音频进行快速傅里叶变换,以分离频率。这可以用最少的缓冲量来完成。
有关傅里叶变换的视觉说明,请参见video。该视频有also个。这实际上是一个非常有趣的话题。
在任何情况下,下面的book中都有用于音频可视化器的示例代码。这是该书的随附github site。它还可能包含一些其他与音频相关的代码示例,您可能会觉得有用。