
    h                         S SK r S SKJr  S SKJrJr  S SKrS SKJr  S SK	J
r
  S SKJr  S SKJr  SrS	rS
SSSSSSS.rS\S\S\S\S\S\\\\\\\\4   4S jr " S S\
5      rg)    N)Path)TupleUnion)Tensor)Dataset)download_url_to_file)_extract_tartrain-clean-100LibriTTS@da0864e1bd26debed35da8a869dd5c04dfc27682921936de7cff9c8a254dbe1a@d413eda26f3a152ac7c9cf3658ef85504dfb1b625296e5fa83727f5186cca79c@234ea5b25859102a87024a4b9b86641f5b5aaaf1197335c95090cde04fe9a4f5@33a5342094f3bba7ccc2e0500b9e72d558f72eb99328ac8debe1d9080402f10d@c5608bf1ef74bb621935382b8399c5cdd51cd3ee47cec51f00f885a64c6c7f6b@ce7cff44dcac46009d18379f37ef36551123a1dc4e5c8e4eb73ae57260de4886@e35f7e34deeb2e2bdfe4403d88c8fdd5fbf64865cae41f027a185a6965f0a5df)z4http://www.openslr.org/resources/60/dev-clean.tar.gzz4http://www.openslr.org/resources/60/dev-other.tar.gzz5http://www.openslr.org/resources/60/test-clean.tar.gzz5http://www.openslr.org/resources/60/test-other.tar.gzz:http://www.openslr.org/resources/60/train-clean-100.tar.gzz:http://www.openslr.org/resources/60/train-clean-360.tar.gzz:http://www.openslr.org/resources/60/train-other-500.tar.gzfileidpath	ext_audioext_original_txtext_normalized_txtreturnc                 B   U R                  S5      u  pVpxU nX-   n	[        R                  R                  XXi5      n	X-   n
[        R                  R                  XXj5      n
X-   n[        R                  R                  XXk5      n[        R
                  " U5      u  p[        U
5       nUR                  5       n
S S S 5        [        U	S5       nUR                  5       n	S S S 5        UUU
U	[        U5      [        U5      U4$ ! , (       d  f       NN= f! , (       d  f       N:= f)N_r)	splitosr   join
torchaudioloadopenreadlineint)r   r   r   r   r   
speaker_id
chapter_id
segment_idutterance_idnormalized_textoriginal_text
file_audiowaveformsample_ratefts                  T/var/www/auris/envauris/lib/python3.13/site-packages/torchaudio/datasets/libritts.pyload_libritts_itemr/      s     8>||C7H4JJL"7Oggll4ZQO 3MGGLL:MM)Jd
GJ 'OOJ7H 
m	 
 
os	#r++- 
$ 	JJ  
	 
$	#s   &C?D?
D
Dc                       \ rS rSrSrSrSrSr\\	S4S\
\\4   S\S	\S
\SS4
S jjrS\S\\\\\\\\4   4S jrS\4S jrSrg)LIBRITTSA   a  *LibriTTS* :cite:`Zen2019LibriTTSAC` dataset.

Args:
    root (str or Path): Path to the directory where the dataset is found or downloaded.
    url (str, optional): The URL to download the dataset from,
        or the type of the dataset to dowload.
        Allowed type values are ``"dev-clean"``, ``"dev-other"``, ``"test-clean"``,
        ``"test-other"``, ``"train-clean-100"``, ``"train-clean-360"`` and
        ``"train-other-500"``. (default: ``"train-clean-100"``)
    folder_in_archive (str, optional):
        The top-level directory of the dataset. (default: ``"LibriTTS"``)
    download (bool, optional):
        Whether to download the dataset if it is not found at root path. (default: ``False``).
z.original.txtz.normalized.txtz.wavFrooturlfolder_in_archivedownloadr   Nc                    US;   a&  SnSn[         R                  R                  XbU-   5      n[         R                  " U5      n[         R                  R	                  U5      n[         R                  R                  X5      nUR                  S5      S   n[         R                  R                  X75      n[         R                  R                  X5      U l        U(       a~  [         R                  R                  U R                  5      (       dO  [         R                  R                  U5      (       d   [        R                  US 5      n	[        X(U	S9  [        U5        OG[         R                  R                  U R                  5      (       d  [        SU R                   S35      e[        S	 [!        U R                  5      R#                  S
U R$                  -   5       5       5      U l        g )N)z	dev-cleanz	dev-otherz
test-cleanz
test-otherr
   ztrain-clean-360ztrain-other-500z.tar.gzz$http://www.openslr.org/resources/60/.r   )hash_prefixz	The path zT doesn't exist. Please check the ``root`` path or set `download=True` to download itc              3   L   #    U  H  n[        UR                  5      v   M     g 7fN)strstem).0ps     r.   	<genexpr>$LIBRITTS.__init__.<locals>.<genexpr>   s     d3cac!&&kk3cs   "$z*/*/*)r   r   r   fspathbasenamer   _pathisdirisfile
_CHECKSUMSgetr   r	   existsRuntimeErrorsortedr   glob
_ext_audio_walker)
selfr3   r4   r5   r6   ext_archivebase_urlrC   archivechecksums
             r.   __init__LIBRITTS.__init__U   sc     
 
 $K=H'',,x{):;C yy77##C('',,t.>>#&q)GGLL):EWW\\$:
77==,,ww~~g..)~~c48H(8LW%77>>$**--"

| ,[ [ 
 d4

3C3H3HSWSbSbIb3cdd    nc                     U R                   U   n[        UU R                  U R                  U R                  U R
                  5      $ )a]  Load the n-th sample from the dataset.

Args:
    n (int): The index of the sample to be loaded

Returns:
    Tuple of the following items;

    Tensor:
        Waveform
    int:
        Sample rate
    str:
        Original text
    str:
        Normalized text
    int:
        Speaker ID
    int:
        Chapter ID
    str:
        Utterance ID
)rN   r/   rD   rM   _ext_original_txt_ext_normalized_txt)rO   rW   r   s      r.   __getitem__LIBRITTS.__getitem__   sA    0 a!JJOO""$$
 	
rV   c                 ,    [        U R                  5      $ r;   )lenrN   )rO   s    r.   __len__LIBRITTS.__len__   s    4<<  rV   )rD   rN   )__name__
__module____qualname____firstlineno____doc__rY   rZ   rM   URLFOLDER_IN_ARCHIVEr   r<   r   boolrT   r#   r   r   r[   r_   __static_attributes__ rV   r.   r1   r1   A   s     (+J
 !2/eCI/e /e 	/e
 /e 
/eb
S 
U63S#sC+O%P 
B! !rV   r1   )r   pathlibr   typingr   r   r   torchr   torch.utils.datar   torchaudio._internalr   torchaudio.datasets.utilsr	   rf   rg   rG   r<   r#   r/   r1   rj   rV   r.   <module>rq      s    	     $ 5 2 <~<~== CE CE CE
&&
& & 	&
 & 63S#sC/0&Rg!w g!rV   