To be fair, gnu tar 1.31, 2019-01-02, added `--zstd` (and other automatic .zst support). So that support has been there for a good 7 years and 4 months at the time of writing.
HN user
akx
[ my public key: https://keybase.io/akx; my proof: https://keybase.io/akx/sigs/CjJeih5_67DQNUw0Mdv1GG_IykZlak6eFQK3F_ZGR9g ]
--- meet.hn/city/60.4517531,22.2670522/Turku
Socials: - github.com/akx - x.com/akx
---
Typically, other archives like .tar.bz2 can be smaller. But those aren’t backwards-compatible!
Is there any point for (new) .bz2 archives in the era of Zstd?
What do you mean with "basically ensures that dependencies won't become managed properly"?
Sounds like you're not familiar with https://docs.astral.sh/uv/ ...
This doesn't do the same thing though, since it's not Unicode aware.
>>> 'x\u2009 a'.split()
['x', 'a']
# incorrect; in bytes mode, `\S` doesn't know about unicode whitespace
>>> list(re.finditer(br'\S+', 'x\u2009 a'.encode()))
[<re.Match object; span=(0, 4), match=b'x\xe2\x80\x89'>, <re.Match object; span=(7, 8), match=b'a'>]
# correct, in unicode mode
>>> list(re.finditer(r'\S+', 'x\u2009 a'))
[<re.Match object; span=(0, 1), match='x'>, <re.Match object; span=(5, 6), match='a'>]This inspired me to update my over-a-decade-old glitch generator https://akx.github.io/glitch2/ with camera input and a handful of new modules.
It's pretty good. And for once, a software-engineering-ly high-quality codebase, too!
All too often, new models' codebases are just a dump of code that installs half the universe in dependencies for no reason, etc.
If someone's curious about those particular constants, they're the PAL Y' matrix coefficients: https://en.wikipedia.org/wiki/Y%E2%80%B2UV#SDTV_with_BT.470
You'd think there was a LUT you could apply to the digital copies during playback to make it look (more) like the original...
These days, once you have https://docs.astral.sh/uv/ installed, `uvx --from service-ping-sping sping` is pretty much zero effort to run this software.
Is `uv format` supposed to be an alias for `ruff check`?
I'd imagine not, since `ruff format` and `ruff check` are separate things too.
This is a fun model for circuit-bending, because the voice style vectors are pretty small.
For instance, try adding `np.random.shuffle(ref_s[0])` after the line `ref_s = self.voices[voice]`...
EDIT: be careful with your system volume settings if you do this.
Ah, yeah, good catch – I added the model-native speed multiplier to the CLI too (`--speed=1.2` for instance).
I'll help you along - this is the core function that Kitten ends up calling. Good luck!
https://github.com/espeak-ng/espeak-ng/blob/a4ca101c99de3534...
I opened a couple of PRs to fix this situation:
https://github.com/KittenML/KittenTTS/pull/21 https://github.com/KittenML/KittenTTS/pull/24 https://github.com/KittenML/KittenTTS/pull/25
If you have `uv` installed, you can try my merged ref that has all of these PRs (and #22, a fix for short generation being trimmed unnecessarily) with
uvx --from git+https://github.com/akx/KittenTTS.git@pr-21-22-24-25 kittentts --output output.wav --text "This high quality TTS model works without a GPU"`uv run --offline` will use cached dependencies and not check for newer versions. Works for `uvx` too, i.e. `uvx --offline ...`.
This is what stable-diffusion-webui does too (though the format is unfortunately plaintext); ComfyUI stores the node graph as JSON, etc.
Why even `git clone`? With a properly packaged project, you can just `uvx --from=git+https://github.com/akx/bindl.git bindl`
`UV_PROJECT_ENVIRONMENT` works fine for that. That's what I use for my venv-managing Fish functions: https://gist.github.com/akx/c357bbda9facbe41f08747a2622795c4
And when you run the upgrade-all-dependencies script and some dependency has a semver-major/otherwise breaking upgrade, everything depending on it breaks at once.
Hopefully one of those things isn't your backup cronjob.
Speaking of that sort of thing, have you seen https://dood.al/pinktrombone/ (/ https://github.com/imaginary/pink-trombone/)?
* Windows XP's speech synthesizer wasn't SAM (Software Automatic Mouth), and sounded nothing like this. (I know this is emulating Software Automatic Mouth, because, well, https://samtts.com/lib/sam.js says so, and has a link to https://github.com/discordier/sam. It would be courteous to at least acknowledge the shoulders you're standing on.)
* I would be very wary about touting this to be "Microsoft SAM TTS" so prominently, since it has nothing to do with Microsoft.
* Your privacy policy page is from "Image to Ghibli".
* Your contact and about pages are 404.
* All of the copy smells like AI, and "5 stars from 2000+ happy users" is probably a blatant lie. (Where can I see some of those 5-star reviews, or review it myself?)
* "Our modern SAM TTS JavaScript implementation brings this iconic Microsoft voice to your browser" is also pretty disingenious, both because it's not a Microsoft voice, and as seen above, you didn't implement the TTS.
* Some of the alternate TTS implementations you link to (and then embed from Huggingface) in the footer are broken.
* Your Sign-in button (why would I sign in anyway?) is broken: "Access blocked: This app’s request is invalid" from Google, "Error 400: redirect_uri_mismatch".
https://github.com/pi0/clippyjs exists...
I've used https://www.mp3tag.de/en/ for this since, apparently (per my emails for donating to the project), 2008.
Not quite, AFAIK? Drive controllers may internally remap blocks to physical disk blocks (e.g. when a bad sector is detected; see the SMART attribute Reallocated Sector Count).
The blur here isn't expensive (as discussed in the article itself).
Chances are sampling a 2D height field and projecting, etc. would be more expensive.
You can of course absolutely use `"numpy~=1.12"` as a requirement.
Using pip-installed libraries brings in the famous packaging problems, but you don't have to use it!
These days, with uv and PEP 723 inline script metadata, that's not an issue either.
# /// script
# dependencies = ["numpy"]
# requires-python = ">=3.12"
# ///
import numpy as np
and uv run myscript.py
will just Do The Right Thing.... derp, yes. It was way too early in the morning, and I misread "is part of the benchmark" as "is not part of the benchmark"...
I would imagine browsers optimize the iterator protocol away for arrays. At least on https://jsben.ch/iJFZ4 for..of is a smidge faster than an old-school loop.