Foxtable(狐表)用户栏目专家坐堂 → [求助] 如何可以将朗读结果录制为一个wav文件


  共有2182人关注过本帖树形打印复制链接

主题:[求助] 如何可以将朗读结果录制为一个wav文件

帅哥哟,离线,有人找我吗?
大红袍
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/18 21:14:00 [显示全部帖子]

 做一个按钮

 

Dim dlg As new SaveFileDialog
dlg.Filter = "语音|*.wav"
If dlg.ShowDialog = DialogResult.OK Then
    Dim yy As WinForm.ListBox = e.Form.Controls("ListBox1")
    Dim vl As String = e.Form.Controls("txtContent").Value '获得要朗读的文本
    Speaker.Rate = e.Form.Controls("boxSpeed").Value '设置语速
    Speaker.Voice = Speaker.GetVoices(String.Empty,String.Empty).Item(yy.SelectedIndex) '选择语音库
    Speaker.Speak("", DotNetSpeech.SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak) '停止之前的朗读
   
    Dim Stream As new DotNetSpeech.SpFileStreamClass()
    Stream.Open(dlg.FileName, DotNetSpeech.SpeechStreamFileMode.SSFMCreateForWrite, False)
    Speaker.AudioOutputStream = Stream
   
    If  e.Form.Controls("rdoAsync").Checked Then
        Speaker.Speak(vl, DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync) '异步朗读
    Else
        Speaker.Speak(vl, DotNetSpeech.SpeechVoiceSpeakFlags.SVSFDefault) '同步朗读
    End If
    Stream.Close()
End If


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/18 23:11:00 [显示全部帖子]

哦,不能用异步,必须用同步

 

Dim dlg As new SaveFileDialog
dlg.Filter = "语音|*.wav"
If dlg.ShowDialog = DialogResult.OK Then
    Dim yy As WinForm.ListBox = e.Form.Controls("ListBox1")
    Dim vl As String = e.Form.Controls("txtContent").Value '获得要朗读的文本
    Speaker.Rate = e.Form.Controls("boxSpeed").Value '设置语速
    Speaker.Voice = Speaker.GetVoices(String.Empty,String.Empty).Item(yy.SelectedIndex) '选择语音库
    Speaker.Speak("", DotNetSpeech.SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak) '停止之前的朗读
   
    Dim Stream As new DotNetSpeech.SpFileStreamClass()
    Stream.Open(dlg.FileName, DotNetSpeech.SpeechStreamFileMode.SSFMCreateForWrite, False)
    Speaker.AudioOutputStream = Stream
   
   
    Speaker.Speak(vl, DotNetSpeech.SpeechVoiceSpeakFlags.SVSFDefault) '同步朗读
    Stream.Close()
End If


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/18 23:26:00 [显示全部帖子]

 试听,第一行,加上

 

speaker = New DotNetSpeech.SpVoice()


 回到顶部