docstr: Ensure same size for vocals and mix spectrograms.
docstr_tok: ["Ensure","same","size","for","vocals","and","mix","spectrograms","."]
code: def harmonize_spectrogram(self, sample: Dict) -> Dict:
      """Ensure same size for vocals and mix spectrograms."""
  
      def _reduce(sample):
          return tf.reduce_min(
              [
                  tf.shape(sample[f"{instrument}_spectrogram"])[0]
                  for instrument in self._instruments
              ]
          )
  
      return dict(
          sample,
          **{
              f"{instrument}_spectrogram": sample[
                  f"{instrument}_spectrogram"
              ][: _reduce(sample), :, :]
              for instrument in self._instruments
          },
      )
  
imports: import os
  import time
  from os.path import exists
  from os.path import sep
  from typing import Any, Dict, List, Optional, Tuple
  import tensorflow
  from .audio.adapter import AudioAdapter
  from .audio.convertor import db_uint_spectrogram_to_gain, spectrogram_to_db_uint
  from .audio.spectrogram import compute_spectrogram_tf, random_pitch_shift, random_time_stretch
  from .utils.logging import logger
  from .utils.tensor import check_tensor_shape, dataset_from_csv, set_tensor_shape, sync_apply
label_desc: Use image node_id 6 for calling the DatasetBuilder obj's underlying member method code with example usage: obj.harmonize_spectrogram(sample) and returns: dict, tf