Pythonでテキスト読み上げ(Windows10)

orebibou.com

Powershellから.NETのSpeechSynthesizerを利用してテキスト読み上げ

  1. speech.ps1をファイルに保存
  2. PythonからPowershellにテキストを送りテキスト読み上げ

speech.ps1

Param(
    [String]$Arg1= "テキストがありません"
)

Add-Type -AssemblyName System.speech

$s = New-Object System.Speech.Synthesis.SpeechSynthesizer
$s.Speak($Arg1)

Python

import os


def say(text):
    """
    Powershellから.NETのSpeechSynthesizerを利用してテキスト読み上げ

    Parameters
    ----------
    text : str
        
    """
    print(text)

    os.system(
        rf'powershell -NoProfile -ExecutionPolicy Unrestricted .\speech.ps1 -Arg1 "{text}"'
    )

if __name__ == "__main__":
    say("テスト")