从 Mac 切换到 Windows 10 — 文本转语音服务集成

从 Mac 切换到 Windows 10 — 文本转语音服务集成

Apple 紧密集成了符合 POSIX 的文件路径和命令行界面,以及其历来强大的硬件和制造标准,多年来我一直使用 Mac 平台。然而,Apple 最近对 MacOS 及其硬件的关注令人失望且缺乏热情,而联想 X1 Yoga 第二代引起了我的注意。

然而,切换操作系统有两个看似无法克服的领域让我担心。这篇文章重点介绍文本转语音操作系统集成。

我经历过微软 讲述人文档,但我发现这些文档毫无帮助。当然,我的用例与视障无关。我的用例之一是让讲述人仅有的阅读选定的文本,如下所述。例如在 2012 年超级用户帖子,提问者也遇到了同样的问题,但没有给出满意的答复。

我还想强调的是,“复制并粘贴到第三方 TTS 应用程序中”是不能令人满意的。在我的 Mac 上,我可以输入一个输入,然后获得一个 MP3 TTS 文件,中间不需要用户干预,这是我下面的 #1 场景。我也只使用开源工具执行此操作,除了“说”命令。

我一直都在利用 Mac 的文本转语音功能。我以三种特定方式使用它,但以下组合定义了我 90% 的用例。

  1. 转换电子邮件中重新格式化的文本,以便稍后阅读
    • 我目前的 Mac 工作流程:我从电子邮件中复制源代码,使用 vim 脚本删除 HTML,留下我希望阅读的文本。例如,此脚本插入“静音”命令, [slnc 2000]帮助我在听读文本时识别段落标记。
    • 文本标记完成后,我将格式化的文本传递给“说”命令,创建文本到语音的 AIFF。
    • 使用,然后我将其转换为 mp3 并使用投掷者,将 mp3 推送到我的播客客户端可以检索它的静态公共位置。
    • 感谢 bash 脚本,上面的操作只花了我 5 秒钟的时间。上次我从 Mac 切换到 Windows 时,我非常怀念这个功能。我使用了ReadAloud 的 TT 软件过去,但总是比上面的更笨拙。
  2. 实时校对我正在创建的电子邮件或文档。当我的 Mac 读出我写的文本时,我可以更轻松地发现错误。
    • 是的,我可以复制并粘贴到记事本中,但这样很麻烦。查看 Narrator 的界面,我发现很难弄清楚如何让 Narrator 跨应用程序(即 Outlook、Firefox、Word 等)阅读选定的文本。
  3. 使用 TTS 阅读长篇文章中选定的浏览器文本,我希望在执行不需要注意力的任务时听到这些内容。
    • 这与#2 类似,但是,如果阅读的文本引起了我的注意,我可能会决定值得为播客创建一个文件,然后我会转向#1 过程。
    • Firefox 有一个“阅读器”模式,它在 Windows 下有很大帮助并且运行良好。

我的问题是:

  1. 是否有类似 Mac 上的“say”命令的等效方法可以将 Win10 上的格式化文本文件传递给 MS 二进制文件进行处理?我明白了码头工人 图片这是 TTS 特有的,但似乎比较笨拙。
  2. 让 Windows 10 讲述人以与在任何应用程序中选择文本、调用键盘命令以及 Win10 执行 TTS 服务一样简单的方式读取选定的文本的本机方法是什么?

我承认,他们可能有不同的但类似的方法来实现上述功能。然而,“复制并粘贴到记事本”也是一个临时解决方案。我希望微软能像苹果一样做好无障碍功课和部署。


