code: def reverse(self):
          
          self.log(u"Reversing...")
          all_length = self.all_length
          self.__mfcc = self.__mfcc[:, ::-1]
          tmp = self.__middle_end
          self.__middle_end = all_length - self.__middle_begin
          self.__middle_begin = all_length - tmp
          if self.__mfcc_mask is not None:
              self.__mfcc_mask = self.__mfcc_mask[::-1]
              # equivalent to
              # self.__mfcc_mask_map = ((all_length - 1) - self.__mfcc_mask_map)[::-1]
              # but done in place using NumPy view
              self.__mfcc_mask_map *= -1
              self.__mfcc_mask_map += all_length - 1
              self.__mfcc_mask_map = self.__mfcc_mask_map[::-1]
              self.__speech_intervals = [(all_length - i[1], all_length - i[0]) for i in self.__speech_intervals[::-1]]
              self.__nonspeech_intervals = [(all_length - i[1], all_length - i[0]) for i in self.__nonspeech_intervals[::-1]]
          self.is_reversed = not self.is_reversed
          self.log(u"Reversing...done")
docs: Reverse the audio file.
  
          The reversing is done efficiently using NumPy views inplace
          instead of swapping values.
  
          Only speech and nonspeech intervals are actually recomputed
          as Python lists.