Я пытался создать приложение, которое принимает ввод как текст и дает вывод как речь.
Я упомянул этот сайт, чтобы узнать о модулях 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()
Я действительно не знаю, как или почему это исправило ошибку, но это работает !!
Так что этот пост может быть полезен для тех, кто сталкивается с той же проблемой.
Ура !!