80 lines
2.9 KiB
Python
80 lines
2.9 KiB
Python
import gradio as gr
|
|
from core import Core
|
|
import os
|
|
|
|
def start_assistant(phone_number, order_items, delivery_address, payment_method):
|
|
global assistant
|
|
assistant.set_order_settings(
|
|
phone_number,
|
|
order_items,
|
|
delivery_address,
|
|
payment_method
|
|
)
|
|
assistant.assistant_start()
|
|
|
|
|
|
def stop_assistant():
|
|
assistant.assistant_stop()
|
|
|
|
|
|
def set_advanced_settings(speech_recog_timeout, window_size_sec, vad_threshold, min_silence_duration_ms, speech_pad_ms):
|
|
assistant.set_speech_recog_settings(
|
|
speech_recog_timeout,
|
|
window_size_sec,
|
|
vad_threshold,
|
|
min_silence_duration_ms,
|
|
speech_pad_ms
|
|
)
|
|
|
|
def set_voice_wav(speaker_wav):
|
|
speaker_wav = os.path.join(cwd, "voices", speaker_wav)
|
|
assistant.set_tts_settings(speaker_wav)
|
|
|
|
|
|
assistant = Core(
|
|
use_chatgpt_placeholder = True
|
|
)
|
|
|
|
cwd = os.path.dirname(os.path.realpath(__file__))
|
|
|
|
|
|
with gr.Blocks() as demo:
|
|
with gr.Tab("Basic Settings"):
|
|
with gr.Row():
|
|
phone_number = gr.Textbox(label="Twój Nr. Telefonu")
|
|
order_items = gr.Textbox(label="Zamówienie", lines=5)
|
|
delivery_address = gr.Textbox(label="Adres dostawy")
|
|
payment_method = gr.Dropdown(label="Metoda płatności", choices=["Gotówka", "Karta"])
|
|
with gr.Column():
|
|
speaker_wav = gr.Textbox(label="Wav głosu", value="lector.wav")
|
|
set_voice = gr.Button("Ustaw głos")
|
|
|
|
# init settings
|
|
#assistant.set_tts_settings(speaker_wav.value)
|
|
set_voice_wav(speaker_wav.value)
|
|
|
|
#set_voice.click(assistant.set_tts_settings, inputs=[speaker_wav], outputs=[])
|
|
set_voice.click(set_voice_wav, inputs=[speaker_wav], outputs=[])
|
|
with gr.Row():
|
|
start_btn = gr.Button("Start Pizzobota")
|
|
stop_btn = gr.Button("Stop Pizzobota")
|
|
|
|
|
|
|
|
start_btn.click(start_assistant, inputs=[phone_number, order_items, delivery_address, payment_method], outputs=[])
|
|
stop_btn.click(stop_assistant, inputs=[])
|
|
|
|
with gr.Tab("Advanced Settings"):
|
|
speech_recog_timeout = gr.Number(label="Speech Recog Timeout (sec)", value=1)
|
|
window_size_sec = gr.Number(label="Window Size (sec)", value=0.1)
|
|
vad_threshold = gr.Number(label="VAD Threshold", value=0.65)
|
|
min_silence_duration_ms = gr.Number(label="Min Silence Duration (ms)", value=250)
|
|
speech_pad_ms = gr.Number(label="Speech Pad (ms)", value=0)
|
|
|
|
# init settings
|
|
set_advanced_settings(speech_recog_timeout.value, window_size_sec.value, vad_threshold.value, min_silence_duration_ms.value, speech_pad_ms.value)
|
|
|
|
set_adv_btn = gr.Button("Ustaw")
|
|
set_adv_btn.click(set_advanced_settings, inputs=[speech_recog_timeout, window_size_sec, vad_threshold, min_silence_duration_ms, speech_pad_ms], outputs=[])
|
|
|
|
demo.launch() |