Очистить содержимое файла без удаления - PullRequest
0 голосов
/ 02 апреля 2019

Я занимаюсь разработкой приложения для распознавания звука на Android и использую класс MediaRecorder, а также модель тензорного потока. Я создаю аудиофайл, в котором я буду сохранять звук с микрофона рекордера в методе onCreate для класса

audioFile = getExternalCacheDir().getAbsolutePath();
audioFile += "/Recording.3gp";

И я установил выходной файл mediaRecorder для этого файла в классе startRecording

mediaRecorder.setOutputFile(audioFile);

Проблема, с которой я столкнулся, заключается в том, что мне нужно преобразовать запись в серию значений MFCC, чтобы модель работала, а используемый им класс MFFC.java требует, чтобы запись была преобразована в двойной массив. Я делаю это так

ByteArrayOutputStream out = new ByteArrayOutputStream();
BufferedInputStream in = new BufferedInputStream(new FileInputStream(audioFile));

 int read;
 byte[] buff = new byte[1024];
 while ((read = in.read(buff)) > 0)
 {
        out.write(buff, 0, read);
 }
  out.flush();
  byte[] bytes = out.toByteArray();
  int times = Double.SIZE / Byte.SIZE;
  double[] doubleArray = new double[bytes.length / times];
  for(int i=0;i<doubleArray.length;i++){
        doubleArray[i] = ByteBuffer.wrap(bytes, i*times, times).getDouble();
  }

Вот как они сказали сделать это на другом посте переполнения стека. Проблема заключается в том, что аудиофайл, в который я отправляю записи, просто добавляет новые записи к предыдущим. Это потому, что я записываю аудио, а затем передаю его в мой метод классификатора в виде цикла

while(true){
                try {
                    soundRecognition task = new soundRecognition();
                    task.execute();
                    sleep(1500);

                }

Решения, которые я пробовал

Я попытался переместить создание аудио в класс распознавания звука, но я не могу сделать это, так как это приводит к ошибкам, в частности, запуск mediaRecorder вызван в недопустимом состоянии: 4.

Я пытался перезаписать файл, используя классы FileWriter и PrintWriter, но это не сработало, я предполагаю, что файл и аудио файл.

Любая помощь будет оценена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...