summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2022-12-01 13:39:49 -0800
committeryum <yum.food.vr@gmail.com>2022-12-01 13:39:49 -0800
commitf9bcee6acf6f8a418d2f96368941fc05e4b72252 (patch)
tree6c0cdf33ac4cc6ef55ad8cbddd03f07d9c0c65e4
parent480463b0578407a8f5a6585eb7018933e6ec7186 (diff)
Update README.md
Also decrease sync params & add a few more emotes.
-rw-r--r--README.md19
-rw-r--r--emotes.py15
-rw-r--r--generate_utils.py2
3 files changed, 25 insertions, 11 deletions
diff --git a/README.md b/README.md
index 885e424..c78037b 100644
--- a/README.md
+++ b/README.md
@@ -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
diff --git a/emotes.py b/emotes.py
index 0fd41d8..b922fdf 100644
--- a/emotes.py
+++ b/emotes.py
@@ -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