コマンドラインからMS音声ユーティリティを使用する方法はありますか? Macではできますが、Windows XPでは参照できません。
ありがとう。
コマンドラインツールはないと思いますが、誰かが書きました:
http://krolik.net/post/Say-exe-a-simple-command-line-text-to-speech-program-for-Windows.aspx
トピックに関する私の2セント、コマンドラインのワンライナー:
winでPowerShell.exe
を使用
PowerShell -Command "Add-Type –AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('hello');"
winでmshta.exe
を使用
mshta vbscript:Execute("CreateObject(""SAPI.SpVoice"").Speak(""Hello"")(window.close)")
oSXではsay
を使用
say "hello"
Ubuntuデスクトップ(> = 2015)、ネイティブspd-say
を使用
spd-say "hello"
その他のLinux
raspberry Pi、Win、OSXでNode-Redを使用
Windowsで求めていることを実行する、Peter's Text to Speechと呼ばれる素敵なオープンソースプログラムがあります http://jampal.sourceforge.net/ptts.html
これには、標準入力からテキストを読み上げるptts.exeというバイナリが含まれているため、次のように実行できます。
echo hello there | ptts.exe
または、次の3行のVBSスクリプトを使用して、同様の基本的なTTSを取得できます。
'say.vbs
set s = CreateObject("SAPI.SpVoice")
s.Speak Wscript.Arguments(0), 3
s.WaitUntilDone(1000)
そして、次のようにコマンドラインから呼び出すことができます:
cscript say.vbs "hello there"
スクリプトルートを使用する場合は、変数タイムアウトとエラー処理を備えたより広範なコード例を見つけたいと思うでしょう。
それが役に立てば幸い。
Powershellの方法もあります:
Speak.ps1というファイルを作成します
param([string]$inputText)
Add-Type –AssemblyName System.Speech
$synth = New-Object System.Speech.Synthesis.SpeechSynthesizer
$synth.Speak($inputText);
その後、それを呼び出すことができます
.\speak.ps1 "I'm sorry Dave, I'm afraid I can't do that"
コマンドが見つからない場合は、常にラップできます System.Speech.Synthesis.SpeechSynthesizer .Net 3.0から(「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);
}
}
}
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
Balabolcaもあります: http://www.cross-plus-a.com/bconsole.htm コマンドがあります線ツールbalcon.exe
。次のように使用できます。
声のリスト:
balcon.exe -l
ファイルを読み上げる:
balcon.exe -n "IVONA 2 Jennifer" -f file.txt
コマンドラインから話す:
balcon.exe -n "IVONA 2 Jennifer" -t "hello there"
より多くのコマンドラインオプションが利用可能です。 WineにSAPI5がインストールされているUbuntuで試してみました。正常に動作します。
あなたの最善のアプローチは、あなたのためにそれを行う小さなコマンドラインユーティリティを書くことです。それは多くの作業ではありません-テキストを読み込んでms ttsライブラリを使用するだけです。
別の代替方法は Cepstral を使用することです。これは、Niceコマンドラインユーティリティが付属しており、ms ttsよりも何年も音が鳴りません。