You should define the input shape in the first layer as tf.keras.Input(shape=(80, 27))
If you want to get a prediction for 1 timestep out of every 80 x 27 data matrix, you can insert x = tf.keras.layers.GlobalAveragePooling1D()(x) after the last Bidirectional layer. Or GlobalMaxPooling1D.