アンドロイド用にTarsosDSPを使い始めたばかりなので、FFTの使い方を理解できません。誰でも私にサンプルを提供できますか?私はちょうどファイルを読んで、それのFFT出力を得たいです。アンドロイドのTarsosDSPライブラリでFFTを使用する
1
A
答えて
1
このコードを試してみてください。
new AndroidFFMPEGLocator(this);
new Thread(new Runnable() {
@Override
public void run() {
File externalStorage = Environment.getExternalStorageDirectory();
File sourceFile = new File(externalStorage.getAbsolutePath() , "/440.mp3");
final int bufferSize = 4096;
final int fftSize = bufferSize/2;
final int sampleRate = 44100;
AudioDispatcher audioDispatcher;
audioDispatcher = AudioDispatcherFactory.fromPipe(sourceFile.getAbsolutePath(), sampleRate, bufferSize, 0);
audioDispatcher.addAudioProcessor(new AudioProcessor() {
FFT fft = new FFT(bufferSize);
final float[] amplitudes = new float[fftSize];
@Override
public boolean process(AudioEvent audioEvent) {
float[] audioBuffer = audioEvent.getFloatBuffer();
fft.forwardTransform(audioBuffer);
fft.modulus(audioBuffer, amplitudes);
for (int i = 0; i < amplitudes.length; i++) {
Log.d(TAG, String.format("Amplitude at %3d Hz: %8.3f", (int) fft.binToHz(i, sampleRate) , amplitudes[i]));
}
return true;
}
@Override
public void processingFinished() {
}
});
audioDispatcher.run();
}
}).start();
それはTarsosDSP Manual(12ページ)と、外部記憶装置上の各bufferSize
440.mp3のファイル(テスト440Hzのトーン)(SDカード)のログFFTで計算してショーに基づいて。あなたのプロジェクトのhereからlibs
フォルダにTarsosDSP-Android-2.3.jar(またはそれ以降)を追加し、あなたのデバイスのffmpegライブラリ(armeabi-v7a_ffmpeg、armeabi-v7a-neon_ffmpegまたはx86_ffmpeg)に対応するライブラリとして追加してください。あなたのプロジェクトのhereからassets
まで。
そしてAndroidManifest.xml
に
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
を追加(また、21より高いtargetSdkVersion
のランタイム許可を与える)を忘れないでください
PS。 bufferSize
がソースファイル(またはそれ以上)のサンプル数に等しくなる場合、ファイル全体に対してFFTを与えることができます。
関連する問題
- 1. GPL用のOpenCL FFTライブラリ?
- 2. AndroidでTarsosDSPを使用したRealTimeピッチシフト
- 3. 分数FFTライブラリ
- 4. C++で1D FFTを使用するクォータニオンFFT
- 5. AndroidでFFTを使用する
- 6. WAVファイルを周波数ドメインに変換して使用する方法FFTライブラリ
- 7. アンドロイドのGoogleマップでeasypermissionsライブラリを使用する方法は?
- 8. アンドロイドでwekaライブラリを使用する際のエラー
- 9. アンドロイド用Zxingライブラリ
- 10. アンドロイド用SNMPライブラリ
- 11. TarsosDSPクラップ検出
- 12. FFTWライブラリのMATLABのFFTとFFTShift C++
- 13. C/C++/JavaのDICOMおよびFFTライブラリ
- 14. FFTWライブラリで実数FFTを逆実数化する方法
- 15. 別のアプリケーションにネイティブのアンドロイド共有ライブラリを使用する
- 16. vDSPを使用したFFTの実装
- 17. アンドロイドの顔認識とフェイストリミングに使用するライブラリとサンプル
- 18. アンドロイドの別のプロジェクトでライブラリapiとしてプロジェクトを使用する方法は?
- 19. アンドロイド - umano SlidingUpPanelLayout - 私は次のライブラリを使用しています
- 20. FFTを使用したリアルタイムピッチ検出
- 21. fftを使用したバンドパスフィルタR
- 22. 私はアンドロイドで使用するために、このライブラリを見つけた
- 23. ARM DSPライブラリとMatLabを使用してFFTを計算すると、結果が矛盾します
- 24. TarsosDSPを使用してファイルからMFCCデータを抽出するにはどうすればよいですか?
- 25. COMライブラリで使用できるライブラリのバージョンをロードする
- 26. 共有アレーを使用したPythonでの高速FFTのメモリアラインメント
- 27. FFT - PCMデータにウィンドウを適用する
- 28. ライブラリはアンドロイドでこのプロジェクトエラーと同じパッケージを使用していますか?
- 29. FFTを使ったテンプレートマッチング
- 30. MatlabでFFTを使用して信号のスペクトルを計算してプロットする
[TarsosDSPのサンプルフォルダ](https://github.com/JorenSix/TarsosDSP/tree/master/src/examples/be/tarsos/dsp/example)を見ると、[サンプルスペクトログラムアプリケーション](https: //github.com/JorenSix/TarsosDSP/blob/master/src/examples/be/tarsos/dsp/example/Spectrogram.java)、これはFFTのかなり典型的な使用方法です。 – SleuthEye