(spec,
              n_fft=512,
              hop_length=None,
              mask=True,
              log_mag=True,
              re_im=False,
              dphase=True,
              mag_only=True,
              num_iters=1000)
return np.squeeze(audio / audio.max())
Inverse Spectrogram using librosa.

  Args:
    spec: 3-D specgram array [freqs, time, (mag_db, dphase)].
    n_fft: Size of the FFT.
    hop_length: Stride of FFT. Defaults to n_fft/2.
    mask: Reverse the mask of the phase derivative by the magnitude.
    log_mag: Use the logamplitude.
    re_im: Output Real and Imag. instead of logMag and dPhase.
    dphase: Use derivative of phase instead of phase.
    mag_only: Specgram contains no phase.
    num_iters: Number of griffin-lim iterations for mag_only.

  Returns:
    audio: 1-D array of sound samples. Peak normalized to 1.
Inverse Spectrogram using librosa.
Inverse Spectrogram using librosa .
def ispecgram(spec,
              n_fft=512,
              hop_length=None,
              mask=True,
              log_mag=True,
              re_im=False,
              dphase=True,
              mag_only=True,
              num_iters=1000):
  """Inverse Spectrogram using librosa.

  Args:
    spec: 3-D specgram array [freqs, time, (mag_db, dphase)].
    n_fft: Size of the FFT.
    hop_length: Stride of FFT. Defaults to n_fft/2.
    mask: Reverse the mask of the phase derivative by the magnitude.
    log_mag: Use the logamplitude.
    re_im: Output Real and Imag. instead of logMag and dPhase.
    dphase: Use derivative of phase instead of phase.
    mag_only: Specgram contains no phase.
    num_iters: Number of griffin-lim iterations for mag_only.

  Returns:
    audio: 1-D array of sound samples. Peak normalized to 1.
  """
  if not hop_length:
    hop_length = n_fft // 2

  ifft_config = dict(win_length=n_fft, hop_length=hop_length, center=True)

  if mag_only:
    mag = spec[:, :, 0]
    phase_angle = np.pi * np.random.rand(*mag.shape)
  elif re_im:
    spec_real = spec[:, :, 0] + 1.j * spec[:, :, 1]
  else:
    mag, p = spec[:, :, 0], spec[:, :, 1]
    if mask and log_mag:
      p /= (mag + 1e-13 * np.random.randn(*mag.shape))
    if dphase:
      # Roll up phase
      phase_angle = np.cumsum(p * np.pi, axis=1)
    else:
      phase_angle = p * np.pi

  # Magnitudes
  if log_mag:
    mag = (mag - 1.0) * 120.0
    mag = 10**(mag / 20.0)
  phase = np.cos(phase_angle) + 1.j * np.sin(phase_angle)
  spec_real = mag * phase

  if mag_only:
    audio = griffin_lim(
        mag, phase_angle, n_fft, hop_length, num_iters=num_iters)
  else:
    audio = librosa.core.istft(spec_real, **ifft_config)
  return np.squeeze(audio / audio.max())
def ispecgram ( spec , n_fft = 512 , hop_length = None , mask = True , log_mag = True , re_im = False , dphase = True , mag_only = True , num_iters = 1000 ) : if not hop_length : hop_length = n_fft // 2 ifft_config = dict ( win_length = n_fft , hop_length = hop_length , center = True ) if mag_only : mag = spec [ : , : , 0 ] phase_angle = np . pi * np . random . rand ( * mag . shape ) elif re_im : spec_real = spec [ : , : , 0 ] + 1.j * spec [ : , : , 1 ] else : mag , p = spec [ : , : , 0 ] , spec [ : , : , 1 ] if mask and log_mag : p /= ( mag + 1e-13 * np . random . randn ( * mag . shape ) ) if dphase : # Roll up phase phase_angle = np . cumsum ( p * np . pi , axis = 1 ) else : phase_angle = p * np . pi # Magnitudes if log_mag : mag = ( mag - 1.0 ) * 120.0 mag = 10 ** ( mag / 20.0 ) phase = np . cos ( phase_angle ) + 1.j * np . sin ( phase_angle ) spec_real = mag * phase if mag_only : audio = griffin_lim ( mag , phase_angle , n_fft , hop_length , num_iters = num_iters ) else : audio = librosa . core . istft ( spec_real , * * ifft_config ) return np . squeeze ( audio / audio . max ( ) )