update languages typing

This commit is contained in:
misyaguziya
2023-06-28 00:49:34 +09:00
parent 00499e5eba
commit e0a68c8f04
3 changed files with 49 additions and 49 deletions

12
VRCT.py
View File

@@ -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

View File

@@ -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

View File

@@ -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