public void AppendText(string textToSpeak, PromptVolume volume) { Helpers.ThrowIfNull(textToSpeak, nameof(textToSpeak)); if (volume < PromptVolume.NotSet || volume > PromptVolume.Default) { throw new ArgumentOutOfRangeException(nameof(volume)); } // Validate that text can be added in this context ValidateElement(_elementStack.Peek(), SsmlElement.Text); Element prosodyElement = new(ElementType.Prosody, textToSpeak); _elements.Add(prosodyElement); string sVolumeLevel = null; switch (volume) { // No volume do not set the attribute case PromptVolume.NotSet: break; case PromptVolume.ExtraSoft: sVolumeLevel = "x-soft"; break; case PromptVolume.ExtraLoud: sVolumeLevel = "x-loud"; break; default: sVolumeLevel = volume.ToString().ToLowerInvariant(); break; } if (!string.IsNullOrEmpty(sVolumeLevel)) { prosodyElement._attributes = new Collection <AttributeItem>(); prosodyElement._attributes.Add(new AttributeItem("volume", sVolumeLevel)); } }
public void AppendText(string textToSpeak, PromptVolume volume) { Helpers.ThrowIfNull(textToSpeak, "textToSpeak"); if (volume < PromptVolume.NotSet || volume > PromptVolume.Default) { throw new ArgumentOutOfRangeException("volume"); } ValidateElement(_elementStack.Peek(), SsmlElement.Text); Element element = new Element(ElementType.Prosody, textToSpeak); _elements.Add(element); string value = null; switch (volume) { case PromptVolume.ExtraSoft: value = "x-soft"; break; case PromptVolume.ExtraLoud: value = "x-loud"; break; default: value = volume.ToString().ToLowerInvariant(); break; case PromptVolume.NotSet: break; } if (!string.IsNullOrEmpty(value)) { element._attributes = new Collection <AttributeItem>(); element._attributes.Add(new AttributeItem("volume", value)); } }
public PromptStyle(PromptVolume volume) { Volume = volume; }
public new void AppendText(string textToSpeak, PromptVolume volume) { StartStyle(new PromptStyle(volume)); HebrewPromptReader.ReadInto(this, textToSpeak); EndStyle(); }
private void Speak(string str, PromptRate rate, PromptVolume volume, bool quoted) { int speakRate = defaultRate; int speakVolume = defaultVolume; switch (rate) { case PromptRate.ExtraSlow: speakRate -= 2; break; case PromptRate.Slow: speakRate -= 1; break; case PromptRate.Medium: speakRate += 0; break; case PromptRate.Fast: speakRate += 1; break; case PromptRate.ExtraFast: speakRate += 2; break; } switch (volume) { case PromptVolume.Silent: speakVolume -= 50; break; case PromptVolume.ExtraSoft: speakVolume -= 20; break; case PromptVolume.Soft: speakVolume -= 10; break; case PromptVolume.NotSet: speakVolume += 0; break; case PromptVolume.Default: speakVolume += 0; break; case PromptVolume.Medium: speakVolume += 0; break; case PromptVolume.Loud: speakVolume += 10; break; case PromptVolume.ExtraLoud: speakVolume += 20; break; } if (quoted) { speakVolume += 10; } if (speakVolume > 100) { speakVolume = 100; } else if (speakVolume < 0) { speakVolume = 0; } if (speakRate > 10) { speakRate = 10; } else if (speakRate < -10) { speakRate = -10; } synth.Volume = speakVolume; synth.Rate = speakRate; synth.Speak(str); }
private void Speak(string str, PromptRate rate, PromptVolume volume, bool quoted) { int speakRate = defaultRate; int speakVolume = defaultVolume; switch (rate) { case PromptRate.ExtraSlow: speakRate -= 2; break; case PromptRate.Slow: speakRate -= 1; break; case PromptRate.Medium: speakRate += 0; break; case PromptRate.Fast: speakRate += 1; break; case PromptRate.ExtraFast: speakRate += 2; break; } switch (volume) { case PromptVolume.Silent: speakVolume -= 50; break; case PromptVolume.ExtraSoft: speakVolume -= 20; break; case PromptVolume.Soft: speakVolume -= 10; break; case PromptVolume.NotSet: speakVolume += 0; break; case PromptVolume.Default: speakVolume += 0; break; case PromptVolume.Medium: speakVolume += 0; break; case PromptVolume.Loud: speakVolume += 10; break; case PromptVolume.ExtraLoud: speakVolume += 20; break; } if (quoted) speakVolume += 10; if (speakVolume > 100) speakVolume = 100; else if (speakVolume < 0) speakVolume = 0; if (speakRate > 10) speakRate = 10; else if (speakRate < -10) speakRate = -10; synth.Volume = speakVolume; synth.Rate = speakRate; synth.Speak(str); }