コード例 #1
0
ファイル: FormantGrid.cpp プロジェクト: alekstorm/tala
FormantGrid Formant_downto_FormantGrid (Formant me) {
	FormantGrid thee = FormantGrid_createEmpty (my xmin, my xmax, my maxnFormants); cherror
	for (long iframe = 1; iframe <= my nx; iframe ++) {
		Formant_Frame frame = & my frame [iframe];
		double t = Sampled_indexToX (me, iframe);
		for (long iformant = 1; iformant <= frame -> nFormants; iformant ++) {
			Formant_Formant pair = & frame -> formant [iformant];
			FormantGrid_addFormantPoint (thee, iformant, t, pair -> frequency); cherror
			FormantGrid_addBandwidthPoint (thee, iformant, t, pair -> bandwidth); cherror
		}
	}
end:
	iferror forget (thee);
	return thee;
}
コード例 #2
0
ファイル: FormantGrid.cpp プロジェクト: alekstorm/tala
FormantGrid FormantGrid_create (double tmin, double tmax, long numberOfFormants,
	double initialFirstFormant, double initialFormantSpacing,
	double initialFirstBandwidth, double initialBandwidthSpacing)
{
	FormantGrid me = FormantGrid_createEmpty (tmin, tmax, numberOfFormants); cherror
	for (long iformant = 1; iformant <= numberOfFormants; iformant ++) {
		FormantGrid_addFormantPoint (me, iformant, 0.5 * (tmin + tmax),
			initialFirstFormant + (iformant - 1) * initialFormantSpacing); cherror
		FormantGrid_addBandwidthPoint (me, iformant, 0.5 * (tmin + tmax),
			initialFirstBandwidth + (iformant - 1) * initialBandwidthSpacing); cherror
	}
end:
	iferror forget (me);
	return me;
}
コード例 #3
0
ファイル: FormantGrid.cpp プロジェクト: georgiee/lip-sync-lpc
FormantGrid Formant_downto_FormantGrid (Formant me) {
	try {
		autoFormantGrid thee = FormantGrid_createEmpty (my xmin, my xmax, my maxnFormants);
		for (long iframe = 1; iframe <= my nx; iframe ++) {
			Formant_Frame frame = & my d_frames [iframe];
			double t = Sampled_indexToX (me, iframe);
			for (long iformant = 1; iformant <= frame -> nFormants; iformant ++) {
				Formant_Formant pair = & frame -> formant [iformant];
				FormantGrid_addFormantPoint (thee.peek(), iformant, t, pair -> frequency);
				FormantGrid_addBandwidthPoint (thee.peek(), iformant, t, pair -> bandwidth);
			}
		}
		return thee.transfer();
	} catch (MelderError) {
		Melder_throw (me, ": not converted to FormantGrid.");
	}
}
コード例 #4
0
ファイル: FormantGrid.cpp プロジェクト: georgiee/lip-sync-lpc
FormantGrid FormantGrid_create (double tmin, double tmax, long numberOfFormants,
	double initialFirstFormant, double initialFormantSpacing,
	double initialFirstBandwidth, double initialBandwidthSpacing)
{
	try {
		autoFormantGrid me = FormantGrid_createEmpty (tmin, tmax, numberOfFormants);
		for (long iformant = 1; iformant <= numberOfFormants; iformant ++) {
			FormantGrid_addFormantPoint (me.peek(), iformant, 0.5 * (tmin + tmax),
				initialFirstFormant + (iformant - 1) * initialFormantSpacing);
			FormantGrid_addBandwidthPoint (me.peek(), iformant, 0.5 * (tmin + tmax),
				initialFirstBandwidth + (iformant - 1) * initialBandwidthSpacing);
		}
		return me.transfer();
	} catch (MelderError) {
		Melder_throw ("FormantGrid not created.");
	}
}