日期:2014-05-18  浏览次数:20978 次

有用DotNetSpeech.dll把文本转换成声音的同学么?小弟有一事卡住,求解。
小弟成功的用这个东西把文本转换成声音读出来。可是小弟在文本框里输入数字的时候
比如,我输个“123”,我要的读出的效果是“1”,“2”,“3”,但是程序读的是“一百二十三”,郁闷死我了,请问改什么属性可以转成这样的.



 private void button1_Click(object sender, EventArgs e)
  {
  try
  {
   
  SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
  SpVoice Voice = new SpVoice();
   
  Voice.Voice = Voice.GetVoices(null, null).Item(0);
   
   
  Voice.Speak(this.textBox1.Text,SpFlags);
  }
  catch (Exception er)
  {
  MessageBox.Show("An Error Occured!", "SpeechApp", MessageBoxButtons.OK, MessageBoxIcon.Error);
  }
  }


------解决方案--------------------
这还不简单,写个循环调用就行了:

C# code

Regex regex = new Regex("^[0-9]+$");
if (regex.IsMatch(this.textBox1.Text.Trim()) 
{
    for (int i = 0; i < this.textBox1.Text.Length; i++)
    {
         Voice.Speak(this.textBox1.Text[i].ToString(),SpFlags);
    }
}