• C#中的文本到语音


    本演示说明了如何使用c#.net Windows Forms应用程序中的system.speech库将文本转换为语音。
    Microsoft .NET框架提供System.Speech.Synthesis进行语音合成。要播放演示,您可以将Visual Studio工具箱中的Label,Combobox,TextBox和Button控件拖到winform中,然后按如下所示布局UI,以便从组合框中选择语音,然后从文本生成语音或将声音保存到文件中。

    首先,您应该创建语音变量。

    SpeechSynthesizer voice;

    接下来,双击您的表单,然后将代码添加到Load事件处理程序,使您可以为voice变量创建新实例。

            private void Form1_Load(object sender, EventArgs e)
            {
                voice = new SpeechSynthesizer();
            }

    将click事件处理程序添加到“ 阅读”按钮后,您可以使用以下c#代码从文本创建语音。

    try
        {
            //Select voice
            switch (cboSelectVoice.SelectedIndex)
            {
                case 0:
                    voice.SelectVoiceByHints(VoiceGender.NotSet);
                    break;
                case 1:
                    voice.SelectVoiceByHints(VoiceGender.Male);
                    break;
                case 2:
                    voice.SelectVoiceByHints(VoiceGender.Female);
                    break;
                case 3:
                    voice.SelectVoiceByHints(VoiceGender.Neutral);
                    break;
                default:
                    break;
            }
            voice.SpeakAsync(txtContent.Text);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

    将单击事件处理程序添加到“ 暂停”按钮中,使您可以暂停语音。

    try
        {
            voice.Pause();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

    将单击事件处理程序添加到“  继续” 按钮,使您可以继续讲话。

    private void btnResume_Click(object sender, EventArgs e)
            {
                try
                {
                    voice.Resume();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

    将声音保存到文件

    private void btnSave_Click(object sender, EventArgs e)
            {
                try
                {
                    //Save text to wav file
                    using (SaveFileDialog sfd = new SaveFileDialog())
                    {
                        sfd.Filter = "Wav files|*.wav";
                        sfd.Title = "Save to a wave file";
                        if (sfd.ShowDialog() == DialogResult.OK)
                        {
                            FileStream fs = new FileStream(sfd.FileName, FileMode.Create, FileAccess.Write);
                            voice.SetOutputToWaveStream(fs);
                            voice.Speak(txtContent.Text);
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

     阅读及保存测试

    “小说”一词最早出现于《庄子·外物》:「饰小说以干县令,其于大达亦远矣。」庄子所谓的「小说」,是指琐碎的言论,与小说观念相差甚远。直至东汉桓谭《新论》:「小说家合残丛小语,近取譬喻,以作短书,治身理家,有可观之辞。」班固《汉书.艺文志》将「小说家」列为十家之后,其下的定义为:「小说家者流,盖出于稗官,街谈巷语,道听途说[4]者之所造也。」才稍与小说的意义相近。而中国小说最大的特色,便自宋代开始具有文言小说与白话小说两种不同的小说系统。文言小说起源于先秦的街谈巷语,是一种小知小道的纪录。在历经魏晋南北朝及隋唐长期的发展,无论是题材或人物的描写,文言小说都有明显的进步,形成笔记与传奇两种小说类型。而白话小说则起源于唐宋时期说话人的话本,故事的取材来自民间,主要表现了百姓的生活及思想意识。但不管文言小说或白话小说都源远流长,呈现各自不同的艺术特色。

    https://files.cnblogs.com/files/win32pro/语音导出测试.zip

  • 相关阅读:
    pymongo中的连接操作:Connection()与MongoClient()
    Dynamics CRM2016 新功能之从CRM APP通过电子邮件发送页面链接
    [开发工具]_[Sublime Text 2]_[配置C++编译执行环境]
    struts2 全局拦截器,显示请求方法和參数
    A. Polo the Penguin and Strings
    linux驱动之LED驱动_1
    dbgrid控件如何能在左边显示行号?
    软件提示“没有活动事务”原因以及解决办法
    刷新dbgrid 而不失去当前行位置
    用ClientDataSet更新数据表,怎样自动生成行号? [问题点数:40分]
  • 原文地址:https://www.cnblogs.com/liessay/p/12736308.html
Copyright © 2020-2023  润新知