OS X-Befehl „say“ für Windows

OS X-Befehl „say“ für Windows

Der sayBefehl ist vielleicht die überzeugendste Funktion des OS X-Terminals – er nimmt Text als Eingabe entgegen und spricht ihn über die Lautsprecher des Computers aus. Gibt es ein entsprechendes Befehlszeilentool unter Windows, entweder integriert oder über ein Drittanbieterprogramm?

Antwort1

PTTSist ein sehr einfaches Microsoft Windows-Befehlszeilenprogramm zum Umwandeln von Text in Sprache. Es verwendet die Microsoft Text to Speech Engine und das Microsoft Speech SDK. Die Text to Speech Engine wird mit Windows XP mit einer Stimme von etwas schlechter Qualität installiert. Das Jampal-Installationsprogramm enthält zwei besser klingende Stimmen. (Zitat von der Website)

Man kann es verwenden, indem man den Text einfach per Umleitung in das Programm eingibt oder indem man Text einfügt:

ptts < file.txt
echo Hello there|ptts

Antwort2

Ich hatte es satt, zu versuchen, veraltete Tools zum Laufen zu bringen, also habe ich erstellt wsay.

Es funktioniert so say, dass Sie verschiedene Stimmen auswählen und problemlos in eine Wave-Datei ausgeben können.

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

Prost

Antwort3

Ich habe hierfür ein einfaches Batch-Skript erstellt. Hier ist der Quellcode

@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

Speichern Sie dieses Skript in einer Datei namens „speak.bat“ und verschieben Sie es in ein Verzeichnis, auf das Ihre PATH-Variable verweist.

Dieses Programm erstellt mit Ihrer Eingabe ein einfaches VBS und spricht es dann mit der Systemstimme aus. Am Ende der Ausführung wird das Skript gelöscht, um Platz für eine weitere Ausführung zu schaffen.

Antwort4

Sie haben diese Bibliothek im SDK, wo Sie mit etwas persönlichem Aufwand wahrscheinlich ein fortgeschritteneres Dienstprogramm erstellen könnten.

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

Dies ist jedoch wahrscheinlich die bequemste Möglichkeit, da es nativ in das System integriert ist und über Powershell zugänglich ist.

Rufen Sie die Funktion aus dem Namespace auf (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')

verwandte Informationen