So something I’ve started working on that obviously only I will use:
Eloquence for Android with community dictionary and upsampling and other knobs found in the NVDA addons. I stole the upsampling from an NVDA addon by @fastfinge; I think others contribute around that space too, because I'm an evil AI-using pirate. Anyway, I got it to talk, but it backquote pp0 says stuff like this backquote p1 at the beginning and end of utterences. I'm working off of @Mudb0y and his Apple Eloquence marvel. Could be done by the end of next week, could be done by the end of July, I don't know, depends on depression and anxiety and burnout. But I mean I'd use it. A lot. Especially if I can get it as responsive as ESpeak with Commentary. Also I'm doing this because CodeFactory is simply incapable of doing it themselves. No really it just can't be done. Like the universe will not accept it. /s
@pixelate@Mudb0y The addon is a team effort. The resampler is AI code I don’t include in my fork, actually, because It’s AI generated and I don’t understand it well enough. I have no problem with AI. But I wasn’t comfortable accepting a PR I couldn’t explain. So upsampling is in a fork, not in my upstream.
@pixelate@Mudb0y Mine is the base. Then if I won’t accept a PR, it becomes a fork that is welcome to, and usually does, pull my fixes as upstream. I know that’s confusing, and I should probably be less precious. But I’m really just not comfortable putting out code in my name unless I can at least explain how it works to someone in English.
@pixelate@Mudb0y Then I can use a translator. LOL Right now I can’t explain it in any language. Why does it use a custom upsampler? I don’t know. Why not reuse an existing library? No idea. How does the upsampler work? Who knows! Why does it work the way it does? Shrug. I’m not interested in maintaining or releasing code when I can’t answer even those most basic questions.
@fastfinge@pixelate@Mudb0y You could dig into the inner workings to answer those questions lol, just because something is AI generated, doesn't mean you can't understand it.
@alexchapman@pixelate@Mudb0y I could. But the upsampler is a custom library. It’s written in C not Python. I don’t have enough audio theory to understand the math behind upsampling particularly well, never mind someone’s custom code and what it’s doing and why. And the author generated it all by AI, so I’m not convinced he understands it either. My co-maintainers feel the same way. If we get a contributor who’s comfortable with C, and knows the required audio theory and math, who is willing to review and merge upsampling, then I’d accept it. But “AI wrote it and it seems to work” is not good enough. When bugs happen, we have to be able to understand and fix what’s going wrong.
@fastfinge@pixelate@Mudb0y Right, then again you have people like those at Techopolis who write code with AI but also understand how it all works, they just have the AI write most of it to save hours of manual typing and going through individual lines, and if they need to dig deeper into the code they ask VS Code or whatever they use to surface specific pieces and look at it that way, rather than doing it the long way. People can use AI while still understanding the code, so we can't rule out the possibility that contributor actually does understand it, but I do see where you're coming from that we should be able to understand what's going on.
@alexchapman@pixelate@Mudb0y Yes, exactly. But when AI writes code, I review it enough to understand what choices it made, if those were the right ones, and how everything all works and fits together. If I don’t have that knowledge myself, and can’t get it by looking at it via the code, and the submitter doesn’t explain his work and his reasoning, I’m not merging it into anything I release. AI code isn’t the ultimate problem.
@alexchapman@pixelate@Mudb0y It’s like shooting a gun. I’m responsible for what the bullet does after it leaves the gun. If I don’t know where it will go or who it will hit, I shouldn’t shoot. Even if AI wrote the code, I’m responsible for it. If I don’t know what it does, I won’t share it. Because when something goes wrong, it’s my fault, not the AI’s fault.