def METHOD_NAME(self, image_data, audio_data):
    """
    Callback that process the input data and publishes to the corresponding topics
    :param image_data: input image message, face image
    :type image_data: sensor_msgs.msg.Image
    :param audio_data: input audio message, speech
    :type audio_data: audio_common_msgs.msg.AudioData
    """
    audio_data = np.reshape(np.frombuffer(audio_data.data, dtype=np.int16)/32768.0, (1, -1))
    self.data_buffer = np.append(self.data_buffer, audio_data)
    image_data = self.bridge.from_ros_image(image_data, encoding='bgr8').convert(format='channels_last')
    image_data = cv2.resize(image_data, (224, 224))
    self.video_buffer = np.append(self.video_buffer, np.expand_dims(image_data.data, 0), axis=0)
    if self.data_buffer.shape[0] > 16000*self.buffer_size:
        audio = librosa.feature.mfcc(self.data_buffer[1:], sr=16000, n_mfcc=10)
        audio = Timeseries(audio)
        to_select = select_distributed(15, len(self.video_buffer)-1)
        video = self.video_buffer[1:][to_select]
        video = [self.video_transform(img) for img in video]
        video = Video(torch.stack(video, 0).permute(1, 0, 2, 3))
        class_pred = self.avlearner.infer(audio, video)
        # Publish output
        ros_class = self.bridge.from_category_to_rosclass(class_pred)
        self.publisher.publish(ros_class)
        self.data_buffer = np.zeros((1))
        self.video_buffer = np.zeros((1, 224, 224, 3))