o
    Wli                     @   sj   d dl Z d dlZd dlmZ d dlmZ d dlZddlmZ e	e
ZdZddd	Ze
d
kr3e  dS dS )    N)Path)Optional   )	VitsModel   returnc                     s  t d t } | jdddd | jdddd | jdd	d
d |  }|jr0tjtj	d ntjtj
d t| t|j}|jjddd t|j}tj|dd}|j    t    j  W d   n1 spw   Y  d# fdd	}| _ j} j}d}t jd|d|ft jd}	t |	dg}
d}|dkrt dg}t g d}|	|
||f}t j j! ||dt"g ddgdddddidddd d! t#d"| dS )$zMain entry pointi  z--checkpointTz Path to model checkpoint (.ckpt))requiredhelpz--output-filezPath to output file (.onnx)z--debug
store_truez#Print DEBUG messages to the console)actionr	   )level)parentsexist_okcpu)Zmap_locationNc                    s<   |d }|d }|d } j | |||||dd d}|S )Nr   r      )noise_scalelength_scalenoise_scale_wsid)ZinferZ	unsqueeze)textZtext_lengthsscalesr   r   r   r   Zaudiomodel_g Q/home/kim/smarthome/.venv/lib/python3.10/site-packages/piper/train/export_onnx.pyinfer_forward9   s    	zmain.<locals>.infer_forward2   r   r   )lowhighsizeZdtype)gMbX?g      ?g?F)inputinput_lengthsr   r   outputZ
batch_sizeZphonemes)r   r   time)r   r   )r    r!   r"   )modelargsfverboseZopset_versionZinput_namesZoutput_namesZdynamic_axeszExported model to %s)N)$torchZmanual_seedargparseArgumentParseradd_argument
parse_argsdebugloggingbasicConfigDEBUGINFO_LOGGERr   output_fileparentmkdir
checkpointr   Zload_from_checkpointr   evalZno_graddecZremove_weight_normforwardZn_vocabZ
n_speakersrandintlongZ
LongTensorr   ZFloatTensorZonnxZexportOPSET_VERSIONinfo)parserr%   Zoutput_pathZcheckpoint_pathr$   r   Znum_symbolsZnum_speakersZdummy_input_length	sequencesZsequence_lengthsr   r   Zdummy_inputr   r   r   main   sj   




r@   __main__)r   N)r)   r.   pathlibr   typingr   r(   Zvits.lightningr   	getLogger__name__r2   r<   r@   r   r   r   r   <module>   s   

_
