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


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

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

美女呀,离线,留言给我吧!
KWK001
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1417 威望:0 精华:0 注册:2016/8/17 12:49:00
[求助] 如何可以将朗读结果录制为一个wav文件  发帖心情 Post By:2016/8/18 20:29:00 [只看该作者]

按照示例六的代码,我想用示例七 朗读出来的结果,自定义保存路径,请问如何做呢?
图片点击可在新窗口打开查看此主题相关图片如下:捕获.jpg
图片点击可在新窗口打开查看

根据示例可以列出已经安装的语音库,客户用已选择语音库,设置语速,并可选择是异步还是同步朗读,然后自定义保存路径。


 回到顶部
美女呀,离线,留言给我吧!
KWK001
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1417 威望:0 精华:0 注册:2016/8/17 12:49:00
  发帖心情 Post By:2016/8/18 20:59:00 [只看该作者]

有老师在吗


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


 回到顶部
美女呀,离线,留言给我吧!
KWK001
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1417 威望:0 精华:0 注册:2016/8/17 12:49:00
  发帖心情 Post By:2016/8/18 22:55:00 [只看该作者]

大红袍老师,代码实施后,无声音。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:语音朗读.table


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


加好友 发短信
等级:童狐 帖子:286 积分:2345 威望:0 精华:0 注册:2013/8/30 3:37:00
  发帖心情 Post By:2016/8/18 23:16:00 [只看该作者]


[此贴子已经被作者于2016/8/18 23:26:21编辑过]

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


加好友 发短信
等级:童狐 帖子:286 积分:2345 威望:0 精华:0 注册:2013/8/30 3:37:00
  发帖心情 Post By:2016/8/18 23:24:00 [只看该作者]


[此贴子已经被作者于2016/8/18 23:26:35编辑过]

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


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

 试听,第一行,加上

 

speaker = New DotNetSpeech.SpVoice()


 回到顶部
美女呀,离线,留言给我吧!
KWK001
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1417 威望:0 精华:0 注册:2016/8/17 12:49:00
  发帖心情 Post By:2016/8/18 23:38:00 [只看该作者]

谢谢!大师 !  这么晚,幸苦了!

 回到顶部