o
    oi%                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlZd dlm  m	Z
 d dlZd dlmZ d dlmZ dededefddZd	ejd
efddZdededeeffddZdefddZedkrgeejd  dS dS )    N)Tensor)encodexwsreturnc                 C   s|   |  tj|    } t| |d |d fd||} | d	d} | 
 } | dd} |  dkr<| d} | S )N   g|=      r   )totorchfloat32maxitemFpadunfoldpowaddlog10meanmuldim)r   r   hop r   Z/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/df/scripts/trim_silence_hdf5.pywindowed_energy   s   "
r   buffercodecc                 C   s(   t jt| d  | d\}}|S )N.)format)taloadioBytesIOtobyteslower)r   r   wav_r   r   r   load_encoded   s   $r(   audiosrc                 C   s   |d }|d }t | ||}d}t|jd D ]}|| dkr)|dkr)|d } nqd}t|jd D ]}||  dkrG|dkrG| d } nq3|| |jd krXtd	d
fS |dk rvtd| d| dd | d|| || f d
fS | dfS )N
   r	   r   r   i      ir   Tizstart: z, end:  end.F)r   rangeshaper   emptyprint)r)   r*   r   r   estartir0   r   r   r   trim!   s*   
r8   pathc              	   C   s   t j| sJ ttjdkrtjd nd}tj| ddd}tj| ddddd}||v s2J |	|}t
|jd	 }|jD ]
}|j| |j|< qA|jd
d}ttjdkr_tjd n|}||jd
< |dkrnddini }	||  D ]o\}
}t|
dd |dkrt|d }| dkr|d nt||}t||\}}| dkrqv|r|dkr||kr|}nt||| }n||kr|}nt||| }|j|
fd|i|	}|jd |jd< t  qvW d    n1 sw   Y  W d    d S W d    d S 1 s	w   Y  d S )Nr   speechrlatest)libverz.hdf5z_trimmed.hdf5wr*   r   pcm   compressiongzip r/   .r
   r   datar   	n_samples)osr9   isfilelensysargvh5pyFilereplacecreate_groupintattrsgetitemsr4   r   
from_numpyr   
unsqueeze_r(   r8   numelr   squeezecreate_datasetr2   )r9   groupfrfwgrpr*   attrr   	out_codeccomp_kwargsnsampler)   got_trimmedrD   dsr   r   r   main9   sL   




Rrc   __main__r
   )r"   rF   rI   rK   numpynpr   torch.nn.functionalnn
functionalr   
torchaudior    r   df.scripts.prepare_datar   rO   r   ndarraystrr(   boolr8   rc   __name__rJ   r   r   r   r   <module>   s"   *