如何解决Pyttsx3 与 Opencv 并行运行
我正在尝试使用 pyttsx3 创建语音输出,而 Opencv 正在捕获和显示图像帧。但是 engine.runandwait()
使循环在预定时间内冻结。这导致图像帧和语音输出的差异。如何在语音输出中同步捕获和显示图像帧?下面是我用线程尝试过的伪代码,但它不起作用
import cv2
import numpy as np
import pyttsx3
from threading import Thread
import threading
def display(cap):
ret,frame = cap.read()
if ret == True:
cv2.imshow('Frame',frame)
if cv2.waitKey(1) == ord("q"):
cv2.destroyAllWindows()
def textToSpeech(text):
engine = pyttsx3.init()
voices = engine.getProperty("voices")
engine.setProperty("voice",voices[0].id)
engine.setProperty("rate",220)
engine.say(text)
engine.runAndWait()
del engine
def say(text,cap):
t1 = threading.Thread(target=textToSpeech,args=(text,))
t2 = threading.Thread(target=display,args = (cap,))
t1.start()
t2.start()
cap = cv2.VideoCapture(0)
if (cap.isOpened()== False):
print("Error opening video stream or file")
while(cap.isOpened()):
say("welcome",cap)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。