【VBA】Speech.Speak 指定语音库
VBA Speech.Speak 指定语音库
Microsoft Speech API : https://docs.microsoft.com/zh-cn/previous-versions/windows/desktop/ms723602(v=vs.85)
Option Explicit
Public tts As Object '异步朗读时,tts变量要定义在声明区
Public Sub Speak(Name As String, Text As String, _
Optional SpeakAsync As Boolean, _
Optional SpeakXml As Boolean, _
Optional Purge As Boolean)
If tts Is Nothing Then
Set tts = CreateObject("SAPI.SpVoice")
End If
Set tts.voice = tts.GetVoices("Name=" & Name).Item(0)
tts.Rate = 3 '速度
tts.Volume = 100 '声音
Dim flag As Integer
flag = 0 'SpeechVoiceSpeakFlags.SVSFDefault
If SpeakAsync = True Then flag = flag + 1 'SpeechVoiceSpeakFlags.SVSFlagsAsync
If SpeakXml = True Then flag = flag + 8 'SpeechVoiceSpeakFlags.SVSFIsXML
If Purge = True Then flag = flag + 2 'SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak
tts.Speak Text, flag '异步朗读时,tts变量要定义在声明区
End Sub
调用
Sub btn_Click()
'Application.Speech.Speak "语音内容", True
Speak "Microsoft Huihui Desktop", "语音内容", True
End Sub
查看本机可用的语音库
Option Explicit
Public tts As Object '异步朗读时,tts变量要定义在声明区
Public Sub AvailableVoices()
If tts Is Nothing Then
Set tts = CreateObject("SAPI.SpVoice")
End If
Dim i As Integer
For i = 0 To tts.GetVoices.Count - 1
Set tts.Voice = tts.GetVoices.Item(i)
Debug.Print " " & i & " : " & tts.Voice.GetDescription
Next i
End Sub
本文作者:XKIND
本文链接:https://www.cnblogs.com/zhuzhongxing/p/14147075.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步