fast-voice-full / app.py
broadfield's picture
Update app.py
d18cd86 verified
raw
history blame
1.73 kB
import gradio as gr
import io
import os
import uuid
import requests
import gradio as gr
from pypdf import PdfReader
from pypipertts import PyPiper
import subprocess
pp=PyPiper()
pp.load_mod()
def read_pdf(pdf_url):
print(pdf_url)
file_name=f"{uuid.uuid4()}.pdf"
response = requests.get(pdf_url.replace('http:','https:'), stream=True)
if response.status_code == 200:
with open(file_name, "wb") as f:
f.write(response.content)
else:
print(response.status_code)
txt_out=""
reader = PdfReader(file_name)
number_of_pages = len(reader.pages)
#file_name=str(pdf_path).split("\\")[-1]
for i in range(number_of_pages):
page = reader.pages[i]
txt_out+=page.extract_text()
#return txt_out
return txt_out
def load_html(url):
html=f"""<iframe src="https://docs.google.com/viewer?url={url})&embedded=true" frameborder="0" height="1200px" width="100%"></iframe></div>"""
return html
js="""
function start() {
const urlParams = new URLSearchParams(window.location.search);
var parampdf = urlParams.get('pdfurl')
var parammod = urlParams.get('mod')
return parampdf,parammod
}"""
with gr.Blocks() as app:
a=gr.Audio(streaming=True,autoplay=True)
h=gr.HTML()
with gr.Column(visible=True):
t=gr.Textbox(label="url",interactive=False,visible=True)
m=gr.Textbox(label="mod",interactive=False,visible=True)
bulk=gr.Textbox(label="bulk",interactive=False,visible=True)
app.load(None,None,[t,m],js=js)
t.change(read_pdf,t,bulk)
m.change(pp.load_mod,m,None)
bulk.change(pp.stream_tts,[bulk,m],a)
app.queue(default_concurrency_limit=20).launch(max_threads=40)