将 win32client SAPI.SpVoice 与多线程一起使用会导致 pywintypes.com_error

Using win32client SAPI.SpVoice with multi-threading leads to pywintypes.com_error

我正在尝试使用带有 wincl 内置语音系统的线程。 但是我 运行 遇到了这个错误:

pywintypes.com_error: (-2147221008, 'CoInitialize has not been called.', None, None)

我似乎无法破译。

这是我的代码:

import win32com.client as wincl
import time, threading


def ten_second_timer():
    t =threading.Timer(10, ten_second_timer)
    speak = wincl.Dispatch("SAPI.SpVoice")
    speak.Speak("10 seconds have passed")
    t.start()


t =threading.Thread(target = ten_second_timer)
t.start()

您需要在非主线程中调用 pythoncom.CoInitializepythoncom.CoInitializeEx 才能在其中使用 COM。