语音03_TTS_C#示例代码

本文介绍如何使用 C# 实现基本的文本转语音(TTS)功能,包括直接播放一段文本及将文本转换为语音文件并保存到磁盘上。文中提供了具体的代码示例,有助于初学者快速掌握 TTS 技术的应用。

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

参考网址:
  (1)TTS-零基础入门-10分钟教你做一个语音功能
    http://blog.youkuaiyun.com/u010176014/article/details/47326413
  (2)、TTS-零基础入门之生成语音文件
    http://blog.youkuaiyun.com/u010176014/article/details/47428595
  (3)、TTS-零基础入门之停止列表中单条语音播报
    http://blog.youkuaiyun.com/u010176014/article/details/47747017
  (4)、TTS-零基础入门之语音模板化
    http://blog.youkuaiyun.com/u010176014/article/details/47364403
  (5)、TTS零基础入门之拒绝界面卡顿--加入线程
    http://blog.youkuaiyun.com/u010176014/article/details/47986101

 

 

1、播放一段 string

private void button2_Click(object sender, EventArgs e)
{
    SpVoice voice01 = new SpVoice();//该类是支持语音合成(TTS)的核心类。通过SpVoice对象调用TTS引擎,从而实现朗读功能。
    //SpeechVoiceSpeakFlags spFlags01 = SpeechVoiceSpeakFlags.SVSFDefault;// ZC: 同步方式(在语音播放完毕之前,窗口会假死)
    SpeechVoiceSpeakFlags spFlags01 = SpeechVoiceSpeakFlags.SVSFlagsAsync;//异步的播放方式

    string strSpeak = "阿发水电费布娃娃IE挖三说";
    voice01.Speak(strSpeak, spFlags01);
}

 

2、将string 转成 语音,然后存放到 磁盘上

private void button3_Click(object sender, EventArgs e)
{
    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;//对话框在关闭前是否还原当前目录

    if (saveFileDialog.ShowDialog() == DialogResult.OK)
    {
        SpeechStreamFileMode SpFileMode = SpeechStreamFileMode.SSFMCreateForWrite;
        SpFileStream SpFileStream = new SpFileStream();
        SpFileStream.Open(saveFileDialog.FileName, SpFileMode, false); // ZC: 保存文件 与 输出文件流 绑定

        string speakWeather = "阿发水电费布娃娃IE挖三说";
        SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;//异步的播放方式

        SpVoice voice = new SpVoice();
        voice.AudioOutputStream = SpFileStream;
        voice.Speak(speakWeather, SpFlags);
        voice.WaitUntilDone(Timeout.Infinite);
        SpFileStream.Close();
        MessageBox.Show("导出语音成功!");
    }
}

 

3、

4、

5、

 

转载于:https://www.cnblogs.com/CodeSkill/p/5852934.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值