Stypox / dicio-android

Dicio assistant app for Android
GNU General Public License v3.0
642 stars 63 forks source link

Project roadmap #129

Open Stypox opened 1 year ago

Stypox commented 1 year ago
What Status Linked issues Description
System integration WIP #126 #79 Dicio should appear as an assistant app in all places possible. It should also implement STT APIs for keyboards and other apps.
Kotlin, Jetpack Compose, Material 3 Done #124 #96 #95 Kotlin is more convenient than Java in many cases, and it is becoming the standard for Android development. Jetpack Compose allows building UIs based on state, and has also many more advantages and shorthands, such as not needing separate XML layout files. Both Kotlin and Compose would save development time in the future and probably also help avoid bugs. While migrating to Compose, the Material 3 design should be used.
Natural language processing overhaul Done
except
for
dicio-
numbers
#107 #62 #30 The current natural language processing based on dicio-sentences-compiler and dicio-skill has some limitations. Sometimes it does not capture the user intent so well and it is clunky to work with (especially when used alongside dicio-numbers). Sentences files should be allowed to define and use custom matchers (e.g. one that matches all articles, another that matches only dates and times). Matchers might even be defined from outside of sentences files (e.g. all methods from dicio-numbers will be available as matchers), so this would require to develop an API. Capturing group handling should also be improved, making it possible to e.g. specify the allowed and not allowed words, the minimum and maximum length, ... Repetition like regex's + and * should also be taken into consideration.
Documentation #78 #74 #24 Documentation is heavily needed to make contributing easier and more welcoming. We should setup a wiki of some sort, add more javadocs to code (especially in dicio-sentences-compiler, dicio-skill and dicio-numbers), and add an About section inside the app with useful information.
Wakeword recognition #48
Sentences files on Weblate #46 Weblate does not support skill translations in the current setup of Dicio. Maybe arranging sentences files in a specific way and maybe creating a different Weblate component for each skill would allow skills to be translated. This might require a CI workflow.
Proper Vosk implementation WIP
better TTS
button
implemented
#128 #131 Users should be able to choose the Vosk model they wish to use and even keep more than one downloaded on their device at the same time. The Vosk website API should be used to obtain available languages and perform updates. Switching between models should be easy and the various system integrations should be able to query available languages.

I created this table to be able to track the most important topics that require work in Dicio at the moment. I also added some basic descriptions to explain what I thought of so far. I will work through these topics one bit at a time.

Since these are quite big topics that require structural changes, if anybody wants to help out, please write a comment here so that we can agree on how to proceed. Thanks!

paolo-caroni commented 4 months ago

Hi, I would point only that #131 ask to make possible to use system STT instead of internal Vosk implementation, that is different to a "Proper Vosk implementation". Also I think that some day in the future the STT ability and Dicio would be splitted in two different app package.