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

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

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

答え1

PTTSは、テキストを音声に変換する非常にシンプルな Microsoft Windows のコマンド ライン プログラムです。Microsoft Text to Speech Engine と Microsoft Speech SDK を使用します。Text to Speech Engine は、Windows XP にインストールされており、音質がやや悪い音声が 1 つ含まれています。Jampal インストール プログラムには、音質の良い音声が 2 つ含まれています。(Web サイトから引用)

リダイレクトまたはテキストのパイプによってプログラムにテキストを入力するだけで使用できます。

ptts < file.txt
echo Hello there|ptts

答え2

時代遅れのツールを機能させようとすることに疲れたので、 を作成しましたwsay

のように動作しsay、さまざまな音声を選択でき、簡単に wave ファイルに出力できます。

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

乾杯

答え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 を作成し、それをシステム音声で読み上げます。実行の最後に、スクリプトは削除され、別の実行のためのスペースが確保されます。

答え4

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

# 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')

関連情報