o
    Ni                     @   s   d Z ddlmZ ddlmZ ddlmZ ddlZddlmZ ddlm	  m
Z ddlmZ dZdZd	Zd
ZG dd dejjZdS )zVCTK speech synthesis dataset.    )absolute_import)division)print_functionN)loggingaR  @misc{yamagishi2019vctk,
  author={Yamagishi, Junichi and Veaux, Christophe and MacDonald, Kirsten},
  title={{CSTR VCTK Corpus}: English Multi-speaker Corpus for {CSTR} Voice Cloning Toolkit (version 0.92)},
  publisher={University of Edinburgh. The Centre for Speech Technology Research (CSTR)},
  year=2019,
  doi={10.7488/ds/2645},
}
aF  This CSTR VCTK Corpus includes speech data uttered by 110 English speakers with
various accents. Each speaker reads out about 400 sentences, which were selected
from a newspaper, the rainbow passage and an elicitation paragraph used for the
speech accent archive.

Note that the 'p315' text was lost due to a hard disk error.
zhttps://doi.org/10.7488/ds/2645zNhttps://datashare.is.ed.ac.uk/bitstream/handle/10283/3443/VCTK-Corpus-0.92.zipc                   @   sh   e Zd ZdZejjddejdddejjddejdddgZd	d
 Z	dd Z
dd Zdd ZdS )VctkzVCTK speech synthesis dataset.

  The dataset is broken into two separate configs, each containing audio
  recorded using different microphones.  They are split this way for consistency
  with previous releases which only included a single microphone.
  mic1a  
              Audio recorded using an omni-directional microphone (DPA 4035).
              Contains very low frequency noises.

              This is the same audio released in previous versions of VCTK:
              https://doi.org/10.7488/ds/1994
          z1.0.0zVCTK release 0.92.0.)namedescriptionversionmic2a  
              Audio recorded using a small diaphragm condenser microphone with
              very wide bandwidth (Sennheiser MKH 800).

              Two speakers, p280 and p315 had technical issues of the audio
              recordings using MKH 800.
          c                 C   sv   g d}t jj| tt jtjt j t jj	ddt jj
|dt jj
ddgdt jj
g dddd	ttt j d
S )N)np225p226p227p228p229p230p231p232p233p234p236p237p238p239p240p241p243p244p245p246p247p248p249p250p251p252p253p254p255p256p257p258p259p260p261p262p263p264p265p266p267p268p269p270p271p272p273p274p275p276p277p278p279p280p281p282p283p284p285p286p287p288p292p293p294p295p297p298p299p300p301p302p303p304p305p306p307p308p310p311p312p313p314p315p316p317p318p323p326p329p330p333p334p335p336p339p340p341p343p345p347p351p360p361p362p363p364p374p376s5i  )sample_rate)namesFM)American
AustralianBritishCanadianEnglishIndianIrish
NewZealandNorthernIrishScottishSouthAfricanUnknownWelshidtextspeechspeakergenderaccent)r   r   )builderr	   featuressupervised_keyshomepagecitationmetadata)tfdscoreDatasetInfo_DESCRIPTIONr   FeaturesDicttfstringTextAudio
ClassLabel_URL	_CITATIONMetadataDict)selfspeaker_list r   R/home/ubuntu/.local/lib/python3.10/site-packages/tensorflow_datasets/audio/vctk.py_infoR   s"   z
Vctk._infoc                 C   s.   | t}| | tjjtjjd|idgS )Nextracted_dir)r   
gen_kwargs)download_and_extract_DL_URL_populate_metadatar   r   SplitGeneratorSplitTRAIN)r   
dl_managerr   r   r   r   _split_generators}   s   

zVctk._split_generatorsc                 C   s   t j|d}tjj| }i }i }| dd  D ]}|	 }|d |d |d }}	}
|	||< |
||< q|| j
jd< || j
jd< || j
jd< d S )	Nzspeaker-info.txt   r         speaker_infospeaker_to_genderspeaker_to_accent)ospathjoinr   iogfileGFileread
splitlinessplitinfor   )r   r   r   r   r   r   linefieldsr   r   r   r   r   r   r      s   
zVctk._populate_metadatac                 c   s    d}d| j j }tj||dd| }tjj|D ]W}|	|d
|d d }tjtj|\}}tjj|rItjj|  }	ntd| d	}	|
d
d }
||	||
| jjd |
 | jjd |
 d}||fV  qdS )zYields examples.wav48_silence_trimmedz_%s*z*%s.flactxtr   z.txtz$No transcript found for utterance %s _r   r   r   N)builder_configr   r   r   r   r   r   r   globreplacer   splitextbasenameexistsr   r   stripr   r   r   )r   r   
speech_dirmicspeech_globspeech_path	text_pathkeyr   r   r   exampler   r   r   _generate_examples   s.   zVctk._generate_examplesN)__name__
__module____qualname____doc__r   r   BuilderConfigVersionBUILDER_CONFIGSr   r   r   r   r   r   r   r   r   3   s"    
+
r   )r   
__future__r   r   r   r   abslr   tensorflow.compat.v2compatv2r   tensorflow_datasets.public_api
public_apir   r   r   r   r   r   GeneratorBasedBuilderr   r   r   r   r   <module>   s   
	