• ベストアンサー

音声の波形データ(振幅)から音量(dB)を取得したい

+1.0~-1.0の値を取る音声の波形データから音量を単位dBとして取得したいです。 どのようにすればいいのでしょうか? また、もしこの条件がdBを得るのに十分でない条件なら必要な条件を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • inara1
  • ベストアンサー率78% (652/834)
回答No.1

音声の波形データの +1.0~-1.0 というのはV単位の電圧のことですね? 電圧波形のデータから音圧(dB単位)を計算するには、マイクの感度とアンプの利得が分かっている必要があります。それが分かっていれば、電圧(の実効値)は以下のようになります。    電圧(V) = 音圧(Pa)×マイク感度(V/Pa)×アンプ利得(倍) マイク感度の V/Pa という単位は、1Paの音圧で1Vの出力電圧(実効値)が出るという意味です。音圧 0dB というのは20μPaのことなので    音圧(Pa) = 2×10^(-6)×10^{音圧(dB)/20} になります( 1Pa の音圧は 94dB )。したがって元の音量が dB 単位のときは次式で計算できます。    電圧(V) = 2×10^(-6)×10^{音圧(dB)/20}×マイク感度(V/Pa)×アンプ利得(倍) 逆に電圧の実効値から音圧を計算するには    音圧 (dB) = 20*log10[ 電圧(V)/{ 2×10^(-6)×マイク感度(V/Pa)×アンプ利得(倍)} ] になります。 log10 は自然対数です。 マイクの感度はいろいろな表記法があります。例えば -52 dBV/Pa なら、0 dBV = 1V のことなので、マイク感度は    -52 dBV/Pa = 10^(-52/20) V/Pa = 2.5×10^(-3) V/Pa です。マイクの感度が単に -70dB と書いてある場合は 0dB = 1 V/Pa という意味なので、マイク感度は    -70 dB = 10^(-70/20) V = 3.16×10^(-4) V/Pa となります。 電圧波形から実効値の計算式は    電圧(V) =√{ ( 1/N )*Σ[ n = 1, 2, ..., N ] V(n)^2 } です。N はデータ数、V(n) は電圧データです。データの範囲は基本周波数の整数倍になるようにしてください(基本周波数が分からないときはなるべく大きく)。

unkounkooo
質問者

お礼

なるほど!詳しい説明ありがとうございました。 これでいろいろな事ができそうです。

関連するQ&A

専門家に質問してみよう