def _adjust_boundaries(self, text_map, real_wave_full_mfcc, real_wave_length): """ Adjust the boundaries between consecutive fragments. Return a pair: 1. a success bool flag 2. the computed interval map, that is, a list of triples ``[start_time, end_time, fragment_id]`` """ self._log("Adjusting boundaries") algo = self.task.configuration.adjust_boundary_algorithm value = None if algo is None: self._log("No adjust boundary algorithm specified: returning") return (True, text_map) elif algo == AdjustBoundaryAlgorithm.AUTO: self._log("Requested adjust boundary algorithm AUTO: returning") return (True, text_map) elif algo == AdjustBoundaryAlgorithm.AFTERCURRENT: value = self.task.configuration.adjust_boundary_aftercurrent_value elif algo == AdjustBoundaryAlgorithm.BEFORENEXT: value = self.task.configuration.adjust_boundary_beforenext_value elif algo == AdjustBoundaryAlgorithm.OFFSET: value = self.task.configuration.adjust_boundary_offset_value elif algo == AdjustBoundaryAlgorithm.PERCENT: value = self.task.configuration.adjust_boundary_percent_value elif algo == AdjustBoundaryAlgorithm.RATE: value = self.task.configuration.adjust_boundary_rate_value elif algo == AdjustBoundaryAlgorithm.RATEAGGRESSIVE: value = self.task.configuration.adjust_boundary_rate_value self._log(["Requested algo %s and value %s", algo, value]) try: self._log("Running VAD...") vad = VAD(logger=self.logger) vad.wave_mfcc = real_wave_full_mfcc vad.wave_len = real_wave_length vad.compute_vad() self._log("Running VAD... done") except Exception as e: self._log("Adjusting boundaries: failed") self._log(["Message: %s", str(e)]) return (False, None) self._log("Creating AdjustBoundaryAlgorithm object") adjust_boundary = AdjustBoundaryAlgorithm(algorithm=algo, text_map=text_map, speech=vad.speech, nonspeech=vad.nonspeech, value=value, logger=self.logger) self._log("Adjusting boundaries...") adjusted_map = adjust_boundary.adjust() self._log("Adjusting boundaries... done") self._log("Adjusting boundaries: succeeded") return (True, adjusted_map)
def _extract_speech(self): """ Extract speech intervals """ self._log("Running VAD...") vad = VAD(frame_rate=self.frame_rate, logger=self.logger) vad.wave_len = self.audio_file.audio_length vad.wave_mfcc = self.audio_file.audio_mfcc vad.compute_vad() self.audio_speech = vad.speech self._log("Running VAD... done")
def _adjust_boundaries( self, text_map, real_wave_full_mfcc, real_wave_length ): """ Adjust the boundaries between consecutive fragments. Return a pair: 1. a success bool flag 2. the computed interval map, that is, a list of triples ``[start_time, end_time, fragment_id]`` """ self._log("Adjusting boundaries") algo = self.task.configuration.adjust_boundary_algorithm value = None if algo is None: self._log("No adjust boundary algorithm specified: returning") return (True, text_map) elif algo == AdjustBoundaryAlgorithm.AUTO: self._log("Requested adjust boundary algorithm AUTO: returning") return (True, text_map) elif algo == AdjustBoundaryAlgorithm.AFTERCURRENT: value = self.task.configuration.adjust_boundary_aftercurrent_value elif algo == AdjustBoundaryAlgorithm.BEFORENEXT: value = self.task.configuration.adjust_boundary_beforenext_value elif algo == AdjustBoundaryAlgorithm.OFFSET: value = self.task.configuration.adjust_boundary_offset_value elif algo == AdjustBoundaryAlgorithm.PERCENT: value = self.task.configuration.adjust_boundary_percent_value elif algo == AdjustBoundaryAlgorithm.RATE: value = self.task.configuration.adjust_boundary_rate_value elif algo == AdjustBoundaryAlgorithm.RATEAGGRESSIVE: value = self.task.configuration.adjust_boundary_rate_value self._log(["Requested algo %s and value %s", algo, value]) try: self._log("Running VAD...") vad = VAD(logger=self.logger) vad.wave_mfcc = real_wave_full_mfcc vad.wave_len = real_wave_length vad.compute_vad() self._log("Running VAD... done") except Exception as e: self._log("Adjusting boundaries: failed") self._log(["Message: %s", str(e)]) return (False, None) self._log("Creating AdjustBoundaryAlgorithm object") adjust_boundary = AdjustBoundaryAlgorithm( algorithm=algo, text_map=text_map, speech=vad.speech, nonspeech=vad.nonspeech, value=value, logger=self.logger ) self._log("Adjusting boundaries...") adjusted_map = adjust_boundary.adjust() self._log("Adjusting boundaries... done") self._log("Adjusting boundaries: succeeded") return (True, adjusted_map)