如何让你的电脑说话/说出你输入的内容

Windows中有一个很酷的功能,可让您让您的计算机说话或说(computer talk or speak)任何话!此方法利用安装在Windows XPVista、7、8 和 10上的内置API ,称为(API)SAPI语音应用程序编程接口(Speech Application Programming Interface))。

Microsoft Speech API用于 Windows中内置的文本到语音辅助功能(accessibility feature)。您还可以编写调用API的程序,这将允许您让您的应用程序说话,但这是为开发人员准备的。

实际上,让您的计算机说出您想要的内容非常容易!在本文中,我将向您展示如何创建一个VBS 脚本(VBS script),该脚本将接收来自用户的文本输入(text input),然后说出它。我还将提到如何硬编码您想要说出的文本,然后安排该脚本在特定事件上运行,例如启动Windows或注销。

输入文字,说出讯息

让我们从一个简单的脚本开始,它会弹出一个对话框(dialog box),您可以在其中输入您希望 Windows 说出的内容。首先(First),继续打开记事本(Notepad)

第 1 步:(Step 1:) 将以下文本粘贴到新文档中:

Dim message, sapi
message=InputBox(“Enter the text you want spoken”,”Speak This”)
Set sapi=CreateObject(“sapi.spvoice”)
sapi.Speak message

请注意,当您从Web 浏览器复制文本并将其粘贴(web browser and paste)记事本(Notepad)中时,引号会引起问题。在保存文件之前,您需要检查并删除每个引号 (") 并重新输入引号。在下面的示例中,有六个引号。它应该类似于下(image below)

让电脑说话

现在,当您保存文件时,给它起任何名称,但请确保您还在名称后键入.VBS。接下来,对于Save as type框,选择All files而不是默认的Text Documents

让电脑说话

现在双击VBS 文件(VBS file),您应该会看到一个输入框(input box),您可以在其中输入您想要朗读的文本!输入一些内容(Type something),然后单击“确定”。

说话对话框

如果你做的一切都正确(everything right),你应该听到男性或女性的声音说出你的句子。如果您收到任何类型的错误消息(error message),请确保再次复制并粘贴文本并替换这些引号。

配置 SAPI 语音设置

这很有趣,但我们也可以使用不同的设置来配置我们的小型会说话的计算机。我们可以改变音量,声音说话的快慢,改变男性和女性的性别。这是一些示例代码(example code),我在其中添加了几行额外的行。

Dim message, sapi
message=InputBox(“Enter the text you want spoken”,”Speak This”)
Set sapi=CreateObject(“sapi.spvoice”)
Set sapi.Voice = sapi.GetVoices.Item(1)
sapi.Rate = 0
sapi.volume = 100
sapi.Speak message

默认速率(default rate)为 0 ,范围为 -10 到 10。-10 表示声音超级慢,10 表示声音超级快。音量默认为 100,范围为 0 到 100。以Set sapi.Voice 开头(Set sapi.Voice)的行将允许您更改为另一个声音,如果安装在您的系统上。

请注意,您可以选择的声音数量取决于操作系统(operating system)。在Windows 7中,只有一种声音,Microsoft Anna

安装的声音

Windows 10中,有两种声音:Microsoft David 和 Microsoft Zira(Microsoft David and Microsoft Zira),如下图所示。

微软戴维斯之声

微软齐拉语音

如果您的系统上只安装了一个语音,您必须将sapi.GetVoices.Item(1)更改为sapi.GetVoices.Item(0) ,否则当您尝试运行脚本时会收到错误消息。(error message)您还可以创建另一个记事本文档并将下面的代码粘贴(Notepad document and paste)到其中,它会告诉您安装了哪些声音。将其另存为 .VBS 文件,如上所示并运行它。

Set VObj = CreateObject(“SAPI.SpVoice”)
For Each Voice In VObj.getvoices
I = I + 1
msgbox “” & (I – 1) & ” – ” & Voice.GetDescription
Next

到目前为止,我们一直在使用这个弹出对话框(popup dialog)来输入文本,但您也可以简单地将您的消息输入到脚本文件(script file)中。如果您想安排脚本自动运行,这将很有用。显然,这可以用来恶作剧你的朋友和家人,而且效果很好。

想象一下有人打开电脑,听到电脑告诉他们“你好约翰(Hello John),我很困,今天请不要打扰我!” 当它启动时!我可以从经验中向您保证,这是歇斯底里的,您绝对应该尝试一下。

为了对消息进行硬编码,只需将最后一行更改为如下所示:

sapi.Speak “Hello John, I am very tired today!”

计划脚本文件

现在您已经为您的预期目标硬编码了您的消息,您只需在需要时运行它。如果您精通技术,则可以使用AutoIt之类的程序,它可以让您做一些极端的事情,例如在打开某个程序或最大化或最小化窗口时运行脚本文件。(script file)

我没有时间在这篇文章中深入探讨,但幸运的是, Microsoft有一个称为(Microsoft)任务计划程序(Task Scheduler)的内置功能,可以让您轻松地使用脚本完成一些非常复杂的事情。

我之前的帖子深入探讨了如何安排脚本文件在(script file)Windows中发生某些事件时运行。如果您在使脚本正常工作时遇到任何问题,请随时发表评论,我会尽力提供帮助。享受!



About the author

我是一名软件工程师,在 Xbox 行业拥有超过 10 年的经验。我专注于游戏开发和安全测试。我也是一位经验丰富的评论员,并且一直在为一些游戏界的知名人士开发项目,包括 Ubisoft、Microsoft 和 Sony。在空闲时间,我喜欢玩电子游戏和看电视节目。



Related posts