発声をWAVファイルにして保存する
ときどき、ちょっとした実験をしていて、短い音声ファイルが欲しくなることもある。しかし、簡単に録音できるからといって、自分の声を聞くのはなにか妙に恥ずかしい。そういうときには、Speech APIで喋らせた声を音声ファイルにすれば簡単に音声ファイルを作ることができる。
まずは、音声ファイルを保存できるフォルダーを用意する。適当なフォルダーでよい。ここでは、「C:\temp」フォルダーに「output.wav」という音声ファイルを保存することにする。そこに音声ファイルを保存するのが以下のリストのコマンドだ。なお、すでに存在するファイルを上書きしようとするとエラーになるので、存在しないファイル名を「フルパス」で指定する。
$x=New-Object -ComObject SAPI.SpVoice
$vs=New-Object -ComObject SAPI.SpFileStream
$vs.Open("c:\temp\output.wav",3)
$x.AudioOutputStream=$vs
$x.Speak("裏に塀ができたんだってねぇ")
$vs.Close()
音声ファイルは、メディアプレーヤーなどで再生が可能だが、コマンドラインからなら、
start "c:\temp\output.wav"
で再生が可能だ。
Windowsには、Speech APIのほかにも.NET frameworkのSystem.Speechなど、いろいろとあるのだが、SAPIを使うのに比べると一手間かかってしまう。なので、スクリプトからすぐに使うには、この方法が一番楽。他の言語でもCOMコンポーネントを扱えるなら同様のことは簡単にできる。発声を普通のテキストで指定できるので、複数のサウンドを使い分けて鳴らすのと比べても簡単だ。

この連載の記事
-
第489回
PC
大きく分けて3種類あるWindowsのライセンス形態 -
第488回
PC
Windowsのサウンド設定をコマンドラインで調べる -
第487回
PC
気づけば随分数が増えているWindowsのファイル属性 -
第486回
PC
Excelがあればなんでもできる -
第485回
PC
Windows Subsystem for Linux(WSL)のソースコードが公開された -
第484回
PC
WindowsのコマンドラインでGrapheme Clusterを正しく扱うには -
第483回
PC
Microsoftが作るコンソールエディタがこの時代に復活 -
第482回
PC
WSL(Windows Subsystem for Linux)向けにFedoraディストリビューション登場 -
第481回
PC
Windows 11にそろそろ聞こえる25H2の声 -
第480回
PC
PowerShellが使う色を変更する -
第479回
PC
Copilot+ PCで利用できる「Windows Copilot Runtime」を試す ローカル推論用モデル「Phi Silica」とは? - この連載の一覧へ