Как реализовать три первых уровня сети из учебника по простому распознаванию звука в Tensorflow на Java - PullRequest
5 голосов
/ 19 сентября 2019

Я пытаюсь использовать обученную модель с помощью учебника Simple Audio Recognition Tensorlow в приложении для Android, но я хочу реализовать три первых слоя не в сети, а на стороне процессора.В основном я использовал (без каких-либо изменений) обучение из учебника Tensorflow, но остановил модель без декодирования данных выборки, вычисления спектрограммы и mfcc:

wav_data_placeholder

Tensor("wav_data:0, shape=(), dtype=string)

decoded_sample_data

DecodeWav(audio=(tf.Tensor 'decoded_sample_data:0' shape=(16000, 1) dtype=flat32), sample_rate(tf.Tensor 'decoded_sample_data:1' shape=() dtype=int32))

спектрограмма

Tensor("AudioSpectrogram:0, shape=(1, 98, 257), dtype=float32)

fingerprint_input

Tensor("Mfcc:0, shape=(1, 98, 40), dtype=float32)

Итак, моя фиксированная модель имеет входную форму (1, 98, 40) и принимает значения, которые рассчитываются методом mfcc, которыйимеет входные значения из выходных данных спектрограммы, которые имеют входные данные из декодированных выборок.

Я пробовал реализацию librosa mfcc в Java, но, к сожалению, он не дает таких же результатов.

Как я могу вычислить мой файл .wav в приложении Android, чтобы успешно удовлетворить ввод моей модели и получить правильные прогнозы?

...