Loading ivas_processing_scripts/processing/postprocessing.py +8 −3 Original line number Diff line number Diff line Loading @@ -57,9 +57,14 @@ class Postprocessing(Processing): in_file_no_error = Path(f"{in_file.with_suffix('')}.noerror.wav") out_file_no_error = Path(f"{out_file.with_suffix('')}.noerror.wav") if in_meta: in_meta_no_error = None # TODO in_meta_noerror = [] for meta in in_meta: path_parts = str(meta).split(".") suffix = ".".join(path_parts[-3:]) name = ".".join(path_parts[:-3]) in_meta_noerror.append(Path(f"{name}.noerror.{suffix}")) else: in_meta_no_error = None in_meta_noerror = None convert.convert_file( in_file_no_error, out_file_no_error, logger=logger, in_meta=in_meta_no_error, **self.__dict__ in_file_no_error, out_file_no_error, logger=logger, in_meta=in_meta_noerror, **self.__dict__ ) ivas_processing_scripts/processing/preprocessing_2.py +1 −3 Original line number Diff line number Diff line Loading @@ -73,9 +73,7 @@ class Preprocessing2(Processing): preamble = self.preamble # read out old metadata = [] for meta in in_meta: metadata.append(np.genfromtxt(meta, delimiter=",")) metadata = audio_object.object_pos # modify metadata metadata = add_remove_preamble(metadata, preamble) Loading ivas_processing_scripts/processing/processing_splitting_scaling.py +31 −15 Original line number Diff line number Diff line Loading @@ -55,25 +55,36 @@ class Processing_splitting_scaling(Processing): # get number of channels from output format num_channels = audio.fromtype(self.out_fmt).num_channels # read file # read file and metadata x, fs = read(in_file, nchannels=num_channels, fs=self.fs) if isinstance(audio.fromtype(self.out_fmt), audio.ObjectBasedAudio): meta_arrays = [] for meta in in_meta: meta_arrays.append(np.genfromtxt(meta, delimiter=",")) else: meta_arrays = None # read file and metadata for signal with no bitstream errors if self.tx_condition: in_file_noerror = Path(f"{in_file.with_suffix('')}.noerror.wav") out_file_noerror = Path(f"{out_file.with_suffix('')}.noerror.wav") x_noerror, _ = read(in_file_noerror, nchannels=num_channels, fs=self.fs) # read metadata if isinstance(audio.fromtype(self.out_fmt), audio.ObjectBasedAudio): meta_arrays = [] meta_arrays_noerror = [] for meta in in_meta: meta_arrays.append(np.genfromtxt(meta, delimiter=",")) path_parts = str(meta).split(".") suffix = ".".join(path_parts[-3:]) name = ".".join(path_parts[:-3]) meta_noerror = Path(f"{name}.noerror.{suffix}") meta_arrays_noerror.append(np.genfromtxt(meta_noerror, delimiter=",")) else: meta_arrays = None meta_arrays_noerror = None # cut preamble and split file out_files, file_splits, out_meta, meta_splits = self.revert_preamble_concatenation(x, fs, in_file, out_file, meta_arrays, False, logger) if self.tx_condition: in_meta_noerror = None # TODO out_files_noerror, file_splits_noerror, out_meta_noerror, meta_splits_noerror = self.revert_preamble_concatenation(x_noerror, fs, in_file_noerror, out_file_noerror, in_meta_noerror, True) out_files_noerror, file_splits_noerror, out_meta_noerror, meta_splits_noerror = self.revert_preamble_concatenation(x_noerror, fs, in_file_noerror, out_file_noerror, meta_arrays_noerror, True, logger=None) # scale splitted files if self.loudness: Loading @@ -82,6 +93,7 @@ class Processing_splitting_scaling(Processing): scaling_splits = measure_loudness(file_splits_noerror, self.out_fmt, fs, self.loudness, self.loudness_fmt, meta_splits_noerror, logger) file_splits = [f*loud for f, loud in zip(file_splits, scaling_splits)] else: # do normal scaling file_splits = adjust_loudness(file_splits, self.out_fmt, fs, self.loudness, self.loudness_fmt, meta_splits, logger) # derive output folder names Loading Loading @@ -113,6 +125,12 @@ class Processing_splitting_scaling(Processing): if isinstance(audio.fromtype(self.out_fmt), audio.ObjectBasedAudio): write_ISM_metadata_in_file(meta_s, om) write_ISM_metadata_in_file(meta_s, oom) # write noerror files in tmp folder if self.tx_condition: for ofne, file_sne, omne, meta_sne in zip(out_files_noerror, file_splits_noerror, out_meta_noerror, meta_splits_noerror): write(ofne, file_sne, fs) if isinstance(audio.fromtype(self.out_fmt), audio.ObjectBasedAudio): write_ISM_metadata_in_file(meta_sne, omne) def revert_preamble_concatenation(self, x, fs, in_file, out_file, in_meta, noerror=False, logger=None): # remove preamble and first half of signal due to repetition Loading @@ -134,7 +152,11 @@ class Processing_splitting_scaling(Processing): file_splits, meta_splits = concat_teardown(x, splits, self.out_fmt, fs, split_fs, in_meta, logger) # set new out_files if noerror: out_files = [in_file.parent.joinpath(sn).with_suffix(f".{self.name}.noerror.wav") for sn in split_names] else: out_files = [in_file.parent.joinpath(sn).with_suffix(f".{self.name}.wav") for sn in split_names] if isinstance(audio.fromtype(self.out_fmt), audio.ObjectBasedAudio): out_meta = [] for of in out_files: Loading @@ -145,8 +167,6 @@ class Processing_splitting_scaling(Processing): else: out_meta = repeat(None) if self.tx_condition: file_splits_noerror, meta_splits_noerror = concat_teardown(x, splits, self.out_fmt, fs, split_fs, logger) else: out_files = [out_file] file_splits = [x] Loading @@ -157,10 +177,6 @@ class Processing_splitting_scaling(Processing): meta_splits = repeat(None) out_meta = repeat(None) if self.tx_condition: file_splits_noerror = None # TODO meta_splits_noerror = None # TODO return out_files, file_splits, out_meta, meta_splits Loading Loading
ivas_processing_scripts/processing/postprocessing.py +8 −3 Original line number Diff line number Diff line Loading @@ -57,9 +57,14 @@ class Postprocessing(Processing): in_file_no_error = Path(f"{in_file.with_suffix('')}.noerror.wav") out_file_no_error = Path(f"{out_file.with_suffix('')}.noerror.wav") if in_meta: in_meta_no_error = None # TODO in_meta_noerror = [] for meta in in_meta: path_parts = str(meta).split(".") suffix = ".".join(path_parts[-3:]) name = ".".join(path_parts[:-3]) in_meta_noerror.append(Path(f"{name}.noerror.{suffix}")) else: in_meta_no_error = None in_meta_noerror = None convert.convert_file( in_file_no_error, out_file_no_error, logger=logger, in_meta=in_meta_no_error, **self.__dict__ in_file_no_error, out_file_no_error, logger=logger, in_meta=in_meta_noerror, **self.__dict__ )
ivas_processing_scripts/processing/preprocessing_2.py +1 −3 Original line number Diff line number Diff line Loading @@ -73,9 +73,7 @@ class Preprocessing2(Processing): preamble = self.preamble # read out old metadata = [] for meta in in_meta: metadata.append(np.genfromtxt(meta, delimiter=",")) metadata = audio_object.object_pos # modify metadata metadata = add_remove_preamble(metadata, preamble) Loading
ivas_processing_scripts/processing/processing_splitting_scaling.py +31 −15 Original line number Diff line number Diff line Loading @@ -55,25 +55,36 @@ class Processing_splitting_scaling(Processing): # get number of channels from output format num_channels = audio.fromtype(self.out_fmt).num_channels # read file # read file and metadata x, fs = read(in_file, nchannels=num_channels, fs=self.fs) if isinstance(audio.fromtype(self.out_fmt), audio.ObjectBasedAudio): meta_arrays = [] for meta in in_meta: meta_arrays.append(np.genfromtxt(meta, delimiter=",")) else: meta_arrays = None # read file and metadata for signal with no bitstream errors if self.tx_condition: in_file_noerror = Path(f"{in_file.with_suffix('')}.noerror.wav") out_file_noerror = Path(f"{out_file.with_suffix('')}.noerror.wav") x_noerror, _ = read(in_file_noerror, nchannels=num_channels, fs=self.fs) # read metadata if isinstance(audio.fromtype(self.out_fmt), audio.ObjectBasedAudio): meta_arrays = [] meta_arrays_noerror = [] for meta in in_meta: meta_arrays.append(np.genfromtxt(meta, delimiter=",")) path_parts = str(meta).split(".") suffix = ".".join(path_parts[-3:]) name = ".".join(path_parts[:-3]) meta_noerror = Path(f"{name}.noerror.{suffix}") meta_arrays_noerror.append(np.genfromtxt(meta_noerror, delimiter=",")) else: meta_arrays = None meta_arrays_noerror = None # cut preamble and split file out_files, file_splits, out_meta, meta_splits = self.revert_preamble_concatenation(x, fs, in_file, out_file, meta_arrays, False, logger) if self.tx_condition: in_meta_noerror = None # TODO out_files_noerror, file_splits_noerror, out_meta_noerror, meta_splits_noerror = self.revert_preamble_concatenation(x_noerror, fs, in_file_noerror, out_file_noerror, in_meta_noerror, True) out_files_noerror, file_splits_noerror, out_meta_noerror, meta_splits_noerror = self.revert_preamble_concatenation(x_noerror, fs, in_file_noerror, out_file_noerror, meta_arrays_noerror, True, logger=None) # scale splitted files if self.loudness: Loading @@ -82,6 +93,7 @@ class Processing_splitting_scaling(Processing): scaling_splits = measure_loudness(file_splits_noerror, self.out_fmt, fs, self.loudness, self.loudness_fmt, meta_splits_noerror, logger) file_splits = [f*loud for f, loud in zip(file_splits, scaling_splits)] else: # do normal scaling file_splits = adjust_loudness(file_splits, self.out_fmt, fs, self.loudness, self.loudness_fmt, meta_splits, logger) # derive output folder names Loading Loading @@ -113,6 +125,12 @@ class Processing_splitting_scaling(Processing): if isinstance(audio.fromtype(self.out_fmt), audio.ObjectBasedAudio): write_ISM_metadata_in_file(meta_s, om) write_ISM_metadata_in_file(meta_s, oom) # write noerror files in tmp folder if self.tx_condition: for ofne, file_sne, omne, meta_sne in zip(out_files_noerror, file_splits_noerror, out_meta_noerror, meta_splits_noerror): write(ofne, file_sne, fs) if isinstance(audio.fromtype(self.out_fmt), audio.ObjectBasedAudio): write_ISM_metadata_in_file(meta_sne, omne) def revert_preamble_concatenation(self, x, fs, in_file, out_file, in_meta, noerror=False, logger=None): # remove preamble and first half of signal due to repetition Loading @@ -134,7 +152,11 @@ class Processing_splitting_scaling(Processing): file_splits, meta_splits = concat_teardown(x, splits, self.out_fmt, fs, split_fs, in_meta, logger) # set new out_files if noerror: out_files = [in_file.parent.joinpath(sn).with_suffix(f".{self.name}.noerror.wav") for sn in split_names] else: out_files = [in_file.parent.joinpath(sn).with_suffix(f".{self.name}.wav") for sn in split_names] if isinstance(audio.fromtype(self.out_fmt), audio.ObjectBasedAudio): out_meta = [] for of in out_files: Loading @@ -145,8 +167,6 @@ class Processing_splitting_scaling(Processing): else: out_meta = repeat(None) if self.tx_condition: file_splits_noerror, meta_splits_noerror = concat_teardown(x, splits, self.out_fmt, fs, split_fs, logger) else: out_files = [out_file] file_splits = [x] Loading @@ -157,10 +177,6 @@ class Processing_splitting_scaling(Processing): meta_splits = repeat(None) out_meta = repeat(None) if self.tx_condition: file_splits_noerror = None # TODO meta_splits_noerror = None # TODO return out_files, file_splits, out_meta, meta_splits Loading