Как конвертировать WAV аудио в частотный файл на JAVA?
Я хочу обратиться стерео wav в частоту и сохраните их в txt.
Идея заключается в том, что я должен загрузить wav, прочитать его и, наконец, сохранить частоты в моем компьютере в виде txt.
Например
0:00 мин 50 Гц
0:01 мин 57 Гц
....
1:10 мин 450 Гц
Я пытаюсь запустить и отредактировать множество проектов, но мне это не удается.(Слишком много неудачных попыток с сэмплами, байтами, БПФ и т. д)
Есть ли исходный код, который это делает?Спасибо
Что я уже пробовал:
ByteArrayOutputStream out = new ByteArrayOutputStream(); running = true; int n = 0; byte[] buffer = new byte[(int) 1024]; try { while (running) { n++; if (n > 200000){break;} int count = 0; count = outDinSound.read(buffer, 0, 1024); if (count > 0) {out.write(buffer, 0, count);} } byte b[] = out.toByteArray(); <pre>final int totalSize = b.length; int amountPossible = totalSize / 1024; System.out.println("Frequencies captured: "+totalSize+" "+amountPossible+" * 1024"); System.out.println("_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _"); Complex[][] results = new Complex[amountPossible][]; System.out.println(" * * * STARTING ANALYSIS * * *"); for (int times = 0; times < amountPossible; times++) { Complex[] complex = new Complex[1024]; for (int i = 0; i < 1024; i++) { complex[i] = new Complex(b[(times * 1024) + i], 0); } results[times] = FFT.fft(complex); }
Kenneth Haugland
На самом деле мне не совсем ясно, чего вы на самом деле хотите. Что это значит:
0:00 мин 50 Гц
0:01 мин 57 Гц
....
1:10 мин 450 Гц ?
В общем, БПФ даст вам все частотные данные в течение заданного промежутка времени, а не одну частоту каждую секунду.
KotsanisNakos
Да, вы правы. Временной промежуток, который я видел до сих пор в проектах, которые я пытаюсь создать(или изменить), был другим и не был чем-то стабильным.
В примере я пилю вас, что для каждой милесекунды я читаю частоту(на самом деле это много freq, и я нахожу среднее значение для этой милесекунды [propably false]) из FFT и записываю ее в txt. Моя проблема, которую я не могу найти решения, заключается в том, что я хочу прочитать образцы, затем БПФ прочитать частоту, затем вычислить частоту В Гц, а затем записать в файл .txt
KotsanisNakos
Идея того, как я хочу это сделать, примерно такова::
|WAV из Пути|- и GT;|| Ява -&ГТ; образцы-&ГТ;БПФ-&ГТ;частоты за промежуток времени|| -&ГТ; |част в txt|