今回はいよいよ、Pythonで音声を認識し、ChatGPTと対話するAIアシスタントを作ります。
ここまで読んでくださったあなたなら、もう「AIを使うだけでなく、自分で作れる」ステージに入っています。
今回は、音声認識ライブラリとChatGPT APIを組み合わせて、シンプルながら実用的なAIアシスタントを構築してみましょう。
この回でできること
- 音声認識ライブラリ(speech_recognition)の基本を理解
- マイク入力をリアルタイムで取得
- 取得した音声をChatGPTに送り、応答を返す
準備するもの
- マイク(ノートPCなら内蔵でOK)
- Python(3.8以上推奨)
- OpenAIのAPIキー(前回参照)
必要なライブラリをインストール
pip install openai speechrecognition pyaudio
※pyaudio
はマイク入力に必要。Windowsでは事前にwhlファイルをダウンロードしてからインストールが必要な場合もあります。
AIアシスタントのPythonコード
import openai
import speech_recognition as sr
openai.api_key = "sk-xxxxxxxxxxxxxxxx"
recognizer = sr.Recognizer()
messages = [{"role": "system", "content": "あなたは親切な音声アシスタントです。"}]
with sr.Microphone() as source:
print("話しかけてください(終了するにはCtrl+C)")
while True:
try:
print("録音中...")
audio = recognizer.listen(source, timeout=5)
print("音声を認識中...")
text = recognizer.recognize_google(audio, language="ja-JP")
print("あなた:「", text, "」")
messages.append({"role": "user", "content": text})
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages
)
reply = response.choices[0].message["content"]
print("アシスタント:", reply)
messages.append({"role": "assistant", "content": reply})
except sr.WaitTimeoutError:
print("音声が検出されませんでした。")
except sr.UnknownValueError:
print("音声を認識できませんでした。もう一度お願いします。")
except KeyboardInterrupt:
print("終了します。")
break
—
ポイント解説
speech_recognition
でマイク音声を文字に変換recognize_google
で日本語に対応- 対話履歴を残すことで、文脈ある応答が可能に
応用アイデア
今回作ったAIアシスタントは、以下のように発展できます:
- 音声合成(TTS)で音声読み上げに対応
- LINE BotやWebアプリとの連携
- スマートスピーカー風の常駐ツールに
まとめ|音声×AIで「使えるツール」に進化
- Pythonでマイク音声を取得し、ChatGPTと連携できた
- 実用的なAIアシスタントの土台を作成した
- 次のステップでは、より高度な音声処理や応答方法にも挑戦できる
次回予告|画像生成AIをPythonで呼び出してみよう
次回は、画像生成AI(DALL·EやStable Diffusionなど)をPythonから操作し、テキストから画像を作る方法を紹介します!
コメント