o
    i
                     @   sf   d dl Z d dlZd dlmZ dd ZdejdejfddZd	d
 Zdd Zdd Z	dd Z
dd ZdS )    N)tablesc                 K   s  | d| _| dddk}tj |d d }|| j|d| _tj |d d }|| j|d| _tj |d d }|| j|d| _d	d
l	m
} ||d dd| _tt| | _tt| | _tt| | _tt| | _tt| | _tt| | _d| _| S )NdevicetypeonnxencoderExport)r   	predictordecoderr   )sequence_maskmax_seq_lenF)flipmodel)getr   r   encoder_classesr   predictor_classesr   decoder_classesr	   funasr.utils.torch_functionr
   make_pad_masktypes
MethodTypeexport_forwardforwardexport_dummy_inputsexport_input_namesexport_output_namesexport_dynamic_axesexport_name)r   kwargsis_onnxencoder_classpredictor_classdecoder_classr
    r"   X/home/ubuntu/.local/lib/python3.10/site-packages/funasr/models/paraformer/export_meta.pyexport_rebuild_model   s$   r$   speechspeech_lengthsc                 C   s   ||d}| j di |\}}| |d d d d d f }| ||\}}}	}
| tj}| ||||\}}tj|dd}||fS )N)r%   r&   )dimr"   )	r   r   r   floorr   torchint32r	   log_softmax)selfr%   r&   batchencenc_lenmaskpre_acoustic_embedspre_token_lengthalphaspre_peak_indexdecoder_out_r"   r"   r#   r   &   s   
r   c                 C   s*   t ddd}t jddgt jd}||fS )N      i0     )dtype)r*   randntensorr+   )r-   r%   r&   r"   r"   r#   r   ;   s   r   c                 C      ddgS )Nr%   r&   r"   r-   r"   r"   r#   r   A      r   c                 C   r>   )Nlogits	token_numr"   r?   r"   r"   r#   r   E   r@   r   c                 C   s"   dddddidddddidS )N
batch_sizefeats_length)r      r   logits_length)r%   r&   rA   rB   r"   r?   r"   r"   r#   r   I   s   r   c                 C   s   dS )Nz
model.onnxr"   r?   r"   r"   r#   r   T   s   r   )r   r*   funasr.registerr   r$   Tensorr   r   r   r   r   r   r"   r"   r"   r#   <module>   s   
