<feed xmlns='http://www.w3.org/2005/Atom'>
<title>TaSTT.git/GUI, branch v0.4.0</title>
<subtitle>Free self-hosted STT for VRChat.</subtitle>
<id>https://git.yummers.dev/TaSTT.git/atom?h=v0.4.0</id>
<link rel='self' href='https://git.yummers.dev/TaSTT.git/atom?h=v0.4.0'/>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/'/>
<updated>2023-01-26T06:40:22+00:00</updated>
<entry>
<title>Finish basic PBR shading</title>
<updated>2023-01-26T06:40:22+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-26T05:55:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=e5da172a85368551954332836e52d2c98b37edec'/>
<id>urn:sha1:e5da172a85368551954332836e52d2c98b37edec</id>
<content type='text'>
TaSTT shader now uses physically based rendering (PBR). Users can pick
smoothness, metallic, and emissive.

This implementation borrows heavily from catlikecoding.com's excellent
tutorials, which are released under MIT No Attribution (MIT-0).

https://catlikecoding.com/unity/tutorials/license/

To retain what little clarity remains in the shader, I have chosen not
to attribute the code in the source itself.
</content>
</entry>
<entry>
<title>GUI: Add ability to choose button</title>
<updated>2023-01-25T20:38:28+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-25T20:38:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=227ff7aa0ed2fd03c54ae53aa01430012ff3f7d0'/>
<id>urn:sha1:227ff7aa0ed2fd03c54ae53aa01430012ff3f7d0</id>
<content type='text'>
We use a button to start/stop transcription. Previously this was
hardcoded to left joystick. Now users can pick from {left, right} x
{joystick, a, b}.
</content>
</entry>
<entry>
<title>Use requirements.txt for Scripts/</title>
<updated>2023-01-25T19:45:22+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-25T19:34:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=b61b57eca9746078d3694cc4f9c047b776f7f9f8'/>
<id>urn:sha1:b61b57eca9746078d3694cc4f9c047b776f7f9f8</id>
<content type='text'>
This seems to be the canonical way of listing a Python app's
dependencies.

* Installing dependencies no longer hangs the GUI
</content>
</entry>
<entry>
<title>Bugfix: Use future 0.18.2 instead of 0.18.3</title>
<updated>2023-01-23T22:55:36+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-23T22:55:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=2bfee587d306402708221f2390fb02dedff6caea'/>
<id>urn:sha1:2bfee587d306402708221f2390fb02dedff6caea</id>
<content type='text'>
Whisper doesn't like 0.18.3, so downgrade to the last version.
</content>
</entry>
<entry>
<title>package.ps1 now fetches all dependencies</title>
<updated>2023-01-23T22:32:09+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-23T22:28:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=9fff496394dcd94c4084694ca96a5e07ab836274'/>
<id>urn:sha1:9fff496394dcd94c4084694ca96a5e07ab836274</id>
<content type='text'>
Don't literally check in Python since it looks dodgy (rightfully so).
Instead the build script just fetches it.

* Update README, simplifying language and documenting other projects
</content>
</entry>
<entry>
<title>Bugfix: shader now respects bytes per char</title>
<updated>2023-01-23T00:40:04+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-23T00:40:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=9329d64f991b8b3289af22e4c2eedb09a97c5640'/>
<id>urn:sha1:9329d64f991b8b3289af22e4c2eedb09a97c5640</id>
<content type='text'>
</content>
</entry>
<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>GUI: Save Unity input fields across app restarts</title>
<updated>2023-01-22T23:28:12+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-22T23:28:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=06160c37acb26cfac9bab568bd3759c2386fb175'/>
<id>urn:sha1:06160c37acb26cfac9bab568bd3759c2386fb175</id>
<content type='text'>
I found that I tend to regenerate the animator on the same avatar a lot,
requiring me to re-enter the same paths and parameters over and over
again. Persist them across restarts.

* Refactor Config classes
* Use safe `get_if` instead of the exception-throwing `operator&gt;&gt;` when
  deserializing from YAML
* Begin sketching out Log singleton
* Put Quote() and Unquote() into their own little lib; they shouldn't
  hide inside PythonApp
</content>
</entry>
<entry>
<title>GUI: Persist transcription app config</title>
<updated>2023-01-06T20:31:13+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-06T20:31:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=461714cc87549f3c0c3411bfe95f3936aca60f74'/>
<id>urn:sha1:461714cc87549f3c0c3411bfe95f3936aca60f74</id>
<content type='text'>
The configuration of the transcription app, such as the number of rows
and columns in the text box, now persists across app restarts. I found
that I would have to change from the defaults to my preferred config
every time I started up in VR, which was annoying. Now we just start
with the config that was set last time.

* Add dependency on rapidyaml (MIT)
* Serialize transcription config to file under Resources/
* Add Config class to wrap serializing/deserializing
* Update build instructions
* Simplify StartApp() API, taking Config struct instead of a ton of
  arguments
</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>
</feed>
