Spaces:
Runtime error
Runtime error
File size: 1,582 Bytes
29eb402 4658d2a 29eb402 4b99cd3 29eb402 4658d2a 29eb402 4b99cd3 4658d2a 29eb402 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
import torch
import gradio as gr
import bigvgan
import librosa
import soundfile as sf
from meldataset import get_mel_spectrogram
# Tải mô hình BigVGAN
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model = bigvgan.BigVGAN.from_pretrained('nvidia/bigvgan_v2_44khz_128band_512x', use_cuda_kernel=False)
model = torch.nn.utils.parametrizations.weight_norm(model, name="weight_norm") # Cập nhật weight_norm
model = model.eval().to(device)
# Hàm tổng hợp âm thanh
def synthesize_audio(audio_file):
# Tải và xử lý tệp âm thanh
wav, sr = librosa.load(audio_file, sr=model.h.sampling_rate, mono=True)
wav = torch.FloatTensor(wav).unsqueeze(0).to(device)
# Tính toán mel spectrogram
mel = get_mel_spectrogram(wav, model.h).to(device)
# Tổng hợp âm thanh từ mel spectrogram
with torch.inference_mode():
wav_gen = model(mel)
# Chuyển đổi tín hiệu âm thanh sang định dạng PCM 16 bit
wav_gen_float = wav_gen.squeeze(0).cpu()
wav_gen_int16 = (wav_gen_float * 32767.0).numpy().astype('int16')
# Lưu tệp âm thanh
output_path = "output.wav"
sf.write(output_path, wav_gen_int16, model.h.sampling_rate, subtype='PCM_16')
return output_path
# Tạo giao diện Gradio
iface = gr.Interface(
fn=synthesize_audio,
inputs=gr.Audio(type="filepath"),
outputs=gr.Audio(type="filepath"),
title="BigVGAN Audio Synthesis",
description="Upload an audio file to synthesize a new audio waveform using BigVGAN."
)
# Chạy ứng dụng
iface.launch()
|