見出し画像

[Python]40行で作る発音チェックゲーム

1.発音チェックゲーム

音声認識を使った発音チェックゲームを作成します。用意した英単語が画面に出力されるので、それをパソコンのマイクに向かって発音していき、
正しければ、OK!を違っていればBoo!を返し、最後に正答率を算出するゲームとなります。

2.音声をテキストに変換する関数

以前作成したモジュールを改造します。

def voice_to_en_text():
    r = sr.Recognizer()
   
    with sr.Microphone() as source:
        #周囲の騒音対策
        r.adjust_for_ambient_noise(source)
        print("Say!\n")
        audio = r.listen(source)
        try:
            #音声認識にグーグルのサービスを利用
            text = r.recognize_google(audio)
            return text
        except:
            print("Unrecognized")
            exit()

3.発音チェックゲーム完成形

2を利用したチェックゲームの完成形です。今回発音チェックする英単語は果物で数は5つです。

import speech_recognition as sr
from sys import exit
from time import sleep

#音声をテキストに変換する関数
def voice_to_en_text():
    r = sr.Recognizer()
   
    with sr.Microphone() as source:
        #周囲の騒音対策
        r.adjust_for_ambient_noise(source)
        print("Say!\n")
        audio = r.listen(source)
        try:
            #音声認識にグーグルのサービスを利用
            text = r.recognize_google(audio)
            return text
        except:
            print("Unrecognized")
            exit()

check_words = ["Apple", "Banana", "Orange", "Grapes", "Cherry"]
correct_num = 0

for word in check_words:
    print("Pronounce this:{0}".format(word))
    result = voice_to_en_text()
    #先頭文字を大文字に変換
    result = result.capitalize()
    if word == result:
        print("Good!")
        correct_num += 1
    else:
        print("Booo!")

#正答率
percent_correct = int(correct_num / len(check_words) * 100)
print("A percentage of correct answers:{0}%".format(percent_correct))

4.実行結果

画像1


いいなと思ったら応援しよう!