update languages typing
This commit is contained in:
12
VRCT.py
12
VRCT.py
@@ -33,17 +33,17 @@ class App(customtkinter.CTk):
|
|||||||
self.FONT_FAMILY = "Yu Gothic UI"
|
self.FONT_FAMILY = "Yu Gothic UI"
|
||||||
## Translation
|
## Translation
|
||||||
self.CHOICE_TRANSLATOR = "DeepL(web)"
|
self.CHOICE_TRANSLATOR = "DeepL(web)"
|
||||||
self.INPUT_SOURCE_LANG = "JA"
|
self.INPUT_SOURCE_LANG = "Japanese"
|
||||||
self.INPUT_TARGET_LANG = "EN"
|
self.INPUT_TARGET_LANG = "English"
|
||||||
self.OUTPUT_SOURCE_LANG = "EN"
|
self.OUTPUT_SOURCE_LANG = "English"
|
||||||
self.OUTPUT_TARGET_LANG = "JA"
|
self.OUTPUT_TARGET_LANG = "Japanese"
|
||||||
## Transcription
|
## Transcription
|
||||||
self.CHOICE_MIC_DEVICE = self.vr.search_default_device()[0]
|
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_IS_DYNAMIC = False
|
||||||
self.INPUT_MIC_THRESHOLD = 300
|
self.INPUT_MIC_THRESHOLD = 300
|
||||||
self.CHOICE_SPEAKER_DEVICE = self.vr.search_default_device()[1]
|
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
|
self.INPUT_SPEAKER_INTERVAL = 4
|
||||||
|
|
||||||
## Parameter
|
## Parameter
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import queue
|
import queue
|
||||||
import speech_recognition as sr
|
import speech_recognition as sr
|
||||||
import pyaudiowpatch as pyaudio
|
import pyaudiowpatch as pyaudio
|
||||||
|
import languages
|
||||||
|
|
||||||
# VoiceRecognizer
|
# VoiceRecognizer
|
||||||
class VoiceRecognizer():
|
class VoiceRecognizer():
|
||||||
@@ -8,25 +9,17 @@ class VoiceRecognizer():
|
|||||||
self.r = sr.Recognizer()
|
self.r = sr.Recognizer()
|
||||||
self.p = pyaudio.PyAudio()
|
self.p = pyaudio.PyAudio()
|
||||||
|
|
||||||
self.languages = [
|
self.dict_languages = languages.recognize_lang
|
||||||
"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",
|
self.languages = list(self.dict_languages.keys())
|
||||||
"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.mic_device_name = None
|
self.mic_device_name = None
|
||||||
self.mic_threshold = 50
|
self.mic_threshold = 50
|
||||||
self.mic_is_dynamic = False
|
self.mic_is_dynamic = False
|
||||||
self.mic_language = "ja-JP"
|
self.mic_language = "Japan"
|
||||||
self.mic_queue = queue.Queue(10)
|
self.mic_queue = queue.Queue(10)
|
||||||
|
|
||||||
self.spk_device = None
|
self.spk_device = None
|
||||||
self.spk_interval = 3
|
self.spk_interval = 3
|
||||||
self.spk_language = "ja-JP"
|
self.spk_language = "Japan"
|
||||||
self.spk_stream = None
|
self.spk_stream = None
|
||||||
self.spk_queue = queue.Queue(10)
|
self.spk_queue = queue.Queue(10)
|
||||||
|
|
||||||
@@ -77,7 +70,7 @@ class VoiceRecognizer():
|
|||||||
break
|
break
|
||||||
return name_mic, name_spk
|
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()
|
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_device_name = [device["index"] for device in input_device_list if device["name"] == device_name][0]
|
||||||
self.mic_threshold = threshold
|
self.mic_threshold = threshold
|
||||||
@@ -101,12 +94,12 @@ class VoiceRecognizer():
|
|||||||
def recognize_mic(self):
|
def recognize_mic(self):
|
||||||
try:
|
try:
|
||||||
audio = self.mic_queue.get()
|
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:
|
except:
|
||||||
text = ""
|
text = ""
|
||||||
return 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()
|
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_device = [device for device in output_device_list if device["name"] == device_name][0]
|
||||||
self.spk_interval = interval
|
self.spk_interval = interval
|
||||||
@@ -147,7 +140,7 @@ class VoiceRecognizer():
|
|||||||
try:
|
try:
|
||||||
in_data = self.spk_queue.get()
|
in_data = self.spk_queue.get()
|
||||||
audio_data = sr.AudioData(in_data, int(self.spk_device["defaultSampleRate"]), self.spk_interval)
|
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:
|
except:
|
||||||
text = ""
|
text = ""
|
||||||
return text
|
return text
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import deepl
|
import deepl
|
||||||
import deepl_translate
|
import deepl_translate
|
||||||
import translators as ts
|
import translators as ts
|
||||||
|
import languages
|
||||||
|
|
||||||
# Translator
|
# Translator
|
||||||
class Translator():
|
class Translator():
|
||||||
@@ -11,30 +12,18 @@ class Translator():
|
|||||||
"Google(web)": False,
|
"Google(web)": False,
|
||||||
"Bing(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 = {}
|
||||||
self.languages["DeepL(web)"] = [
|
self.languages["DeepL(web)"] = list(self.dict_languages["DeepL(web)"].keys())
|
||||||
"JA","EN","BG","ZH","CS","DA","NL","ET","FI","FR","DE","EL","HU","IT",
|
self.languages["DeepL(auth)"] = list(self.dict_languages["DeepL(auth)"].keys())
|
||||||
"LV","LT","PL","PT","RO","RU","SK","SL","ES","SV",
|
self.languages["Google(web)"] = list(self.dict_languages["Google(web)"].keys())
|
||||||
]
|
self.languages["Bing(web)"] = list(self.dict_languages["Bing(web)"].keys())
|
||||||
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.deepl_client = None
|
self.deepl_client = None
|
||||||
|
|
||||||
def authentication(self, translator_name, authkey=None):
|
def authentication(self, translator_name, authkey=None):
|
||||||
@@ -62,13 +51,31 @@ class Translator():
|
|||||||
result = False
|
result = False
|
||||||
try:
|
try:
|
||||||
if translator_name == "DeepL(web)":
|
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)":
|
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)":
|
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)":
|
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:
|
except:
|
||||||
pass
|
pass
|
||||||
return result
|
return result
|
||||||
Reference in New Issue
Block a user