diff --git a/README.md b/README.md index b3891b50..6997bcd4 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ ptyhon VRCT.py (任意) 1. DeepLのAPIを使用するためにアカウント登録し、認証キーを取得する 2. ギアアイコンのボタンでconfigウィンドウを開く -3. ParameterタブのDeepL Auth Keyに認証キーを記載し、フロッピーアイコンのボタンを押す +3. ParameterタブのDeepL Auth Keyに認証キーを記載 4. configウィンドウを閉じる ### Normal use @@ -75,22 +75,29 @@ ptyhon VRCT.py - Appearance Theme: ウィンドウテーマを選択 - UI Scaling: UIサイズを調整 - Font Family: 表示フォントを選択 + - **(New!) UI Language: UIの表示言語を選択** - Translation tab - Select Translator: 翻訳エンジンの変更 - Send Language: 送信するメッセージに対して翻訳する言語[source, target]を選択 - Receive Language: 受信したメッセージに対して翻訳する言語[source, target]を選択 - Transcription tab + - **(New!) Input Mic Host: マイクのホストAPIを選択** - Input Mic Device: マイクを選択 - Input Mic Voice Language: 入力する音声の言語 - Input Mic Energy Threshold: 音声取得のしきい値 + - **(New!) Check threshold point: Input Mic Energy Thresholdのしきい値を視覚化** - Input Mic Dynamic Energy Threshold: 音声取得のしきい値の自動調整 + - Input Mic Phase Timeout: 文字起こしする音声時間の上限 - Input Mic Record Timeout: 音声の区切りの無音時間 - Input Mic Max Phrases: 保留する単語の上限 + - **(New!) Input Mic Word Filter: MICの文字起こし時にWord Filterで設定した文字が入っていた場合にChatboxに表示しない (ex AAA,BBB,CCC)** - Input Speaker Device: スピーカーを選択 - Input Speaker Voice Language: 受信する音声の言語 - Input Speaker Energy Threshold: 音声取得のしきい値 + - **(New!) Check threshold point: (New!)Input Speaker Energy Thresholdのしきい値を視覚化** - Input Speaker Dynamic Energy Threshold: 音声取得のしきい値の自動調整 - Input Speaker Record Timeout: 音声の区切りの無音時間 + - Input Speaker Phase Timeout: 文字起こしする音声時間の上限 - Input Speaker Max Phrases: 保留する単語の上限 - Parameter tab - OSC IP address: 変更不要 @@ -101,9 +108,11 @@ ptyhon VRCT.py - [translation]が翻訳されたメッセージに置換される - 初期フォーマット:`[message]([translation])` - Others tab - - Auto clear chat box: チャット送信時にチャットボックスを空にする + - **(New!) Auto clear chat box: メッセージ送信後に書き込んだメッセージを空にする** ## Author みしゃ(misyaguzi) twitter: https://twitter.com/misya_ai -booth: https://misyaguziya.booth.pm/items/4814313 \ No newline at end of file +booth: https://misyaguziya.booth.pm/items/4814313 + +Shiina_12siy \ No newline at end of file diff --git a/README.txt b/README.txt index 5a28b468..57cdbfe5 100644 --- a/README.txt +++ b/README.txt @@ -1,79 +1,90 @@ ご購入ありがとうございます。 フィードバックお待ちしております。 -概要 +# 概要 VRChatで使用されるChatBoxをOSC経由でメッセージを送信するツールになります。 翻訳エンジンを使用してメッセージとその翻訳部分を同時に送信することができます。 (翻訳エンジンはDeepL,Google,Bingに対応) -使用方法 - 初期設定時 -  0. VRChatのOSCを有効にする(重要) +# 使用方法 + 初期設定時 + 0. VRChatのOSCを有効にする(重要) -  (任意) -  1. DeepLのAPIを使用するためにアカウント登録し、認証キーを取得する -  2. ギアアイコンのボタンでconfigウィンドウを開く -  3. ParameterタブのDeepL Auth Keyに認証キーを記載し、フロッピーアイコンのボタンを押す -  4. configウィンドウを閉じる + (任意) + 1. DeepLのAPIを使用するためにアカウント登録し、認証キーを取得する + 2. ギアアイコンのボタンでconfigウィンドウを開く + 3. ParameterタブのDeepL Auth Keyに認証キーを記載 + 4. configウィンドウを閉じる - 通常使用時 -  1. メッセージボックスにメッセージを記入 -  2. Enterキーを押し、メッセージを送信する + 通常使用時 + 1. メッセージボックスにメッセージを記入 + 2. Enterキーを押し、メッセージを送信する - その他の設定 -  - translation チェックボックス: 翻訳の有効無効 -  - voice2chatbox チェックボックス : マイクの音声を文字起こししてチャットボックスに送信する -  - speaker2log チェックボックス : スピーカーの音声から文字起こししてログに表示する -  - foreground チェックボックス: 最前面表示の有効無効 +# その他の設定 + translation チェックボックス: 翻訳の有効無効 + voice2chatbox チェックボックス : マイクの音声を文字起こししてチャットボックスに送信する + speaker2log チェックボックス : スピーカーの音声から文字起こししてログに表示する + foreground チェックボックス: 最前面表示の有効無効 -   - テキストボックス -    - logタブ: すべてのログを表示 -    - sendタブ: 送信したメッセージを表示 -    - receiveタブ: 受信したメッセージを表示 -    - systemタブ: 機能についてのメッセージを表示 + テキストボックス + logタブ + すべてのログを表示 + sendタブ + 送信したメッセージを表示 + receiveタブ + 受信したメッセージを表示 + systemタブ + 機能についてのメッセージを表示 -  - Configウィンドウ -   - UIタブ -    - Transparency: ウィンドウの透過度の調整 -    - Appearance Theme: ウィンドウテーマを選択 -    - UI Scaling: UIサイズを調整 -    - Font Family: 表示フォントを選択 -   - Translationタブ -    - Select Translator: 翻訳エンジンの変更 -    - Send Language: 送信するメッセージに対して翻訳する言語[source, target]を選択 -    - Receive Language: 受信したメッセージに対して翻訳する言語[source, target]を選択 -   - Transcriptionタブ -    - Input Mic Device: マイクを選択 -    - Input Mic Voice Language: 入力する音声の言語 -    - Input Mic Energy Threshold: 音声取得のしきい値 -    - Input Mic Dynamic Energy Threshold: 音声取得のしきい値の自動調整 -    - Input Mic Record Timeout: 音声の区切りの無音時間 -    - Input Mic Max Phrases: 保留する単語の上限 -    - Input Speaker Device: スピーカーを選択 -    - Input Speaker Voice Language: 受信する音声の言語 -    - Input Speaker Energy Threshold: 音声取得のしきい値 -    - Input Speaker Dynamic Energy Threshold: 音声取得のしきい値の自動調整 -    - Input Speaker Record Timeout: 音声の区切りの無音時間 -    - Input Speaker Max Phrases: 保留する単語の上限 -  - Parameterタブ -    - OSC IP address: 変更不要 -    - OSC port: 変更不要 -    - DeepL Auth key: DeepLの認証キーの設定 -    - Message Format: 送信するメッセージのデコレーションの設定 -     - [message]がメッセージボックスに記入したメッセージに置換される -     - [translation]が翻訳されたメッセージに置換される -     - 初期フォーマット:"[message]([translation])" -  - Othersタブ -    - Auto clear chat box: チャット送信時にチャットボックスを空にする + configウィンドウ + UIタブ + Transparency: ウィンドウの透過度の調整 + Appearance Theme: ウィンドウテーマを選択 + UI Scaling: UIサイズを調整 + Font Family: 表示フォントを選択 + (New!) UI Language: UIの表示言語を選択 + Translationタブ + Select Translator: 翻訳エンジンの変更 + Send Language: 送信するメッセージに対して翻訳する言語[source, target]を選択 + Receive Language: 受信したメッセージに対して翻訳する言語[source, target]を選択 + Transcriptionタブ + (New!) Input Mic Host: マイクのホストAPIを選択 + Input Mic Device: マイクを選択 + Input Mic Voice Language: 入力する音声の言語 + Input Mic Energy Threshold: 音声取得のしきい値 + (New!) Check threshold point: Input Mic Energy Thresholdのしきい値を視覚化 + Input Mic Dynamic Energy Threshold: 音声取得のしきい値の自動調整 + Input Mic Record Timeout: 音声の区切りの無音時間 + Input Mic Phase Timeout: 文字起こしする音声時間の上限 + Input Mic Max Phrases: 保留する単語の上限 + (New!) Input Mic Word Filter: MICの文字起こし時にWord Filterで設定した文字が入っていた場合にChatboxに表示しない (ex AAA,BBB,CCC) + Input Speaker Device: スピーカーを選択 + Input Speaker Voice Language: 受信する音声の言語 + Input Speaker Energy Threshold: 音声取得のしきい値 + (New!) Check threshold point: (New!)Input Speaker Energy Thresholdのしきい値を視覚化 + Input Speaker Dynamic Energy Threshold: 音声取得のしきい値の自動調整 + Input Speaker Record Timeout: 音声の区切りの無音時間 + Input Speaker Phase Timeout: 文字起こしする音声時間の上限 + Input Speaker Max Phrases: 保留する単語の上限 + Parameterタブ + OSC IP address: 変更不要 + OSC port: 変更不要 + DeepL Auth key: DeepLの認証キーの設定 + Message Format: 送信するメッセージのデコレーションの設定 + [message]がメッセージボックスに記入したメッセージに置換される + [translation]が翻訳されたメッセージに置換される + 初期フォーマット:"[message]([translation])" + Othersタブ + (New!) Auto clear chat box: メッセージ送信後に書き込んだメッセージを空にする - 設定の初期化 -  - config.jsonを削除 + 設定の初期化 + config.jsonを削除 -お問い合わせ +# お問い合わせ 要望などはTwitterまで https://twitter.com/misya_ai -アップデート履歴 +# アップデート履歴 [2023-05-29: v0.1b] v0.1b リリース [2023-05-30: v0.2b] - configボタンをギアアイコンに変更 @@ -99,6 +110,15 @@ https://twitter.com/misya_ai - 文字起こしの処理の軽量化 [2023-07-05: v1.2] - 文字起こし精度の向上 +[2023-07-21: v1.3] +- UIの表示言語を日本語/英語を選択できる機能を追加 +- Energy Thresholdの視覚化機能を追加 +- 文字起こしの誤認識対策のため、Word Filterを追加 +- WASAPI以外のHostAPIでもマイクとして使用できるようにHostAPIを選択できる機能を追加 +- メッセージ送信後に書き込んだメッセージを空にするか選択できる機能を追加 +- バグ対策のため、translation/voice2chatbox/speaker2log/foregroundは起動時はOFFになるように変更 +- バグ対策のため、スピーカーについて既定デバイス以外を選択した時にERRORが出るように変更 +- 半角入力時に一部の文字が書き込めないバグを修正 # 注意事項 再配布とかはやめてね \ No newline at end of file diff --git a/locales.yml b/locales.yml index 38dbe6e4..6ee9596d 100644 --- a/locales.yml +++ b/locales.yml @@ -101,17 +101,20 @@ ja: label_input_mic_device: "マイク入力デバイス" label_input_mic_voice_language: "マイクで話す言語" label_input_mic_energy_threshold: "音声取得のしきい値" + checkbox_input_mic_threshold_check: "音声取得のしきい値の視覚化" label_input_mic_dynamic_energy_threshold: "音声取得のしきい値の自動調整" label_input_mic_record_timeout: "マイク音声の区切りの無音時間" - # label_input_mic_phrase_timeout: "" + label_input_mic_phrase_timeout: "文字起こしする音声時間の上限" label_input_mic_max_phrases: "保留する単語の上限(マイク)" + label_input_mic_word_filter: "ワードフィルタ" label_input_speaker_device: "スピーカー(聞き取りたいデバイス)" label_input_speaker_voice_language: "聞き取る音声の言語" label_input_speaker_energy_threshold: "音声取得のしきい値" + checkbox_input_speaker_threshold_check: "音声取得のしきい値の視覚化" label_input_speaker_dynamic_energy_threshold: "音声取得のしきい値の自動調整" label_input_speaker_record_timeout: "スピーカー音声の区切りの無音時間" - # label_input_speaker_phrase_timeout: "" + label_input_speaker_phrase_timeout: "文字起こしする音声時間の上限" label_input_speaker_max_phrases: "保留する単語の上限(スピーカー)" # tab Parameter diff --git a/window_config.py b/window_config.py index 59f52c5f..b7bdb8c0 100644 --- a/window_config.py +++ b/window_config.py @@ -14,7 +14,7 @@ from languages import translation_lang, transcription_lang, selectable_languages from ctk_scrollable_dropdown import CTkScrollableDropdown -SCROLLABLE_DROPDOWN = True +SCROLLABLE_DROPDOWN = False class ToplevelWindowConfig(CTkToplevel): @@ -344,7 +344,11 @@ class ToplevelWindowConfig(CTkToplevel): save_json(self.parent.PATH_CONFIG, "INPUT_MIC_MAX_PHRASES", self.parent.INPUT_MIC_MAX_PHRASES) def entry_input_mic_word_filters_callback(self, event): - self.parent.INPUT_MIC_WORD_FILTER = self.entry_input_mic_word_filter.get().split(",") + word_filter = self.entry_input_mic_word_filter.get() + if len(word_filter) > 0: + self.parent.INPUT_MIC_WORD_FILTER = self.entry_input_mic_word_filter.get().split(",") + else: + self.parent.INPUT_MIC_WORD_FILTER = [] self.parent.keyword_processor = KeywordProcessor() for f in self.parent.INPUT_MIC_WORD_FILTER: self.parent.keyword_processor.add_keyword(f) @@ -536,9 +540,9 @@ class ToplevelWindowConfig(CTkToplevel): command=self.optionmenu_appearance_theme_callback, variable=StringVar(value=self.parent.APPEARANCE_THEME), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_appearance_theme.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_appearance_theme._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown appearance theme if SCROLLABLE_DROPDOWN: @@ -570,9 +574,9 @@ class ToplevelWindowConfig(CTkToplevel): command=self.optionmenu_ui_scaling_callback, variable=StringVar(value=self.parent.UI_SCALING), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_ui_scaling.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_ui_scaling._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown ui scaling if SCROLLABLE_DROPDOWN: @@ -605,9 +609,9 @@ class ToplevelWindowConfig(CTkToplevel): command=self.optionmenu_font_family_callback, variable=StringVar(value=self.parent.FONT_FAMILY), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_font_family.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_font_family._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown font family if SCROLLABLE_DROPDOWN: @@ -640,9 +644,9 @@ class ToplevelWindowConfig(CTkToplevel): command=self.optionmenu_ui_language_callback, variable=StringVar(value=selectable_languages[self.parent.UI_LANGUAGE]), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_ui_language.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_ui_language._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown ui language if SCROLLABLE_DROPDOWN: @@ -677,9 +681,9 @@ class ToplevelWindowConfig(CTkToplevel): command=self.optionmenu_translation_translator_callback, variable=StringVar(value=self.parent.CHOICE_TRANSLATOR), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_translation_translator.grid(row=row, column=1, columnspan=3, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_translation_translator._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown translation translator if SCROLLABLE_DROPDOWN: @@ -713,9 +717,9 @@ class ToplevelWindowConfig(CTkToplevel): values=list(translation_lang[self.parent.CHOICE_TRANSLATOR].keys()), variable=StringVar(value=self.parent.INPUT_SOURCE_LANG), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_translation_input_source_language.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_translation_input_source_language._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown translation input source language if SCROLLABLE_DROPDOWN: @@ -748,9 +752,9 @@ class ToplevelWindowConfig(CTkToplevel): values=list(translation_lang[self.parent.CHOICE_TRANSLATOR].keys()), variable=StringVar(value=self.parent.INPUT_TARGET_LANG), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_translation_input_target_language.grid(row=row, column=3, columnspan=1, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_translation_input_target_language._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown translation input target language if SCROLLABLE_DROPDOWN: @@ -784,9 +788,9 @@ class ToplevelWindowConfig(CTkToplevel): values=list(translation_lang[self.parent.CHOICE_TRANSLATOR].keys()), variable=StringVar(value=self.parent.OUTPUT_SOURCE_LANG), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_translation_output_source_language.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_translation_output_source_language._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown translation output source language if SCROLLABLE_DROPDOWN: @@ -819,9 +823,9 @@ class ToplevelWindowConfig(CTkToplevel): values=list(translation_lang[self.parent.CHOICE_TRANSLATOR].keys()), variable=StringVar(value=self.parent.OUTPUT_TARGET_LANG), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_translation_output_target_language.grid(row=row, column=3, columnspan=1, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_translation_output_target_language._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown translation output target language if SCROLLABLE_DROPDOWN: @@ -856,9 +860,9 @@ class ToplevelWindowConfig(CTkToplevel): command=self.optionmenu_input_mic_host_callback, variable=StringVar(value=self.parent.CHOICE_MIC_HOST), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_input_mic_host.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_input_mic_host._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown input mic device's host if SCROLLABLE_DROPDOWN: @@ -890,9 +894,9 @@ class ToplevelWindowConfig(CTkToplevel): command=self.optionmenu_input_mic_device_callback, variable=StringVar(value=self.parent.CHOICE_MIC_DEVICE), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_input_mic_device.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_input_mic_device._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown input mic device if SCROLLABLE_DROPDOWN: @@ -924,9 +928,9 @@ class ToplevelWindowConfig(CTkToplevel): command=self.optionmenu_input_mic_voice_language_callback, variable=StringVar(value=self.parent.INPUT_MIC_VOICE_LANGUAGE), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_input_mic_voice_language.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_input_mic_voice_language._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown input mic voice language if SCROLLABLE_DROPDOWN: @@ -1068,9 +1072,14 @@ class ToplevelWindowConfig(CTkToplevel): font=CTkFont(family=self.parent.FONT_FAMILY) ) self.label_input_mic_word_filter.grid(row=row, column=0, columnspan=1, padx=padx, pady=pady, sticky="nsw") + if len(self.parent.INPUT_MIC_WORD_FILTER) > 0: + textvariable=StringVar(value=",".join(self.parent.INPUT_MIC_WORD_FILTER)) + else: + textvariable=None self.entry_input_mic_word_filter = CTkEntry( self.tabview_config.tab(config_tab_title_transcription), - textvariable=StringVar(value=",".join(self.parent.INPUT_MIC_WORD_FILTER)), + textvariable=textvariable, + placeholder_text="AAA,BBB,CCC", font=CTkFont(family=self.parent.FONT_FAMILY) ) self.entry_input_mic_word_filter.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") @@ -1091,9 +1100,9 @@ class ToplevelWindowConfig(CTkToplevel): command=self.optionmenu_input_speaker_device_callback, variable=StringVar(value=self.parent.CHOICE_SPEAKER_DEVICE), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_input_speaker_device.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_input_speaker_device._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown input speaker device if SCROLLABLE_DROPDOWN: @@ -1125,9 +1134,9 @@ class ToplevelWindowConfig(CTkToplevel): command=self.optionmenu_input_speaker_voice_language_callback, variable=StringVar(value=self.parent.INPUT_SPEAKER_VOICE_LANGUAGE), font=CTkFont(family=self.parent.FONT_FAMILY), + dropdown_font=CTkFont(family=self.parent.FONT_FAMILY), ) self.optionmenu_input_speaker_voice_language.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") - self.optionmenu_input_speaker_voice_language._dropdown_menu.configure(font=CTkFont(family=self.parent.FONT_FAMILY)) ## scrollableDropdown input speaker voice language if SCROLLABLE_DROPDOWN: diff --git a/window_information.py b/window_information.py index 39f9d713..85e50035 100644 --- a/window_information.py +++ b/window_information.py @@ -18,7 +18,7 @@ class ToplevelWindowInformation(CTkToplevel): font=CTkFont(family=self.parent.FONT_FAMILY) ) self.textbox_information.grid(row=0, column=0, padx=(10, 10), pady=(10, 10), sticky="nsew") - textbox_information_message = """VRCT(v1.2) + textbox_information_message = """VRCT(v1.3) # 概要 VRChatで使用されるChatBoxをOSC経由でメッセージを送信するツールになります。 @@ -32,7 +32,7 @@ VRChatで使用されるChatBoxをOSC経由でメッセージを送信するツ (任意) 1. DeepLのAPIを使用するためにアカウント登録し、認証キーを取得する 2. ギアアイコンのボタンでconfigウィンドウを開く - 3. ParameterタブのDeepL Auth Keyに認証キーを記載し、フロッピーアイコンのボタンを押す + 3. ParameterタブのDeepL Auth Keyに認証キーを記載 4. configウィンドウを閉じる 通常使用時 @@ -61,22 +61,29 @@ VRChatで使用されるChatBoxをOSC経由でメッセージを送信するツ Appearance Theme: ウィンドウテーマを選択 UI Scaling: UIサイズを調整 Font Family: 表示フォントを選択 + (New!) UI Language: UIの表示言語を選択 Translationタブ Select Translator: 翻訳エンジンの変更 Send Language: 送信するメッセージに対して翻訳する言語[source, target]を選択 Receive Language: 受信したメッセージに対して翻訳する言語[source, target]を選択 Transcriptionタブ + (New!) Input Mic Host: マイクのホストAPIを選択 Input Mic Device: マイクを選択 Input Mic Voice Language: 入力する音声の言語 Input Mic Energy Threshold: 音声取得のしきい値 + (New!) Check threshold point: Input Mic Energy Thresholdのしきい値を視覚化 Input Mic Dynamic Energy Threshold: 音声取得のしきい値の自動調整 Input Mic Record Timeout: 音声の区切りの無音時間 + Input Mic Phase Timeout: 文字起こしする音声時間の上限 Input Mic Max Phrases: 保留する単語の上限 + (New!) Input Mic Word Filter: MICの文字起こし時にWord Filterで設定した文字が入っていた場合にChatboxに表示しない (ex AAA,BBB,CCC) Input Speaker Device: スピーカーを選択 Input Speaker Voice Language: 受信する音声の言語 Input Speaker Energy Threshold: 音声取得のしきい値 + (New!) Check threshold point: (New!)Input Speaker Energy Thresholdのしきい値を視覚化 Input Speaker Dynamic Energy Threshold: 音声取得のしきい値の自動調整 Input Speaker Record Timeout: 音声の区切りの無音時間 + Input Speaker Phase Timeout: 文字起こしする音声時間の上限 Input Speaker Max Phrases: 保留する単語の上限 Parameterタブ OSC IP address: 変更不要 @@ -86,6 +93,8 @@ VRChatで使用されるChatBoxをOSC経由でメッセージを送信するツ [message]がメッセージボックスに記入したメッセージに置換される [translation]が翻訳されたメッセージに置換される 初期フォーマット:"[message]([translation])" + Othersタブ + (New!) Auto clear chat box: メッセージ送信後に書き込んだメッセージを空にする 設定の初期化 config.jsonを削除 @@ -118,6 +127,17 @@ https://twitter.com/misya_ai - いくつかのバクを修正 - 翻訳/文字起こし言語の表記を略称からわかりやすい文字に変更 - 文字起こしの処理の軽量化 +[2023-07-05: v1.2] +- 文字起こし精度の向上 +[2023-07-21: v1.3] +- UIの表示言語を日本語/英語を選択できる機能を追加 +- Energy Thresholdの視覚化機能を追加 +- 文字起こしの誤認識対策のため、Word Filterを追加 +- WASAPI以外のHostAPIでもマイクとして使用できるようにHostAPIを選択できる機能を追加 +- メッセージ送信後に書き込んだメッセージを空にするか選択できる機能を追加 +- バグ対策のため、translation/voice2chatbox/speaker2log/foregroundは起動時はOFFになるように変更 +- バグ対策のため、スピーカーについて既定デバイス以外を選択した時にERRORが出るように変更 +- 半角入力時に一部の文字が書き込めないバグを修正 # 注意事項 再配布とかはやめてね