Dependencies for crow-translate 4.0
pillowtrucker at proton.me
pillowtrucker at proton.me
Thu Jul 24 14:00:38 BST 2025
Good afternoon, all,
I've been working in the last 2 months to get crow-translate back to a presentable state and make the first qt6 release. We currently have in master a version that works, but the TTS functionality is immediately blocked by upstream providers, essentially dead.
I've been continuing work in this branch: https://invent.kde.org/pillowtrucker/crow-translate/-/tree/refactor-tts-and-translators?ref_type=heads. I think it will soon be in a good state for a MR, so I'm trying to build it on Windows so that I can actually test it there first. In this branch, I have fixed some outstanding bugs (a segfault, an outdated interface into KWin's KScreenShot functionality). refactored the code base to allow for modular translation and tts providers and additionally implemented:
- Qt TTS - this should work fine on windows and mac, because it uses the builtin system tts, but it sounds awful on linux/bsd because that uses speech-dispatcher and has no settings to configure to make it better (from the application side.)
- TTS based on Piper, or, more accurately, on espeak-ng and onnxruntime, since this is what the new release of piper uses. This sounds very accurate, if not always natural.
The latter requires a version of espeak-ng with built-in conversion of text into piper-voices-compatible phonemes. I bundle espeak-ng as a submodule, since it hasn't been released yet. Later on this should be simplified to use a system package.
Espeak-ng does not have the most robust build system and has one quirk that does affect the build: even if I tell it to build without libsonic support, it tries to download the library, for some reason, and then ignore it once it's there. On NixOS, I've simply added the sonic library to build inputs (because the build system is sandboxed and isn't allowed to download some external blob) and let it ignore it because it's much less effort than trying to get a fix upstream. Is it fine if it tries to download and then ignore some version of the library in unix ci and craft, or should I add the phantom dependency on sonic?
The other new dependency I need is onnxruntime. As far as I could see, both freebsd and most linux distributions have this as a system package.
On windows, I have the choice between a binary distribution and some build mechanism that uses a "build.bat" script and expects to build with Visual Studio- should I even try to build this from source, or is it fine if I use BinaryPackageBase with a binary release? Is there anything similar in blueprints already that I could use for comparison? I've tried to find something myself, but, so far, I've only found how to install pkg-config files https://invent.kde.org/packaging/craft-blueprints-kde/-/blob/master/libs/nvidia-codecs/nvidia-codecs.py.
It looks like for BinaryPackageBase I might just have to specify the url. The zip files in which they come, already have a ./lib and an ./include, so the default binary builder looks like it might understand that, but I'm not sure I fully understand craft. I would probably just try that first, though.
Kind regards,
Maciej
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-windows/attachments/20250724/66f53e24/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: publickey - pillowtrucker at proton.me - 0x40BB2176.asc
Type: application/pgp-keys
Size: 657 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-windows/attachments/20250724/66f53e24/attachment.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 343 bytes
Desc: OpenPGP digital signature
URL: <http://mail.kde.org/pipermail/kde-windows/attachments/20250724/66f53e24/attachment.sig>
More information about the Kde-windows
mailing list