Spaces:
Sleeping
Sleeping
File size: 3,141 Bytes
271f307 0064343 f8bb954 0064343 0477c9e 271f307 27fc254 8d1c101 933b9d8 adc6fa8 8037104 f64fa83 271f307 5f8069c 025291b 467106a 5baa862 271f307 4bb59b6 271f307 5baa862 271f307 c3aa9e5 271f307 fedb67a 2197af3 8052ea6 467106a 837d0bc a5a9cdb 61bec1b 6ac2e72 61bec1b ce695b3 fcb3120 ad8222c d5a8fce 0064343 61bec1b 837d0bc 8f3e7b5 837d0bc 894c749 8f3e7b5 c5c3727 6ae48e4 933b9d8 c5c3727 d5a8fce c65b118 6ae48e4 d5a8fce 1ddfd8c 837d0bc 087af30 1fa8310 |
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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
from huggingface_hub import InferenceClient
import gradio as gr
import random
import prompts
from pypipertts import PyPiper
import codecs
pp=PyPiper()
#client = InferenceClient("Qwen/QwQ-32B-Preview")
client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")
def format_prompt(message, history):
prompt=""
if history:
print(history)
prompt = "<s>"
for user_prompt, bot_response in history:
#print (bot_response)
prompt += f"[INST] {user_prompt} [/INST]"
prompt += f" {bot_response}</s> "
prompt += f"[INST] {message} [/INST]"
return prompt
def generate(prompt,history):
if not history:
history=[]
seed = random.randint(1,9999999999999)
print(seed)
system_prompt = prompts.ASSISTANT
generate_kwargs = dict(
temperature=0.9,
max_new_tokens=512,
top_p=0.95,
repetition_penalty=1.0,
do_sample=True,
seed=seed,
)
formatted_prompt = format_prompt(f"{system_prompt}\nUSER:{prompt}", history)
stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
output = ""
buf = ""
for response in stream:
output += response.token.text
yield [(prompt,output)]
def load_mod(model):
yield f"Loading: {model}"
pp.load_mod(model)
yield f"Voice Loaded: {model}"
def tts(inp,names,length,noise,width,sen_pause):
#print(inp)
print(inp[-1][-1])
txt = inp[-1][-1].strip("</s>")
#decoded_text = codecs.decode(txt, "unicode_escape")
yield from pp.stream_tts(txt,names,length,noise,width,sen_pause)
with gr.Blocks() as iface:
gr.HTML("""<center><div style='font-size:xx-large;font-weight:900;'>Mixtral 8x7b Chatbot + Piper TTS</div>""")
chatbot=gr.Chatbot(show_label=False, show_share_button=False, show_copy_button=True, layout="panel")
prompt = gr.Textbox(label="Prompt")
with gr.Row():
submit_b = gr.Button()
stop_b = gr.Button("Stop")
clear = gr.ClearButton([chatbot,prompt])
aud=gr.Audio(streaming=True, autoplay=True)
with gr.Accordion("Voice Controls",open=False):
msg = gr.HTML("""""")
names=gr.Dropdown(label="Voice", choices=pp.key_list,value="en_US-ryan-high")
length=gr.Slider(label="Length", minimum=0.01, maximum=10.0, value=1)
noise=gr.Slider(label="Noise", minimum=0.01, maximum=3.0, value=0.5)
width=gr.Slider(label="Noise Width", minimum=0.01, maximum=3.0, value=0.5)
sen_pause=gr.Slider(label="Sentence Pause", minimum=0.1, maximum=10.0, value=1)
upd_btn=gr.Button("Update Voice")
with gr.Row(visible=False):
stt=gr.Textbox()
iface.load(load_mod,names,msg)
upd_btn.click(tts,[chatbot,names,length,noise,width,sen_pause],aud)
sub_b = submit_b.click(generate, [prompt,chatbot],chatbot).then(tts,[chatbot,names,length,noise,width,sen_pause],aud)
names_change=names.change(load_mod,names,msg)
stop_b.click(None,None,None, cancels=[sub_b,names_change])
iface.queue(default_concurrency_limit=10).launch(max_threads=40)
|