Пример #1
0
        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);
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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);
            }
        }