java audio wav k-means

Lectura de archivos wav en Java



audio k-means (4)

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

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

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


Este artículo de A Greensted: Leer y escribir archivos Wav en java debería 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.



Hice algunas investigaciones y encontré muchas maneras de leer archivos wav. Creo que la forma más sencilla de leer archivos wav de una 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 ayude a algunas personas. Avísame si no entiendes algo.


Podrías leer los archivos de sonido usando la biblioteca de sonido javax y FileInputStream ( encontré un buen ejemplo aquí ) y tratar los archivos wave como un vector de bits (0,1) o bytes ... usando la alineación de secuencia múltiple ( Wiki ) crear una matriz de distancia 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 vale la pena intentarlo ...