数日前の業務中に「PowerShellに喋らせられないかな?」と突然思いついたので
実現する方法が無いか少し調べてみました。
実用性とかキニシナイ!
で、調べて見ると何とたった3行で実現可能らしい。
・実行環境
Windows 10 + PowerShell 5.1
============================
Add-Type -AssemblyName System.Speech
$talk = New-Object System.Speech.Synthesis.SpeechSynthesizer
$talk.Speak("<喋らせたい文字列>")
============================
これだけで喋ります。
( ´ ー`) 漢字もちゃんと読めるね
それぞれのコマンドは何をしているのか?
Add-Typeは.NET Frameworkクラスを定義したり、既存のアセンブリを指定して読み込んで
PowerShellセッション内で利用することが出来ます。
ここでは、音声認識に関する機能を持つアセンブリを読み込んでいます。
$変数 = New-ObjectでSystem.Speech名前空間が持つSpeechSynthesizerクラスを
インスタンス化し変数に格納。
3行目で$talk変数のオブジェクトからSpeakメソッドを利用。
...と、ここまで書いてみたはいいものの正直あまりよく理解出来ていない。
「PowerShellは.NETとの親和性が高く高機能」と言葉では聞くものの
こうした使い方を意識したことはなかったのでまだまだ勉強が必要ですね。
とりあえずもっと色々なことがやれそうではある。