Web Audio API で内蔵マイクで録音+ミキシングに、大事そうな周波数帯域推定を追加
WAV+WAV or WAV+マイク を、WAVに書き出します。マイクはFirefoxのみ。
前回からの進展として、スペクトログラムを加工しました。
スペクトルは ↓こちら↓ を元に作理ました。
Web Audio API 解説 - 12.アナライザーの使い方 | g200kg Music & Software
FFT点数は1024で、低い方から256ビン表示しています。
加工のポイントとして、大事そうな周波数帯域推定の結果を示しています。音声を想定。フォルマントをしっかり計算しないでも、複数の帯域を区切ってのセントロイド同士での平均音量の比較でも、それなりに特徴は捉えられるとの思いつきです。
上位2帯域は目立つ色、それ以外は目立ちにくい色にしています。
なお、表示するパワーについては周波数が高い帯域ほどゲタを履かせています。そうでもしないと1 kHzどころか、100 Hzより下のパワーばかりに判定が引っ張られます。
File0
File1
mixing source0 :
mixing source1 :
Analyser
SmoothingTimeConstant : | |
MinDecibels : | |
MaxDecibels : |
mixed | ||
audio0 | ||
audio1 |
うまくいっているのかといえば、劇的にうまくいってはいないです。
それでも、明らかな破擦音が入った時、歌い方に息かドスかの違いをつけた時 ... では、大事そうな周波数帯域の上位2帯域が入れ替わります。
音声は経験上、3 kHzあたりのパワーが上がらない傾向にありそうです。これが厄介。これにより、3 kHzを中心に双峰性のパワーの大きい帯域を平均すると、パワーの小さい 3 kHz ばかりが大事だと錯覚することになります。
素直にフォルマント帯域を推定した方がよかったかもしれない。