C# Speech 语音文件生成

该文介绍了如何在C#中使用System.Speech库进行语音合成,包括设置音量和朗读速度,选择发音人,以及将语音保存为文件。示例代码展示了点击按钮后,程序会读出textBox1中的文本,并可选择特定语音包如MicrosoftHuihuiDesktop。另外,文章还提及了如何将合成的语音存储为.wav文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、依赖搭建

  • 添加引用包 System.Speech
  • 工程引用 using System.Speech.Recognition;

2、发声

        private void button1_Click(object sender, EventArgs e)
        {
            using (SpeechSynthesizer synthesizer = new SpeechSynthesizer())
            {
                //synthesizer.Volume = Convert.ToInt32(textBox3.Text);     //设置音量
                //synthesizer.Rate = Convert.ToInt32(textBox4.Text);    //设置朗读速度
                synthesizer.GetInstalledVoices().ToList().ForEach(voice => Console.WriteLine(voice.VoiceInfo.Name));
                synthesizer.SelectVoice("Microsoft Huihui Desktop");
                synthesizer.Speak(textBox1.Text);
            }
        }
synthesizer.GetInstalledVoices 获取当前安装支持的语音包名称

获取列表

  • Microsoft Huihui Desktop
  • Microsoft Zira Desktop

3、语音文件存储

        private void button2_Click(object sender, EventArgs e)
        {
            using (SpeechSynthesizer reader = new SpeechSynthesizer())
            {
                //set some settings
                reader.Volume = 100;
                reader.Rate = 0; //medium
                reader.SetOutputToWaveFile("1.wav");
                reader.Speak(textBox1.Text);
            }
        }

注意:

  • 使用using才能在结束后自动保存语音文件
在使用前,必须保证smartread7.dll文件在与程序相同的目录下 注意点 由于从2.1版本中加入了初始化认证函数, 不同的注册用户的smartread7.dll文件是不相同的, 如果你将smartread7.dll文件复制到系统文件夹下, 如果其他注册用户也将其注册的smartread7.dll文件复制到系统文件夹下, 就会覆盖掉你的注册smartread7.dll文件, 引起你的程序调用会出现未注册信息. 所以如果你调用初始化认证函数, 最好将smartread7.dll文件复制到你的程序相同的文件夹下. SmartRead_Initial 从语音朗读开发包2.4开始,不支持 SmartRead_Initial函数 SmartRead_InitialAuth 用于初始化语音并认证功能,必须在最初调用,进行认证 SmartRead_Close 用于关闭语音功能,在程序退出前调用,释放资源 SmartRead_Speak 朗读函数,分别有阻塞调用,非阻塞调用,并且在朗读每一句可以定义所朗读的每一句的 语音(中文或者英文),语速,音量,也可以采用缺省的参数(详见程例) SmartRead_Stop 停止朗读函数 SmartRead_SetDialog 用于打开语音设置对话框,改变语音,音量,语速等,并且可以连接到自定义的语音库下载站点 SmartRead_Version 显示开发包版本信息 SmartRead_SpeakToWave 朗读文本到WAVE文件,可以自己设置所输出的WAVE文件,并且朗读时可以设置语音,语速,音量和格式 SmartRead_GetLocationInfo 获得当前朗读到的位置,以百分数表示 SmartRead_SetVolume 在朗读中改变音量 SmartRead_SetSpeed 在朗读中改变语速 SmartRead_PauseORContinue 在朗读中实现暂停/继续功能 SmartRead_GetVoiceDeviceNum 获得声卡数目信息 SmartRead_GetVolume 在朗读中获得音量 SmartRead_GetSpeed 在朗读中获得语速 SmartRead_HideMessageBox 隐藏信息提示框函数 SmartRead_SetMode 设置播放模式函数 SmartRead_SetParameter 设置参数 SmartRead_QueueNext 队列朗读播放下一条 SmartRead_QueueStatistics 统计目前队列已经朗读个数和总的个数 SmartRead_GetErrCode 获得错误代码 SmartRead_GetErrMsg 获得错误信息,英文表示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值