Я установил программу для чтения электронных книг Foliate после установка образа Ubuntu Base для телефона Android.
Я хочу использовать gTT
, который использует службу Google для преобразования текста в текст, поскольку ее голос намного лучше, чем espeak
или festival
. У меня включен звук в Termux.
Скрипт в Foliate wiki использует команду play
из sox
. Однако по какой-то причине sox
не работает, потому что не может найти аудиоустройство (похоже, что sox использует ALSA, но только Pulseaudio работает с Termux в Android).
Как использовать gTT с Foliate?
Для ответа не требуется рутированное устройство Android. Сначала запустите Ubuntu в Termux.
Установите gTTs
с пипом.
apt install python3-pip
pip3 install gTTs
Установить VLC (мы будем использовать VLC вместо sox
).
apt install vlc
(mpv не работает, потому что ffmpeg, похоже, содержит ошибку )
Базовый образ Ubuntu по умолчанию входит в систему как пользователь root. Однако vlc
отказывается запускаться от имени пользователя root. Давайте разрешим запуск VLC от имени пользователя root, следуя этому ответу
sed -i 's / geteuid / getppid /' / usr / bin / vlc
Теперь давайте изменим сценарий в вики Foliate для работы с VLC.
Исходный сценарий был
#! / Bin / bash
gtts-cli -l $ FOLIATE_TTS_LANG_LOWER --file / dev / stdin | play -t mp3 - &
trap 'kill $ !; exit 0 'INT
wait
Я обнаружил, что $ FOLIATE_TTS_LANG_LOWER
часто создает языки (например, en-gb
), которых нет в gTT. каталог. Поскольку я в основном читаю электронные книги на английском языке, я заменил $ FOLIATE_TTS_LANG_LOWER
-> en
.
Кроме того, по умолчанию VLC не завершает работу после воспроизведения мультимедийного файла. В результате Foliate не может автоматически переворачивать страницы при чтении текста. Нам нужно запустить версию VLC для командной строки ( cvlc
) с опцией - play-and-exit
.
Измененный сценарий:
#! / Bin / bash
gtts-cli -l en --file / dev / stdin | cvlc --play-and-exit - &
trap 'kill $ !; exit 0 'INT
wait
Сохраните этот сценарий в / usr / local / bin / gtts
и отметьте его как исполняемый.
chmod + x / usr / local / bin / gtts
Откройте настройки Foliate и введите команду / usr / local / bin / gtts
в поле для текста- к-речи.