適用於 Windows 的 OS X「say」指令

適用於 Windows 的 OS X「say」指令

say命令可能是 OS X 終端機最引人注目的功能 - 它將文字作為輸入並透過電腦的揚聲器說出它。 Windows 上是否有內建或透過第三方程式提供的等效命令列工具?

答案1

PTTS是一個非常簡單的 Microsoft Windows 命令列程序,用於將文字轉換為語音。如果使用 Microsoft Text to Speech Engine 和 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')

相關內容