2017-02-21 6 views
-2

소리가 방해되거나 삭제되었는지 확인하기 위해 분석을해야합니다.어떻게하면 Java의 오디오 파일에서 숫자 값을 추출 할 수 있습니까

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!"); 
      } 
     }); 
    } 
} 

그러나 나는 두 가지 소리를 비교할 것입니다. 분석을 위해 숫자 값을 추출해야합니다.

+2

오디오 파일에서 숫자를 추출하면 정확히 무엇을 의미합니까? 바이트 데이터, 말한 숫자 값, 볼륨 레벨을 찾고 있습니까? 당신이 무엇을 요구하고 있는지 불분명합니다. –

+0

구체적인 문제를 명확히하거나 추가 세부 정보를 추가하여 필요한 것을 정확하게 강조하십시오. 현재 작성된 내용이므로 귀하가 원하는 내용을 정확하게 말하기는 어렵습니다. How to Ask 페이지에서이 질문에 대한 설명을 참조하십시오. – techydesigner

+0

내가 실제로 원하는 것은 두 오디오 간의 차이점을 감지하는 것입니다. 원래 오디오 및 변경된 오디오 –

답변

0

AudioInputStream에는 read() 메소드가 있습니다.

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

참고 :이 두 .WAV 파일이 정확히 같은 을하면이 기능이 바로 작동합니다

는이 같은 기능을 할 수 있습니다.