【誰でもAIと会話できる!?】Pythonで作る超簡単な音声認識AIソフト

CG/AI雑学

試してみよう!先端AIでファイルを丸ごと翻訳・校正・要約

AIと会話してみたい!!

最近、AI技術がますます身近になっています。スマートフォンや家電で音声操作を利用することが当たり前になり、自分でも音声認識AIを作れたら面白そう!と考えたことがある方もいるのではないでしょうか?

実は、Pythonを使えば初心者でも超簡単に音声認識AIソフトを作ることができます!
今回は、Python初心者の方でもわかりやすく、ステップバイステップで解説します。

音声認識AIを作るために必要な準備

まずは、ソフトを作るために必要なものを確認しましょう。

必要なツール・環境

  • Python(バージョン3.7以上推奨)
  • ライブラリ:以下のPythonライブラリをインストールします。
    • SpeechRecognition
    • gTTS(Google Text-to-Speech)
    • pygame

これらのライブラリを使えば、音声入力を文字に変換してAIが返答を音声で出力する仕組みを簡単に実現できます。

環境セットアップ

  1. Pythonがインストールされていない場合は、Download Python | Python.orgからダウンロードしてインストールしてください。
  2. 必要なライブラリをインストールします。 以下のコマンドをターミナル(またはコマンドプロンプト)で実行してください。
pip install SpeechRecognition gTTS pygame

実際にコードを書いてみよう!

ここでは、簡単な音声認識AIソフトのサンプルコードを紹介します。

import speech_recognition as sr
from gtts import gTTS
import pygame
import time
import os

def play_audio(file_path):
    """音声ファイルを再生"""
    pygame.mixer.init()
    pygame.mixer.music.load(file_path)
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy():
        time.sleep(1)

def recognize_speech():
    """マイク入力を音声認識してテキストを返す"""
    recognizer = sr.Recognizer()
    mic = sr.Microphone()

    print("音声入力を待っています...")
    with mic as source:
        # 周囲のノイズを調整
        recognizer.adjust_for_ambient_noise(source)
        try:
            print("話してください...")
            audio = recognizer.listen(source)
            print("音声認識中...")
            # 日本語で音声認識
            text = recognizer.recognize_google(audio, language="ja-JP")
            print("認識結果:", text)
            return text
        except sr.UnknownValueError:
            print("音声を認識できませんでした。")
        except sr.RequestError as e:
            print(f"Google Speech Recognition サービスにアクセスできません: {e}")
        return ""

def ai_response(text):
    """AIの応答を生成する"""
    if "こんにちは" in text:
        return "こんにちは!今日はどんなことを話したいですか?"
    elif "天気" in text:
        return "今日は晴れの予報ですよ!外出日和ですね。"
    elif "疲れた" in text:
        return "お疲れ様です。少し休憩してくださいね。"
    elif "さようなら" in text:
        return "さようなら。またお話ししましょう!"
    else:
        return "すみません、よく分かりませんでした。"

def speak_response(response):
    """AIの応答を音声として再生"""
    tts = gTTS(text=response, lang="ja")
    filename = "response.mp3"
    tts.save(filename)
    play_audio(filename)
    os.remove(filename)

def main():
    """音声認識AIソフトのメイン処理"""
    while True:
        # マイク入力からテキスト取得
        text = recognize_speech()
        if text:
            # AI応答を生成
            response = ai_response(text)
            print("AIの応答:", response)
            # 応答を音声で再生
            speak_response(response)
            # 終了条件
            if "さようなら" in text:
                break

if __name__ == "__main__":
    main()

コードの解説

上記のコードは、大きく分けて以下の4つの部分で構成されています。

1. 音声ファイルの再生

pygameライブラリを使って、音声応答を再生します。
play_audio関数でMP3ファイルを再生し、再生終了まで待機します。

2. 音声を認識する

speech_recognitionライブラリを使って、マイクから音声を収録し、それを文字に変換します。

  • Recognizer():音声認識のためのクラス。
  • Microphone():マイク入力を扱うためのクラス。
  • recognize_google():Googleの音声認識APIを利用して文字起こしを行います。

3. AIの応答を作成する

入力された音声に応じて適切な応答を生成します。
今回は、簡単なキーワード応答型の仕組みを導入しています。

4. 音声で応答を再生する

gTTSライブラリを使って、AIの応答を音声に変換し、再生します。
再生後は一時的なMP3ファイルを削除します。

動かしてみよう!

上記のコードをVSCode上で起動した結果がこちらです!

「こんにちは!」と言うと、「こんにちは!今日はどんなことを話したいですか?」と音声で返してくれていますね!ただし、今のコードでは1回だけしか返事をしてくれません笑

試してみよう!先端AIでファイルを丸ごと翻訳・校正・要約

まとめ

いかがでしたか?Pythonと便利なライブラリを使えば、簡単に音声認識AIを作成できます

今回のサンプルコードを試すだけでも、AIの仕組みが少し身近に感じられるはずです。
さらに機能を拡張して、自分だけの高性能音声認識オリジナルAIを作ってみてください!!

コメント

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