Ich recherchiere seit ein paar Monaten immer wieder darüber.
Ich suche einen Bibliothek o funktionierender Beispielcode zur Erkennung der Frequenz im Audioeingang der Soundkarte oder das Vorhandensein einer bestimmten Anzahl von Frequenzen feststellen. Ich neige zu Java, aber die eigentliche Anforderung ist, dass es sollte etwas höheres/einfacheres als C sein y vorzugsweise plattformübergreifend . Linux wird die Zielplattform sein, aber ich möchte Optionen für Mac oder möglicherweise sogar Windows offen lassen. Python wäre auch akzeptabel, und wenn jemand eine Sprache kennt, die dies einfacher machen würde / bessere vorgefertigte Bibliotheken hat, wäre ich bereit, sie in Betracht zu ziehen.
Im Wesentlichen habe ich eine definierte Menge von Frequenzpaaren die im Audioeingang der Soundkarte erscheinen, und ich muss in der Lage sein, dieses Paar zu erkennen und dann... etwas zu tun, wie zum Beispiel das folgende Audio bis zu einer maximalen Dauer aufzunehmen und dann eine Aktion durchzuführen. Ein potenzieller Lauf könnte z.B. 5-10 Paare enthalten, die zur Laufzeit definiert werden, aber nicht kompiliert werden können Frequenz 1 für ~ 1 Sekunde, eine maximale Verzögerung von ~ 1 Sekunde, Frequenz 2 für ~ 1 Sekunde.
Ich habe Vorschläge gefunden, entweder eine FFT oder einen Goertzel-Algorithmus zu verwenden, konnte aber nicht mehr als den einfachsten Beispielcode finden, der keine brauchbaren Ergebnisse zu liefern schien. Ich fand auch einige Einschränkungen mit Java-Audio und nicht in der Lage, mit einer hohen Rate zu sampeln, um die Auflösung zu erhalten, die ich brauche.
Irgendwelche Vorschläge für zu verwendende Bibliotheken oder vielleicht funktionierenden Code? Ich gebe zu, dass ich nicht der mathematisch begabteste bin, daher habe ich mich in einigen der eher technischen Beschreibungen, wie die Algorithmen tatsächlich funktionieren, verirrt.