docs: def _staging_step(self, basename):
          """
          Checks the size of audio file, splits it if it's needed to manage api
          limit and then moves to `staged` directory while appending `*` to
          the end of the filename for self.split_audio_by_duration to replace
          it by a number.
  
          Parameters
          ----------
          basename : str
              A basename of `/home/random-guy/some-audio-file.wav` is
              `some-audio-file.wav`
          """
          name = ''.join(basename.split('.')[:-1])
  
          if self.get_mode() == "ibm":
              # Checks the file size. It's better to use 95% of the allocated
              # size per file since the upper limit is not always respected.
              total_size = os.path.getsize("{}/filtered/{}.wav".format(
                  self.src_dir, name))
              if total_size >= self.ibm_api_limit_bytes:
                  if self.get_verbosity():
                      print(("{}'s size over API limit ({}). Splitting").format(
                          name, self.ibm_api_limit_bytes))
                  self._split_audio_by_size(
                      "{}/filtered/{}.wav".format(self.src_dir, name),
                      "{}/staging/{}*.wav".format(self.src_dir, name),
                      self.ibm_api_limit_bytes * 95 / 100)
              else:
                  if self.get_verbosity():
                      print("{}'s size is fine. Moving to staging dir'".format(
                          name))
                  subprocess.Popen((
                      "mv {}/filtered/{}.wav {}/staging/{}000.wav").format(
                                      self.src_dir, name, self.src_dir, name),
                                   shell=True,
                                   universal_newlines=True).communicate()
  
          elif self.get_mode() == "cmu":
              if self.get_verbosity():
                  print("Converting {} to a readable wav".format(basename))
              ffmpeg = os.path.basename(find_executable("ffmpeg") or
                                        find_executable("avconv"))
              if ffmpeg is None:
                  raise Exception(("Either ffmpeg or avconv is needed. "
                                   "Neither is installed or accessible"))
              try:
                  # ffmpeg log levels:
                  # https://ffmpeg.org/ffmpeg.html#Generic-options
                  ffmpeg_log_level = "8"  # fatal errors.
                  if self.get_verbosity():
                      ffmpeg_log_level = "32"  # info `default for ffmpeg`
                  subprocess.check_call([
                      str(ffmpeg), "-y", "-i", "{}/filtered/{}.wav".format(
                          self.src_dir, str(name)), "-acodec", "pcm_s16le",
                      "-ac", "1", "-ar", "16000", "{}/staging/{}000.wav".format(
                          self.src_dir, name),
                      "-v", ffmpeg_log_level], universal_newlines=True)
              except subprocess.CalledProcessError as e:
                  print(e)
              if os.path.exists("{}/staging/{}000.wav".format(
                      self.src_dir, name)):
                  if self.get_verbosity():
                      print(("{}/filtered/{} was converted to "
                             "{}/staging/{}000.wav Now removing the copy of "
                             "{} in filtered sub directory").format(
                                  self.src_dir, basename,
                                  self.src_dir, name, basename))
                  subprocess.Popen([
                      "rm", "{}/filtered/{}".format(self.src_dir, basename)],
                                      universal_newlines=True).communicate()
              else:
                  raise Exception("Something went wrong with ffmpeg conversion!")