Merge branch 'refactor_endpoints' into develop
This commit is contained in:
@@ -639,6 +639,9 @@ class Config:
|
||||
MIC_MAX_PHRASES = ManagedProperty('MIC_MAX_PHRASES', type_=int)
|
||||
MIC_AVG_LOGPROB = ManagedProperty('MIC_AVG_LOGPROB', type_=(int, float))
|
||||
MIC_NO_SPEECH_PROB = ManagedProperty('MIC_NO_SPEECH_PROB', type_=(int, float))
|
||||
MIC_NO_REPEAT_NGRAM_SIZE = ManagedProperty('MIC_NO_REPEAT_NGRAM_SIZE', type_=int)
|
||||
MIC_VAD_FILTER = ManagedProperty('MIC_VAD_FILTER', type_=bool)
|
||||
MIC_VAD_PARAMETERS = ManagedProperty('MIC_VAD_PARAMETERS', type_=dict, mutable_tracking=True)
|
||||
HOTKEYS = ValidatedProperty('HOTKEYS',
|
||||
validator=lambda val, inst: (
|
||||
{k: (v if (isinstance(v, list) or v is None) else inst.HOTKEYS.get(k))
|
||||
@@ -655,6 +658,9 @@ class Config:
|
||||
SPEAKER_MAX_PHRASES = ManagedProperty('SPEAKER_MAX_PHRASES', type_=int)
|
||||
SPEAKER_AVG_LOGPROB = ManagedProperty('SPEAKER_AVG_LOGPROB', type_=(int, float))
|
||||
SPEAKER_NO_SPEECH_PROB = ManagedProperty('SPEAKER_NO_SPEECH_PROB', type_=(int, float))
|
||||
SPEAKER_NO_REPEAT_NGRAM_SIZE = ManagedProperty('SPEAKER_NO_REPEAT_NGRAM_SIZE', type_=int)
|
||||
SPEAKER_VAD_FILTER = ManagedProperty('SPEAKER_VAD_FILTER', type_=bool)
|
||||
SPEAKER_VAD_PARAMETERS = ManagedProperty('SPEAKER_VAD_PARAMETERS', type_=dict, mutable_tracking=True)
|
||||
|
||||
# --- Auth and API settings ---
|
||||
AUTH_KEYS = ValidatedProperty('AUTH_KEYS',
|
||||
@@ -862,6 +868,16 @@ class Config:
|
||||
self._PLUGINS_STATUS = []
|
||||
self._MIC_AVG_LOGPROB = -0.8
|
||||
self._MIC_NO_SPEECH_PROB = 0.6
|
||||
self._MIC_NO_REPEAT_NGRAM_SIZE = 0
|
||||
self._MIC_VAD_FILTER = False
|
||||
self._MIC_VAD_PARAMETERS = {
|
||||
"threshold": 0.5,
|
||||
"neg_threshold": None,
|
||||
"min_speech_duration_ms": 0,
|
||||
"max_speech_duration_s": float("inf"),
|
||||
"min_silence_duration_ms": 2000,
|
||||
"speech_pad_ms": 400,
|
||||
}
|
||||
self._AUTO_SPEAKER_SELECT = True
|
||||
try:
|
||||
if device_manager is not None:
|
||||
@@ -879,6 +895,16 @@ class Config:
|
||||
self._SPEAKER_MAX_PHRASES = 10
|
||||
self._SPEAKER_AVG_LOGPROB = -0.8
|
||||
self._SPEAKER_NO_SPEECH_PROB = 0.6
|
||||
self._SPEAKER_NO_REPEAT_NGRAM_SIZE = 0
|
||||
self._SPEAKER_VAD_FILTER = False
|
||||
self._SPEAKER_VAD_PARAMETERS = {
|
||||
"threshold": 0.5,
|
||||
"neg_threshold": None,
|
||||
"min_speech_duration_ms": 0,
|
||||
"max_speech_duration_s": float("inf"),
|
||||
"min_silence_duration_ms": 2000,
|
||||
"speech_pad_ms": 400,
|
||||
}
|
||||
self._OSC_IP_ADDRESS = "127.0.0.1"
|
||||
self._OSC_PORT = 9000
|
||||
self._AUTH_KEYS = {
|
||||
|
||||
@@ -79,21 +79,21 @@ class Controller:
|
||||
def updateMicHostList(self) -> None:
|
||||
self.run(
|
||||
200,
|
||||
self.run_mapping["mic_host_list"],
|
||||
self.run_mapping["selectable_mic_host_list"],
|
||||
model.getListMicHost(),
|
||||
)
|
||||
|
||||
def updateMicDeviceList(self) -> None:
|
||||
self.run(
|
||||
200,
|
||||
self.run_mapping["mic_device_list"],
|
||||
self.run_mapping["selectable_mic_device_list"],
|
||||
model.getListMicDevice(),
|
||||
)
|
||||
|
||||
def updateSpeakerDeviceList(self) -> None:
|
||||
self.run(
|
||||
200,
|
||||
self.run_mapping["speaker_device_list"],
|
||||
self.run_mapping["selectable_speaker_device_list"],
|
||||
model.getListSpeakerDevice(),
|
||||
)
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ VRCTアプリケーションのAPIエンドポイントを包括的にテスト
|
||||
- マイク/スピーカー関連タイムアウト値の正常範囲チェック(取得した最新値を基準にバリデーション)
|
||||
- Whisper / CTranslate2 重みタイプ辞書のキー集合変化への追従
|
||||
|
||||
例: `"/set/data/selected_translation_engines"` 試験前に `"/get/data/translation_engines"` を呼び、取得したリストから `random.choice()`。従来の初期キャッシュ依存から、実行時取得へ移行。
|
||||
例: `"/set/data/selected_translation_engines"` 試験前に `"/get/data/selectable_translation_engines"` を呼び、取得したリストから `random.choice()`。従来の初期キャッシュ依存から、実行時取得へ移行。
|
||||
|
||||
## 主要機能
|
||||
|
||||
@@ -94,13 +94,13 @@ test.test_endpoints_specific_random()
|
||||
|
||||
動的取得対象(代表例):
|
||||
|
||||
- `selected_translation_engines` → `/get/data/translation_engines`
|
||||
- `selected_transcription_engine` → `/get/data/transcription_engines`
|
||||
- `selected_translation_compute_device` → `/get/data/translation_compute_device_list`
|
||||
- `selected_translation_engines` → `/get/data/selectable_translation_engines`
|
||||
- `selected_transcription_engine` → `/get/data/selectable_transcription_engines`
|
||||
- `selected_translation_compute_device` → `/get/data/selectable_translation_compute_device_list`
|
||||
- `ctranslate2_weight_type` → `/get/data/selectable_ctranslate2_weight_type_dict`
|
||||
- `whisper_weight_type` → `/get/data/selectable_whisper_weight_type_dict`
|
||||
- `selected_mic_host` / `selected_mic_device` → `/get/data/mic_host_list` / `/get/data/mic_device_list`
|
||||
- `selected_speaker_device` → `/get/data/speaker_device_list`
|
||||
- `selected_mic_host` / `selected_mic_device` → `/get/data/selectable_mic_host_list` / `/get/data/selectable_mic_device_list`
|
||||
- `selected_speaker_device` → `/get/data/selectable_speaker_device_list`
|
||||
|
||||
### 実行系
|
||||
|
||||
|
||||
@@ -79,8 +79,8 @@
|
||||
|
||||
`mainloop.py` の `mapping` / `run_mapping` に以下を追加:
|
||||
|
||||
- `/get/data/lmstudio_model_list`, `/get/data/lmstudio_model`, `/set/data/lmstudio_model`, `/get/data/lmstudio_url`, `/set/data/lmstudio_url`
|
||||
- `/get/data/ollama_connection`, `/get/data/ollama_model_list`, `/get/data/ollama_model`, `/set/data/ollama_model`
|
||||
- `/get/data/selectable_lmstudio_model_list`, `/get/data/selected_lmstudio_model`, `/set/data/selected_lmstudio_model`, `/get/data/lmstudio_url`, `/set/data/lmstudio_url`
|
||||
- `/get/data/ollama_connection`, `/get/data/selectable_ollama_model_list`, `/get/data/selected_ollama_model`, `/set/data/selected_ollama_model`
|
||||
- OpenAI 系: `getOpenAIAuthKey`, `setOpenAIAuthKey`, `delOpenAIAuthKey`, `getOpenAIModelList`, `getOpenAIModel`, `setOpenAIModel` に名称統一。
|
||||
|
||||
### 翻訳言語定義の構造変更
|
||||
|
||||
@@ -63,9 +63,9 @@ run_mapping = {
|
||||
"selectable_ollama_model_list":"/run/selectable_ollama_model_list",
|
||||
"selected_ollama_model":"/run/selected_ollama_model",
|
||||
|
||||
"mic_host_list":"/run/mic_host_list",
|
||||
"mic_device_list":"/run/mic_device_list",
|
||||
"speaker_device_list":"/run/speaker_device_list",
|
||||
"selectable_mic_host_list":"/run/selectable_mic_host_list",
|
||||
"selectable_mic_device_list":"/run/selectable_mic_device_list",
|
||||
"selectable_speaker_device_list":"/run/selectable_speaker_device_list",
|
||||
|
||||
"software_update_info":"/run/software_update_info",
|
||||
|
||||
@@ -103,7 +103,7 @@ mapping = {
|
||||
"/set/enable/main_window_sidebar_compact_mode": {"status": True, "variable":controller.setEnableMainWindowSidebarCompactMode},
|
||||
"/set/disable/main_window_sidebar_compact_mode": {"status": True, "variable":controller.setDisableMainWindowSidebarCompactMode},
|
||||
|
||||
"/get/data/translation_engines": {"status": True, "variable":controller.getTranslationEngines},
|
||||
"/get/data/selectable_translation_engines": {"status": True, "variable":controller.getTranslationEngines},
|
||||
"/get/data/selectable_language_list": {"status": True, "variable":controller.getListLanguageAndCountry},
|
||||
|
||||
"/get/data/selected_translation_engines": {"status": False, "variable":controller.getSelectedTranslationEngines},
|
||||
@@ -115,7 +115,7 @@ mapping = {
|
||||
"/get/data/selected_target_languages": {"status": True, "variable":controller.getSelectedTargetLanguages},
|
||||
"/set/data/selected_target_languages": {"status": True, "variable":controller.setSelectedTargetLanguages},
|
||||
|
||||
"/get/data/transcription_engines": {"status": False, "variable":controller.getTranscriptionEngines},
|
||||
"/get/data/selectable_transcription_engines": {"status": False, "variable":controller.getTranscriptionEngines},
|
||||
"/get/data/selected_transcription_engine": {"status": False, "variable":controller.getSelectedTranscriptionEngine},
|
||||
"/set/data/selected_transcription_engine": {"status": False, "variable":controller.setSelectedTranscriptionEngine},
|
||||
|
||||
@@ -164,18 +164,18 @@ mapping = {
|
||||
|
||||
# Compute device
|
||||
"/get/data/compute_mode": {"status": True, "variable":controller.getComputeMode},
|
||||
"/get/data/translation_compute_device_list": {"status": True, "variable":controller.getComputeDeviceList},
|
||||
"/get/data/selectable_translation_compute_device_list": {"status": True, "variable":controller.getComputeDeviceList},
|
||||
"/get/data/selected_translation_compute_device": {"status": True, "variable":controller.getSelectedTranslationComputeDevice},
|
||||
"/set/data/selected_translation_compute_device": {"status": True, "variable":controller.setSelectedTranslationComputeDevice},
|
||||
"/get/data/transcription_compute_device_list": {"status": True, "variable":controller.getComputeDeviceList},
|
||||
"/get/data/selectable_transcription_compute_device_list": {"status": True, "variable":controller.getComputeDeviceList},
|
||||
"/get/data/selected_transcription_compute_device": {"status": True, "variable":controller.getSelectedTranscriptionComputeDevice},
|
||||
"/set/data/selected_transcription_compute_device": {"status": True, "variable":controller.setSelectedTranscriptionComputeDevice},
|
||||
|
||||
# Translation
|
||||
"/get/data/selectable_ctranslate2_weight_type_dict": {"status": True, "variable":controller.getSelectableCtranslate2WeightTypeDict},
|
||||
|
||||
"/get/data/ctranslate2_weight_type": {"status": True, "variable":controller.getCtranslate2WeightType},
|
||||
"/set/data/ctranslate2_weight_type": {"status": True, "variable":controller.setCtranslate2WeightType},
|
||||
"/get/data/selected_ctranslate2_weight_type": {"status": True, "variable":controller.getCtranslate2WeightType},
|
||||
"/set/data/selected_ctranslate2_weight_type": {"status": True, "variable":controller.setCtranslate2WeightType},
|
||||
|
||||
"/get/data/selected_translation_compute_type": {"status": True, "variable":controller.getSelectedTranslationComputeType},
|
||||
"/set/data/selected_translation_compute_type": {"status": True, "variable":controller.setSelectedTranslationComputeType},
|
||||
@@ -186,38 +186,38 @@ mapping = {
|
||||
"/set/data/deepl_auth_key": {"status": False, "variable":controller.setDeeplAuthKey},
|
||||
"/delete/data/deepl_auth_key": {"status": False, "variable":controller.delDeeplAuthKey},
|
||||
|
||||
"/get/data/plamo_model_list": {"status": False, "variable":controller.getPlamoModelList},
|
||||
"/get/data/plamo_model": {"status": False, "variable":controller.getPlamoModel},
|
||||
"/set/data/plamo_model": {"status": False, "variable":controller.setPlamoModel},
|
||||
"/get/data/selectable_plamo_model_list": {"status": False, "variable":controller.getPlamoModelList},
|
||||
"/get/data/selected_plamo_model": {"status": False, "variable":controller.getPlamoModel},
|
||||
"/set/data/selected_plamo_model": {"status": False, "variable":controller.setPlamoModel},
|
||||
"/get/data/plamo_auth_key": {"status": False, "variable":controller.getPlamoAuthKey},
|
||||
"/set/data/plamo_auth_key": {"status": False, "variable":controller.setPlamoAuthKey},
|
||||
"/delete/data/plamo_auth_key": {"status": False, "variable":controller.delPlamoAuthKey},
|
||||
|
||||
"/get/data/gemini_model_list": {"status": True, "variable":controller.getGeminiModelList},
|
||||
"/get/data/gemini_model": {"status": True, "variable":controller.getGeminiModel},
|
||||
"/set/data/gemini_model": {"status": True, "variable":controller.setGeminiModel},
|
||||
"/get/data/selectable_gemini_model_list": {"status": True, "variable":controller.getGeminiModelList},
|
||||
"/get/data/selected_gemini_model": {"status": True, "variable":controller.getGeminiModel},
|
||||
"/set/data/selected_gemini_model": {"status": True, "variable":controller.setGeminiModel},
|
||||
"/get/data/gemini_auth_key": {"status": True, "variable":controller.getGeminiAuthKey},
|
||||
"/set/data/gemini_auth_key": {"status": True, "variable":controller.setGeminiAuthKey},
|
||||
"/delete/data/gemini_auth_key": {"status": True, "variable":controller.delGeminiAuthKey},
|
||||
|
||||
"/get/data/openai_model_list": {"status": True, "variable":controller.getOpenAIModelList},
|
||||
"/get/data/openai_model": {"status": True, "variable":controller.getOpenAIModel},
|
||||
"/set/data/openai_model": {"status": True, "variable":controller.setOpenAIModel},
|
||||
"/get/data/selectable_openai_model_list": {"status": True, "variable":controller.getOpenAIModelList},
|
||||
"/get/data/selected_openai_model": {"status": True, "variable":controller.getOpenAIModel},
|
||||
"/set/data/selected_openai_model": {"status": True, "variable":controller.setOpenAIModel},
|
||||
"/get/data/openai_auth_key": {"status": True, "variable":controller.getOpenAIAuthKey},
|
||||
"/set/data/openai_auth_key": {"status": True, "variable":controller.setOpenAIAuthKey},
|
||||
"/delete/data/openai_auth_key": {"status": True, "variable":controller.delOpenAIAuthKey},
|
||||
|
||||
"/run/lmstudio_connection": {"status": True, "variable":controller.checkTranslatorLMStudioConnection},
|
||||
"/get/data/lmstudio_model_list": {"status": True, "variable":controller.getTranslatorLStudioModelList},
|
||||
"/get/data/lmstudio_model": {"status": True, "variable":controller.getTranslatorLMStudioModel},
|
||||
"/set/data/lmstudio_model": {"status": True, "variable":controller.setTranslatorLMStudioModel},
|
||||
"/get/data/selectable_lmstudio_model_list": {"status": True, "variable":controller.getTranslatorLStudioModelList},
|
||||
"/get/data/selected_lmstudio_model": {"status": True, "variable":controller.getTranslatorLMStudioModel},
|
||||
"/set/data/selected_lmstudio_model": {"status": True, "variable":controller.setTranslatorLMStudioModel},
|
||||
"/get/data/lmstudio_url": {"status": True, "variable":controller.getTranslatorLMStudioURL},
|
||||
"/set/data/lmstudio_url": {"status": True, "variable":controller.setTranslatorLMStudioURL},
|
||||
|
||||
"/run/ollama_connection": {"status": True, "variable":controller.checkTranslatorOllamaConnection},
|
||||
"/get/data/ollama_model_list": {"status": True, "variable":controller.getTranslatorOllamaModelList},
|
||||
"/get/data/ollama_model": {"status": True, "variable":controller.getTranslatorOllamaModel},
|
||||
"/set/data/ollama_model": {"status": True, "variable":controller.setTranslatorOllamaModel},
|
||||
"/get/data/selectable_ollama_model_list": {"status": True, "variable":controller.getTranslatorOllamaModelList},
|
||||
"/get/data/selected_ollama_model": {"status": True, "variable":controller.getTranslatorOllamaModel},
|
||||
"/set/data/selected_ollama_model": {"status": True, "variable":controller.setTranslatorOllamaModel},
|
||||
|
||||
# Transliteration
|
||||
"/get/data/convert_message_to_romaji": {"status": True, "variable":controller.getConvertMessageToRomaji},
|
||||
@@ -229,9 +229,9 @@ mapping = {
|
||||
"/set/disable/convert_message_to_hiragana": {"status": True, "variable":controller.setDisableConvertMessageToHiragana},
|
||||
|
||||
# Transcription
|
||||
"/get/data/mic_host_list": {"status": True, "variable":controller.getMicHostList},
|
||||
"/get/data/mic_device_list": {"status": True, "variable":controller.getMicDeviceList},
|
||||
"/get/data/speaker_device_list": {"status": True, "variable":controller.getSpeakerDeviceList},
|
||||
"/get/data/selectable_mic_host_list": {"status": True, "variable":controller.getMicHostList},
|
||||
"/get/data/selectable_mic_device_list": {"status": True, "variable":controller.getMicDeviceList},
|
||||
"/get/data/selectable_speaker_device_list": {"status": True, "variable":controller.getSpeakerDeviceList},
|
||||
|
||||
# "/get/data/max_mic_threshold": {"status": True, "variable":controller.getMaxMicThreshold},
|
||||
# "/get/data/max_speaker_threshold": {"status": True, "variable":controller.getMaxSpeakerThreshold},
|
||||
@@ -314,8 +314,8 @@ mapping = {
|
||||
|
||||
"/get/data/selectable_whisper_weight_type_dict": {"status": True, "variable":controller.getSelectableWhisperWeightTypeDict},
|
||||
|
||||
"/get/data/whisper_weight_type": {"status": True, "variable":controller.getWhisperWeightType},
|
||||
"/set/data/whisper_weight_type": {"status": True, "variable":controller.setWhisperWeightType},
|
||||
"/get/data/selected_whisper_weight_type": {"status": True, "variable":controller.getWhisperWeightType},
|
||||
"/set/data/selected_whisper_weight_type": {"status": True, "variable":controller.setWhisperWeightType},
|
||||
|
||||
"/get/data/selected_transcription_compute_type": {"status": True, "variable":controller.getSelectedTranscriptionComputeType},
|
||||
"/set/data/selected_transcription_compute_type": {"status": True, "variable":controller.setSelectedTranscriptionComputeType},
|
||||
|
||||
@@ -664,7 +664,10 @@ class Model:
|
||||
languages,
|
||||
countries,
|
||||
config.MIC_AVG_LOGPROB,
|
||||
config.MIC_NO_SPEECH_PROB
|
||||
config.MIC_NO_SPEECH_PROB,
|
||||
config.MIC_NO_REPEAT_NGRAM_SIZE,
|
||||
config.MIC_VAD_FILTER,
|
||||
config.MIC_VAD_PARAMETERS,
|
||||
)
|
||||
if res:
|
||||
result = self.mic_transcriber.getTranscript()
|
||||
@@ -856,7 +859,10 @@ class Model:
|
||||
languages,
|
||||
countries,
|
||||
config.SPEAKER_AVG_LOGPROB,
|
||||
config.SPEAKER_NO_SPEECH_PROB
|
||||
config.SPEAKER_NO_SPEECH_PROB,
|
||||
config.SPEAKER_NO_REPEAT_NGRAM_SIZE,
|
||||
config.SPEAKER_VAD_FILTER,
|
||||
config.SPEAKER_VAD_PARAMETERS,
|
||||
)
|
||||
if res:
|
||||
result = self.speaker_transcriber.getTranscript()
|
||||
|
||||
@@ -8,7 +8,7 @@ import time
|
||||
from io import BytesIO
|
||||
from threading import Event
|
||||
import wave
|
||||
from typing import Any, Callable, Dict, List, Optional, Tuple
|
||||
from typing import Any, Dict, List, Optional, Union
|
||||
from speech_recognition import Recognizer, AudioData, AudioFile
|
||||
from speech_recognition.exceptions import UnknownValueError
|
||||
from datetime import timedelta
|
||||
@@ -84,6 +84,9 @@ class AudioTranscriber:
|
||||
countries: List[str],
|
||||
avg_logprob: float = -0.8,
|
||||
no_speech_prob: float = 0.6,
|
||||
no_repeat_ngram_size: int = 0,
|
||||
vad_filter: bool = False,
|
||||
vad_parameters: Optional[Union[dict, Any]] = None,
|
||||
) -> bool:
|
||||
if audio_queue.empty():
|
||||
time.sleep(0.01)
|
||||
@@ -130,7 +133,9 @@ class AudioTranscriber:
|
||||
word_timestamps=False,
|
||||
without_timestamps=True,
|
||||
task="transcribe",
|
||||
vad_filter=False,
|
||||
no_repeat_ngram_size=no_repeat_ngram_size,
|
||||
vad_filter=vad_filter,
|
||||
vad_parameters=vad_parameters,
|
||||
)
|
||||
for s in segments:
|
||||
if s.avg_logprob < avg_logprob or s.no_speech_prob > no_speech_prob:
|
||||
|
||||
@@ -394,16 +394,16 @@ class AutomatedEndpointTester:
|
||||
"/set/data/main_window_geometry",
|
||||
"/set/data/selected_translation_compute_device",
|
||||
"/set/data/selected_transcription_compute_device",
|
||||
"/set/data/ctranslate2_weight_type",
|
||||
"/set/data/plamo_model",
|
||||
"/set/data/selected_ctranslate2_weight_type",
|
||||
"/set/data/selected_plamo_model",
|
||||
"/set/data/plamo_auth_key",
|
||||
"/set/data/gemini_model",
|
||||
"/set/data/selected_gemini_model",
|
||||
"/set/data/gemini_auth_key",
|
||||
"/set/data/openai_model",
|
||||
"/set/data/selected_openai_model",
|
||||
"/set/data/openai_auth_key",
|
||||
"/set/data/lmstudio_model",
|
||||
"/set/data/selected_lmstudio_model",
|
||||
"/set/data/lmstudio_url",
|
||||
"/set/data/ollama_model",
|
||||
"/set/data/selected_ollama_model",
|
||||
"/set/data/deepl_auth_key",
|
||||
"/set/data/selected_mic_host",
|
||||
"/set/data/selected_mic_device",
|
||||
@@ -423,7 +423,7 @@ class AutomatedEndpointTester:
|
||||
"/set/data/speaker_max_phrases",
|
||||
"/set/data/speaker_avg_logprob",
|
||||
"/set/data/speaker_no_speech_prob",
|
||||
"/set/data/whisper_weight_type",
|
||||
"/set/data/selected_whisper_weight_type",
|
||||
"/set/data/overlay_small_log_settings",
|
||||
"/set/data/overlay_large_log_settings",
|
||||
"/set/data/send_message_format_parts",
|
||||
@@ -482,7 +482,7 @@ class AutomatedEndpointTester:
|
||||
data = sys.modules.get('__random_tab_choices', None) or None # placeholder for future dynamic
|
||||
data = data or "1"
|
||||
elif endpoint == "/set/data/selected_translation_engines":
|
||||
engines = self._get("/get/data/translation_engines") or []
|
||||
engines = self._get("/get/data/selectable_translation_engines") or []
|
||||
data = {i: (engines and (engines[0] if len(engines) else None)) for i in ["1","2","3"]}
|
||||
elif endpoint == "/set/data/selected_your_languages":
|
||||
lang_list = self._get("/get/data/selectable_language_list") or []
|
||||
@@ -495,7 +495,7 @@ class AutomatedEndpointTester:
|
||||
base = lang_list[0]
|
||||
data = {i: {j: {**base, "enable": (j=="1")} for j in ["1","2","3"]} for i in ["1","2","3"]}
|
||||
elif endpoint == "/set/data/selected_transcription_engine":
|
||||
engines = self._get("/get/data/transcription_engines") or []
|
||||
engines = self._get("/get/data/selectable_transcription_engines") or []
|
||||
data = engines[0] if engines else None
|
||||
elif endpoint == "/set/data/transparency":
|
||||
import random
|
||||
@@ -524,44 +524,44 @@ class AutomatedEndpointTester:
|
||||
"height": random.randint(600,1080)
|
||||
}
|
||||
elif endpoint == "/set/data/selected_translation_compute_device":
|
||||
lst = self._get("/get/data/translation_compute_device_list") or []
|
||||
lst = self._get("/get/data/selectable_translation_compute_device_list") or []
|
||||
import random
|
||||
data = random.choice(lst) if lst else None
|
||||
elif endpoint == "/set/data/selected_transcription_compute_device":
|
||||
lst = self._get("/get/data/transcription_compute_device_list") or []
|
||||
lst = self._get("/get/data/selectable_transcription_compute_device_list") or []
|
||||
import random
|
||||
data = random.choice(lst) if lst else None
|
||||
elif endpoint == "/set/data/ctranslate2_weight_type":
|
||||
elif endpoint == "/set/data/selected_ctranslate2_weight_type":
|
||||
dct = self._get("/get/data/selectable_ctranslate2_weight_type_dict") or {}
|
||||
keys = list(dct.keys())
|
||||
import random
|
||||
data = random.choice(keys) if keys else None
|
||||
elif endpoint == "/set/data/plamo_model":
|
||||
lst = self._get("/get/data/plamo_model_list") or []
|
||||
elif endpoint == "/set/data/selected_plamo_model":
|
||||
lst = self._get("/get/data/selectable_plamo_model_list") or []
|
||||
import random
|
||||
data = random.choice(lst) if lst else None
|
||||
expected = [200,400]
|
||||
elif endpoint == "/set/data/plamo_auth_key":
|
||||
data = "PLAMO_DUMMY_KEY"
|
||||
expected = [200,400]
|
||||
elif endpoint == "/set/data/gemini_model":
|
||||
lst = self._get("/get/data/gemini_model_list") or []
|
||||
elif endpoint == "/set/data/selected_gemini_model":
|
||||
lst = self._get("/get/data/selectable_gemini_model_list") or []
|
||||
import random
|
||||
data = random.choice(lst) if lst else None
|
||||
expected = [200,400]
|
||||
elif endpoint == "/set/data/gemini_auth_key":
|
||||
data = "GEMINI_DUMMY_KEY"
|
||||
expected = [200,400]
|
||||
elif endpoint == "/set/data/openai_model":
|
||||
lst = self._get("/get/data/openai_model_list") or []
|
||||
elif endpoint == "/set/data/selected_openai_model":
|
||||
lst = self._get("/get/data/selectable_openai_model_list") or []
|
||||
import random
|
||||
data = random.choice(lst) if lst else None
|
||||
expected = [200,400]
|
||||
elif endpoint == "/set/data/openai_auth_key":
|
||||
data = "OPENAI_DUMMY_KEY"
|
||||
expected = [200,400]
|
||||
elif endpoint == "/set/data/lmstudio_model":
|
||||
lst = self._get("/get/data/lmstudio_model_list") or []
|
||||
elif endpoint == "/set/data/selected_lmstudio_model":
|
||||
lst = self._get("/get/data/selectable_lmstudio_model_list") or []
|
||||
import random
|
||||
data = random.choice(lst) if lst else None
|
||||
expected = [200,400]
|
||||
@@ -569,8 +569,8 @@ class AutomatedEndpointTester:
|
||||
import random
|
||||
data = random.choice(["http://localhost:1234/v1","http://127.0.0.1:1234/v1","http://invalid_host:9999/v1"])
|
||||
expected=[200,400]
|
||||
elif endpoint == "/set/data/ollama_model":
|
||||
lst = self._get("/get/data/ollama_model_list") or []
|
||||
elif endpoint == "/set/data/selected_ollama_model":
|
||||
lst = self._get("/get/data/selectable_ollama_model_list") or []
|
||||
import random
|
||||
data = random.choice(lst) if lst else None
|
||||
expected = [200,400]
|
||||
@@ -578,11 +578,11 @@ class AutomatedEndpointTester:
|
||||
data = "DEEPL_DUMMY_KEY"
|
||||
expected=[200,400]
|
||||
elif endpoint == "/set/data/selected_mic_host":
|
||||
lst = self._get("/get/data/mic_host_list") or []
|
||||
lst = self._get("/get/data/selectable_mic_host_list") or []
|
||||
import random
|
||||
data = random.choice(lst) if lst else None
|
||||
elif endpoint == "/set/data/selected_mic_device":
|
||||
lst = self._get("/get/data/mic_device_list") or []
|
||||
lst = self._get("/get/data/selectable_mic_device_list") or []
|
||||
import random
|
||||
data = random.choice(lst) if lst else None
|
||||
elif endpoint == "/set/data/mic_threshold":
|
||||
@@ -623,7 +623,7 @@ class AutomatedEndpointTester:
|
||||
import random
|
||||
data = random.choice([["test_0_0","test_0_1","test_0_2",None],["test_1_0","test_1_1",None],["test_2_0",None],[None]])
|
||||
elif endpoint == "/set/data/selected_speaker_device":
|
||||
lst = self._get("/get/data/speaker_device_list") or []
|
||||
lst = self._get("/get/data/selectable_speaker_device_list") or []
|
||||
import random
|
||||
data = random.choice(lst) if lst else None
|
||||
elif endpoint == "/set/data/speaker_threshold":
|
||||
@@ -654,7 +654,7 @@ class AutomatedEndpointTester:
|
||||
elif endpoint == "/set/data/speaker_no_speech_prob":
|
||||
import random
|
||||
data = random.uniform(0,1)
|
||||
elif endpoint == "/set/data/whisper_weight_type":
|
||||
elif endpoint == "/set/data/selected_whisper_weight_type":
|
||||
dct = self._get("/get/data/selectable_whisper_weight_type_dict") or {}
|
||||
import random
|
||||
keys=[k for k,v in dct.items() if v]
|
||||
|
||||
@@ -181,7 +181,7 @@ class TestMainloop():
|
||||
data = random.choice(["1", "2", "3"])
|
||||
case "/set/data/selected_translation_engines":
|
||||
print("Fetching endpoint data for translation_engines...")
|
||||
self.config_dict["translation_engines"], _ = self.main.handleRequest("/get/data/translation_engines", None)
|
||||
self.config_dict["translation_engines"], _ = self.main.handleRequest("/get/data/selectable_translation_engines", None)
|
||||
translation_engines = self.config_dict.get("translation_engines", None)
|
||||
data = {}
|
||||
for i in ["1", "2", "3"]:
|
||||
@@ -202,7 +202,7 @@ class TestMainloop():
|
||||
for j in ["1", "2", "3"]:
|
||||
data[i][j] = random.choice(selectable_language_list) | {"enable": random.choice([True, False])}
|
||||
case "/set/data/selected_transcription_engine":
|
||||
self.config_dict["transcription_engines"], _ = self.main.handleRequest("/get/data/transcription_engines", None)
|
||||
self.config_dict["transcription_engines"], _ = self.main.handleRequest("/get/data/selectable_transcription_engines", None)
|
||||
transcription_engines = self.config_dict.get("transcription_engines", None)
|
||||
data = random.choice(transcription_engines)
|
||||
case "/set/data/transparency":
|
||||
@@ -227,42 +227,42 @@ class TestMainloop():
|
||||
"height": random.randint(600, 1080)
|
||||
}
|
||||
case "/set/data/selected_translation_compute_device":
|
||||
self.config_dict["translation_compute_device_list"], _ = self.main.handleRequest("/get/data/translation_compute_device_list", None)
|
||||
self.config_dict["translation_compute_device_list"], _ = self.main.handleRequest("/get/data/selectable_translation_compute_device_list", None)
|
||||
translation_compute_device_list = self.config_dict.get("translation_compute_device_list", None)
|
||||
data = random.choice(translation_compute_device_list)
|
||||
case "/set/data/selected_transcription_compute_device":
|
||||
self.config_dict["transcription_compute_device_list"], _ = self.main.handleRequest("/get/data/transcription_compute_device_list", None)
|
||||
self.config_dict["transcription_compute_device_list"], _ = self.main.handleRequest("/get/data/selectable_transcription_compute_device_list", None)
|
||||
transcription_compute_device_list = self.config_dict.get("transcription_compute_device_list", None)
|
||||
data = random.choice(transcription_compute_device_list)
|
||||
case "/set/data/ctranslate2_weight_type":
|
||||
case "/set/data/selected_ctranslate2_weight_type":
|
||||
self.config_dict["selectable_ctranslate2_weight_type_dict"], _ = self.main.handleRequest("/get/data/selectable_ctranslate2_weight_type_dict", None)
|
||||
selectable_ctranslate2_weight_type_dict = self.config_dict.get("selectable_ctranslate2_weight_type_dict", None)
|
||||
data = random.choice(list(selectable_ctranslate2_weight_type_dict.keys()))
|
||||
# LLM / API Clients
|
||||
case "/set/data/plamo_model":
|
||||
case "/set/data/selected_plamo_model":
|
||||
# 事前にモデルリストを取得
|
||||
self.config_dict["plamo_model_list"], _ = self.main.handleRequest("/get/data/plamo_model_list", None)
|
||||
self.config_dict["plamo_model_list"], _ = self.main.handleRequest("/get/data/selectable_plamo_model_list", None)
|
||||
model_list = self.config_dict.get("plamo_model_list", [])
|
||||
data = random.choice(model_list) if model_list else None
|
||||
case "/set/data/plamo_auth_key":
|
||||
data = "PLAMO_DUMMY_KEY" # 成功か失敗かは内部判定に依存
|
||||
expected_status = [200, 400]
|
||||
case "/set/data/gemini_model":
|
||||
self.config_dict["gemini_model_list"], _ = self.main.handleRequest("/get/data/gemini_model_list", None)
|
||||
case "/set/data/selected_gemini_model":
|
||||
self.config_dict["gemini_model_list"], _ = self.main.handleRequest("/get/data/selectable_gemini_model_list", None)
|
||||
model_list = self.config_dict.get("gemini_model_list", [])
|
||||
data = random.choice(model_list) if model_list else None
|
||||
case "/set/data/gemini_auth_key":
|
||||
data = "GEMINI_DUMMY_KEY"
|
||||
expected_status = [200, 400]
|
||||
case "/set/data/openai_model":
|
||||
self.config_dict["openai_model_list"], _ = self.main.handleRequest("/get/data/openai_model_list", None)
|
||||
case "/set/data/selected_openai_model":
|
||||
self.config_dict["openai_model_list"], _ = self.main.handleRequest("/get/data/selectable_openai_model_list", None)
|
||||
model_list = self.config_dict.get("openai_model_list", [])
|
||||
data = random.choice(model_list) if model_list else None
|
||||
case "/set/data/openai_auth_key":
|
||||
data = "OPENAI_DUMMY_KEY"
|
||||
expected_status = [200, 400]
|
||||
case "/set/data/lmstudio_model":
|
||||
self.config_dict["lmstudio_model_list"], _ = self.main.handleRequest("/get/data/lmstudio_model_list", None)
|
||||
case "/set/data/selected_lmstudio_model":
|
||||
self.config_dict["lmstudio_model_list"], _ = self.main.handleRequest("/get/data/selectable_lmstudio_model_list", None)
|
||||
model_list = self.config_dict.get("lmstudio_model_list", [])
|
||||
data = random.choice(model_list) if model_list else None
|
||||
case "/set/data/lmstudio_url":
|
||||
@@ -273,8 +273,8 @@ class TestMainloop():
|
||||
"http://invalid_host:9999/v1",
|
||||
])
|
||||
expected_status = [200, 400]
|
||||
case "/set/data/ollama_model":
|
||||
self.config_dict["ollama_model_list"], _ = self.main.handleRequest("/get/data/ollama_model_list", None)
|
||||
case "/set/data/selected_ollama_model":
|
||||
self.config_dict["ollama_model_list"], _ = self.main.handleRequest("/get/data/selectable_ollama_model_list", None)
|
||||
model_list = self.config_dict.get("ollama_model_list", [])
|
||||
data = random.choice(model_list) if model_list else None
|
||||
case "/set/data/deepl_auth_key":
|
||||
@@ -290,12 +290,12 @@ class TestMainloop():
|
||||
data = "OPENAI_DUMMY_KEY"
|
||||
expected_status = [200, 400]
|
||||
case "/set/data/selected_mic_host":
|
||||
self.config_dict["mic_host_list"], _ = self.main.handleRequest("/get/data/mic_host_list", None)
|
||||
mic_host_list = self.config_dict.get("mic_host_list", None)
|
||||
self.config_dict["selectable_mic_host_list"], _ = self.main.handleRequest("/get/data/selectable_mic_host_list", None)
|
||||
mic_host_list = self.config_dict.get("selectable_mic_host_list", None)
|
||||
data = random.choice(mic_host_list)
|
||||
case "/set/data/selected_mic_device":
|
||||
self.config_dict["mic_device_list"], _ = self.main.handleRequest("/get/data/mic_device_list", None)
|
||||
mic_device_list = self.config_dict.get("mic_device_list", None)
|
||||
self.config_dict["selectable_mic_device_list"], _ = self.main.handleRequest("/get/data/selectable_mic_device_list", None)
|
||||
mic_device_list = self.config_dict.get("selectable_mic_device_list", None)
|
||||
data = random.choice(mic_device_list)
|
||||
case "/set/data/mic_threshold":
|
||||
data = random.randint(-1000, 3000)
|
||||
@@ -348,8 +348,8 @@ class TestMainloop():
|
||||
]
|
||||
)
|
||||
case "/set/data/selected_speaker_device":
|
||||
self.config_dict["speaker_device_list"], _ = self.main.handleRequest("/get/data/speaker_device_list", None)
|
||||
speaker_device_list = self.config_dict.get("speaker_device_list", None)
|
||||
self.config_dict["selectable_speaker_device_list"], _ = self.main.handleRequest("/get/data/selectable_speaker_device_list", None)
|
||||
speaker_device_list = self.config_dict.get("selectable_speaker_device_list", None)
|
||||
data = random.choice(speaker_device_list)
|
||||
case "/set/data/speaker_threshold":
|
||||
data = random.randint(-1000, 5000)
|
||||
@@ -383,7 +383,7 @@ class TestMainloop():
|
||||
data = random.uniform(-5, 0)
|
||||
case "/set/data/speaker_no_speech_prob":
|
||||
data = random.uniform(0, 1)
|
||||
case "/set/data/whisper_weight_type":
|
||||
case "/set/data/selected_whisper_weight_type":
|
||||
self.config_dict["selectable_whisper_weight_type_dict"], _ = self.main.handleRequest("/get/data/selectable_whisper_weight_type_dict", None)
|
||||
selectable_whisper_weight_type_dict = self.config_dict.get("selectable_whisper_weight_type_dict", None)
|
||||
data = random.choice([key for key, value in selectable_whisper_weight_type_dict.items() if value is True])
|
||||
@@ -647,7 +647,7 @@ class TestMainloop():
|
||||
]
|
||||
|
||||
self.set_data_specific_endpoints = [
|
||||
# "/set/data/ctranslate2_weight_type",
|
||||
# "/set/data/selected_ctranslate2_weight_type",
|
||||
# "/set/data/websocket_host",
|
||||
# "/set/data/websocket_port",
|
||||
"/set/data/osc_ip_address",
|
||||
@@ -766,7 +766,7 @@ class TestMainloop():
|
||||
self.main.handleRequest("/set/data/selected_target_languages", data)
|
||||
|
||||
# 翻訳エンジンを設定する(例: "CTranslate2")
|
||||
self.config_dict["translation_engines"], _ = self.main.handleRequest("/get/data/translation_engines", None)
|
||||
self.config_dict["translation_engines"], _ = self.main.handleRequest("/get/data/selectable_translation_engines", None)
|
||||
translation_engines = self.config_dict.get("translation_engines", None)
|
||||
for engine in translation_engines:
|
||||
results[source_lang["language"]][target_lang["language"]][engine] = None
|
||||
|
||||
@@ -29,7 +29,7 @@ export const SETTINGS_ARRAY = [
|
||||
ui_template_id: "list",
|
||||
logics_template_id: "get_set",
|
||||
add_endpoint_run_array: ["from_backend"],
|
||||
base_endpoint_name: "mic_host_list",
|
||||
base_endpoint_name: "selectable_mic_host_list",
|
||||
response_transform: "arrayToObject",
|
||||
},
|
||||
{
|
||||
@@ -39,7 +39,7 @@ export const SETTINGS_ARRAY = [
|
||||
ui_template_id: "list",
|
||||
logics_template_id: "get_set",
|
||||
add_endpoint_run_array: ["from_backend"],
|
||||
base_endpoint_name: "mic_device_list",
|
||||
base_endpoint_name: "selectable_mic_device_list",
|
||||
response_transform: "arrayToObject",
|
||||
},
|
||||
{
|
||||
@@ -91,7 +91,7 @@ export const SETTINGS_ARRAY = [
|
||||
ui_template_id: "list",
|
||||
logics_template_id: "get_set",
|
||||
add_endpoint_run_array: ["from_backend"],
|
||||
base_endpoint_name: "speaker_device_list",
|
||||
base_endpoint_name: "selectable_speaker_device_list",
|
||||
response_transform: "arrayToObject",
|
||||
},
|
||||
{
|
||||
@@ -194,7 +194,7 @@ export const SETTINGS_ARRAY = [
|
||||
default_value: "",
|
||||
ui_template_id: "select",
|
||||
logics_template_id: "get_set",
|
||||
base_endpoint_name: "ctranslate2_weight_type",
|
||||
base_endpoint_name: "selected_ctranslate2_weight_type",
|
||||
},
|
||||
{
|
||||
Category: "Translation",
|
||||
@@ -210,7 +210,7 @@ export const SETTINGS_ARRAY = [
|
||||
default_value: [],
|
||||
ui_template_id: "list",
|
||||
logics_template_id: "get_set",
|
||||
base_endpoint_name: "translation_compute_device_list",
|
||||
base_endpoint_name: "selectable_translation_compute_device_list",
|
||||
response_transform: "transformToIndexedArray",
|
||||
},
|
||||
{
|
||||
@@ -312,7 +312,7 @@ export const SETTINGS_ARRAY = [
|
||||
default_value: "",
|
||||
ui_template_id: "select",
|
||||
logics_template_id: "get_set",
|
||||
base_endpoint_name: "whisper_weight_type",
|
||||
base_endpoint_name: "selected_whisper_weight_type",
|
||||
},
|
||||
{
|
||||
Category: "Transcription",
|
||||
@@ -328,7 +328,7 @@ export const SETTINGS_ARRAY = [
|
||||
default_value: [],
|
||||
ui_template_id: "list",
|
||||
logics_template_id: "get_set",
|
||||
base_endpoint_name: "transcription_compute_device_list",
|
||||
base_endpoint_name: "selectable_transcription_compute_device_list",
|
||||
response_transform: "transformToIndexedArray",
|
||||
},
|
||||
{
|
||||
|
||||
@@ -107,7 +107,7 @@ export const useLanguageSettings = () => {
|
||||
|
||||
const getTranslationEngines = () => {
|
||||
pendingTranslationEngines();
|
||||
asyncStdoutToPython("/get/data/translation_engines");
|
||||
asyncStdoutToPython("/get/data/selectable_translation_engines");
|
||||
};
|
||||
|
||||
const updateTranslatorAvailability = (payload) => {
|
||||
|
||||
@@ -74,7 +74,7 @@ export const STATIC_ROUTE_META_LIST = [
|
||||
{ endpoint: "/get/data/selected_target_languages", ns: main, hook_name: "useLanguageSettings", method_name: "updateSelectedTargetLanguages" },
|
||||
{ endpoint: "/set/data/selected_target_languages", ns: main, hook_name: "useLanguageSettings", method_name: "updateSelectedTargetLanguages" },
|
||||
|
||||
{ endpoint: "/get/data/translation_engines", ns: main, hook_name: "useLanguageSettings", method_name: "updateTranslatorAvailability" },
|
||||
{ endpoint: "/get/data/selectable_translation_engines", ns: main, hook_name: "useLanguageSettings", method_name: "updateTranslatorAvailability" },
|
||||
{ endpoint: "/run/translation_engines", ns: main, hook_name: "useLanguageSettings", method_name: "updateTranslatorAvailability" },
|
||||
|
||||
{ endpoint: "/get/data/selected_translation_engines", ns: main, hook_name: "useLanguageSettings", method_name: "updateSelectedTranslationEngines" },
|
||||
@@ -102,7 +102,7 @@ export const STATIC_ROUTE_META_LIST = [
|
||||
{ endpoint: "/set/data/plugins_status", ns: configs, hook_name: "usePlugins", method_name: "setSuccessSavedPluginsStatus" },
|
||||
|
||||
// // Not Implemented Yet...
|
||||
{ endpoint: "/get/data/transcription_engines", ns: null, hook_name: null, method_name: null }, // Not implemented on UI yet. (if ai_models has not been detected, this will be blank array[]. if the ai_models are ok but just network has not connected, it'l be only ["Whisper"])
|
||||
{ endpoint: "/get/data/selectable_transcription_engines", ns: null, hook_name: null, method_name: null }, // Not implemented on UI yet. (if ai_models has not been detected, this will be blank array[]. if the ai_models are ok but just network has not connected, it'l be only ["Whisper"])
|
||||
];
|
||||
|
||||
export const useReceiveRoutes = () => {
|
||||
|
||||
Reference in New Issue
Block a user