[*]Разделение файла .wav на кадры
[*]Наложение кадров на 50 %
На самом деле у меня есть настроенный класс «Читать пример», взятый из:
http://www.labbookpages.co.uk/audio/jav ... ml#methods, я настроил его следующим образом: чтобы вернуть float[], содержащий кадры, полученные из файла .wav:
Код: Выделить всё
package com.example.audioanalysis;
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import android.os.Environment;
import com.example.genderrecognitionapp.MainActivity;
public class ReadExample
{
public static float[] BufferFromWavFile()
{
final String PATH = "example";
final String FILE_NAME = "AudioRecorder.wav";
ArrayList framesRead = new ArrayList();
try
{
URL defaultAudio = MainActivity.class.getResource(Environment.getExternalStorageDirectory() + "/" + PATH + "/" + FILE_NAME);
final Decoder decoder = null;
File soundFile = new File(defaultAudio.toURI());
// Open the wav file specified as the first argument
WavFile wavFile = WavFile.openWavFile(soundFile);
// Get the number of audio channels in the wav file
int numChannels = wavFile.getNumChannels();
// Create a buffer of 100 frames
double[] buffer = new double[100 * numChannels];
do
{
// Read frames into buffer
framesRead.add(wavFile.readFrames(buffer, 100));
}
while (framesRead != null);
// Close the wavFile
wavFile.close();
}
catch (Exception e)
{
System.err.println(e);
}
float[] arrayOfFrames = new float[framesRead.size()];
for(int i = 0; i требуется объект [b]Decoder[/b], но этот объект не получает ни одного кадра на входе.
Так как же мне соединить эти две части?
Источник: [url]https://stackoverflow.com/questions/30244746/dividing-in-frames-a-wav-file-having-a-50-of-overlapping-in-java[/url]
Мобильная версия