public Phoneme(string text) : this() { Definition = PhonemeDefinition.Get(text); /*Text = text.ToLower(); * * if (Text.Last().IsNumeric()) { * Stress = int.Parse(Text.Last().ToString()); * Text = Text.Substring(0, Text.Length - 1); * Id = Text + Stress; * } * else { * Stress = -1; * Id = Text; * }*/ }
public double GetTransitionTime(PhonemeDefinition next) { if (ArticulationPlace == ArticulationPlaces.Palatal) { return(3); } if (ArticulationManner == ArticulationManners.Liquid) { return(3); } if (ArticulationManner == ArticulationManners.Vowel && next.ArticulationManner == ArticulationManners.Stop && (next.ArticulationPlace == ArticulationPlaces.Bilabial || next.ArticulationPlace == ArticulationPlaces.Velar)) { return(3); } if (/*next.ArticulationManner == ArticulationManners.Stop ||*/ next.ArticulationManner == ArticulationManners.Aspirate) { return(3); } if (next.TeethDistance >= 0 && TeethDistance >= 0) { var teethDistance = Math.Abs(TeethDistance - next.TeethDistance); if (teethDistance >= 3) { return(teethDistance); } } if (TonguePosition.X < 0 || TonguePosition.Y < 0 || next.TonguePosition.X < 0 || next.TonguePosition.Y < 0) { return(1); } if (ArticulationManner != ArticulationManners.Vowel && next.ArticulationManner == ArticulationManners.Vowel) { return(3); } if (next.ArticulationPlace == ArticulationPlaces.PostAlveolar) { return(2); } if (ArticulationPlace == ArticulationPlaces.PostAlveolar) { return(4); } /*if (phoneme.ArticulationManner == ArticulationManners.Affricate && phoneme.ArticulationPlace == ArticulationPlaces.PostAlveolar) { * return 2; * } * * if (ArticulationPlace == ArticulationPlaces.PostAlveolar) { * return 3; * }*/ var distance = TonguePosition.DistanceTo(next.TonguePosition); return(distance); /*foreach (var distance in ArticulationDistance) { * if (ArticulationPlace == distance.Item1 || ArticulationManner == distance.Item2) { * if (phoneme.ArticulationPlace == distance.Item1 || phoneme.ArticulationManner == distance.Item2) { * return distance.Item3; * } * } * }*/ /*foreach (var distance in Distance) { * if (Text == distance.Item1 || Text == distance.Item2) { * if (phoneme.Text == distance.Item1 || phoneme.Text == distance.Item2) { * return distance.Item3; * } * } * }*/ //return 0; }