1

入力をテキストとして受け取り、音声として出力するアプリケーションを構築しようとしています。

このサイトを参照して、Python の Text-To-Speech モジュールについて知りました: 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 を使用して GUI でプログラムを実装しようとしています。ユーザーがボタンをクリックしたときに、アプリケーションがテキストを読み上げるようにしたい。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)

編集:この投稿を書いているときに、どうにかして修正する方法を見つけました。これらの行をプログラムに追加しました

import pyttsx3
engine = pyttsx3.init()

エラーを修正した方法や理由は本当にわかりませんが、機能します!! したがって、この投稿は、同じ問題に直面している誰かにとって役立つかもしれません。

乾杯!!

4

0 に答える 0