5

wav ファイルのリードインとリードアウトを測定しようとしています。できれば最初と最後の5秒くらい。私は基本的に「この曲はリードインが遅い」または「この曲は突然終了する」という意味の数値を割り当てようとしています。

私の考えでは、dB 値の勾配を取得することでしたが、dB 値を取得できる Linux コマンド ライン ツールが見つからないようです。Audacityには波形(db)ビューがあるため、測定できることはわかっています。

ここに画像の説明を入力

基本的に、勾配を取得できるように、データ ポイントを収集してこのグラフを複製する方法を探しています。

編集 - Javaでの作業

4

3 に答える 3

9

これを行うためのコマンドライン ツールについては知りませんが、scipyライブラリを使用すると、この機能を備えた Python スクリプトを簡単に作成できます。

を使用scipy.io.wavfileしてファイル IO を実行し、dB 値を自分で計算できます (スピーカーと音量設定に依存するため、これらは必ずしも標準の dB 値ではないことに注意してください)。

まず、ファイルを取得します。

from scipy.io.wavfile import read
samprate, wavdata = read('file.wav')

次に、ファイルをチャンクに分割します。チャンクの数は、ボリュームをどれだけ細かく測定するかによって異なります。

import numpy as np
chunks = np.array_split(wavdata, numchunks)

最後に、各チャンクのボリュームを計算します。

dbs = [20*log10( sqrt(mean(chunk**2)) ) for chunk in chunks]

ここでdbsは、ファイルの各チャンクの dB 値のリストです (ここでも、必ずしも真の SPL サウンド レベルではありません)。

重複するチャンクなどを使用して、別の方法でデータを簡単に分割することもできます。

参考文献: - scipy.io.wavfile - dB (SPL)

于 2012-11-06T03:38:50.897 に答える
0

ここでは、オーディオ ファイルの読み取りと Java での波形と波形の概要の描画に関する SO に関する質問のほんの一部を示します。

Javaでサウンドファイルを作成するにはどうすればよいですか

wav ファイルからサウンド データを引き出すにはどうすればよいですか?

オーディオ ファイルの PNG 波形を作成する Java プログラム

于 2012-11-06T19:58:29.917 に答える