Как преобразовать Python np.ndarray в Java Float [] ArrayJAVA

Программисты JAVA общаются здесь
Anonymous
Как преобразовать Python np.ndarray в Java Float [] Array

Сообщение Anonymous »

Итак, я использую Py4j для проекта для подключения кода Python к JVM. Теперь этот проект требует, чтобы я передал аудиосигнал с конца питона до конца Java. Я использую Librosa для создания звукового массива из аудиофайла. Это дает мне массив Numpy Float64. Теперь я хочу передать этот аудиосигнальный массив в качестве параметра функции Java с использованием py4j. Теперь это кажется проблемной частью из -за разницы в типах данных, которые, как я предполагаю. Но хотя измерение массива остается одинаковым, все значения каким -то образом изменились, что делает результаты моих проектов очень неточными. < /p>
Сторона питона: < /p>
audio, sr = librosa.load(r"Audio/snoring.wav", sr=16000)
byte_array = audio.tobytes()
mel2 = gateway.entry_point.checkSignal()
< /code>
java side: < /p>
public void checkSignal(byte[] byteArray){
FloatBuffer floatBuffer = ByteBuffer.wrap(byteArray).asFloatBuffer();
float[] floatArray = new float[floatBuffer.remaining()];
floatBuffer.get(floatArray);

if(floatArray.length>0){
System.out.println("the signal has been received." + floatArray.length);
}

signal = floatArray;
}

< /code>
До этого у меня хранился мой аудиофайл в каталоге проекта Java, и я бы передал имя аудиофайла со стороны Python на функцию Java, и, как и ожидалось, это сработало безупречно. Но необходимость передавать сигнал в качестве параметра делает это довольно сложным. Любая помощь будет очень оценена.

Подробнее здесь: https://stackoverflow.com/questions/794 ... loat-array

Вернуться в «JAVA»