public void synthVisemeReached(object sender, VisemeReachedEventArgs e)
 {
     if (e.Viseme != lastViseme)
     {
         lastViseme = e.Viseme;
         MouthPosChangedEventArgs args = new MouthPosChangedEventArgs();
         args.Pos = (Convert.ToString(positions[Convert.ToInt32(e.Viseme)]));
         OnMouthPosChanged(args);
     }
 }
 public static void mouthEventHandler(object sender, MouthPosChangedEventArgs e)
 {
     mouthlock.EnterWriteLock();
     try
     {
         PortQueue = e.Pos;
     }
     finally
     {
         mouthlock.ExitWriteLock();
     }
 }
        protected virtual void OnMouthPosChanged(MouthPosChangedEventArgs e)
        {
            EventHandler <MouthPosChangedEventArgs> handler = MouthPosChanged;

            handler?.Invoke(this, e);
        }