private void InitTTSObjects() { if (initFlag) { return; } initFlag = true; MBROLASynthesizerBase synth = (myEngine.Backend as MbrolaBackend).Synthesizer as MBROLASynthesizerBase; acmds = new PointPairList(); pcmds = new PointPairList(); pitch = new PointPairList(); pcomp = new PointPairList(); FujisakiProcessor fujisaki = (myEngine.Frontend as StandardFrontend).FujisakiProcessor; Parser parser = (myEngine.Frontend as StandardFrontend).Parser; fujisaki.PhraseCommand += OnPhraseCommand; fujisaki.AccentCommand += OnAccentCommand; fujisaki.PitchPointComputed += OnPitchPoint; fujisaki.PhraseComponentComputed += OnPhraseComponent; fujisaki.NoMoreData += delegate { updateGraph(fujisakiForm.zedGraphControl1); }; translit = new TranslitListener(parser); translit.TranslitUpdated += new StringEventHandler(translit_TranslitUpdated); mbrolaListener = new MBROLAListener(synth); mbrolaListener.TextUpdated += new StringEventHandler(mbrolaListener_TextUpdated); }
private void UpdateTTSOptions() { translit.Clear(); mbrolaListener.Clear(); acmds.Clear(); pcmds.Clear(); pitch.Clear(); pcomp.Clear(); FujisakiProcessor fujisaki = (myEngine.Frontend as StandardFrontend).FujisakiProcessor; Segmenter segmenter = (myEngine.Frontend as StandardFrontend).Segmenter; Phonetizer phonetizer = (myEngine.Frontend as StandardFrontend).Phonetizer; Parser parser = (myEngine.Frontend as StandardFrontend).Parser; fujisaki.Model.alpha = Settings.Default.FujisakiAlpha; fujisaki.Model.beta = Settings.Default.FujisakiBeta; fujisaki.Model.gamma = Settings.Default.FujisakiGamma; fujisaki.Model.Fb = Settings.Default.FujisakiFb; segmenter.RelaxAudibleSchwa = Settings.Default.RelaxAudibleSchwa; phonetizer.Options.DistinguishStrongDagesh = Settings.Default.DistinguishStrongDagesh; phonetizer.Options.Akanye = phonetizer.Options.Ikanye = Settings.Default.AkanyeIkanye; // phonetizer.Options.SingCantillation = checkedListBox1.GetItemChecked(5); parser.Options.EverydayRegister = Settings.Default.EverydayRegister; if (Settings.Default.Milel) { segmenter.DefaultStress = Word.Stress.Milel; } else { segmenter.DefaultStress = Word.Stress.Milra; } }
private void toolStripMenuItem5_Click(object sender, EventArgs e) { FujisakiProcessor fujisaki = (myEngine.Frontend as StandardFrontend).FujisakiProcessor; FujisakiParams paramsWindow = new FujisakiParams(); paramsWindow.Alpha = fujisaki.Model.alpha; paramsWindow.Beta = fujisaki.Model.beta; paramsWindow.Gamma = fujisaki.Model.gamma; paramsWindow.Fb = fujisaki.Model.Fb; if (paramsWindow.ShowDialog() == DialogResult.OK) { Settings.Default.FujisakiAlpha = fujisaki.Model.alpha = paramsWindow.Alpha; Settings.Default.FujisakiBeta = fujisaki.Model.beta = paramsWindow.Beta; Settings.Default.FujisakiGamma = fujisaki.Model.gamma = paramsWindow.Gamma; Settings.Default.FujisakiFb = fujisaki.Model.Fb = paramsWindow.Fb; Settings.Default.Save(); } }
void ITTSCentral.TextData(VOICECHARSET eCharacterSet, uint dwFlags, SDATA dText, object pNotifyInterface, Guid IIDNotifyInterface) { try { miniLog("TextData " + dText.AsString); StringCharProducer scp = new StringCharProducer(dText.AsString); Tokenizer tokenizer = new Tokenizer(); Parser parser = new Parser(); Segmenter segmenter = new Segmenter(); Phonetizer phonetizer = new Phonetizer(); FujisakiProcessor fujisaki = new FujisakiProcessor(); MBROLATranslator translator = new MBROLATranslator(); MBROLASynthesizer synthesizer = new MBROLASynthesizer(); synthesizer.Voice = translator.Voice = modeInfo.Voice; tokenizer.Run(scp); parser.Run(tokenizer); segmenter.Run(parser); phonetizer.Run(segmenter); fujisaki.Run(phonetizer); translator.Run(fujisaki); synthesizer.Run(translator); /* DelegateConsumer<MBROLAElement> delegc = new DelegateConsumer<MBROLAElement>(); * delegc.ItemConsumed += delegate(MBROLAElement item) * { * miniLog("dummy sees: " + item.ToString()); * }; * delegc.Run(translator); * delegc.Join();*/ Sapi4AudioTarget target = new Sapi4AudioTarget(audioObject); target.Run(synthesizer); } catch (Exception e) { Sapi4Engine.miniLog(e + ": " + e.Message); } }