めんどくさがり屋の私はマウスやキーボードを使ってWordやExcelを探したり、入力する作業も極力なくしていきたいと思っている今日この頃、、
リモートワークをしている利点を生かして「ワード」と喋るだけでWordを立ち上げればいいんだと考えたので、その方法を書いていこうと思います。方法はいたって単純でPythonと音声認識ライブラリを使用します。
〇使用ライブラリ
・speech_recognition:音声認識を行い文字おこしをする
・pyaudio:マイクの音声入力をする
※ pyaudioはPython 3.9までのサポートでそれ以降バージョンでは使えないようです。他のライブラリを使用して同じことができるかは確認中、、
〇実装したコードはこんな感じimport speech_recognition as sr
import os
commands = {
"teams": "start ms-teams:",
"メモ帳": "notepad",
"電卓": "calc",
"ペイント": "mspaint",
"エクセル": "start excel",
"パワポ": "start powerpnt",
"ワード": "start winword",
"アウトルック": "start outlook",
"Outlook": "start outlook",
"エクスプローラー": "explorer",
}
def recognize_and_run():
recognizer = sr.Recognizer()
mic = sr.Microphone()
listening = True
with mic as source:
recognizer.adjust_for_ambient_noise(source)
while True:
if not listening:
audio = recognizer.listen(source)
try:
command = recognizer.recognize_google(audio, language="ja-JP")
if "再開" in command:
listening = True
print("再開します")
continue
elif "終了" in command:
print("終了します")
break
except sr.UnknownValueError:
continue
except sr.RequestError as e:
print(f"予期せぬエラーが発生 {e}")
continue
# 音声をリスニングして取得
audio = recognizer.listen(source)
try:
# 音声をテキストに変換
command = recognizer.recognize_google(audio, language="ja-JP")
print("聞き取り結果:", command)
# 一時停止・再開のキーワードを確認
if "停止" in command:
listening = False
print("停止します")
continue
elif "終了" in command:
print("終了します")
break
# 辞書からコマンドを取得して実行
if command in commands:
print(f"起動します: {command}")
os.system(commands[command])
except sr.UnknownValueError:
continue
except sr.RequestError as e:
print(f"予期せぬエラーが発生 {e}")
if __name__ == "__main__":
recognize_and_run()
実施していることは
-
audio = recognizer.listen(source)
⇒ マイクに発言した音声を取得。 - command = recognizer.recognize_google(audio, language="ja-JP")
⇒ 音声をテキストに変換 -
os.system(commands[command])
⇒ テキストと定数に指定している文言を突合して、コマンド実行
と、以外とやってみるとすぐできるものでした。
他にも作業効率化の方法があれば、どんどん考えていきたいと思います!