Android中的实时音频处理

Jer*_*gan 34 audio android real-time

我正在试图弄清楚如何编写一个可以动态解码音频莫尔斯电码的应用程序.我找到了这个文档,它解释了如何在Android中录制麦克风的音频.我想知道的是,是否可以从麦克风访问原始输入或是否必须将其写入/读取到文件.

谢谢.

dma*_*oni 24

如果您使用MediaRecorder(上面的示例),它会将压缩音频保存到文件中.

如果您使用AudioRecord,您可以直接获取音频样本.

是的,你想做什么应该是可能的.


gre*_*egm 6

使用AudioRecord是过度的.只需每隔1000毫秒检查一次MediaRecorder.getMaxAmplitude(),即可获得大噪声与静音.

如果你真的需要分析波形,那么是的,你需要AudioRecord.获取原始数据并计算您所关注的原始字节部分的均方根,以获得音量感.

但是,为什么当MediaRecorder.getMaxAmplitude()更容易使用时,所有这一切.

从这个答案看我的代码:这个问题

  • 1000 毫秒 = 1 秒,这对于解析摩尔斯电码来说似乎不够频繁。 (3认同)
  • 但你不能使用getMaxAmplitude()(你可以,但你总是得到0),除非你真正开始录音.所以你仍然需要录制一个文件,它可能会变得无限大.绝对不是解决方案. (3认同)

And*_*rei 6

麻省理工学院媒体实验室有一个名为funf的传感框架:http ://code.google.com/p/funf-open-sensing-framework/
他们已经为音频输入和一些分析(FFT等)创建了类,据我所见,保存到文件或上传已实现,并且它们可以处理手机上可用的大多数传感器.您也可以从他们编写的代码中获得灵感,我认为这些代码非常好.