2016-05-06 9 views
1

WebAudio APIを使用して、マイクからのサウンドストリームの波形とFFTを表示しています。WebAudio APIデータ配列のサイズ?

私の質問は、各データアレイが特定の瞬間にどのくらいの大きさで入手できるのかです。たとえば、AnalyserNodeからgetByteTimeDomainData関数を見てください。それはドキュメントでそれが"copies the current waveform, or time-domain, data into a Uint8Array"と言います。 current waveformとは何ですか?最後の2分音符?現在の波形データのサイズは入力周波数に依存しますか?

他の部分では、データチャンクを受信するストリームインターフェイスによく似ていますが、チャンクはどれくらいですか? 100msごとに1回だけタイムドメインデータを取得すれば、それらの時間の間に発生したサウンドが欠落するか、次の音声メッセージがバッファリングされてgetByteTimeDomainDataが呼び出されますか?

答えて

2

サイズは、AnalyserNodeのfftSize属性で設定します。はい、あなたは "その時代の間に起こった音を逃します" - そういうことをする必要があるなら、ScriptProcessorを使ってください。

+0

したがって、fftSizeを '2048'に設定すると、frequencyBinCountは' 1024 'になるので、 'getByteTimeDomainData'を呼び出すたびに' 1024'の値を取得します。入力周波数が48000hzの場合、これは最後の1024/48000 = '0.00213'秒〜= 2ミリ秒しか得られないのですか? – Cristy

+1

はい。 「最後」は不正確ですが、それはサンプルの連続的な流れを維持していませんが、オーディオ処理システムは物事をブロック内に押し込む傾向があります。特にレイテンシが高いシステム(Linuxなど)での使用。しかし、それはあなたの例で〜2msの "最近の"ブロックです、はい。 – cwilso