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

Attachment: publickey - pillowtrucker@proton.me - 0x40BB2176.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to