小编Sya*_*yah的帖子

如何在 Android 上检测声音频率?

首先,我对 Android 还很陌生。在此之前我正在做Arduino。我想要实现的第一个目标是能够检测特定的声音频率或模式。

因此,在我能够检测到特定的声音频率之前,我必须至少能够看到周围的所有频率。

在任何人无需尝试就可以将其标记为重复项或问题之前。我已经尽力了,尽我所能。我几乎无法理解 FFT 或过零是如何工作的。但我读到过零并不是那么准确。所以,我正在使用 FFT。我非常密切地关注这篇文章,但我不知道整个工作代码是什么样的。

Android 音频 FFT 使用 audiorecord 检索特定频率幅度

因此,我尝试将问题和解决方案结合起来,如下面的代码所示。我几乎无法理解发生了什么事。

FrequencyThread.java

package com.example.syahmul.backgroundapp;

/**
 * Record and detect frequency using FFT
 * Ref: /sf/ask/404187311/
 * magnitude-using-audiorecord
 */

 //Audio Library
 import android.media.AudioRecord;
 import android.media.MediaRecorder.AudioSource;
 import android.media.AudioFormat;
 import android.provider.MediaStore;
 import android.util.Log;

public class FrequencyThread extends Thread{
    protected static final String TAG = "FrequencyThread";
    int channel_config = AudioFormat.CHANNEL_IN_MONO;
    int format = AudioFormat.ENCODING_PCM_16BIT;
    public int sampleSize = 8000;
    //public int bufferSize = AudioRecord.getMinBufferSize(sampleSize, channel_config, format); //640
public …
Run Code Online (Sandbox Code Playgroud)

java android fft frequency frequency-analysis

5
推荐指数
0
解决办法
3388
查看次数

标签 统计

android ×1

fft ×1

frequency ×1

frequency-analysis ×1

java ×1