Lendo o arquivo wav em Java

Eu quero ler arquivos wav em Java e vou classificá-los com K-means.

Como posso ler arquivos wav em Java e atribuí-los em uma matriz ou algo parecido (você pode sugerir idéias para isso) para classificá-los?

EDIT: eu quero usar APIs para ler arquivos wav e para K-means.

Este artigo de A Greensted: Lendo e Escrevendo Arquivos Wav em java deve ser útil. A class WavFile é muito útil e pode ser ajustada para retornar toda a matriz de dados em vez de fragments em buffer.

Você pode ler os arquivos de som usando biblioteca de som javax e FileInputStream ( encontrou um bom exemplo aqui ) e tratar os arquivos wave como um vetor de bits (0,1) ou bytes .. usando alinhamento de múltiplas seqüências ( Wiki ) criar uma matriz de distância entre Cada stream de bits / bytes e, a partir daí, o cluster deve ser direto.

O problema é que este método é muito sensível ao ruído, etc, mas vale a pena um tiro …

Eu fiz algumas pesquisas e encontrei muitas maneiras de ler arquivos wav. Eu acho que a maneira mais simples de ler arquivos wav de uma pasta específica é:

private final String directoryOfSamples = "./res/semplai"; private ArrayList samplesArray = new ArrayList(); 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 } 

Eu espero que de alguma forma isso ajude para algumas pessoas. Deixe-me saber se você não entende alguma coisa.