答案1
这个答案才不是需要已 root 权限的 Android 设备。 第一的启动 Ubuntu在 Termux。
gTTs
使用 pip安装。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 wiki 中与 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
经常会创建 gTT 目录中不存在的语言(例如en-gb
)。由于我主要阅读英文电子书,因此我替换了$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
/usr/local/bin/gtts
打开 Foliate 偏好设置,然后在文本转语音字段中输入命令。