1.はじめに
将来子供が出来たとき仕事の傍ら教育にも力を入れていきたいと思っており、教育用アプリケーションの作成を考えています。
そのため簡単な英単語(言語はどれでもいい)をキーボード上のキーで入力することで、単語を出力してより優しく理解していただけたらいいなと思います。
2.手順
(1)keycode(キーコード)を確認する
キーボード上のキーには、それに対応するコードがあります。
このアプリケーションの作成に当たっては、キーコードが非常に重要になります。
(最初はkeycodeではなく、keysymで試しましたが、keycodeのほうがスムーズに作業が行えました。)
例えば、「A」キーは「65」、「C」キーは「67」となる。
下のURLを参考にしました
(2)キーコードに対応するテキストを表示するには
buffer = tkinter.StringVar()
変数 = buffer.set(文字列)
キーコードに対応する文字を出力するには、StringVar()を使用します。
ここで使う英単語は「Good afternoon」,「How are you?」,「Good morning」の三つです。
3.実装
main.py
import tkinter
import pyttsx3
key = 0
engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)
def key_down(e):
global key
key = e.keycode
def main():
global key
Xt = label['text']
engine.say(Xt)
engine.runAndWait()
if key == 65 : # 「A」のコードは「65」であるため、「A」のキーを押すとHelloが表示される
Xt =buffer.set('Good afternoon ')
if key == 67: # 「c」のコードは「67」であるため、「c」のキーを押すとHow are you?が表示される
Xt = buffer.set('How are you?')
if key == 68: # 「D」のコードは「68」であるため、「D」のキーを押すとGood morningが表示される
Xt = buffer.set('Good morning')
root.after(1000, main)
root = tkinter.Tk()
root.geometry('500x500')
root.title('英単語君')
canvas = tkinter.Canvas(root, height = 500, width = 500, bg = 'black')
canvas.pack()
buffer = tkinter.StringVar()
label = tkinter.Label(font = ('Times New Roman', 40), textvariable=buffer, foreground='blue', bg='black')
label.place(x = 90, y = 170)
root.bind('<KeyPress>', key_down)
main()
root.mainloop()
以下のリンクから実装動画が見れます。
英単語文字起こしアプリケーション
— つばめ (@ZnRKT46JvWKbHDW) August 7, 2022
作りました。
もっと単語を増やせたらいいなと思います。 pic.twitter.com/PxnjJyq3Nm