不依赖于第三方程序,使用.net自带的System.Speech实现,添加引用至项目即可
实现功能:
将文字转为语音,实现播放、暂停、继续、停止;以及音量和语速调整等功能,并且支持将音频保存到本地
开发环境:
开发工具: Visual Studio 2013
.NET Framework版本:4.5
实现代码:
SpeechSynthesizer speech;
private void btnPlay_Click(object sender, EventArgs e)
{if (string.IsNullOrWhiteSpace(textBox1.Text)){MessageBox.Show("内容不可为空");return;}if (btnPlay.Text == "播放"){speech = new SpeechSynthesizer();speech.Rate = trackSpeed.Value;speech.Volume = trackVolume.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;}}
private void btnPause_Click(object sender, EventArgs e)
{if (btnPause.Text == "暂停"){speech.Pause();btnPause.Text = "继续";}else{speech.Resume();btnPause.Text = "暂停";}
}
private void btnSave_Click(object sender, EventArgs e)
{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 = trackVolume.Value;speech.SetOutputToWaveFile(sfd.FileName);speech.Speak(textBox1.Text);speech.SetOutputToNull();MessageBox.Show("保存成功");}
}
实现效果:
C# 文字转语音视频效果
由简入繁,拿来即用
更多精彩,请关注微信公众号: