Ë
    Gü´j[  ã                   óÄ   — d Z ddlZddlZddlZddlmZmZ ddlmZ ddlm	Z	m
Z
mZ ddlmZ ddlmZ dd	lmZ d
ee   ddfd„Zdeddfd„Zdd„Zdd„Zedk(  r e«        yy)zJUtility functions for the command line interface. Used by the main module.é    N)ÚOptionalÚTextIO)Útabulateé   )ÚCommunicateÚSubMakerÚlist_voices)ÚDEFAULT_VOICE)ÚUtilArgs)Ú__version__ÚproxyÚreturnc           
   ƒ   ó  K  — t        | ¬«      ƒ d{  –—† }t        |d„ ¬«      }g d¢}|D �cg c]8  }|d   |d   dj                  |d	   d
   «      dj                  |d	   d   «      g‘Œ: }}t        t	        ||«      «       y7 Œoc c}w ­w)zPrint all available voices.©r   Nc                 ó   — | d   S )NÚ	ShortName© )Úvoices    úK/root/workspace/ytshorts/venv/lib/python3.12/site-packages/edge_tts/util.pyú<lambda>z_print_voices.<locals>.<lambda>   s   € ¨e°KÑ.@€ ó    )Úkey)ÚNameÚGenderÚContentCategoriesÚVoicePersonalitiesr   r   z, ÚVoiceTagr   r   )r	   ÚsortedÚjoinÚprintr   )r   ÚvoicesÚheadersr   Útables        r   Ú_print_voicesr$      s    è ø€ ä UÔ+×+€FÜ�FÑ @ÔA€FÚK€Gð öð ð �+ÑØ�(‰OØ�I‰I�e˜JÑ'Ð(;Ñ<Ó=Ø�I‰I�e˜JÑ'Ð(<Ñ=Ó>ò		
ð€Eð ô 
Œ(�5˜'Ó
"Õ#ð ,úòùs    ‚B	’B“B	­=BÁ*B	ÂB	Úargsc              ƒ   óh  K  — 	 t         j                  j                  «       rOt         j                  j                  «       r1| j                  s%t        dt         j                  ¬«       t        «        t        | j                  | j                  | j                  | j                  | j                  | j                  ¬«      }t!        «       }	 | j                  �%| j                  dk7  rt#        | j                  d«      nt         j                  j$                  }| j&                  �'| j&                  dk7  rt#        | j&                  dd	¬
«      nd}|€| j&                  dk(  rt         j                  }|j)                  «       2 3 d{  –—† }|d   dk(  r|j+                  |d   «       Œ&|d   dv sŒ.|j-                  |«       Œ@# t        $ r t        dt         j                  ¬«       Y yw xY w7 Œe6 |�|j+                  |j/                  «       «       |t         j                  j$                  ur|j1                  «        |�$|t         j                  ur|j1                  «        yyy# t         j                  j$                  ur|j1                  «        �$|t         j                  ur|j1                  «        w w w xY w­w)z2Run TTS after parsing arguments from command line.z™Warning: TTS output will be written to the terminal. Use --write-media to write to a file.
Press Ctrl+C to cancel the operation. Press Enter to continue.)Úfilez
Operation canceled.N)ÚrateÚvolumeÚpitchr   ú-ÚwbÚwúutf-8©ÚencodingÚtypeÚaudioÚdata)ÚWordBoundaryÚSentenceBoundary)ÚsysÚstdinÚisattyÚstdoutÚwrite_mediar    ÚstderrÚinputÚKeyboardInterruptr   Útextr   r(   r)   r*   r   r   ÚopenÚbufferÚwrite_subtitlesÚstreamÚwriteÚfeedÚget_srtÚclose)r%   ÚcommunicateÚsubmakerÚ
audio_fileÚsub_fileÚchunks         r   Ú_run_ttsrL   !   sD  è ø€ ðÜ�9‰9×ÑÔ¤#§*¡*×"3Ñ"3Ô"5¸d×>NÒ>NÜð+ô —Z‘Zõô ŒGô
 Ø�	‰	Ø�
