%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3/dist-packages/orca/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3/dist-packages/orca/__pycache__/spiel.cpython-312.pyc

�

g
f*f��:�dZdZdZdZdZdZdZddlZd	d
lm	Z	d	dlm
Z
d	dlmZd	d
lmZd	dlm
Z
d	dlmZd	dlmZd	dlmZmZej(dd�ddlmZ	ej(dd�ddlmZdZGd�dej4�Zy#e$rdZY�wxYw)z1Provides an Orca speech server for Spiel backend.z$Id$z
$Revision$z$Date$z<andyholmes@gnome.org>u(Copyright © 2024 GNOME Foundation Inc. �LGPL�N�)�debug)�	guilabels)�messages)�speechserver)�settings)�settings_manager)�ACSS)�SSML�SSMLCapabilities�GLibz2.0)r�Spielz1.0)rTFc���eZdZiZiZdZdZeejiZ	e
d��Ze
d��Ze
d��Zd�Ze
d��Ze
d��Ze
d	��Z�fd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd)d�Zd�Zd�Zd�Zd�Zd�Zd�Z d*d�Z!d*d�Z"d+d�Z#d�Z$d,d�Z%d,d�Z&d,d�Z'd�Z(d-d �Z)d-d!�Z*d.d"�Z+d.d#�Z,d.d$�Z-d.d%�Z.d&�Z/d'�Z0d/d(�Z1�xZ2S)0�SpeechServerN�defaultc�"�tjS�N)r�SPIEL���,/usr/lib/python3/dist-packages/orca/spiel.py�getFactoryNamezSpeechServer.getFactoryName>s�����rc�8�g}tjtj�}|�r|j|�tjj
jD]:}|jtj|j
j���<|Sr)r�_getSpeechServer�DEFAULT_SERVER_ID�append�DEFAULT_SPEAKER�props�	providers�well_known_name)�serversr�providers   r�getSpeechServerszSpeechServer.getSpeechServersBsx�����/�/��0N�0N�O�����N�N�7�#�(�8�8�>�>�H�H�
^�����|�<�<�X�^�^�=[�=[�\�]�
^��rc�|�tjtji|_|D]9}|j
j|j|j
j<�;|jj�D]$\}}||jvs�|j��&|D�cic]}|j
j|��c}|_t|�dkDr[|j|jvrB|j|j}|j|dj
j�yyycc}w)zShutdown unavailable providers.rN)rrr�DEFAULT_SYNTHESIZER�
_SERVER_NAMESr�namer!�_active_servers�items�shutdown�_active_providers�len�
_updateVoices�voices)�clsr r#r!�server�ps      r�_updateProviderszSpeechServer._updateProvidersLs��*�;�;�Y�=Z�=Z�[���!�	T�H�@H���@S�@S�C���h�n�n�<�<�=�	T�(+�':�':�'@�'@�'B�	"�#�O�V��c�&7�&7�7����!�	"�FO� O�����!8�!8�!�!;� O����y�>�A��#�"7�"7�3�;N�;N�"N��(�(��)>�)>�?�F�� � ��1��!3�!3�!:�!:�;�#O���!Ps�)D9c��d}|D]:}|jjD]}||jj|dffz
}�!�<||_y)z�Update the list of known voices for the server.

        getVoiceFamilies() prepends the list with the locale default and
        the default family.
        rN)r�	languagesr(�_current_voice_profiles)�selfr/�voice_profiles�voice�languages     rr.zSpeechServer._updateVoices`s]�����	H�E�!�K�K�1�1�
H���E�K�K�$4�$4�h��#E�"G�G��
H�	H�(6��$rc�d�||jvr||�|jj|�S)z�Return an active server for given id.

        Attempt to create the server if it doesn't exist yet.  Returns None
        when it is not possible to create the server.

        )r)�get)r0�serverIds  rrzSpeechServer._getSpeechServerms2���3�.�.�.���M��"�"�&�&�x�0�0rc�Z�|�|dntj}tj|�S)ziGets a given SpeechServer based upon the info.
        See SpeechServer.getInfo() for more info.
        r)rrr)�info�thisIds  r�getSpeechServerzSpeechServer.getSpeechServer{s+��
!�,��a��,�2P�2P���,�,�V�4�4rc��tjj�D�cgc]}|��}}|D]}|j��ycc}wr)rr)�valuesr+)�sr"r1s   r�shutdownActiveServersz"SpeechServer.shutdownActiveServers�sC��*�:�:�A�A�C�D��1�D��D��	�F��O�O��	��Es�	Ac�b��tt|��||_d|_d|_i|_tjdftjdftjdftjiff|_ts(d}tjtj |d�y	|j#�|tj$|<y#t&$rW}tj(tj �d|��}tjtj |d�Yd}~yd}~wwxYw)Nr�2�@zERROR: Spiel is not availableTz'ERROR: Spiel service failed to connect )�superr�__init__�_id�_speakerr6�_current_voice_propertiesr�RATE�
AVERAGE_PITCH�GAIN�FAMILY�_acss_defaults�_spiel_availabler�printMessage�
LEVEL_WARNING�_initr)�	Exception�printException)r7r=�msg�error�	__class__s    �rrJzSpeechServer.__init__�s����
�l�D�*�,������
�')��$�)+��&�
�Y�Y��O�
�
�
��%�
�Y�Y���
�[�[�"��	��� �1�C����u�2�2�C��>��	:��J�J�L�6:�L�(�(��2���	?�� � ��!4�!4�5�;�E�7�C�C����u�2�2�C��>�>��	?�s�*C�	D.�A
D)�)D.c�j�|dk(ry|dzdz}|dkDr||dzdzz
}tdt|d��S)	N�d�$@gY@�rGr�	g�������?��max�min)r7�	acss_rate�rates   r�	_get_ratezSpeechServer._get_rate�sH�������E�!�Q�&���r�>��T�A�X��N�"�D��3��D�$��(�(rc�8�|dz}tdt|d��S)NrH��@ra)r7�
acss_pitch�pitchs   r�
_get_pitchzSpeechServer._get_pitch�s���S� ���3��E�3��(�(rc�8�|dz}tdt|d��S)Nr^rhrira)r7�acss_volume�volumes   r�_get_volumezSpeechServer._get_volume�s ���t�#���3��F�C�(�)�)rc�H�|�i}|jtjj�}|jtjj�}|sGddl}|j
�\}}d\}}|r)|jd�}|d}t|�dk(r|d}||fS)Nr)�rr�_r_r)	r<r�VoiceFamily�LANG�DIALECT�locale�getdefaultlocale�splitr-)r7�acss_familyr:�dialectrw�familyLocale�encoding�localeValuess        r�_get_language_and_dialectz&SpeechServer._get_language_and_dialect�s������K��?�?�<�#;�#;�#@�#@�A���/�/�,�":�":�"B�"B�C����%+�%<�%<�%>�"�L�(� &��H�g��+�1�1�#�6��'��?���|�$��)�*�1�o�G��� � rc�:�|j|�\}}|dz|zS)N�-)r)r7rz�langr{s    r�
_get_languagezSpeechServer._get_language�s%���6�6�{�C�
��g��c�z�G�#�#rc�\�t|jjj�dk(ry|j	t
jj�}|j|�\}}|�d|��}|jjjd}d}|jjjD]r}|jjD].}	|	jd�\}
}}|
|k(s�|||fvr|}|	}||k(s�.n�K||j|jjfvs�p|cS|S)aReturn a Spiel voice for an ACSS family.

        If an exact match is not found the fallback will prioritize
        lang-dialect, then lang, and failing that anything available. This
        method may return None, in the rare case no voices are available.
        rNr�)
r-rLrr/r<rrt�NAMErr5�	partition�_default_voice_namer()
r7rz�	acss_name�	acss_lang�acss_dialect�accs_lang_dialect�fallback�
fallback_langr9r:r�rsr{s
             r�
_get_voicezSpeechServer._get_voice�s-���t�}�}�"�"�)�)�*�a�/���O�O�L�$<�$<�$A�$A�B�	�"&�"@�"@��"M��	�<�(�k��<�.�9���=�=�&�&�-�-�a�0���
��]�]�(�(�/�/�	�E�!�K�K�1�1�
��%-�%7�%7��%<�"��q�'��9�$�$�->�	�,J�J�#(��(0�
��,�.��
���T�5�5�u�{�{�7G�7G�H�H���#	�&�rc��tjtjkDry	|j|jjtj��}|j|jjtj��}|j|jjtj��}|j|jjtj��}|jjtj�}tj dtj"dtj$dtj&di}t)j*�}d|�d|jjtj��d|jjtj��d	|jjtj��d
|j-|�d�d|j|j/d
���d|�d|�d	|�d
|��}	tj0tj|	d�y#t$rdx}x}x}}Y��~wxYw)Nz(exception occurred)�NONE�SOME�MOST�ALLzSPIEL: z
ORCA rate z, pitch z	, volume z, language rz, punctuation: �verbalizePunctuationStylez	
SD rate T)r�
debugLevel�
LEVEL_INFOrfrMr<rrNrlrOrprPr�rQrWr	�PUNCTUATION_STYLE_NONE�PUNCTUATION_STYLE_SOME�PUNCTUATION_STYLE_MOST�PUNCTUATION_STYLE_ALLr
�
getManagerr�
getSettingrT)
r7�prefixrerkror:�family�styles�managerrYs
          r�_debug_spiel_valuesz SpeechServer._debug_spiel_values�s#�����e�.�.�.��	F��>�>�$�"@�"@�"D�"D�T�Y�Y�"O�P�D��O�O�D�$B�$B�$F�$F�t�GY�GY�$Z�[�E��%�%�d�&D�&D�&H�&H����&S�T�F��)�)�$�*H�*H�*L�*L�T�[�[�*Y�Z�H��/�/�3�3�D�K�K�@���1�1�6��1�1�6��1�1�6��0�0�%�9��#�-�-�/���f�X���7�7�;�;�D�I�I�F�G�H��3�3�7�7��8J�8J�K�L�M��4�4�8�8����C�D�E��6�6�v�>�q�A�B�C��z�z�'�,�,�-H�I�J�K�L��f�H�U�G�9�V�H�K��z�
S�	�	���5�+�+�S�$�7��+�	F�/E�E�D�E�5�E�6�H�	F�s�C I.�.J�Jc���|�!tjtj}|j}|jD]#\}}|j|�}|�|||<�|||<�%yr)r	r/�
DEFAULT_VOICErMrRr<)r7�acss�current�
acss_propertyr�values      r�_apply_acsszSpeechServer._apply_acsssh���<��?�?�8�#9�#9�:�D��0�0��&*�&9�&9�	1�"�M�7��H�H�]�+�E�� �).��
�&�)0��
�&�	1rc��tj��tjj	d�t_tjj
jjdtj�tjtjj
j�tj|_	d|_
i|_tjtjj|j |j �z|_|j tj$k7r�tj&|j |_|j(j
j*jd|j,�|_|j-|j(j
j*�yt1|jj
j�dkDrI|jj
jd}|j-|j
j*�yy)Nz
items-changedrr)rrr�Speaker�new_syncrr �connectr3rLr6rMr�SPEECH_DEFAULT_VOICEr'r<rKr�rr,�	_providerr/r.�
_voices_idr-)r7r#s  rrVzSpeechServer._init s����'�'�/�+0�=�=�+A�+A�$�+G�L�(��(�(�.�.�8�8�@�@��AM�A^�A^�
`��)�)�,�*F�*F�*L�*L�*V�*V�W�$�4�4��
�')��$�)+��&�#,�#A�#A��&�&�*�*�4�8�8�T�X�X�>�$?�� ��8�8�|�5�5�5�)�;�;�D�H�H�E�D�N�"�n�n�2�2�9�9�A�A�/�BF�BT�BT�V�D�O����t�~�~�3�3�:�:�;�
����$�$�.�.�
/�!�
3��}�}�*�*�4�4�Q�7�H����x�~�~�4�4�5�4rc��|j|jtjd��}|j	|jtj
d��}|j
|jtjd��}|j|jtji��}|�&tjtjdd�y|jd�xr|jd�}|sW|jj t"j$j&zr&t)j*|t,j.�}d}t#j0||||||��S)	NrHrG��No available voicesTz<speak>z</speak>)�textrkreror9�is_ssml)rlr<rrOrfrNrprPr�rQrrTrU�
startswith�endswithr�featuresr�VoiceFeature�EVENTS_SSML_MARKr�
markupTextr
�MARK�	Utterance)r7r�r�rkreror9r�s        r�_create_utterancezSpeechServer._create_utterance8s���������);�);�S� A�B���~�~�d�h�h�t�y�y�"�5�6���!�!�$�(�(�4�9�9�a�"8�9�����������b� 9�:���=����u�2�2�4I�4�P���/�/�)�,�J����z�1J���5�;�;�/�/�%�2D�2D�2U�2U�U��?�?�4�)9�)>�)>�?�D��G����D�%*�$(�&,�%*�'.�0�	0rc��|sy|j|�|jd|jj�d��|jj|�y)Nz
Speaking 'z' )r�r�rr�rL�speak)r7�	utterancer�s   r�_speak_utterancezSpeechServer._speak_utterancePsJ���������� � �:�i�o�o�.B�.B�-C�2�!F�G��
�
���I�&rc�z�|jj|j|j�|jgSr)r'r<rK�r7s r�getInfozSpeechServer.getInfoXs,���"�"�&�&�t�x�x����:�D�H�H�E�Erc
��ddlm}m}||�d}|�d|vrd}n|jd�\}}|dz|z}|j}d}|r-|D]\}	}
}|
|k(s�
|}n|s|D]\}	}
}|
k(s�
|}�|s|}|j
|dff|z}g}|D]�\}	}
}|j
tjtjj|	tjj|
jd�dtjj|
jd�dtjj|i����|S)Nr)�	getlocale�LC_MESSAGESrsr�rrr_)rwr�r�ryr6r�rrrtr�rur�rv�VARIANT)
r7r�r�rw�locale_language�locale_lang�locale_dialectr/�default_langr(r��variant�familiess
             r�getVoiceFamilieszSpeechServer.getVoiceFamilies[sn��	2��;�'��*���>�S��.�"�O�*0�,�,�s�*;�'�K��)�C�/�.�@�O��-�-�����'-�
�#��d�G��?�*�#2�L��
� �+1�3�'�D�$���{�*�'2��3� �.���+�+�\�4�@�B�V�K����#)�	;��D�$���O�O�L�4�4��&�&�+�+�T��&�&�+�+�T�^�^�C�-@��-C��&�&�.�.����s�0C�A�0F��&�&�.�.��69�:�
;�	;��rc�P�tjtjd|�d��|s!tjtj
}|j
|jtji��}|�&tjtjdd�y|jj}|tjjzrd|�d�}n&|tjj zrd|�d�}n|}|j#||�}|j%||�y)NzSPIEL Character: '�'r�Tz9<speak><say-as interpret-as="characters" format="glyphs">z</say-as></speak>z)<speak><say-as interpret-as="characters">)rrTr�r	r/r�r�r<rrQrUrr�rr��SSML_SAY_AS_CHARACTERS_GLYPHS�SSML_SAY_AS_CHARACTERSr�r�)r7�	characterr�r9r�r�r�s       r�speakCharacterzSpeechServer.speakCharacter�s���
���5�+�+�/A�)��A�-N�O���?�?�8�#9�#9�:�D����������b� 9�:���=����u�2�2�4I�4�P���;�;�'�'���e�(�(�F�F�F�I�IR��T��D���*�*�A�A�
A�>�y�k�IZ�[�D��D��*�*�4��6�	����i��.rc��|j�}|j�}|�d|��j�}t|�dk(rOd|�d�}t	j
tj|d�|j|�|j||�yd|�d�}t	j
tj|d�|j||��y)N� r�SPIEL: Speaking 'z' as keyT�' as string�r�)
�
getKeyName�getLockingStateString�stripr-rrTr�r�r�r�)r7�eventr��event_string�lockingStateStringrYs      r�
speakKeyEventzSpeechServer.speakKeyEvent�s����'�'�)��"�8�8�:��&��q�);�(<�=�C�C�E���|���!�%�l�^�8�<�C����u�/�/��d�;����T�"�����d�3�%�l�^�;�?�C����u�/�/��d�;��J�J�|�$�J�/rc��|sy|s!tjtj}t|�dk(rOd|�d�}t	j
tj|d�|j|�|j||�yd|�d�}t	j
tj|d�|j||�}|j||�y)Nrr�z	' as charTr�)r	r/r�r-rrTr�r�r�r�r�)r7r�r��	interruptrYr�s      rr�zSpeechServer.speak�s�������?�?�8�#9�#9�:�D��t�9��>�%�d�V�9�5�C����u�/�/��d�;����T�"�����d�+�%�d�V�;�7�C����u�/�/��d�;��.�.�t�T�:�I��!�!�)�T�2rc	�����	t��\�}�fd�}���fd�}�fd�}�fd�}�fd�}�fd�}	�fd�}
�fd�}�j�j|�}|syg}
|||
f}|
�jj	d	||��jj	d
||��jj	d||��jj	d||�gz
}
|j
j}|j
j}|tjjzr,|
j�jj	d
|
|��|tjjzr,|
j�jj	d||��|tjjzr,|
j�jj	d|	|��|tjjzr,|
j�jj	d||���j||�y#t $rYywxYw)Nc����tjtjd|jj���|\}}}||k(r"|�t
jj�yy)Nz	STARTED: )rrTr�rr�r�
SayAllContext�PROGRESS)�speakerr��sayall_data�callback�currentUtterancers�contexts      �r�_utterance_startedz/SpeechServer.sayAll.<locals>._utterance_started�s[����"�"�5�#3�#3�y����AU�AU�@V�5W�X�2=�/��+�Q�#�y�0��W�l�&@�&@�&I�&I�J�1rc���tjtjd|jj���|\}}}||k(r�|�t
jj�|D�cgc]}|j|���c}|�t
jj��j�_d�_�j�	|�yycc}w)Nz
FINISHED: )rrTr�rr�rr�r��
disconnect�	COMPLETED�	endOffset�
currentOffset�currentEndOffset�sayAll)
r�r�r�r�r��handlers�handlerr�r7�utteranceIterators
       ���r�_utterance_finishedz0SpeechServer.sayAll.<locals>._utterance_finished�s�����"�"�5�#3�#3�z�)�/�/�BV�BV�AW�5X�Y�9D�6��+�X�#�y�0��W�l�&@�&@�&I�&I�J�@H�I�W�W�'�'��0�I��W�l�&@�&@�&J�&J�K�,3�,=�,=�G�)�/3�G�,��K�K� 1�8�<�
