Python初心者向け|音声認識×ChatGPTでAIアシスタントを作る方法【第10回】

未分類

今回はいよいよ、Pythonで音声を認識し、ChatGPTと対話するAIアシスタントを作ります。

ここまで読んでくださったあなたなら、もう「AIを使うだけでなく、自分で作れる」ステージに入っています。
今回は、音声認識ライブラリとChatGPT APIを組み合わせて、シンプルながら実用的なAIアシスタントを構築してみましょう。

この回でできること

  • 音声認識ライブラリ(speech_recognition)の基本を理解
  • マイク入力をリアルタイムで取得
  • 取得した音声をChatGPTに送り、応答を返す

準備するもの

  1. マイク(ノートPCなら内蔵でOK)
  2. Python(3.8以上推奨)
  3. 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から操作し、テキストから画像を作る方法を紹介します!

コメント

タイトルとURLをコピーしました