‰
Ø�Y‰YØ�{‰{Ø�j‰jØ�j‰jô€Kô ‹z€Hðð ×ÑÐ+°×0@Ñ0@ÀCÒ0Gô �×!Ñ! 4Ô(ä—‘×"Ñ"ð 	ð ×#Ñ#Ð/°D×4HÑ4HÈCÒ4Oô �×%Ñ% s°WÕ=àð 	ð
 Ð × 4Ñ 4¸Ò ;Ü—z‘zˆHà&×-Ñ-Ó/÷ 	%ð 	%�%Ø�V‰} Ò'Ø× Ñ   v¡Õ/Ø�v‘Ð"FÒFØ—‘˜eÕ$øô? ò ÜÐ%¬C¯J©JÕ7Ùðúð6	%øÐ/ð ÐØ�N‰N˜8×+Ñ+Ó-Ô.àœSŸZ™Z×.Ñ.Ñ.Ø×ÑÔØÐ H´C·J±JÑ$>Ø�N‰NÕð %?Ðøð œSŸZ™Z×.Ñ.Ñ.Ø×ÑÔØÐ H´C·J±JÑ$>Ø�N‰NÕð %?Ðüso   ‚J2„A-F: Á1AJ2Ã	B1I Å:G&Å>G$Å?G&Æ%I Æ(I Æ:$G!ÇJ2Ç G!Ç!J2Ç$G&Ç&"I ÈAJ2ÉAJ/Ê/J2c               ƒ   ó.  K  — t        j                  d¬«      } | j                  d¬«      }|j                  ddd¬«       |j                  d	d
d¬«       | j                  dddt        › �t        ¬«       |j                  dddd¬«       | j                  ddd¬«       | j                  ddd¬«       | j                  ddd¬«       | j                  dd¬«       | j                  dd ¬«       | j                  d!d"¬«       | j                  d#d$d%t
        › �¬&«       | j                  t        «       ¬'«      }|j                  r3t        |j                  ¬(«      ƒ d){  –—†  t        j                  d*«       |j                  �g|j                  d+v r$t        j                  j                  «       |_        n5t#        |j                  d,¬-«      5 }|j                  «       |_        d)d)d)«       |j                   �t%        |«      ƒ d){  –—†  y)y)7 Œ­# 1 sw Y   Œ,xY w7 Œ­w).zAsync main functionz9Text-to-speech using Microsoft Edge's online TTS service.)ÚdescriptionT)Úrequiredz-tz--textzwhat TTS will say)Úhelpz-fz--filez!same as --text but read from filez-vz--voicezvoice for TTS. Default: )rP   Údefaultz-lz--list-voicesz lists available voices and exitsÚ
store_true)rP   Úactionz--ratezset TTS rate. Default +0%%.z+0%z--volumezset TTS volume. Default +0%%.z--pitchzset TTS pitch. Default +0Hz.z+0Hzz--write-mediaz+send media output to file instead of stdoutz--write-subtitlesz7send subtitle output to provided file instead of stderrz--proxyz#use a proxy for TTS and voice list.z	--versionÚversionz	edge-tts )rS   rT   )Ú	namespacer   Nr   )r+   z
/dev/stdinr.   r/   )ÚargparseÚArgumentParserÚadd_mutually_exclusive_groupÚadd_argumentr
   r   Ú
parse_argsr   r	   r$   r   r6   Úexitr'   r7   Úreadr>   r?   rL   )ÚparserÚgroupr%   r'   s       r   Úamainr_   X   s  è ø€ ä×$Ñ$ØOô€Fð ×/Ñ/¸Ð/Ó>€EØ	×Ñ�t˜XÐ,?ÐÔ@Ø	×Ñ�t˜XÐ,OÐÔPØ
×ÑØØØ'¬ Ð7Üð	 ô ð 
×ÑØØØ/Øð	 ô ð ×Ñ˜Ð'DÈeÐÔTØ
×Ñ˜
Ð)HÐRWÐÔXØ
×Ñ˜	Ð(FÐPVÐÔWØ
×ÑØÐKð ô ð ×ÑØØFð ô ð ×Ñ˜	Ð(MÐÔNØ
×ÑØ˜I°¼;¸-Ð/Hð ô ð ×Ñ¤x£zÐÓ2€Dà×ÒÜ $§*¡*Ô-×-Ð-Ü�‰�Œà‡y�yÐØ�9‰9Ð+Ñ+ÜŸ	™	Ÿ™Ó(ˆD�Iä�d—i‘i¨'Ô2ð (°dØ ŸI™I›K�”	÷(ð ‡y�yÐÜ�t‹n×Ñð ð 	.ø÷(ð (úð 	ús7   ‚EHÅHÅA.HÇHÇ"HÇ>HÇ?HÈHÈHc                  ó>   — t        j                  t        «       «       y)z$Run the main function using asyncio.N)ÚasyncioÚrunr_   r   r   r   Úmainrc   ‹   s   € ä‡K�K”“Õr   Ú__main__)r   N)Ú__doc__rV   ra   r6   Útypingr   r   r   Ú r   r   r	   Ú	constantsr
   Údata_classesr   rT   r   Ústrr$   rL   r_   rc   Ú__name__r   r   r   ú<module>rl      sp   ðÙ Pã Û Û 
ß #å ç 0Ñ 0Ý $Ý "Ý  ð$ (¨3¡-ð $°Dó $ð"4˜ð 4 dó 4ón0ófð
 ˆzÒÙ…Fð r   