def _analyze_world_features(self, x, f0_only=False): feat = FeatureExtractor( analyzer="world", fs=self.conf["fs"], fftl=self.conf["fftl"], shiftms=self.conf["shiftms"], minf0=self.sconf["minf0"], maxf0=self.sconf["maxf0"], ) # analyze world based features self.feats["f0"], self.feats["spc"], self.feats["ap"] = feat.analyze(x) self.feats["uv"], self.feats["cf0"] = convert_continuos_f0( self.feats["f0"]) self.feats["lf0"] = np.log(self.feats["f0"] + EPS) self.feats["lcf0"] = np.log(self.feats["cf0"]) if f0_only: return if self.conf["fftl"] != 256 and self.conf["fs"] > 16000: # NOTE: 256 fft_size sometimes causes errors self.feats["mcep"] = feat.mcep(dim=self.conf["mcep_dim"], alpha=self.conf["mcep_alpha"]) self.feats["npow"] = feat.npow() self.feats["cap"] = feat.codeap() cap = self.feats["cap"] self.feats["ccap"] = np.zeros(cap.shape) self.feats["cap_uv"] = np.zeros(cap.shape) for d in range(self.feats["ccap"].shape[-1]): cap[np.where(cap[:, d] == max(cap[:, d])), d] = 0.0 ( self.feats["cap_uv"][:, d], self.feats["ccap"][:, d], ) = convert_continuos_f0(cap[:, d])
def _analyze_world_features(self, x): feat = FeatureExtractor( analyzer="world", fs=self.conf["fs"], fftl=self.conf["fftl"], shiftms=self.conf["shiftms"], minf0=self.sconf["minf0"], maxf0=self.sconf["maxf0"], ) # analyze world based features self.feats["f0"], self.feats["spc"], self.feats["ap"] = feat.analyze(x) self.feats["mcep"] = feat.mcep(dim=self.conf["mcep_dim"], alpha=self.conf["mcep_alpha"]) self.feats["npow"] = feat.npow() self.feats["cap"] = feat.codeap() cap = self.feats["cap"] self.feats["ccap"] = np.zeros(cap.shape) self.feats["cap_uv"] = np.zeros(cap.shape) for d in range(self.feats["ccap"].shape[-1]): cap[np.where(cap[:, d] == max(cap[:, d])), d] = 0.0 self.feats["cap_uv"][:, d], self.feats[ "ccap"][:, d] = convert_continuos_f0(cap[:, d]) self.feats["uv"], self.feats["cf0"] = convert_continuos_f0( self.feats["f0"]) self.feats["lf0"] = np.log(self.feats["f0"] + EPS) self.feats["lcf0"] = np.log(self.feats["cf0"])