这是有关TTS的第三篇博客。欢迎有兴趣的移步看看。
TTS-零基础入门之语音模板化
TTS-零基础入门-10分钟教你做一个语音功能
那今天我们来一起探究一下,TTS如何 生成语音文件保存。也就是我们可以将语音文本保存成mp3,wav或其他音频格式保存起来。
主要有两步,一是组合要读的文本,第二步是将文本转成语音。
最近比较懒,基于上一个例子 新加了一个 生成语音文件的功能。
再来看一下界面。
主要代码如下:
<span style="font-family:KaiTi_GB2312;font-size:18px;"> /// <summary>
/// 将语音生成语音文件-2015年8月11日-马丹妹
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;//异步的播放方式
SaveFileDialog saveFileDialog = new SaveFileDialog();//提示用户选择文件的保存位置
saveFileDialog.Filter = "All files (*.*)|*.*|wav files (*.wav)|*.wav|mp3 files (*.mp3)|*.mp3";//保存文件的格式 例如 All files (*.*)|*.*
saveFileDialog.Title = "保存音频文件";//对话框的标题
saveFileDialog.FilterIndex = 2;//使用 FilterIndex 属性设置第一个显示给用户的类型筛选选项
saveFileDialog.RestoreDirectory = true;//对话框在关闭前是否还原当前目录
#region 获取要读的文本
string weather = txtWeather.Text;
string air = txtAir.Text;
string baoDing = GetTextResourceByKey("BaoDing");//同上
string speakWeather = string.Format(baoDing, weather, air);//将参数放入模板中
#endregion
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
SpeechStreamFileMode SpFileMode = SpeechStreamFileMode.SSFMCreateForWrite;
SpFileStream SpFileStream = new SpFileStream();
SpFileStream.Open(saveFileDialog.FileName, SpFileMode, false);
voice.AudioOutputStream = SpFileStream;
voice.Speak(speakWeather, SpFlags);
voice.WaitUntilDone(Timeout.Infinite);
SpFileStream.Close();
MessageBox.Show("导出语音成功!");
}
}</span>
这个Demo的全部文件已经上传至网盘,欢迎下载 。http://yunpan.cn/cdBHfJzuqZHaC 访问密码 96c9
也可以先听一下做这个Demo最后生成的音频~~