Now I'm still waiting for someone to succeed at a clean-room recreation of Majel Barrett's voice, so we can finally have computers sound like they always should have.
We could've been there a decade ago, but the high-quality audio samples, made officially and specifically with possibility of this use in mind, got trapped somewhere between the estate, producers, and a commercial interest that called dibs, and then procrastinated on the project instead.
I did this. She recorded clean (imo, i cleaned it up) audio for “Star Trek: The Next Generation Interactive Technical Manual” which is available on archive.org.
I just yeeted a bunch of extremely noisy fragments into elevenlabs, and it came out pretty good on their cheap $5 plan. If you're after this for your own amusement, let me know if you want a screencap, or a dump of the source files.
Obv no clean room reconstruction but good enough for personal use...
I have lots of super high quality, clean audio recordings from her ripped from an old video game that she did voice work for. I've tried various TTS models over the years with it. Getting the pitch and tune is easy, but getting the impersonal detached robot-y feeling is kinda tricky. But I haven't tried in the past 6 months, so maybe it's time to give it another shot.
the inflection and impersonal feel is definitely hard to get right. there are parameters in the elevenlabs API docs to make the voice more stable (= monotonous; see speak.sh in that repo) but still the voice cloner on my $5 plan doesn't really get it right.
nevertheless... i'm still having a lot of fun with this.
edit: if I am forced to rot my brain with the 10x productivity boosting slop gun, at least I'll do it grinning
> pod cleaned up. waiting on the behemoth to finish grinding through Italy.
< if only postgres had progress indicators
... then they coulda called it progresql
> lmaooo
> Bash(~/speak.sh "Joke detected. Humor subroutine engaged. Ha. Ha. Ha.")
“Director John Badham states in the commentary that the actor voicing the raw content that was later modified for the computerized effect was John Wood (the Falken character), reading the script word-for-word in reverse order in order to portray a "flat quality" with limited inflection. That raw audio was then edited and re-assembled after being run through audio processing equipment to achieve the desired effect.”
Apparently John Wood read the lines in reverse order to make the enunciation weird. If you train a model, feed the lines you want in reverse word order, then split on silence and reverse them again, you should come close.
Lol, yea, the scripts are beyond sketchy. This is the new vector, a cool idea masking itself as "fun" (which it is actually fun). People not understanding or vibing may not understand what they're installing. Even if this author isn't malicious, you cannot assume that will always be the case.
The author might not be malicious, but from going through some of the audio packs, they're really not quality-checking PRs. For instance, sc_medic/sounds/WhereDoesItHurt.mp3 sounds like two-and-a-half sounds stuck together ("Critical? You Rang? Please state the nat--", it cuts off right there, and doesn't include the phrase "Where does it hurt?").
I wouldn't use this repo outside of some kind of sandbox.
I don't think using something fun as an attack vector is anything new at all. It's an easy way to have someone let their guard down because you want to play around and aren't thinking how something silly could actually be out to get you.
exactly. the peon notifications thing is a perfect example, it's a tiny idea but it immediately makes you want to use the tool more. that's underrated in dev tooling.
i think a lot of the best software lately has this quality where you can tell someone had fun making it. it's hard to quantify but you feel it instantly. like the difference between a tool that technically works and one that makes you go "ok that's clever."
At least until General Artificial Creativity (GAC) takes over. But don't worry, it won't kill humans for a greater good of more paperclips, but because it will be.. creative.
So it will enslave us in tricky ways? Like maybe using ways to make technology super addictive, so our entire society changes, and writing algos to control our global discourse on important topics, and, uh, never mind.
Cheaper? I'm confused, how can it be cheaper than free? Most of what LLMs for code rely on is already open source. Also AFAICT (which is trick since numbers aren't public) GenAI is some of the most expensive use cases and those companies (OpenAI, Anthropic, etc) are losing money.
Reminded me of Warcraft (the first), where, if you kept clicking on the same unit they would respond in more annoyed ways. The best IMHO was the human soldier[1], which would end with "Why do you keep touching me?".
First game that I knew of which had such fun details like that.
They had the same joke in the sound setup program. If you kept clicking "test sound", you would get "it doesn't get any better than this!" in that same annoyed footman voice. But my favourite was the orc destroyer in Warcraft II, which would start singing sea shanties. Or at least attempt to.
I think I prefer the extra quotes from Warcraft II and Starcraft. The latter has some fun references to the Alien franchise and even a callback to Diablo (Protoss probe)
Or the original Baldur's Gate. It had some great quotes. Jaheira's annoyed "Yeeeeesss oh omnipresent authority figure?!" when you clicked on her too often always cracked me up.
Maybe 20 years ago a build system at Google was called "grunt". For some reason I came across a CL description that said something like "make the build 10% funnier." It made the build script output an additional "zug-zug" line 10% of the time.
I was the kid with the backpack Zip drive and Zip disks, like a weird Santa Claus of game piracy. Duke3d, Descent, Quake, you name it. All of it was in service of modem dueling each other. Wild times!
I recently replayed Warcraft II and fell out of my chair when I realized the original did not have control groups. Those were only added with the Battle.Net edition!
Not to be a patronizing old fart, but may I assume that you played II after III? If so I can understand it, but II was very special when it came out, and I never revisited it after.
I think it's a case of being better when it came out than another thing was when it came out, despite the other thing being comparatively better without the context of its time.
2 is a much harder game in my opinion. I don’t think even at the hardest difficulty level Warcraft 3 has any levels that require you to do a contested marine landing and then build a base before immediately being attacked again. The final Orc mission took me forever to beat. And the expansion? Good lord.
III has a better and more interesting story telling. But gameplay wise I really like the starcraft 1 system without the heros. I think warcraft 3 adds too much complexity and gimmickry that takes away from fun RTS gameplay.
That said, Warcraft 3 mods were the shit. There were so many fun and inventive modes of play that you could just barely do with starcraft and not at all with warcraft.
A plea to the various lab engineering teams: please create a json format or whatever that lets me configure this with voices locally. I am a happy user as of late of the Codex app by Open AI. It would be great if I could just give it some JSON somehow and it just works. I suppose skills can do this and I will try that later on. But I think this stuff matters, and it would be nice to have it built in and encouraged.
Uh, are you sure you did? I mean it's just using the hooks API of Claude code to play a sound via the terminal itself?
Heck, they even outlined it in the readme
> peon.sh is a Claude Code hook registered for SessionStart, UserPromptSubmit, Stop, and Notification events. On each event it maps to a sound category, picks a random voice line (avoiding repeats), plays it via afplay (macOS) or PowerShell MediaPlayer (WSL2), and updates your Terminal tab title.
Looking at the install script and peon.sh does not raise any over engineering flags for me. It's as simple as the functionally makes it necessary
Yes; it could be a README, a folder with subfolders of sounds, 1 or 2 files with functions totalling less than 200 loc for unix, maybe 700 total to have windows support and some extra features.
I get how they got here ; its how claude and codex approach projects, but what does the rest achieve? Your maintenance rituals shouldn't exceed your usecase at this scale.
Okay, but the install script is around 200 LOC and the peon.sh is just under 500 LOC ... So by your own numbers, it'd be expected loc size? What's exactly over engineered here?
The fact he added config files to let people create their own package?
I wrote a fun bit of code to do something like this but for bell sounds in emacs terminal sessions and other things (even using the peasant). but I agree it seems very over engineered. There is a json manifest file to explain which sounds should be used where in this repo, why not just use directories for each alert type, making it easier to modify, it seems completely unnecessary to me. having an install script seems crazy as well. The task is to play the right sound(s) that match the passed argument. the thing I did was like 23 lines and most of that was filtering and looking for ascii bell to play the sound then remove it from the stream and other options.
Extremely easy to do with sound recording software or youtube mp3 downloaders. Takes a little imagination and makes programming less onerous in a deviate kind of way.
Showing my age here, but the original samples are available too, and in MP3 or WAV format - they're in the installation directory of the game (in case of StarCraft and W3, hidden in a weird pseudo-ZIP data file (used to call it "Virtual File System")). That's where we sourced them from to set them as system sounds, back when Windows versions were still in four digits.
If you're enough of a fan to want to use these voices, chances are you still have the original installation media (or original bootleg copy) somewhere around the house :).
I remember making custom Warcraft II levels, and you could change the construction time for buildings. If you picked a construction time of zero, the building would be built very quickly, but be damaged. There's something hilarious about asking a peasant to build a farm, then seeing a burning farm and hearing the "Job's Done!"
> This is as much of a copyright violation as the LLM training process.
Not necessarily. This could be considered a quotation of a trivial part of a larger work, making the use legal in the US under its fair use doctrine.
Additionally, I'm not aware of any obvious way that this use could harm the commercial market for Warcraft 3 (and the other games whose voice packs are included in this repository). The use here does not compete with the original, and if anything it might drive sales on the margin through nostalgic reminders.
gimme a minute to do some work stuff and I'll throw a little sample, 11labs howto + the source files online somewhere. check back to this thread in a while, i'll post it here. obviously the legal status of this is unclear, but i guess if you keep usage strictly personal it should be fine.
Totally agree, it's the main reason I'll never recommend Linux to anyone, because you can't expect normal people to understand these things.
But it's kinda funny to me that you just said "I was going to run this code on my system, until I saw some other code in the same repo, and now I refuse to run it" :D It's all the same repo, you're willing to try part of the code, but not another part of it. Completely arbitrary.
If I want to try something like this out it's for fun more than anything, and I'm not really willing to invest much time trying to understand where to put the files etc.
> I was tempted to try it until I saw the curl | bash pipe, then no
I don't quite get that argument. It's the same as the old download installer from random website, double click to run that people have been doing for decades. It only skips the download step. And it's arguably better since at least you can review the contents. When building a Go program it will also happily download stuff from github but I've seen way less complaints about that. And to be fair it's also been an infection vector, from people installing things from shady places (or reputable places but with ill-intent like installing unwanted browser toolbars, DRM rootkits ...), but it's nothing new. Same advice applies, know what you're doing, use reputable sources.
You're blind-trusting someone to run stuff in the context of your terminal. Sure, it's similar to an installer but the author of the script can also manipulate the script at any time.
One day you run it, it's fine. The next day you run the same command on your machine, it installs malware. No way to tell without inspecting the script every time.
If you download an installer and it's fine, then you can run it again and it's still fine.
My big problem with it is uninstallation. If I ever want to remove the program, I have to 1. Hope that the author published an uninstall.sh, or 2. examine the install.sh to see where it spams all its files to and remove them manually. This seems like a major step backwards from package managers.
I don't think the go module system is great but I am not sure if any programming gets it right and all suffer from many issues, but go has the go.mod and it is easy to see what dependencies are being used both direct and indirect and the user can filter and look though these packages and pin them until they have eyeballed updates to the git repo. I don't feel the most comfortable with it but the whole `curl | sh` is so terrible, no signing no, way of knowing about the integrity of the installer.
> What's a better alternative ?
I do not think the program really needs and installer but if one must then why not just have it under source control that way you get the benefits of git handling all the download bits and the install script being completely offline and just using cp or install commands.
you could tell the user to do this with a pithy command like `git --depth=1 clone $GITSITE/$REPO && $REPO/installer.sh && rm -R $REPO`
I cloned the repository just for the sound files. I may hook them to my terminal for long running jobs when I have some time to have some fun. Maybe a wrapper script.
I think this is a really fun project, but even more importantly, I believe it’s a portent of things to come.
I really leaned into coding with agents last year, and after some time, it became evident to me that the vision now being pushed -- the "software factory" -- is where things will eventually end up. Building off that understanding, I began thinking about what interfaces would be necessary and useful for managing code and technology at that scale.
I keep coming back to the idea of a video game-like interface for managing all these agents and fleets of agents. Many of the information affordances in video games are reusable in other scenarios. So even though on the surface this project is 'just' a silly and fun enhancement, I think it’s actually a pretty serious contribution as well.
Also, I'd love to use these sound effects, but I am an rts player and love aoe and wc franchise, these noises just trigger me to want to play too much.
---
Also, also, if you haven't seen AgentCraft, you are missing out -> https://x.com/idosal1/status/2021661861163544818 (worked in one npx command for me using my claude, a+ for creativity and smoothness)
>300 line bash script to hand hold a person who I would assume is capable of using the computer they are downloading a program in source form. 'git clone' followed by 'make install' or go home.
Related: I used the amazing 100M-parameter Pocket-TTS [1] model to make a stop-hook based voice plugin [2] that lets Claude Code give a short voice update whenever it stops. The hook quietly inserts nudges to Claude Code to end its response with a short speakable summary, and in case it forgets, it uses a headless agent to create the summary.
It was trickier than I expected, to get it working well: FFMpeg pipe streaming
for low-latency playback, a three-hook injection strategy because the agent forgets
instructions mid-turn, mkdir-based locks to queue concurrent voice updates from multiple sessions, and /tmp sentinel files to manage async playback state and prevent infinite loops.
I just swapped all my Claude code spinner verbs to be Warcraft related and was thinking today how I could get it to say “Jobs done” when it needed my attention
It's can a long time since I've heard those sound clips. Brings back a lot of great memories of playing WCIII as a teen. Didn't have the money at the time to play WoW, so I ended up playing Guild wars instead.
I never tried playing the WCIII reboot after hearing some pretty bad reviews.
It also lets you manage Claude notifications more gracefully than what you get out of the box with CC. Been lazy about putting the finishing touches on it so this is a good kick in the ass to get that done!
If you're the sort of person not to use a pre-packaged desktop environment, you can use mako as your notofication daemon and get the same effect by adding
on-notify=exec play /usr/share/sounds/freedesktop/stereo/complete.oga
What I really want is for the peon voice to be replicated and for custom things to be in that voice. Or even better, the starcraft battlecruiser guy's voice!
Claude has built-in support for those OSCs, no extra software needed. But you don't get the custom sound pack with those (at least without more extra software on the OS/terminal side).
The thing with notifications is that a lot of apps go so overboard with them that I generally choose to silence them completely. This has totally led to important notifications being unseen for some time, but for the peace it is a price I'm ready to pay. Being able to configure notifications with high granularity is something I still have to discover.
This is amazing. Incidentally, I've always enjoyed Blizzard's UI art style/textures, in-game and on their website. To me it felt like a hallmark of the quality they used to hold their games to, and it was only once in a rare while I'd see some other website put so much work into their art direction
This is so satisfying. A couple weeks ago I found myself reciting these lines (as well as some StarCraft MCV line) to myself. Thank you so much for doing this.
I knew I had to add GLaDOS as soon as I saw this. Unfortunately, while testing my PR I realized there’s no support for Linux. Hopefully someone smarter than me can get that added sooner rather than later.
Love this, brings back LAN party vibes!
Sound notifications for Claude Code are a real pain point.
I built something in the same space but took a different approach — less fun, more engineering:
Vox (https://github.com/rtk-ai/vox) — local TTS in pure Rust, no API key, no cloud dependency.
Well, I can report I played Warcraft III and a plethora of other games with Wine back in the days. So I am sure (given how Wine has improved) you still can play it with Wine. No Windows required.
>I missed out on Warcraft III the first time around. What's the best way to play the original game today?
The HD remaster is the only official means on Battle.net, but it sucks. I'd recommend just torrenting the original and running in a VM. Plenty of active private servers still out there.
I had wired up my local Claude Code instance to play back a sound on my Windows machine, but for my VPS-with-tmux-and-Clawdbot implementation, getting that to work... well, it just required me asking Claude to write an emitter script on the VPS and a listener script on my Windows box and have them connect over Tailscale and got it working in about 2 minutes. Game changer, honestly.
Everything in AI is built on copyright infringement, so redistributing Blizzard assets while slapping an MIT license on everything is par for the course.
It has been 24 years since release, in any place that isn't completely captured by big capital interests it would be fair use. This is such a forced reach. There are plenty of good arguments to be made re: big LLM providers and copyright, yet you're weakening all of them by choosing the worst example.
The Beatles released "She Loves You" much more than 24 years ago. You don't get to redistribute their music however you want. Me pointing out that AI bros disregard basic common sense and the law as part of pursuing their objectives doesn't weaken anything, it reinforces how they should be held accountable.
IIRC this is a different case covered under fair/transformative use. The length of the clip matters, I think it was like <6seconds. There's a lot of videos/livestreams that use similar clips/voiceovers from other games.
This just doesn't engage with what I said, being that this is only true because the law has been captured by big capital interests, to the detriment of society. "But it's the law!!" adds nothing - my comment already implies awareness of it being the law.
The idea that using these 24-year old WC3 peon sounds in an open source github project makes one an "AI bro" or even connecting it to AI in general is laughable. There have been thousands of projects on github including this kind of thing long, long before LLMs.
Your anger about big AI and copyright is valid! But it's completely overflowing your common sense, targeting the wrong things indiscriminately. Learn to channel it.
Copyright is what it is, the guy is distributing wav files which I guess are the original ones. It is done in blatant disregard for copyright so the argument is solid. Just because you have another view does not mean we have to accept that view.
There are few people who seriously recommend less than 25-years of protection.
Shouldn't the sound for when a task finishes be something like "Job done!"? Looking at the table it seems like it makes the sound for acknowledging that it's received an order (e.g. "I can do that").
This is cool and all, but I just dont understand why we cannot simply manage Claude Code sessions from the Claude phone.
Yes, I know about running CC on android phones or connecting the bot to your github account. But what I really need is to manage CC sessions I started on some random VM from the app.
Termux and tmux are useful for crazy coding sessions from your phone/tablet but sometimes I just want to continue a job started from my computer without setting up private networks and SSH keys and all that.