2023-12-06 01:19:49 +01:00

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()