当我继续探索这个问题时,我会给自己一些笔记

  • 有多个 Python 包可以在 Python 脚本中启用 TTS。起初这看起来很有希望,但存在几个致命问题,重点关注以下 Python 方法:https://pythonprogramminglanguage.com/text-to-speech/
    • 我在安装 pyttsx 时遇到了问题。我使用 brew 安装了 py2.7.13 和 py3.6.1,使用 pip3 或 pip 无法成功安装任何一个版本。原始 pyttsx 是 py2,带有 py3 的分支。这太糟糕了,因为设计要求 python 模块使用本机 TTS 引擎。如果 pyttsx 可以在 python3 上运行,并且项目更加活跃,我会更愿意排除模块故障。您可以阅读我对建议答案的评论这里
    • pyTTS 使用 Google TTS。这听起来不错,但必须有互联网连接。由于我想匹配原生 TTS 功能,因此此选项无效。
  • 有一个 docker 选项,https://github.com/parente/espeakbox效果很好,但语音效果与 6 年前的 TTS 一样。虽然我尊重作者想要创建高性能 TTS 引擎的愿望,但我喜欢 Mac 的原生 TTS,我希望与此相提并论。
    • 使用其他非原生 TTS 选项,例如梅林或者节日,TTS 质量与 Mac 或 Windows 原生 TTS 不相上下。
  • 按照刘永福的建议,自动化本机 Windows TTS 确实看起来很容易,如以下页面所示:https://www.pdq.com/blog/powershell-text-to-speech-examples/.我距离解决方案又近了一步。

答案1

MS Office 在文本转语音功能集成到 Windows 之前(自 Vista 开始)就支持该功能。因此,您可以随时打开 MS Word 并让其为您朗读文档。只需将按钮添加Speak到功能区/快速访问工具栏,然后选择文本并单击它,或为朗读功能分配快捷方式即可

朗读菜单

讲述人也支持此功能。你只需查看快捷方式列表

Ctrl + Shift + Spacebar         Read the entire selected window
Ctrl + Alt + Spacebar           Read the items that are selected in the current window
Insert + Ctrl + G               Read a description of the items that appear next to the currently selected element
Ctrl                            Stop Narrator from reading text
Insert + F3                     Read the current character
Insert + F4                     Read the current word
Insert + F5                     Read the current line
Insert + F6                     Read the current paragraph
Insert + F7                     Read the current page
Insert + F8                     Read the current document
                                
Caps Lock + H                   Read document
Caps Lock + U                   Read next page
Caps Lock + Ctrl + U            Read current page
Caps Lock + Shift + U           Read previous page
Caps Lock + I                   Read next paragraph
Caps Lock + Ctrl + I            Read current paragraph
Caps Lock + Shift + I           Read previous paragraph
Caps Lock + O                   Read next line
Caps Lock + Ctrl + O            Read current line
Caps Lock + Shift + O           Read previous line
Caps Lock + P                   Read next word
Caps Lock + Ctrl + P            Read current word
Caps Lock + Shift + P           Read previous word

Swipe up with three fingers     Read current window
Swipe down with three fingers Start reading explorable text

聆听“讲述人”朗读的文本

如何告诉 Windows 8 讲述人仅阅读我明确告诉它阅读的内容,否则保持绝对沉默?

Windows 10 支持扫描模式,助您更快。可以通过Caps lock+切换Spacebar


但是 Narrator 无法很好地与 MS Office 配合使用,因此您需要将文本复制到外部应用程序。这可以通过 AutoHotkey 实现。它需要复制选定的文本并输入到下面的 VBS 脚本

Dim text, sapi
Set text = WScript.Arguments(0)
Set sapi = CreateObject("sapi.spvoice")
sapi.Speak text

愚蠢的极客技巧:如何让你的电脑和你说话

我认为阅读网页和阅读简单文本没有什么不同。但是看看这个如何使用讲述人阅读网页内容?

在 Windows 上可以找到一些其他的 TTS 应用程序这里


文本朗读输出可以用大量软件录制。如果您不想听到它,只需要保存输出文件,那么可以使用任何流混合软件,如 GraphStudioNext(包含在 K-lite 编解码器包中),并将输出流重定向到文件;如果需要,在此之前先转换为 mp3

GraphStudioNext

以上所有操作都可以用脚本自动完成。忘记批处理文件吧,PowerShell 非常强大,可以完成 Bash 可以完成的所有操作。它可以从文本中剥离格式并进行编辑,因此无需 vimscript。Windows 也有 vim。或者,如果需要,您可以随时在 Windows 或 Cygwin 上安装 bash。也可以使用 AutoHotKey 进行 GUI 自动化。

相关内容