diff options
| -rw-r--r-- | README.md | 19 | ||||
| -rw-r--r-- | emotes.py | 15 | ||||
| -rw-r--r-- | generate_utils.py | 2 |
3 files changed, 25 insertions, 11 deletions
@@ -9,7 +9,7 @@ custom shader display the text in game. Features: -* 4x44 grid, 256 or 65536 characters per slot. +* 4x48 grid, 256 or 65536 characters per slot. * Text-to-text interface. * Speech-to-text interface. * Multiple language support. @@ -18,6 +18,13 @@ Features: * Translation from English into other languages is added case by case. This is a limitation of the state of the art in machine translation: fine-tuned English->other language models far outperform English->many language models. +* Start/stop transcription by clicking left joystick. +* Resizable: talk to friends close up or far away. +* Audio feedback: hear distinct beeps when transcription starts and stops. + * May also enable in-game noise indicator, to grab others' attention. +* Visual transcription indicator. Green == talking, orange == waiting for sync, + red == done talking. +* May be attached to hand or left in world space. * Free as in beer. * Free as in freedom. * Privacy-respecting: transcription is done on your GPU, not in the cloud. @@ -145,14 +152,14 @@ To use the STT: 2. ~~Support appending to existing FX layers.~~ DONE 3. Use VRCSDK to generate FX layer instead of generating the serialized files. 2. In-game usability features. - 1. Resizing (talk to friends far away). + 1. ~~Resizing (talk to friends far away).~~ DONE 2. ~~Basic toggles (hide it when not needed).~~ DONE 3. ~~World mounting (leave it in a fixed position in world space).~~ DONE - 4. Avatar mounting (attach it to your hand). - 5. Controller triggers (avoid having to use the radial menu every time you - want to speak). + 4. ~~Avatar mounting (attach it to your hand)~~ DONE. + 5. ~~Controller triggers (avoid having to use the radial menu every time you + want to speak).~~ DONE 3. General usability features. - 1. Error detection & correction. + 1. ~~Error detection & correction.~~ DONE 2. ~~Text-to-text interface. Type in terminal, show in game.~~ DONE 3. ~~Speech-to-text interface. Speak out loud, show in game.~~ DONE 4. Translation into non-English. Whisper natively supports translating N @@ -25,6 +25,12 @@ IMG_TEX_DATA.append(("Images/Emotes/peepoHappy.png", "happy")) IMG_TEX_DATA.append(("Images/Emotes/peepoSad.png", "sad")) IMG_TEX_DATA.append(("Images/Emotes/bedge.png", "bed")) IMG_TEX_DATA.append(("Images/Emotes/reallymad.png", "mad")) +IMG_TEX_DATA.append(("Images/Emotes/clueless.png", "surely")) +IMG_TEX_DATA.append(("Images/Emotes/what.png", "what")) +IMG_TEX_DATA.append(("Images/Emotes/based.png", "based")) +IMG_TEX_DATA.append(("Images/Emotes/chad.png", "chad")) +IMG_TEX_DATA.append(("Images/Emotes/aware.png", "aware")) +IMG_TEX_DATA.append(("Images/Emotes/girl.png", "girl")) IMG_TEX_KEYWORD_TO_COORD = {} for i in range(0, len(IMG_TEX_DATA)): @@ -72,8 +78,9 @@ def addImageToTexture(tex: Image, img_path: str, x: int, y:int): img_scale = (max_px / max_dim) * scale new_sz = (int(floor(img.size[0] * img_scale)), int(floor(img.size[1] * img_scale))) - print("Original size: {}".format(img.size)) - print("Scaled size: {}".format(new_sz)) + print("Add image {}".format(img_path)) + print(" Original size: {}".format(img.size)) + print(" Scaled size: {}".format(new_sz)) img = img.resize(new_sz) # Center the image within its new coordinate space. @@ -90,13 +97,13 @@ def addImageToTexture(tex: Image, img_path: str, x: int, y:int): tile_y = int(floor(slot / scale)) tile_bbox = (tile_x * IMG_SZ_PX, tile_y * IMG_SZ_PX, (tile_x + 1) * IMG_SZ_PX, (tile_y + 1) * IMG_SZ_PX) tile = img.crop(tile_bbox) - print("tile {},{} (bbox={})".format(tile_x, tile_y, tile_bbox)) + print(" tile {},{} (bbox={})".format(tile_x, tile_y, tile_bbox)) slot_x = x + slot % IMG_PER_ROW slot_y = y + int(floor(slot / IMG_PER_ROW)) slot_x_px = slot_x * IMG_SZ_PX slot_y_px = slot_y * IMG_SZ_PX - print("Add img at {},{} (px {},{})".format(slot_x, slot_y, slot_x_px, slot_y_px)) + print(" Add img at {},{} (px {},{})".format(slot_x, slot_y, slot_x_px, slot_y_px)) tex.paste(tile, box=(slot_x_px, slot_y_px)) diff --git a/generate_utils.py b/generate_utils.py index 0480c3c..e8fcc8b 100644 --- a/generate_utils.py +++ b/generate_utils.py @@ -11,7 +11,7 @@ def replaceMacros(lines, macro_defs): # of the board. BOARD_ROWS=4 BOARD_COLS=48 -NUM_REGIONS = 16 +NUM_REGIONS = 24 CHARS_PER_CELL=256 BYTES_PER_CHAR=2 |
