Как использовать преобразование текста Google в речь с помощью программы чтения электронных книг Foliate, установленной в образе Ubuntu Base на телефоне Android?

Я установил программу для чтения электронных книг Foliate после установка образа Ubuntu Base для телефона Android.

Я хочу использовать gTT , который использует службу Google для преобразования текста в текст, поскольку ее голос намного лучше, чем espeak или festival . У меня включен звук в Termux. Скрипт в Foliate wiki использует команду play из sox . Однако по какой-то причине sox не работает, потому что не может найти аудиоустройство (похоже, что sox использует ALSA, но только Pulseaudio работает с Termux в Android).

Как использовать gTT с Foliate?

1
задан 4 May 2021 в 22:49

1 ответ

Для ответа не требуется рутированное устройство Android. Сначала запустите Ubuntu в Termux.

  1. Установите gTTs с пипом.

     apt install python3-pip 
    pip3 install gTTs 
     
  2. Установить VLC (мы будем использовать VLC вместо sox ).

     apt install vlc 
     

    (mpv не работает, потому что ffmpeg, похоже, содержит ошибку )

  3. Базовый образ Ubuntu по умолчанию входит в систему как пользователь root. Однако vlc отказывается запускаться от имени пользователя root. Давайте разрешим запуск VLC от имени пользователя root, следуя этому ответу

     sed -i 's / geteuid / getppid /' / usr / bin / vlc 
     
  4. Теперь давайте изменим сценарий в вики 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 
     
  5. Откройте настройки Foliate и введите команду / usr / local / bin / gtts в поле для текста- к-речи.

1
ответ дан 7 May 2021 в 17:40

Другие вопросы по тегам:

Похожие вопросы: