
    љi1                     \    S SK r S SKrS SKrS SKr\R                  " \5      r " S S5      rg)    Nc                   h    \ rS rSr       SS\S\S\S\S\S\S	\4S
 jjrS\4S jr	S\4S jr
Srg)AudioConverter	   Noutput_formatoutput_sample_rateoutput_channelsinput_formatinput_sample_rateinput_channelsdebugc                 X    Xl         X l        X0l        X@l        XPl        X`l        Xpl        g )N)r   r   r   r	   r
   r   r   )selfr   r   r   r	   r
   r   r   s           T/home/james-whalen/.local/lib/python3.13/site-packages/aiavatar/sts/tts/converter.py__init__AudioConverter.__init__
   s-     +"4.(!2,
    returnc           	      r  #    [         R                  " 5       nS/nU R                  (       a  UR                  SU R                  /5        U R                  (       a&  UR                  S[        U R                  5      /5        U R                  (       a&  UR                  S[        U R                  5      /5        UR                  SS/5        UR                  SU R                  /5        UR                  S[        U R                  5      /5        UR                  S[        U R                  5      /5        UR                  S5        [        R                  " U[        R                  R                  [        R                  R                  [        R                  R                  S.6I S h  vN nUR!                  UR"                  5      I S h  vN u  pVU R$                  (       aO  [         R                  " 5       U-
  S	-  n[&        R)                  S
U R                   SU R                   SUS S35        U$  N Nj7f)Nffmpegz-fz-arz-acz-izpipe:0zpipe:1)stdinstdoutstderr  zAudioConverter (z -> z): .2fms)timeperf_counterr	   extendr
   strr   r   r   r   appendasynciocreate_subprocess_exec
subprocessPIPEDEVNULLcommunicatecontentr   loggerinfo)r   http_response
start_timeargsprocessoutput_bytes_
elapsed_mss           r   convertAudioConverter.convert   s    &&(
zKKt0012!!KKD$:$: ;<=KKD$7$7 89:T8$%T4--./UC 7 789:UC 4 4567H66$$))%%**%%--	
 
 !( 3 3M4I4I JJ::++-
:dBJKK*4+<+<*=T$BTBTAUUXYcdgXhhjkl
 Ks%   F%H7'H3("H7
H5A)H75H7c                   #    [         R                  " 5       nUR                  n[        U5      S:  ar  US S S:X  ai  USS S:X  a`  SnU[        U5      S-
  :  aL  X4US-    S:X  a  X4S-   S  nO9[        R
                  " SX4S-   5      S	   nUSU-   -  nU[        U5      S-
  :  a  ML  U R                  =(       d    S
nU R                  =(       d    SnSn[        U5      n	U	S-   n
Xv-  U-  S-  nXh-  S-  n[        R                  " SSU
SSSS
UUUUUSU	5      nU R                  (       a5  [         R                  " 5       U-
  S-  n[        R                  SUS S35        X-   $ 7f)N,      s   RIFF      s   WAVEs   dataz<Ir      >     $   z<4sI4s4sIHHIIHH4sIs   fmt r   zAudioConverter (PCM -> WAV): r   r   )r   r   r'   lenstructunpack_fromr   r
   packr   r(   r)   )r   r*   r+   datapos
chunk_sizechannelssample_ratebits_per_sample	data_size	file_size	byte_rateblock_alignheaderr0   s                  r   pcm_to_waveAudioConverter.pcm_to_wave:   s    &&(
$$t9?tBQx72tAbzW7LCD	A%CE?g-A<D!'!3!3D$a!H!KJ1z>)C D	A% &&+!,,5I	N	*_<A	0A5 
" ::++-
:dBJKK7
37GrJK}s   B!E%B:E)r   r   r	   r
   r   r   r   )wavr9   r8   NNNF)__name__
__module____qualname____firstlineno__r   intboolr   bytesr1   rK   __static_attributes__ r   r   r   r   	   sz     #"'  !%"   	
    $e <.% .r   r   )r!   loggingr=   r   	getLoggerrN   r(   r   rV   r   r   <module>rY      s-       			8	$_ _r   