二、语音合成(TTS)

语音合成使用

平台:Microsoft Visual Stduio软件编程

1.添加添加引用:System.Speech Dll库

在这里插入图片描述

2. 添加命名空间 System.Speech.Synthesis就可以使用语音合成功能。

在这里插入图片描述
在正式调用相关语音包之前,先确认电脑是否已经安装好相关的语音包,避免出现错误。可以使用以下代码来查看,电脑中有哪些已经安装好的语音包。

SpeechSynthesizer synth = new SpeechSynthesizer();
foreach (InstalledVoice voices in synth.GetInstalledVoices()) //可查看本地电脑已经安装的语音包
  {
       VoiceInfo Info = voices.VoiceInfo;
       Console.Write("Name:"+Info.Name);
       Console.Write("   Culture:"+Info.Culture);
       Console.WriteLine("   Id:"+Info.ID);
  }
 voice.SelectVoice("Microsoft Tracy Desktop");//指定前面已经按照好的语音库,参数为语音库的名称

运行出现以下窗口,可以看到有哪些语音包已经被安装。
在这里插入图片描述

3.语音合成的使用方法

第一种方法:

SpeechSynthesizer Synth=new SpeechSythesizer();
  Synth.SelectVoice("Microsoft Huihui Desktop");
        Synth. SetOutputToDefaultAudioDevice();//设置本地设备为音频输出
        Synth.SpeakAsync(“文字转语音”)//异步方式播放
/*Synth.Speak(“文字转语音”);//同步方式播放
        Synth.Dispose();//不在使用语音合成释放资源,再次使用需要重新实例化*/

第二种方法:

SpeechSynthesizer Synth=new SpeechSythesizer();
Synth. SetOutputToDefaultAudioDevice();
Prompt str = new Prompt(“文字转语音”);
Synth.SpeakAsync(str);

第三种方法:

SpeechSynthesizer Synth=new SpeechSythesizer();
 Synth. SetOutputToDefaultAudioDevice();
 PromptBuilder str = new PromptBuilder();
 str.AppendAudio(“C:\\Test\\tts.wav”)//把字符串语音合成的音频保存在本地
 str.AppendText(“文字转语音”);
 synth.SpeakAsync(str);

最简单的用法(通过输入的字符,调用语音合成的功能):

   class TTS
    {
        SpeechSynthesizer synth = new SpeechSynthesizer();
        public void tts(string str)
        {
             if (str!="")
             {
                 synth.SetOutputToDefaultAudioDevice();//使用默认的语音包
                 synth.SpeakAsync(str);    //异步使用
             }
        }    
    }

4. 其他

(1) SpeechSynthesizer类属性:

  • Rate 获取或设置语速 -10到10之间
  • State 获取当前状态 返回2 表示暂停 0表示准备生成语音 1表示正在播音
  • Voice 获取当前语音信息(Age Culture Gender id Name等等)
  • Volume 获取或设置输出音量 0到100

(2) 常用方法:

  • Pause() 暂停语音合成
  • Resume() 继续之前暂停的语音合成
  • Dispose() 完成语音合成后释放资源
    (3) 常用事件:
  • SpeakCompleted 当完成语音合成时引发
  • StateChanged 当语音合成器状态改变时引发
  • SpeakStarted 当开始语音合成时引发

样例:

SpeechSynthesizer Synth=new SpeechSythesizer();
Synth.SetOutputToDefaultAudioDevice();
Synth.SpeakStarted += new EventHandler<SpeakStartedEventArgs>(synth_SpeakStarted);
Synth.SpeakAsync(“文字转语音”);
Static void synth_SpeakStarted(object sender, StateChangedEventArgs e)
 {
    Console.WriteLine("Speak operation started");
 }
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TTS即文本语音合成(Text-to-Speech),是一种将计算机生成的文本转换为自然语音的技术。而Python语言是一种非常流行的编程语言,因其易学易用的特点,被广泛应用于各种领域。 在Python中,我们可以使用第三方库来实现TTS功能。其中,最常用的库是pyttsx3。使用pyttsx3库,我们可以加载指定的语音引擎,并设置其属性,如语速、语调等。接下来,我们可以调用其say()方法,并传入文本内容,即可实现语音合成。 使用pyttsx3库进行TTS语音合成功能的实现,我们需要先安装该库。可以通过以下命令在终端中进行安装: ``` pip install pyttsx3 ``` 安装完成后,我们可以编写Python代码来实现TTS语音合成功能。例如,下面是一个简单的示例: ```python import pyttsx3 def text_to_speech(text): engine = pyttsx3.init() engine.say(text) engine.runAndWait() if __name__ == '__main__': text_to_speech('欢迎使用TTS语音合成!') ``` 在上述示例中,我们导入了pyttsx3库,并定义了一个text_to_speech()函数用于接收文本内容并进行语音合成。在main函数中,我们调用text_to_speech()函数,并传入欢迎语句进行合成。 当我们运行上述代码时,语音合成引擎会将输入的文本内容转换成自然语音,并播放出来。同时,我们还可以通过使用更多的参数和方法,对语音引擎的属性进行设定,以实现更加个性化的语音合成效果。 总之,Python的TTS语音合成功能可以通过pyttsx3库来实现,为我们提供了便捷的文本转语音的方式,可以应用于语音导航、语音交互等各种场景中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值