From e0a68c8f041421f77be73cc8316f8338a8c38a72 Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Wed, 28 Jun 2023 00:49:34 +0900 Subject: [PATCH] update languages typing --- VRCT.py | 12 +++++----- transcription.py | 25 +++++++------------- translation.py | 61 +++++++++++++++++++++++++++--------------------- 3 files changed, 49 insertions(+), 49 deletions(-) diff --git a/VRCT.py b/VRCT.py index 864ca661..6fcb15d1 100644 --- a/VRCT.py +++ b/VRCT.py @@ -33,17 +33,17 @@ class App(customtkinter.CTk): self.FONT_FAMILY = "Yu Gothic UI" ## Translation self.CHOICE_TRANSLATOR = "DeepL(web)" - self.INPUT_SOURCE_LANG = "JA" - self.INPUT_TARGET_LANG = "EN" - self.OUTPUT_SOURCE_LANG = "EN" - self.OUTPUT_TARGET_LANG = "JA" + self.INPUT_SOURCE_LANG = "Japanese" + self.INPUT_TARGET_LANG = "English" + self.OUTPUT_SOURCE_LANG = "English" + self.OUTPUT_TARGET_LANG = "Japanese" ## Transcription self.CHOICE_MIC_DEVICE = self.vr.search_default_device()[0] - self.INPUT_MIC_VOICE_LANGUAGE = "ja-JP" + self.INPUT_MIC_VOICE_LANGUAGE = "Japan" self.INPUT_MIC_IS_DYNAMIC = False self.INPUT_MIC_THRESHOLD = 300 self.CHOICE_SPEAKER_DEVICE = self.vr.search_default_device()[1] - self.INPUT_SPEAKER_VOICE_LANGUAGE = "en-US" + self.INPUT_SPEAKER_VOICE_LANGUAGE = "United States" self.INPUT_SPEAKER_INTERVAL = 4 ## Parameter diff --git a/transcription.py b/transcription.py index 56a6554a..6e113895 100644 --- a/transcription.py +++ b/transcription.py @@ -1,6 +1,7 @@ import queue import speech_recognition as sr import pyaudiowpatch as pyaudio +import languages # VoiceRecognizer class VoiceRecognizer(): @@ -8,25 +9,17 @@ class VoiceRecognizer(): self.r = sr.Recognizer() self.p = pyaudio.PyAudio() - self.languages = [ - "ja-JP","en-US","en-GB","af-ZA","ar-DZ","ar-BH","ar-EG","ar-IL","ar-IQ","ar-JO","ar-KW","ar-LB","ar-MA", - "ar-OM","ar-PS","ar-QA","ar-SA","ar-TN","ar-AE","eu-ES","bg-BG","ca-ES","cmn-Hans-CN","cmn-Hans-HK", - "cmn-Hant-TW","yue-Hant-HK","hr_HR","cs-CZ","da-DK","en-AU","en-CA","en-IN","en-IE","en-NZ","en-PH", - "en-ZA","fa-IR","fr-FR","fil-PH","gl-ES","de-DE","el-GR","fi-FI","he-IL","hi-IN","hu-HU","id-ID","is-IS", - "it-IT","it-CH","ko-KR","lt-LT","ms-MY","nl-NL","nb-NO","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","sr-RS", - "sk-SK","sl-SI","es-AR","es-BO","es-CL","es-CO","es-CR","es-DO","es-EC","es-SV","es-GT","es-HN","es-MX", - "es-NI","es-PA","es-PY","es-PE","es-PR","es-ES","es-UY","es-US","es-VE","sv-SE","th-TH","tr-TR","uk-UA", - "vi-VN","zu-ZA" - ] + self.dict_languages = languages.recognize_lang + self.languages = list(self.dict_languages.keys()) self.mic_device_name = None self.mic_threshold = 50 self.mic_is_dynamic = False - self.mic_language = "ja-JP" + self.mic_language = "Japan" self.mic_queue = queue.Queue(10) self.spk_device = None self.spk_interval = 3 - self.spk_language = "ja-JP" + self.spk_language = "Japan" self.spk_stream = None self.spk_queue = queue.Queue(10) @@ -77,7 +70,7 @@ class VoiceRecognizer(): break return name_mic, name_spk - def set_mic(self, device_name, threshold=50, is_dynamic=False, language="ja-JP"): + def set_mic(self, device_name, threshold=50, is_dynamic=False, language="Japan"): input_device_list = self.search_input_device() self.mic_device_name = [device["index"] for device in input_device_list if device["name"] == device_name][0] self.mic_threshold = threshold @@ -101,12 +94,12 @@ class VoiceRecognizer(): def recognize_mic(self): try: audio = self.mic_queue.get() - text = self.r.recognize_google(audio, language=self.mic_language) + text = self.r.recognize_google(audio, language=self.dict_languages[self.mic_language]) except: text = "" return text - def set_spk(self, device_name, interval, language): + def set_spk(self, device_name, interval=4, language="Japan"): output_device_list = self.search_output_device() self.spk_device = [device for device in output_device_list if device["name"] == device_name][0] self.spk_interval = interval @@ -147,7 +140,7 @@ class VoiceRecognizer(): try: in_data = self.spk_queue.get() audio_data = sr.AudioData(in_data, int(self.spk_device["defaultSampleRate"]), self.spk_interval) - text = self.r.recognize_google(audio_data, language=self.spk_language) + text = self.r.recognize_google(audio_data, language=self.dict_languages[self.spk_language]) except: text = "" return text diff --git a/translation.py b/translation.py index cbb96f4f..58f8ad8c 100644 --- a/translation.py +++ b/translation.py @@ -1,6 +1,7 @@ import deepl import deepl_translate import translators as ts +import languages # Translator class Translator(): @@ -11,30 +12,18 @@ class Translator(): "Google(web)": False, "Bing(web)": False, } + + self.dict_languages = {} + self.dict_languages["DeepL(web)"] = languages.deepl_translate_lang + self.dict_languages["DeepL(auth)"] = languages.deepl_lang + self.dict_languages["Google(web)"] = languages.translators_google_lang + self.dict_languages["Bing(web)"] = languages.translators_bing_lang + self.languages = {} - self.languages["DeepL(web)"] = [ - "JA","EN","BG","ZH","CS","DA","NL","ET","FI","FR","DE","EL","HU","IT", - "LV","LT","PL","PT","RO","RU","SK","SL","ES","SV", - ] - self.languages["DeepL(auth)"] = [ - "JA","EN-US","EN-GB","BG","CS","DA","DE","EL","ES","ET","FI","FR","HU", - "ID","IT","KO","LT","LV","NB","NL","PL","PT","PT-BR","PT-PT","RO","RU", - "SK","SL","SV","TR","UK","ZH", - ] - self.languages["Google(web)"] = [ - "ja","en","zh","ar","ru","fr","de","es","pt","it","ko","el","nl","hi", - "tr","ms","th","vi","id","he","pl","mn","cs","hu","et","bg","da","fi", - "ro","sv","sl","fa","bs","sr","tl","ht","ca","hr","lv","lt","ur","uk", - "cy","sw","sm","sk","af","no","bn","mg","mt","gu","ta","te","pa","am", - "az","be","ceb","eo","eu","ga" - ] - self.languages["Bing(web)"] = [ - "ja","en","zh","ar","ru","fr","de","es","pt","it","ko","el","nl","hi", - "tr","ms","th","vi","id","he","pl","cs","hu","et","bg","da","fi","ro", - "sv","sl","fa","bs","sr","fj","tl","ht","ca","hr","lv","lt","ur","uk", - "cy","ty","to","sw","sm","sk","af","no","bn","mg","mt","otq","tlh","gu", - "ta","te","pa","ga" - ] + self.languages["DeepL(web)"] = list(self.dict_languages["DeepL(web)"].keys()) + self.languages["DeepL(auth)"] = list(self.dict_languages["DeepL(auth)"].keys()) + self.languages["Google(web)"] = list(self.dict_languages["Google(web)"].keys()) + self.languages["Bing(web)"] = list(self.dict_languages["Bing(web)"].keys()) self.deepl_client = None def authentication(self, translator_name, authkey=None): @@ -62,13 +51,31 @@ class Translator(): result = False try: if translator_name == "DeepL(web)": - result = deepl_translate.translate(source_language=source_language, target_language=target_language, text=message) + result = deepl_translate.translate( + source_language=self.dict_languages["DeepL(web)"][source_language], + target_language=self.dict_languages["DeepL(web)"][target_language], + text=message + ) elif translator_name == "DeepL(auth)": - result = self.deepl_client.translate_text(message, source_lang=source_language, target_lang=target_language).text + result = self.deepl_client.translate_text( + message, + source_lang=self.dict_languages["DeepL(auth)"][source_language], + target_lang=self.dict_languages["DeepL(auth)"][target_language], + ).text elif translator_name == "Google(web)": - result = ts.translate_text(query_text=message, translator="google", from_language=source_language, to_language=target_language) + result = ts.translate_text( + query_text=message, + translator="google", + from_language=self.dict_languages["Google(web)"][source_language], + to_language=self.dict_languages["Google(web)"][target_language], + ) elif translator_name == "Bing(web)": - result = ts.translate_text(query_text=message, translator="bing", from_language=source_language, to_language=target_language) + result = ts.translate_text( + query_text=message, + translator="bing", + from_language=self.dict_languages["Bing(web)"][source_language], + to_language=self.dict_languages["Bing(web)"][target_language], + ) except: pass return result \ No newline at end of file