2017-02-21 7 views
-2

Ich muss eine Analyse auf Sounds tun, um zu überprüfen, ob es behindert oder gelöscht wurde.Wie kann ich numerische Werte aus einer Audiodatei in Java extrahieren

import java.net.URL; 
import javax.swing.*; 
import javax.sound.sampled.*; 

public class LoopSounds { 

    public static void main(String[] args) throws Exception { 
     URL url = new URL(
      "http://pscode.org/media/leftright.wav"); 
     Clip clip = AudioSystem.getClip(); 
     AudioInputStream ais = AudioSystem. 
      getAudioInputStream(url); 
     clip.open(ais); 

     URL url2 = new URL(
      "http://pscode.org/media/100_2817-linear.wav"); 
     Clip clip2 = AudioSystem.getClip(); 
     AudioInputStream ais2 = AudioSystem. 
      getAudioInputStream(url2); 
     clip2.open(ais2); 

     // loop continuously 
     clip.loop(Clip.LOOP_CONTINUOUSLY); 
     clip2.loop(Clip.LOOP_CONTINUOUSLY); 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       // A GUI element to prevent the Clip's daemon Thread 
       // from terminating at the end of the main() 
       JOptionPane.showMessageDialog(null, "Close to exit!"); 
      } 
     }); 
    } 
} 

Aber ich würde einen Vergleich zwischen zwei Sounds machen, und ich muss die numerischen Werte für meine Analyse extrahieren.

+2

Was genau meinen Sie mit dem Extrahieren einer Nummer aus einer Audiodatei? Suchen Sie nach Byte-Daten, gesprochenen Zahlenwerten, Lautstärkepegeln? Es ist unklar, was Sie fragen. –

+0

Bitte klären Sie Ihr spezifisches Problem oder fügen Sie zusätzliche Details hinzu, um genau das hervorzuheben, was Sie brauchen. Wie es derzeit geschrieben wird, ist es schwer zu sagen, was genau Sie fragen. Informationen zur Klärung dieser Frage finden Sie auf der Seite "Fragen stellen". – techydesigner

+0

was ich eigentlich will, ist die Unterschiede zwischen zwei Audio erkannt. das ist das Original-Audio und ein geändertes Audio –

Antwort

0

AudioInputStream verfügt über eine read() -Methode.

Sie können eine Funktion wie folgt machen:

public void compareVoices(AudioInputStream ais,AudioInputStream ais2){ 
    for(int i = 0;i>ais.getFrameLength;i++){ 
     if(ais.read()!=ais2.read()){ 
      return(false); 
     } 
    } 
    return(true); 
} 

Hinweis: Diese Funktion wird nur funktionieren, wenn diese beiden .wav-Dateien genau gleich sind.

Verwandte Themen