[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))