private void ShowSpeechTypeVariation(SpeechVisualizer visualizer, SpeechTypeSpecification speechTypeSpecification, double deltaTime)
        {
            double time     = 0;
            double lastTime = speechTypeSpecification.TimeSpeechTypeTupleList.Last().Item1;

            visualizer.MarkerList = new List <SoundMarker>();
            while (time < lastTime)
            {
                SoundMarker marker = new SoundMarker();
                marker.Type      = SoundMarkerType.HorizontalLine;
                marker.Thickness = 4;
                marker.Start     = (float)(time - 0.25 * deltaTime);
                marker.End       = (float)(time + 0.25 * deltaTime);
                SpeechType speechType = speechTypeSpecification.GetSpeechType(time);
                if (speechType == SpeechType.Silence)
                {
                    marker.Color = Color.Yellow;
                    marker.Level = 28000;
                }
                else if (speechType == SpeechType.Voiced)
                {
                    marker.Color = Color.Lime;
                    marker.Level = 32000;
                }
                else
                {
                    marker.Color = Color.Red;
                    marker.Level = 30000;
                }
                visualizer.MarkerList.Add(marker);
                time += deltaTime;
            }
            visualizer.Invalidate();
        }
 private void ShowPitchMarks(SpeechVisualizer visualizer, List <double> pitchMarkTimeList)
 {
     foreach (double pitchMarkTime in pitchMarkTimeList)
     {
         SoundMarker marker = new SoundMarker();
         marker.Type      = SoundMarkerType.VerticalLine;
         marker.Thickness = 2;
         marker.Start     = -30000;
         marker.End       = 30000;
         marker.Color     = Color.Yellow;
         marker.Level     = pitchMarkTime;
         visualizer.MarkerList.Add(marker);
     }
     visualizer.Invalidate();
 }
Exemplo n.º 3
0
 protected void DrawMarker(Graphics g, SoundMarker marker)
 {
     using (Pen markerPen = new Pen(Color.Empty))
     {
         markerPen.Color = marker.Color;
         markerPen.Width = marker.Thickness;
         if (marker.Type == SoundMarkerType.HorizontalLine)
         {
             float yPlot      = GetSoundPlotYAtY(marker.Level);
             float xPlotStart = GetPlotXAtX(marker.Start);
             float xPlotEnd   = GetPlotXAtX(marker.End);
             g.DrawLine(markerPen, xPlotStart, yPlot, xPlotEnd, yPlot);
         }
         else if (marker.Type == SoundMarkerType.VerticalLine)
         {
             float xPlot      = GetPlotXAtX(marker.Level);
             float yPlotStart = GetSoundPlotYAtY(marker.Start);
             float yPlotEnd   = GetSoundPlotYAtY(marker.End);
             g.DrawLine(markerPen, xPlot, yPlotStart, xPlot, yPlotEnd);
         }
     }
 }