<feed xmlns='http://www.w3.org/2005/Atom'>
<title>TaSTT.git/GUI, 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>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>
<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>Embed git in package</title>
<updated>2023-01-02T05:44:45+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-02T05:05:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=e25bdba3a3a53b09be5269d8b065c13b73ab55c3'/>
<id>urn:sha1:e25bdba3a3a53b09be5269d8b065c13b73ab55c3</id>
<content type='text'>
package.ps1 fetches PortableGit and embeds it in the package. This
eliminates all but one runtime dependency (MSVC++ Redistributable).

* Move Python into a new FOSS folder.
</content>
</entry>
<entry>
<title>Statically link binary</title>
<updated>2023-01-02T03:33:17+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-02T03:33:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=0d408cc812a094a708edbe4baf536e928731cfc3'/>
<id>urn:sha1:0d408cc812a094a708edbe4baf536e928731cfc3</id>
<content type='text'>
Update build instructions.
</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: Update chars per sync default</title>
<updated>2022-12-30T09:44:52+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-12-30T09:44:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=7bc6ee5f7f163b35e9de0a368406978d144be5c5'/>
<id>urn:sha1:7bc6ee5f7f163b35e9de0a368406978d144be5c5</id>
<content type='text'>
The defaults now reflect what I typically use.
</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>
</feed>
