| Commit message (Collapse) | Author | Age |
| |
|
|
|
| |
Things like " (static)" and " *explosions*" were showing up a lot with
ggml-medium.bin. Filter them out.
|
| |
|
|
|
|
|
| |
Use forked Whisper implementation which has tweaks to reduce dropped
words around the beginning VAD segments.
* Retain audio after VAD segmentation events
|
| |
|
|
|
|
|
|
| |
* Pip install, dependency install, and model download can be gracefully
interrupted and resume later.
* Mic list was pointing at freed memory. Fix this by copying into the
heap with std::unique_ptr()s. Mic list in CPP panel is much more
reliable now.
|
| |
|
|
| |
Not ready yet.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Sort of a misnomer. The idea is to use C++ for transcription and Python
for steamvr and OSC.
Having issues getting output from multithreaded Python code. Not in the
mood to figure this out today.
* Hide unimplemented parts of C++ panel.
|
| |
|
|
| |
Simplifies debugging process.
|
| |
|
|
|
|
|
|
|
|
|
| |
Rapidyaml started refusing to parse config files so I dropped it.
* Add ConfigMarshal clas to support very simple config marshalling
* No versioning, no type indicators, nothing.
* Supports int, bool, and string.
* Bool are serialized as int.
* Log no longer segfaults if given nullptr wxTextCtrl*.
* Fix how whisper CPP GUI fields restore from config
|
| |
|
|
|
| |
* Implement HTTPMapper classes
* Browser source respects user-configured source port
|
| |
|
|
|
|
| |
Server needs to parse incoming HTTP.
* Server spawns a thread for each incoming connection
|
| |
|
|
|
|
|
| |
oatpp was a crashy mess. Begin making a simple web server from scratch.
* Add Designs/ folder to document nontrivial things like the webserver
design
|
| |
|
|
|
|
| |
It's a crashy mess, but it sort of works.
* Add Transcript class to send transcription segments between layers
|
| |
|
|
|
| |
Browser source queries /api/transcript at 10Hz via jquery and renders
the response.
|
| |
|
|
|
|
| |
Documented in BrowserSource::Run().
* Parameterize Release/Debug in build scripts
|
| |
|
|
|
|
|
| |
Browser source can be started and stopped via the UI. It still serves a
hello world json blob.
Observing occasional crashes when stopping the C++ transcription engine.
|
| |
|
|
|
| |
Synchronous multiprocessing layer now accepts a callback, which the
caller can use to stream output to the UI.
|
| |
|
|
|
|
| |
Not wired up yet.
* Add browser source fields to persistent config
|
| |
|
|
| |
* Fix oatpp fetch and build
|
| |
|
|
|
|
|
|
| |
This reverts commit cece1ee8f1b985c2a89adb661dd02c6d44787f67.
This does *not* in fact result in improved temporal stability. It makes
makes things so unstable that even single-sentence messages fail to
ever stabilize.
|
| |
|
|
|
|
|
|
|
|
|
| |
Use raw WIN32 APIs to launch processes instead of wxProcess. This
enables spawning processes from arbitrary thread contexts, such as
std::async or std::thread.
In the future, this layer should be redone to support streaming output.
* TODO: update setting path. This is almost certainly broken for users
without git installed. Test in VM!
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It appears that you cannot spawn a wxProcess from an independent thread
of execution. I imagine they're supposed to be spawned from the main
thread.
Fuck that, I'm going to try to use the raw WIN32 API to spawn helper
processes, and do it from arbitrary thread context.
* Log() now delegates to a queue which the main thread periodically
drains.
* Log() now writes to a file.
* WhisperCPP thread is now done with std::async.
* Default chars per sync is now 8
* oatpp: Promising web framework.
|
| |
|
|
|
|
|
|
|
| |
* Filter out transcriptions like " (music)"
* Whisper mic choice auto-populates with queried values
* No more manually lining up numbers!
* Persist whisper mic in config
* Remove setup and dump mics button from Whisper page
* Redesign makes these unnecessary
|
| |
|
|
|
|
|
|
| |
Use Const-me/Whisper to perform transcription. This implementation is
vastly more efficient: CPU usage, memory usage, and VRAM usage are all
dramatically reduced. It's slightly less accurate when comparing the
same model (due to the lack of beam search decoding), but since you can
use larger models, the impact is largely a wash.
|
| |
|
|
|
| |
Per the Whisper source code, this should result in better temporal
stability.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When you generate Unity assets, you have to configure
rows/cols/chars per sync/ bytes per char. When you switch over to the
transcription panel, these choices will be automatically populated.
This should reduce accidental mismatch between the two panels.
* Merge Config classes. Now just use one big AppConfig class instead of
one class per panel.
* Factor out (most) input field initialization into a function. Call it
when switching panels so input fields synchronize.
* Wrap a lot of lines at 80 columns.
* Add -skip_zip switch to package.ps1.
|
| |
|
|
|
|
|
|
|
|
| |
Allows sustained exponential backoff when not transcribing. Used to cap
out at 1s.
* Add more items to README TODO list
* Adjust emote metadata
* Emotes bugfix: Non-existent emote map doesn't cause transcription
engine to bail out.
|
| | |
|
| |
|
|
|
| |
It's much faster (and friendlier to upstream providers) to back up and
restore the venv instead of re-downloading every time.
|
| |
|
|
|
|
|
|
| |
Don't render any part of an emote with alpha < 0.5. Improves visual
clarity in the common case at the cost of generality.
* Emotes now use physically-based shading.
* Use round() to denoise shader parameters instead of floor()
|
| |
|
|
|
|
|
|
|
|
|
| |
Emotes require 2 bytes per char. They're encoded into the region
[0xE000, infinity). The texture is 4k, and uses 1k vertical pixels
per emote segment, for a maximum of 32 segments.
* Reduce volume of noise indicator by 90%. Quiet is probably better.
Might want to add a volume slider idk.
* Bugfix: emotes without a transparency channel now work
* Address a couple Unity performance complaints about the shader
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Done:
* Users can add images to Fonts/Emotes/
* The basename of that image ('clueless.png' becomes 'clueless') is the
keyword to make the image show up in game.
* Fix a bug in the shader where letters on the 2nd texture and later
would have UV outside of [0.0, 1.0]
Not yet implemented:
* transcribed words are encoded using emotes mapping
|
| |
|
|
|
|
|
|
|
|
|
|
| |
VRC SDK does not correctly regenerate OSC configs when adding
parameters to an avatar, causing the custom text box to be
non-functional for new users. This checkbox clears configs,
forcing the SDK to fully regenerate them on upload.
* Make start/stop transcription buttons bigger so they're easier to
click in VR.
* Fix a couple tooltip messages.
* Tooltips take much longer to disappear.
|
| |
|
|
| |
Applied to both PBS and TaSTT shaders.
|
| |
|
|
|
| |
Based on screenshots seen in Discord. This filter is just here to
maximize user privacy while debugging.
|
| |
|
|
|
|
|
|
| |
Add debug panel with options to show installed packages, clear the pip
cache, reset venv, and clear OSC configs.
* Refactor synchronous command execution + logging pattern inside
PythonWrapper
|
| |
|
|
| |
* Reduce noise on/off indicator volume by 50%
|
| |
|
|
| |
Looks more legible. Thanks Noppers for the feedback!
|
| |
|
|
| |
Diffuse reflections can show up on this part.
|
| |
|
|
| |
Ruling out possibilities for a user reported bug.
|
| |
|
|
|
|
|
| |
Sample the texture up to 5 times using the algorithm shown in
`aa_sample_algorithm.py`. Results are averaged together.
* Redo dithering PRNG
|
| |
|
|
|
|
|
|
|
| |
I realized that ddx(i.uv.x) tells us how wide the current pixel is w/r/t
UV coordinates. We can use this to implement a better form of dithering,
which gets weaker as the viewer gets closer and stronger as they get
farther.
* Fine-tune mip map filtering based on play testing
|
| |
|
|
|
| |
Strip out everything except the PBS bits from the TaSTT shader and put
them into a standalone shader.
|
| |
|
|
|
| |
Deleting python310._pth causes a few more things to be installed in the
venv.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
I was using this file to constrain the set of paths that Python can see,
but since `future` doesn't have a wheel, it will fail to install on a
fresh system.
If you set pip's --cache-dir to some new directory, you'll see it fail
to install.
The _pth doesn't really seem to matter, since without it, packages are
still installed under the virtual environment.
|
| |
|
|
|
|
| |
* Fix prefab: bounding box & position are now set to 0
* Fix shader: text is no longer upside down
* Update README
|
| |
|
|
|
|
| |
Users can now use PBR textures on their custom backplate!
* Update TaSTT.fbx: UV map aspect ratio matches board
|
| |
|
|
| |
Document recent features, better explain basis of transcription.
|
| |
|
|
|
|
|
| |
Metallics now reflect the map's cubemap.
* Remove SpecularTint (did nothing)
* Adjust mipBias to be sharper
|
| |
|
|
|
|
|
|
|
| |
Need to calculate this in the space of letter UVs, not the overall text
box UV space, in order for the correct mip maps to be chosen.
* Expose dithering as a toggle in the shader
* Actually generate mipmaps
* Fine-tune mipmapBias for legibility
|
| |
|
|
|
|
| |
* Enable streaming mipmaps on glyph bitmaps
* Sample glyph bitmaps using mipmaps
* Add temporal noise to letter UVs (dithering)
|