2011-03-06 27 views
9

Quiero leer archivos wav en Java y los voy a clasificar con K-means.Lectura de archivos wav en Java

¿Cómo puedo leer archivos wav en Java y asignarlos a una matriz o algo así (puede sugerir ideas para ello) para clasificarlos?

EDIT: Quiero usar API para leer archivos wav y K-means.

+0

Creo que este [hilo] (http://stackoverflow.com/questions/3297749/java-reading-manipulating-and-writing-wav-files) lo ayudará a comenzar. – u449355

Respuesta

14

presente artículo por un Greensted: Reading and Writing Wav Files in java debe ser útil. La clase WavFile es muy útil y puede modificarse para devolver toda la matriz de datos en lugar de los fragmentos almacenados en el búfer.

3

Usted puede leer los archivos de sonido que utilizan javax sonar biblioteca y FileInputStream (found a nice example here) y tratar los archivos de sonido como un vector de bits (0,1) o bytes .. utilizando la alineación de secuencias múltiples (Wiki) crear una distancia matriz entre cada flujo de bits/bytes, y a partir de ahí, la agrupación debe ser directa.

El problema es que este método es muy sensible al ruido, etc, pero es digno de un tiro ...

+0

Hacer algo de reducción de ruido y tal vez reducir la resolución sería una buena idea. +1. –

0

que hice algunas investigaciones y encontró muchas maneras de leer archivos wav. Creo que la forma más sencilla de leer archivos WAV de audio de la carpeta específica es:

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 
} 

espero que de alguna manera esto ayudaría para algunas personas. Avísame si no entiendes algo.