Pythonから3行でWindows音声合成機能を使ってしゃべらせてみる

10行プログラムカテゴリのアイキャッチ画像10行以内のプログラム
スポンサーリンク

Pythonのライブラリpywin32を使ってWindowsの音声合成機能が呼び出せます。
今回は3行でPythonにしゃべらせてみます。

スポンサーリンク

準備

pipによるライブラリpywin32のインストールが必要です。
念のためpip自体のバージョンを最新にしておくことをお勧めします。

pip list

などをコマンドプロンプトから実行した際、以下のような警告が出る場合は最新ではありません。

警告文の部分。

WARNING: You are using pip version 19.2.3, however version 20.1.1 is available.
You should consider upgrading via the ‘python -m pip install –upgrade pip‘ command.

以下を参考に最新にしてください。

pipの状態が最新にできましたら以下をコマンドプロンプトから実行します。

pip install pywin32

インストールに成功すると次のような感じで表示されるかと思います。(バージョン等はその都度変わります)

C:\Windows\system32>pip install pywin32
Collecting pywin32
Using cached pywin32-228-cp38-cp38-win_amd64.whl (9.1 MB)
Installing collected packages: pywin32
Successfully installed pywin32-228

上記のように Successfully installed 《pywin32のバージョン》 などのように表示されていれば大丈夫です。

10行プログラム

今回はコメントを入れて10行になっていますが、実質3行です!

ファイル名:winSpeak.py

# PythonでWindowsの音声合成を使う
#   pywin32ライブラリのインストールが必要
#       インストール方法)pip install pywin32

# 準備
import win32com.client as wincl
voice = wincl.Dispatch("SAPI.SpVoice")

# 文字列をしゃべらせる
voice.Speak("だが断る")

実行すると

だが断る!

としゃべりましたか?(笑)

もう少し改良してキーボードから入力した文字列をしゃべらせてみます。

ファイル名:winSpeak2.py

# キーボードから入力した文字列をしゃべらせる
import win32com.client as wincl
voice = wincl.Dispatch("SAPI.SpVoice")

# キーボードから入力
print("何をしゃべらせますか? ", end="")
message = input()

# 文字列をしゃべらせる
voice.Speak(message)

今回利用したpywin32WindowsAPI(Windowsの機能を呼び出せる関数群)をPythonから手軽に利用できるライブラリです。

WordやExcelなどの操作もPythonからできるので、使いようによっては業務を効率よくできる代物です。興味がある方は調べてみてください。ネット上に色々なサンプルがありますよ。

以上、Pythonから3行でWindows音声合成機能を使ってしゃべらせてみるでした。

コメント