2017-02-21 21 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

Просьба уточнить вашу конкретную проблему или добавить дополнительные сведения, чтобы точно указать, что вам нужно. Как это написано в настоящее время, трудно точно сказать, что вы просите. См. Страницу «Как спросить», чтобы помочь прояснить этот вопрос. – 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 файлы точно то же самое.

Смежные вопросы