Mini Shell

Direktori : /lib/python3.6/site-packages/orca/__pycache__/
Upload File :
Current File : //lib/python3.6/site-packages/orca/__pycache__/speech.cpython-36.opt-1.pyc

3

�p5[�-�@spdZdZdZdZdZdZddlZddlZdd	lm	Z	dd
lm
Z
ddlmZddlmZdd
lm
Z
ddlmZddlmZe
j�Zejd�Zdadd�Zdd�Zdd�ZdBdd�Zdd�Zdd�ZdCdd�ZdDd d!�ZdEd"d#�Zd$d%�Z d&d'�Z!d(d)�Z"dFd*d+�Z#dGd,d-�Z$dHd.d/�Z%dId0d1�Z&dJd2d3�Z'dKd4d5�Z(dLd6d7�Z)dMd8d9�Z*d:d;�Z+dNd<d=�Z,d>d?�Z-d@dA�Z.dS)Oz�Manages the default speech server for orca.  A script can use this
as its speech server, or it can feel free to create one of its own.z$Id$z
$Revision$z$Date$z-Copyright (c) 2005-2009 Sun Microsystems Inc.ZLGPL�N�)�debug)�logger)�
orca_state)�settings)�speech_generator)�VoiceFamily)�ACSSZspeechc
CsRg}tj}xB|D]:}ytjd|�}|j|�Wqtjtj�YqXqW|S)z�Imports all known SpeechServer factory modules.  Returns a list
    of modules that implement the getSpeechServers method, which
    returns a list of speechserver.SpeechServer instances.
    zorca.%s)r�speechFactoryModules�	importlib�
import_module�appendr�printExceptionZLEVEL_CONFIGURATION)�	factories�moduleNames�
moduleName�module�r�/usr/lib/python3.6/speech.py�getSpeechServerFactories0s
rcCs�|sdSd}ytjd|�}Wn4ytj|�}Wntjtj�YnXYnXtj}|rj|jj|�a	t	s�|jj�a	|r�d|}tj
tj|d�t	s�td|��dS)Nzorca.%sz$SPEECH: Invalid speechServerInfo: %sTz'ERROR: No speech server for factory: %s)
rrrr�LEVEL_SEVEREr�speechServerInfo�SpeechServerZgetSpeechServer�
_speechserver�println�
LEVEL_INFO�	Exception)rr�factory�msgrrr�_initSpeechServerBs(
rcCs�tjtjdd�tr(tjtjdd�dSytj}t|tj�WnXtj}xD|D]<}|tjkrRyt|d�trrPWqRtj	tj
�YqRXqRWYnXtr�d|}tjtj|d�nd}tjtj|d�tjtjdd�dS)NzSPEECH: InitializingTzSPEECH: Already initializedz'SPEECH: Using speech server factory: %szSPEECH: Not availablezSPEECH: Initialized)rrrrrZspeechServerFactoryrrr
rr)rrrrrr�initas0


r c	Cs�t|t�rF|j|j�}yt|�}Wnti�}YnX|||j<|St|t�rht|�dkrht|d�Stj}t|tj	�SdS)Nrr)
�
isinstancer	�get�FAMILYr�list�lenr�voices�
DEFAULT_VOICE)�acss�familyr&rrr�
__resolveACSSs

r*cCsZtjr
dStrtj||�n:x8|D]0\}}d|jd}tjtj|d�tj	|�q"WdS)NzSPEECH OUTPUT: '�'T)
r�
silenceSpeechr�sayAllZ	utterancerrr�log�info)ZutteranceIteratorZprogressCallback�contextr(�logLinerrrr-�sr-c
Cs�d|d}d}|ttjj��krTx0tjD]&}|tj|kr*|tjkrNd|}Pq*Wtjtj||t|�d�t	j
||�tr�ttjj
tj��}y|jt|��WnYnXtj|t|�|�dS)z2Speaks the individual string using the given ACSS.zSPEECH OUTPUT: 'r+�z	 voice=%sTN)r$rr&�valuesr'rrr�strr.r/rr	r"�updater*�speak)�textr(�	interruptr1Z
extraDebug�keyZvoicerrr�_speak�s"
r:TcCs�tjr
dStttjtjtf}d}t||�sNt	j
t	j�t	jt	j||d�dSt|t�rdt
|||�t|t�srdSg}t|�}�x�|D]�}t||�s�t	jt	j||d�q�t|t�r�t|||�q�t|t�r�t|�r�|j|�q�|r�t|�}g}	t|tj��r |djd��sP|dd7<n0t|t��rP|j|�||k�rBq�|	j|j��|�rldj|�}
t
|
||�|}|	}q�W|�r�dj|�}
t
|
||�dS)	z�Speaks the given content.  The content can be either a simple
    string or an array of arrays of objects returned by a speech
    generator.Nz)SPEECH: bad content sent to speak(): '%s'Tr�.� ���r=)rr,r4r$rZPauseZ	LineBreakr	r!rZ
