<feed xmlns='http://www.w3.org/2005/Atom'>
<title>TaSTT.git/README.md, 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-04T18:03:39+00:00</updated>
<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>Add Discord to README.md</title>
<updated>2023-01-01T23:06:57+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2023-01-01T23:06:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=edc199f99cb7eaa9d4972dd40a8aafd1ebbf7c90'/>
<id>urn:sha1:edc199f99cb7eaa9d4972dd40a8aafd1ebbf7c90</id>
<content type='text'>
This seems like the best way to support users.
</content>
</entry>
<entry>
<title>Touch up TaSTT.shader</title>
<updated>2022-12-25T22:22:36+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-12-21T23:54:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=4177ff5acb6fb583339f90374f31892144f3354b'/>
<id>urn:sha1:4177ff5acb6fb583339f90374f31892144f3354b</id>
<content type='text'>
Add a new shader to make the box a little prettier.

* Reduce material slots required from 2 to 1
* Add rounding to edge of box
</content>
</entry>
<entry>
<title>Document encoding optimization</title>
<updated>2022-12-22T22:54:03+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-12-22T22:49:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=6f2c1dace46a68620bc61a732a2f43252bd5d3ba'/>
<id>urn:sha1:6f2c1dace46a68620bc61a732a2f43252bd5d3ba</id>
<content type='text'>
By sending encoded words rather than letters, we could speed up
English paging rate by 2.5x over an optimized implementation

Word-encoded implementation: 16 bits per word
(capped at 64k possible words).

Optimized char-based imlementation:
(5.7 chars per word) * (7 bits per char) == 39.9 bits per word
2.5x slower than word encoding.

Today's char-based implementation:
(5.7 chars per word) * (16 bits per char) == 91.2 bits per word
5.7x slower than word encoding.
</content>
</entry>
<entry>
<title>Update README.md</title>
<updated>2022-12-22T21:47:40+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-12-22T21:47:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=9c6b3c43ddecca315cdba11ebd14f6926527fa8b'/>
<id>urn:sha1:9c6b3c43ddecca315cdba11ebd14f6926527fa8b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update README.md</title>
<updated>2022-12-01T21:39:49+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-12-01T21:39:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=f9bcee6acf6f8a418d2f96368941fc05e4b72252'/>
<id>urn:sha1:f9bcee6acf6f8a418d2f96368941fc05e4b72252</id>
<content type='text'>
Also decrease sync params &amp; add a few more emotes.
</content>
</entry>
<entry>
<title>Another transcription rework</title>
<updated>2022-11-15T05:36:13+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-11-15T05:30:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=2505a5cc486cd913db50a475e45c3701b9710282'/>
<id>urn:sha1:2505a5cc486cd913db50a475e45c3701b9710282</id>
<content type='text'>
After re-reading the paper, I noticed that they apply a couple
optimizations I wasn't using. Use the top-level `whisper.transcribe`
method, which is a little slower, but more accurate than the one I was
using.

Although this method is slower, it has better temporal stability due to
the increased quality, which I think should make for an overall more
responsive UX. Lower transcription quality means the paging layer has to
waste time updating earlier cells.

Also, drop the auto-commit stuff and go back to string stitching. I
think it's better to let the user manually commit. A rework of the hand
controls is probably coming soon.

Finally, update README.
</content>
</entry>
<entry>
<title>Update README</title>
<updated>2022-11-07T05:22:54+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-11-07T05:22:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=629c0f611de1622131bb0fa364c170219f6252ed'/>
<id>urn:sha1:629c0f611de1622131bb0fa364c170219f6252ed</id>
<content type='text'>
</content>
</entry>
<entry>
<title>String matching no longer relies on spaces</title>
<updated>2022-11-06T20:50:38+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-11-06T20:50:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=7146acb9d4ad751fc5ced411a2990d0aad17d08f'/>
<id>urn:sha1:7146acb9d4ad751fc5ced411a2990d0aad17d08f</id>
<content type='text'>
Add a `matchStrings` which does basically the same thing as
`matchStringList` except it doesn't split the input at space boundaries.
I think this should work better for Japanese and Chinese, since they
don't use spaces.

Doesn't seem to cause any accuracy regressions for English.

Also update the README.
</content>
</entry>
<entry>
<title>Reduce dimensionality of animator by factor of 80</title>
<updated>2022-11-05T19:14:12+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-11-05T19:11:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=7f930340e3aa94d6aca120d28436594427469373'/>
<id>urn:sha1:7f930340e3aa94d6aca120d28436594427469373</id>
<content type='text'>
Instead of generating one animation for every single character in our
character set, we just generate 2: the lowest and the highest. We use
blend trees to interpolate between these two extremes.

This reduces the number of animations we have to generate by a factor
of 80. It also clears the way for multi-language support (coming soon).
It also means we don't have to reopen unity every time we generate a new
animator.
</content>
</entry>
</feed>
