c#的功能十分强大,也非常方便。
这里,我和大家分享下发音程序的制作。
首先,你要准备两样东西:
1.TTS发音类库:DotNetSpeech.dll
2.TTS发音引擎:微软TTS5.1语音引擎(中文).msi
这里附录下载地址:
TTS发音引擎(微软TTS5.1语音引擎(中文).msi):
http://download.csdn.net/source/2127563
TTS发音类库(DotNetSpeech.dll):
该实例下载地址:
http://download.csdn.net/source/2143262
下载完DotNetSpeech.dll后,要手动添加到vs中。步骤如下:
把鼠标移到右上边的解决方案----》右击解决方案----》选择“添加引用”-----》会弹出一个窗口----》选择“游览”项
----》找到你下载的“DotNetSpeech.dll”,就可以了
接着是在程序中添加它的命名空间,如下:
using DotNetSpeech;
下面,给出个源代码和注释(是一个WinFor窗体程序):
首先,添加一个textBox命名为“textbox1”和一个Button命名为“button1”以及一个backgroundWorker控件命名为“backgroundWorker1”;
- ///
-
///发音线程,来管理发音;如果,多处发音,可以创建多个; -
- ///backgroundWorker的dowork事件,双击backgroundWorker1,
即可自动生成 -
/// -
/// -
/// -
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) -
{ -
SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync; -
SpVoice voice = new SpVoice(); -
voice.Rate = 0;//调整发音语速,可以为负数,如-3,0,5 -
voice.Speak(e.Argument.ToString(), spFlags); -
} -
-
/// -
/// 发音 -
/// -
/// -
void read(object content) -
{ -
try -
{ -
backgroundWorker1.RunWorkerAsync(content); -
} -
catch (Exception er) -
{ -
MessageBox.Show(er.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); -
} -
} -
-
/// -
/// 点击按钮发音 -
/// -
/// -
/// -
private void button1_Click(object sender, EventArgs e) -
{ -
read(textbox1.Text); -
}
如果你的程序,运行时,只能对英文或数字发音,而发不出中文。
说明你的电脑需要安装"微软TTS5.1语音引擎(中文).msi".下载地址如上。
安装完成后,点击控制面板----》选择“语音”-----》在“语言(L)”下面的下拉框里选择中文发音或有Chinese字样的选项
希望,对大家有帮助。