TTS-零基础入门之生成语音文件

这是有关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  訪问password 96c9

也能够先听一下做这个Demo最后生成的音频~~



posted @ 2017-06-16 12:42  jzdwajue  阅读(456)  评论(0编辑  收藏  举报