Commit eff7419f authored by Anika Treffehn's avatar Anika Treffehn
Browse files

Merge branch 'fix_length_output_16kHz_lp_function' into 'main'

small fix in 16kHz lp filtering

See merge request !123
parents a2b69678 2f18a6b3
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -34,7 +34,10 @@ import argparse
from itertools import repeat
from pathlib import Path

from ivas_processing_scripts.audiotools.constants import AUDIO_FORMATS, BINAURAL_LFE_GAIN
from ivas_processing_scripts.audiotools.constants import (
    AUDIO_FORMATS,
    BINAURAL_LFE_GAIN,
)
from ivas_processing_scripts.audiotools.convert import convert_file
from ivas_processing_scripts.utils import apply_func_parallel

+10 −6
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ from time import sleep

sys.path.append(str(Path(__file__).parent.parent))
from ivas_processing_scripts.audiotools.audio import fromfile
from ivas_processing_scripts.audiotools.audioarray import trim
from ivas_processing_scripts.audiotools.audiofile import write
from ivas_processing_scripts.audiotools.wrappers.filter import resample_itu
from ivas_processing_scripts.utils import progressbar_update, spinner
@@ -19,21 +20,24 @@ def lp16k(in_file, out_file):
            f"Unsupported sampling rate {x.fs//1000} kHz for input file {in_file} - only 48 kHz is supported!"
        )

    # save length of audio since resampling can alter the length by one sample due to rounding
    len_signal = len(x.audio)

    # resample ITU only returns the audio array
    # but uses the sampling rate stored in the audio object
    # so we need to correctly set it after each call
    x.audio = resample_itu(x, 96000)
    x.fs = 96000

    x.audio = resample_itu(x, 32000)
    x.fs = 32000

    x.audio = resample_itu(x, 96000)
    x.fs = 96000

    x.audio = resample_itu(x, 48000)
    x.fs = 48000

    if len_signal != len(x.audio):
        # padding should usually not happen since the resampling only rounds up
        x.audio = trim(
            x.audio, x.fs, (0, len(x.audio) - len_signal), samples=True, pad_noise=True
        )

    write(out_file, x.audio, x.fs)