Is it possible to convert multiple signals into a single mel spectrum image?
Currently, I have converted 16 signals to spectrum with a code like equation, but it is 16 images. I would like to convert them into a single mel spectrum image.
import numpy as np
import matplotlib.pyplot as plt
import soundfile as sf
import torch
import torchaudio
print(torch.__version__)
print(torchaudio.__version__)
!pip install boto3
import io
import os
import tarfile
import tempfile
import boto3
import matplotlib.pyplot as plt
import requests
from botocore import UNSIGNED
from botocore.config import Config
from IPython.display import Audio
from torchaudio.utils import download_asset
SAMPLE_GSM = download_asset("tutorial-assets/steam-train-whistle-daniel_simon.gsm")
SAMPLE_WAV = download_asset("tutorial-assets/Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav")
SAMPLE_WAV_8000 = download_asset("tutorial-assets/Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042-8000hz.wav")
waveform, sample_rate = torchaudio.load(SAMPLE_WAV)
def plot_specgram(waveform, sample_rate, title="Spectrogram"):
waveform = waveform.numpy()
k = waveform
for i in range(15):
waveform = np.concatenate([waveform,k],0)
num_channels, num_frames = waveform.shape
figure, axes = plt.subplots(num_channels, 1)
if num_channels == 1:
axes = [axes]
for c in range(num_channels):
axes[c].specgram(waveform[c], Fs=sample_rate)
if num_channels > 1:
axes[c].set_ylabel(f"Channel {c+1}")
figure.suptitle(title)
plt.show(block=False)
plot_specgram(waveform, sample_rate)