zoukankan      html  css  js  c++  java
  • C#文本转语音,可导出在本地mp3或者wav文件

    整体效果:

    talk is cheap,show you the code!

    private void Speak()
            {
    
                speech.Rate = rate;
                //speech.SelectVoice("Microsoft Lili");//设置播音员(中文)
                //speech.SelectVoice("Microsoft Anna"); //英文
                speech.Volume = value;
                string txt = "";
                this.Invoke((MethodInvoker) delegate
                {
                    txt = rtxt.Text;
                });
    
                speech.SpeakAsync(txt);//语音阅读方法
                speech.SpeakCompleted += speech_SpeakCompleted;//绑定事件
            }
    
            private void speech_SpeakCompleted(object sender, SpeakCompletedEventArgs e)
            {
                this.Invoke((MethodInvoker) delegate
                    {
                        btnTryListen.Text = "语音试听";
                    });
                
            }
    
    
            private void btnSaveFile_Click(object sender, EventArgs e)
            {
                string text = rtxt.Text;
    
                if (text.Trim().Length == 0)
                {
                    MessageBox.Show("空内容无法生成!", "错误提示");
                    return;
                }
    
                this.SaveFile(text);
            }
    
            /// <summary>
            /// 生成语音文件的方法
            /// </summary>
            /// <param name="text"></param>
            private void SaveFile(string text)
            {
                speech = new SpeechSynthesizer();
                var dialog = new SaveFileDialog();
                dialog.Filter = "*.wav|*.wav|*.mp3|*.mp3";
                dialog.ShowDialog();
    
                string path = dialog.FileName;
                if (path.Trim().Length == 0)
                {
                    return;
                }
                speech.SetOutputToWaveFile(path);
                speech.Volume = value;
                speech.Rate = rate;
                speech.Speak(text);
                speech.SetOutputToNull();
                MessageBox.Show("生成成功!在" + path + "路径中!", "提示");
    
            }
    

      

  • 相关阅读:
    axios解决调用后端接口跨域问题
    vuex的使用入门-官方用例
    vue使用axios实现前后端通信
    vue组件间通信用例
    vue-router的访问权限管理
    vue-router使用入门
    PHP 流程控制
    PHP 表达式和运算符
    PHP 预定义变量
    PHP 常量
  • 原文地址:https://www.cnblogs.com/y114113/p/14040751.html
Copyright © 2011-2022 走看看