Some quick updates, I added a TimeDistributed layer
now the code looks like this:
import tensorflow as tf

from tensorflow import keras

from tensorflow.keras import layers

model = keras.Sequential(

    [

     keras.Input(shape=(128, 800, 2)),

      layers.Conv2D(16, (3, 3), activation='relu', padding='same'),

      layers.BatchNormalization(),

      layers.MaxPooling2D(pool_size=(5, 4)),

      layers.Conv2D(8, (1, 4), activation='relu', padding='same'),

      layers.BatchNormalization(),

      layers.MaxPooling2D(pool_size=(6, 5)),

      layers.TimeDistributed(layers.Flatten()),

      layers.Bidirectional(layers.LSTM(8)),

      layers.Dense(7),

    ]

)

model.summary()

model.compile(

    loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),

    optimizer = keras.optimizers.Adadelta(),

    metrics = ["accuracy"],

)

This is some progress but far from what is described in the image and description above.