ihuguet / picotts

Pico TTS: text to speech voice sinthesizer from SVox, included in Android AOSP
155 stars 25 forks source link

Android release, maybe on F-Droid #5

Open paolo-caroni opened 3 years ago

paolo-caroni commented 3 years ago

Hi! Have you considered to release this fork under android?

Would be perfect to release it on F-Droid (Free and opensource market/store app).

PicoTTS on AOSP is dead, so it will be very good to have your fork on new Android version.

Cheers, Paolo

ihuguet commented 3 years ago

I have no experience in packaging for Android. Can you handle it?

paolo-caroni commented 2 years ago

I don't have the fully skills to do it. But i will try and open a merge request in case of success...

francogrex commented 2 years ago

picotts as it stands is not compatible with AArch64 (ARMv8) therefore there is no compatible android app for new phones. Consider making a new apk release, it can prove popular enough, especially that the google tts services are not getting a lot of love lately.

nift4 commented 2 years ago

got it to work, requires full AOSP checkout to build though https://gitlab.com/droid-ng/external_svox/-/commits/master

TippyLion28 commented 2 years ago

got it to work, requires full AOSP checkout to build though https://gitlab.com/droid-ng/external_svox/-/commits/master

For ARMv8? :o

nift4 commented 2 years ago

Yes, debian patches fixed the 64 bit issues

TippyLion28 commented 2 years ago

Would you mind uploading the apk somewhere if possible? ^^

nift4 commented 2 years ago

AOSP build system doesn't package native libraries into the apk, so it wouldn't work. It requires some more work to be able to distribute is as APK.

nift4 commented 2 years ago

I only use it inside ROM builds, but it should be an solid starting point for anyone curious to do the work.

nift4 commented 1 year ago

Hello guys, due to the still-sad state of open source TTS, I have a present for you all! pico.zip This is a proof-of-concept of APK-ified PicoTTS running on modern Android (arm64-v8a only)! (Because it is a proof of concept, and because PicoTTS is ancient, it requires a few steps to get it working)

  1. Install PicoTts APK
  2. Install PicoLangInstaller APK
  3. Grant file permission for both of them
  4. Open PicoLangInstaller and let it work for a moment
  5. Go to system settings, set Pico TTS as default text-to-speech app and enjoy!!

Because it is a proof of concept, the build process is even more annoying, but roughly, you have to get the APK files from the AOSP build, use apktool to "decompile" them, create folder "lib", inside lib, create folder "arm64-v8a", put libjni_ttscompat.so and libjni_ttspico.so there, add the so files to dontCompress list in apktool.yml (native libs not needed for lang installer tho), change minSdk to 22, apktool build with --use-aapt2, sign & zipalign the APK with -pf 4 flags and then install them on your device. Relevant source repo patched for public API: https://github.com/LMODroid/platform_external_svox/tree/9625f6c0d797603e7ef32b11386ccd60ddadf110

TippyLion28 commented 1 year ago

Nice!! Thank you for this! However, I changed the language setting in my device tts menu and now I can't go back into that menu as it crashes every time. How do I reset the language selection without access to that menu?

nift4 commented 1 year ago

🤣 🤣

Welcome to the wonderful world of Android... I heard reports it stops crashing if you install at least two TTS engines. I also know there are multiple crash fixes out there, so if you use a custom ROM, ask them to fix it.

TippyLion28 commented 1 year ago

Installing another tts engine fixed it, thank ya :D

GithubUser699 commented 1 year ago

Hello guys, due to the still-sad state of open source TTS, I have a present for you all! pico.zip This is a proof-of-concept of APK-ified PicoTTS running on modern Android (arm64-v8a only)! (Because it is a proof of concept, and because PicoTTS is ancient, it requires a few steps to get it working)

1. Install PicoTts APK

2. Install PicoLangInstaller APK

3. Grant file permission for both of them

4. Open PicoLangInstaller and let it work for a moment

5. Go to system settings, set Pico TTS as default text-to-speech app and enjoy!!

Because it is a proof of concept, the build process is even more annoying, but roughly, you have to get the APK files from the AOSP build, use apktool to "decompile" them, create folder "lib", inside lib, create folder "arm64-v8a", put libjni_ttscompat.so and libjni_ttspico.so there, add the so files to dontCompress list in apktool.yml (native libs not needed for lang installer tho), change minSdk to 22, apktool build with --use-aapt2, sign & zipalign the APK with -pf 4 flags and then install them on your device. Relevant source repo patched for public API: https://github.com/LMODroid/platform_external_svox/tree/9625f6c0d797603e7ef32b11386ccd60ddadf110

This is amazing, thank you very much! Unfortunately there is no open tts that is actually good enough (yet?) and I almost surrendered and flashed gapps just for a proper tty.

Your apks work great, I really thank you for your work!

nift4 commented 1 year ago

glad to hear it's useful :D

urigg commented 10 months ago

@nift4 thanks for the release. Finally an usable voice again, and even a well known one from the past. The only open alternative for German I could find was eSpeak, and that one sounds as bad as speech synthesis back in the 80's.

paolo-caroni commented 9 months ago

Unfortunately there is no open tts that is actually good enough (yet?) and I almost surrendered and flashed gapps just for a proper tty.

Offtopic, but recently there is a beautifull app called sherpa onnx.

Also to @nift4 thanks for your nice PoC, I have used it for about a year, was little minor robotic than Espeak.