ms Sprache von der Kommandozeile
-
22-07-2019 - |
Frage
Gibt es eine Möglichkeit, den MS Speech-Dienstprogramm von der Kommandozeile zu benutzen? Ich kann es auf einem Mac tun, kann aber nicht einen Hinweis auf sie auf Windows XP finden.
Danke.
Lösung
Ich glaube nicht, dass es ein Kommandozeilen-Tool für sie, aber jemand schrieb ein:
http://krolik.net/post/Say-exe-a-simple-command-line-text-to-speech-program-for-Windows.aspx
Andere Tipps
My 2 Cents auf dem Thema, Kommandozeile Einzeiler:
-
auf Win mit
PowerShell.exe
PowerShell -Command "Add-Type –AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('hello');"
-
auf Win mit
mshta.exe
mshta vbscript:Execute("CreateObject(""SAPI.SpVoice"").Speak(""Hello"")(window.close)")
-
auf OSX mit
say
say "hello"
-
Ubuntu Desktop (> = 2015) mit nativen
spd-say
spd-say "hello"
-
auf einem anderen Linux
- sehen href="https://askubuntu.com/a/501917"> auf
- Commandline-Funktion mit Google TTS (wget mp3-> mPlayer)
-
auf Raspberry Pi, Win, OSX mit Node-Rot
Es gibt ein schönes Open-Source-Programm, das tut, was Sie fragen für auf Windows Peters Text to Speech genannt finden Sie hier:
rem The user decides what to convert here
:input
cls
echo Type in what you want the computer to say and then press the enter key.
echo.
set /p text=
rem Making the temp file
:num
set num=%random%
if exist temp%num%.vbs goto num
echo ' > "temp%num%.vbs"
echo set speech = Wscript.CreateObject("SAPI.spVoice") >> "temp%num%.vbs"
echo speech.speak "%text%" >> "temp%num%.vbs"
start temp%num%.vbs
pause
del temp%num%.vbs
goto input
pause
Wenn Sie einen Befehl nicht finden können Sie immer wickeln Sie die System.Speech.Synthesis.SpeechSynthesizer von .Net 3.0 (vergessen Sie nicht zu referenzieren "System.Speech")
using System.Speech.Synthesis;
namespace Talk
{
class Program
{
static void Main(string[] args)
{
using (var ss = new SpeechSynthesizer())
foreach (var toSay in args)
ss.Speak(toSay);
}
}
}
Es gibt eine Möglichkeit, Powershell auch:
Erstellen Sie eine Datei mit dem Namen speak.ps1
param([string]$inputText)
Add-Type –AssemblyName System.Speech
$synth = New-Object System.Speech.Synthesis.SpeechSynthesizer
$synth.Speak($inputText);
Dann können Sie es nennen
.\speak.ps1 "I'm sorry Dave, I'm afraid I can't do that"
Ihre beste Ansatz ist ein kleines Kommandozeilen-Programm zu schreiben, das es für Sie tun. Es wäre nicht eine Menge Arbeit sein -. Nur Text eingelesen und dann die ms tts-Bibliothek verwenden
Eine weitere Alternative ist die Verwendung Cepstral . Es kommt mit einem netten Kommandozeilenprogramm und klingt Lichtjahre besser als die ms tts.
Es gibt auch Balabolca : http: // www. cross-plus-a.com/bconsole.htm
Es verfügt über ein Werkzeug balcon.exe
Kommandozeile. Sie können es wie folgt verwendet werden:
-
Liste Stimmen:
balcon.exe -l
-
Speak-Datei:
balcon.exe -n "IVONA 2 Jennifer" -f file.txt
-
Sprechen Sie über die Befehlszeile:
balcon.exe -n "IVONA 2 Jennifer" -t "hello there"
Weitere Befehlszeilenoptionen stehen zur Verfügung. Ich versuchte es auf Ubuntu mit SAPI5 in Wine installiert. Es funktioniert ganz gut.