
    qi                     :    d Z ddlZddlZddlmZ  G d de      Zy)a7  SoX-based audio resampler implementation.

This module provides an audio resampler that uses the SoX resampler library
for very high-quality audio sample rate conversion.

When to use the SOXRAudioResampler:
1. For batch processing of complete audio files
2. When you have all the audio data available at once

    N)BaseAudioResamplerc                   .    e Zd ZdZd ZdedededefdZy)	SOXRAudioResamplera  Audio resampler implementation using the SoX resampler library.

    This resampler uses the SoX resampler library configured for very high
    quality (VHQ) resampling, providing excellent audio quality at the cost
    of additional computational overhead.
    c                      y)zInitialize the SoX audio resampler.

        Args:
            **kwargs: Additional keyword arguments (currently unused).
        N )selfkwargss     Y/opt/pipecat/venv/lib/python3.12/site-packages/pipecat/audio/resamplers/soxr_resampler.py__init__zSOXRAudioResampler.__init__    s     	    audioin_rateout_ratereturnc                    K   ||k(  r|S t        j                  |t         j                        }t        j                  |||d      }|j                  t         j                        j                         }|S w)aN  Resample audio data using SoX resampler library.

        Args:
            audio: Input audio data as raw bytes (16-bit signed integers).
            in_rate: Original sample rate in Hz.
            out_rate: Target sample rate in Hz.

        Returns:
            Resampled audio data as raw bytes (16-bit signed integers).
        )dtypeVHQ)quality)np
frombufferint16soxrresampleastypetobytes)r   r   r   r   
audio_dataresampled_audioresults          r
   r   zSOXRAudioResampler.resample(   s_      hL]]59
--
GXuU ''199;s   A5A7N)__name__
__module____qualname____doc__r   bytesintr   r   r   r
   r   r      s-    E C 3 5 r   r   )r"   numpyr   r   -pipecat.audio.resamplers.base_audio_resamplerr   r   r   r   r
   <module>r'      s"   	   L +  r   