🚧 [WIP/TEST] Model : 日本語ひらがな/ローマ字 変換の実装
This commit is contained in:
@@ -13,6 +13,7 @@ faster-whisper==1.0.3
|
||||
openvr==1.26.701
|
||||
pydub==0.25.1
|
||||
psutil==5.9.8
|
||||
pykakasi==2.3.0
|
||||
translators @ git+https://github.com/misyaguziya/translators@5.9.2
|
||||
SpeechRecognition @ git+https://github.com/misyaguziya/custom_speech_recognition@3.10.4
|
||||
tinyoscquery @ git+https://github.com/cyberkitsune/tinyoscquery@0.1.2
|
||||
@@ -301,6 +301,28 @@ class Config:
|
||||
self._ENABLE_MULTI_LANGUAGE_TRANSLATION = value
|
||||
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
|
||||
|
||||
@property
|
||||
@json_serializable('ENABLE_CONVERT_MESSAGE_TO_ROMAJI')
|
||||
def ENABLE_CONVERT_MESSAGE_TO_ROMAJI(self):
|
||||
return self._ENABLE_CONVERT_MESSAGE_TO_ROMAJI
|
||||
|
||||
@ENABLE_CONVERT_MESSAGE_TO_ROMAJI.setter
|
||||
def ENABLE_CONVERT_MESSAGE_TO_ROMAJI(self, value):
|
||||
if isinstance(value, bool):
|
||||
self._ENABLE_CONVERT_MESSAGE_TO_ROMAJI = value
|
||||
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
|
||||
|
||||
@property
|
||||
@json_serializable('ENABLE_CONVERT_MESSAGE_TO_HIRAGANA')
|
||||
def ENABLE_CONVERT_MESSAGE_TO_HIRAGANA(self):
|
||||
return self._ENABLE_CONVERT_MESSAGE_TO_HIRAGANA
|
||||
|
||||
@ENABLE_CONVERT_MESSAGE_TO_HIRAGANA.setter
|
||||
def ENABLE_CONVERT_MESSAGE_TO_HIRAGANA(self, value):
|
||||
if isinstance(value, bool):
|
||||
self._ENABLE_CONVERT_MESSAGE_TO_HIRAGANA = value
|
||||
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
|
||||
|
||||
@property
|
||||
@json_serializable('IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE')
|
||||
def IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE(self):
|
||||
@@ -1045,6 +1067,8 @@ class Config:
|
||||
}
|
||||
self._SELECTED_TRANSCRIPTION_ENGINE = "Google"
|
||||
self._ENABLE_MULTI_LANGUAGE_TRANSLATION = False
|
||||
self._ENABLE_CONVERT_MESSAGE_TO_ROMAJI = False
|
||||
self._ENABLE_CONVERT_MESSAGE_TO_HIRAGANA = False
|
||||
self._IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = False
|
||||
|
||||
## Config Window
|
||||
|
||||
@@ -15,13 +15,13 @@ import webbrowser
|
||||
|
||||
from typing import Callable
|
||||
from flashtext import KeywordProcessor
|
||||
from pykakasi import kakasi
|
||||
from models.translation.translation_translator import Translator
|
||||
from models.transcription.transcription_utils import getInputDevices, getOutputDevices
|
||||
from models.osc.osc_tools import sendTyping, sendMessage, receiveOscParameters, getOSCParameterValue
|
||||
from models.transcription.transcription_recorder import SelectedMicEnergyAndAudioRecorder, SelectedSpeakerEnergyAndAudioRecorder
|
||||
from models.transcription.transcription_recorder import SelectedMicEnergyRecorder, SelectedSpeakerEnergyRecorder
|
||||
from models.transcription.transcription_transcriber import AudioTranscriber
|
||||
from models.xsoverlay.notification import xsoverlayForVRCT
|
||||
from models.translation.translation_languages import translation_lang
|
||||
from models.transcription.transcription_languages import transcription_lang
|
||||
from models.translation.translation_utils import checkCTranslate2Weight, downloadCTranslate2Weight
|
||||
@@ -99,6 +99,7 @@ class Model:
|
||||
self.mic_audio_queue = None
|
||||
self.mic_mute_status = None
|
||||
self.mic_mute_status_check = None
|
||||
self.kks = kakasi()
|
||||
|
||||
def checkCTranslatorCTranslate2ModelWeight(self):
|
||||
return checkCTranslate2Weight(config.PATH_LOCAL, config.CTRANSLATE2_WEIGHT_TYPE)
|
||||
@@ -270,6 +271,17 @@ class Model:
|
||||
self.previous_receive_message = message
|
||||
return repeat_flag
|
||||
|
||||
def convertMessageToRomajiAndHiragana(self, message: str, hiragana:bool, romaji:bool) -> str:
|
||||
data_list = self.kks.convert(message)
|
||||
if
|
||||
keys_to_keep = {"orig", "hira", "hepburn"}
|
||||
filtered_list = []
|
||||
|
||||
for item in data_list:
|
||||
filtered_item = {key: value for key, value in item.items() if key in keys_to_keep}
|
||||
filtered_list.append(filtered_item)
|
||||
return filtered_list
|
||||
|
||||
@staticmethod
|
||||
def oscStartSendTyping():
|
||||
sendTyping(True, config.OSC_IP_ADDRESS, config.OSC_PORT)
|
||||
|
||||
@@ -303,6 +303,10 @@ class ChatMessage:
|
||||
}
|
||||
})
|
||||
|
||||
message_romaji = []
|
||||
if config.ENABLE_CONVERT_MESSAGE_TO_ROMAJI is True or config.ENABLE_CONVERT_MESSAGE_TO_HIRAGANA is True:
|
||||
message_romaji = model.convertMessageToRomajiAndHiragana(message)
|
||||
|
||||
# send OSC message
|
||||
if config.ENABLE_SEND_MESSAGE_TO_VRC is True:
|
||||
if config.ENABLE_SEND_ONLY_TRANSLATED_MESSAGES is True:
|
||||
@@ -331,6 +335,7 @@ class ChatMessage:
|
||||
"id":id,
|
||||
"message":message,
|
||||
"translation":translation,
|
||||
"romaji":message_romaji,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user