以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助] 如何可以将朗读结果录制为一个wav文件 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89304)
|
-- 作者:KWK001
-- 发布时间:2016/8/18 20:29:00
-- [求助] 如何可以将朗读结果录制为一个wav文件
按照示例六的代码,我想用示例七 朗读出来的结果,自定义保存路径,请问如何做呢? 此主题相关图片如下:捕获.jpg
根据示例可以列出已经安装的语音库,客户用已选择语音库,设置语速,并可选择是异步还是同步朗读,然后自定义保存路径。
|
-- 作者:KWK001
-- 发布时间:2016/8/18 20:59:00
--
有老师在吗
|
-- 作者:大红袍
-- 发布时间: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
-- 发布时间:2016/8/18 22:55:00
--
大红袍老师,代码实施后,无声音。
|
-- 作者:大红袍
-- 发布时间: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
-- 发布时间:2016/8/18 23:16:00
--
[此贴子已经被作者于2016/8/18 23:26:21编辑过]
|
-- 作者:wangyinming
-- 发布时间:2016/8/18 23:24:00
--
[此贴子已经被作者于2016/8/18 23:26:35编辑过]
|
-- 作者:大红袍
-- 发布时间:2016/8/18 23:26:00
--
试听,第一行,加上
speaker = New DotNetSpeech.SpVoice()
|
-- 作者:KWK001
-- 发布时间:2016/8/18 23:38:00
--
谢谢!大师 ! 这么晚,幸苦了!
|