Hallo,
ich bin schon seit mehreren Tagen auf der Suche nach dem Thema, wie ich es hinbekomme Frequenzen aus meinem Mikro zu erhalten. Ich habe Grundlegende Kenntnisse im Audiobereich, weiß über Samples bescheid und hab von FFT gelesen (Versuche es zu verstehen, sobald sich mir erschließt wofür ich das brauche). Ein kleines Programm, was aufgenommenes Audio speichert konnte ich schreiben und verstehen:
(Keine Weltneuheit, aber es funktioniert)
Leider verstehe ich absolut nicht, mit welchen Hilfsmitteln die Frequenzen herauszufinden sind.
Wie bekomme ich die Samples, mit denen ich weiterarbeiten kann?
Wofür brauche ich die FFT?
Und was für Frequenzen bekommt man (Long, Double oder was auch immer)
Ich weiß, dass dies ein nicht zu unterschätzendes Thema ist, wäre trotzdem nett, wenn ihr mir dabei helfen könntet.
Vielen Dank
Pöhli
ich bin schon seit mehreren Tagen auf der Suche nach dem Thema, wie ich es hinbekomme Frequenzen aus meinem Mikro zu erhalten. Ich habe Grundlegende Kenntnisse im Audiobereich, weiß über Samples bescheid und hab von FFT gelesen (Versuche es zu verstehen, sobald sich mir erschließt wofür ich das brauche). Ein kleines Programm, was aufgenommenes Audio speichert konnte ich schreiben und verstehen:
Java:
public class AudioTest {
AudioFormat format;
TargetDataLine targetDataLine;
public AudioTest() {
format = new AudioFormat(8000.0F, 16, 1, true, false);
DataLine.Info dataLineInfo =
new DataLine.Info(
TargetDataLine.class,
format);
try {
targetDataLine = (TargetDataLine)
AudioSystem.getLine(dataLineInfo);
System.out.println("start");
long time = System.currentTimeMillis();
new CaptureThread().start();
while (time + 3000 > System.currentTimeMillis())
try {
Thread.sleep(100);
} catch (Exception e) {
// TODO: handle exception
}
System.out.println("done rec");
targetDataLine.stop();
targetDataLine.close();
} catch (LineUnavailableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
class CaptureThread extends Thread{
@Override
public void run(){
try {
targetDataLine.open(format);
targetDataLine.start();
AudioInputStream istream = new AudioInputStream(targetDataLine);
AudioSystem.write(istream, AudioFileFormat.Type.WAVE, new File("test.wav"));
} catch (LineUnavailableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main (String[] args){
new AudioTest();
}
Leider verstehe ich absolut nicht, mit welchen Hilfsmitteln die Frequenzen herauszufinden sind.
Wie bekomme ich die Samples, mit denen ich weiterarbeiten kann?
Wofür brauche ich die FFT?
Und was für Frequenzen bekommt man (Long, Double oder was auch immer)
Ich weiß, dass dies ein nicht zu unterschätzendes Thema ist, wäre trotzdem nett, wenn ihr mir dabei helfen könntet.
Vielen Dank
Pöhli
Zuletzt bearbeitet: