o
    i                     @   sX   d dl mZmZmZmZ d dlZd dlmZ d dlm	Z	 d dl
mZ G dd deZdS )    )AnyDictOptionalTupleN)check_argument_types)Stft)AbsFeatsExtractc                       s   e Zd ZdZ							dded	ed
edee dededef fddZdefddZ	de
eef fddZ	ddejdejdeejejf fddZ  ZS )LogSpectrogramzLConventional frontend structure for ASR

    Stft -> log-amplitude-spec
       N   hannTFn_fft
win_length
hop_lengthwindowcenter
normalizedonesidedc              	      sN   t  sJ t   || _|| _|| _|| _t|||||||d| _|| _d S )N)r   r   r   r   r   r   r   )	r   super__init__r   r   r   r   r   stft)selfr   r   r   r   r   r   r   	__class__ ]/home/ubuntu/.local/lib/python3.10/site-packages/espnet2/tts/feats_extract/log_spectrogram.pyr      s    



	zLogSpectrogram.__init__returnc                 C   s   | j d d S )N      )r   r   r   r   r   output_size+   s   zLogSpectrogram.output_sizec                 C   s   t | j| j| j| jdS )z)Return the parameters required by Vocoder)r   n_shiftr   r   )dictr   r   r   r   r   r   r   r   get_parameters.   s   zLogSpectrogram.get_parametersinputinput_lengthsc                 C   sv   |  ||\}}| dksJ |j|jd dksJ |j|d d |d d  }dttj|dd }||fS )	N   r   ).r   ).r   g      ?g|=)min)r   dimshapetorchlog10clamp)r   r$   r%   
input_stft
feats_lensinput_powerlog_ampr   r   r   forward7   s   zLogSpectrogram.forward)r
   Nr   r   TFT)N)__name__
__module____qualname____doc__intr   strboolr   r    r   r   r#   r+   Tensorr   r2   __classcell__r   r   r   r   r	   
   sD    
r	   )typingr   r   r   r   r+   	typeguardr   espnet2.layers.stftr   +espnet2.tts.feats_extract.abs_feats_extractr   r	   r   r   r   r   <module>   s    