1��Is�-Cc���tjtjd|jj���|\}}}||k(rA|D�cgc]}|j|���c}|�tjj�yycc}w)Nz
CANCELED: )	rrTr�rr�r�rr��INTERRUPTED)r�r�r�r�r�r�r�r�s       �r�_utterance_canceledz0SpeechServer.sayAll.<locals>._utterance_canceled�sw����"�"�5�#3�#3�z�)�/�/�BV�BV�AW�5X�Y�9D�6��+�X�#�y�0�@H�I�W�W�'�'��0�I��W�l�&@�&@�&L�&L�M�1��Is�B
c�~��tjtjd|jj���tjtj
dt
|����|\}}}||k(rA|D�cgc]}|j|���c}|�tjj�yycc}w)NzERROR: )rrTr�rr�rU�reprr�rr�r�)	r�r�rZr�r�r�r�r�r�s	        �r�_utterance_errorz-SpeechServer.sayAll.<locals>._utterance_error�s�����"�"�5�#3�#3�w�y���?S�?S�>T�5U�V��"�"�5�#6�#6�'�$�u�+��8O�P�9D�6��+�X�#�y�0�@H�I�W�W�'�'��0�I��W�l�&@�&@�&L�&L�M�1��Is�<B:c���tjtjd|���|\}}}||k(r"|�tjj
�yy)NzMARK REACHED: �rrTr�rr�r�)rLr�r(r�r�r�r�r�s       �r�
_mark_reachedz*SpeechServer.sayAll.<locals>._mark_reached�sP����"�"�5�#3�#3�~�d�V�5L�M�9D�6��+�X�#�y�0��W�l�&@�&@�&I�&I�J�1rc���tjtjd|�d|���|\}}}||k(r"|�tjj
�yy)NzRANGE STARTED: r�r�	rLr��start�endr�r�r�r�r�s	        �r�_range_startedz+SpeechServer.sayAll.<locals>._range_started�sV����"�"�5�#3�#3��u�g�Q�s�e�5T�U�9D�6��+�X�#�y�0��W�l�&@�&@�&I�&I�J�1rc����tjtjd|�d|���|\}}}||k(r0|�_|�_|�t
jj�yy)NzWORD STARTED: r�)rrTr�r�r�rr�r�rs	        �r�
_word_startedz*SpeechServer.sayAll.<locals>._word_started�sf����"�"�5�#3�#3�~�e�W�A�c�U�5S�T�9D�6��+�X�#�y�0�,1�G�)�/2�G�,��W�l�&@�&@�&I�&I�J�	1rc���tjtjd|�d|���|\}}}|�k(r"||tjj
�yy)NzSENTENCE STARTED: r�r)	rL�
_utterancerrr�r��currentContextrsr�s	        �r�_sentence_startedz.SpeechServer.sayAll.<locals>._sentence_started�sY����"�"�5�#3�#3�7I�%��PQ�RU�QV�5W�X�0;�-��>�1�!�W�,��^�\�-G�-G�-P�-P�Q�-rzutterance-startedzutterance-finishedzutterance-canceledzutterance-errorzword-startedzsentence-startedz
range-startedzmark-reached)�nextr�r�rLr�rr9r�rr��EVENTS_WORDr�EVENTS_SENTENCE�EVENTS_RANGEr�r��
StopIteration)r7r��progressCallbackr�r�r�r�r�rrrrr�r�r�r9r�r�s``               @rr�zSpeechServer.sayAll�s#���c	3� �!2�3�M�G�T�
K�	
=�
N�
N�
K�
K�
K�
R��.�.�w�/@�/@�$�G�I����H�+�Y��A�K���
�
�%�%�&9�;M�{�[��
�
�%�%�&:�<O�Q\�]��
�
�%�%�&:�<O�Q\�]��
�
�%�%�&7�9I�;�W�	�
�H��O�O�)�)�E��{�{�+�+�H��%�,�,�8�8�8�����
�
� 5� 5�n�6C�6A�!C�D��%�,�,�<�<�<�����
�
� 5� 5�6H�6G�6A�!C�D��%�,�,�9�9�9�����
�
� 5� 5�o�6D�6A�!C�D��%�,�,�=�=�=�����
�
� 5� 5�n�6C�6A�!C�D�
�!�!�)�T�2��C�	��	�s�H;�;	I�Ic��tjtj}||xrdxsdz}	|tj}t
dtd||z��|tj<d|��}tjtj|d�|j|xrtjxstj|��y#t
$rd}Y��wxYw)	N���rrGr�czSPIEL: Rate set to Tr�)r	r/r�rrN�KeyErrorrbrcrrTr�r�r�
SPEECH_SLOWER�
SPEECH_FASTER)r7�step�decreaser��deltarerYs       r�_change_default_speech_ratez(SpeechServer._change_default_speech_rate&s������x�5�5�6�����R�-�2�.��	���	�	�?�D��a��R����!6�7��T�Y�Y��#�D�6�*��
���5�+�+�S�$�7��
�
�8�6�� 6� 6�-��,�,�4�	�	9���	��D�	���C�C�Cc��tjtj}||xrdxsdz}	|tj}t
dtd||z��|tj<d|��}tjtj|d�|j|xrtjxstj|��y#t
$rd}Y��wxYw)	Nrrr�rr`zSPIEL: Pitch set to Tr�)r	r/r�rrOrrbrcrrTr�r�r�SPEECH_LOWER�
SPEECH_HIGHER)r7rrr�rrkrYs       r�_change_default_speech_pitchz)SpeechServer._change_default_speech_pitch3s������x�5�5�6�����R�-�2�.��	���+�+�,�E�$'�q�#�a����*?�#@��T�
�
� �$�U�G�,��
���5�+�+�S�$�7��
�
�8�5�� 5� 5�-��,�,�4�	�	9���	��E�	�rc��tjtj}||xrdxsdz}	|tj}t
dtd||z��|tj<d|��}tjtj|d�|j|xrtjxstj|��y#t
$rd}Y��wxYw)	Nrr�
rr`zSPIEL: Volume set to Tr�)r	r/r�rrPrrbrcrrTr�r�r�
SPEECH_SOFTER�
SPEECH_LOUDER)r7rrr�rrorYs       r�_change_default_speech_volumez*SpeechServer._change_default_speech_volume@s������x�5�5�6�����R�-�2�.��	��$�)�)�_�F��a��Q����!7�8��T�Y�Y��%�f�X�.��
���5�+�+�S�$�7��
�
�8�6�� 6� 6�-��,�,�4�	�	9���	��F�	�rc��ttjj��dk(r�tjj
jrRtjj�jd�tjj
jr�Rtjj�dt_yy)NrFT)r-rr)rCrr�speakingr�MainContextr�	iteration�pauser�s r�_maybe_shutdownzSpeechServer._maybe_shutdownMs����|�+�+�2�2�4�5��:��.�.�4�4�=�=�� � �(�(�*�4�4�U�;��.�.�4�4�=�=�
�(�(�.�.�0�+/�L�(��rc�&�|j|�yr�r�r7rs  r�increaseSpeechRatezSpeechServer.increaseSpeechRateZs���(�(��.rc�*�|j|d��y�NT)rr.r/s  r�decreaseSpeechRatezSpeechServer.decreaseSpeechRate]s���(�(���(�=rc�&�|j|�yr�r!r/s  r�increaseSpeechPitchz SpeechServer.increaseSpeechPitch`s���)�)�$�/rc�*�|j|d��yr2r5r/s  r�decreaseSpeechPitchz SpeechServer.decreaseSpeechPitchcs���)�)�$��)�>rc�&�|j|�yr�r&r/s  r�increaseSpeechVolumez!SpeechServer.increaseSpeechVolumefs���*�*�4�0rc�*�|j|d��yr2r:r/s  r�decreaseSpeechVolumez!SpeechServer.decreaseSpeechVolumeis���*�*�4�$�*�?rc�8�|jj�yr)rL�cancelr�s r�stopzSpeechServer.stopls���
�
���rc��|jtjk7r9|jjj
j
|j�|j�tj|j=yr)
rKrrr�rr/r�r�r,r)r�s rr+zSpeechServer.shutdownosT���8�8�|�5�5�5��N�N� � �'�'�2�2�4�?�?�C������(�(����2rc��|jj�|jtjk7r9|j
jjj|j�|j�yr)rLr?rKrrr�rr/r�r�rV)r7r�r�s   r�resetzSpeechServer.resetusO���
�
�����8�8�|�5�5�5��N�N� � �'�'�2�2�4�?�?�C��
�
�r)rrr)NNT)F)r�)g�?)NN)3�__name__�
__module__�__qualname__r,r)rrrr&r'�staticmethodrr$�classmethodr3r.rrArErJrfrlrprr�r�r�r�rVr�r�r�r�r�r�r�r�rr!r&r,r0r3r6r8r;r=r@r+rC�
__classcell__)r[s@rrr4sH������O��O�!��&�	�(E�(E�F�M����������<��<�&6��1��1��5��5�����:�4)�)�
*�
!�($�#�J8�@	1�6�00�0'�F�'�R/�00�3�,d3�L9�9�9��/�>�0�?�1�@��3�rr)�__doc__�__id__�__version__�__date__�
__author__�
__copyright__�__license__�girrrrrrr	r
r�r�ssmlrr
�require_version�
gi.repositoryrrrSrWrrrr�<module>rUs���,8�	������(�
�:�
���	��������(�����6�5�!����B���w��&�#���E	�<�,�,�E	�������s�B�B�B

Zerion Mini Shell 1.0