本文实例为大家分享了C#实现文字转语音的具体代码,供大家参考,具体内容如下:
客户提出要求,将文字内容转为语音,因为内网环境,没办法采用联网,在线这种方式,灵机一动,能否写一个简单的例子呢,搜索相关资料还真行,话不多说,有图有真相。
关键是,c#有现成的一个引用
右键点击项目 > 添加引用 > .Net > 找到System.Speech点击确定
playbutton代码:
if (string.IsNullOrWhiteSpace(textBox1.Text))
{
MessageBox.Show("内容不可为空");
return;
}
if (btnPlay.Text == "播放")
{
speech = new SpeechSynthesizer();
speech.Rate = trackSpeed.Value;
speech.Volume = trackVolumn.Value;
speech.SpeakCompleted += (s, e1) =>
{
btnPlay.Text = "播放";
btnPause.Enabled = false;
};
speech.SpeakAsync(textBox1.Text);
btnPause.Enabled = true;
btnPlay.Text = "停止";
}
else
{
speech.SpeakAsyncCancelAll();
btnPlay.Text = "播放";
btnPause.Enabled = false;
}
stopbutton代码
if (btnPause.Text == "暂停")
{
speech.Pause();
btnPause.Text = "继续";
}
else
{
speech.Resume();
btnPause.Text = "暂停";
}
savebuton代码
if (string.IsNullOrWhiteSpace(textBox1.Text))
{
MessageBox.Show("内容不可为空");
return;
}
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "mp3文件|*.mp3|wav文件|*.wav";
if (sfd.ShowDialog() == DialogResult.OK)
{
speech = new SpeechSynthesizer();
//speech.Rate = trackSpeed.Value;
//speech.Volume = trackVolumn.Value;
speech.SetOutputToWaveFile(sfd.FileName);
speech.Speak(textBox1.Text);
speech.SetOutputToNull();
MessageBox.Show("保存成功");
}
源码下载地址