
    11i                         S r SSKrSSKJr  SSKJrJrJr  SSKJ	r	  SSK
Jr  SSKJr  SSKJr  SS	KJr   " S
 S\	5      rg)z0Base class of espeak backends for the phonemizer    N)Logger)OptionalUnionPattern)BaseBackend)EspeakWrapper)
get_logger)Punctuation)	Separatorc                      ^  \ rS rSrSr   SS\S\\\\4      S\	S\\
   4U 4S jjjr\S 5       r\S	 5       r\S
\	4S j5       r\S
\	4S j5       r\S 5       r\R&                  S\S\S\S\	S
\4
S j5       rSrU =r$ )BaseEspeakBackend   zAbstract espeak backend for the phonemizer

Base class of the concrete backends Espeak and EspeakMbrola. It provides
facilities to find espeak library and read espeak version.

languagepunctuation_markspreserve_punctuationloggerc                    > [         TU ]  UUUUS9  [        5       U l        U R                  R                  SU R                  R                  5        g )N)r   r   r   z	loaded %s)super__init__r   _espeakr   debuglibrary_path)selfr   r   r   r   	__class__s        X/home/james-whalen/.local/lib/python3.13/site-packages/phonemizer/backend/espeak/base.pyr   BaseEspeakBackend.__init__#   sL     	/!5	 	 	 %+t||'@'@A    c                 0    [         R                  " U5        g)a*  Sets the espeak backend to use `library`

If this is not set, the backend uses the default espeak shared library
from the system installation.

Parameters
----------
library (str or None) : the path to the espeak shared library to use as
    backend. Set `library` to None to restore the default.

N)r   set_library)clslibrarys     r   r   BaseEspeakBackend.set_library1   s     	!!'*r   c                 ,    [         R                  " 5       $ )a  Returns the espeak library used as backend

The following precedence rule applies for library lookup:

1. As specified by BaseEspeakBackend.set_library()
2. Or as specified by the environment variable
   PHONEMIZER_ESPEAK_LIBRARY
3. Or the default espeak library found on the system

Raises
------
RuntimeError if the espeak library cannot be found or if the
    environment variable PHONEMIZER_ESPEAK_LIBRARY is set to a
    non-readable file

)r   r!   r    s    r   r!   BaseEspeakBackend.library@   s    $ $$&&r   returnc                 :     [        5         g! [         a     gf = f)NFT)r   RuntimeErrorr$   s    r   is_availableBaseEspeakBackend.is_availableT   s%    	O   		s   
 
c                 (    U R                  5       S:  $ )z0Returns True if using espeak-ng, False otherwise)   1   )versionr$   s    r   is_espeak_ngBaseEspeakBackend.is_espeak_ng\   s     {{}''r   c                 *    [        5       R                  $ )zEspeak version as a tuple (major, minor, patch)

Raises
------
RuntimeError if BaseEspeakBackend.is_available() is False or if the
    version cannot be extracted for some reason.

)r   r.   r$   s    r   r.   BaseEspeakBackend.versionb   s     &&&r   linenum	separatorstripc                     g )N )r   r3   r4   r5   r6   s        r   _postprocess_line#BaseEspeakBackend._postprocess_linen   s     	r   )r   )NFN)__name__
__module____qualname____firstlineno____doc__strr   r   r   boolr   r   classmethodr   r!   r)   r/   r.   abcabstractmethodintr   r9   __static_attributes____classcell__)r   s   @r   r   r      s    EI.3,0B B$,U3<-@$AB'+B "&)B B + + ' '& T   (T ( (
 	' 	' 	c  %.7;@C r   r   )r?   rC   loggingr   typingr   r   r   phonemizer.backend.baser   !phonemizer.backend.espeak.wrapperr   phonemizer.loggerr	   phonemizer.punctuationr
   phonemizer.separatorr   r   r8   r   r   <module>rO      s3    7 
  + + / ; ( . *U Ur   