5

I'm looking for voice assistant what runs offline and without voice part. It may sound strange to want voice-less voice assistant but I can explain. My english speaking is really bad, I need voice assistant with text input. I tried bestee but she is kinda limited.
To sum it up. I need :

  • Runs offline
  • Have text input
  • Can define new commands or
  • Can define alternative phrase for commands
  • Does not have popup full screen ads (I don't mind sound-less banners)
  • If have some ads, be able to pay-disable them

Does someone knows about something like that ?

6
  • Your English speaking is more than good enough to write this question. maybe keep using voice to improve it? ;-) A very interesting question; thanks
    – Mawg
    Dec 7, 2018 at 10:01
  • 1
    Lolx! The Bestee page actually says "Apart from increasing your productivity, she's a fun and interactive way to learn English for free" :-)
    – Mawg
    Dec 7, 2018 at 10:13
  • Can you tell us what features you need that Bestee does not have?
    – Mawg
    Dec 7, 2018 at 10:14
  • 1
    @Mawg Bestee have very limited settings and she attempt to google everything. I tried many commands and she google them all. Most limiting is amount of known commands. Example : she googled every attempt to launch application. Problem is that I'm Czech, we use same letters but spell them in absolutely different way.I know english well, I know meaning of many words but I can't spell them. What I write online seems flawless because I'm using various tools to correct what I type.
    – Jacob
    Dec 7, 2018 at 17:17
  • Ah, now I understand all. I do hope that you will get an answer; I would be very interested in this too
    – Mawg
    Dec 7, 2018 at 19:17

1 Answer 1

0

What you are looking for looks just like a bog-standard computer interface. As in: A command-line shell.

You give it commands, it does what you want.
The only notable difference is the human-language input. But I’d make the argument that that is more of a hindrance than a feature. Because it obfuscates what functionality it actually offers, and it introduces vagueness that leads to misunderstanding.

I mean the general intention of a shell. What it was invented for.
So for normal day-to-day usage, or pre-existing functionality, I don’t mean all the complicated mess of a standard shell on a standard Unix-like OS (like Android), don’t worry. :)

So on Android, your best choice for that would probably be Termux with a very basic directory containing a bunch of simple-to-type commands to abstract away the above mentioned mess a real-world system might turn it into.
Esp. in combination with Tasker and an “Intent browser” tool, to know what things in apps you (via Termux API or Tasker) can actually control.

I’d set it up like this:

  1. Install Termux, Termux:API and Termux:Tasker (from F-Droid preferably).
  2. Run pkg install termux-api inside Termux.
  3. run mkdir ~/bin; termux-setup-storage; termux-setup-package-manager
  4. Edit .bashrc with the command nano ~/.bashrc and add the line echo "Available commands:"; ls -c "$HOME/bin/" to the end. This will turn Temux into a menu-driven command tool, that automatically shows you the available commands, which you can then enter. If you want to see the list after every command, instead put the line PS1='\nAvailable commands:\n$(ls -C "$HOME/bin/")\n'"$PS1" in its place.
  5. For convenience, run nano ~/new-command; chmod +x ~/new-command and put the following it it, then save:
#! /usr/bin/bash
read -p "Command name (without spaces or /): " command
echo "#! /usr/bin/bash" > "$HOME/bin/$command"
nano "$HOME/bin/$command"
chmod +x "$HOME/bin/$command"
echo "Available commands:"; ls -1 "$HOME/bin/"

Now you have what you want:

  1. Runs offline (but can go online if you ask it).
  2. Has text input. The “available commands”, plus any command that Linux has to offer.
  3. Can define new commands. With new-command.
  4. Can define alternative phrases for commands. (Add a line alias newcommand="oldcommand" to the end of your .bashrc, or ln -s ~/bin/oldcommand ~/bin/newcommand` when you don’t need parameters)
  5. Does not have any ads whatsoever. And costs nothing.
  6. Of course you can support the Termux developers, if and only if you chose to do so. :)

I realize it may be considered not fitting the question. But I concur that it only does not fit in ways that would make it inferior. (Arbitrary human language processing.)
Besides: I don’t find new-command any less natural than Hey Siri, can you define a new command for me?. Which would be annoying with text input anyway. :)

You can also easily add Internet searching or phone calling, text messaging, device control etc, and file opening to it, with things like termux-api and xdg-open.

Really, people nowadays always see a command line shell as “this compilcated thing”, but you have to remember, than it is designed as an easy-to-use tool for normal end-users. It’s just that some decades back, people were expected to be smarter and this is what one considered easy. :) Also, just because you can write things in it that humans can’t read, doesn’t mean you have to. “apropos download” is a valid command on normal Linux systems. But it’s nice that you can do almost anything. Because if you need it, you need it. And a “simple” tool like Siri (or anything “smart”) just falls flat on its face in that situation. :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.