以下のコードに詳細なコメントを入れて
class Speaker_sapi5:
def __init__(self, voice_index=2):
self.engine = win32com.client.Dispatch("SAPI.SpVoice")
self.engine.Rate = 1
voices = self.engine.GetVoices()
for i, voice in enumerate(voices):
print("{}: {}".format(i, voice.GetDescription()))
if 0 <= voice_index < len(voices):
self.engine.Voice = voices[voice_index]
print("音声を「{}」に設定しました。".format(voices[voice_index].GetDescription()))
else:
print("音声インデックスが範囲外です。デフォルトの音声を使用します。")
def speak(self, text):
self.engine.Speak(text)