Python 谷歌在树莓皮上的搜索结果是';不要说时间和日期

Python 谷歌在树莓皮上的搜索结果是';不要说时间和日期,python,raspberry-pi,Python,Raspberry Pi,我在用谷歌搜索树莓皮。我的代码将让谷歌发出响亮的普通文本,但不是当前的时间或日期。它会一直持续到正确的时间和日期。我有另一个声音叫festival,如果我用festival替换GoogleTTS,它会显示时间和日期。不过,我正试图让它与谷歌合作,因为它的声音更好。请帮忙!谢谢 已尝试: voice.speak(操作系统(“日期'+%I:%M%p')) voice.speak(操作系统(“日期'+%A,%d,%B,%Y')) 我尝试过将os.system(“日期'+%I:%M%p')和(os.sy

我在用谷歌搜索树莓皮。我的代码将让谷歌发出响亮的普通文本,但不是当前的时间或日期。它会一直持续到正确的时间和日期。我有另一个声音叫festival,如果我用festival替换GoogleTTS,它会显示时间和日期。不过,我正试图让它与谷歌合作,因为它的声音更好。请帮忙!谢谢

已尝试:

voice.speak(操作系统(“日期'+%I:%M%p')) voice.speak(操作系统(“日期'+%A,%d,%B,%Y'))

我尝试过将os.system(“日期'+%I:%M%p')和(os.system(“日期'+%A,%d,%B,%Y'))定义为时间1和日期1。然后是voice.speak(时间1)和voice.speak(日期1)。它只会给我一些werid音频输出,例如%

我最初尝试的是:

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")
当我尝试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")
我最初尝试的是:

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

对于def,我得到了相同的错误:

这两个语音没有错误,只是shell文本输出:

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

此处使用的库正在通过
speak
方法接收字符串以转换为语音

os.system
在子shell中执行命令,无法检索标准输出中打印的文本

但是
子流程
允许检索打印在
stdout
中的文本并将其绑定到名称

导入子流程
从google_tts导入google tts
voice=GoogleTTS()
说话(“你好,名字,时间是。”)
已完成的\u进程=子进程.run(
“日期'+%A,%d,%B,%Y',shell=True,捕获输出=True”
)
date_today=已完成_进程.stdout.decode().strip()
说话(今天的日期)

上一个代码现在不起作用。我收到一个错误,上面说pipe\u open:fork对使用festival的行失败--ttsI运行了你的代码,我收到一个错误,读到。Traceback(最近的调用Last):File“/home/pi/Downloads/GoogleTTS master/demo2.py”,第10行,“date'+%a,%d,%B,%Y',shell=True,capture\u output=True File“/usr/lib/python3.5/subprocess.py”,第383行,以Popen(*popenargs,**kwargs)作为进程运行:TypeError:uu init_uuuuuu()得到了一个意外的关键字参数“capture_output”
子进程。run
python3.5
中最近添加的一项内容。您可以使用较旧的API(如
子进程)实现同样的功能。请检查\u output