示例#1
0
 bool Register()
 {
     if (Mbrola.Binding == MbrolaBinding.Library)
     {
         if (!MbrPlay.DatabaseExist(this.Database)
             ||
             !File.Exists(MbrPlay.RegGetDatabasePath(Database)))
         {
             string localPath = Path.Combine(FileBindings.VoicePath, this.Database);
             if (File.Exists(localPath))
             {
                 System.Text.StringBuilder sb = new System.Text.StringBuilder(260);
                 return(MbrPlay.RegisterDatabase(this.Database, localPath, this.Database, false, sb, 260));
             }
             else
             {
                 return(false);
             }
         }
         return(true);
     }
     else
     {
         return(File.Exists(DatabaseFile));
     }
 }
示例#2
0
 public bool Activate()
 {
     if (Register())
     {
         Mbrola.Init(MbrPlay.RegGetDatabasePath(Name));
         MbrPlay.SetDatabase(Name);
         MbrPlay.Play("_ 1\n_ 1\n", (int)MbrFlags.Wait | (int)MbrOut.Disabled, null, null);
         return(true);
     }
     else
     {
         return(false);
     }
 }
示例#3
0
        protected override void BeforeConsumption()
        {
            base.BeforeConsumption();
            pho = new StringBuilder();
            Console.WriteLine("synthesizer started");
            IsDoneConsuming = false;
//            Mbrola.Init("C:\\Documents and Settings\\Moti Z\\My Documents\\SharpDevelop Projects\\Qaryan.Core refactor\\Voices\\" + Voice.Name);
            MbrPlay.SetDatabase(voice.Name);
            myMbrThread        = new MbrThread();
            myMbrThread.Error += delegate(object sender, string error)
            {
                Error(this, error);
            };
            myMbrThread.Start(this);
        }
示例#4
0
 bool Register()
 {
     if (!MbrPlay.DatabaseExist(this.name))
     {
         string localPath = Path.Combine(FileBindings.VoicePath, this.name);
         if (File.Exists(localPath))
         {
             System.Text.StringBuilder sb = new System.Text.StringBuilder(260);
             return(MbrPlay.RegisterDatabase(this.name, localPath, this.name, false, sb, 260));
         }
         else
         {
             return(false);
         }
     }
     return(true);
 }
            public void Start(MBROLASynthesizer Synth)
            {
                callback   = new PlayCallbackProc(mbrCallback);
                this.Synth = Synth;
                t          = new Thread(delegate()
                {
                    while (Thread.CurrentThread.IsAlive)
                    {
                        if (Fragments.Count == 0)
                        {
                            Thread.Sleep(0);
                            continue;
                        }
                        string fragment = Fragments.Dequeue();
                        if (fragment == "EOF")
                        {
                            while (!Finished)
                            {
                                Thread.Sleep(0);
                            }
                            Eof = true;
                            Synth.Log("InvokeAudioFinished");
                            Synth.InvokeAudioFinished();
                            t.Abort();
                            return;
                        }
                        else
                        {
                            Synth.Log("Sent {0} characters to synth", fragment.Length);

                            MbrPlay.Play(fragment, (int)MbrFlags.Queued | (int)MbrFlags.Wait | (int)MbrFlags.MsgInit | (int)MbrFlags.MsgWrite | (int)MbrFlags.MsgEnd | (int)MbrFlags.Callback | (int)MbrOut.Disabled, null, callback);

                            StringBuilder error = new StringBuilder(256);
                            MbrPlay.LastError(error, 255);
                            if (error.Length > 0)
                            {
                                this.Error(this, error.ToString());
                            }
                        }
                    }
                });
                t.Name = "MbrThread";
                t.SetApartmentState(ApartmentState.STA);
                t.Start();
            }
        protected override void BeforeConsumption()
        {
            Log(LogLevel.MajorInfo, "Started");
            base.BeforeConsumption();
            pho             = new StringBuilder();
            IsDoneConsuming = false;
//            Mbrola.Init("C:\\Documents and Settings\\Moti Z\\My Documents\\SharpDevelop Projects\\Qaryan.Core refactor\\Voices\\" + Voice.Name);
            MbrPlay.SetDatabase((Voice.BackendVoice as MbrolaVoiceNew).Database);
            MbrPlay.SetVolumeRatio((Voice.BackendVoice as MbrolaVoiceNew).VolumeRatio);
            myMbrThread        = new MbrThread();
            myMbrThread.Error += delegate(object sender, string error)
            {
                if (Error != null)
                {
                    Error(this, error);
                }
            };
            myMbrThread.Start(this);
        }