Windows用のOS Xの `say`コマンド


22

このsayコマンドは、おそらくOS X端末の最も魅力的な機能です。テキストを入力として受け取り、コンピューターのスピーカーで読み上げます。ビルトインまたはサードパーティプログラムを介して、Windowsに同等のコマンドラインツールはありますか?



2
状況が発生した場合に備えて、コマンドラインのボリューム変更アプリケーションを作成する必要があるかもしれません。
ヒンクル

回答:


5

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

@bubu、ドキュメントを誤解していない限り、このソフトウェアはファイルからしか話せないようです。中間ファイルを作成せずにコマンドラインからテキストを直接受け入れる方法があるかどうか知っていますか?
ヒンクル

2
Nvm、それを理解しました。それをプログラムにパイプする必要があります。例えばecho Hello|ptts.exe。テキストをコマンドの引数にする方法を好みますが、それを行う方法がない場合はこれで十分です。
ヒンクル

それは方法の一つ標準入力から読み取るようはい@nhinkleそれを介してパイプにある
ブブ

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を作成し、それをシステム音声で話します。実行が終了すると、スクリプトは削除され、別の実行のためのスペースが確保されます。


投稿を編集して、この仕組みと使用方法を説明してください。また、このソリューションでファイルを移動する目的は何ですか?
クフィンリー

@Cfinley:投稿の編集
アレッサンドロ


1

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')
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.