Merge branch 'refactor_endpoints' into develop

This commit is contained in:
misyaguziya
2025-11-13 10:02:40 +09:00
12 changed files with 141 additions and 104 deletions

View File

@@ -639,6 +639,9 @@ class Config:
MIC_MAX_PHRASES = ManagedProperty('MIC_MAX_PHRASES', type_=int) MIC_MAX_PHRASES = ManagedProperty('MIC_MAX_PHRASES', type_=int)
MIC_AVG_LOGPROB = ManagedProperty('MIC_AVG_LOGPROB', type_=(int, float)) MIC_AVG_LOGPROB = ManagedProperty('MIC_AVG_LOGPROB', type_=(int, float))
MIC_NO_SPEECH_PROB = ManagedProperty('MIC_NO_SPEECH_PROB', 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', HOTKEYS = ValidatedProperty('HOTKEYS',
validator=lambda val, inst: ( validator=lambda val, inst: (
{k: (v if (isinstance(v, list) or v is None) else inst.HOTKEYS.get(k)) {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_MAX_PHRASES = ManagedProperty('SPEAKER_MAX_PHRASES', type_=int)
SPEAKER_AVG_LOGPROB = ManagedProperty('SPEAKER_AVG_LOGPROB', type_=(int, float)) SPEAKER_AVG_LOGPROB = ManagedProperty('SPEAKER_AVG_LOGPROB', type_=(int, float))
SPEAKER_NO_SPEECH_PROB = ManagedProperty('SPEAKER_NO_SPEECH_PROB', 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 and API settings ---
AUTH_KEYS = ValidatedProperty('AUTH_KEYS', AUTH_KEYS = ValidatedProperty('AUTH_KEYS',
@@ -862,6 +868,16 @@ class Config:
self._PLUGINS_STATUS = [] self._PLUGINS_STATUS = []
self._MIC_AVG_LOGPROB = -0.8 self._MIC_AVG_LOGPROB = -0.8
self._MIC_NO_SPEECH_PROB = 0.6 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 self._AUTO_SPEAKER_SELECT = True
try: try:
if device_manager is not None: if device_manager is not None:
@@ -879,6 +895,16 @@ class Config:
self._SPEAKER_MAX_PHRASES = 10 self._SPEAKER_MAX_PHRASES = 10
self._SPEAKER_AVG_LOGPROB = -0.8 self._SPEAKER_AVG_LOGPROB = -0.8
self._SPEAKER_NO_SPEECH_PROB = 0.6 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_IP_ADDRESS = "127.0.0.1"
self._OSC_PORT = 9000 self._OSC_PORT = 9000
self._AUTH_KEYS = { self._AUTH_KEYS = {

View File

@@ -79,21 +79,21 @@ class Controller:
def updateMicHostList(self) -> None: def updateMicHostList(self) -> None:
self.run( self.run(
200, 200,
self.run_mapping["mic_host_list"], self.run_mapping["selectable_mic_host_list"],
model.getListMicHost(), model.getListMicHost(),
) )
def updateMicDeviceList(self) -> None: def updateMicDeviceList(self) -> None:
self.run( self.run(
200, 200,
self.run_mapping["mic_device_list"], self.run_mapping["selectable_mic_device_list"],
model.getListMicDevice(), model.getListMicDevice(),
) )
def updateSpeakerDeviceList(self) -> None: def updateSpeakerDeviceList(self) -> None:
self.run( self.run(
200, 200,
self.run_mapping["speaker_device_list"], self.run_mapping["selectable_speaker_device_list"],
model.getListSpeakerDevice(), model.getListSpeakerDevice(),
) )

View File

@@ -12,7 +12,7 @@ VRCTアプリケーションのAPIエンドポイントを包括的にテスト
- マイク/スピーカー関連タイムアウト値の正常範囲チェック(取得した最新値を基準にバリデーション) - マイク/スピーカー関連タイムアウト値の正常範囲チェック(取得した最新値を基準にバリデーション)
- Whisper / CTranslate2 重みタイプ辞書のキー集合変化への追従 - 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_translation_engines``/get/data/selectable_translation_engines`
- `selected_transcription_engine``/get/data/transcription_engines` - `selected_transcription_engine``/get/data/selectable_transcription_engines`
- `selected_translation_compute_device``/get/data/translation_compute_device_list` - `selected_translation_compute_device``/get/data/selectable_translation_compute_device_list`
- `ctranslate2_weight_type``/get/data/selectable_ctranslate2_weight_type_dict` - `ctranslate2_weight_type``/get/data/selectable_ctranslate2_weight_type_dict`
- `whisper_weight_type``/get/data/selectable_whisper_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_mic_host` / `selected_mic_device``/get/data/selectable_mic_host_list` / `/get/data/selectable_mic_device_list`
- `selected_speaker_device``/get/data/speaker_device_list` - `selected_speaker_device``/get/data/selectable_speaker_device_list`
### 実行系 ### 実行系

View File

@@ -79,8 +79,8 @@
`mainloop.py``mapping` / `run_mapping` に以下を追加: `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/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/ollama_model_list`, `/get/data/ollama_model`, `/set/data/ollama_model` - `/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` に名称統一。 - OpenAI 系: `getOpenAIAuthKey`, `setOpenAIAuthKey`, `delOpenAIAuthKey`, `getOpenAIModelList`, `getOpenAIModel`, `setOpenAIModel` に名称統一。
### 翻訳言語定義の構造変更 ### 翻訳言語定義の構造変更

View File

@@ -63,9 +63,9 @@ run_mapping = {
"selectable_ollama_model_list":"/run/selectable_ollama_model_list", "selectable_ollama_model_list":"/run/selectable_ollama_model_list",
"selected_ollama_model":"/run/selected_ollama_model", "selected_ollama_model":"/run/selected_ollama_model",
"mic_host_list":"/run/mic_host_list", "selectable_mic_host_list":"/run/selectable_mic_host_list",
"mic_device_list":"/run/mic_device_list", "selectable_mic_device_list":"/run/selectable_mic_device_list",
"speaker_device_list":"/run/speaker_device_list", "selectable_speaker_device_list":"/run/selectable_speaker_device_list",
"software_update_info":"/run/software_update_info", "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/enable/main_window_sidebar_compact_mode": {"status": True, "variable":controller.setEnableMainWindowSidebarCompactMode},
"/set/disable/main_window_sidebar_compact_mode": {"status": True, "variable":controller.setDisableMainWindowSidebarCompactMode}, "/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/selectable_language_list": {"status": True, "variable":controller.getListLanguageAndCountry},
"/get/data/selected_translation_engines": {"status": False, "variable":controller.getSelectedTranslationEngines}, "/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}, "/get/data/selected_target_languages": {"status": True, "variable":controller.getSelectedTargetLanguages},
"/set/data/selected_target_languages": {"status": True, "variable":controller.setSelectedTargetLanguages}, "/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}, "/get/data/selected_transcription_engine": {"status": False, "variable":controller.getSelectedTranscriptionEngine},
"/set/data/selected_transcription_engine": {"status": False, "variable":controller.setSelectedTranscriptionEngine}, "/set/data/selected_transcription_engine": {"status": False, "variable":controller.setSelectedTranscriptionEngine},
@@ -164,18 +164,18 @@ mapping = {
# Compute device # Compute device
"/get/data/compute_mode": {"status": True, "variable":controller.getComputeMode}, "/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}, "/get/data/selected_translation_compute_device": {"status": True, "variable":controller.getSelectedTranslationComputeDevice},
"/set/data/selected_translation_compute_device": {"status": True, "variable":controller.setSelectedTranslationComputeDevice}, "/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}, "/get/data/selected_transcription_compute_device": {"status": True, "variable":controller.getSelectedTranscriptionComputeDevice},
"/set/data/selected_transcription_compute_device": {"status": True, "variable":controller.setSelectedTranscriptionComputeDevice}, "/set/data/selected_transcription_compute_device": {"status": True, "variable":controller.setSelectedTranscriptionComputeDevice},
# Translation # Translation
"/get/data/selectable_ctranslate2_weight_type_dict": {"status": True, "variable":controller.getSelectableCtranslate2WeightTypeDict}, "/get/data/selectable_ctranslate2_weight_type_dict": {"status": True, "variable":controller.getSelectableCtranslate2WeightTypeDict},
"/get/data/ctranslate2_weight_type": {"status": True, "variable":controller.getCtranslate2WeightType}, "/get/data/selected_ctranslate2_weight_type": {"status": True, "variable":controller.getCtranslate2WeightType},
"/set/data/ctranslate2_weight_type": {"status": True, "variable":controller.setCtranslate2WeightType}, "/set/data/selected_ctranslate2_weight_type": {"status": True, "variable":controller.setCtranslate2WeightType},
"/get/data/selected_translation_compute_type": {"status": True, "variable":controller.getSelectedTranslationComputeType}, "/get/data/selected_translation_compute_type": {"status": True, "variable":controller.getSelectedTranslationComputeType},
"/set/data/selected_translation_compute_type": {"status": True, "variable":controller.setSelectedTranslationComputeType}, "/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}, "/set/data/deepl_auth_key": {"status": False, "variable":controller.setDeeplAuthKey},
"/delete/data/deepl_auth_key": {"status": False, "variable":controller.delDeeplAuthKey}, "/delete/data/deepl_auth_key": {"status": False, "variable":controller.delDeeplAuthKey},
"/get/data/plamo_model_list": {"status": False, "variable":controller.getPlamoModelList}, "/get/data/selectable_plamo_model_list": {"status": False, "variable":controller.getPlamoModelList},
"/get/data/plamo_model": {"status": False, "variable":controller.getPlamoModel}, "/get/data/selected_plamo_model": {"status": False, "variable":controller.getPlamoModel},
"/set/data/plamo_model": {"status": False, "variable":controller.setPlamoModel}, "/set/data/selected_plamo_model": {"status": False, "variable":controller.setPlamoModel},
"/get/data/plamo_auth_key": {"status": False, "variable":controller.getPlamoAuthKey}, "/get/data/plamo_auth_key": {"status": False, "variable":controller.getPlamoAuthKey},
"/set/data/plamo_auth_key": {"status": False, "variable":controller.setPlamoAuthKey}, "/set/data/plamo_auth_key": {"status": False, "variable":controller.setPlamoAuthKey},
"/delete/data/plamo_auth_key": {"status": False, "variable":controller.delPlamoAuthKey}, "/delete/data/plamo_auth_key": {"status": False, "variable":controller.delPlamoAuthKey},
"/get/data/gemini_model_list": {"status": True, "variable":controller.getGeminiModelList}, "/get/data/selectable_gemini_model_list": {"status": True, "variable":controller.getGeminiModelList},
"/get/data/gemini_model": {"status": True, "variable":controller.getGeminiModel}, "/get/data/selected_gemini_model": {"status": True, "variable":controller.getGeminiModel},
"/set/data/gemini_model": {"status": True, "variable":controller.setGeminiModel}, "/set/data/selected_gemini_model": {"status": True, "variable":controller.setGeminiModel},
"/get/data/gemini_auth_key": {"status": True, "variable":controller.getGeminiAuthKey}, "/get/data/gemini_auth_key": {"status": True, "variable":controller.getGeminiAuthKey},
"/set/data/gemini_auth_key": {"status": True, "variable":controller.setGeminiAuthKey}, "/set/data/gemini_auth_key": {"status": True, "variable":controller.setGeminiAuthKey},
"/delete/data/gemini_auth_key": {"status": True, "variable":controller.delGeminiAuthKey}, "/delete/data/gemini_auth_key": {"status": True, "variable":controller.delGeminiAuthKey},
"/get/data/openai_model_list": {"status": True, "variable":controller.getOpenAIModelList}, "/get/data/selectable_openai_model_list": {"status": True, "variable":controller.getOpenAIModelList},
"/get/data/openai_model": {"status": True, "variable":controller.getOpenAIModel}, "/get/data/selected_openai_model": {"status": True, "variable":controller.getOpenAIModel},
"/set/data/openai_model": {"status": True, "variable":controller.setOpenAIModel}, "/set/data/selected_openai_model": {"status": True, "variable":controller.setOpenAIModel},
"/get/data/openai_auth_key": {"status": True, "variable":controller.getOpenAIAuthKey}, "/get/data/openai_auth_key": {"status": True, "variable":controller.getOpenAIAuthKey},
"/set/data/openai_auth_key": {"status": True, "variable":controller.setOpenAIAuthKey}, "/set/data/openai_auth_key": {"status": True, "variable":controller.setOpenAIAuthKey},
"/delete/data/openai_auth_key": {"status": True, "variable":controller.delOpenAIAuthKey}, "/delete/data/openai_auth_key": {"status": True, "variable":controller.delOpenAIAuthKey},
"/run/lmstudio_connection": {"status": True, "variable":controller.checkTranslatorLMStudioConnection}, "/run/lmstudio_connection": {"status": True, "variable":controller.checkTranslatorLMStudioConnection},
"/get/data/lmstudio_model_list": {"status": True, "variable":controller.getTranslatorLStudioModelList}, "/get/data/selectable_lmstudio_model_list": {"status": True, "variable":controller.getTranslatorLStudioModelList},
"/get/data/lmstudio_model": {"status": True, "variable":controller.getTranslatorLMStudioModel}, "/get/data/selected_lmstudio_model": {"status": True, "variable":controller.getTranslatorLMStudioModel},
"/set/data/lmstudio_model": {"status": True, "variable":controller.setTranslatorLMStudioModel}, "/set/data/selected_lmstudio_model": {"status": True, "variable":controller.setTranslatorLMStudioModel},
"/get/data/lmstudio_url": {"status": True, "variable":controller.getTranslatorLMStudioURL}, "/get/data/lmstudio_url": {"status": True, "variable":controller.getTranslatorLMStudioURL},
"/set/data/lmstudio_url": {"status": True, "variable":controller.setTranslatorLMStudioURL}, "/set/data/lmstudio_url": {"status": True, "variable":controller.setTranslatorLMStudioURL},
"/run/ollama_connection": {"status": True, "variable":controller.checkTranslatorOllamaConnection}, "/run/ollama_connection": {"status": True, "variable":controller.checkTranslatorOllamaConnection},
"/get/data/ollama_model_list": {"status": True, "variable":controller.getTranslatorOllamaModelList}, "/get/data/selectable_ollama_model_list": {"status": True, "variable":controller.getTranslatorOllamaModelList},
"/get/data/ollama_model": {"status": True, "variable":controller.getTranslatorOllamaModel}, "/get/data/selected_ollama_model": {"status": True, "variable":controller.getTranslatorOllamaModel},
"/set/data/ollama_model": {"status": True, "variable":controller.setTranslatorOllamaModel}, "/set/data/selected_ollama_model": {"status": True, "variable":controller.setTranslatorOllamaModel},
# Transliteration # Transliteration
"/get/data/convert_message_to_romaji": {"status": True, "variable":controller.getConvertMessageToRomaji}, "/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}, "/set/disable/convert_message_to_hiragana": {"status": True, "variable":controller.setDisableConvertMessageToHiragana},
# Transcription # Transcription
"/get/data/mic_host_list": {"status": True, "variable":controller.getMicHostList}, "/get/data/selectable_mic_host_list": {"status": True, "variable":controller.getMicHostList},
"/get/data/mic_device_list": {"status": True, "variable":controller.getMicDeviceList}, "/get/data/selectable_mic_device_list": {"status": True, "variable":controller.getMicDeviceList},
"/get/data/speaker_device_list": {"status": True, "variable":controller.getSpeakerDeviceList}, "/get/data/selectable_speaker_device_list": {"status": True, "variable":controller.getSpeakerDeviceList},
# "/get/data/max_mic_threshold": {"status": True, "variable":controller.getMaxMicThreshold}, # "/get/data/max_mic_threshold": {"status": True, "variable":controller.getMaxMicThreshold},
# "/get/data/max_speaker_threshold": {"status": True, "variable":controller.getMaxSpeakerThreshold}, # "/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/selectable_whisper_weight_type_dict": {"status": True, "variable":controller.getSelectableWhisperWeightTypeDict},
"/get/data/whisper_weight_type": {"status": True, "variable":controller.getWhisperWeightType}, "/get/data/selected_whisper_weight_type": {"status": True, "variable":controller.getWhisperWeightType},
"/set/data/whisper_weight_type": {"status": True, "variable":controller.setWhisperWeightType}, "/set/data/selected_whisper_weight_type": {"status": True, "variable":controller.setWhisperWeightType},
"/get/data/selected_transcription_compute_type": {"status": True, "variable":controller.getSelectedTranscriptionComputeType}, "/get/data/selected_transcription_compute_type": {"status": True, "variable":controller.getSelectedTranscriptionComputeType},
"/set/data/selected_transcription_compute_type": {"status": True, "variable":controller.setSelectedTranscriptionComputeType}, "/set/data/selected_transcription_compute_type": {"status": True, "variable":controller.setSelectedTranscriptionComputeType},

View File

@@ -664,7 +664,10 @@ class Model:
languages, languages,
countries, countries,
config.MIC_AVG_LOGPROB, 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: if res:
result = self.mic_transcriber.getTranscript() result = self.mic_transcriber.getTranscript()
@@ -856,7 +859,10 @@ class Model:
languages, languages,
countries, countries,
config.SPEAKER_AVG_LOGPROB, 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: if res:
result = self.speaker_transcriber.getTranscript() result = self.speaker_transcriber.getTranscript()

View File

@@ -8,7 +8,7 @@ import time
from io import BytesIO from io import BytesIO
from threading import Event from threading import Event
import wave 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 import Recognizer, AudioData, AudioFile
from speech_recognition.exceptions import UnknownValueError from speech_recognition.exceptions import UnknownValueError
from datetime import timedelta from datetime import timedelta
@@ -84,6 +84,9 @@ class AudioTranscriber:
countries: List[str], countries: List[str],
avg_logprob: float = -0.8, avg_logprob: float = -0.8,
no_speech_prob: float = 0.6, no_speech_prob: float = 0.6,
no_repeat_ngram_size: int = 0,
vad_filter: bool = False,
vad_parameters: Optional[Union[dict, Any]] = None,
) -> bool: ) -> bool:
if audio_queue.empty(): if audio_queue.empty():
time.sleep(0.01) time.sleep(0.01)
@@ -130,7 +133,9 @@ class AudioTranscriber:
word_timestamps=False, word_timestamps=False,
without_timestamps=True, without_timestamps=True,
task="transcribe", 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: for s in segments:
if s.avg_logprob < avg_logprob or s.no_speech_prob > no_speech_prob: if s.avg_logprob < avg_logprob or s.no_speech_prob > no_speech_prob:

View File

@@ -394,16 +394,16 @@ class AutomatedEndpointTester:
"/set/data/main_window_geometry", "/set/data/main_window_geometry",
"/set/data/selected_translation_compute_device", "/set/data/selected_translation_compute_device",
"/set/data/selected_transcription_compute_device", "/set/data/selected_transcription_compute_device",
"/set/data/ctranslate2_weight_type", "/set/data/selected_ctranslate2_weight_type",
"/set/data/plamo_model", "/set/data/selected_plamo_model",
"/set/data/plamo_auth_key", "/set/data/plamo_auth_key",
"/set/data/gemini_model", "/set/data/selected_gemini_model",
"/set/data/gemini_auth_key", "/set/data/gemini_auth_key",
"/set/data/openai_model", "/set/data/selected_openai_model",
"/set/data/openai_auth_key", "/set/data/openai_auth_key",
"/set/data/lmstudio_model", "/set/data/selected_lmstudio_model",
"/set/data/lmstudio_url", "/set/data/lmstudio_url",
"/set/data/ollama_model", "/set/data/selected_ollama_model",
"/set/data/deepl_auth_key", "/set/data/deepl_auth_key",
"/set/data/selected_mic_host", "/set/data/selected_mic_host",
"/set/data/selected_mic_device", "/set/data/selected_mic_device",
@@ -423,7 +423,7 @@ class AutomatedEndpointTester:
"/set/data/speaker_max_phrases", "/set/data/speaker_max_phrases",
"/set/data/speaker_avg_logprob", "/set/data/speaker_avg_logprob",
"/set/data/speaker_no_speech_prob", "/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_small_log_settings",
"/set/data/overlay_large_log_settings", "/set/data/overlay_large_log_settings",
"/set/data/send_message_format_parts", "/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 = sys.modules.get('__random_tab_choices', None) or None # placeholder for future dynamic
data = data or "1" data = data or "1"
elif endpoint == "/set/data/selected_translation_engines": 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"]} data = {i: (engines and (engines[0] if len(engines) else None)) for i in ["1","2","3"]}
elif endpoint == "/set/data/selected_your_languages": elif endpoint == "/set/data/selected_your_languages":
lang_list = self._get("/get/data/selectable_language_list") or [] lang_list = self._get("/get/data/selectable_language_list") or []
@@ -495,7 +495,7 @@ class AutomatedEndpointTester:
base = lang_list[0] base = lang_list[0]
data = {i: {j: {**base, "enable": (j=="1")} for j in ["1","2","3"]} for i in ["1","2","3"]} 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": 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 data = engines[0] if engines else None
elif endpoint == "/set/data/transparency": elif endpoint == "/set/data/transparency":
import random import random
@@ -524,44 +524,44 @@ class AutomatedEndpointTester:
"height": random.randint(600,1080) "height": random.randint(600,1080)
} }
elif endpoint == "/set/data/selected_translation_compute_device": 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 import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
elif endpoint == "/set/data/selected_transcription_compute_device": 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 import random
data = random.choice(lst) if lst else None 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 {} dct = self._get("/get/data/selectable_ctranslate2_weight_type_dict") or {}
keys = list(dct.keys()) keys = list(dct.keys())
import random import random
data = random.choice(keys) if keys else None data = random.choice(keys) if keys else None
elif endpoint == "/set/data/plamo_model": elif endpoint == "/set/data/selected_plamo_model":
lst = self._get("/get/data/plamo_model_list") or [] lst = self._get("/get/data/selectable_plamo_model_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
expected = [200,400] expected = [200,400]
elif endpoint == "/set/data/plamo_auth_key": elif endpoint == "/set/data/plamo_auth_key":
data = "PLAMO_DUMMY_KEY" data = "PLAMO_DUMMY_KEY"
expected = [200,400] expected = [200,400]
elif endpoint == "/set/data/gemini_model": elif endpoint == "/set/data/selected_gemini_model":
lst = self._get("/get/data/gemini_model_list") or [] lst = self._get("/get/data/selectable_gemini_model_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
expected = [200,400] expected = [200,400]
elif endpoint == "/set/data/gemini_auth_key": elif endpoint == "/set/data/gemini_auth_key":
data = "GEMINI_DUMMY_KEY" data = "GEMINI_DUMMY_KEY"
expected = [200,400] expected = [200,400]
elif endpoint == "/set/data/openai_model": elif endpoint == "/set/data/selected_openai_model":
lst = self._get("/get/data/openai_model_list") or [] lst = self._get("/get/data/selectable_openai_model_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
expected = [200,400] expected = [200,400]
elif endpoint == "/set/data/openai_auth_key": elif endpoint == "/set/data/openai_auth_key":
data = "OPENAI_DUMMY_KEY" data = "OPENAI_DUMMY_KEY"
expected = [200,400] expected = [200,400]
elif endpoint == "/set/data/lmstudio_model": elif endpoint == "/set/data/selected_lmstudio_model":
lst = self._get("/get/data/lmstudio_model_list") or [] lst = self._get("/get/data/selectable_lmstudio_model_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
expected = [200,400] expected = [200,400]
@@ -569,8 +569,8 @@ class AutomatedEndpointTester:
import random import random
data = random.choice(["http://localhost:1234/v1","http://127.0.0.1:1234/v1","http://invalid_host:9999/v1"]) data = random.choice(["http://localhost:1234/v1","http://127.0.0.1:1234/v1","http://invalid_host:9999/v1"])
expected=[200,400] expected=[200,400]
elif endpoint == "/set/data/ollama_model": elif endpoint == "/set/data/selected_ollama_model":
lst = self._get("/get/data/ollama_model_list") or [] lst = self._get("/get/data/selectable_ollama_model_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
expected = [200,400] expected = [200,400]
@@ -578,11 +578,11 @@ class AutomatedEndpointTester:
data = "DEEPL_DUMMY_KEY" data = "DEEPL_DUMMY_KEY"
expected=[200,400] expected=[200,400]
elif endpoint == "/set/data/selected_mic_host": 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 import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
elif endpoint == "/set/data/selected_mic_device": 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 import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
elif endpoint == "/set/data/mic_threshold": elif endpoint == "/set/data/mic_threshold":
@@ -623,7 +623,7 @@ class AutomatedEndpointTester:
import random 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]]) 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": 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 import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
elif endpoint == "/set/data/speaker_threshold": elif endpoint == "/set/data/speaker_threshold":
@@ -654,7 +654,7 @@ class AutomatedEndpointTester:
elif endpoint == "/set/data/speaker_no_speech_prob": elif endpoint == "/set/data/speaker_no_speech_prob":
import random import random
data = random.uniform(0,1) 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 {} dct = self._get("/get/data/selectable_whisper_weight_type_dict") or {}
import random import random
keys=[k for k,v in dct.items() if v] keys=[k for k,v in dct.items() if v]

View File

@@ -181,7 +181,7 @@ class TestMainloop():
data = random.choice(["1", "2", "3"]) data = random.choice(["1", "2", "3"])
case "/set/data/selected_translation_engines": case "/set/data/selected_translation_engines":
print("Fetching endpoint data for 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) translation_engines = self.config_dict.get("translation_engines", None)
data = {} data = {}
for i in ["1", "2", "3"]: for i in ["1", "2", "3"]:
@@ -202,7 +202,7 @@ class TestMainloop():
for j in ["1", "2", "3"]: for j in ["1", "2", "3"]:
data[i][j] = random.choice(selectable_language_list) | {"enable": random.choice([True, False])} data[i][j] = random.choice(selectable_language_list) | {"enable": random.choice([True, False])}
case "/set/data/selected_transcription_engine": 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) transcription_engines = self.config_dict.get("transcription_engines", None)
data = random.choice(transcription_engines) data = random.choice(transcription_engines)
case "/set/data/transparency": case "/set/data/transparency":
@@ -227,42 +227,42 @@ class TestMainloop():
"height": random.randint(600, 1080) "height": random.randint(600, 1080)
} }
case "/set/data/selected_translation_compute_device": 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) translation_compute_device_list = self.config_dict.get("translation_compute_device_list", None)
data = random.choice(translation_compute_device_list) data = random.choice(translation_compute_device_list)
case "/set/data/selected_transcription_compute_device": 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) transcription_compute_device_list = self.config_dict.get("transcription_compute_device_list", None)
data = random.choice(transcription_compute_device_list) 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) 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) 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())) data = random.choice(list(selectable_ctranslate2_weight_type_dict.keys()))
# LLM / API Clients # 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", []) model_list = self.config_dict.get("plamo_model_list", [])
data = random.choice(model_list) if model_list else None data = random.choice(model_list) if model_list else None
case "/set/data/plamo_auth_key": case "/set/data/plamo_auth_key":
data = "PLAMO_DUMMY_KEY" # 成功か失敗かは内部判定に依存 data = "PLAMO_DUMMY_KEY" # 成功か失敗かは内部判定に依存
expected_status = [200, 400] expected_status = [200, 400]
case "/set/data/gemini_model": case "/set/data/selected_gemini_model":
self.config_dict["gemini_model_list"], _ = self.main.handleRequest("/get/data/gemini_model_list", None) 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", []) model_list = self.config_dict.get("gemini_model_list", [])
data = random.choice(model_list) if model_list else None data = random.choice(model_list) if model_list else None
case "/set/data/gemini_auth_key": case "/set/data/gemini_auth_key":
data = "GEMINI_DUMMY_KEY" data = "GEMINI_DUMMY_KEY"
expected_status = [200, 400] expected_status = [200, 400]
case "/set/data/openai_model": case "/set/data/selected_openai_model":
self.config_dict["openai_model_list"], _ = self.main.handleRequest("/get/data/openai_model_list", None) 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", []) model_list = self.config_dict.get("openai_model_list", [])
data = random.choice(model_list) if model_list else None data = random.choice(model_list) if model_list else None
case "/set/data/openai_auth_key": case "/set/data/openai_auth_key":
data = "OPENAI_DUMMY_KEY" data = "OPENAI_DUMMY_KEY"
expected_status = [200, 400] expected_status = [200, 400]
case "/set/data/lmstudio_model": case "/set/data/selected_lmstudio_model":
self.config_dict["lmstudio_model_list"], _ = self.main.handleRequest("/get/data/lmstudio_model_list", None) 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", []) model_list = self.config_dict.get("lmstudio_model_list", [])
data = random.choice(model_list) if model_list else None data = random.choice(model_list) if model_list else None
case "/set/data/lmstudio_url": case "/set/data/lmstudio_url":
@@ -273,8 +273,8 @@ class TestMainloop():
"http://invalid_host:9999/v1", "http://invalid_host:9999/v1",
]) ])
expected_status = [200, 400] expected_status = [200, 400]
case "/set/data/ollama_model": case "/set/data/selected_ollama_model":
self.config_dict["ollama_model_list"], _ = self.main.handleRequest("/get/data/ollama_model_list", None) 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", []) model_list = self.config_dict.get("ollama_model_list", [])
data = random.choice(model_list) if model_list else None data = random.choice(model_list) if model_list else None
case "/set/data/deepl_auth_key": case "/set/data/deepl_auth_key":
@@ -290,12 +290,12 @@ class TestMainloop():
data = "OPENAI_DUMMY_KEY" data = "OPENAI_DUMMY_KEY"
expected_status = [200, 400] expected_status = [200, 400]
case "/set/data/selected_mic_host": case "/set/data/selected_mic_host":
self.config_dict["mic_host_list"], _ = self.main.handleRequest("/get/data/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("mic_host_list", None) mic_host_list = self.config_dict.get("selectable_mic_host_list", None)
data = random.choice(mic_host_list) data = random.choice(mic_host_list)
case "/set/data/selected_mic_device": case "/set/data/selected_mic_device":
self.config_dict["mic_device_list"], _ = self.main.handleRequest("/get/data/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("mic_device_list", None) mic_device_list = self.config_dict.get("selectable_mic_device_list", None)
data = random.choice(mic_device_list) data = random.choice(mic_device_list)
case "/set/data/mic_threshold": case "/set/data/mic_threshold":
data = random.randint(-1000, 3000) data = random.randint(-1000, 3000)
@@ -348,8 +348,8 @@ class TestMainloop():
] ]
) )
case "/set/data/selected_speaker_device": case "/set/data/selected_speaker_device":
self.config_dict["speaker_device_list"], _ = self.main.handleRequest("/get/data/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("speaker_device_list", None) speaker_device_list = self.config_dict.get("selectable_speaker_device_list", None)
data = random.choice(speaker_device_list) data = random.choice(speaker_device_list)
case "/set/data/speaker_threshold": case "/set/data/speaker_threshold":
data = random.randint(-1000, 5000) data = random.randint(-1000, 5000)
@@ -383,7 +383,7 @@ class TestMainloop():
data = random.uniform(-5, 0) data = random.uniform(-5, 0)
case "/set/data/speaker_no_speech_prob": case "/set/data/speaker_no_speech_prob":
data = random.uniform(0, 1) 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) 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) 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]) 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 = [ self.set_data_specific_endpoints = [
# "/set/data/ctranslate2_weight_type", # "/set/data/selected_ctranslate2_weight_type",
# "/set/data/websocket_host", # "/set/data/websocket_host",
# "/set/data/websocket_port", # "/set/data/websocket_port",
"/set/data/osc_ip_address", "/set/data/osc_ip_address",
@@ -766,7 +766,7 @@ class TestMainloop():
self.main.handleRequest("/set/data/selected_target_languages", data) self.main.handleRequest("/set/data/selected_target_languages", data)
# 翻訳エンジンを設定する(例: "CTranslate2" # 翻訳エンジンを設定する(例: "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) translation_engines = self.config_dict.get("translation_engines", None)
for engine in translation_engines: for engine in translation_engines:
results[source_lang["language"]][target_lang["language"]][engine] = None results[source_lang["language"]][target_lang["language"]][engine] = None

View File

@@ -29,7 +29,7 @@ export const SETTINGS_ARRAY = [
ui_template_id: "list", ui_template_id: "list",
logics_template_id: "get_set", logics_template_id: "get_set",
add_endpoint_run_array: ["from_backend"], add_endpoint_run_array: ["from_backend"],
base_endpoint_name: "mic_host_list", base_endpoint_name: "selectable_mic_host_list",
response_transform: "arrayToObject", response_transform: "arrayToObject",
}, },
{ {
@@ -39,7 +39,7 @@ export const SETTINGS_ARRAY = [
ui_template_id: "list", ui_template_id: "list",
logics_template_id: "get_set", logics_template_id: "get_set",
add_endpoint_run_array: ["from_backend"], add_endpoint_run_array: ["from_backend"],
base_endpoint_name: "mic_device_list", base_endpoint_name: "selectable_mic_device_list",
response_transform: "arrayToObject", response_transform: "arrayToObject",
}, },
{ {
@@ -91,7 +91,7 @@ export const SETTINGS_ARRAY = [
ui_template_id: "list", ui_template_id: "list",
logics_template_id: "get_set", logics_template_id: "get_set",
add_endpoint_run_array: ["from_backend"], add_endpoint_run_array: ["from_backend"],
base_endpoint_name: "speaker_device_list", base_endpoint_name: "selectable_speaker_device_list",
response_transform: "arrayToObject", response_transform: "arrayToObject",
}, },
{ {
@@ -194,7 +194,7 @@ export const SETTINGS_ARRAY = [
default_value: "", default_value: "",
ui_template_id: "select", ui_template_id: "select",
logics_template_id: "get_set", logics_template_id: "get_set",
base_endpoint_name: "ctranslate2_weight_type", base_endpoint_name: "selected_ctranslate2_weight_type",
}, },
{ {
Category: "Translation", Category: "Translation",
@@ -210,7 +210,7 @@ export const SETTINGS_ARRAY = [
default_value: [], default_value: [],
ui_template_id: "list", ui_template_id: "list",
logics_template_id: "get_set", logics_template_id: "get_set",
base_endpoint_name: "translation_compute_device_list", base_endpoint_name: "selectable_translation_compute_device_list",
response_transform: "transformToIndexedArray", response_transform: "transformToIndexedArray",
}, },
{ {
@@ -312,7 +312,7 @@ export const SETTINGS_ARRAY = [
default_value: "", default_value: "",
ui_template_id: "select", ui_template_id: "select",
logics_template_id: "get_set", logics_template_id: "get_set",
base_endpoint_name: "whisper_weight_type", base_endpoint_name: "selected_whisper_weight_type",
}, },
{ {
Category: "Transcription", Category: "Transcription",
@@ -328,7 +328,7 @@ export const SETTINGS_ARRAY = [
default_value: [], default_value: [],
ui_template_id: "list", ui_template_id: "list",
logics_template_id: "get_set", logics_template_id: "get_set",
base_endpoint_name: "transcription_compute_device_list", base_endpoint_name: "selectable_transcription_compute_device_list",
response_transform: "transformToIndexedArray", response_transform: "transformToIndexedArray",
}, },
{ {

View File

@@ -107,7 +107,7 @@ export const useLanguageSettings = () => {
const getTranslationEngines = () => { const getTranslationEngines = () => {
pendingTranslationEngines(); pendingTranslationEngines();
asyncStdoutToPython("/get/data/translation_engines"); asyncStdoutToPython("/get/data/selectable_translation_engines");
}; };
const updateTranslatorAvailability = (payload) => { const updateTranslatorAvailability = (payload) => {

View File

@@ -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: "/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: "/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: "/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" }, { 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" }, { endpoint: "/set/data/plugins_status", ns: configs, hook_name: "usePlugins", method_name: "setSuccessSavedPluginsStatus" },
// // Not Implemented Yet... // // 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 = () => { export const useReceiveRoutes = () => {