Spaces:
Running
Running
import gradio as gr | |
import torch | |
import librosa | |
import numpy as np | |
def audio_to_pth(audio): | |
# 音声ファイル(ファイルパス)を読み込む | |
y, sr = librosa.load(audio, sr=None) | |
# メルスペクトログラムに変換 | |
mel_spectrogram = librosa.feature.melspectrogram(y=y, sr=sr, n_mels=128) | |
# メルスペクトログラムを対数スケールに変換 | |
mel_spectrogram_db = librosa.power_to_db(mel_spectrogram, ref=np.max) | |
# メルスペクトログラムをテンソルに変換 | |
tensor = torch.tensor(mel_spectrogram_db) | |
# テンソルを5次元に変換 | |
tensor = tensor.unsqueeze(0).unsqueeze(0).unsqueeze(0) # 5次元に拡張 | |
# テンソルを .pth ファイルに保存 | |
output_path = "audio_features_5d.pth" | |
torch.save(tensor, output_path) | |
return output_path | |
# Gradio インターフェースの設定 | |
iface = gr.Interface( | |
fn=audio_to_pth, | |
inputs=gr.Audio(type="filepath"), | |
outputs="file", | |
title="Audio to 5D Tensor .PTH Converter", | |
description="Upload an audio file to convert it to a .pth file containing a 5D tensor with audio features in mel spectrogram format." | |
) | |
iface.launch() | |