Windows 的 OS X `say` 命令

Windows 的 OS X `say` 命令

命令say可能是 OS X 终端最引人注目的功能 - 它以文本作为输入并通过计算机扬声器将其读出。Windows 上是否有任何等效的命令行工具,无论是内置的还是通过第三方程序?

答案1

肺结核是一个非常简单的 Microsoft Windows 命令行程序,用于将文本转换为语音。它使用 Microsoft 文本转语音引擎和 Microsoft Speech SDK。文本转语音引擎随 Windows XP 安装,但声音质量较差。Jampal 安装程序包含两个声音质量较好的声音。(引自网站)

只需通过重定向或管道将文本输入到程序中即可使用它:

ptts < file.txt
echo Hello there|ptts

答案2

我厌倦了尝试让过时的工具发挥作用,因此我创建了wsay

它的工作原理是say,您可以选择不同的声音,然后可以轻松地输出到波形文件。

https://github.com/p-groarke/wsay/releases

干杯

答案3

我创建了一个简单的批处理脚本来执行此操作。以下是源代码

@echo off
echo Dim Speak >> %HOMEPATH%\speak.vbs
echo Set Speak=CreateObject("sapi.spvoice") >> %HOMEPATH%\speak.vbs
echo Speak.Speak "%*">> %HOMEPATH%\speak.vbs
%HOMEPATH%\speak.vbs
del %HOMEPATH%\speak.vbs

将此脚本保存在名为“speak.bat”的文件中,并将其移动到 PATH 变量引用的目录中。

此程序根据您的输入创建一个简单的 vbs,然后使用系统语音朗读。执行结束时,脚本将被删除,以便为下一次执行留出空间。

答案4

他们在 SDK 中有这个库,您可以通过一些个人努力来制作更高级的实用程序。

https://www.microsoft.com/en-us/download/details.aspx?id=27224

虽然这可能是最方便的方式,因为它是内置于系统中的,并且可以通过 powershell 访问。

从命名空间调用该函数(https://msdn.microsoft.com/en-us/library/gg145021(v=vs.110).aspx

# Call the function from the namespace
Add-Type -AssemblyName System.Speech

# Instantiate the Object
$synth = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer

# Call the function and input your words as it's argument.
$synth.Speak('hey man')

相关内容