Commit 26090149 authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

Merge branch 'improve_audiofile_warnings' into 'main'

improve audiofile.py warnings

See merge request !114
parents e40cc8d2 a5db1c88
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ import logging
import struct
from pathlib import Path
from typing import Optional, Tuple, Union
from warnings import warn
from warnings import catch_warnings

import numpy as np
import scipy.io.wavfile as wav
@@ -77,7 +77,10 @@ def read(
    file_extension = Path(filename).suffix

    if file_extension == ".wav":
        with catch_warnings(record=True) as warnings_list:
            fs, data = wav.read(filename)
            for w in warnings_list:
                print(f"{filename} : {w.message} ( {w.filename}:{w.lineno} )")
        if data.dtype == np.int32:
            data = np.interp(
                data,
@@ -142,12 +145,15 @@ def write(
        np.logical_or(x < np.iinfo(np.int16).min, x > np.iinfo(np.int16).max)
    )
    if clipped_samples > 0 and clipping_warning:
        logger.warning(f"  Warning: {clipped_samples} samples clipped")
        logger.warning(f"  Warning: {clipped_samples} samples clipped while writing {filename}!")
        x = np.clip(x, np.iinfo(np.int16).min, np.iinfo(np.int16).max)

    if file_extension == ".wav":
        x = x.astype(dtype)
        with catch_warnings(record=True) as warnings_list:
            wav.write(filename, fs, x)
            for w in warnings_list:
                print(f"{filename} : {w.message} ( {w.filename}:{w.lineno} )")
    elif file_extension == ".pcm" or file_extension == ".raw":
        x = x.astype(dtype).reshape(-1, 1)
        x.tofile(filename)
@@ -370,7 +376,7 @@ def split_channels(
    if in_nchans is None:
        raise ValueError("Number of channels to split must be specified!")
    if out_nchans != len(out_filenames):
        warn(
        logger.warning(
            "Split: Mismatch between number of channels and output filenames length. Truncating output filenames list."
        )
        out_filenames = out_filenames[:out_nchans]