/** * Copyright 2007 DFKI GmbH. * All Rights Reserved. Use is subject to license terms. * * This file is part of MARY TTS. * * MARY TTS is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, version 3 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ package marytts.signalproc.process; import marytts.util.signal.SignalProcUtils; /** * @author Oytun Türk * */ public class VoiceModificationParameters { public int fs; // Sampling rate in Hz public int lpOrder; // LP order protected double[] pscales; protected double[] tscales; protected double[] escales; protected double[] vscales; /** * */ public VoiceModificationParameters() { this(16000, 18, null, null, null, null); } public VoiceModificationParameters(int samplingRate, int LPOrder, double[] pscalesIn, double[] tscalesIn, double[] escalesIn, double[] vscalesIn) { initialise(samplingRate, LPOrder, pscalesIn, tscalesIn, escalesIn, vscalesIn); } public VoiceModificationParameters(int samplingRate, int LPOrder, double pscaleIn, double tscaleIn, double escaleIn, double vscaleIn) { double[] pscalesIn = new double[1]; double[] tscalesIn = new double[1]; double[] escalesIn = new double[1]; double[] vscalesIn = new double[1]; pscalesIn[0] = pscaleIn; tscalesIn[0] = tscaleIn; escalesIn[0] = escaleIn; vscalesIn[0] = vscaleIn; initialise(samplingRate, LPOrder, pscalesIn, tscalesIn, escalesIn, vscalesIn); } private void initialise(int samplingRate, int LPOrder, double[] pscalesIn, double[] tscalesIn, double[] escalesIn, double[] vscalesIn) { if (pscalesIn != null) { pscales = new double[pscalesIn.length]; System.arraycopy(pscalesIn, 0, pscales, 0, pscalesIn.length); } if (tscalesIn != null) { tscales = new double[tscalesIn.length]; System.arraycopy(tscalesIn, 0, tscales, 0, tscalesIn.length); } if (escalesIn != null) { escales = new double[escalesIn.length]; System.arraycopy(escalesIn, 0, escales, 0, escalesIn.length); } if (vscalesIn != null) { vscales = new double[vscalesIn.length]; System.arraycopy(vscalesIn, 0, vscales, 0, vscalesIn.length); } fs = samplingRate; lpOrder = SignalProcUtils.getLPOrder(fs); } }