Pythonによるデータ分析・機械学習ブログ

Pythonによるデータの前処理・グラフ化、機械学習、統計解析、画像処理、Webスクレイピング、自然言語処理の基礎について紹介していきます。

MENU

Pythonを用いた簡易セルフ聴力検査システムーwinsound.Beep

はじめに

最近周りの人の声が聞きづらいと思い、自分で簡易的に聴力検査できるものがほしいと思い、こちらを作成しました。

 

SAMURAI TERAKOYA

システムの内容

今回作成する簡易的な聴力検査システムの概要は以下です。

  • 125、250、500、1000、2000、4000、8000Hzのビープ音を発する
  • ボタンを押すとビープ音が3秒間流れる

今回、7種類の周波数を用意しましたが、一般的な健康診断では1000Hzと4000Hzの音を聞くようです。

kaiseihp.jp

 

上記の内容で作成したシステムの動作を動画で録画しました。

youtube.com

 

Pythonコード

作成した簡易セルフ聴力検査システムのPythonコードは以下です。

#必要なモジュールのインストール
import tkinter
import winsound
#ビープ音を流す時間[msec] sec=3000 #125Hzのビープ音を3000msec流す関数 def btn_125(): winsound.Beep(125,sec) #250Hzのビープ音を3000msec流す関数 def btn_250(): winsound.Beep(250,sec) #500Hzのビープ音を3000msec流す関数 def btn_500(): winsound.Beep(500,sec) #1000Hzのビープ音を3000msec流す関数 def btn_1000(): winsound.Beep(1000,sec) #2000Hzのビープ音を3000msec流す関数 def btn_2000(): winsound.Beep(2000,sec) #4000Hzのビープ音を3000msec流す関数 def btn_4000(): winsound.Beep(4000,sec) #8000Hzのビープ音を3000msec流す関数 def btn_8000(): winsound.Beep(8000,sec) # 画面作成 tki = tkinter.Tk() tki.geometry('300x380') tki.title('簡易セルフ聴力検査') #ユーザーインターフェースの設定値 font=5 width=20 bd=3 afg='white' abg='gray21' # ラベルの設定 lbl = tkinter.Label(tki, text='簡易セルフ聴力検査です。',font=font) lbl.grid(column=0,row=0) lbl = tkinter.Label(tki, text='以下の7つの周波数の音を聞いてください。',font=font) lbl.grid(column=0,row=1) lbl = tkinter.Label(tki, text='ボタンを押すと3秒間音が鳴ります。',font=font) lbl.grid(column=0,row=2) lbl = tkinter.Label(tki, text='※一般的には1000、4000Hzを使用',font=font) lbl.grid(column=0,row=3) lbl = tkinter.Label(tki, text='',font=font) lbl.grid(column=0,row=4) lbl = tkinter.Label(tki, text='※これは簡易的なものです。',font=font) lbl.grid(column=0,row=12) #ボタンの設定 btn125 = tkinter.Button(tki, text='125Hz', command=btn_125,width=width,bd=bd, activeforeground=afg,activebackground=abg,font=font) btn125.grid(column=0,row=5) btn250 = tkinter.Button(tki, text='250Hz', command=btn_250,width=width,bd=bd, activeforeground=afg,activebackground=abg,font=font) btn250.grid(column=0,row=6) btn500 = tkinter.Button(tki, text='500Hz', command=btn_500,width=width,bd=bd, activeforeground=afg,activebackground=abg,font=font) btn500.grid(column=0,row=7) btn1000 = tkinter.Button(tki, text='1000Hz', command=btn_1000,width=width,bd=bd, activeforeground=afg,activebackground=abg,font=font) btn1000.grid(column=0,row=8) btn2000 = tkinter.Button(tki, text='2000Hz', command=btn_2000,width=width,bd=bd, activeforeground=afg,activebackground=abg,font=font) btn2000.grid(column=0,row=9) btn4000 = tkinter.Button(tki, text='4000Hz', command=btn_4000,width=width,bd=bd, activeforeground=afg,activebackground=abg,font=font) btn4000.grid(column=0,row=10) btn8000 = tkinter.Button(tki, text='8000Hz', command=btn_8000,width=width,bd=bd, activeforeground=afg,activebackground=abg,font=font) btn8000.grid(column=0,row=11) tki.mainloop()

 

winsound.Beepに音の周波数と音の発する継続時間を渡します。

import winsound
frequency = 1000
duration = 2000
winsound.Beep(frequency, duration)

 

exeファイルの公開

Pythonをインストールしてない人でも使えるようにexe化したものをGithubで公開していますので、以下からダウンロードして使ってみてください。

github.com

 

オススメ書籍

Pythonによるあたらしいデータ分析の教科書

Python3エンジニア認定データ分析試験の教科書にもなっている書籍で、データ分析に必要なPythonの基礎手法を身に付けることができます。具体的には、numpyとpandasを用いたデータの前処理、matplotlibを用いたデータのグラフ化、scikit-learnを用いた機械学習の基礎記述方法を身に付けることができます。これ一つで基礎はバッチリで、実務でも十分活用できると思います。個人的には見やすい書籍でした。

データサイエンス教本 Pythonで学ぶ統計分析・パターン認識・深層学習・信号処理・時系列データ分析

こちらの書籍は初心者から少し記述できるようになった人、かつ数学的な理論と一緒にPythonの記述方法を理解したい方にオススメです。統計分析、パターン認識、深層学習、信号処理、時系列データといった幅広く実務で使用する手法を学びたい方にもオススメです。

東京大学のデータサイエンティスト育成講座 ~Pythonで手を動かして学ぶデ―タ分析~

こちらの基礎を抑えながら実務で必要なPython記述法を学べる書籍です。基礎を一つ一つ抑えるというよりも実務で活用できるように必要な知識を身に付けられると感じました。これ一冊あれば十分かなと思いました。

 

スキル修得&転職

 近年、DXの進展に伴うデジタル人材の需要の高まりに追いついていない状況が続いていると経済産業省がホームページで記載している通り、DX人材、IT人材が不足しているのが現状です。さらにコンピュータの性能向上やAI技術の発展により、よりDX人材、IT人材の需要が高まってきます。さらには、今後の長期間安定して職がある業種とも考えられます。

以下の求人では、IT業界の転職や、IT未経験だけどIT人材を志望する就活を支援してくれます。無料で会員登録もできるので、まずは登録だけでもして様子を見てみてはいかがでしょうか?

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

 

おわりに

自分で簡易的に聴力検査できるシステムの内容と、Pythonコードを示しました。皆さんの開発の役に立てば幸いです。