У меня проблемы с созданием потока и запуск его через другое определение в Python - PullRequest
1 голос
/ 15 марта 2019

Я пытался создать приложение, которое принимает ввод как текст и дает вывод как речь.

Я упомянул этот сайт, чтобы узнать о модулях Text-To-Speech в python: https://pythonprogramminglanguage.com/text-to-speech/

когда я запустил программу, она отлично выполнила свою работу, но я не мог использовать другие функции, такие как пауза или возобновление. Поэтому я попытался создать новый поток для речевой функции, чтобы я мог изменять ее речью в любое время.

Вот программа:

import threading
import win32com.client as wincl
speak = wincl.Dispatch("SAPI.SpVoice")
t=threading.Event()

def s():
    global t
    t.set()
    data="""This is a story of two tribal Armenian boys who belonged to the 
         Garoghlanian tribe. """
    s=speak.Speak(data)

t1=threading.Thread(target=s)
t1.start

Однако я пытаюсь реализовать программу в графическом интерфейсе, используя tkinter. Я хочу, чтобы приложение читало текст, когда пользователь нажимает кнопку. Так как кнопка tkinter принимает команду как функцию, я сделал функцию для инициализации и запуска нового потока, но она выдает ошибку, которую я не могу интерпретировать и найти решение.

Вот программа, которая делает ошибку:

import threading
import win32com.client as wincl
speak = wincl.Dispatch("SAPI.SpVoice")
t=threading.Event()

def s():
    global t
    t.set()
    data="""This is a story of two tribal Armenian boys who belonged to the 
         Garoghlanian tribe. """
    s=speak.Speak(data)

def strt():
    t1=threading.Thread(target=s)
    t1.start()

Вот ошибка:

Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Application\Python\lib\threading.py", line 916, in _bootstrap_inner
self.run()
File "C:\Application\Python\lib\threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\absan\Desktop\Python\Project-SpeakIt\SI-1.py", line 32, in 
speakITheart
s=speak.Speak(data)
File "C:\Users\absan\AppData\Local\Temp\gen_py\3.6\C866CA3A-32F7-11D2-9602- 
00C04F8EE628x0x5x4.py", line 2980, in Speak
, 0)
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, 
None, 0, -2147221008), None)

EDIT: Ребята, я как-то нашел способ исправить это, когда писал этот пост. Я только добавил эти строки в программу

import pyttsx3
engine = pyttsx3.init()

Я действительно не знаю, как или почему это исправило ошибку, но это работает !! Так что этот пост может быть полезен для тех, кто сталкивается с той же проблемой.

Ура !!

...