Windows用の高品質音声合成ソフト「Voicepeak」を、自作スクリプトから喋らせたい。
そんな願いを叶えるために、「SAPI(Speech API)」経由でVoicepeakを操作する方法にチャレンジ中です。
本記事では、未経験から .sln
ファイルのビルドや .dll
エラーに直面した体験を、備忘録的にまとめています。
✅ なぜSAPIで喋らせたいのか?
最初は pyautogui
を使って、Voicepeakのウィンドウを自動操作する方法を試していました。
import pyautogui pyautogui.click(x=300, y=300) pyautogui.typewrite("こんにちは、テスト音声です") pyautogui.hotkey("ctrl", "v")
この方法は簡単に見えますが、以下の問題点があります:
- マウス・キーボードを奪われてPCが使えなくなる
- UIが変わっただけでスクリプトが破綻する
- 処理が重く、安定性に欠ける
よりシステマチックに音声を制御するには、Windowsの標準音声API「SAPI」を使う方が遥かにスマートです。
🧠 SAPIとは?
SAPI(Speech API)は、Microsoftが提供する音声合成インターフェースです。 PythonやC#などの言語から簡単に音声出力ができ、以下のように使います:
import win32com.client voice = win32com.client.Dispatch("SAPI.SpVoice") voice.Speak("SAPIを使えば簡単に喋らせられる")
SAPIに対応した音声エンジンであれば、UI操作不要で自動読み上げが可能になります。
🔧 VoicepeakをSAPI対応にする方法
VoicepeakはSAPIに直接は非対応。 しかし、以下のGitHubリポジトリを使えば、中継DLLを自作してSAPI経由でVoicepeakを使えるようになるそうです:
このリポジトリでは、Visual Studioでビルド可能な .sln ファイルが提供されており、 sapi-voicepeak-connect.dll や comhost.dll を作成することでVoicepeakをSAPI化できます。
🔨 ここまでの作業メモ
GitHubからソースコードを取得
git clone https://github.com/azumyar/sapi-voicepeak.git
regsvr32 sapi-voicepeak-connect-x64.comhost.dll # → モジュールの読み込みに失敗しました
この時点でようやく「未ビルドだからDLLが無い」ことに気付きました。
.sln(ソリューションファイル)を開こうとするも、VSCodeでは開けず
Visual Studioをインストール(.NETデスクトップ開発を選択)
.sln ファイルをVisual Studioで開けるようになる
sapi-voicepeak-connect-x64.comhost.dll が存在しないため regsvr32 に失敗
💡 学んだことまとめ
- .sln は Visual Studio のプロジェクトファイル(VSCodeじゃ開けない)
- .dll は音声合成の「中身」。ビルドしないと生成されない
- SAPIは非常に安定した音声出力方法
- pyautoguiでのUI操作は冗長で不安定になりがち
📝 まとめと今後の展望
現在はまだDLLのビルド途中ですが、以下のようなゴールを目指しています:
- Voicepeakの音声をSAPI経由で呼び出せるようにする
- PythonやC#から自然な日本語音声を自動再生
- 将来的には自作AI・ボイスアバターとの連携も視野に
「Voicepeak 自動化」「Voicepeak SAPI連携」「Python 音声合成」などのワードで調べている方の参考になれば嬉しいです。
続編では、Visual Studioでのビルド成功や、DLL登録、Pythonからの音声出力までを予定しています。