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 + "路径中!", "提示");
    
            }
    

      

  • 相关阅读:
    常用的adb命令
    Jmeter之计数器
    Jmeter跨线程组传递变量
    Jmeter的属性和变量
    Jmeter之关联——常用提取器
    Jmeter常用的逻辑控制器
    HDU 1262 寻找素数对 模拟题
    HDU 1431 素数回文 离线打表
    HDU 2553 N皇后问题
    HDU 2093 考试排名 模拟题
  • 原文地址:https://www.cnblogs.com/y114113/p/14040751.html
Copyright © 2011-2022 走看看