add translation send/receive checkbox

This commit is contained in:
misyaguziya
2023-06-13 19:17:30 +09:00
parent 115d3a75c6
commit 96472dfc81
2 changed files with 65 additions and 38 deletions

100
VRCT.py
View File

@@ -19,7 +19,8 @@ class App(customtkinter.CTk):
self.PATH_CONFIG = "./config.json" self.PATH_CONFIG = "./config.json"
## main window ## main window
self.ENABLE_TRANSLATION = False self.ENABLE_TRANSLATION = False
self.ENABLE_TRANSCRIPTION = False self.ENABLE_TRANSCRIPTION_SEND = False
self.ENABLE_TRANSCRIPTION_RECEIVE = False
self.ENABLE_FOREGROUND = False self.ENABLE_FOREGROUND = False
## UI ## UI
self.TRANSPARENCY = 100 self.TRANSPARENCY = 100
@@ -61,8 +62,10 @@ class App(customtkinter.CTk):
# main window # main window
if "ENABLE_TRANSLATION" in config.keys(): if "ENABLE_TRANSLATION" in config.keys():
self.ENABLE_TRANSLATION = config["ENABLE_TRANSLATION"] self.ENABLE_TRANSLATION = config["ENABLE_TRANSLATION"]
if "ENABLE_TRANSCRIPTION" in config.keys(): if "ENABLE_TRANSCRIPTION_SEND" in config.keys():
self.ENABLE_TRANSCRIPTION = config["ENABLE_TRANSCRIPTION"] self.ENABLE_TRANSCRIPTION_SEND = config["ENABLE_TRANSCRIPTION_SEND"]
if "ENABLE_TRANSCRIPTION_RECEIVE" in config.keys():
self.ENABLE_TRANSCRIPTION_RECEIVE = config["ENABLE_TRANSCRIPTION_RECEIVE"]
if "ENABLE_FOREGROUND" in config.keys(): if "ENABLE_FOREGROUND" in config.keys():
self.ENABLE_FOREGROUND = config["ENABLE_FOREGROUND"] self.ENABLE_FOREGROUND = config["ENABLE_FOREGROUND"]
@@ -121,7 +124,8 @@ class App(customtkinter.CTk):
with open(self.PATH_CONFIG, 'w') as fp: with open(self.PATH_CONFIG, 'w') as fp:
config = { config = {
"ENABLE_TRANSLATION": self.ENABLE_TRANSLATION, "ENABLE_TRANSLATION": self.ENABLE_TRANSLATION,
"ENABLE_TRANSCRIPTION": self.ENABLE_TRANSCRIPTION, "ENABLE_TRANSCRIPTION_SEND": self.ENABLE_TRANSCRIPTION_SEND,
"ENABLE_TRANSCRIPTION_RECEIVE": self.ENABLE_TRANSCRIPTION_RECEIVE,
"ENABLE_FOREGROUND": self.ENABLE_FOREGROUND, "ENABLE_FOREGROUND": self.ENABLE_FOREGROUND,
"TRANSPARENCY": self.TRANSPARENCY, "TRANSPARENCY": self.TRANSPARENCY,
"APPEARANCE_THEME": self.APPEARANCE_THEME, "APPEARANCE_THEME": self.APPEARANCE_THEME,
@@ -172,16 +176,27 @@ class App(customtkinter.CTk):
) )
self.checkbox_translation.grid(row=0, column=0, columnspan=2 ,padx=10, pady=(5, 5), sticky="we") self.checkbox_translation.grid(row=0, column=0, columnspan=2 ,padx=10, pady=(5, 5), sticky="we")
# add checkbox transcription # add checkbox transcription send
self.checkbox_transcription = customtkinter.CTkCheckBox( self.checkbox_transcription_send = customtkinter.CTkCheckBox(
self.sidebar_frame, self.sidebar_frame,
text="Transcription", text="TranscriptionSend",
onvalue=True, onvalue=True,
offvalue=False, offvalue=False,
command=self.checkbox_transcription_callback, command=self.checkbox_transcription_send_callback,
font=customtkinter.CTkFont(family=self.FONT_FAMILY) font=customtkinter.CTkFont(family=self.FONT_FAMILY)
) )
self.checkbox_transcription.grid(row=1, column=0, columnspan=2 ,padx=10, pady=(5, 5), sticky="we") self.checkbox_transcription_send.grid(row=1, column=0, columnspan=2 ,padx=10, pady=(5, 5), sticky="we")
# add checkbox transcription receive
self.checkbox_transcription_receive = customtkinter.CTkCheckBox(
self.sidebar_frame,
text="TranscriptionReceive",
onvalue=True,
offvalue=False,
command=self.checkbox_transcription_receive_callback,
font=customtkinter.CTkFont(family=self.FONT_FAMILY)
)
self.checkbox_transcription_receive.grid(row=2, column=0, columnspan=2 ,padx=10, pady=(5, 5), sticky="we")
# add checkbox foreground # add checkbox foreground
self.checkbox_foreground = customtkinter.CTkCheckBox( self.checkbox_foreground = customtkinter.CTkCheckBox(
@@ -192,7 +207,7 @@ class App(customtkinter.CTk):
command=self.checkbox_foreground_callback, command=self.checkbox_foreground_callback,
font=customtkinter.CTkFont(family=self.FONT_FAMILY) font=customtkinter.CTkFont(family=self.FONT_FAMILY)
) )
self.checkbox_foreground.grid(row=2, column=0, columnspan=2 ,padx=10, pady=(5, 5), sticky="we") self.checkbox_foreground.grid(row=3, column=0, columnspan=2 ,padx=10, pady=(5, 5), sticky="we")
# add button information # add button information
self.button_information = customtkinter.CTkButton( self.button_information = customtkinter.CTkButton(
@@ -245,7 +260,7 @@ class App(customtkinter.CTk):
font=customtkinter.CTkFont(family=self.FONT_FAMILY) font=customtkinter.CTkFont(family=self.FONT_FAMILY)
) )
self.textbox_message_receive_log.grid(row=0, column=0, padx=0, pady=0, sticky="nsew") self.textbox_message_receive_log.grid(row=0, column=0, padx=0, pady=0, sticky="nsew")
# self.textbox_message_receive_log.configure(state='disabled') self.textbox_message_receive_log.configure(state='disabled')
# add textbox message system log # add textbox message system log
self.textbox_message_system_log = customtkinter.CTkTextbox( self.textbox_message_system_log = customtkinter.CTkTextbox(
@@ -253,7 +268,7 @@ class App(customtkinter.CTk):
font=customtkinter.CTkFont(family=self.FONT_FAMILY) font=customtkinter.CTkFont(family=self.FONT_FAMILY)
) )
self.textbox_message_system_log.grid(row=0, column=0, padx=0, pady=0, sticky="nsew") self.textbox_message_system_log.grid(row=0, column=0, padx=0, pady=0, sticky="nsew")
# self.textbox_message_system_log.configure(state='disabled') self.textbox_message_system_log.configure(state='disabled')
# add entry message box # add entry message box
self.entry_message_box = customtkinter.CTkEntry( self.entry_message_box = customtkinter.CTkEntry(
@@ -285,12 +300,19 @@ class App(customtkinter.CTk):
else: else:
self.checkbox_translation.deselect() self.checkbox_translation.deselect()
## set checkbox enable transcription ## set checkbox enable transcription send
if self.ENABLE_TRANSCRIPTION: if self.ENABLE_TRANSCRIPTION_SEND:
self.checkbox_transcription.select() self.checkbox_transcription_send.select()
else: else:
self.checkbox_transcription.deselect() self.checkbox_transcription_send.deselect()
self.checkbox_transcription_callback() self.checkbox_transcription_send_callback()
## set checkbox enable transcription receive
if self.ENABLE_TRANSCRIPTION_RECEIVE:
self.checkbox_transcription_receive.select()
else:
self.checkbox_transcription_receive.deselect()
self.checkbox_transcription_receive_callback()
## set set checkbox enable foreground ## set set checkbox enable foreground
if self.ENABLE_FOREGROUND: if self.ENABLE_FOREGROUND:
@@ -317,10 +339,7 @@ class App(customtkinter.CTk):
def button_config_callback(self): def button_config_callback(self):
if self.config_window is None or not self.config_window.winfo_exists(): if self.config_window is None or not self.config_window.winfo_exists():
try: self.config_window = window_config.ToplevelWindowConfig(self)
self.config_window = window_config.ToplevelWindowConfig(self)
except Exception as e:
print(e)
self.config_window.focus() self.config_window.focus()
def button_information_callback(self): def button_information_callback(self):
@@ -339,30 +358,37 @@ class App(customtkinter.CTk):
self.textbox_message_system_log.see("end") self.textbox_message_system_log.see("end")
utils.save_json(self.PATH_CONFIG, "ENABLE_TRANSLATION", self.ENABLE_TRANSLATION) utils.save_json(self.PATH_CONFIG, "ENABLE_TRANSLATION", self.ENABLE_TRANSLATION)
def checkbox_transcription_callback(self): def checkbox_transcription_send_callback(self):
self.ENABLE_TRANSCRIPTION = self.checkbox_transcription.get() self.ENABLE_TRANSCRIPTION_SEND = self.checkbox_transcription_send.get()
if self.ENABLE_TRANSCRIPTION is True: if self.ENABLE_TRANSCRIPTION_SEND is True:
# start threading # start threading
self.vr.set_mic(self.CHOICE_MIC_DEVICE, threshold=self.INPUT_MIC_THRESHOLD, is_dynamic=self.INPUT_MIC_IS_DYNAMIC) self.vr.set_mic(self.CHOICE_MIC_DEVICE, threshold=self.INPUT_MIC_THRESHOLD, is_dynamic=self.INPUT_MIC_IS_DYNAMIC)
self.vr.init_mic() self.vr.init_mic()
self.vr.set_spk(self.CHOICE_SPEAKER_DEVICE)
self.vr.init_spk()
th_vr_listen_mic = threading.Thread(target = self.vr_listen_mic) th_vr_listen_mic = threading.Thread(target = self.vr_listen_mic)
th_vr_recognize_mic = threading.Thread(target = self.vr_recognize_mic) th_vr_recognize_mic = threading.Thread(target = self.vr_recognize_mic)
th_vr_listen_spk = threading.Thread(target = self.vr_listen_spk)
th_vr_recognize_spk = threading.Thread(target = self.vr_recognize_spk)
th_vr_listen_mic.start() th_vr_listen_mic.start()
th_vr_recognize_mic.start() th_vr_recognize_mic.start()
utils.save_json(self.PATH_CONFIG, "ENABLE_TRANSCRIPTION_SEND", self.ENABLE_TRANSCRIPTION_SEND)
def checkbox_transcription_receive_callback(self):
self.ENABLE_TRANSCRIPTION_RECEIVE = self.checkbox_transcription_receive.get()
if self.ENABLE_TRANSCRIPTION_RECEIVE is True:
# start threading
self.vr.set_spk(
self.CHOICE_SPEAKER_DEVICE,
# int(self.INPUT_SPEAKER_SAMPLING_RATE),
# int(self.INPUT_SPEAKER_INTERVAL),
# int(self.INPUT_SPEAKER_BUFFER_SIZE),
)
self.vr.init_spk()
th_vr_listen_spk = threading.Thread(target = self.vr_listen_spk)
th_vr_recognize_spk = threading.Thread(target = self.vr_recognize_spk)
th_vr_listen_spk.start() th_vr_listen_spk.start()
th_vr_recognize_spk.start() th_vr_recognize_spk.start()
utils.save_json(self.PATH_CONFIG, "ENABLE_TRANSCRIPTION_RECEIVE", self.ENABLE_TRANSCRIPTION_RECEIVE)
utils.save_json(self.PATH_CONFIG, "ENABLE_TRANSCRIPTION", self.ENABLE_TRANSCRIPTION)
def vr_listen_mic(self): def vr_listen_mic(self):
while self.checkbox_transcription.get() is True: while self.checkbox_transcription_send.get() is True:
self.vr.listen_mic() self.vr.listen_mic()
def vr_recognize_mic(self): def vr_recognize_mic(self):
@@ -371,7 +397,7 @@ class App(customtkinter.CTk):
self.textbox_message_system_log.configure(state='disabled') self.textbox_message_system_log.configure(state='disabled')
self.textbox_message_system_log.see("end") self.textbox_message_system_log.see("end")
while self.checkbox_transcription.get() is True: while self.checkbox_transcription_send.get() is True:
message = self.vr.recognize_mic(language=self.INPUT_MIC_VOICE_LANGUAGE) message = self.vr.recognize_mic(language=self.INPUT_MIC_VOICE_LANGUAGE)
if len(message) > 0: if len(message) > 0:
# translate # translate
@@ -402,11 +428,11 @@ class App(customtkinter.CTk):
self.textbox_message_send_log.see("end") self.textbox_message_send_log.see("end")
def vr_listen_spk(self): def vr_listen_spk(self):
while self.checkbox_transcription.get() is True: while self.checkbox_transcription_receive.get() is True:
self.vr.listen_spk() self.vr.listen_spk()
def vr_recognize_spk(self): def vr_recognize_spk(self):
while self.checkbox_transcription.get() is True: while self.checkbox_transcription_receive.get() is True:
message = self.vr.recognize_spk(language=self.INPUT_SPEAKER_VOICE_LANGUAGE) message = self.vr.recognize_spk(language=self.INPUT_SPEAKER_VOICE_LANGUAGE)
if len(message) > 0: if len(message) > 0:
# translate # translate

View File

@@ -512,7 +512,8 @@ class ToplevelWindowConfig(customtkinter.CTkToplevel):
# main window # main window
self.parent.checkbox_translation.configure(font=customtkinter.CTkFont(family=choice)) self.parent.checkbox_translation.configure(font=customtkinter.CTkFont(family=choice))
self.parent.checkbox_transcription.configure(font=customtkinter.CTkFont(family=choice)) self.parent.checkbox_transcription_send.configure(font=customtkinter.CTkFont(family=choice))
self.parent.checkbox_transcription_receive.configure(font=customtkinter.CTkFont(family=choice))
self.parent.checkbox_foreground.configure(font=customtkinter.CTkFont(family=choice)) self.parent.checkbox_foreground.configure(font=customtkinter.CTkFont(family=choice))
self.parent.textbox_message_log.configure(font=customtkinter.CTkFont(family=choice)) self.parent.textbox_message_log.configure(font=customtkinter.CTkFont(family=choice))
self.parent.entry_message_box.configure(font=customtkinter.CTkFont(family=choice)) self.parent.entry_message_box.configure(font=customtkinter.CTkFont(family=choice))