注册 登录
编程论坛 VB6论坛

如何让Wav音频文件中间产生3秒暂停

yuma 发布于 2020-12-13 19:04, 2006 次点击
朗读时暂停朗读3秒很容易做到,但生成的Wav音频文件中如何暂停3秒(也就是产生3秒无声的音频)?

程序代码:
Const SSFMCreateForWrite = 3
Dim Str1,Str2
Str1 = "测试字符串1" '这里输入要输出的声音
Str2 = "测试字符串2" '这里输入要输出的声音
Set objVoice = CreateObject("SAPI.SpVoice")
Set objFile = CreateObject("SAPI.SpFileStream.1")
objVoice.Rate = 1  '获取和设置声音说话速度。
objVoice.Volume = 100   '获取并设置相应的体积(响度)的语音水平。
objVoice.AllowAudioOutputFormatChangesOnNextSet = False  '获取并设置标志,指定是否允许调整声音输出格式的音频自动。
objVoice.Speak Str1
Wscript.sleep 3000   '朗读时产生3秒暂停
objVoice.Speak Str2
objFile.Open "测试声音.wav", SSFMCreateForWrite '输出路径
Set objVoice.AudioOutputStream = objFile
objVoice.Speak Str1
'?????????????????????????如何让Wav音频文件中间产生3秒暂停???????????????????
objVoice.Speak Str2
objFile.Close
Set objVoice.AudioOutputStream = Nothing
Set objVoice = Nothing
3 回复
#2
风吹过b2020-12-14 20:38
方法1:找一个能产生3秒无声的文件,插到中间一并生成声音文件。估计很难实现。
方法2:事先弄一个3秒无声的文件,然后把需要生成的声音文件,分别生成单独的文件,然后找个外部声音拼接软件,把几个文件合并起来。
       外部接接软件找不到的话,可以看一下格式工厂的所带的文件,看看它是怎么调用的。

#3
hello9009262021-02-21 09:07
录个空白3秒文件可不可以呢
#4
yuma2021-02-21 09:47
这个问题我早已解决。

VB6生成3秒空白wav音频

用一楼代码生成朗读wav

用命令行工具合并。

我的成品演示:
只有本站会员才能查看附件,请 登录
1