オーディオからサウンドウェーブを作成するにはどうすればよいですか?
さまざまなプログラミング言語とライブラリを使用してこれを行う方法は次のとおりです。
1。 LibrosaとMatplotlibでPythonを使用:
これは人気があり、比較的簡単な方法です。
`` python
Librosaをインポートします
Librosa.displayをインポートします
pltとしてmatplotlib.pyplotをインポートします
オーディオファイルをロード
file_path ='your_audio_file.wav'#ファイルパスに置き換えます
y、sr =librosa.load(file_path)
波形を表示
plt.figure(figsize =(14、5))
liblosa.display.waveshow(y、sr =sr)
plt.title( 'waveform')
plt.xlabel( 'time(s)')
plt.ylabel( 'amplitude')
plt.show()
オプションで、図を保存するには:
plt.savefig( 'waveform.png')
`` `
このコードは次のとおりです。
* 必要なライブラリをインポート: オーディオ処理用の「Librosa」およびプロット用の「Matplotlib」。
* オーディオをロードします: `librosa.load()`オーディオファイルを読み取り、オーディオデータ( `y`)とサンプルレート(` sr`)を返します。
* 波形を表示します: `librosa.display.waveshow()`プロットを作成します。 サンプルレートに基づいて時間スケーリングを自動的に処理します。
2。 ScipyとMatplotlibでPythonを使用:
このアプローチでは、低レベルのライブラリを使用しているため、より多くのコントロールが必要ですが、もう少しコードが必要です。
`` python
scipy.io.wavfileをインポートします
pltとしてmatplotlib.pyplotをインポートします
npとしてnumpyをインポートします
オーディオファイルをロード
レート、data =scipy.io.wavfile.read( 'your_audio_file.wav')
波形をプロット
plt.figure(figsize =(14、5))
plt.plot(データ)
plt.title( 'waveform')
plt.xlabel( 'sample')
plt.ylabel( 'amplitude')
plt.show()
ステレオオーディオの場合、各チャネルを個別にプロット
data.ndim ==2の場合:
plt.figure(figsize =(14、5))
plt.plot(data [:、0]、label ='left channel')
plt.plot(data [:、1]、label ='right channel')
plt.legend()
plt.title( 'waveform(stereo)')
plt.xlabel( 'sample')
plt.ylabel( 'amplitude')
plt.show()
`` `
このコード:
* `scipy.io.wavfile`を使用してWAVファイルを読み取ります。 これにより、生のオーディオデータがロードされることに注意してください。さまざまなデータ型を処理する必要がある場合があります(たとえば、フローティングポイントに変換)。
* `matplotlib.pyplot.plot()`を使用してデータを直接プロットします。 X軸は、時間ではなくサンプル番号を表します(Librosaの例とは異なります)。
どちらのコードを実行する前に
* 必要なライブラリをインストール: 「Librosa」、「Matplotlib」、「Scipy」、および「numpy」をインストールする必要があります。 あなたはこれをPIPを使用して行うことができます: `PIPインストールLibrosa Matplotlib Scipy numpy`
* `'Your_audio_file.wav'`をオーディオファイルへの実際のパスに置き換えます。 ファイルがWAVファイルであることを確認してください。他の形式では、追加のライブラリまたは変換手順が必要になる場合があります。
これらの方法は音波を視覚化することを忘れないでください。 実際の音波は、空気圧の変動の物理的な現象です。視覚化は、これらのバリエーションを表すデジタルデータのグラフィカルな表現です。