argosopentech / argos-translate

Open-source offline translation library written in Python
https://www.argosopentech.com
MIT License
3.89k stars 282 forks source link

arm64 support (Librem 5 phone etc.) #75

Open programmin1 opened 3 years ago

programmin1 commented 3 years ago

This won't install on a Librem phone...

$snap install argos-translate error: snap "argos-translate" is not available on stable for this architecture (arm64) but exists on other architectures (amd64)

This seems a very handy library and why does it not run on arm computers?

PJ-Finlay commented 3 years ago

There isn't currently a snap build for arm, can you try installing from PyPI? If it's possible to run on arm currently is going to depend on if all of the dependencies support it.

A current major area of work is reducing dependencies to make porting to new platforms easier. I don't have a amd64 macOS port working yet but after that I want to run on arm64 and the M1 Mac.

If anyone wants to look into this I would really appreciate it, currently we rely on PyPI to load a lot of dependencies without much recourse if things break. Going forward I think we would be well served to wrangle these and just rely on CTranslate2 and SentencePiece which we can compile ourselves to any platform.

PJ-Finlay commented 3 years ago

It might take a bit of work but with the new seq2seq sentence boundary detection system running on ARM is probably possible. The only dependencies needed are CTranslate2 and SentencePiece. I'm not sure if they distribute ARM binaries so you might need to compile them but it's only two dependencies. The GUI is written using PyQt and designed for desktops but you could probably get it to run on something like a Librem phone.

xmflsct commented 3 years ago

Regarding CTranslate2, see https://github.com/OpenNMT/CTranslate2/pull/355

PJ-Finlay commented 3 years ago

https://github.com/argosopentech/argos-translate/issues/191