Я хочу создать файл с чем-то, что робот Pepper услышит за ограниченный период времени. Вообще, как я могу создать файл .wav, содержащий прослушивание перца? На самом деле, я использовал библиотеку ALAudioRecorder NaoQi, но столкнулся с приведенной ниже ошибкой, связанной с сериализацией возвращаемого значения.
import com.aldebaran.qi.Application;
import com.aldebaran.qi.helper.proxies.ALAudioRecorder;
public class helloWord {
public static void main(String[] args) throws Exception {
String robotUrl = "tcp://pepper.local:9559";/*pepper.local.:9559*/
Application application = new Application(args, robotUrl);
application.start();
boolean[] array = {false,false,true,false};
ALAudioRecorder alAudioRecorder=new ALAudioRecorder(application.session());
alAudioRecorder.startMicrophonesRecording("D:/test/test.wav", "wav",48000,array);}}
Exception in thread "main" java.lang.RuntimeException: Cannot serialize return value: Unable to convert JObject in AnyValue
at com.aldebaran.qi.Future.get(Future.java:96)
at com.aldebaran.qi.helper.proxies.ALAudioRecorder.startMicrophonesRecording(ALAudioRecorder.java:185)
at helloWord.main(helloWord.java:26)
@AlexandreMazel, На самом деле, я снова проверил путь, и он существует.
Клянусь, диска "d:" на роботе нет.
Как сказал Александр, ваша проблема здесь:
alAudioRecorder.startMicrophonesRecording("D:/test/test.wav", "wav",48000,array);}}
Поскольку служба аудиозаписи работает на роботе, она не получит доступ к вашему пути D:, вам нужен путь в файловой системе робота (unix), например «/home/nao/test.wav
».
Вот мое предположение: запись ведется на роботе, поэтому D:/test/test.wav — несуществующий путь. Итак, проблема при сериализации...