相关文章推荐
温文尔雅的书包  ·  Android Jetpack ...·  8 月前    · 
开朗的茄子  ·  Recyclerview的notifyIte ...·  8 月前    · 
听话的板栗  ·  SpringBoot - ...·  1 年前    · 
玩足球的杯子  ·  .NET Framework ...·  1 年前    · 

Raspberry Pi上的GoogleTTS不会说时间和日期

0 人关注

我正在Raspberry Pi上使用GoogleTTS。我的代码将让GoogleTTS大声说出正常的文字,但不是当前的时间或日期。它将通过炮轰正确的时间和日期。我有另一种叫 "节日 "的语音,如果我用 "节日"-tts替换GoogleTTS,它就会说出时间和日期。然而,我正试图让它与GoogleTTS一起工作,因为它的声音更好。请帮助我!谢谢谢谢

已经试过了。

voice.speak(os.system("date '+%I:%M %P'")) voice.speak(os.system("date '+%A, %d, %B, %Y'"))

我已经试过def os.system("date '+%I:%M %P'")和(os.system("date '+%A, %d, %B, %Y'")作为time1和date1。然后语音.说话(time1)和语音.说话(date1)。它只是给我一些奇怪的音频输出,如%。

我最初的尝试。

import time
import os
import sys
from google_tts import GoogleTTS
voice = GoogleTTS()
voice.speak("Hello NAME. The time is.")
os.system("date '+%I:%M %P'")
os.system("date '+%I:%M %P' | GoogleTTS")
voice.speak("And the date is.")
os.system("date '+%A, %d, %B, %Y'")
os.system("date '+%A, %d, %B, %Y' | GoogleTTS")

When I tried def:

import time
import os
import sys
from google_tts import GoogleTTS
voice = GoogleTTS()
voice.speak("Hello NAME. The time is.")
def time1():
    os.system("date '+%I:%M %P'")
voice = GoogleTTS()
voice.speak(time1)
voice = GoogleTTS()
voice.speak("And the date is.")
def date1():
    os.system("date '+%A, %d, %B, %Y'")
voice = GoogleTTS()
voice.speak(date1)

这是两个声音的事情,是有效的。

import time
import os
import sys
from google_tts import GoogleTTS
voice = GoogleTTS()
voice.speak("Hello NAME. The time is.")
os.system("date '+%I:%M %P'")
os.system("date '+%I:%M %P' | festival --tts")
voice.speak("And the date is.")
os.system("date '+%A, %d, %B, %Y'")
os.system("date '+%A, %d, %B, %Y' | festival --tts")

对于我最初尝试的东西,我得到了这个。

06:06 pm sh: 1: GoogleTTS: 未找到 2019年9月17日,星期二 sh: 1: GoogleTTS: 未找到 日期:写入错误。管道断裂

对于def,我得到了同样的错误。

而这两种语音没有错误,只是外壳文本输出。

下午06:07 2019年9月17日,星期二

1 个评论
最后的代码现在不能工作了。我得到一个错误,说 pipe_open: fork failed for the lines that use festival-tts
python
raspberry-pi
Charizard
Charizard
发布于 2019-09-18
1 个回答
Oluwafemi Sule
Oluwafemi Sule
发布于 2019-09-18
已采纳
0 人赞同

这里使用的库是接收一个字符串,在 speak 方法中转换为语音。

替换代码1】在子壳中执行一个命令,并且不给你检索标准输出中打印的文本的方法。

然而, subprocess 允许检索在 stdout 中打印的文本,并将其与一个名称绑定。

import subprocess
from google_tts import GoogleTTS
voice = GoogleTTS()
voice.speak("Hello NAME. The time is.")
completed_process = subprocess.run(
    "date '+%A, %d, %B, %Y'", shell=True, capture_output=True