Офлайн голосовой ассистент Android без голосовой части?

Вопрос или проблема

Я ищу голосового помощника, который работает офлайн и без голосовой части. Может показаться странным хотеть помощника без голоса, но я могу объяснить. Мой разговорный английский очень плох, мне нужен голосовой помощник с текстовым вводом. Я пробовал bestee, но она немного ограничена.
В итоге, мне нужно:

  • Работает офлайн
  • Есть текстовый ввод
  • Возможность задавать новые команды или
  • Возможность задавать альтернативные фразы для команд
  • Отсутствие полноэкранной рекламы (меня не беспокоят баннеры без звука)
  • Если есть реклама, возможность заплатить, чтобы отключить её

Кто-нибудь знает что-то подобное?

То, что вы ищете, похоже на стандартный интерфейс компьютера. Как, например: командная оболочка.

Вы даёте ей команды, она делает то, что вам нужно.
Единственное заметное отличие — это ввод на человеческом языке. Но я бы сказал, что это больше помеха, чем функция. Потому что это затемняет, какие возможности она действительно предлагает, и вводит неясности, которые приводят к недопониманию.

Я имею в виду общую цель оболочки. То, для чего она была изобретена.
Так что для обычного повседневного использования или существующих возможностей я не имею в виду весь сложный беспорядок стандартной оболочки на стандартной операционной системе типа Unix (как Android), не волнуйтесь. 🙂

Так что на Android ваш лучший выбор, вероятно, будет это Termux с очень простым каталогом, содержащим множество простых для ввода команд, чтобы скрыть упомянутый выше беспорядок, в который реальная система может его превратить.
Особенно в сочетании с Tasker и инструментом “Intent browser”, чтобы знать, какие вещи в приложениях вы (через Termux API или Tasker) действительно можете контролировать.

Я бы настроил это так:

  1. Установите Termux, Termux:API и Termux:Tasker (предпочтительно из F-Droid).
  2. Запустите pkg install termux-api внутри Termux.
  3. Запустите mkdir ~/bin; termux-setup-storage; termux-setup-package-manager
  4. Отредактируйте .bashrc с помощью команды nano ~/.bashrc и добавьте строку echo "Available commands:"; ls -c "$HOME/bin/" в конец. Это превратит Termux в инструмент на основе меню, который автоматически покажет доступные команды, которые вы затем можете ввести. Если хотите видеть список после каждой команды, вместо этого вставьте строку PS1='\nAvailable commands:\n$(ls -C "$HOME/bin/")\n'"$PS1" на его место.
  5. Для удобства выполните nano ~/new-command; chmod +x ~/new-command и вставьте следующее, затем сохраните:
#! /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/"

Теперь у вас есть то, что вам нужно:

  1. Работает офлайн (но может подключаться к интернету по запросу).
  2. Есть текстовый ввод. “Доступные команды”, плюс любая команда, которую может предложить Linux.
  3. Возможность задавать новые команды. С помощью new-command.
  4. Возможность задавать альтернативные фразы для команд. (Добавьте строку alias newcommand="oldcommand" в конец вашего .bashrc, или ln -s ~/bin/oldcommand ~/bin/newcommand` когда параметры не нужны)
  5. Абсолютно отсутствие рекламы. И это бесплатно.
  6. Конечно, вы можете поддержать разработчиков Termux, если и только если вы решите это сделать. 🙂

Я понимаю, что это может считаться несоответствующим вопросу. Но я согласен, что это не соответствует только в тех моментах, которые сделали бы его хуже. (Произвольная обработка человеческого языка.)
Кроме того: я не считаю new-command менее естественным, чем Привет, Siri, можешь определить для меня новую команду?. Что было бы раздражающим с текстовым вводом в любом случае. 🙂

Вы также легко можете добавить интернет-поиск или звонки по телефону, текстовые сообщения, управление устройствами и т.д., и открытие файлов с этим, используя такие вещи, как termux-api и xdg-open.

В самом деле, люди в наши дни всегда видят командную оболочку как “это сложная вещь”, но вы должны помнить, что она действительно разработана как легкий в использовании инструмент для обычных пользователей. Просто несколько десятилетий назад от людей ожидалось, что они будут умнее, и это действительно считалось легким. 🙂 Также, просто потому, что вы можете писать в ней то, что не могут прочитать люди, не значит, что вы обязаны это делать. “apropos download” — это допустимая команда на обычных системах Linux. Но это приятно, что вы можете делать практически все. Потому что если вам это нужно, вам это нужно. И “простой” инструмент вроде Siri (или что-либо “умное”) просто падает в обморок в этой ситуации. 🙂

Ответ или решение

Для решения задачи создания голосового ассистента на Android, который работает офлайн и может принимать текстовые команды, можно использовать подход, описанный ниже.

Теория

Голосовые ассистенты чаще всего ассоциируются с голосовым вводом, однако их функциональность может быть расширена за счет текстового ввода, что особенно актуально, если у пользователя возникают трудности с произношением. Важные элементы таких систем: возможность работы в офлайн-режиме, текстовый ввод и поддержка пользовательских команд.

Пример

На платформе Android возможен альтернативный подход с использованием терминала Termux, который превращает устройство в полноценную UNIX-систему. Termux способен работать офлайн и поддерживает текстовый ввод. Он не только предоставляет доступ к большому количеству команд, но и позволяет создавать новые команды.

Применение

  1. Установка Termux и необходимых пакетов:

    • Скачайте и установите Termux, Termux:API и Termux:Tasker через F-Droid.
    • Выполните команду pkg install termux-api в Termux, чтобы установить API.
    • Настройте терминал для хранения пользовательских команд, выполнив команды:
      mkdir ~/bin
      termux-setup-storage
  2. Настройка интерфейса команд:

    • Отредактируйте файл .bashrc с помощью nano ~/.bashrc и добавьте:
      PS1='\nДоступные команды:\n$(ls -C "$HOME/bin/")\n'"$PS1"
    • Это позволит после каждой команды видеть список доступных команд.
  3. Создание новых команд:

    • Создайте новый файл команд new-command, выполнив:
      nano ~/new-command
      chmod +x ~/new-command
    • Добавьте в него:
      #! /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 "Доступные команды:"; ls -1 "$HOME/bin/"
  4. Альтернативные фразы для команд:

    • Для создания альтернативных фраз для команд используйте alias или создайте символическую ссылку:
      ln -s ~/bin/oldcommand ~/bin/newcommand
  5. Интеграция с другими возможностями устройства:

    • Используйте termux-api для расширения функциональности: открытие URL, управление устройством и другие задачи в офлайн-режиме.

Этот подход позволяет создать эффективную текстовую систему команд, работающую офлайн, которая удовлетворяет требованиям пользователя без появления полноэкранной рекламы и с возможностью поддержки разработчиков. Такой подход позволяет пользователю легко адаптировать систему под свои нужды, создавая кастомизированные команды для выполнения различных задач на Android.

Оцените материал
Добавить комментарий

Капча загружается...