Spaces:
Runtime error
Runtime error
| from . import audiovisual_stream | |
| import chainer.serializers | |
| import librosa | |
| import numpy | |
| import skvideo.io | |
| import numpy as np | |
| FRAMES_LIMIT = 25 | |
| def load_audio(data): | |
| return librosa.load(data, 16000)[0][None, None, None, :] | |
| def load_model(): | |
| model = audiovisual_stream.ResNet18().to_cpu() | |
| chainer.serializers.load_npz("src/model", model) | |
| return model | |
| def predict_traits(data, model): | |
| video_features = skvideo.io.vreader(data, num_frames=27) | |
| # video_features = skvideo.io.vreader(data) | |
| audio_features = load_audio(data) | |
| x = [] | |
| predictions = [] | |
| frame_count = 0 | |
| for frame in video_features: | |
| x.append(numpy.rollaxis(frame, 2)) | |
| frame_count += 1 | |
| if frame_count == FRAMES_LIMIT: | |
| x = [audio_features, numpy.array(x, "float32")] | |
| predictions.append(model(x)) | |
| frame_count = 0 | |
| x = [] | |
| return np.mean(np.asarray(predictions), axis=0) | |