2011-03-06 54 views
9

我想用Java讀取wav文件,我將用K-means對它們進行分類。在Java中讀取wav文件

我該如何讀取Java中的wav文件,並將它們分配到一個數組或類似的東西(你可以建議它的想法)來分類它們?

編輯:我想用API讀取wav文件和K-means。使用多重序列比對(Wiki)創建的距離

+0

我認爲這[線程](http://stackoverflow.com/questions/3297749/java-reading-manipulating-and-writing-wav-files)將幫助你開始。 – u449355 2011-03-06 11:24:09

回答

3

你可以讀取使用的javax聲音庫和的FileInputStream (found a nice example here) 和治療波文件作爲位向量(0,1)或字節的聲音文件..矩陣之間的每個比特/字節流,並從那裏,聚類應該是直截了當的。

的問題是,這種方法是將噪聲等非常敏感,但它是值得一試...

+0

做一些降噪和可能的降採樣將是一個好主意。 +1。 – 2011-03-06 12:00:51

0

我做了一些研究,發現許多方法來讀取wav文件。我認爲閱讀來自特定文件夾的WAV文件的最簡單方法是:

private final String directoryOfSamples = "./res/semplai"; 
private ArrayList<File> samplesArray = new ArrayList<File>(); 
private final File folder = new File(directoryOfSamples); 


public ReadSample() 
{ 

    samplesArray.addAll(Arrays.asList(folder.listFiles())); 
    testSample(getSamplesArray().get(0)); // testing if sample can be played from arrayList 
} 

我希望在某種程度上,這將幫助一些人。 讓我知道如果你不明白的東西。