Android + OpenCL implementation — speech-to-speech translation on-device on non-flagship phones (Adreno 6xx)

#6
by a8nova - opened

Hi! I wanted to share an Android + OpenCL implementation of SeamlessM4T UnitY-small, in case anyone wants to run it on a phone:

  • Try it: Edgi on Google Play — runs fully on-device, no cloud.
  • Open source: the app is built on top of the open-source adreno-llms inference engine — https://github.com/a8nova/adreno-llms — pure C++/OpenCL with hand-written kernels tuned for Adreno, running the full cascade on the GPU: Conformer encoder → text decoder (beam-5) → T2U → unit decoder → CodeHiFiGAN vocoder.

It's tuned and tested on Adreno 6xx GPUs — the GPU class in mid-range and older Android phones (verified on a 2020 Motorola Razr / Adreno 620) — and should run on most arm64 Android phones with OpenCL, though the optimizations are Adreno-specific. On the Adreno 620, a 6 s English clip translates at RTF ~2.9 for speech-out (S2ST) and ~1.5 for text-out (S2TT/ASR), with English/Spanish/Portuguese/Hindi/Russian output; units are bit-exact vs the .ptl reference.

Hope it's useful — happy to answer questions!

Sign up or log in to comment

MiniMax H3 Video Generator 20 free credits · Text & image to video Try Free →