【问题标题】:How do I read time samples of audio files in Android?如何在 Android 中读取音频文件的时间样本?
【发布时间】:2013-10-23 01:14:29
【问题描述】:

我想在 Android 上编写一个应用程序来记录睡眠者的鼾声,然后分析它(即非实时)是否存在称为阻塞性睡眠呼吸暂停的医疗状况的迹象。

我试用过的 Android 设备有录音机,可以产生一种称为 .3ga 的文件格式。我想以编程方式读取音频文件并查看每个单独时间样本的幅度。然后我可以分析它的模式。如果我将其转换为不同的格式,例如 MP3,这会更容易吗?如果是这样,我该如何以编程方式做到这一点?

我对此进行了谷歌搜索,大多数点击似乎与录音或播放有关,而这与我正在尝试做的事情无关。我还没有编写任何代码,因为我不知道如何开始。

【问题讨论】:

    标签: android audio


    【解决方案1】:

    您希望对原始音频信号进行基于样本的分析,但您提到的格式已被压缩。您将需要直接处理原始样本,或者解压缩音频然后进行分析。

    既然你说你可以事后做这项工作,为什么不上传到服务器并在那里分析呢?

    【讨论】:

    • 我希望将整个过程保留在 Android 上,以便用户可以在手机上查看结果,或将结果显示给他的医生。无论哪种方式,我都必须解压缩音频,那么我如何在 Android 上做到这一点?或者,我可以编写自己的记录器并直接写入未压缩的格式。由于不需要高保真度,我可以使用低采样率/小样本(位)大小来防止文件变得太大(假设 8 小时睡眠)。但 Android 支持哪些文件格式来执行此操作?
    • 另外,仅仅因为 3ga 是一种压缩格式并不一定意味着无法访问单个样本 - 这取决于 Android/java 是否支持读取它。例如,JPEG 是一种压缩格式,但您可以将其加载到 Bitmap 类中并以这种方式读取单个像素。
    • 在这种情况下,我只需使用AudioRecorder 之类的东西从麦克风中读取样本并直接处理。保存所有样本是不切实际的,因此您需要使用“滑动窗口”方法来检测您要查找的内容。
    • 在“什么”情况下?我们尚未确定无法读取/解析 3ga 文件或将其转换为另一种格式。请记住,打鼾不需要高保真度 - 每秒 8000 个样本,每个样本 8 位,单声道只需 230,400,000 字节即可实现 8 小时的睡眠。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2013-10-27
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2014-02-08
    • 2020-06-02
    相关资源
    最近更新 更多