qq_24987317
拨拨柚
采纳率50%
2020-12-11 09:15

求教如何通过批处理切换系统语音库

25
已采纳

 

有没有办法通过批处理文件切换语音库(因为需要在英式美式两种发音中切换)

然后在Excel中通过宏后台运行桌面的这个批处理文件

或者说有没有办法直接在Excel中通过相关代码让speech.speak选择某种语音库播报

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

12条回答

  • zte1055889498 XKIND 4月前
    Dim tts As Object
    
    Sub btn_Click()
        Speak "Microsoft Huihui Desktop", "语音内容"
    End Sub
    
    Sub Speak(name As String, text As String)
       Set tts = CreateObject("SAPI.SpVoice")
       Set tts.voice = tts.GetVoices("Name=" + name).Item(0)
       tts.Rate = 3 '速度
       tts.Volume = 100 '声音
       tts.Speak text, 1 '异步朗读时,tts变量要定义在声明区
    End Sub

    之前没有说清楚,数字 1 是异步播放声音,但是 变量要定义在声明区,才能发挥作用

    点赞 1 评论 复制链接分享
  • zte1055889498 XKIND 3月前

    后面写反了吧?是 停止念读单词A,直接念读单词B 吧?其实都是一样的,我们知道 原生 speech.speak 方法有个 purge 参数可以用来解决这种情况,同样的,在 SAPI.SpVoice 中与 purge 参数对应的值是 2 ,代码大概是这样的:

    tts.Speak "", 2
    点赞 1 评论 复制链接分享
  • zte1055889498 XKIND 4月前

    尝试将最后一句改为:

    objVoice.Speak "语音内容", 1
    点赞 1 评论 复制链接分享
  • zte1055889498 XKIND 4月前
    Set objVoice = CreateObject("SAPI.SpVoice")
    '这里的Microsoft Simplified Chinese是指微软中文语音库的名称,如果你调用了其他语音库,改成你安装的那个语音库的名称即可
    Set objVoice.Voice = objVoice.GetVoices("Name=Microsoft Simplified Chinese").Item(0)
    objVoice.Rate = 3 '速度
    objVoice.Volume = 100 '声音
    objVoice.Speak "语音内容"
    点赞 1 评论 复制链接分享
  • zte1055889498 XKIND 3月前
    可以尝试用 Regsvr32 注册 COM 组件
    32 位组件所在位置:%SystemRoot%\system32\Speech\Common\sapi.dll
    64 位组件所在位置:%SystemRoot%\SysWOW64\Speech\Common\sapi.dll
    点赞 评论 复制链接分享
  • qq_24987317 拨拨柚 3月前

    你好大神,我想再问一下,我在另一台同样2016,win64的电脑打开相同的文件,但是每次需要Tts播音的时候就说active控件不行,wps却可以正常使用

    点赞 评论 复制链接分享
  • qq_24987317 拨拨柚 3月前

    给你点赞!完美地解决了,蟹蟹~

    点赞 评论 复制链接分享
  • qq_24987317 拨拨柚 3月前

    你好,我想再问一下,虽然有了异步朗读,鼠标不会僵直,但是会堆积念读的内容,比如单词A很长,你听到一半就点了单词B,你想让他停止念读单词B,直接开始念读单词A,请问这可以做到吗?

    点赞 评论 复制链接分享
  • qq_24987317 拨拨柚 2月前

    你好大神,我想问一下,在有的电脑上,excel2016不会出现tts问题,但是excel2019正版反而弹出activex不能创建对象的提示,请问有解决办法吗,regsvr32注册并不能解决问题

    点赞 评论 复制链接分享
  • qq_24987317 拨拨柚 4月前

    非常感谢!厉害了我的哥!

    点赞 评论 复制链接分享
  • qq_24987317 拨拨柚 4月前

    你好,我试了一下,数字1没有声音,没反应,数字0,2正常发声但卡顿,请问是不是哪里出错了呢

    点赞 评论 复制链接分享
  • qq_24987317 拨拨柚 4月前

    你好,这个objvoice的单词播放有僵直,鼠标会忙,播放玩才能动别的按钮,有办法解决嘛?

    点赞 评论 复制链接分享