Commit 1bdb5aaa authored by Jan Kiene's avatar Jan Kiene
Browse files

fix cutting

parent be0bb7d0
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -182,7 +182,7 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector):
        self.max_workers = max_workers
        self.flat_output_structure = flat_output_structure
        self.limit_duration = False
        self.max_duration = 0.0
        self.end_time = 0.0
        self.start_time = 0.0
        self.encoder_cmdline_options = []
        self.decoder_cmdline_options = []
@@ -542,7 +542,7 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector):
                            str(sample_rate_in),
                            "_",
                            config["cmd"]["in_config"].upper(),
                            "_L{}-{}s".format("_".join(str(self.start_time).split(".")), "_".join(str(self.max_duration).split("."))),
                            "_L{}-{}s".format("_".join(str(self.start_time).split(".")), "_".join(str(self.end_time).split("."))),
                            ".pcm",
                        ]
                    )
@@ -613,13 +613,14 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector):
                            if start_time_samples >= in_len:
                                raise RuntimeError("Signal is shorter than given start time")

                            cut_len_samples = int(float(self.max_duration) * fs)
                            end_time_samples = int(float(self.end_time) * fs)
                            cut_len_samples = end_time_samples - start_time_samples

                            if cut_len_samples + start_time_samples < in_len or start_time_samples > 0:
                                out_len = min(cut_len_samples, in_len - start_time_samples)
                                sig = ar.cut(sig, (start_time_samples, out_len))
                                end_time_samples = min(end_time_samples, in_len)
                                sig = ar.cut(sig, (start_time_samples, end_time_samples))

                                pcm_log.write("Limit signal length to {}:{} samples".format(start_time_samples, out_len))
                                pcm_log.write("Limit signal length to {}:{} samples".format(start_time_samples, end_time_samples))
                                af.writefile(pcm_name_cpy_transformed, sig, fs)

                                resamp_in_path = pcm_name_cpy_transformed
+1 −1
Original line number Diff line number Diff line
@@ -563,7 +563,7 @@ def runner_setup(runner, args):
            except ValueError:
                raise ValueError(f"Given duration string {arg} is invalid")
        
        runner.max_duration = end
        runner.end_time = end
        runner.start_time = start

    if "fer_file" in args.keys() or "ber_file" in args.keys():