
    wi                          d dl Z d dlmZmZmZmZ d dlZd dlZddlm	Z	 ddl
mZ ej                                        Z G d de	          ZdS )    N)BinaryIOOptionalTupleUnion   )Backend)AudioMetaDatac                   J   e Zd Zeddeeeej        f         de	e         de
defd            Ze	 	 	 	 	 	 ddeeeej        f         de
de
dedede	e         de
deej        e
f         fd            Ze	 	 	 	 	 	 ddeeeej        f         dej        de
dede	e         de	e         de	e
         de
de	eej        j        ee
f                  dd
fd            Zedeeeej        f         de	e         defd            Zedeeeej        f         de	e         defd            Zd
S )
SoXBackend   uriformatbuffer_sizereturnc                     t          | d          rt          dd          t                              | |          }|r	t	          | S t          d|  d          )Nreadz=SoX backend does not support reading from file-like objects. z`Please use an alternative backend that does support reading from file-like objects, e.g. FFmpeg.zFailed to fetch metadata for .)hasattr
ValueErrorsox_extget_infor	   RuntimeError)r   r   r   sinfos       g/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/torchaudio/_backend/sox.pyinfozSoXBackend.info   sr    3 
	KOr  
 $$S&11E K$e,,"#I3#I#I#IJJJ    r   TNframe_offset
num_frames	normalizechannels_firstc                     t          | d          rt          dd          t                              | |||||          }|st	          d|  d          |S )Nr   z=SoX backend does not support loading from file-like objects. z`Please use an alternative backend that does support loading from file-like objects, e.g. FFmpeg.zFailed to load audio from r   )r   r   r   load_audio_filer   )r   r   r   r    r!   r   r   rets           r   loadzSoXBackend.load   sw     3 		Or  
 ))#|ZTbdjkkC H"#F#F#F#FGGGJr   srcsample_rateencodingbits_per_samplecompressionc	           
         t          |t          t          t          d           f          s t	          ddt          |                     t          | d          rt	          dd          t                              | |||||||           d S )NzISoX backend expects non-`None` value for argument `compression` to be of z2type `float` or `int`, but received value of type writez;SoX backend does not support writing to file-like objects. z^Please use an alternative backend that does support writing to file-like objects, e.g. FFmpeg.)
isinstancefloatinttyper   r   r   save_audio_file)	r   r&   r'   r!   r   r(   r)   r   r*   s	            r   savezSoXBackend.save1   s     +sDJJ'?@@ 	[XT+EVEVXX   3   	Mp  
 ##	 	 	 	 	r   c                 $    t          | d           S )Nr   r   r   r   s     r   
can_decodezSoXBackend.can_decodeS   s     3''''r   c                 $    t          | d           S )Nr,   r4   r5   s     r   
can_encodezSoXBackend.can_encodeX   s     3((((r   )r   )r   r   TTNr   )TNNNr   N)__name__
__module____qualname__staticmethodr   r   strosPathLiker   r/   r	   r   boolr   torchTensorr%   
torchaudioioCodecConfigr.   r2   r6   r8    r   r   r   r      so       K K%#r{23 KXc] KY\ Khu K K K \K  # $ 8S"+-.  	
    
u|S 	!   \( 
  $ $"&)-NR 8S"+-.\  	
  3- "#  eJM$=uc$IJK 
   \B (hR[89 (8C= (UY ( ( ( \( )hR[89 )8C= )UY ) ) ) \) ) )r   r   )r>   typingr   r   r   r   rA   rC   backendr   commonr	   
_extensionlazy_import_sox_extr   r   rF   r   r   <module>rL      s    				 3 3 3 3 3 3 3 3 3 3 3 3            ! ! ! ! ! !


3
3
5
5N) N) N) N) N) N) N) N) N) N)r   