Ë
    T^(hk  ã                   ó$   — d Z ddlZ G d„ d«      Zy)z%Number Normalizer class for SpeechT5.é    Nc                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚEnglishNumberNormalizerc                 óÊ   — g d¢| _         g d¢| _        g d¢| _        g d¢| _        i dd“dd“d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“d#d$“d%d&“d'd(d)œ¥| _        y )*N)
Ú ÚoneÚtwoÚthreeÚfourÚfiveÚsixÚsevenÚeightÚnine)
r   ÚelevenÚtwelveÚthirteenÚfourteenÚfifteenÚsixteenÚ	seventeenÚeighteenÚnineteen)
r   ÚtenÚtwentyÚthirtyÚfortyÚfiftyÚsixtyÚseventyÚeightyÚninety)r   ÚthousandÚmillionÚbillionÚtrillionÚquadrillionÚquintillionÚ
sextillionÚ
septillionÚ	octillionÚ	nonillionÚ	decillionú$z dollarsu   â‚¬z eurosõ   Â£z poundsõ   Â¢z centsõ   Â¥z japanese yenu   ï·¼z saudi riyalu   â‚¹z indian rupeesu   â‚½z russian rublesu   à¸¿z
 thai bahtu   â‚ºz turkish lirasu   â‚´z ukrainian hryvniau   â‚£z swiss francsu   â‚¡z costa rican colonu   â‚±z philippine pesou   â‚ªz israeli shekelsu   â‚®u    mongolian tÃ¶grÃ¶gu   â‚©z south korean wonz nigerian nairau    vietnamese Ä�á»“ng)u   â‚¦u   â‚«)ÚonesÚteensÚtensÚ	thousandsÚcurrency_symbols)Úselfs    úl/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/transformers/models/speecht5/number_normalizer.pyÚ__init__z EnglishNumberNormalizer.__init__   s  € Ú`ˆŒ	ò
ˆŒ
ò nˆŒ	ò
ˆŒð$!
Ø�ð!
à�8ð!
ð �)ð!
ð �(ð	!
ð
 �/ð!
ð �>ð!
ð Ð#ð!
ð Ð$ð!
ð �<ð!
ð Ð#ð!
ð Ð'ð!
ð �?ð!
ð Ð'ð!
ð Ð%ð!
ð Ð%ð!
ð  Ð(ð!!
ð" Ð&ð#!
ð$ %Ø(ò'!
ˆÕó    c                 óâ  — |dk(  ryg }t        dt        | j                  «      «      D ]¬  }|dz  dk7  r�d}|dz  dz  }|dz  }|dkD  r|| j                  |   dz   z  }|dkD  r|dz  }|dkD  r|d	k  r|| j                  |dz
     z  }n9| j
                  |dz     }| j                  |dz     }|r||z  }|r|r|d
z  }||z  }|j                  |«       |dz  }Œ® d
j                  t        |«      «      S )Nr   Úzeroiè  r   éd   z hundredz and é
   é   ú )	ÚrangeÚlenr4   r1   r2   r3   ÚappendÚjoinÚreversed)	r6   ÚnumÚpartsÚiÚpartÚhundredsÚ
tens_unitsÚ
tens_digitÚ
ones_digits	            r7   Úspell_numberz$EnglishNumberNormalizer.spell_numberL   s  € Ø�!Š8ØàˆÜ�qœ#˜dŸn™nÓ-Ó.ò 	ˆAØ�T‰z˜QŠØ�Ø ™:¨Ñ,�Ø  3™Y�
à˜a’<Ø˜DŸI™I hÑ/°*Ñ<Ñ<�DØ! A’~Ø ™˜à ’? z°B¢Ø˜DŸJ™J z°B¡Ñ7Ñ7‘Dà!%§¡¨:¸Ñ+;Ñ!<�JØ!%§¡¨:¸©?Ñ!;�JÙ!Ø 
Ñ*˜Ù!Ù%Ø  C™K˜DØ 
Ñ*˜à—‘˜TÔ"à�D‰L‰Cð3	ð6 �x‰xœ ›Ó(Ð(r9   c           
      óp  — d|v r|j                  d«      \  }}n|d}}d}| j                  j                  «       D ]f  \  }}|j                  |«      r|}|t	        |«      d } n@|j                  d«      sŒ;|dd j                  |«      sŒP|}d|t	        |«      dz   d z   } n d}|j                  d«      rd}|dd }n!|j                  d«      rd}|t	        d«      d }d}d	|v sd	|v r&d
}|j                  d	d«      }|j                  d	d«      }|j                  dt	        |«      dz
  dz  dz   z  «      }g }	t        dt	        |«      d«      D ]f  }
t        ||
|
dz    «      }|dkD  sŒ| j                  |«      }| j                  t	        ||
d «      dz  dz
     }|r|d|z   z  }|	j                  |«       Œh dj                  |	«      }|dk(  r|s|r
|› |› |› |› �S |› |› �S dj                  |D �cg c]  }| j                  t        |«      «      ‘Œ c}«      }|s|r|› |› d|› |› |› �S |› |› d|› |› �S c c}w )zW
        Converts an individual number passed in string form to spelt-out form
        ú.Ú00r   Nú-é   zminus Úminusú%z percenté   r   r?   z point )Úsplitr5   ÚitemsÚ
startswithrA   ÚreplaceÚzfillr@   ÚintrM   r4   rB   rC   )r6   ÚnumberÚinteger_partÚdecimal_partÚcurrency_symbolÚsymbolÚnameÚminus_prefixÚpercent_suffixrF   rG   ÚchunkrH   ÚunitÚspelled_integerÚdigitÚspelled_decimals                    r7   ÚconvertzEnglishNumberNormalizer.convertn   sÊ  € ð �&‰=Ø)/¯©°cÓ):Ñ&ˆL™,à)/°˜,ˆLð ˆØ ×1Ñ1×7Ñ7Ó9ò 
	‰LˆF�DØ×&Ñ& vÔ.Ø"&�Ø+¬C°«K¨MÐ:�Ùà×&Ñ& sÕ+Ø  Ð#×.Ñ.¨vÕ6Ø&*�OØ#&¨´c¸&³kÀA±oÐ6GÐ)HÑ#H�LÙð
	ð ˆØ×"Ñ" 3Ô'Ø#ˆLØ'¨¨Ð+‰LØ×$Ñ$ WÔ-Ø#ˆLØ'¬¨G«¨Ð7ˆLàˆØ�,Ñ #¨Ñ"5Ø'ˆNØ'×/Ñ/°°RÓ8ˆLØ'×/Ñ/°°RÓ8ˆLà#×)Ñ)¨!´°LÓ0AÀAÑ0EÈ!Ñ/KÈaÑ/OÑ*PÓQˆàˆÜ�qœ#˜lÓ+¨QÓ/ò 	#ˆAÜ˜ Q¨¨Q©Ð/Ó0ˆEØ�q‹yØ×(Ñ(¨Ó/�Ø—~‘~¤c¨,°q°rÐ*:Ó&;¸qÑ&@À1Ñ&DÑE�ÙØ˜C $™JÑ&�DØ—‘˜TÕ"ð	#ð Ÿ(™( 5›/ˆð ˜4Òñ  ¡?ð  �. Ð 1°.Ð1AÀ/ÐARÐSðð (Ð(¨Ð(8Ð9ðð "Ÿh™hÐS_Ö'`È%¨×(9Ñ(9¼#¸e»*Õ(EÒ'`ÓaˆOñ  ¡?ð  �. Ð 1°¸Ð8IÈ.ÐIYÐZiÐYjÐkðð %�~ oÐ%6°g¸oÐ=NÈ~ÐN^Ð_ðùò (as   Ç/!H3c                 óž   ‡ — d}t        j                  dd„ |«      }t        j                  |ˆ fd„|«      }t        j                  dd|«      }|S )zf
        Convert numbers / number-like quantities in a string to their spelt-out counterparts
        u~   (?<!\w)(-?\$?\â‚¬?\Â£?\Â¢?\Â¥?\â‚¹?\â‚½?\à¸¿?\â‚º?\â‚´?\â‚£?\â‚¡?\â‚±?\â‚ª?\â‚®?\â‚©?\â‚¦?\â‚«?\ï·¼?\d+(?:\.\d{1,2})?%?)(?!\w)z	(\d+,\d+)c                 óD   — | j                  d«      j                  dd«      S )NrR   ú,r   )ÚgrouprY   )Úmatchs    r7   ú<lambda>z2EnglishNumberNormalizer.__call__.<locals>.<lambda>º   s   € °%·+±+¸a³.×2HÑ2HÈÈbÓ2Q€ r9   c                 óD   •— ‰j                  | j                  d«      «      S )NrR   )ri   rm   )rn   r6   s    €r7   ro   z2EnglishNumberNormalizer.__call__.<locals>.<lambda>½   s   ø€ °t·|±|ÀEÇKÁKÐPQÃNÓ7S€ r9   z +r?   )ÚreÚsub)r6   ÚtextÚpatternÚconverted_texts   `   r7   Ú__call__z EnglishNumberNormalizer.__call__²   sO   ø€ ð
 Tˆô �v‰v�lÑ$QÐSWÓXˆô Ÿ™ Ó)SÐUYÓZˆÜŸ™  c¨>Ó:ˆàÐr9   N)Ú__name__Ú
__module__Ú__qualname__r8   rM   ri   rv   © r9   r7   r   r      s   „ ò5
òn )òDBóHr9   r   )Ú__doc__rq   r   rz   r9   r7   ú<module>r|      s   ðñ ,ã 	÷lò lr9   