<feed xmlns='http://www.w3.org/2005/Atom'>
<title>TaSTT.git/Scripts, branch v0.3</title>
<subtitle>Free self-hosted STT for VRChat.</subtitle>
<id>https://git.yummers.dev/TaSTT.git/atom?h=v0.3</id>
<link rel='self' href='https://git.yummers.dev/TaSTT.git/atom?h=v0.3'/>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/'/>
<updated>2023-01-22T23:35:00+00:00</updated>
<entry>
<title>Enable using built-in chatbox</title>
<updated>2023-01-22T23:35:00+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-22T23:05:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=1c056bf385d2c48f6e4f77da513060c04415252c'/>
<id>urn:sha1:1c056bf385d2c48f6e4f77da513060c04415252c</id>
<content type='text'>
VRChat exposes a built-in chatbox which can be seen by anyone who has
it enabled. This was not the case when I started this project: the
chatbox would only be visible to friends. Since this is clearly useful,
enabling the STT on public models, let's enable sending data to it.

Caveats:

* The built-in chatbox has anti-spam tech which limits us to updating
  about once every 2 seconds. The custom chatbox has no such limitation
  and is thus typically much faster.
</content>
</entry>
<entry>
<title>Bugfix: user-provided paths may now contain spaces</title>
<updated>2023-01-04T18:03:39+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-04T17:52:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=66d311b3267620995e5c35b16f3fba18ed0c48f3'/>
<id>urn:sha1:66d311b3267620995e5c35b16f3fba18ed0c48f3</id>
<content type='text'>
Previously, paths containing spaces would be interpreted by python's argument
parser as multiple separate arguments, causing it to fail. Now we escape paths
inside PythonWrapper using std::quoted().

* Improve PII filtering. Python output would contain multiple path separators
  (like C:\\Users\\foo\\), defeating the PII regex.
* Silence compiler warning in PII filter.
* Document usability improvements.
* Transcription layer exponential backoff goes to ~infinity when paused.
  This is a hack, since we really don't need to transcribe at all when paused,
  but it lets us keep the code simple. Good enough until the next rewrite.
* Shader only samples background when necessary.
* Limit matchStrings() print()s to DEBUG mode
</content>
</entry>
<entry>
<title>Portability bugfixes</title>
<updated>2023-01-02T05:45:56+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-02T05:09:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=6bed3a15edf134fa176ca4866b4346017bc97ada'/>
<id>urn:sha1:6bed3a15edf134fa176ca4866b4346017bc97ada</id>
<content type='text'>
* Expose option to run transcription engine on CPU instead of GPU
* Use embedded git when setting up the Python virtual environment
</content>
</entry>
<entry>
<title>Tweak paging logic</title>
<updated>2022-12-31T21:17:36+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-12-31T21:16:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=841a6a87b0ba00576c11fc64833b61ad9ade956e'/>
<id>urn:sha1:841a6a87b0ba00576c11fc64833b61ad9ade956e</id>
<content type='text'>
Re-paging anything on screen N causes screens N+1...infinity to
completely re-page. This fixes cases where we go back and draw something
at the bottom of the board, and it never gets overwritten.
</content>
</entry>
<entry>
<title>Bugfix: regions truncate correctly at page boundaries</title>
<updated>2022-12-30T10:33:07+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-12-30T10:25:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=d9a0224466189d0fe1d46f21d586fa8a1a58c687'/>
<id>urn:sha1:d9a0224466189d0fe1d46f21d586fa8a1a58c687</id>
<content type='text'>
Boards whose size is an even multiple of CHARS_PER_SYNC would lose the
entire last region.

* Attempt to fix runaway memory usage of GUI text frames, but this needs
  more work
</content>
</entry>
<entry>
<title>GUI: Expose transcription window duration</title>
<updated>2022-12-30T09:35:11+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-12-30T09:35:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=9a7190a04bbe6feba2abe4a1590eb8114c04f683'/>
<id>urn:sha1:9a7190a04bbe6feba2abe4a1590eb8114c04f683</id>
<content type='text'>
Users can pick longer transcription durations for accuracy-critical
tasks, or shorter durations for latency-critical tasks.
</content>
</entry>
<entry>
<title>Bugfix: regenerated FX layers now work on uploaded avatars</title>
<updated>2022-12-30T09:10:32+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-12-30T09:10:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=d1024fef1b216af5d3d991228c6b83311a71bb42'/>
<id>urn:sha1:d1024fef1b216af5d3d991228c6b83311a71bb42</id>
<content type='text'>
VRChat won't update the FX layer associated with an avatar unless its
GUID changes. Delete the GUID file when overwriting our generated FX
layer to work around this.

* Change paging behavior: when a region is updated, we re-page everything
  that comes after it. This fixes the issue where we go back to update
  something, then jump back to the current screen, leaving some random
  chunk of text somewhere on the board.
* Reduce transcription time from 28s to 10s. I'm going to expose this to
  the user since there's a fundamental latency/stability tradeoff here.
</content>
</entry>
<entry>
<title>Fine-tune transcription</title>
<updated>2022-12-30T08:01:28+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-12-30T08:01:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=abdaa7ce215086bf1070d6093731cd35df866cbb'/>
<id>urn:sha1:abdaa7ce215086bf1070d6093731cd35df866cbb</id>
<content type='text'>
Bump up recording window to 28 seconds. This helps a lot with long-form
transcription tasks, s.a. transcribing an audiobook.

We should expose this as a parameter, since at 10s the transcription delay is
typically 300ms, while at 28s it's typically 1.1-1.2s.
</content>
</entry>
<entry>
<title>GUI: Users can now control board dimensions</title>
<updated>2022-12-30T07:01:09+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-12-30T07:01:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=12bcd1d40df21cb9bad6ae353ea4f6697e1275a6'/>
<id>urn:sha1:12bcd1d40df21cb9bad6ae353ea4f6697e1275a6</id>
<content type='text'>
Users can now control how many letters wide and tall the board is.

Tested at 4x48, 5x60, 10x120, and 20x240. At 20x240, Unity freezes and
does not make forward progress. Perhaps creating 4800 float parameters
isn't a truly scalable interface.
</content>
</entry>
<entry>
<title>Add Scripts/generate_shader.py</title>
<updated>2022-12-30T02:49:24+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-12-30T02:47:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=7214653f9354ef885ef4131e455e0a63f12a17f2'/>
<id>urn:sha1:7214653f9354ef885ef4131e455e0a63f12a17f2</id>
<content type='text'>
Now it's possible to generate shaders with a custom number of rows, columns,
and bytes per character.

All edits to the shader should go through TaSTT_template.shader. To generate
a new shader from the template:
$ ./Scripts/generate_shader.py \
    --bytes_per_char 2 \
    --rows 1 \
    --cols 12
    --shader_template $(pwd)/Shaders/TaSTT_template.shader \
    --shader_path $(pwd)/Shaders/TaSTT.shader
</content>
</entry>
</feed>