printStackZ
LEVEL_WARNINGrr:r6r%r
�endswithr5�pop�join)Zcontentr(r8Z
validTypes�errorZtoSpeakZactiveVoice�elementZnewVoiceZnewItemsToSpeak�stringrrrr6�sT










r6cCshtjr
dS|j�}|j�}t|�}d||f}d||f}tjtj|d�tj	|�t
rdt
j||�dS)zeSpeaks a key event immediately.

    Arguments:
    - event: input_event.KeyboardEvent to speak.
    Nz%s %szSPEECH OUTPUT: '%s' %sT)rr,Z
getKeyNameZgetLockingStateStringr*rrrr.r/r�
speakKeyEvent)Zeventr(ZkeynameZlockingStateStringrr1rrrrD�s
rDcCsZtjr
dSt|�}d|dt|�}tjtj|d�tjd|�t	rVt	j
||d�dS)aSSpeaks a single character immediately.

    Arguments:
    - character: text to be spoken
    - acss:      acss.ACSS instance; if None,
                 the default voice settings will be used.
                 Otherwise, the acss settings will be
                 used to augment/override the default
                 voice settings.
    NzSPEECH OUTPUT: 'z' TzSPEECH OUTPUT: '%s')r()rr,r*r4rrrr.r/r�speakCharacter)�	characterr(rrrrrE�srEcCstrtj�SdSdS)z1Returns True if the system is currently speaking.FN)r�
isSpeakingrrrrrGsrGcCsd}trtj�}|S)N)r�getInfo)r/rrrrHsrHcCstrtj�dS)N)r�stoprrrrrIsrIcCstrtj�dS)NT)r�updateCapitalizationStyle)�script�
inputEventrrrrJ"srJcCstrtj�dS)z6 Punctuation level changed, inform this speechServer. T)r�updatePunctuationLevel)rKrLrrrrM(srMcCstrtj�dS)NT)r�increaseSpeechRate)rKrLrrrrN0srNcCs.trtj�nd}tjtj|�tj|�dS)NzSPEECH OUTPUT: 'slower'T)r�decreaseSpeechRaterrrr.r/)rKrLr1rrrrO6s

rOcCstrtj�dS)NT)r�increaseSpeechPitch)rKrLrrrrP@srPcCstrtj�dS)NT)r�decreaseSpeechPitch)rKrLrrrrQFsrQcCstrtj�dS)NT)r�increaseSpeechVolume)rKrLrrrrRLsrRcCstrtj�dS)NT)r�decreaseSpeechVolume)rKrLrrrrSQsrScCstrtj�dadS)N)rZshutdownActiveServersrrrr�shutdownVsrTcCstrtj||�dS)N)r�reset)r7r(rrrrU\srUcCstt�td�tdtddi��tdtddi��tdtdd	i��td
tddi��td
tddi��td�dS)N�testingzthis is higherz
average-pitch�zthis is slowerZrate�zthis is faster�Pz
this is quietZgain�zthis is loud�
zthis is normal)r r6r	rrrr�testNoSettingsInit`sr\cCs�ddlm}t�}x�|D]�}t|j�|jj�}x�|D]�}yftd|j��xJ|j�D]>}||j	j
}td|�ttj|i�}|j
||�|j
d�qTW|j�Wq6tjtj�Yq6Xq6WqWdS)Nr)�speechserverz    z      rV)r2r]r�print�__name__rZgetSpeechServersrHZgetVoiceFamiliesr�NAMEr	r#r6rTrrZ	LEVEL_OFF)r]rrZserversZserverr)�namer(rrr�testjs"




rb)N)NT)N)N)NN)NN)NN)NN)NN)NN)NN)NN)NN)/�__doc__Z__id__�__version__Z__date__Z
__copyright__Z__license__rZtimer2rrrrrr]rr(r	Z	getLoggerZ_loggerZnewLogr.rrrr r*r-r:r6rDrErGrHrIrJrMrNrOrPrQrRrSrTrUr\rbrrrr�<module>sR


5