Spaces:
Sleeping
Sleeping
File size: 3,034 Bytes
271f307 0064343 0477c9e 271f307 5baa862 271f307 4bb59b6 271f307 5baa862 271f307 fedb67a 9b66a3d 2197af3 8052ea6 9b66a3d aba73cd 9b66a3d 37f7a38 c5c3727 0064343 c5142ee 0064343 c5c3727 6299791 c5c3727 94899af 0064343 c56a226 e5ba1e3 0064343 |
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 |
from huggingface_hub import InferenceClient
import gradio as gr
import random
import prompts
from pypipertts import PyPiper
pp=PyPiper()
pp.load_mod(instr="en_US-joe-medium")
#client = InferenceClient("Qwen/QwQ-32B-Preview")
client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")
def format_prompt(message, 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,max_new_tokens,seed):
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}, {prompt}", history)
stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
output = ""
buf = ""
out_b=[]
for response in stream:
output += response.token.text
buf += response.token.text
if response.token.text == "\n" or response.token.text == "</s>" or response.token.text == ". ":
yield [(prompt,output)], output
buf=""
def tts(inp,voice,length,noise,width,sen_pause):
yield from pp.stream_tts(inp,voice,length,noise,width,sen_pause)
with gr.Blocks() as iface:
stt=gr.State()
gr.HTML("""""")
aud=gr.Audio(streaming=True,autoplay=True)
#chatbot=gr.Chatbot(show_label=False, show_share_button=False, show_copy_button=True, likeable=True, layout="panel"),
chatbot=gr.Chatbot()
msg = gr.Textbox()
with gr.Row():
submit_b = gr.Button()
stop_b = gr.Button("Stop")
clear = gr.ClearButton([msg, chatbot])
with gr.Accordion("Voice Controls",open=False):
names=gr.Dropdown(label="Voice", choices=pp.key_list,value="en_US-joe-medium")
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")
upd_btn.click(pp.load_mod,names,None)
#sub_b = submit_b.click(generate, [msg,chatbot],[msg,chatbot,sumbox,sum_out_box,hist_out_box])
#sub_e = msg.submit(generate, [msg, chatbot], [msg, chatbot,sumbox,sum_out_box,hist_out_box])
#stt.change(tts,[stt,names,length,noise,width,sen_pause],aud)
sub_b = submit_b.click(generate, [msg,chatbot],[chatbot,stt]).then(tts,[stt,names,length,noise,width,sen_pause],aud)
sub_e = msg.submit(generate, [msg, chatbot], aud)
stop_b.click(None,None,None, cancels=[sub_b,sub_e])
iface.queue(default_concurrency_limit=10).launch()
|