私は、オンラインの視覚的な中国語のトーン ヘルパーのようなものを開発しています。これには、 HPS アルゴリズムを使用したピッチ検出が含まれます。ただし、このアルゴリズムのパフォーマンスは、着信スペクトログラムの解像度によって制限されます。これまでアナライザー ノードを使用してきましたが、オーディオ コンテキストのサンプル レートを設定できないため、不必要に高い最高周波数 (サンプルレート/2 = 約 24 kHz であり、人間の音声は約 3.4 kHz までしか上がりません) を取得します。スペクトログラム。したがって、スペクトログラムの解像度が 1024 の場合 (Web オーディオ API で許可されている最大の fft サイズは 2048 であるため)、音声入力を分析するときにダイナミック レンジのごく一部しか使用しません。
これを解決するために、scriptProcessorNode を使用してバッファーを収集し、DSP.js にある FFT で分析してより多くの制御を得ようとしましたが、これはアナライザーを使用する場合に比べてパフォーマンスがはるかに悪いアプローチのようです。 -ノード。この問題を解決する方法について何か提案はありますか? 私のセットアップの詳細については、開発ブログを参照してください。