o
    oiw	                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dlZ	d dl
Z
d dlZde	jdefddZdededed	ed
ee f
ddZdd ZedkrRe  dS dS )    N)Optionalbuffercodecc                 C   s(   t jt| d  | d\}}|S )N.)format)taloadioBytesIOtobyteslower)r   r   wav_ r   Y/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/df/scripts/sample_from_hdf5.pyload_encoded   s   $r   keyout_dirsr
n_channelsc           	      C   s   | | }|dkrt |d }| dkr|d nt||}| d| }|ds0|d7 }t| |d urP|dkrP| dksJJ d|j |d | }tj	|||d	 d S )
Npcm.   r   /z.wav   zbut got sample with shape )sample_rate)
torch
from_numpydim
unsqueeze_r   endswithprintshaper   save)	groupr   r   r   r   r   dssampleoutnamer   r   r   save_sample   s   


r&   c            
   
   C   s  t  } | d | jdtd d | jdddd | jdd	td
d | jddtdd | jddtdd | jddtdd |  }tj|j	sNt
|j	 tj|jddddi}|jd|j}|d u rptdtjd td |j}d}|jdd}| D ]8}|jd ur|j}nt| }|jrt||}|D ]}	t||	||j	||j |d7 }|dkr||kr nqqW d    d S 1 sw   Y  d S )N	hdf5_filez--sr)typedefaultz--randomz-r
store_true)actionz	--out-dirz-ooutz--n-samplesz-nr   z--n-channelsz-cz--keysz-k*)r(   nargsrlatestT)libverswmrr   zsr not found.)filer   r   r   )argparseArgumentParseradd_argumentintstr
parse_argsospathisdirr   makedirsh5pyFiler'   attrsgetr   r   sysstderrexit	n_samplesvalueskeyslistrandomr$   r&   r   )
parserargsh5fr   rE   ir   r"   rG   r   r   r   r   main&   sB   

"rN   __main__)r4   r   r:   rI   rB   typingr   r>   numpynpr   
torchaudior   ndarrayr8   r   r7   r&   rN   __name__r   r   r   r   <module>   s     "$
