我正在Raspberry Pi上使用GoogleTTS。我的代码将让GoogleTTS大声说出普通文本,而不是当前时间或日期。它将为您提供正确的时间和日期。我还有一个声音叫做Festival,如果我用Festival --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。然后是voice.speak(time1)和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' | 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")
对于我最初尝试的东西,我得到了:
06:06下午 sh:1:GoogleTTS:未找到 2019年九月17日星期二 sh:1:GoogleTTS:未找到 日期:写入错误:管道损坏
对于def,我遇到了相同的错误:
两个声音没有错误,只是shell文本输出:
06:07下午 2019年9月17日,星期二
答案 0 :(得分:0)
此处使用的库正在接收通过speak
方法转换为语音的字符串。
os.system
在子shell中执行命令,使您无法检索标准输出中打印的文本。
但是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
)
date_today = completed_process.stdout.decode().strip()
voice.speak(date_today)