class_docstr: main model 
class_docstr_tok: ["main","model"]
docstr: preprocess speech and text inputs
  params:
    inputs: speech input
    input_text: text input
docstr_tok: ["preprocess","speech","and","text","inputs","params",":","inputs",":","speech","input","input_text",":","text","input"]
code: def preprocess(self, inputs, input_text):
      """preprocess speech and text inputs
      params:
        inputs: speech input
        input_text: text input
      """
      with tf.variable_scope("feature"):
          if self.input_type == "samples":
              # speech feature config
              self.hp = speech_params(
                  sr=self.taskconf["audio"]["sr"],
                  bins=self.audioconf["feature_size"],
                  dither=self.train,
                  use_delta_deltas=self.audioconf["add_delta_deltas"],
                  cmvn=self.audioconf["cmvn"],
                  cmvn_path=self.audioconf["cmvn_path"],
              )
  
              feats = extract_feature(inputs, params=self.hp)
          else:
              self.mean, self.std = utils.load_cmvn(
                  self.audioconf["cmvn_path"]
              )
              feats = utils.apply_cmvn(inputs, self.mean, self.std)
      return feats, input_text
  
imports: from absl import logging
  import delta.compat
  from delta import utils
  from delta.layers import common_layers
  from delta.data.feat.tf_speech_feature import speech_params, extract_feature
  from delta.models.base_model import RawModel
  from delta.utils.register import registers
label_desc: Use image node_id 2 for calling the EmoCRNNRawModel obj's underlying member method code with example usage: obj.preprocess(inputs, input_text) and returns: feats,  input_text