コード例 #1
0
ファイル: feature.py プロジェクト: kimjj-geek/crank
    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])
コード例 #2
0
    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"])