その中からPyAudioとAMDFアルゴリズムを組み合わせて、マイクから音声を拾って音程を探り当てる、ということをやってみた。
まず、マイクに向かって「ド」の音階を出すつもりで発声してみる。

拡大してみると

それらしい波形になっている。
これにAMDFをかけたものがコチラ。

おおよそ0.0078(s)のあたりにピークが来ている。
これが声の基本周期だと考えると周波数は、1 / 0.0078 ≒ 128 (Hz)となる。
このサイトによると低い「ド」の音は131(Hz)とのこと。
そんなに大きくハズレてはいない模様。
少しホッとした。
現時点では、録音してAMDF結果を表示するまでの流れでプログラムが終了してしまうので、これをリアルタイムで出来るようにしたい。
この投稿へのリンク
返信削除この投稿へのリンクこの投稿へのリンクこの投稿へのリンクこの投稿へのリンクこの投稿へのリンクこの投稿へのリンクこの投稿へのリンク
削除