-----
・追記(2024-8-25)
note にて
と
を公開しました。
-----
より具体的には、音声データからスペクトログラム画像を作成して、画像認識の機械学習(Google Cloud の Vertex AI)で何かを判定するなんてことができたらいいなと。例えば、原木椎茸のホダ化の具合なんかを判定できたら面白いのですけどね。
スペクトログラム画像というのは、下図のように音の周波数と時間の情報を視覚的に表現したものです。
(このスペクトログラム画像は、私が「あー」と言っている音声から作成)
そんなわけで、(ChatGPT の力も借りて)WAV 形式の音声データをスペクトログラム画像に変換する簡単な Python コードを作成しました。
import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile
from scipy.signal import spectrogram
# 音声ファイルの読み込み
sample_rate, samples = wavfile.read("input.wav")
# FFTをかけて周波数スペクトルを取得
frequencies, times, spec = spectrogram(samples, fs=sample_rate)
# スペクトログラム画像の描画
Z = 10. * np.log10(spec)
plt.imshow(Z, origin='lower', aspect='auto', cmap='viridis')
plt.xlabel('Time (sec)')
plt.ylabel('Frequency (Hz)')
plt.colorbar()
plt.show()

独習Python
by SimpleImageLink
***
音声データを圧縮して特徴を文字列として表現するということをやられている方がおり、似たようなことができないものかと思ったのですが、知識が足りな過ぎてうまくいかず……(勉強して出直します)。
それならばと、ライブラリを活用して比較的簡単にできそうだったスペクトログラム画像への変換を試みた次第です。
こういうものは、ひとまず思いついた時に思いついた部分だけでも作ってストックしておくと、いざ使いどころのアイデアが出たときにすぐに実行することができます。
Twitter (@nkkmd) 日々更新中です。
