rag*_*ath 6 sound cron pulseaudio alsa 15.04
我从过去 11 个月开始切换到 Linux,我使用的是 Ubuntu 15.04,我已经学会了使用 Cron 来完成各种任务。
我每小时使用 Cron 通过节日 TTS(使用 mbrolla 语音)宣布时间。
这是我在 Cron 中使用的命令(它保存为 .sh 脚本,其路径指向 Cron)
echo "Its" `date "+%l O clock now"` | festival --tts
Run Code Online (Sandbox Code Playgroud)
问题是在播放音乐或视频时它不起作用,但是在音乐停止或暂停后它会宣布时间。
我用谷歌搜索,发现为了多次访问声卡,必须使用 aoss (alsa-oss) 我安装了所需的 alsa-oss 包,并根据这样的搜索结果修改了命令
echo "Its" `date "+%l O clock now"` | aoss festival --tts
Run Code Online (Sandbox Code Playgroud)
但它仍然不起作用,如果我用 aoss 运行命令,它会给出一些错误,如下所示:
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libaoss.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
Run Code Online (Sandbox Code Playgroud)
我不知道这个错误是否与它有关。
Reddit 中有人提到在节日中使用 Alsa 或 Pulse-audio 并指给我一些Arch 论坛,其中指出要使用 Alsa 或 Pulse-Audio 我们必须编辑~/.festivalrc
文件,或者/usr/share/festival/festival.scm
向其中添加一些行。
我添加了链接中提到的行,但仍然没有解决我的问题
因此,我需要你们的帮助。请帮助我更正此问题,以便即使在播放音乐或视频时,Cron 也会宣布时间。
根据这个答案:我可以使用 cron 像落地钟一样在整点报时吗?在 cron 脚本中播放声音之前,您需要导出环境变量:
export XDG_RUNTIME_DIR="/run/user/1000"
Run Code Online (Sandbox Code Playgroud)
一种快速的本地神经文本转语音系统。检查站点项目的安装、语音下载和使用情况。例如:
echo 'Welcome to the world of speech synthesis!' | \
./piper --model blizzard_lessac-medium.onnx --output_file welcome.wav
Run Code Online (Sandbox Code Playgroud)
gTTS ( Google Text-to-Speech ),一个 Python 库和 CLI 工具,用于与 Google Translate 的文本转语音 API 交互。将语音 mp3 数据写入文件、类似文件的对象(字节串)以进行进一步的音频操作,或
stdout
.
XDG_RUNTIME_DIR="/run/user/1000"
@hourly /usr/local/bin/gtts-cli -l en "Hour $(/bin/date +\%l)" | /usr/bin/play -t mp3 - &> /dev/null
Run Code Online (Sandbox Code Playgroud)
$UID
/ id -u
1。pip install gtts
。要内联使用它:@hourly export XDG_RUNTIME_DIR="/run/user/1000"; /usr/local/bin/gtts-cli...
另请检查基于 WaveNet 的替代方案,例如wavenet_vocoder