前回の記事の続きです🎬
英単語学習として、英単語の意味を4つの選択肢からあてる、という適当なパイソンのプログラムを組んでやっていたのですが、すこし変更しました。本日は短めです🚏
与えられた4つの解答肢からだと必ず答えが見えて、「答えが見えることで答えを思い出す」ということに気づきましたので、そこを変えてみました。アイデアとしては簡単で、最後の選択肢を「この中にはない」という意味合いのもので、表示だけすることにします🍇
具体的には、
print('0:', test_mean[0])
print('1:', test_mean[1])
print('2:', test_mean[2])
print('3: (上記以外)')
としてみました😂
eSpeak , または eSpeak-ng というのがあるようです。
参考) eSpeak.org
プラットホームによりダウンロード方法が違うので、そちらは割愛します🙇
eng-tr.py にスイッチおよび定義を追加します。
data = pandas.read_csv('eng-tr.csv', encoding='utf_8')
# eSpeak-on/off
E_SPEAK = True # <= 追加
# 以降を追加
def espeak(msg):
if E_SPEAK == True:
subprocess.run(["espeak-ng", "-vf3", "-k20", "-a45", "-s185", msg])
# -v:voice, -k:key-pitch, -a:amplitude, -s:speed
# ref: https://github.com/espeak-ng/espeak-ng
確認でセイ・ハローを、
espeak("Hello!") # <= 追加
jtalk('ハロー')
今度のものは、プロセス待ちです。待たないと、メイちゃんとがっちんこするからです。メイちゃんは待たないままにするので、メイちゃんが話す前に英語教師に話させます🎤
正解した場合のお褒めの言葉の前に発音を確認します。
espeak(test_word[test_r]) # <= 追加
r = int(random.random()*4)
if r == 0:
jtalk('正解')
elif r == 1:
jtalk('よし')
elif r == 2:
jtalk('オッケー')
else:
jtalk('いいじゃん')
間違えた場合のお叱りの言葉の前にも、
else: # 全体を変更
print('......残念!正解は...「', test_mean[test_r], '」')
data.loc[test_n[test_r], 'scoreEtoJ'] = str(test_s)
print('Q clearance: ', test_s / 100, '%')
test_c = int(int(data['scoreEtoJ'][test_n[int(ans)]]) * 0.8)
data.loc[test_n[int(ans)], 'scoreEtoJ'] = str(test_s)
print('A clearance: ', test_s / 100, '%')
espeak(test_word[test_r])
jtalk_a('残念。正解は、' + test_mean[test_r] + 'だよ。')
のように変更しました💡
プロセス待ちが入るので、全体的にスピード感はなくなりましたが、いい感じです。ただ、英語の発音があっているかは確認できないです…また、メイちゃんとは雰囲気が随分異なるので、少し萌え萌え感(個人的ですが)はなくなりなす。良いと思える女性へのイメージに対する、欧米との文化の違いでしょうね🎸
英語教師とはいうものの、スーパーマルチリンガルらしいです。もはや、なんでもありですね📎
本日はおしまいです。ありがとうございました。🍔