// the code is from https://github.com/pytorch/audio/blob/main/torchaudio/csrc/sox/io.h with modification. #pragma once #include "paddleaudio/src/pybind/sox/utils.h" namespace py = pybind11; namespace paddleaudio { namespace sox_io { auto get_info_file(const std::string &path, const tl::optional &format) -> std::tuple; auto get_info_fileobj(py::object fileobj, const tl::optional &format) -> std::tuple; tl::optional> load_audio_fileobj( py::object fileobj, const tl::optional& frame_offset, const tl::optional& num_frames, tl::optional normalize, tl::optional channels_first, const tl::optional& format); void save_audio_fileobj( py::object fileobj, py::array tensor, int64_t sample_rate, bool channels_first, tl::optional compression, tl::optional format, tl::optional encoding, tl::optional bits_per_sample); auto get_effects(const tl::optional& frame_offset, const tl::optional& num_frames) -> std::vector>; tl::optional> load_audio_file( const std::string& path, const tl::optional& frame_offset, const tl::optional& num_frames, tl::optional normalize, tl::optional channels_first, const tl::optional& format); void save_audio_file(const std::string& path, py::array tensor, int64_t sample_rate, bool channels_first, tl::optional compression, tl::optional format, tl::optional encoding, tl::optional bits_per_sample); } // namespace paddleaudio } // namespace sox_io