TensorFlow lite Whisper model get worse inference result.
Please take a look. Model working well with below converting script:
```
class ModelClass(tf.Module):
  def __init__(self, whisper_model, *args, **kwargs):
    super().__init__(*args, **kwargs)

    self.model = whisper_model
  
  @tf.function(
      input_signature=(
        tf.TensorSpec((1, None, None), dtype=tf.float32, name="input_features"),
      )
  )
  def call(self, intput_features):
    return {"output_ids": self.model.generate(input_features=intput_features)}
  
  def get_config(self):
    return dict()
  
wrapper = ModelClass(tf_model)

# Convert mode lo tflite with dynamic quantization
converter = tf.lite.TFLiteConverter.from_keras_model(wrapper)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.target_spec.supported_ops = [
    tf.lite.OpsSet.TFLITE_BUILTINS,
    tf.lite.OpsSet.SELECT_TF_OPS,
]
tflite_quant_model = converter.convert()
open(tf_model_path , "wb").write(tflite_quant_model)
```
### 1. System information

- OS Platform and Distribution: Windows 10
- TensorFlow installation: via Pypi 
- TensorFlow library: 2.16.1

### 2. Conversion success
- Tflite model have been save to .tflite file, with size x4 smaller
Code for model conversion:
```
model_checkpoint = "openai/whisper-tiny"
dataset_name = "libspeech_asr"
wrapper_path = r"tf_model/whisper_wrapper"
tf_model_path = r"tf_model/whisper.tflite"

processor = AutoProcessor.from_pretrained(model_checkpoint)
tf_model = TFWhisperForConditionalGeneration.from_pretrained(model_checkpoint)
dataset = load_dataset(dataset_name)


# Wrap model for conversion
class ModelClass(tf.keras.Model):
  def __init__(self, whisper_model, *args, **kwargs):
    super().__init__(*args, **kwargs)

    self.model = whisper_model
  
  @tf.function(
      input_signature=(
        tf.TensorSpec((1, None, None), dtype=tf.float32, name="input_features"),
      )
  )
  def call(self, intput_features):
    return {"output_ids": self.model.generate(input_features=intput_features)}
  
  def get_config(self):
    return dict()
  
wrapper = ModelClass(tf_model)

tf.saved_model.save(
  wrapper, 
  wrapper_path, 
  signatures={"serving_default": wrapper.call}
)

# Convert mode lo tflite with dynamic quantization
converter = tf.lite.TFLiteConverter.from_saved_model(wrapper_path)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.target_spec.supported_ops = [
    tf.lite.OpsSet.TFLITE_BUILTINS,
    tf.lite.OpsSet.SELECT_TF_OPS,
]
tflite_quant_model = converter.convert()
open(tf_model_path , "wb").write(tflite_quant_model)
```
### 3. Inference results gets worse compared to TensorFlow model.
- After conversion, inference Tflite model and TensorFlow model with first row of the dataset:
```
def tflite_inference(inter, processor, tokenizer, data):
    input_details = inter.get_input_details()
    output_details = inter.get_output_details()
    tokenized_output = processor(data["array"], sampling_rate=data["sampling_rate"], return_tensors="tf")
    input_features = tokenized_output.input_features

    my_signature = interpreter.get_signature_runner()
    output = my_signature(input_features=input_features)["output_ids"]

    return tokenizer.decode(output[0], skip_special_tokens=True)

def tensorflow_inference(model, processor, tokenizer, data):
    tokenized_output = processor(data["array"], sampling_rate=data["sampling_rate"], return_tensors="tf")
    input_features = tokenized_output.input_features

    output = model(input_features=input_features)["output_ids"]

    return tokenizer.decode(output[0], skip_special_tokens=True) 

first_row = datasets[0]
true_label = first_row["text"]
tensorflow_inference_result =  tensorflow_inference(interpreter, processor, tokenizer, first_row).upper()
tflite_inference_result = tflite_inference(wrapper, processor, tokenizer, first_row).upper()
```
- **Results**:
  + True label: "CONCORD RETURNED TO ITS PLACE AMIDST THE TENTS"
  + TensorFlow model result: " CONQUERED RETURNED TO ITS PLACE AMIDST THE TENTS."
  + Tflite model result: "!!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..."