[FAQ CENTER トップ]
[Powershell FAQ トップへ]



【Powershell】音声読み上げ(合成音声)の簡単サンプル(2行)



更新日:2021/10/26

このページではPowershell によるテキスト読み上げのサンプルプログラムを紹介します。
とても簡単に実現することが可能です。
Windows標準装備されている SpVoice Interface (SAPI 5.3) を使用して、text-to-speech (TTS) エンジンを使用します。


参考:
VBS(VBScript)での例は次のページで紹介しています。
PC で文字を読み上げる サンプルコード


SpVoice Interface (SAPI 5.3)
https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms723602(v=vs.85)

サンプルコード集

以下は Windows 10 環境におけるサンプルコードと実行結果です。

次のサンプルでは英語で "hello everyone" (ハローエブリワン、みなさんこんにちは)と発音します。
英語で発音します。

サンプルコード:


$s = New-Object -com SAPI.SpVoice
$s.Speak("hello everyone")

実行結果:

1





次のサンプルでは日本語で "みなさん、こんにちは"と発音します。


サンプルコード:

$s = New-Object -com SAPI.SpVoice
$s.Speak("みなさん、こんにちは")

実行結果:

1



話す速度を調整するプロパティを紹介します。
Rate プロパティで指定することが可能です。範囲は -10 から 10 です。大きいほど高速で読み上げます。小さいほどゆっくり読み上げます。

サンプルコード:


$s = New-Object -com SAPI.SpVoice

#とても早く話す
$s.Rate = 10
$s.Speak("みなさん、こんにちは")

#とても遅く話す
$s.Rate = -10
$s.Speak("みなさん、こんにちは")


実行結果:

1
1



話すボリュームを調整するプロパティを紹介します。
Volume プロパティを使用します。これでボリュームの大きさを変更することが可能です。
0 から 100 の間で指定することが可能です。


サンプルコード:

$s = New-Object -com SAPI.SpVoice

#最小ボリューム
$s.Volume = 0
$s.Speak("みなさん、こんにちは")

#最大ボリューム
$s.Volume = 100
$s.Speak("みなさん、こんにちは")


実行結果:

1
1



読み上げ実行開始ですぐに制御を戻すか(非同期)、あるいは読み上げが完了してから処理を戻すか指定することが可能です。
次のサンプルのとおり、Speak メソッドで 1 を指定した場合、読み上げ開始後にすぐに制御を戻します。(非同期)
逆に指定しない場合は、読み上げ完了してから制御が戻されます。(同期)

サンプルコード:


$s = New-Object -com SAPI.SpVoice
$s.Speak("みなさん、こんにちは",1)








[Powershell FAQ トップへ]
[FAQ CENTER トップ]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018