Spaces:
Runtime error
Runtime error
File size: 1,778 Bytes
33051d3 4e01295 c764bfb 33051d3 c764bfb 4e01295 33051d3 4e01295 9a433d2 33051d3 bed109a c764bfb 33051d3 7917b4e 33051d3 7917b4e 33051d3 7917b4e 6fa7850 7917b4e c764bfb 7917b4e c764bfb 7917b4e 7337c95 7917b4e e780472 7917b4e c764bfb 7917b4e c764bfb |
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 |
import logging
from typing import cast
from pdfminer.high_level import extract_text
from huggingface_hub import hf_hub_download, list_repo_files
import gradio as gr
from balacoon_tts import TTS
# Global TTS module, initialized from a selected model
tts = None
def read_pdf(file):
text = extract_text(file.name)
return text
def synthesize_audio(file, model_name_str, speaker_str):
text_str = read_pdf(file)
if len(text_str) > 1024:
text_str = text_str[:1024]
samples = tts.synthesize(text_str, speaker_str)
return (samples, tts.get_sampling_rate())
def main():
logging.basicConfig(level=logging.INFO)
file_input = gr.inputs.File(label="Upload PDF")
model_files = list_repo_files(repo_id="balacoon/tts")
model_name_dropdown = gr.inputs.Dropdown(label="Model", choices=model_files)
def set_model(model_name_str: str):
model_path = hf_hub_download(repo_id="balacoon/tts", filename=model_name_str)
global tts
tts = TTS(model_path)
speakers = tts.get_speakers()
default_speaker = speakers[-1]
speaker_dropdown.choices = speakers
return speakers, default_speaker
speaker_dropdown = gr.inputs.Dropdown(label="Speaker", choices=[])
audio = gr.outputs.Audio(label="Generated Audio", type="numpy")
def generate_audio(file, model_name_str, speaker_str):
return synthesize_audio(file, model_name_str, speaker_str)
iface = gr.Interface(
fn=generate_audio,
inputs=[file_input, model_name_dropdown, speaker_dropdown],
outputs=audio,
title="PDF TO SPEECH CONVERTER",
layout="rows",
debug=True
)
model_name_dropdown.set_action(set_model)
iface.launch()
if __name__ == "__main__":
main()
|