回答:
PTTSは、テキストを音声に変換するための非常に単純なMicrosoft Windowsコマンドラインプログラムです。Microsoft Text to Speech EngineおよびMicrosoft Speech SDKを使用する場合。Text to Speech Engineは、Windows XPと共にインストールされますが、音声の品質はやや劣ります。Jampalインストールプログラムには、2つのより良い音声が含まれています。(ウェブサイトから引用)
リダイレクトまたはテキストのパイプによってプログラムにテキストを入力するだけで使用できます。
ptts < file.txt
echo Hello there|ptts
echo Hello|ptts.exe
。テキストをコマンドの引数にする方法を好みますが、それを行う方法がない場合はこれで十分です。
これを行うための簡単なバッチスクリプトを作成しました。ここにソースコードがあります
@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を作成し、それをシステム音声で話します。実行が終了すると、スクリプトは削除され、別の実行のためのスペースが確保されます。
この質問はStack Overflowで尋ねられました。VBSスクリプトでの答えが好きです。
また、espeak
WindowsおよびLinuxで利用可能であり、OS Xに移植されています。組み込みのWindows TTSエンジンを使用するとは思わない。
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)
Add-Type -AssemblyName System.Speech
オブジェクトをインスタンス化する
$synth = New-Object -TypeName
System.Speech.Synthesis.SpeechSynthesizer
関数を呼び出して、引数として単語を入力します。
$synth.Speak('hey man')