Spaces:
Running
Running
File size: 2,469 Bytes
03b76a9 d052f09 ef46557 50eafc0 03b76a9 ef46557 50eafc0 0e1a6dd ef46557 03a0d5b ef46557 50eafc0 f7a2d31 0a65394 ef46557 0a65394 ef46557 0a65394 d6ab360 07cf45f ef46557 07cf45f ef46557 07cf45f ef46557 07cf45f ef46557 d052f09 |
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
import wave
import gradio as gr
def get_audio_duration(audio_file):
"""Get the duration of the audio file in seconds."""
try:
with wave.open(audio_file, 'rb') as audio:
frames = audio.getnframes()
rate = audio.getframerate()
duration = frames / float(rate)
return duration
except wave.Error:
raise ValueError("Invalid audio file. Please upload a valid .wav file.")
def get_training_info(audio_file):
"""Determine training parameters based on the duration of the audio file."""
try:
if not audio_file:
raise gr.Error("Please provide an audio file :(")
return "."
duration = get_audio_duration(audio_file)
with wave.open(audio_file, 'rb') as audio:
sample_rate = audio.getframerate()
training_info = {
(0, 2): (150, 'TITAN'),
(2, 3): (200, 'TITAN'),
(3, 5): (250, 'TITAN'),
(5, 10): (300, 'normal'),
(10, 25): (500, 'Normal'),
(25, 45): (700, 'Normal'),
(45, 60): (1000, 'Normal')
}
for (min_duration, max_duration), (epochs, pretrain) in training_info.items():
if min_duration <= duration < max_duration:
return f'You should use the **{pretrain}** pretrain with **{epochs}** epochs at **{sample_rate / 1000} kHz** sample rate. Good luck with your training!'
return 'Duration is not within the specified range.'
except ValueError as e:
raise gr.Error(str(e))
with gr.Blocks(theme=gr.themes.Base(primary_hue="sky", secondary_hue="blue"), title="RVC TRAINING HELPER") as demo:
with gr.Tab("Main Settings"):
audio_input = gr.Audio(type="filepath", label="Your Audio here")
start_button = gr.Button("Start!")
output_text = gr.Textbox(scale=3, label="Your Output here")
start_button.click(get_training_info, inputs=[audio_input], outputs=[output_text])
with gr.Tab("Credits"):
gr.Markdown("### This code originally by [TheStinger](https://huggingface.co/TheStinger)<br>Edited by Blane187")
with gr.Tab('Tutorial'):
gr.Markdown(
"""
### Step by Step Guide
1. Upload an audio file (or record yourself by tapping the mic button).
2. Click the `Start!` button.
And you're done!
"""
)
demo.launch(debug=True)
|