Можно ли записывать звук с микрофона в файл одновременно с запущенным YandexSpeechKit Recognizer?
Возникла необходимость одновременного распознавания речи (с помощью класса Recognizer) и записи звука с микрофона устройства в файл. Использовать стандартный механизм MediaRecord не представляется возможным, так как MediaRecord и YandexSpeechKit используют нативные методы и один и тот же ресурс. Это вызывает падение некоторых процессов (MediaRecord или Recognizer).
Я пытаюсь использовать RecognizerListener -> onSoundDataRecorded (распознаватель Recognizer, byte [] bytes), код ниже:
@Override
public void onSoundDataRecorded(Recognizer recognizer, byte[] bytes) {
Logger.d(TAG, "onSoundDataRecorded");
write(bytes);
}
public void write(byte[] bytes) {
File file = getTmpFile();
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file, true);
fos.write(bytes);
} catch (IOException e1) {
e1.printStackTrace();
} finally {
if(fos != null) {
try {
fos.flush();
fos.close();
} catch(IOException e) {
}
}
}
}
Но пока полученный файл не возможно воспроизвести. Кто-нибудь может мне помочь?
Спасибо!